[Перевод] Исследование кода GTA Vice City
![[Перевод] Исследование кода GTA Vice City](https://habrastorage.org/getpro/habr/upload_files/3b7/5ce/849/3b75ce849f7498a6d0807cb28f5ec93f.jpg)
В этой статье мы проанализируем код одной из самых известных в мире игр: Grand Theft Auto Vice City. Это игра, на которой мы выросли. Хотя с момента её выпуска прошло более двадцати лет, код игры по-прежнему нас восхищает. Он не только хорошо работает на CPU с частотой 300 МГц (поскольку изначально его писали для PlayStation 2), но и обеспечивает игровой процесс без экранов загрузки сегментов карты, несмотря на ограничение в 32 МБ ОЗУ.
Здесь стоит упомянуть, что мы будем рассматривать не оригинальный исходный код, написанный Rockstar, а код на C++, полученный реверс-инжинирингом двоичных файлов игры. Мы поговорим о специфике эпохи PS2, почему игра почти никогда не распределяет память, о том, что весь город состоит из 25 пешеходов и 12 машин, обсудим работу физики и распознавание коллизий. В игре даже есть используемая для трюков система реплеев, которой для записи всех движущихся вокруг игрока объектов хватает одного мегабайта памяти.
Кроме того, Rockstar реализовала точно ту же механику работы с данными, что и в современных ECS-движках: целое число, в котором упакованы индекс слота и счётчик поколений, благодаря чему устаревшая ссылка ни на что не указывает.
В конце мы поговорим о знаменитых читах игры и о том, как она боролась с пиратством, ломая снайперскую винтовку, создавая ураган или даже повреждая данные сохранений.
Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.
Источник: Habr