我和一个朋友讨论了FPS服务器如何更新连接到它的客户端。我们观看了一个视频,其中一个人在战地:恶公司2中作弊,看到它如何突出显示屏幕上敌人的位置,这让我们想起了什么。
他认为服务器只会向客户端更新即时相关的信息。例如,如果敌方玩家距离客户端太远或者客户端视线之外,服务器不会发送有关敌方玩家的信息,以提高效率。但他不确定——他提出了一个例子,有人藏在石头后面,看不到任何人。如果玩家突然出现在他的视线范围内,而他前方有三名玩家,那么在服务器传输必要信息的50毫秒延迟之前,他们将无法在屏幕上呈现。
我的观点恰恰相反:服务器向客户端发送有关每个玩家的所有信息,让客户端自行确定允许什么和不允许什么。我认为,这样做对于服务器来说实际上在计算方面更加节省成本,因为服务器只需将所有内容发送到客户端,然后让客户端进行重量级操作。我还想到了作弊程序是如何工作的——它们拦截服务器数据包,获取敌人的位置,然后在客户端视图中显示它们。
那么问题来了:现代第一人称射击游戏服务器采用哪些一般策略或政策来保持其客户端更新?
他认为服务器只会向客户端更新即时相关的信息。例如,如果敌方玩家距离客户端太远或者客户端视线之外,服务器不会发送有关敌方玩家的信息,以提高效率。但他不确定——他提出了一个例子,有人藏在石头后面,看不到任何人。如果玩家突然出现在他的视线范围内,而他前方有三名玩家,那么在服务器传输必要信息的50毫秒延迟之前,他们将无法在屏幕上呈现。
我的观点恰恰相反:服务器向客户端发送有关每个玩家的所有信息,让客户端自行确定允许什么和不允许什么。我认为,这样做对于服务器来说实际上在计算方面更加节省成本,因为服务器只需将所有内容发送到客户端,然后让客户端进行重量级操作。我还想到了作弊程序是如何工作的——它们拦截服务器数据包,获取敌人的位置,然后在客户端视图中显示它们。
那么问题来了:现代第一人称射击游戏服务器采用哪些一般策略或政策来保持其客户端更新?