Создатель GTA 3, Vice City и San Andreas раскрыл секреты создания читов для ПК-версий игр Rockstar и объяснил, как их прятали от игроков
Игроки продолжают узнавать разные производственные секреты Rockstar Games. Оказалось, что читы для Grand Theft Auto 3, Vice City и San Andreas задумывались совсем другими, но попытка их спрятать привела к интересному результату.
Оббе Вермей (Obbe Vermeij), бывший технический директор Rockstar North, продолжает общаться с поклонниками серии Grand Theft Auto. На этот раз он решил затронуть тему производства читов.
Разработчики пытались их «спрятать», чтобы всё не было обнаружено в первый день релиза. Для этого использовали подход с хэш-кодами, но была проблемка — нужный код мог быть сгенерирован совсем другим набором символов. По этой причине пользователи нашли условный чит «HDLMAAXOPK», хотя сам разработчик задумывал вполне осмысленное словосочетание «ILOVESCOTLAND» для активации чита (с точки зрения системы обе комбинации дают нужный код, поэтому активируют чит).
Оббе рассказал, как всё было устроено:
«Читы в GTA 3 (и Vice, и SA) на ПК активировались при вводе последовательности символов.
То есть:
ILOVESCOTLAND — чтобы вызвать дождь,
GUNSGUNSGUNS — чтобы дать игроку много оружия.
Прямым способом обнаружения читов для кода было бы сравнение строки "ILOVESCOTLAND" со строкой последних нажатий клавиш.
Проблема такого подхода заключается в том, что читы будут находиться в памяти в виде читаемого текста. Любой хакер сможет легко найти чит-коды, и все они будут обнаружены в день релиза.
Поэтому для хранения читов я использовал "хэш-коды". Хэш-код — это одно число, которое вычисляется из строки.
Простой (пример) алгоритм хеширования может складывать ASCII-значения каждого символа строки.
Хэш-код для ILOVESCOTLAND будет равен 983. Для GUNSGUNSGUNS это будет 951.
Игра сравнивала эти хэш-коды с хэш-кодом недавнего ввода с клавиатуры. Это сработало. Чит-коды не были взломаны (в конце концов их обнаружили геймеры, пробующие случайный ввод).
Плохая новость заключается в том, что совершенно разные строки могут давать один и тот же хэш-код. Поэтому геймеры находили случайные строки (например, HDLMAAXOPK), а не ту, которую я задал (ILOVESCOTLAND).
Это также означало, что читы срабатывали чаще, чем я предполагал. Это приводило к тому, что читы срабатывали непреднамеренно, иногда во время спидранов. Эти спидраны пришлось прервать, так как правила ясны — никаких читов.
(Чит на броню был изменен в раннем патче с TURTOISE на TORTOISE. Изначально я неправильно написал».
***
Автор обложки: Rockstar Games. Источник изображения: steamcommunity.com