Node.js 关于使用nodejs的多人游戏的最佳实践

Node.js 关于使用nodejs的多人游戏的最佳实践,node.js,nodes,multiplayer,Node.js,Nodes,Multiplayer,我搜索最佳实践来创建一个简单的多人浏览器游戏。我选择了nodejs作为后端,也可能选择Phaser作为前端。但是我有一个关于算法的问题。 在每个教程中,服务器都会在客户端事件后响应。但是很多一般性的文章都提到循环,它以固定的间隔向所有客户机发送世界数据,例如 那么什么是真的呢?正确的程序是什么?这取决于游戏类型 供你们参考,我想做一个简单的双杆射击游戏,在这个小世界里,我们必须尽可能地生存下去。我想做一个合作游戏 谢谢您的帮助。您需要区分 由其他玩家的行为触发的直接影响玩家的更新 以及由玩家的动

我搜索最佳实践来创建一个简单的多人浏览器游戏。我选择了nodejs作为后端,也可能选择Phaser作为前端。但是我有一个关于算法的问题。 在每个教程中,服务器都会在客户端事件后响应。但是很多一般性的文章都提到循环,它以固定的间隔向所有客户机发送世界数据,例如

那么什么是真的呢?正确的程序是什么?这取决于游戏类型

供你们参考,我想做一个简单的双杆射击游戏,在这个小世界里,我们必须尽可能地生存下去。我想做一个合作游戏


谢谢您的帮助。

您需要区分

由其他玩家的行为触发的直接影响玩家的更新 以及由玩家的动作触发的更新 如果您使用Node.js构建应用程序,我假设您将为每个客户端使用一个web套接字连接

您可以随时通过web套接字连接向两个方向发送数据。只要数据量适中,就没有任何限制

在JavaScript中使用setInterval实现的循环中,服务器主动发送世界数据,这对于通知玩家是否受到其他玩家操作的影响来说无疑是一个不错的选择。您还可以使用循环让服务器响应玩家的操作


如果您假定循环总是以相同的顺序通知客户机,例如客户机1、客户机2、客户机3、客户机1,。。。依此类推,您可以通过优先选择当前处于活动状态且正在执行繁重活动(即服务器在客户端事件后响应)的客户端来优化性能。特别是如果游戏中有很多玩家,这可以改善用户体验。

好的,谢谢,如果我理解的很好的话。对你来说,人工智能将被一个按间隔发送数据的循环所移动?用户不会通过循环自动移动。是。当然,您可以将间隔延迟设置为零:这样发送到客户机的消息之间仍然有间隔,但间隔越短越好。消息之间的延迟越短或越长,Node.js进程就有时间休息。因此,你需要它们。你说的用户不按循环自动移动是什么意思?