我一直在考虑一款多人RTS游戏。我似乎无法解决的部分是保持单位运动同步。如果我将单元A移动到XY位置,我必须将其传回服务器,该服务器将中继到另一个客户端。
我很好奇通信会是什么样子。您是否只是与服务器通信我正在将单元A从JZ移动到XY?也许你需要通过coord来传达运动协调?从一个客户到另一个客户传达单位运动的最有效方法是什么?
答案 0 :(得分:4)
我假设您打算使用客户端 - 服务器网络范例?在这种情况下,您无法信任客户端来处理单元的实际定位,您必须将该任务委派给服务器。然后,您可以从每个客户每个刻度线中获取命令列表,并计算每个单元的移动,一旦完成,接下来勾选您转发与每个客户相关的每个单元的位置(在整个地图的基础上,或者每个视图),并再次启动该过程。
如果您只对Peer-to-Peer范例感兴趣,那么这个过程会更简单一些,因为您可以使用循环链,在这种情况下,每个客户端仅从一个客户端接收并仅发送到一个客户端可以将其视为每个发送和接收的客户圈,或者(高效率)系统,客户端将其单元的位置发送给每个其他客户端,并从每个其他客户端接收其他单元的位置。
就我个人而言,我相信Client-Server范例将是更好的选择,因为您可以消除累积延迟的影响以及流氓客户端的问题。
祝你的项目好运! :)
答案 1 :(得分:0)
我认为你告诉服务器将单位A移动到XY点,它会告诉所有客户当每个时间步移动时单位的当前位置(如果他们可以看到该单位)。这基本上将路径查找和战斗处理放在服务器上。