5

我在这里进退两难。

尝试构建一个简单的基于回合的两人游戏,我一直在尝试 Node.js 和 Socket.IO,正如我在一个问题中看到的那样:

使用 Node.JS 构建的多人 JavaScript 游戏 - 分隔玩家

这回答了我的大部分大问题,但仍然很少。因为我还建立了一个聊天室来对其进行测试,并且效果很好。

但是,在这种游戏中使用 node.js 真的有什么意义吗?可以用 HTML5 WebSockets 完成吗?

4

1 回答 1

11

我正在用刀在我的面包上涂黄油。
但是,为此目的使用刀真的有任何意义吗?可以只用黄油吗?

Node.js - 是适用于许多不同用例的应用程序平台,从小型命令行工具开始,到 LinkedIn Mobile、MySpace 和游戏等大型应用程序结束。
由于这个平台有很多与网络相关的库和工具——在这种情况下使用它非常简洁,尤其是用 JavaScript 编码(什么对网络更好?)。
Socket.IO - 是一个特定的库,它利用许多 Web 传输尝试在 Web 浏览器和服务器(在本例中为 node.js)之间建立可靠的实时双向通信层。

HTML5是一组由浏览器供应商(Chrome、Firefox、IE 等)实施的技术。这种技术,如画布、webgl、音频/视频元素、websockets - 它是否依赖于许多东西。如果使用 WebSockets - 他们必须与某些服务器通信。并且没有任何服务器 - 它们毫无用处。

如果您选择使用 node.js 作为您的服务器平台,那么您几乎没有选择,最常见的是使用socket.io纯 websockets
最常见的多人游戏架构,尤其是在 web 中是client<>server。所以这意味着至少有一个中心化的服务器可以与客户对话。在这种情况下,服务器将执行大部分决策和所有游戏逻辑,并且只将所需的数据发送给客户端进行渲染。
还有另一种选择:p2p (Peer to Peer),并且可以使用WebRTC但由于缺乏跨大多数常见浏览器的实现,尚未准备好用于商业用途。在这种情况下,所有客户端都应该模拟相同的游戏状态,并通过游戏会话中所有(大部分)对等方的交叉批准自行做出决定。
我建议从 server<>client 开始,因为它适合大多数情况,并且在许多方面都更简单(反之亦然:))。

您还可以使用任何其他服务器端平台,例如 PHP、.Net、Java、Ruby、Python、C/C++ 等。舒适和访问有用的库可以帮助您进行开发,这很重要。

于 2013-09-10T15:19:56.407 回答