我已经搜索和阅读了很多文章,并查看了GKTank apple示例(看不到关于我的问题的任何细节,似乎可以在事件发生时进行处理),但我看不到一个示例或教程可以回答以下问题
在通过蓝牙/互联网(也许)的多人游戏中,您如何同步玩家交互,以便在考虑延迟等因素的情况下出现正确的游戏结果。
例如:
在通过蓝牙连接的两个独立设备上,向每个玩家A和B显示一个按钮
玩家A按下按钮(玩家A正在托管游戏,因此延迟不是问题)玩家B在玩家A之前按下按钮,但他与玩家A的设备的连接至少有200ms的网络延迟
问题:游戏需要知道玩家B首先被按下,即使玩家A的触摸请求将首先到达游戏代码-即对主机玩家没有好处。
我知道触摸事件有时间戳,所以我可以确保按下的实际时间是从玩家B发送到游戏代码的……但不确定这是否是正确的方法,以及它是否是从那里开始的。
我希望答案就在某个游戏周期中,在游戏周期中,触摸不会立即处理,而是在游戏周期内处理……
任何关于这方面的帮助,或者指向教程或处理这一问题的特定源代码的指针都将不胜感激。
亚当
发布于 2011-01-12 23:05:31
你可能想在https://gamedev.stackexchange.com/上问这个问题,因为这是一个关于多人游戏延迟或延迟的一般性问题,并不是特定于iPhone的。
您可以使用时间戳对操作消息进行排序。我想iPhones和AT&T维护的日期时间服务器是同步的。
发布于 2011-01-12 23:05:53
嗯,我没有创建多人游戏的实际经验。但就像大多数游戏开发问题一样,我认为没有错或对,所以一些逻辑思维应该会起作用。
以下是你可能需要考虑的一些想法:
接收延迟的命令
到目前为止,我的2美分;-)
https://stackoverflow.com/questions/4669591
复制相似问题