我该如何处理游戏开发中的延迟?

时间:2011-02-23 17:42:25

标签: python pygame latency

我正在开发一个由多人网络浏览器游戏组成的爱好项目。 这是我的第一次,我偶然发现了延迟问题。

我正在努力让用户控制尽可能顺畅,并且延迟正在阻碍。

我认为平均延迟可能在80-200ms左右,对于几乎平滑的控制,命令行动延迟需要小于100ms。

我有几个问题:

  • 尝试在需要之前100毫秒发送用户操作是不错的做法?例如用户保留' - >'按下箭头键,我需要提交右箭头键动作100ms才能将动作提交给服务器。

  • 开发人员如何在在线服务器和客户端之间保持一致/同步?

  • 有任何提示或建议吗?


谢谢你们,非常感谢帮助。 :)

2 个答案:

答案 0 :(得分:5)

问题1)是的,但是如果你正在做这样的实时运动,我会考虑在本地渲染它(使用碰撞检测而不是),然后在服务器上进行验证以确保它们不会欺骗它(即每秒更新服务器上的位置,并确保它们可以在一秒内从A到B等等。)

问题2)每隔一段时间(四分之一,一半,全秒)你发送一个数据包,其中包含其他玩家做过的环境更新以及npcs做了什么等等。

问题3)然后开发个人资料。按照您希望的逻辑方式进行操作。然后,如果您发现可玩性太滞后,请继续优化界面和网络层。你可能会发现它很好!

答案 1 :(得分:1)

重要的是在需要时加载资源。也就是说,在大多数3D'移动'游戏中,将资源加载为接近需要它们的对象。