浏览器多人网络策略-这似乎是一个可行的解决方案

Browser multiplayer network strategy - does this seem like a viable solution?

本文关键字:一个 解决方案 网络 策略 似乎是 浏览器      更新时间:2023-09-26

我感兴趣的是制作某种纯基于浏览器的多人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。游戏服务器不能直接与数据库对话并节省一些工作吗?

祝你项目顺利。

相关文章: