Javascript 战略游戏服务器概念
我计划创建一个基于WebGL的实时战略游戏,玩家可以一起玩。我将使用Node.js创建游戏服务器,并使用WebSocket进行实时连接 对于同步客户端的最佳概念,我已经打乱了主意 一种可能是只将用户的命令(移动单元、建筑等)发送到服务器,服务器将它们发送到所有其他客户端。但在这里,我有一个延迟的问题。我认为游戏会以这种方式变得异步 另一种可能是在服务器上计算游戏。客户机仍然向服务器发送指令,但服务器现在以较高的间隔向客户机发送所有单元和建筑的所有更改状态。这里的问题是数据量大,速度有多快 您是否有其他想法或改进建议Javascript 战略游戏服务器概念,javascript,node.js,websocket,webgl,Javascript,Node.js,Websocket,Webgl,我计划创建一个基于WebGL的实时战略游戏,玩家可以一起玩。我将使用Node.js创建游戏服务器,并使用WebSocket进行实时连接 对于同步客户端的最佳概念,我已经打乱了主意 一种可能是只将用户的命令(移动单元、建筑等)发送到服务器,服务器将它们发送到所有其他客户端。但在这里,我有一个延迟的问题。我认为游戏会以这种方式变得异步 另一种可能是在服务器上计算游戏。客户机仍然向服务器发送指令,但服务器现在以较高的间隔向客户机发送所有单元和建筑的所有更改状态。这里的问题是数据量大,速度有多快 您是否
谢谢 不幸的是,我在基于WebGL的在线游戏方面没有经验,但通常让游戏逻辑在客户端执行并同步结果是一种很好的方法 在这种方法中,跟踪哪个客户端“拥有”哪个游戏对象是很重要的。客户端仅从自己的对象发送更新(创建、更新、删除),并从其他客户端接收其他游戏对象的更新 此外,您还可以设置一个消息传递框架来传递其他消息,如“玩家已进入/离开”之类的消息
这个概念已经被证明对我创建的一个游戏很有用,我希望它对你也同样有用。基本上你必须在速度和安全之间做出决定 让客户机完成工作和计算速度更快,但数据存在风险,因为客户机可以操纵数据 另一方面,让服务器完成所有工作的速度较慢,但数据更安全 您可以选择双重方法,决定让客户机只计算一些数据,同步并检查其有效性,然后让其余数据在服务器上执行 它还取决于游戏运行的速度、要计算的数据量、服务器和带宽/连接的速度等 您应该对这两种方法进行原型化,并尝试一些测试来模拟客户端和服务器负载 如果游戏很小,我会选择更多的服务器端工作。另一方面,对于一个复杂得多的游戏来说,与客户分享更多的工作可能是最好的。无论如何,我认为总是需要一个折衷方案 这里有一些你可能会觉得有用的链接 第一个链接在过去帮助了我很多,imho仍然是关于这个主题的最好的资源之一 书籍
我不确定WebGL,但据我所知,以下方法会很好
此方法将特定于普通对象,而不是UI/客户端特定对象。我建议观看这些关于基于浏览器的游戏开发概念的资源: