Моддер подробно рассказывает, как Rockstar Games уместила открытый мир Либерти-Сити GTA III в жалкие 32 Мб памяти PS2

GTA 3 практически изменила игровую сцену с открытым миром, когда вышла на рынок в 2001 году. Удивительно, как Rockstar Games удалось заставить Grand Theft Auto III работать на PlayStation 2, которая имела всего 32 МБ оперативной памяти.
Несмотря на это, Rockstar Games втиснула в игру 4-километровый открытый мир, наполненный многочисленными пешеходами, уникальными автомобилями, такими как Banshee, и тремя исследуемыми островами: Портленд, остров Стонтон и Шорсайд Вейл. Как же Rockstar Games справилась с этой задачей на 32 МБ памяти PS2?
Вот тут-то Марк Браун из Game Maker's Toolkit вступает в игру. В своем новом видео на YouTube он не только разобрался в причинах, но и получил исходный код GTA 3, переписал целые куски программы и перекомпилировал совершенно новый исполняемый файл, который раскрыл скрытую систему потоковой передачи данных в игре. В видеоролике он объяснил:
"Теперь Вы можете увидеть хитрость: как Grand Theft Auto 3 загружает и выгружает небольшое количество активов в память, пока Вы перемещаетесь по Либерти-Сити. Он тайно строит мир перед Вами и так же тайно удаляет мир за Вашей спиной. По сути, вместо того, чтобы пытаться вместить в память целый город, Rockstar вместо этого создала движущееся окно, которое показывает лишь достаточную часть города, чтобы иллюзия работала."
Вот как Rockstar Games удалось уместить 4-километровую карту Либерти-Сити из GTA 3 в 32 МБ памяти PS2
Модифицированный Брауном исполняемый файл GTA 3 позволяет игрокам наблюдать, как куски города появляются и исчезают в реальном времени в зависимости от того, где стоит Клод. Он также подробно описал количество уникальных автомобилей, которые игра может отображать на дорогах одновременно, пока Вы за рулем, что объясняет появление EC Cheetah, случайно проезжающего по дороге после того, как Вы завладели им.
Ранее бывший программист Grand Theft Auto III Оббе Вермей (Obbe Vermeij) в отдельном интервью подробно рассказал о трудностях, связанных с переносом игры на PS2, заявив:
"Мы никак не могли уместить всю карту GTA 3 в памяти PS2". Потоковая передача включает в себя загрузку моделей с DVD по мере того, как игрок передвигается. Это была самая сложная техническая задача во время разработки GTA 3, и ее решал Адам Фаулер"
Для контекста, на бумаге кажется, что запустить Grand Theft Auto 3 на PS2 невозможно, поскольку одни только активы занимают около 130 МБ, что почти в четыре раза больше, чем может вместить консоль в любой момент. Rockstar использовала массу обходных путей.
Первым обходным решением было разделение Либерти-Сити на три отдельные части: Портленд, остров Стонтон и Шорсайд Вейл. Каждый из этих островов загружался отдельно. Однако один только Портленд занимал 40-50 МБ ресурсов.
Поэтому Rockstar разбила каждый остров на тысячи крошечных секторов. Игра сохраняла в памяти те из них, которые находились прямо в поле Вашего зрения, и постоянно меняла местами куски активов в ограниченной памяти RDRAM, пока Вы ехали и бродили по Либерти-Сити.
Даже медленный DVD-привод усложнял разработку, поскольку команде приходилось быть очень осторожной в выборе момента извлечения данных, чтобы избежать зависания игры.













