Language agnostic RTS游戏协议

Language agnostic RTS游戏协议,language-agnostic,Language Agnostic,我一直在考虑多人RTS游戏。我似乎无法回避的部分是保持单位运动同步。如果我将装置A移动到点XY,我必须将其传回中继到另一个客户端的服务器 我很好奇通讯会是什么样子。你能告诉服务器我要把A单元从JZ移到XY吗?也许你需要一个接一个的沟通?将设备从一个客户端移动到另一个客户端的最有效方法是什么?我认为您应该告诉服务器将设备A移动到点XY,它会告诉所有客户端设备在每个时间步移动时的当前位置(如果他们能看到该设备)。这基本上将路径查找和作战处理放在服务器上。我假设您打算使用客户机-服务器联网模式?在这种

我一直在考虑多人RTS游戏。我似乎无法回避的部分是保持单位运动同步。如果我将装置A移动到点XY,我必须将其传回中继到另一个客户端的服务器


我很好奇通讯会是什么样子。你能告诉服务器我要把A单元从JZ移到XY吗?也许你需要一个接一个的沟通?将设备从一个客户端移动到另一个客户端的最有效方法是什么?

我认为您应该告诉服务器将设备A移动到点XY,它会告诉所有客户端设备在每个时间步移动时的当前位置(如果他们能看到该设备)。这基本上将路径查找和作战处理放在服务器上。

我假设您打算使用客户机-服务器联网模式?在这种情况下,您不能信任客户端来处理单元的实际定位,您必须将该任务委托给服务器。然后,每次勾选从每个客户机获取命令列表,并计算每个单元的移动,一旦完成,下一次勾选将传递与每个客户机相关的每个单元的位置(无论是基于整个地图还是基于每个视图),然后再次启动该过程

如果您只对点对点模式感兴趣,那么这个过程会稍微简单一些,因为您可以使用一个循环链,在这种情况下,每个客户机只从一个客户机接收,只向一个客户机发送,这可以被视为每个发送和接收的客户机的循环,或者(非常低效)客户向其他客户发送其单位头寸,并从其他客户接收其他单位头寸的系统

就我个人而言,我相信客户机-服务器模式将是更好的选择,因为您消除了累积延迟的影响和恶意客户机的问题


祝你的项目好运!:)

我认为处理定位的服务器也是如此。我假设在每次勾选时,我都可以将对象的位置和状态发送给每个客户机。位置信息显而易见。可能状态会告诉客户端,如果对象正在移动,客户端会对精灵执行适当的动画。听起来合适吗?是的,如果所有的视觉功能(如渲染信息、动画等)都在客户端完成,关键数据处理在服务器端完成,我会构建一个系统。状态应该包含诸如健康、动画信息等信息,以及我们基本上不应该信任客户端的任何信息。@Darthg8r:几乎所有RTS都使用对等体系结构-客户端服务器非常不典型。有关更多信息,请参阅。注意:重新发布在