javascript - 两人 - 回合制游戏

标签 javascript html node.js canvas websocket

我在这里进退两难。

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

Multiplayer JavaScript game built with Node.JS - Separating players

这解决了我的大部分大问题,但仍然很少。因为我还建立了一个聊天室来测试它并且它运行良好。

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

最佳答案

I'm using knife to butter my bread.
However, is there really any point of using knife for that purpose? Can it be done just with butter?

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

HTML5 是由浏览器 vendor (Chrome、Firefox、IE 等)实现的一组技术。像 Canvas 、webgl、音频/视频元素、websockets 这样的技术——它是否依赖于很多东西。如果使用 WebSockets - 他们必须与某些服务器通信。没有任何服务器 - 它们毫无用处。

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

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

关于javascript - 两人 - 回合制游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18722201/

相关文章:

javascript - 在 JavaScript 中捕获 CTRL + P 并调用自定义函数进行打印

c# - 在 View 中格式化表

javascript - angularjs .service 无法在 Controller 之间传递变量

JavaScript - 对所有 'click' 事件进行一些检查

javascript - Angularjs 指令和现在 onclick 很慢

javascript - jQuery 未在我的 Groovy 服务器页面中执行

javascript - 在字符串数组上循环时无法访问选项变量

html - 图片在我的网站上出现锯齿状

javascript - 如何检查对象中的 hasOwnProperty 链

javascript - 我如何在 nodejs 中调试,任何类似于 pdb 的工具或在 Ruby 或 Python 中 pry