最近我一直在研究一个多人联网应用程序。我已经使用Bonjour服务和NSStream对象成功实现了客户端服务器模型。双向沟通已成功完成。多人联网游戏中的同步?
我面临的问题是:运行应用程序的两个设备通过本地wifi连接。将消息从客户端发送到服务器时存在延迟问题,反之亦然。
描述简要:
- 这是一个赛车游戏,最多两个玩家。
- 一台服务器和其他客户端。
- 当客户端按下按钮时,一个特定的消息被发送到服务器,告诉服务器哪个键或按钮被按下。然后,服务器作出相应的响应,并在服务器本身上对客户的汽车进行更改。这些变化并不总是相同的。客户端屏幕上的汽车的实际位置与服务器屏幕上的汽车的实际位置总是存在差异。
任何想法?
也许代替将按键发送到服务器,您应该只将汽车的状态发送到服务器。像速度,x,y,z位置。这样在客户端机器上就不会出现延迟,但服务器和客户端之间可能存在不一致。 – netbrain 2011-04-29 13:25:54
[处理网络游戏中的延迟]可能的重复(http://stackoverflow.com/questions/42515/dealing-with-latency-in-networked-games) – 2011-04-29 13:25:55
@netbrain - oh亲爱的上帝没有。规则#1 *永远不要相信客户* – 2011-04-29 13:26:47