FPS多人游戏服务器更新客户端的一般策略是什么?

Hoo*_*ing 7 client-server frame-rate multiplayer

我和朋友正在讨论FPS服务器如何更新连接到它的客户端.我们观看了一个在战地:Bad Company 2中作弊的人的视频,看到它如何突出显示屏幕上敌人的位置,这让我们思考.

他的论点是,服务器只使用与客户端直接相关的信息更新客户端.即,如果敌人玩家距离客户太远或者出于效率原因而离开客户的视线,服务器将不会发送有关敌方玩家的信息.但他不确定 - 他提出了一个隐藏在岩石后面的人的例子,无法看到任何人.如果玩家突然出现在他的视线中有三名玩家的位置,那么在他们在屏幕上渲染之前会有50ms的延迟,而服务器会传输必要的信息.

我的论点恰恰相反:服务器向客户端发送有关每个玩家的所有信息,并让客户端理清允许的内容和不允许的内容.我认为,对于服务器来说,只需将所有内容发送到客户端并让客户端执行繁重的工作,实际上计算成本会更低.我还想到这是骗子程序如何工作 - 他们拦截服务器数据包,获取敌人的位置,然后在客户端的视图中显示它们.

所以问题是:现代第一人称射击服务器用来保持客户更新的一般政策或策略是什么?

Kyl*_*tan 11

这是你的位置和你朋友的位置之间的妥协,每个游戏将对此作出略微不同的决定,以实现他们想要的权衡.服务器可以尝试不发送超出其需要的信息,例如.执行距离检查,但不可避免地会发送一些可被利用的信息,例如发送一个岩石背后的敌人的位置,这两者都是因为服务器每次计算确切的视线太昂贵还有你提到的延迟问题.

通常情况下,你会发现FPS游戏确实倾向于"泄漏"比其他游戏更多的信息,因为他们更关心的是流畅的游戏体验,需要更快,更常规的更新速度.此外,与MMO不同,FPS播放器通常可以自由移动到不同的服务器,如果他们发现他们的游戏被作弊破坏了.

一些额外的阅读:

  • 我添加了一些答案的链接.我从阅读Gamedev.net论坛中学到了很多东西. (2认同)