Изображение к Бывший разработчик из Respawn о эксплоитах и сетевой модели The Division

Гленн Фидлер, бывший сотрудник Respawn, где проработал в качестве главного программиста над Taitanfall, и ведущим сетевым программистом в Sony Santa Monica до этого, написал заметку в блоге, в которой рассказал о том, как в The Division организован обмен данными между игроками и сервером.

Фидлер подозревает, что обмет происходит с помощью “модели доверенной сетевой загрузки”, которая и может быть причиной некоторых эксплойтов, которые продолжают появляться.

Он привел в пример одно видео, которое показывает игрока, использующего Cheat Engine на PC, чтобы найти адреса памяти и использовать их, давая игроку бесконечное здоровье, боеприпасы и т. д.

Дело в том, что не все так просто и нельзя добавив проверку на сервере решить эту проблему. Топовые FPS, такие как CS, Titanfall используют усовершенствованный подход, который был использовал еще в Quake.

Эта модель сети имеет две основные функции, которые вы, наверное, слышали: прогнозирование со стороны  клиента, так что игроки не чувствуют отставания в их собственных действиях (движение, стрельба и т. д.), и задержки. Но что особенно важно, решение о том, попали ли вы в игрока в момент выстрела, принимается на сервер, не на клиенте.

Получается, что сервер выступает в качестве “реальной игры”, и никогда не доверяет входящим данным поголовно. Сервер принимает данные от всех клиентов и работает с ними одновременно. Под влиянием всех этих данных сервер и регистрирует попадание.

Например, если отправлены данные от игрока, что он, удерживает кнопку огня,  сервер выполняет тот же код полученный от игрока, то есть воспроизводит ситуацию, но с учетом скорострельности оружия, количества патронов в оружие, и так далее.

Другими словами если игрок попытается изменить кол-во патронов в оружие и отослать эти данные на сервер, то сервер проигнорирует их, и будет сверятся с своим “эталоном”. Вы можете прочитать остальную часть записи Фидлера по ссылке. В The Divison, по всей видимости, все данные принимаются без разбора, что и приводит к появлению “читов” и “уязвимостей”.

Заметили ошибку в тексте? Выделите ее и нажмите сочетание клавиш CTRL+Enter. Мы узнаем об опечатке/ошибке в кратчайший срок и исправим её.
Комментарии Всего комментариев 0