【问题标题】:RTS HTML5 game multiplayer - start node.js server ingameRTS HTML5 多人游戏 - 启动 node.js 服务器 ingame
【发布时间】:2016-03-27 17:36:14
【问题描述】:
- 我用 HTML5 (with create.js) 制作了一个 RTS 游戏想用 node.js 添加多人游戏部分。
- 我可以将 html 和 javascript 文件转换为 .exe 以使用 Web2ExeWin-v0.4.2b 将游戏作为“普通”应用程序运行
- 我重新研究了 node.js 并启动了一些简单的服务器。
概念:
用户打开游戏,可以开启单人游戏(无服务器)
要么
用户开始多人游戏,可以邀请朋友到大厅。之后,他可以开始多人游戏。就像普通的 rts 游戏一样。
理念:要启动服务器游戏,我必须执行“node server.js”命令。现在用户将加入他的服务器,并可以将数据发送给其他游戏用户加入游戏。
问题:这个想法有什么问题?我无法从用户运行 cmd 命令来打开节点服务器,因为它在 javascript 中。
在javascript中实现node.js多人游戏部分的正常方法是什么,以便每个用户都可以在那里创建自己的游戏服务器?
【问题讨论】:
标签:
javascript
node.js
html
architecture
multiplayer
【解决方案1】:
在我提出问题一年后:我必须说解决方案非常简单:
使用Web2Executable,您可以将 html 编译为 .exe
但是您可以添加一些其他文件,例如 NodeJS 文件。
NodeJS 文件在您启动 exe 的同时启动。
所以 IDEA 是每个客户端从 exe 开始就一直在运行自己的服务器。
如果你想玩单人游戏,你的本地 NodeJS 服务器将只接受一个客户端(本地主机)然后你玩游戏。
如果您想与您和您的朋友创建多人比赛,您的本地 NodeJS 服务器将首先接受 localhost,然后是其他一些玩家,您可以开始游戏。
如果你想连接到朋友服务器,你本地的 NodeJS 服务器将什么都不做。
对比:
如果从桌面启动游戏,则服务器正在运行。所以总会有一些开放的端口。
专业版:
您可以为 Javascript 运行 NodeJS 服务器。
和
由于您想添加多人游戏部分,您还可以将整个游戏重写为 SERVER-CLIENT 通信。我的意思是,你需要为多人游戏部分这样做,所以不要浪费你的时间来创建两个独立的游戏架构。