我实际上并没有自己编写这个软件,但我突然想到我不知道如何解决这个问题。作为解释这个问题的最佳方式,我将描述一个假设的多人第一人称射击游戏的特定场景......
- 玩家 A 躲在一些朝西的灌木丛中
- 玩家 B 正从东面偷袭玩家 A,或潜入玩家 A 身后
为这个游戏编写的一个流行的“hack”是让玩家 A 有一个雷达来显示玩家 B 的位置,即使他在屏幕上看不到玩家 B,而且游戏不支持雷达。这种破解是可能的,因为服务器正在向特定范围内的所有玩家(可能在玩家 A 的剪裁平面内)向玩家 A 的客户端发送信息。(据我所知)服务器尝试仅向玩家 A 的客户端发送玩家 A 视野内玩家的信息是不现实的。因为服务器必须将所有附近玩家的信息发送到玩家 A 的客户端,玩家 A 可以编写一个 hack,在他的屏幕上覆盖一个雷达,通过观察发送到客户端的数据并提取敌方玩家状态更新来填充该雷达。我认为这些通常被称为“雷达”或“
有没有办法在发送给客户端的信息中混淆或隐藏敌方玩家的状态更新?据我了解,加密对于实时解决方案不可行?即使服务器只能在玩家 A 的视野范围内发送玩家的状态更新,这仍然允许玩家 A 的 hack 显示玩家躲在伪装或掩护物体后面(大概是透明的)。
我唯一能真正想到的就是实施某种类型的“punkbuster”解决方案。也就是说,让玩家 A 的客户端定期扫描非法进程。这个想法是任何流行的黑客都会受到监控。不受欢迎的黑客攻击会影响足够小的玩家群,以至于他们太小而无法追踪。