网络延迟简介
服务器和客户端之间的距离、数据包跃点数、服务器的节拍率和更新速率,以及很多其他因素会导致多人游戏延迟,下文介绍如何应对此类问题。
什么是网络延迟?
网络游戏会出现单人游戏或仅限 LAN 的游戏中不存在的问题,例如抖动、往返时间 (RTT) 或丢包。
客户端和服务器之间发送、接收信息和排列信息队列而导致的任何形式的延迟都会造成游戏出现问题。有关定义和问题的完整列表,请参阅此处的本指南。
要想成功解决延迟问题,您需要考虑以下因素的优先级和关系:
- 安全性
- 反应能力
- 准确性和一致性
没有任何解决方案是完美的,延迟问题的每一种处理方式都各有优势和劣势。关键是找到适合您游戏的方式,本指南将帮助您了解如何做出明智决策。
这些因素如何影响实际游戏?
如果您想知道这些因素对游戏有何影响,不妨考虑您在一定距离外无法杀死小怪物的游戏示例。
如果您在客户端逻辑中规定,玩家不能在超过 10 米的地方杀死小怪物,但“杀死小怪物”消息属于服务器 RPC,其不会检查服务器端的距离,玩家可以伪造此网络消息,以绕过客户端逻辑。
遗憾的是,总是有人会试图扰乱游戏,所以您应该始终牢记,永远不能完全信任客户端。为了维护游戏秩序并保护所有其他玩家的游戏体验,您的服务器需要逻辑来验证玩家行为是否真的来自客户端。