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

5
我有兴趣制作一种完全基于浏览器的多人角色扮演游戏,几乎不需要插件。经过大量研究,我得出了以下计划。我知道这里提到的某些技术并未在所有浏览器中采用(特别是IE),但我暂时愿意接受这一点。
此外,我知道无论如何,MMO都是一个宏伟的目标,但是过去我已经做了很多类似方向的小项目,感觉现在想要好好尝试一下这个。
所以这是一个大致的概述,我很想听听任何人对这个安排可能存在的明显问题的看法:
客户端:WebGL / Javascript(可能使用three.js)。使用浏览器本地存储来保存游戏资产,接受删除浏览器缓存将删除这些资产的事实。
消息传递:使用google protocol buffers编码客户端/服务器之间的消息,以便于使用和减少大小。通过WebSocket进行消息传递。

游戏服务器: 在Python中使用gevent(处理许多并发的好方法)运行。将使用分片模式构建,基于此处的设计

数据库服务器: 数据库使用MySQL,PHP用于连接游戏服务器和数据库之间的通信。

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

这个解决方案在SO上看起来可行吗?

非常感谢!

1个回答

1

通常情况下,使用localStorage API可以获得5MB的空间。如果你有一个带有声音/音乐的3D游戏,那么你的资源很快就会被耗尽(现在好质量的mp3文件有多大?)。你需要非常积极地压缩你的资源,并且很可能需要想出一种机制,在游戏运行时将东西流入和流出本地存储。

我想问一下,为什么你需要在游戏服务器和数据库之间使用PHP。难道游戏服务器不能直接与数据库通信,节省一些工作吗?

祝你的项目好运。


啊!好吧,这是我一开始不知道的事情之一,5MB是相当有限的因素,所以需要某种流式传输。至于PHP的事情,我认为从游戏服务器中卸载一些数据库事务负载是有意义的,这样它可以集中精力尽快为客户端提供服务,并定期触发要写入数据库的数据块,而无需自行格式化和编写该数据。 - bharling
是的,可以尝试看看CouchDB,它可以立即支持REST调用。 - Anders

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接