浏览器多人网络策略-这似乎是一个可行的解决方案
Browser multiplayer network strategy - does this seem like a viable solution?
我感兴趣的是制作某种纯基于浏览器的多人RPG游戏,很少或不需要插件。在做了相当多的研究之后,我得出了以下计划。我知道我在这里引用的一些技术并不适用于所有浏览器(特别是IE),但我现在愿意接受这一点。
我也知道MMO是一个崇高的目标,但在过去做过许多类似方向的小项目后,我觉得我想最终给它一个真正好的尝试。
所以这里有一个粗略的大纲,我很想听到任何人都可以在这种安排中看到的明显问题:
客户:WebGL/Javascript(可能是three.js)。使用浏览器本地存储来保存游戏资产,接受删除浏览器缓存将删除这些资产。
消息传递:使用Google协议缓冲区在客户端/服务器之间编码消息,以方便和减小大小。消息传递将通过WebSocket。
游戏服务器:在python中运行在gevent之上(看起来是处理许多并发的好解决方案)。将使用分片模式构建,基于这里的设计:
DB服务器:MySQL用于数据库,PHP用于游戏服务器和数据库之间。
细节:我打算让游戏服务器每秒更新单个客户端大约15-20次,并使用客户端预测来填补空白。客户端可以以30fps的速度向服务器发送密钥输入/消息。我更喜欢尽可能接近实时的体验,而不是回合制。我主要担心的是基于TCP的WebSocket协议,这会让整个事情变得不可能吗?
这个解决方案在SO看来可行吗?
许多谢谢,使用localStorage API通常可以获得5MB的空间。如果你真的拥有一款带有声音/音乐的3D游戏,那么它将很快被你的资产所吞噬(游戏邦注:如今一个高质量的mp3到底有多大?)你需要非常积极地压缩你的资产,并且很可能需要想出一种机制来在游戏运行时将内容输入和输出本地存储。
我想问为什么在游戏服务器和数据库之间需要PHP。游戏服务器不能直接与数据库对话并节省一些工作吗?祝你项目顺利。
- iPad虚拟键盘-哪一个-javasctript解决方案
- 如何让我的网站上的WEBP图像加载在morzilla firefox中有一个可能的解决方案吗?如果是,那么如何
- 这里有一个更优雅的/DRY/可维护的JS解决方案
- 当我想发布一个变量但有 1 个 js 时,ajax post 的解决方案是什么
- 有没有一个简单的解决方案可以根据3个数据找到结果
- 将复杂内容(想想整个网页树)从一个 Web 应用程序提供给另一个网站的最佳可重用解决方案是什么?
- 需要一个类似于“另存为”对话框的解决方案来使用 javascript 选择文件名和位置
- 需要一个优化的解决方案来获取按字母顺序排列的记录集 javascript
- 在 JavaScript 中将小数字合并为一个是个好主意吗?(作为存储优化解决方案)
- 寻找一个纯粹的Javascript函数式编程解决方案
- 未捕获的类型错误: $(..).froala编辑器不是一个函数//解决方案被找到,但不确定如何使用它
- 寻找一个交互式javascript地图解决方案,允许放大,标记和使用位图图像(不是SVG))
- 什么'这是一个很好的webrtc音频解决方案
- 淡出/淡出使DIV's堆叠而不是重叠?使用& # 39;绝对# 39;这不是一个解决方案
- 如果节点模块' body-parser '不安全,下一个解决方案是什么
- 需要一个解决方案,以增加减少字体大小的网站
- 需要一个解决方案,以阻止Safari浏览器阻止Facebook身份验证弹出框,允许用户登录到我的网站
- 为什么我的解决方案有效,而另一个解决方案无效
- 是否有一个解决方案,以获得对象直接到指令范围
- 寻找一个解决方案,作为radiobutton.click()挂Safari,但在Chrome中工作