我正在开发一款多人角色扮演游戏,(不,它不是mmorpg。;)Smooth MultiPlayer机芯
我目前的设置是这样的。
客户端告诉服务器“我想向前移动”/“我想向后移动”,然后服务器更新您的实体,并通知所在地区的所有客户端有关更改。服务器每隔20ms更新一次实体,每隔100ms向客户端发送一次更新,这些更新包含位置,速度,旋转等。
目前为止还不错,但我没有任何资料可以平滑数据包之间的移动在客户端,我必须说,我无法得到它的工作。我一直在阅读预测,插值和死锁,但对我来说这一切都很糟糕。
所以现在我只是做一些像“位置= Packet.Position”,这会导致一个非常口吃的运动。
所以,我想要的帮助是,我如何得到更流畅的运动?一直在看XNA预测样本,但我无法做到。
谢谢// F
你是否只需要让玩家的动作更流畅呢?客户是否知道玩家的当前速度? – ssmir 2011-01-18 22:42:37
那么,目前我只有球员,这是我最关心的问题。客户端知道速度,它包含在服务器的状态包中。其实我在IRC上得到了一个很好的答案,明天会试试,如果成功,我会分享。 – 2011-01-18 22:51:54