天天动画片 > 八卦谈 > 回滚网络代码/GGPO 分析

回滚网络代码/GGPO 分析

八卦谈 佚名 2022-12-16 15:20:56

官网:https://www.ggpo.net/

开源项目:https://github.com/pond3r/ggpo

由TonyCannon发明,旨在提高线上格斗游戏的公平体验,设定一个玩家可接受的公平延迟,来提高线上玩家可匹配范围,使得高低玩家各取所需,享受竞技游戏

现实情况,若按照最低延迟来匹配对手的规则的话,玩家线上的面对的对手池就很少(网络延迟必然存在),这样带来的问题是,无法匹配更远同等竞技水平,高水平和低水平玩家经常相遇导致双方游戏体验不好(高水平玩家没法实现同等切磋,低水平玩家经常被虐)

如果采用“传统网络”解决方案

在现实时间StartTime时,player1玩家点击攻击按钮,本地NetDelay=0,所以直接播放攻击动画,直到EndTime1播放完成,这时候攻击瞬间发出的数据包耗时NetDelay到达player2,攻击动画从头播放,那么EndTime2才算播放完成,player2在看到攻击技能抬手就立马进行应对,使用格挡技能。结果EndTime1<EndTime2。

站在player1的角度,攻击动画已经播放完还没收到攻击被格挡的数据,player1胜利;

站在player2的角度,已经尽可能缩短反应时间,成功格挡了这次的攻击,player2胜利。

一般游戏都是由游戏设计者来决定偏袒哪方,这样就带来不公平性

如果采用“回滚网络”解决方案

[定义可接受输入延迟值]ClickDelay

在现实时间StartTime时,player1玩家点击攻击按钮,本地NetDelay=0,经过输入延迟后才开始播放攻击动画,直到EndTime1 播放完成,这时候攻击瞬间发出的数据包耗时NetDelay到达player2,直接切入正确的动画进行继续播放,而非从头开始播放动画,EndTime2播放完成,player2在看到攻击技能抬手就立马进行应对,使用格挡技能。结果EndTime1==EndTime2。

双方演示一致,胜利结果随允许输入延迟值越接近正确的胜利。


结论:回滚网络代码,基于双方提前协商好的输入延迟的基础上,使用输入延迟尽可能抵消网络延迟,脱离设计偏袒可能,营造双方公平环境

 

 

资料参考

【FTG】Code Mystics 解释网络代码:输入延迟 vs. 网络回滚_哔哩哔哩_bilibili

【天Talk】格斗要火?DNF和LOL为什么都开始做格斗游戏了?!!【直播精剪】_哔哩哔哩_bilibili



本文标题:回滚网络代码/GGPO 分析 - 八卦谈
本文地址:www.ttdhp.com/article/14135.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们