延迟补偿是什么

2025-02-27 12:32:26
推荐回答(3个)
回答1:

“延迟补偿”是个服务器端的行为。就是在服务器端考虑了客户端的网络延迟,将服务器状态回滚到延迟前,再进行运算。所以这个策略有时候也被称作“rewind replay”。

Lag Compensation除了用于改善因延迟带来的用户体验,实际上更重要的是为了防止由于“客户端预测”而可能导致的作弊行为。在网游设计中有一个铁律:“The Server Is The Man”(Unreal的老大说的)。

在网络游戏中,由于延迟或者网络状况的抖动,可能会将客户端效果产生一定的扭曲,影响玩家体验以及进一步的操作。要降低因为延迟带来的体验问题,有两种策略,一种为客户端预测,一种为延迟补偿。

扩展资料:

在很多游戏里,常常会出现网络延时这个词,有的玩家高有的玩家低。网络延时指一个数据包从用户的计算机发送到网站服务器,然后再立即从网站服务器返回用户计算机的来回时间。通俗的讲,就是数据从电脑这边传到那边所用的时间。

网络延时高可能有以下几个原因:

1. 本机到服务器之间路由跳数过多。由于光/电的传输速度非常快,他们在物理介质中的传播时间几乎可以忽略不计,但是路由器转发数据包的处理时间是不可忽略的。当本机到服务器链路中有太多路由转发处理时,网络延时就会很明显。

2. 网络带宽不够。排除其它因素,如果客户端和服务器端直接通过一个路由器连接,但带宽只有10Kbps,却同时有多个应用需要传输远超带宽的数据量200Kbps,这时候会造成大量数据丢失,从而表现为响应延时。

3. 处理带宽不够。排除其它因素,如果客户端和服务器端直接通过一个路由器连接,且带宽足够,但服务器端处理能力不足,也会造成响应延时。

参考资料:百度百科-网络延时

回答2:

  在网络游戏中,由于延迟或者网络状况的抖动,可能会将客户端效果产生一定的扭曲,影响玩家体验以及进一步的操作。要降低因为延迟带来的体验问题,有两种策略,一种为客户端预测,一种为延迟补偿。
  “延迟补偿”(Lag Compensation)是个服务器端的行为。就是在服务器端考虑了客户端的网络延迟,将服务器状态回滚到延迟前,再进行运算。所以这个策略有时候也被称作“rewind replay”。Lag Compensation除了用于改善因延迟带来的用户体验(要理解其怎样改善了这方面的用户体验,请参见最后推荐的文章),实际上更重要的是为了防止由于“客户端预测”而可能导致的作弊行为。在网游设计中有一个铁律:“The Server Is The Man”(Unreal的老大说的)。
以上为针对提问相关的回答。再多说一些不太相关的。实际上针对FPS(CS、Quake)和MMO(魔兽)等不同类型的网络游戏,其网络设计差异还是挺大的,涉及到比如发包频率、发包量、服务器处理能力、玩法相关(是否要精确的射线检查)等各方面的考虑。国内游戏研发主要以MMO为主,在这方面大家钻研较多,所以参考魔兽、包括研究著名的魔兽服务端开源实现“大芒果”的肯定不在少数。魔兽在客户端预测方面真是十分厉害的。然而追究到细节,我作为一枚MMO客户端程序员表示至今还有很多不明白是如何实现的。而“大芒果”中,是没有Lag Compensation的,对于加速作弊等几乎没有处理。作为一个号称只用于研究的开源项目没有考虑这些完全可以理解,而我相信真实的魔兽服务器肯定不会实现的那么简单。

回答3:

就是延续一定时间,进行补偿。好多仪表控制都用这种延迟补偿的办法,减少损失。