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

问题描述:

在问这个问题之前我做了一些研究,但是我找不到具体的答案。对于WebSockets和游戏开发,我还是个新手,所以我可能无法很好地解释一些部分,如果是这种情况,请告诉我,这样我就可以更好地解释它。使用WebSockets进行多人HTML5游戏开发。选择什么,Node.js或Ratchet或其他?

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

我发现了一些关于这个DNode的事情,但我不确定这是否是我的问题的答案,除此之外,它似乎在测试版本中,我想避免。

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

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

请给我你的意见。谢谢!

一年前,我面临着类似的问题,试图开发一个在线多人游戏。我结束了使用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/

希望它可以帮助这样你就可以上手。这是最难的部分。

+0

非常感谢您,我想我现在更了解Node.js是如何工作的。根据我的理解,我也可以使用Node连接到数据库,这样我就不需要与我的PHP应用程序进行通信以从中请求数据,对吧? – Anakin

+0

没错。您可以从Node.js直接连接到数据库 – ElHacker

+0

node.js是否仅在VPS服务器上工作?它会不会安装在共享主机上。 – yourkishore

你有没有考虑Node.js + Lightstreamer而不是socket.io? Simone F*o最近发布了an apple-to-apple data broadcasting comparison with socket.io(在服务器端生成的消息并发送到4,000多个客户端,运行在两台Amazon EC2计算机上),并且它证明可以比使用socket.io的普通websocket在CPU使用率,数据延迟,和带宽消耗,以及一些其他有用的功能来提高整体性能。

具体来说,Lightstreamer可以为任何多人游戏带来巨大优势:另请参阅本文(Optimizing Multiplayer 3D Game Synchronization Over the Web)。您可以浏览一个简单的多人3D世界的在线演示,Lightstreamer已经集成到该世界中进行实时同步。该演示允许您调整场景的每个参数,并模拟任何数据传输风格,同时检查实际的带宽消耗。

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

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