6

我有兴趣将某种多人角色扮演游戏制作为纯粹的基于浏览器的游戏,几乎不需要插件要求。经过大量研究,我得出了以下计划。我知道我在这里引用的一些技术并没有被所有浏览器(特别是 IE)采用,但我暂时愿意接受。

另外——我知道 MMO 在任何情况下都是一个崇高的目标,但是过去在类似的方向上做过很多较小的项目,我觉得我最终想给它一个很好的尝试。

所以这是一个粗略的大纲,我很想听听任何人都可以在这种安排中看到的明显问题:

客户: WebGL / Javascript(可能是three.js)。使用浏览器本地存储来保存游戏资产,接受删除浏览器缓存将删除这些资产。

消息:使用google 协议缓冲区对 客户端/服务器之间的消息进行编码,以方便和减小大小。消息传递将通过 WebSocket。

GAME SERVER:在 python 中 运行在gevent 之上(看起来是处理许多并发的好解决方案)。将使用分片模式构建,基于此处的设计:

DB SERVER: MySQL 用于数据库,PHP 作用于游戏服务器和数据库之间。

细节: 我打算让游戏服务器每秒大约更新单个客户端 15-20 次,并使用客户端预测来填补空白。客户端可以以 30 fps 的速度向服务器发送键输入/消息。我更喜欢尽可能接近实时的体验,而不是回合制。我主要关心的是基于 TCP 的 WebSocket 协议,这会让整个事情变得不可能吗?

这个解决方案对 SO 来说是否现实?

非常感谢,

4

1 回答 1

1

您通常可以使用 localStorage API 获得 5MB 的空间。如果你真的有一个带有声音/音乐的 3D 游戏,那么你的资产会很快吃掉它(现在高质量的 mp3 有多大?)。您需要非常积极地压缩资产,并且很可能必须想出一种机制,以便在游戏运行时将内容流进出本地存储。

我会问你为什么在游戏服务器和数据库之间需要 PHP。游戏服务器不能直接与数据库对话,为你节省一些工作吗?

祝你的项目好运。

于 2011-10-26T08:57:20.230 回答