Я на самом деле не пишу это программное обеспечение самостоятельно, но мне пришло в голову, что я понятия не имею, как решить проблему. Как лучший способ объяснить проблему, я опишу конкретный сценарий из гипотетического многопользовательского шутера от первого лица ...
- Игрок А прячется в кустах лицом к западу
- Игрок B подкрадывается к игроку A с востока или подкрадывается к игроку A
Популярный «хак», написанный для этой игры, будет для игрока A иметь радар, показывающий ему местоположение игрока B, даже если он не видит игрока B на своем экране, и игра не поддерживает радар , Это возможно благодаря тому, что сервер отправляет информацию клиенту игрока А обо всех игроках в определенном диапазоне (возможно, в плоскости отсечения игрока А). Было бы нереально (насколько я знаю), чтобы сервер пытался отправлять информацию только клиенту игрока А о игроках в пределах поля зрения игрока А. Поскольку сервер должен отправлять информацию обо всех ближайших игроках клиенту игрока А, игрок А может написать взлом, который перекрывает радар на его экране, который заполняется путем наблюдения за данными, отправленными клиенту, и извлечения обновлений состояния вражеского игрока. Я думаю, что их обычно называют «радарными» или «настенными» хаки.
Есть ли способ скрыть или скрыть обновления состояния вражеских игроков в информации, отправляемой клиенту? Насколько я понимаю, шифрование не было бы жизнеспособным для решений в реальном времени? Даже если бы сервер мог отправлять обновления состояния только игрокам в пределах рамки просмотра игрока А, это все равно позволяло бы хаку игрока А показывать игрокам, скрывающимся за камуфляжем или объектами прикрытия (которые предположительно были прозрачными в незначительной степени).
Единственное, о чем я мог подумать, это реализовать какое-то решение «punkbuster». То есть клиент игрока А должен регулярно проверять наличие незаконных процессов. Идея в том, что любые популярные хаки будут отслеживаться. Непопулярные хаки могут повлиять на достаточно маленькую базу игроков, чтобы они были слишком маленькими, чтобы идти за ними.