6

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

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

我发现了一些关于这个DNode的东西,但我不确定这是否是我问题的答案,而且它似乎是 beta 版本,我想避免什么。

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

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

请给我你的意见。谢谢!

4

2 回答 2

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/

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

于 2012-12-15T03:37:01.880 回答
0

您是否考虑过 Node.js + Lightstreamer 而不是 socket.io?Simone Fabiano 最近发布了与 socket.io 的苹果对苹果数据广播比较(在服务器端生成并发送到 4000 多个客户端的消息,运行在两台 Amazon EC2 机器上),事实证明它能够比普通的更好地扩展带有 socket.io 的 websockets 在 CPU 使用率、数据延迟和带宽消耗方面,以及一些其他有用的功能来提高整体性能。

具体来说,Lightstreamer 可以为任何多人游戏带来极大的好处:另请参阅这篇文章(通过 Web 优化多人 3D 游戏同步)。您可以浏览一个简单的多人 3D 世界的在线演示,其中集成了 Lightstreamer 以实现实时同步。该演示允许您调整场景的每个参数并模拟任何类型的数据传输,同时检查实际带宽消耗。

基准测试套件和演示的完整源代码可在 GitHub 上免费获得。

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

于 2013-11-22T16:22:44.397 回答