我正在开发Unity3D中的多人游戏,我想要一些同步帮助。其中一个玩家充当服务器,其他人都是客户。在游戏中的某个时刻,所有玩家在进入下一步游戏之前都有10秒的时间回答问题。他们回答问题的时间被记录下来并用于找出最快的答案,因此所有客户同时启动他们的计时器非常关键。
就消息传递而言,构建此消息的最佳方法是什么?这些消息包含哪些信息?
我尝试/想过的事情:
提前致谢。
答案 0 :(得分:1)
根据您正在开发游戏的人,您可以随时让客户处理时间。让服务器为客户端提供信号以显示问题并启动计时器,然后等待响应。然后,每个客户端可以为用户计时,并将时间与用户的答案一起提供给服务器。只要服务器为客户端提供几秒钟的“缓冲”,它就应该以准确的时间接收所有答案,无论有多少滞后。
唯一的问题是,再次取决于您的受众,用户可能会篡改发送的数据。
答案 1 :(得分:1)
您可以让服务器给出启动计时器的信号以及DateTime。不是在消息的同时启动计时器,而是在发送消息后几秒钟向客户端发出DateTime。这样,客户端一旦收到消息就不会启动计时器,从而允许滞后的用户“赶上”。 (例如,信号在上午7:00:00发送,包含时间7:00:05。当客户收到消息时,他们等待启动计时器直到7:00:05,所以所有计时器都可以从同时。)