在上周某天的头条
《蛇哥疑似开挂!松鼠打不过仓鼠完善总结》
中,我们有稍稍粗略的提到过“Tickrate”这个词的概念。在CS:GO中的Tickrate值常年128,然而绝地求生的Tickrate值只有8。Tickrate值太低对于游戏的影响就是:
你在绝地求生中发现了一名敌人,你先开了5枪打中敌人在对方必死的情况下,你却发现你倒地了,这是为何?
游戏服务器tickrite相当于你将操作后的人物动作上传至官方服务器。拿伤害判定来说,128个tickrite单位证明一秒有128次伤害判定,64个单位一秒有64次判定(csgo的设定)。
就好像,你和敌人相遇打了他五六枪没倒,然而却被他随手两枪放倒,明明是你先开的枪,但是死亡的却是你自己。
可能大家会觉得这跟我们的网络延迟有关,但是实际情况却是和Tickrate相关。
Tickrate简单的说就是:网游是依赖服务器和各客户端协同运作的,每个玩家客户端不断向服务器发送玩家的指令和状态(例如开枪、移动、瞄准等动作),服务器接收全部玩家的输入后,通过计算将结果反馈给各个客户端如此循环往复。
Tickrate就是服务器每秒钟接收并运算的次数。
近日,常于某S姓大佬组排的Just9n在直播中分析了他的一场游戏,直播录像中显示他打了敌人五枪,四枪身体一枪头,一级防具的敌人按理说早就阵亡了,但是敌人却掏出Tommy Gun直接反杀。
而在敌人的视角中则显示
一枪未开,滴血未掉…
而Reddit网友则在评论中表示:当玩家越来越专业之后,这游戏还是这个鬼样子,你能相信一款风靡全球的游戏平均tickrate只有8吗?
然而为什么绝地求生在Tickrate这么低的情况下还是可以玩?
主要是因为绝地求生的判定方式与其他FPS游戏存在根本性的差异。在CS这款游戏里,玩家的每一个操作都会向服务器传输一个数据包,然后服务器会检测数据的误差并修正,类似于武器精度误差和玩家移动误差。这也意味着,稍有一点数据不同步,就会产生你一梭子弹打人身上没把他打死的情况,这是FPS游戏研发过程中最大的一个问题。在你将准星移动到对手身上点下左键开火的时候,有一帧的传递出现失误,你射出的子弹可能就打在空处了,玩家的命中判定是同时提交到服务器和客户端两个地方处理的,如果有一点微小的不同步,可能只有10ms的误差,都有可能导致客户端中子弹没击中对手的情况。
但是在绝地求生中,情况恰恰相反,这个游戏的判定都是由客户端单方面完成的。因为在由100名玩家的绝地岛上,绝地求生服务器完成与CS同样级别的认证是完全不可能的,所以绝地求生的Tickrate只能那么低!绝地求生的系统只会做出一次判定,在你开枪的一瞬间,客户端会直接判定你的子弹能否通过障碍击中对手,如果你的子弹碰到了障碍物不能前进,然后它会发出指令取消该射击命中判定。判定命中与否的hitbox(Hitbox是3D游戏中用于判定物体命中、物体碰撞等情况的物理模型)只存在于在客户端上。尽管服务器可以跟踪玩家的位置,但是它只用于接受数据,它是不会去判定数据的。
目前CS:GO的tickrate保持在128左右,而绝地求生的只有8,这就是为什么很多人说CS:GO是最好的FPS电竞游戏。眼下吃鸡在着力发展电竞,但根据目前的情况来看,这并不是一款真正适合充当电竞项目的游戏,最重要的公平它都不能保障。
这样一款每秒计算8次伤害,自带125ping值的游戏真的还需要优化完善才能更加有竞技性,包括职业比赛的公平性。
有很多人也看过A+,韦神,XDD等选手的第一视角比赛,他们的操作或多或少会受到服务器影响。可能有人会提出:那大家都卡啊,很公平啊!
可是,只要外界干扰存在,就不会有公正的比赛,你不能保证每个队员受到的影响是一样的。
领取专属 10元无门槛券
私享最新 技术干货