问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Tick rate与Update rate:多人游戏中的关键概念

创作时间:
作者:
@小白创作中心

Tick rate与Update rate:多人游戏中的关键概念

引用
1
来源
1.
https://docs-multiplayer.unity3d.com/netcode/1.12.0/learn/ticks-and-update-rates/

在多人游戏中,除了延迟的影响外,服务器的Tick rate和客户端的Update rate也会影响游戏体验。本文将详细介绍这两个关键概念及其对游戏性能的影响。

Tick rate

Tick rate,也称为模拟速率,是衡量服务器更新游戏状态频率的指标。在每个Tick的开始,服务器会处理自上一个Tick以来从客户端接收到的所有数据,并运行必要的模拟来更新游戏状态。更新后的游戏状态随后被发送回客户端。服务器完成一个Tick的速度越快,客户端就能越早接收到更新的游戏状态(受客户端Update rate的限制)。

Tick rate以赫兹(Hz)为单位。例如,60Hz的Tick rate意味着服务器每秒更新游戏状态60次,而30Hz的Tick rate则意味着服务器每秒只更新30次。较高的Tick rate可以提供更响应的游戏体验,但会增加服务器的负载。

如果服务器在当前Tick结束前无法处理完所有接收到的客户端数据,就会产生诸如橡胶带效应、玩家瞬间传送、击中判定失败和物理效果失效等游戏问题。因此,在追求高Tick rate以实现响应性游戏体验和确保服务器有足够时间处理所有客户端数据之间需要找到平衡。

Update rate

Update rate衡量客户端与服务器之间发送和接收数据的频率。它也以赫兹为单位,与Tick rate类似,较高的Update rate可以提供更响应的游戏体验,但会增加客户端和服务器的处理和网络需求。


除了增加感知延迟外,较低的Update rate还会导致其他问题,例如多个更新被捆绑在一起并在同一时间到达,从而产生不良行为。

以"超级子弹"为例:如果游戏中的一把枪每秒可以射击的次数超过客户端的Update rate,那么在某个时刻,多颗子弹的命中效果将在同一个更新中被传达。对于接收此更新的玩家来说,这将看起来像是单颗子弹造成了不应该有的额外伤害,因为他们实际上是在一次更新中接收到来自多颗子弹的信息。

下图说明了10Hz和60Hz Update rate之间的差异。在10Hz Update rate的情况下,游戏每秒向服务器发送10次更新,因此一把每分钟可发射600发(即每秒10发)的枪械将只会每次更新发送一颗子弹。如果枪械的射速超过每秒10发(如750 RPM),就会遇到"超级子弹"问题。而60Hz的高Update rate可以解决这个问题,确保每颗子弹都能在各自的更新中单独到达。


Tick rate与Update rate的差异

如果客户端的Update rate低于服务器的Tick rate,那么客户端将无法享受到高Tick rate带来的好处,因为客户端只能按照自己的Update rate接收更新,即使在期间已经处理了多个Tick。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号