我搜索“最佳实践”来创建一个简单的多人浏览器游戏。我为后端选择了nodejs,也为前端选择了Phaser。但我有一个关于算法的问题。 在每个教程中,服务器在客户端事件之后响应。但是很多通用文章都谈到了一个循环,它会定期向所有客户端发送世界数据(例如valve article)。
那是真的吗?什么是正确的程序?这取决于游戏类型?
为了您的信息,我想做一个简单的双棒射击游戏,有一个小小的世界,我们必须尽可能长久地生存。我想做一个合作游戏。
感谢您的帮助。
答案 0 :(得分:1)
你需要区分
如果您使用Node.js构建应用程序,我假设您将使用每个客户端连接一个Web套接字。
您可以随时通过Web套接字连接发送数据。只要数据量适中,就没有任何限制。
服务器主动发送循环中的世界数据(在JavaScript中使用setInterval
实现)绝对是告知玩家是否受到其他玩家行为影响的良好选择。您还可以使用循环让服务器响应播放器的操作。
如果您假设循环始终以相同的顺序通知客户端(例如客户端#1,客户端#2,客户端#3,客户端#1,...等等),您可以通过优先选择客户端来优化性能现在是活跃的,并且正在进行繁重的活动(即“服务器在客户端事件之后响应”)。特别是如果游戏中有很多玩家,这可以改善用户体验。