Разработчик переписал исходный код GTA 3 и показал, как Rockstar уместила целый город в 32 МБ памяти PS2

Grand Theft Auto 3 не была первой игрой с открытым миром, но именно она задала шаблон, которому индустрия во многом следует до сих пор. Городские пространства масштаба Либерти-Сити были практически немыслимы на момент выхода тайтла на PS2, однако Rockstar North, тогда ещё известная как DMA Design, сумела втиснуть всё это в поразительно скромные рамки оперативной памяти.

Теперь один разработчик переписал исходный код игры, чтобы наглядно продемонстрировать, как именно работала эта магия.

PS2 была оснащена всего 32 МБ оперативной памяти. По подсчётам Марка Брауна, игрового журналиста, ставшего ютубером и разработчиком, известного по каналу Game Maker's Toolkit, ассеты Либерти-Сити в Grand Theft Auto 3 занимают около 130 МБ данных.

Создатели разделили город на три отдельных острова, каждый из которых загружался независимо, но даже стартовый остров Портленд содержал порядка 40–50 МБ ассетов.

https://www.youtube.com/watch?v=cIbCxbrBCys

Не желая идти на компромисс и создавать скучный, безликий город из низкокачественных моделей, разработчики в итоге разбили Либерти-Сити на то, что Браун описывает как "тысячи маленьких секторов".

Игра загружала ассеты только для секторов, находящихся рядом с игроком. По мере перемещения новые ассеты подгружались, а старые выгружались из памяти. Это и есть "стриминг" – термин, который до сих пор используется для описания подобного управления данными в играх.

Концепция звучит просто, но на практике это фокус, который совершенно незаметен во время игры. Чтобы продемонстрировать его работу, Браун "получил исходный код GTA 3", затем "переписал несколько разделов программы" и "скомпилировал совершенно новый исполняемый файл".

Его модифицированная версия игры наглядно показывает, как работает стриминг – небольшие фрагменты Либерти-Сити появляются и исчезают вокруг позиции игрока.

Теперь вы можете увидеть трюк: как Grand Theft Auto 3 загружает и выгружает небольшое количество ассетов в память по мере вашего перемещения по Либерти-Сити. Игра тайно строит мир перед вами и незаметно удаляет мир за вашей спиной. По сути, вместо того чтобы пытаться уместить целый город в память, Rockstar создала движущееся окно, которое показывает ровно столько города, сколько нужно для поддержания иллюзии.

Конечно, это лишь упрощённое объяснение, которое не учитывает множество проблем, решённых разработчиками по ходу работы. Например, разве игроки не заметили бы, как ассеты появляются вокруг них при движении?

Для решения этой задачи создатели реализовали упрощённые версии моделей, отображаемые на расстоянии, которые заменялись полноценными по мере приближения. Эта техника, известная как уровни детализации, широко применяется в большинстве современных игр.

Полное видео на канале Game Maker's Toolkit подробно разбирает и другие закулисные проблемы, которые Rockstar пришлось решать. Многие приёмы, использованные для работы Grand Theft Auto 3, не были чем-то новым даже в 2001 году, но результат оказался настолько масштабным успехом, что вся индустрия вскоре последовала этому примеру.

Больше статей на Shazoo
Тэги:

Об авторе

Эксперт по Fallout
Главный редактор
Более 16 лет в индустрии освещения видеоигр, кино, сериалов, науки и техники. Особенно разбираюсь в серии Fallout, ценитель The Elder Scrolls. Поклонник Arcanum и Fallout Tactics. Больше всего играю в Civilization, Old World и градостроители. Изучаю ИИ и загадки космоса.