使用WebSockets进行多人HTML5游戏开发。选择什么,Node.js,或Ratchet,还是其他?

时间:2012-12-15 02:05:15

标签: html5 node.js cakephp ratchet

在提出这个问题之前,我做了一些研究,但我无法找到适合我情况的具体答案。我还是WebSockets和游戏开发的新手,所以我可能无法很好地解释某些部分,如果是这种情况,请告诉我,以便我可以尝试更好地解释它。

我目前正在使用CakePHP开发一个Web应用程序,它将提供几种HTML5多人游戏。在某些情况下,这些游戏需要将数据发送到数据库。问题是,我想使用Node.js来实现游戏服务器端逻辑,但我不确定我是否能够将数据传递到数据库。我认为最好的方法是将Node.js中的数据发送到PHP操作,然后将其存储在数据库中,但我也不知道这是否可行。

我找到了关于这个DNode的东西,但我不确定这是否是我的问题的答案,而且它似乎是测试版,我想避免。

作为替代方案,我考虑使用Ratchet来实现游戏服务器端逻辑。至少我知道我能够与我的应用程序进行通信,但由于我在游戏开发中找不到任何参考,我不确定这是不是一个好主意。

我不知道任何其他框架,所以如果我有比这两个更好的选择,请告诉我:)

请告诉我你的意见。谢谢!

2 个答案:

答案 0 :(得分:6)

一年前我遇到了类似的问题,试图开发一款在线多人游戏。我最终使用Node.js作为服务器,Socket.io作为Websockets

如果您是Node.js的新手,我建议您先阅读这篇简短而基本的教程:

http://www.nodebeginner.org/

我每天都使用node.js,我发现它非常有用且富有成效。 一旦你完成了阅读基础知识,请阅读这个使用节点和套接字开发多人html5游戏的精彩教程: http://smus.com/multiplayer-html5-games-with-node/

最后有一个开源游戏的链接可能会对你有所帮助。

您可以在此处查看socket.io文档:http://socket.io/

希望它有所帮助,以便您可以开始使用。这是最难的部分。

答案 1 :(得分:0)

您是否考虑过Node.js + Lightstreamer而不是socket.io? Simone Fabiano最近发布了an apple-to-apple data broadcasting comparison with socket.io(在服务器端生成的消息并发送给超过4,000个客户端,运行两个Amazon EC2机器),事实证明它可以比使用socket.io的普通websockets更好地扩展CPU使用率,数据延迟和带宽消耗,以及一些其他有用的功能,以提高整体性能。

具体而言,Lightstreamer可用于任何多人游戏,具有很大的好处:另见本文(Optimizing Multiplayer 3D Game Synchronization Over the Web)。您可以浏览一个简单的多人3D世界的在线演示,其中集成了Lightstreamer以实现实时同步。该演示允许您调整场景的每个参数并模拟任何数据传输风格,同时检查实际带宽消耗。

GitHub上免费提供基准测试工具包和演示的完整源代码。

[完全披露:我为Lightstreamer工作]