【问题标题】:Two-player - turn-based game两人 - 回合制游戏
【发布时间】:2013-09-14 08:33:53
【问题描述】:

我有一个难题。

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

Multiplayer JavaScript game built with Node.JS - Separating players

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

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

【问题讨论】:

  • 不确定我是否遵循您的问题。 Socket.io 是一个在可用时使用 WebSockets 的层,当它不可用时使用故障转移到其他方法。 WebSockets 需要一个服务器组件(你不能直接连接到另一个客户端),因此 NodeJS 就派上用场了。NodeJS 不是唯一的 WebSocket 服务器,但它是其中之一。
  • 嗯,我似乎误解了 node.js 的意义......但我认为你主要回答了我的问题。 :) 如果你知道一些关于 node.js 或任何其他 WebSocket 服务器的好教程,请做链接。谢谢。
  • 由于您对 WebSockets 感兴趣,我将直接从他们网站上的 Socket.IO 示例开始。见socket.io/#how-to-use
  • 感谢 apsillers 和 Matt 的帮助 :)

标签: javascript html node.js canvas websocket


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 是的,在第一次评论后我注意到我错了。不过很好的比喻。谢谢你的麻烦。
  • 没问题 :) 理解技术和游戏开发理念的概括概念很重要,这样“导航”就会容易得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多