Большой разбор VGTimes: что лежит в утечке исходников GTA 5

Большой разбор VGTimes: что лежит в утечке исходников GTA 5

Evgenii Sokolov
Сегодня, 02:32

18 сентября в открытый доступ выложили 192 гигабайта исходников GTA 5, украденных у Rockstar в 2022 году. В них лежит второй город — Майами.

Это рабочая ветка разработки GTA 5 из архива, похищенного во время знаменитого взлома, когда в сеть попали первые ролики GTA 6. Отдельные файлы из неё публично разбирают с 2023 года, но целиком архив выложили только сейчас. В нём сохранились уровни, записи багтрекера, звук сцен и код разных лет — от разработки основной игры до обновлений GTA Online.

Одна из главных находок VGTimes — ранний уровень, воспроизводящий Майами. Город стал прототипом Вайс-Сити из GTA: Vice City — мегаполиса, который появится и в GTA 6. Однако найденный нами уровень относится к материалам 2014–2015 годов: его связь с разработкой GTA 6 по проверенным файлам не установлена. В найденном уровне отели Оушен-драйв обозначены настоящими названиями и расположены почти в том же порядке, что и на реальной улице. У города есть геометрия столкновений и транспортные маршруты: по нему можно было ходить и ездить. Ни в одной вышедшей игре Rockstar мы этот уровень не встретили.

В архиве нашлись и следы другого города — Либерти-Сити, а также отменённой кампании на 47 миссий со снятыми сценами и вырезанного ограбления с записанными диалогами. Рядом лежит код обновления, которое вышло через 3 месяца после кражи. VGTimes разбирает, что осталось в планах, а что Rockstar успела собрать, записать и протестировать. Игровых материалов GTA 6 в проверенной нами части архива не нашлось — только ссылки на соседнюю ветку и общие рабочие программы.

Целый город, который никто не увидел

Уровень называется env_test — «испытательный». Название обманывает: испытательные уровни обычно выглядят как серые коробки на пустой плоскости. Здесь 140 229 размещённых объектов, и они складываются в город.

То, что этот уровень воспроизводит именно Майами, особенно хорошо видно по Оушен-драйв. Девять объектов уровня названы по настоящим отелям этой улицы: Majestic, Avalon, Park Central, Beacon, Johnny Rockets, Colony, Starlite, Leslie и Cavalier. В файлах они записаны сокращённо — colonyhotel, starlitehotel и так далее, — но за каждым стоит настоящее здание Саут-Бич со своим адресом.

VGTimes сравнил координаты 9 объектов уровня с адресами на Оушен-драйв. Четыре расположены подряд в том же порядке, что и на настоящей улице: Beacon — дом 720, Johnny Rockets — 728, Colony — 736, Starlite — 750. Расстояния между ними в уровне — 24, 14 и 21 м — соответствуют ширине реальных зданий. Есть и перестановки: Park Central оказался после Majestic, а Leslie и Cavalier поменялись местами. В целом порядок совпадает для 7 объектов из 9.

Здания Оушен-драйв в раннем уровне расположены почти как на настоящей улице
Здания Оушен-драйв в раннем уровне расположены почти как на настоящей улице

Совпадение подтверждают и черновые текстуры. Одна из них называется temp_ih_starliteproportions — «пропорции Starlite». Такая текстура служит ориентиром, когда художник задаёт размеры здания.

Детализация у зданий разная. Colony пока представляет собой простую форму с нишей и 2 крыльями: 3 500 треугольников и 3 материала. У Leslie уже есть балконы, окна, лестница и терраса на крыше — 10 000 треугольников и 25 материалов. Здания на улице прорабатывали по отдельности.

Узнаётся и расположение других частей Майами. Деловой центр находится у реки, порт — на Додж-Айленде. В уровне есть Фишер-Айленд, Вирджиния-Ки и Ки-Бискейн, а посреди залива — дома на сваях, похожие на Стилтсвилл.

На карту нанесены позиции 140 229 объектов уровня — это не снимок экрана
На карту нанесены позиции 140 229 объектов уровня — это не снимок экрана

Морской парк на Вирджиния-Ки тоже состоит из отдельных площадок. В списке объектов есть бассейны дельфинов и косатки, купол морских львов, акулий канал, коралловый аквариум и вольер крокодилов. Для них предусмотрены палубы, мостки, перила и таблички. По этим деталям можно узнать устройство настоящего парка.

Некоторые здания удалось опознать по внешнему виду. Башня из 7 частей повторяет характерные черты Jade Ocean в Санни-Айлс-Бич: 2 изогнутых «паруса» на крыше, ребро по центру фасада, балконы и тёмное остекление. Арена с 3 раздвижными панелями на крыше напоминает Marlins Park.

По крайней мере Jade Ocean построили почти в натуральную величину: основание здания в уровне — 67 на 79 м, высота — 162 м против 166 м у настоящей башни. Расстояния между районами при этом сократили.

Для города подготовили и уличные объекты. В архиве реквизита VGTimes насчитал 1 612 названий; 114 из них не нашлись в проверенной нами розничной версии GTA 5. Среди них — остановки, гидранты, электрощиты, фонари, скамейки и велопарковки. Это набор объектов для улиц, а не несколько случайных декораций.

Снимки карты в текстурах города

На текстурах земли видны изображения карты Майами с названиями улиц и элементами интерфейса картографического сервиса. Судя по этим следам, временной подложкой для уровня служили снимки карты с экрана.

VGTimes нашёл их на 10 наземных текстурах. На одной осталась белая панель с отмеченным пунктом «Show labels» («показывать подписи»), на другой — жёлтая метка «Hospital» прямо на крыше здания. На поверхности также видны названия улиц: «SW 264th St», «Bauer Dr», «Waldin Dr», «SW 280th St». Все они находятся в Редленде, на юге округа Майами-Дейд. На изображении воды сохранилась подпись «Atlantic Ocean».

Снимки с включёнными подписями использовали как временную подложку для земли. По файлам нельзя установить, как художники получили эти изображения и почему оставили подписи.

Даты экспорта показывают, что город строили в 2 этапа. С 19 мая по 4 июня 2014 года появилась разметка: крупные заготовки, названные по районам — Додж-Айленд, Фишер-Айленд, Вирджиния-Ки и Ки-Бискейн. Затем, с 25 ноября 2014-го по 13 мая 2015-го, на её основе создавали здания. Из 1 741 ранней заготовки 1 177 находятся менее чем в 120 м от более поздних построек. Ещё примерно у 20 крупных блоков есть поздние версии на том же месте, почти совпадающие с ними по размерам.

Город строили в 2 этапа: сначала разметка, примерно через полгода — здания
Город строили в 2 этапа: сначала разметка, примерно через полгода — здания

Поздние здания разместили поверх ранней разметки, а не начали город заново.

На чём остановились

Чтобы понять, был ли город только декорацией, VGTimes проверил геометрию столкновений — невидимые поверхности, которые не дают персонажу проходить сквозь здания. Она есть во всех районах: 6 849 файлов и, по нашему подсчёту, 50 100 244 полигона. По городу можно было ходить и ездить.

Для машин проложены маршруты, а вот собственных занятий для пешеходов в уровне не нашлось. Своей таблицы населения у него тоже нет: все 179 групп унаследованы от Лос-Сантоса. Это не значит, что улицы были бы пустыми — движок может населить их и без отдельных точек поведения. Но поведение пешеходов специально для этого города, судя по файлам, не настроили.

Транспортные маршруты уровня: 18 333 узла, образующих уличную сеть
Транспортные маршруты уровня: 18 333 узла, образующих уличную сеть

В городе предусмотрено и ночное освещение: 4 764 фонаря в 26 файлах. Они расположены цепочками вдоль дорог — речь об уличном свете, а не об освещённых окнах. Посчитать фонари по районам нельзя: прямоугольники, задающие их границы, сильно пересекаются.

4 764 фонаря расположены вдоль улиц — это уличный свет, а не окна
4 764 фонаря расположены вдоль улиц — это уличный свет, а не окна

В уровне есть и набор деталей для жилых интерьеров — всего 2 445 размещённых элементов. Среди них 1 498 частей комнат, 475 служебных и 209 жилых коридоров, 189 обычных дверей, 54 двери лифтов и 18 указателей. Ещё 2 элемента не вошли ни в одну группу. Из секций размером от 0,5 до 5 м собирали спальни, кухни, ванные и гостиные; панели-заполнители позволяли подогнать их под нужные размеры. Элементы встречаются на высоте до 163 м — в том числе на верхних этажах башен.

Набор деталей жилых интерьеров: 2 445 размещённых элементов
Набор деталей жилых интерьеров: 2 445 размещённых элементов

В вышедшей GTA 5 тоже есть интерьеры, которые видны через окна. Здесь же детали рассчитаны на сборку отдельных комнат. Можно ли было войти в них, по расстановке объектов определить нельзя.

Что из этого совпало с GTA 6

Ключевой вопрос: та же ли это работа, которая потом легла в основу GTA 6, или просто похожий город?

Сравнивать пришлось с чужим перечнем: своего списка мест из опубликованных роликов у нас нет, поэтому взяли двадцать настоящих майамских объектов, опознанных в материалах шестой части по интерактивной карте Miami New Times. Перечень этот не наш, не полный и составлен по тому, что успели разглядеть энтузиасты, — отсутствие чего-то в нём ничего не доказывает.

Слева — то, что в этом перечне опознано, справа — что стоит в раннем уровне.

Оушен-драйв — та же улица, и общих домов в двух списках не нашлось. В материалах шестой части опознаны номера 101, 940, 1144 и 1430. В раннем уровне — 640, 660, 700, 720, 728, 736, 750, плюс 1244 и 1320. Южные кварталы против северных.

Венецианская дамба — то же место. У нас сорок два куска насыпи Сан-Марино, будка дорожного сбора и мосты; в GTA 6 — Venetian Isle и 1000 Venetian Way.

Кис и мост — то же. Восемьдесят восемь отрезков дороги через острова и трёхчастный мост, который в шестой части опознан как Seven Mile Bridge.

Уинвуд — тот же тип района: заброшенный склад, магазины и три отдельные текстуры граффити.

Брикелл и Бискейн-бульвар — районы размечены, но названий конкретных зданий мы не нашли. В файлах встречаются стройплощадки, парковки и водные объекты. Силуэты зданий здесь не сверяли, поэтому нельзя исключить, что некоторые постройки присутствуют под другими названиями — как Jade Ocean, которую удалось опознать по внешнему виду.

А на Коллинз-авеню стоит один и тот же дом — та самая Jade Ocean.

Ранний Майами и места, опознанные в опубликованных материалах GTA 6
Ранний Майами и места, опознанные в опубликованных материалах GTA 6

А ещё есть три места, упоминаний которых в проверенных нами разборах опубликованных материалов GTA 6 не нашлось: морской парк на Вирджиния-Ки, разобранный по аттракционам, Стилтсвилл и частный остров с гольф-полем. Есть ли они в самой шестой части, по этому перечню не узнать.

Сверяли мы при этом имена объектов, а не силуэты. Поиск по всем 30 880 именам уровня по двум десяткам майамских топонимов даёт ноль: районы в уровне названы своими двухбуквенными кодами, а не по местности. Jade Ocean именно поэтому и опознана по силуэту — по имени её в уровне не найти. Значит, все строки «по именам нет» читаются как «по именам не нашлось, силуэты не сверялись».

Опознаётся при этом одна и та же реальная башня Jade Ocean, а не один и тот же игровой объект. Геометрию сравнивать не с чем: моделей шестой части у нас нет, есть только опубликованные материалы. Значит, тождество файла остаётся недоказанным.

Что можно сказать честно: карты GTA 6 в проверенной нами части архива не нашлось, а сравнение обнаруживает одну и ту же реальную местность — тот же город, ту же улицу, тот же мост и одно и то же реальное здание. Связаны ли между собой две разработки, по этим данным не устанавливается: совпадение натуры доказывает только то, что обе разработки изображали Майами.

И это был не единственный город

Помимо майамского уровня, в файлах остались следы работы над Либерти-Сити для GTA 5.

Самих данных уровня в архив не попало — утекла ветка gta5, а Либерти жила в своей, gta5_liberty. Но следы проекта остались по всему инструментарию, и они говорят больше, чем набор моделей.

У проекта была строка в реестре дополнений GTA 5 — именно так, «GTA5: LibertyV DLC», он и назывался в выпадающем списке у разработчиков. Была своя ветка в системе контроля версий, и из неё собиралась своя сборка. Был свой стандарт материалов в конвейере текстур: художник выбирал в списке тип документа «GTA V Liberty City» — наравне с «Растительностью» и «Кожей персонажа».

И была целая группа кнопок в меню разработчика — «GTA5 NG Liberty»: получить инструменты, получить сборку, запустить на PS4, на Xbox One, на PC. В сохранившейся редакции файла эта группа закомментирована целиком — то есть кнопки в меню не показываются. Работала ли она когда-нибудь раньше, по одному файлу без истории правок сказать нельзя; видно только, что её написали подробно и оставили выключенной.

Движок поддерживал загрузку дополнительных карт: согласно звуковому коду GTA 5, они поставляются с дополнениями и подгружают данные тем же способом, что и основная карта. Это согласуется с записью «GTA5: LibertyV DLC» в реестре: Либерти-Сити планировали как отдельную карту для дополнения.

Самое красноречивое — звук. В игровых архивах лежат 24 файла звуковых настроек либертийского дополнения, которых в розничной игре мы не нашли: 469 имён, из них 163 зоны звукового окружения, названные по районам, дорогам и другим участкам Либерти-Сити. Алгонквин с Даунтауном, Мидл-парком, Стар-Джанкшен, Пургаторием, Маленькой Италией и Вестминстером. Олдерни с доками и тремя промзонами. Дюкс с Бобо, Стейнвеем и Медоуз-парком. Отдельными зонами — девять эстакад и тридцать три дороги.

По этим же зонам мы восстановили, какой район Либерти-Сити где находился.

Контур Либерти-Сити по береговой линии и 163 звуковые зоны южной трети
Контур Либерти-Сити по береговой линии и 163 звуковые зоны южной трети

А рядом лежат описания береговой линии — ломаные по урезу воды. Контур Либерти-Сити по ним уже восстановил и выложил моддер TJGM, он же первым сказал, что карта заметно больше, чем в GTA 4. VGTimes перепроверил это по своей копии и посчитал точнее.

Записей береговой линии девяносто три, точек в них 1798. Берег тянется на 9,5 на 10,2 километра, а вместе со звуковыми зонами занятая область выходит 10,3 на 11,9 километра. Для сравнения: область съёмки карты GTA 5 — 9,2 на 12,5 километра. То есть регион Либерти по этому следу сопоставим со всей картой пятой части.

Регион Либерти-Сити по следу береговой линии сопоставим со всей картой GTA 5
Регион Либерти-Сити по следу береговой линии сопоставим со всей картой GTA 5

Сам город при этом занимает только южную треть: все 163 зоны ложатся в нижнюю часть контура. Севернее — крупный массив суши с длинными островами и характерным крючковатым мысом наверху. А имена береговых линий это подтверждают: север и юго-восток штата, Лонг-Айленд, берег Нью-Джерси и Провинстаун. Крючок наверху по форме похож на Кейп-Код, на оконечности которого настоящий Провинстаун и стоит.

Это след по звуковым данным, а не карта. Что именно было построено в северной части — и было ли построено вообще — по этим файлам не определяется.

Один список на всё невышедшее

Либерти-Сити при этом не был отдельной затеей. В реестре задач лежит внутренний список запланированных дополнений для сетевой игры — четырнадцать строк. В нём вперемешку то, что вышло, и то, что нет.

Вышедшее: Beach Bum, Business Pack, Hipster Pack, рождественские обновления, квартиры, спортивный пак, лоурайдеры. А рядом, в том же перечне и с такими же живыми номерами в багтрекере, — строки про карту Либерти-Сити, режим Cops'n'Crooks и пак про казино, шпионаж и подводное.

Все 3 проекта значатся в списке запланированных дополнений для GTA Online — рядом с теми, которые впоследствии вышли. Это показывает, что Либерти-Сити входил в общий план Rockstar. Но сам список не говорит, насколько далеко продвинулась работа над каждым проектом.

Последний пункт — про казино, шпионаж и подводную тематику — напоминает о материалах для одиночной игры: там тоже встречаются казино, шпионская линия и подводная база. Возможно, одни и те же идеи рассматривали для обоих дополнений. Однако сходство тем не доказывает, что это был один проект: прямой связи между ними в файлах мы не нашли.

Что осталось от отменённых пакетов

В архиве сохранились материалы о невышедших дополнениях, а один из внутренних справочников Rockstar перечисляет 5 пакетов для одиночной игры. Этим справочником пользуются инструменты компании на разных этапах сборки. В его заголовке сказано, что он содержит данные о загружаемых дополнениях GTA 5. В нём лежат пять одиночных пакетов: «Агент Тревор», пак про заказные убийства, пак про отношения и ещё два, названные внутренними словами — Manhunt и Norman.

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

Интереснее другое — насколько по-разному эти пакеты сохранились. От пакета остаться может что угодно: только строка в реестре, только звуковая опись, или полная кампания с кодом.

От одних пакетов осталось название, от других — снятые сцены
От одних пакетов осталось название, от других — снятые сцены

От пака Manhunt не нашлось ничего, кроме имени. В просмотренном нами дереве он больше нигде не встретился, а в записях багтрекера за 2010–2012 годы слово «manhunt» не попалось ни разу. Пакет завели в справочнике — и на этом след обрывается.

От пака про отношения осталась звуковая опись, и она неожиданная. В файле сорок имён, и все сорок — про одно: выступление комика. Выход на сцену, уход со сцены, пять номеров подряд, простой между выходами. А среди них — реакция на выкрик игрока из зала, отдельно в одиночной игре и отдельно в сетевой. И отдельная реакция на то, что зритель уходит.

Иллюстрация: в паке про отношения была сцена стендапа с выкриками из зала
Иллюстрация: в паке про отношения была сцена стендапа с выкриками из зала

Публично про этот пак известно только имя, и Kotaku в своё время предполагал, что он будет про свидания или женитьбу. Оказалось — про комедийный клуб, в котором комика можно было освистывать.

В GTA 4 игрок мог посетить клуб Split Sides и посмотреть выступления комиков. В GTA 5 такой возможности мы не нашли. Название клуба не встречается ни в одном из 1598 проверенных файлов субтитров; имён комиков там тоже нет. Единственная строка на эту тему — заглушка «посетить комедийный клуб». При этом здание и неиспользуемый интерьер сохранились, а в файлах описана система реакций комиков на выкрики из зала. Звуковых записей для этих реакций мы не нашли.

От пака про заказные убийства осталось 188 имён звука — и по ним восстанавливается устройство пакета. Заказы приходили по таксофону: звонок записан в трёх версиях — «до сцены», «во время сцены» и «вдалеке». А одно из убийств происходило в кабине канатной дороги — в описи лежат звуки разбитого стекла, выстрела из РПГ, обрушения и попаданий в машинное отделение.

Иллюстрация: одно из заказных убийств происходило в кабине канатной дороги
Иллюстрация: одно из заказных убийств происходило в кабине канатной дороги

Про саму миссию с канатной дорогой писали ещё в апреле 2015 года, но описывали её иначе: убийство в доме, с переодеванием в работника канатной дороги. Что оно происходило в самой кабине — из звуковой описи видно впервые. И рядом обнаруживается неиспользуемая команда движка GET_NEAREST_CABLE_CAR — «найти ближайшую кабину канатной дороги», — которая до этого выглядела курьёзом в списке.

От армейского пака осталось 105 имён. Две машины — армейский внедорожник и бронетранспортёр, с разгоном двигателя, выхлопом, запуском и остановкой, у бронетранспортёра свой клаксон. Самих записей к ним не нашлось ни в сборке, ни в розничном корпусе звука — только определения. А всё остальное в описи — музыкальные клаксоны: ноты целой октавы, плюс пауза и ноты ниже неё. То есть клаксон, на котором играют мелодию, задумали ещё тогда.

И отдельно — Cops'n'Crooks, сетевой режим из GTA 4, который собирали заново для пятой части. Здесь сохранность совсем другая: в реестре задач из 725 записей 89 помечены этим режимом, а в багтрекере — 844 разных дефекта с упоминанием режима, с июня 2011 по июль 2012. По месяцам виден пик: январь 2012-го — восемнадцать, февраль — сорок четыре, март — девяносто, апрель — триста семнадцать, май — сто пятьдесят пять. Это не заготовка, это месяцы тестирования.

Дефекты «Полицейских и воров» по месяцам: пик в апреле 2012-го
Дефекты «Полицейских и воров» по месяцам: пик в апреле 2012-го

Сам режим и его умения разобраны публично ещё по утечке исходников 2023 года — на GTAForums и в GTA Wiki. От нас здесь — счёт по трекеру и одна поправка: ролей в режиме шесть, а не восемь, как писали в 2023-м. У копов Officer, Tactical и Tech, у воров — Soldier, Enforcer и Hacker. Дерево скриптов даёт именно шесть.

От зомби-линии сохранились лишь ранние заготовки. В списках прохождения лежат три миссии — начальная, вторая и финальная, — и генератор такого списка. Дальше заготовки дело не пошло: под «Агента Тревора» в исходниках стоит 1868 условий сборки, под пак Norman — 1726, под зомби — ни одного не нашлось. Похоже, общий код под этот вариант не правили вовсе.

Обозначений, связанных с зомби, в файлах три: пак Norman в реестре, свой флаг в коде и своя ветка в списках прохождения. Это может быть одно и то же под разными именами на разных этапах, а может и не быть — прямой связи между ними мы не нашли. Поэтому правильно говорить «зомби-линия, доведённая до трёх заготовок», а не «ещё одно отменённое дополнение».

«Агент Тревор»: кампания целиком

«Агент Тревор» проходил под рабочим названием Clifford, а во внутренних документах — как T-SPY. Названия миссий, их порядок и финал с «Тревором в жидком азоте» стали известны в первые дни после публикации архива. Подробный список выложил DTF, об отменённых Либерти-Сити и «Агенте Треворе» писал PC Gamer. Но файлы позволяют оценить не только сюжет, а и масштаб разработки. Для дополнения предусмотрели отдельный блок сохранения с данными о ходе сюжета, точках возрождения, зданиях, магазинах, звонках и сообщениях, финансах, почте и покупаемом транспорте — как в основной игре. Перед нами была полноценная кампания, а не несколько разрозненных заданий.

Игра автоматически составила файл с порядком прохождения на 58 позиций: 47 разных миссий и повторяемое задание с реактивным ранцем, которое встречается между ними 11 раз. По этому порядку прослеживается развитие сюжета. Ограбление казино приходится на середину кампании; за ним следует линия с реактивным ранцем, беспилотниками и спутниками. Завершают список 3 миссии подряд с пометкой Space.

Маршрут отменённой кампании на 47 миссий
Маршрут отменённой кампании на 47 миссий

Стадию готовности видно по внутреннему реестру задач. По 53 записям T-SPY в четырёх счётчиках багов стоят 93, 159, 712 и 6 — в сумме 970. Что именно означают эти категории, по файлу не восстанавливается, и называть сумму «открытыми багами» было бы натяжкой. Но сам факт, что баги заводили сотнями, говорит о простом: миссии не были идеей на бумаге, их запускали и тестировали.

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

Русская линия стартует в самолёте: Тревор летит с поддельными документами, дальше — угон шпионской машины, уничтожение конвоев, беспилотник, поиск горной базы, плен и побег с неё. Корейская — про подводные базы: их по сценарию несколько и по всей карте, а не одна. Есть спасение президента с борта номер один, упавшего в океан. Есть линия со спутниками — сбить их и добраться до трёх мест падения на реактивном ранце. Арабская линия и линия заказных убийств идут параллельно. Ограбление казино стоит посередине. А кончается всё тремя «космическими» миссиями подряд.

Иллюстрация: линии отменённой кампании — самолёт, подводные базы, спутники, реактивный ранец и космос
Иллюстрация: линии отменённой кампании — самолёт, подводные базы, спутники, реактивный ранец и космос

Миссию с корейской подводной базой готовили к показу. В сборке есть отдельное меню с четырнадцатью заданиями, отобранными для демонстрации. Эта миссия входит в список, но показывали ли её кому-либо, по файлам не установить. Всего в кампании сорок семь заданий; о готовности остальных это меню ничего не говорит.

Реактивный ранец при этом не был обещанием. Его код лежит в самом движке и известен по обновлениям 2014 года — то есть повторяемое задание с ранцем, вставленное в прохождение одиннадцать раз, опиралось на готовую систему движения, а не на строчку в плане.

Насколько далеко зашли сцены. Есть отдельный файл, где для каждой катсцены перечислено, что и кто в кадре — персонажи, предметы, машины. По нему видно, что сцены не просто задумывались, а расписывались до реквизита:

  • В первой русской сцене у Тревора паспорт, посадочный талон, шпионские очки и Значок федерального маршала;
  • Дальше салон самолёта из пяти секций, стюардесса, тридцать шесть пассажиров, задняя дверь и два парашюта;
  • У Саймона сигареты, зажигалка, парашют и Stromberg — та самая шпионская машина, которую подхватывает Cargobob с магнитом;
  • В машине русских — Василий, Кирил и Галина;
  • В одной из сцен на пляже — два полотенца с именем «Michelle», дрон с пультом и Тигровая акула;
  • В финальной сцене линии Тревор, Саймон, Карен и Agent 35 собираются на ночной штурм: четыре карабина, бронежилеты, бинокль, две ЭМИ-гранаты и четыре прибора ночного видения.

И самое показательное: в данных камер сохранились даты съёмки сцен: 1, 10, 11, 17 и 19 декабря 2014 года. При этом в реестре задач те же миссии числятся с нулевой готовностью. Что именно означал этот ноль, по файлам не восстанавливается — но сцены для таких заданий уже были сняты и датированы.

Финальная миссия русской линии осталась в списке прохождения, но её запись закомментирована, поэтому последовательность её пропускает. Почему это сделали, по файлам не видно.

Где это всё было собрано

Самое неожиданное — в отдельном тестовом уровне сохранились локации, похожие на места действия описанных миссий. Их связь с конкретными заданиями нужно проверять отдельно.

Уровень называется concept_test, весит сто мегабайт и лежит двумя архивами. Внутри 411 чертежей, и 406 из них расставлены по координатам — то есть это не склад заготовок, а выставленные на места сцены.

Что в них: подводная база — 147 кусков, с минным полем, трубопроводом и мачтой, уходящей до поверхности. База ЦРУ — 96 кусков, и в ней серверный зал длиной 383 метра, а вместо входа радарная станция. Космическая станция — 26 кусков, и рядом с ней шар Земли. Плюс 66 кусков мультиплеерных квартир двух классов и дома на сваях в семи вариантах.

И роскошный гостиничный номер, за окном которого — Париж.

Про него стоит сказать отдельно. 23 сентября IGN вышел с заголовком, что отменённое дополнение могло впервые за пятнадцать лет вывезти действие GTA из Америки — в Европу. Что в файлах на самом деле: два цилиндрических задника вокруг комнаты, обтянутых фотопанорамой города, и на них чётко читается Эйфелева башня. Это плоская картинка — вид из окна, а не место, куда можно выйти.

И сама текстура называется paris_backdrop_TEMP. Пометка TEMP в этом уровне означает времянку — ровно так же подписаны майамские отели раннего уровня, и там это значит «болванка под замену». То есть Париж может быть просто заглушкой под «какой-нибудь заграничный город».

Иллюстрация: вид на Париж в этом уровне — фотопанорама на задниках вокруг комнаты
Иллюстрация: вид на Париж в этом уровне — фотопанорама на задниках вокруг комнаты

А слов «Paris» и «Eiffel» VGTimes больше нигде в скриптовом слое утечки не нашёл — ни в одной миссии, ни в отладочных меню, ни в багтрекере. Линии дополнения названы по местам действия: русская, арабская, корейская, линия ЦРУ, казино, реактивного ранца и космоса. Европейской среди них не нашлось.

Так что заграничная часть дополнения — это один номер с картинкой в окне. Красиво, но на поездку в Париж не тянет.

Что связывает уровень с «Агентом Тревором», так это имена. Корейская подводная база, линия ЦРУ и космос из порядка прохождения дополнения ложатся на подводную базу, серверную ЦРУ и космическую станцию отсюда же. Совпадение существенное, но прямой ссылки одного на другое в файлах не нашлось: это вывод по именам, а не запись.

Многое отсюда уже разошлось по сети: картинки подводной базы и космической станции появились в сети через день-два после слива, про них писал PC Gamer, а про парижский номер, как уже упоминалось, IGN. VGTimes добавляет к этому само имя уровня, счёт чертежей, опись объектов и то, как всё это разложено. Разбора всего уровня целиком в проверенных нами публикациях не нашлось, а по нему видно главное: собрано всё это не как карта, а как витрина. Почти всё выставлено рядами на плоскости вокруг начала координат, и сам кадр назван говоряще — «витрина, ряд первый». Исключений два — подводная база и космическая станция: они вынесены в собственные точки, отдельно от рядов. Остальное разложено так, как раскладывают не уровень, в который заходит игрок, а показ для своих: вот серверная, вот номер, вот квартиры — смотрите, что получится.

406 из 411 чертежей чернового уровня разложены рядами, как на витрине
406 из 411 чертежей чернового уровня разложены рядами, как на витрине

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

Куда делось отменённое

Дополнение отменили. А три года спустя в GTA Online вышло «Ограбление Судного дня» — и часть тем из отменённого блокаута обнаруживается в нём.

Мы сверяли имена и назначение объектов, а не геометрию моделей: у нас нет способа сказать, что в сетевом паке стоят те же самые модели. Поэтому всё ниже — совпадение тем и способа именования, а не доказанный перенос. Совпадений, впрочем, много, и они идут набором.

Серверная ЦРУ из блокаута — это зал на 383 метра с рядами стоек: в файлах они названы ct_02_cia_server, а в «Судном дне» — xm_base_cia_server. Дальше пара к паре: переговорная с рядами столов, палитра горной базы без самой локации, шахта, орбитальная пушка. У каждой вещи из блокаута находится тёзка в сетевом дополнении.

Что из чернового уровня совпало с «Ограблением Судного дня»
Что из чернового уровня совпало с «Ограблением Судного дня»

И сам Agent 14, персонаж «Судного дня» и хозяин Объекта, в отменённом дополнении уже фигурировал: три миссии линии убийств называются T-SPY Agent 14.

А вот подводной базы в релизных файлах найти не удалось. Мы искали и по именам из блокаута, и по общей пометке, которой помечен весь «Судный день»: спутники и оружие корейской линии находятся, а база под этими именами — не нашлась. Она может лежать там под другим именем: перебор всех возможных имён — отдельная работа.

Что проверяли на испытательных полигонах

Рядом с городами и дополнениями в архиве лежат четырнадцать служебных уровней. Звучит скучно, но именно они показывают, что Rockstar вообще пробовала — не задумывала, а проверяла в движке.

Находки тут трёх разных родов, и по доказательности они не равны. Расставленные стенды — это то, что действительно проверяли в движке. Библиотека реквизита просто лежит рядом. А код движка показывает написанное — но вызовов этих кусков из просмотренных нами скриптов не нашлось.

Главный полигон — это набор стендов из 297 расставленных кусков. По ним видно возможности, которых мы в вышедшей GTA 5 не встречали.

Свободное лазание по скале. Скала с зацепами, угол, карниз, блоки для перехватов, навесы — и стенки строго заданных размеров: 50 на 50, 50 на 500, 100 на 50, 100 на 500, 200 на 50, 200 на 500. Так проверяют потолок: на какую высоту персонаж способен забраться и какой ширины уступ ему нужен. В вышедшей игре свободного лазания нам не встречалось — персонаж подтягивается только на заранее размеченные уступы.

Иллюстрация: стенд для свободного лазания — скала с зацепами и мерные стенки
Иллюстрация: стенд для свободного лазания — скала с зацепами и мерные стенки

Горнолыжный спуск — трассы и повороты отдельными кусками.

И лестницы под лошадь. Это место лучшее во всём уровне. Есть обычный набор ступеней — 25 на 25, 25 на 28, 25 на 50, 30 на 30 сантиметров. И есть ровно такой же набор, но с пометкой «лошадь» в имени каждой ступени, плюс отдельная площадка для разворота. То есть под лошадь построили собственный стенд из ступеней разной высоты и проверяли, какие она берёт. В скриптах того же уровня лежит и отдельный испытательный сценарий для неё.

Стенд ступеней, построенный специально под лошадь
Стенд ступеней, построенный специально под лошадь

Плюс пейнтбол, трамплин, шумовая полоса, булыжная мостовая, барханы, плоскости земли на четыре и семь километров для проверки дальности прорисовки — и набор биомов: болото, побережье, лес, зелёные холмы, сухие холмы с пустыней, горы.

А в архивах реквизита того же полигона лежит целая библиотека, которой в игре не нашлось. 472 модели с общей пустынной приставкой в имени, и в лицензионной копии GTA 5, по которой сверялся VGTimes, не встретилась ни одна.

По именам видно, что это. Восточный базар: прилавки со специями, фруктами и зерном, навесы восемнадцати видов, тележки, ковры, кувшины, кофейники, весы, бельевые верёвки, лавка мясника, парикмахерская, вывеска «халяль», заклинатель змей и бедуинские шатры. И военная половина того же набора: мешки с песком, армейские палатки и койки, рации, вышки, колючая проволока, зенитка, зенитные ракеты, противотанковые мины со знаками минного поля, бункерные двери — и обломки танка Т-34, разобранные на башню, каток и топливный бак.

Иллюстрация: 472 модели базара и военного набора нигде не расставлены — это библиотека, а не сцена
Иллюстрация: 472 модели базара и военного набора нигде не расставлены — это библиотека, а не сцена

Рядом с пустынным биомом лежит второй слой — альпийский, и он смыкается с горнолыжным стендом из того же уровня. Есть и статисты обоих наборов. Вот это сочетание пустыни с Альпами и делает происхождение библиотеки открытым вопросом: под какую игру или какой режим её собирали, по файлам не определяется.

Расстановки этих 472 кусков не нашлось ни в одной карте уровня — как не нашлось и описаний, которыми модель заводят как объект игры. То есть это библиотека моделей, лежащая рядом, а не собранная сцена и не проверенная возможность.

Третий источник сведений — код движка. VGTimes насчитал в нём 402 команды с реализацией длиннее 8 строк. В просмотренных нами скриптах вызовов этих команд не нашлось. По коду можно понять, что делает часть из них, но нельзя установить, использовались ли они в GTA 5: движок мог вызывать их другим способом.

При этом «не используется» не значит «вырезали из GTA 5». Движок у Rockstar общий, часть кода унаследована от прежних игр — поезд с расписанием станций, например, скорее достался от GTA 4, где метро работало именно так.

Что там всё-таки любопытного: подвесить человека на мясницкий крюк — с физической связью тела и крюка и пределами вращения по трём осям. Полный набор для погрузчика с поддонами: поднять вилы, опустить, зафиксировать, прицепить поддон, отцепить. Расход топлива у машин, со скоростью расхода и отключением следов на земле — бензин в GTA 5 не тратится. Испачкать персонажа, поставить шрам, нанести ножевое ранение в заданную зону тела. Наручники и связанные щиколотки.

И та самая команда про ближайшую кабину канатной дороги — та, что объясняется вырезанным убийством. Вот она подпирается с двух сторон сразу: и звуковой описью пакета, и собственным существованием в коде.

Отдельный уровень — полигон физики и анимации, и в нём 244 машины. Сорок три имени из них в просмотренной части розничных архивов не нашлись.

Сверка шла по именам, а тождество моделей по именам не устанавливается: для этого надо сравнивать геометрию. И список частично старый: как минимум одиннадцать из этих сорока трёх имён уже перечислены на странице GTA Wiki «Beta Vehicles in Grand Theft Auto V».

И три позиции из сорока трёх — вообще не вырезанное, а переименования: «aurion» стал Asterope, «monster» — Liberator, «sabre» — Sabre Turbo. Машины вышли, сменилось внутреннее имя.

Ограбление, которое вырезали

В архиве сохранились материалы вырезанного из GTA 5 ограбления The Sharmoota Job, в том числе записанные реплики. По ним можно подробнее проследить, как должна была развиваться миссия.

О самом ограблении известно давно: ему посвящена отдельная страница в GTA Wiki, где описаны 3 подхода и напарники. Запись экскурсии по особняку лежит на YouTube с 2014–2015 годов. Давно известно и о планах добавить верховую езду. В файлах вышедшей игры сохранилась скомпилированная сеть анимаций прыжка, а карты аллюров и реакций удалось разобрать только по утечке.

Известны и цели ограбления: сейф, призовая лошадь, похищение жены. А вот зачем красть лошадь — объяснения этому в проверенных нами публикациях не нашлось.

В записанной, но не вышедшей сцене Лестер объясняет замысел вслух:

— Ты знаешь шейха Абдула Насера Амира?
— Да.
— Он помешан на лошадях и хочет получить потомство от своей кобылы с призовым жеребцом. От Шармуты. Знаешь, тот конь, что выиграл Ocean Sweepstakes в Liberty Memorial в прошлом году?
— Да.
— Так вот, беда в том, что синдикат, который владеет Шармутой, не продаёт Амиру семя.
— Ага.
— Вот я и думаю: если одолжить Шармуту на пару дней, устроить фальшивое похищение, дать ему покрыть всех кобыл в конюшне, а потом просто вернуть — большого вреда нет и серьёзного преступления нет. Конокрадство — довольно мелкое правонарушение, кажется. Вообще-то понятия не имею. Сильные обезболивающие.

Шармута — кличка коня, а не название операции. И тут же, в той же сцене, авторы сами оценивают, что написали:

— Мы крадём лошадиное семя, чтобы психопат, который нас пугает, нас не съел. Конечно, я не уверен. Это нелепо.

В той же сцене Лестер говорит, где искать коня: «за Vinewood Park Raceway, какое-то странное ранчо, записано на Патрисию Васкес». То, что ранчо из этого задания — La Fuente Blanca, владение Мартина Мадрасо, разбиралось публично и открытием не является. Известно и что Патрисия — его жена, которую Тревор увозит в «Caida Libre». VGTimes обнаружил в записи дополнительные детали: Лестер называет Патрисию Васкес человеком, на которого записано ранчо, и говорит, что лошадь стоит в её конюшне. Это не позволяет утверждать, что сюжет позднее переработали для вышедшей игры: совпадают место и персонаж, но по файлам не видно, как менялся замысел.

Иллюстрация: ранчо с конюшней, где по замыслу стоял призовой жеребец
Иллюстрация: ранчо с конюшней, где по замыслу стоял призовой жеребец

Название задания тоже уцелело: строка The Sharmoota Job лежит в текстовых файлах вышедшей игры. Единственным следом линии её называть нельзя — рядом живут ранее известные звуки, маршруты записи и отдельные модели. Но сама миссия не вышла.

Две сцены, которые стоит привести отдельно.

В одном из вариантов планёрки Лестер объясняет, в каких костюмах герои пойдут на дело:

— Ладно, у них вечеринка, так что вы будете развлекательной программой. Мимы.
— Мимы?
— Да, мимы. Они простые, и я уже нанял подсобных — подберём по дороге.

В другом варианте герои переодеваются клоунами. Сохранилась и запись их диалога во время ограбления. Её выложили вскоре после утечки, поэтому сама сцена уже известна — но вот дословный текст. Тревор с порога предлагает переиграть:

— Майкл!
— Это не моё имя.
— Бобо! Это дурацкая затея. Надо войти, вырезать всю эту фиесту и вынести сейф.
— Мы сделаем по-моему, Хэппи. И ты будешь этому рад.

Дальше сцена держится на том, что хозяйка дома клоунов не заказывала.

Иллюстрация: по одному из вариантов налёта герои приходили на вечеринку клоунами
Иллюстрация: по одному из вариантов налёта герои приходили на вечеринку клоунами

Насколько далеко зашла работа над ограблением. Вот это, пожалуй, интереснее самого сюжета.

Самое убедительное — записи багтрекера. VGTimes насчитал их девяносто три, с октября 2011 по июль 2012 года. У ограбления есть собственная линия катсцен — наравне с линиями вышедших ограблений.

По записям видно, что миссию уже запускали и тестировали. Полностью записанные диалоги подготовительных этапов. Захват движений актёров — и жалобы на то, что после него персонажи застывают с раскинутыми руками. Отдельная модель персонажа, заказанная специально под сцены ограбления. Для финала — конюшня, загон, охрана, работники ранчо и сейф, который застревает за вывеской. Езда верхом прямо в налёте: в одном из багов Тревор застревает в позе посадки, «если игрок пытается поехать на Sharmoota».

В разведке герои приходят в дом под видом покупателей, которых водит по комнатам риелтор, и осматривают «элементы охраны» — под это заведены отдельные короткие катсцены. Есть даже отдельная кнопка-подсказка, чтобы изображать пару, которая смотрит дом. В отдельной записи багтрекера отмечено, что она конфликтует с кнопкой вызова телефона.

Рабочее имя ограбления было «Nice House Heist», и его сокращение осталось в поздних записях багтрекера рядом с новым названием. Схема у него полная, как у вышедших: две подготовительные миссии, доска планирования и три варианта финала вместо обычных двух. Запускать можно было всеми тремя героями.

В контрольных списках сдачи — тех, по которым команда отмечала, что делается к сроку, — идентификаторы ограбления стоят в ноябрьском наборе и один остаётся в декабрьском. Потом они пропадают, а в июньском и июльском появляются снова.

Надёжнее всего тут мартовский список: в нём перечислены все пять линий ограблений, дошедших до игры, а записей вырезанного в нём не нашлось. То есть список полный. Февральский для такого вывода не годится: он сам неполный, в нём не нашлось даже вышедшей ювелирной линии.

И это именно присутствие или отсутствие в сохранившихся наборах, а не доказанное решение команды отменить миссию и вернуть её обратно: состав файлов в папках разный, в июле их одиннадцать против шести в феврале.

И отдельно — лошадь. Для неё в сборке лежат три карты анимационных сетей, и собраны они подробно. Четыре аллюра расписаны каждый отдельно: шаг, рысь, кентер, галоп. Есть вставание на дыбы, резкая остановка с любого аллюра и с выбором опорной ноги, движение задом наперёд с поворотами, разворот на месте, подмешивание уклона. Прыжок разобран по аллюрам — отрыв и приземление отдельно для каждого, падение с каждого, приземление на корточки, масштабирование прыжка под препятствие и отдельная ветка на случай удара головой.

Шпоры сделаны отдельной машиной состояний, со своими клипами под каждый аллюр. И в сети предусмотрены узлы реакции на перебор со шпорами — на то, что лошадь пришпоривают слишком часто, заведены отдельные ветки. В записях багтрекера рядом лежит замечание, что при слишком резкой скачке седока сбрасывает.

Иллюстрация: четыре аллюра расписаны отдельно, вплоть до прыжка с каждого
Иллюстрация: четыре аллюра расписаны отдельно, вплоть до прыжка с каждого

Всё это — карты узлов анимации. Они показывают, что механику расписали; работала ли езда в игровой сборке, по ним не видно.

Похожая механика в Red Dead Redemption 2, однако это совпадение, а не доказанный перенос: связи между файлами мы не нашли.

В вышедшую GTA 5 из всего этого доехала только скомпилированная сеть прыжка. Разобранные имена узлов есть лишь в утечке.

Что ещё вырезали

Ограбление с конём — не единственная вырезанная линия. Вот остальное, что сохранилось в виде звуковых файлов.

Шестой погром Тревора. В игре их пять — сцен, где Тревор громит очередное место. В сборке звуковых банков шесть. У пяти первых в розничной игре есть всё: файлы катсцен, наборы анимаций. У шестого в просмотренном нами розничном корпусе не нашлось ни файла катсцены, ни анимаций.

А в сборке он есть, и не в виде заготовки: восемь версий, суммарно шесть минут девять секунд записанной речи.

Линия Соломона Ричардса — крупнейшая из оставшихся неразобранными звуковых линий, и VGTimes расшифровал её целиком. Девять банков, около 2400 несовпавших с игрой слов, и это целая переписанная сюжетная ветка.

В сохранившейся записи знакомство с Соломоном начинается так же, как в вышедшей игре: он зовёт Майкла войти, жалуется, что раньше у него было 3 секретарши, а теперь кофе приходится варить самому. Но дальше ранняя версия сцены отличается. Фильм здесь называется Subprime, а не Meltdown; проблемный актёр один, а не двое. Отличается и просьба Соломона к Майклу:

Производству нужны страховые деньги. Ты теперь продюсер Subprime — иди и произведи страховую выплату.

То есть Майкл становился продюсером, а не ассистентом, и речь шла о страховом мошенничестве. Соломон при этом боится, что убьют его самого: «Девин Уэстон просил тебя подсыпать мне в стакан? Подменить лекарство от простаты мышьяком?»

Иллюстрация: кабинет главы студии, с которого начинается линия Соломона
Иллюстрация: кабинет главы студии, с которого начинается линия Соломона

Развязка тоже другая. В игре это одна сцена, где план объявляет Девин. В сборке всё разыграно как линия Соломона: семья владельца студии скандалит на похоронах («я должен был тебя абортировать», «ты динозавр, старик, а к Земле летит комета»), сын продаёт студию под кондоминиумы, Майкла представляют новым главой производства, а Соломон через суд объявляет сына наркоманом и лишает права голоса, чтобы связать место тяжбой.

И в ту же сцену вшито объяснение давно известной вырезанной миссии. Соломон спрашивает, как снимать следующую картину — «Jump Jet», про двух пилотов истребителя, которые выясняют, кто лучше, на авианосце и борются с коммунизмом при помощи говорящей собаки. И заканчивает: «мне понадобится самолёт… из тех, с вертикальным взлётом… что-нибудь из восьмидесятых, британское».

Это «Харриер». Вырезанная миссия с ним описана в перечне удалённых миссий GTA Wiki, но объяснения, зачем он был нужен по сюжету, в проверенных нами публикациях не нашлось.

Лестер в сетевом шутере. Три банка, и в розничном корпусе звука им соответствия не нашлось. Вырезанное вступление миссии «Friend Request»: Лестер играет в онлайн-шутер и переругивается с противником-подростком. Сначала беззлобно — «отличный хедшот», «то же время на следующей неделе?». А когда тот переходит на оскорбления, Лестер отвечает тем, чем умеет: называет ему адрес, на котором тот живёт, и вспоминает, за что в прошлом году осудили его мать.

Агата и Бетани. Пять записанных сцен под пометкой «A против B»: Mrs. A — Агата Эндрюс, Mrs. B — Бетани из семьи Бёртон. Соседки, и одна увела у другой мужа. На вики эти буквы известны как имена — содержания за ними в проверенных публикациях не приводилось.

Там же — Дейл и Магента, и Брюси Киббутц: истории, от которых публично сохранились только имена в списках, а у нас лежат сами сцены.

Съёмка клипа. Сцена, которой в розничном звуке и субтитрах не нашлось: режиссёр орёт сразу на всех — «эта хрень пойдёт на ETV», «не трогайте мой звук», «мне нужен другой монтажёр, чтобы это вырезать».

Тревор в трейлере. Пять банков, и в розничном корпусе звука этой ветки не нашлось: Тревор измывается над жильцом, требует выпить и «покажи сиськи», получает ответ «сэр, у меня нет сисек». Сама сцена выложена звуком вскоре после слива, мы её только расшифровали текстом — находкой тут будет расшифровка, а не сцена.

И короткая сцена с Франклином, приехавшим к знакомому Тревора: «Опознайся, гражданский» — «я друг Тревора» — «у Тревора есть друзья? Я думал, у него есть люди, которых он ещё не убил».

Что переписывали между дублями

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

В рабочей сборке 5671 звуковой банк. Если отбросить у имён пометки версий и сгруппировать, получается 353 сцены, у которых сохранилось больше одной версии — всего 1095 записей. У 192 сцен версий по две, у 80 — три, у 26 — четыре, дальше хвост до одиннадцати, и одна сцена с пятнадцатью.

353 сцены, у которых сохранилось больше одной версии
353 сцены, у которых сохранилось больше одной версии

Больше всего правили концовки. У всех трёх финалов игры — по девять версий, у «Смертельного желания» — одиннадцать. Одиннадцать же у вступления GTA Online.

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

Поэтому интереснее не счёт, а один разобранный случай. Вторая часть сеанса Майкла у психотерапевта записана четырьмя дублями. Сцена одна и та же от первой реплики до последней — а текст в дублях разный, и рядом с ним слышно, что в итоге вошло в игру.

Майкл в раннем дубле говорит: «я постоянно загоняю себя в положения, где трудно не умереть». В игре он говорит: «я постоянно загоняю свою задницу в положения, где не дать себя убить немного трудновато». Грубее и смешнее — и это ровно та правка, которую делают, когда реплика написана, но не звучит.

Про Мартина: в раннем дубле «жирный конченый спортсмен, который так и не смог уложить в голове», в игре — «который не может уложить». Прошедшее время стало настоящим: беда не в прошлом, беда продолжается.

Была реплика «единственное, в чём я состоятелен» — стала «единственное, в чём я доволен и состоятелен», и на добавленном слове теперь держится вся фраза. А «я ведь плачу тебе, чтобы ты слушал мои проблемы, верно?» превратилось в «я плачу тебе, чтобы ты слушал мои проблемы.» — из оправдания в отповедь, одним снятым вопросительным знаком.

И одну реплику вырезали целиком. В трёх дублях доктор начинает вторую часть словами «Что ж, та ещё история». В смонтированном дубле их уже нет — он начинается сразу со следующей фразы. В вышедшей игре этих слов тоже не нашлось: ни в субтитрах, ни в звуке роликов, ни в процедурной речи.

Реплики из релизной игры мы расшифровывали с помощью программы распознавания речи. Совпадение при таком методе доказывает, что фраза в игре есть; отсутствие — довод слабее, поэтому по каждому отрицанию проверялось, что соседние слова распознаются нормально.

То же самое с Девином Уэстоном. Сцена, где он вербует Франклина, в игре есть, но ранний дубль совсем другой. Там Девин под наркотиками: «прости, приятель, я тут закинулся, три штуки, меня несёт, я обычно не такой». Откупается от подружки чёрной картой. Жалуется на упадок преступного мира: «когда я был просто миллионером, я знал настоящих бандитов, а теперь они все гоняются за книжными контрактами и реалити-шоу». И называет сумму: «последний развод обошёлся мне в 135 миллионов. Дёшево за такое». В игре от всего этого осталась одна реплика про дарвиниста.

Премьера «Meltdown». Восемь банков ранних дублей сцены на красной дорожке, где интервьюер несёт околесицу про белого медведя и переработку презервативов, Майкл ждёт жену, а она не приходит. Сцена в игру вошла, но текст в дубле другой.

Иллюстрация: сцена на красной дорожке записана восемью ранними дублями
Иллюстрация: сцена на красной дорожке записана восемью ранними дублями

Переписанный приезд Тревора к Майклу. Сцена есть в игре, а реплики другие: Тревор задирает Фабиана и Джимми, вытягивает из заикающегося Джимми, что Трейси пошла на прослушивание. Слов «заикающийся урод», «отстань от парня» и «твой отец — сволочь, у меня от этого пищеварение портится» в рознице не нашлось ни в субтитрах, ни в звуке — при том что слово «прослушивание» в той же сцене звучит шесть раз.

Ранний Дрейфусс. В архиве сохранился другой вариант развязки «Тайны Леоноры Джонсон». Дрейфусс и в вышедшей игре зовёт охрану, но здесь это происходит позже. Сначала он пытается уговорить Франклина: «я отдал лучшие годы жизни этому месту», «а теперь какой-то уличный прощелыга не даёт старику последний раз взглянуть на радость». Охрану он зовёт после отказа, тогда как в игре — после фотографии.

Джек Хауитцер. Отдельная история, и по ней лучше всего видно, что такое «сняли и не показали». Дорожек передачи с ним записано 25,7 минуты, а в игру вошло 9,1 — почти втрое меньше.

И вырезанная реклама в устах судьи «Fame or Shame». В вышедшем выпуске ведущий обещает «ещё более тонкий продакт-плейсмент», и духовный судья Имран выдаёт притчу: «не всё белое — молоко». А в сборке на этом месте, в двух дублях, записано другое:

— Переходим к следующему судье. Имран, как дела?
— Кто, я? Да я тут просто наслаждаюсь роскошным «Ап-н-Атом», тройным чизбургером с десятью ломтиками бекона…

То, что судья рекламирует эту закусочную, известно с 2014 года. Новое — дословный текст куска, который в эфир не попал.

А один из звуковых банков — вообще не сцена, и разницу между рабочей сборкой и игрой он показывает лучше всего. Это кусок смены в студии звукозаписи, попавший в файл целиком. Слышны команды режиссёра озвучания: «тихо на площадке, пишем звук», «пошли», «стоп», «ещё чуть больше шока». И следом — четыре подряд дубля одной и той же реплики Тревора.

Иллюстрация: в рабочей сборке рядом со сценами лежат целые смены звукозаписи
Иллюстрация: в рабочей сборке рядом со сценами лежат целые смены звукозаписи

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

Обновление, которое уже лежало в дереве

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

В файле, где перечислены переключатели новых возможностей, есть такая пара строк. Флаг июльского обновления 2022 года — «The Criminal Enterprises», вышедшего за полтора месяца до взлома, — стоит включённым без всяких условий. А соседний переключатель, заведённый под второе обновление 2022 года, включён только во внутренней сборке. В той, что уходит игрокам, он выключен.

За этим флагом VGTimes насчитал около 31,9 тысячи строк кода в 142 файлах. Это приблизительный подсчёт: наш способ не во всех местах надёжно определяет границы вложенных условий. Поэтому увереннее можно говорить о списке из 142 файлов. Но масштаб понятен: за этим флагом кода больше, чем за любым другим в том же файле, включая Cops'n'Crooks с его 11 тысячами с лишним строк.

За декабрьским переключателем кода больше, чем за любым другим
За декабрьским переключателем кода больше, чем за любым другим

Названия файлов помогают понять, к чему относится код: кислотная лаборатория, убежище «Джаггало», многоэтажный гараж, уличные барыги, награды за вход и рождественский сценарий 2022 года. Всё перечисленное относится к циклу Los Santos Drug Wars, который начался 13 декабря 2022 года. Многоэтажный гараж и уличные торговцы добавлялись позже; наличие этих элементов в игре можно проверить и без утечки.

В шапке самого позднего из проверенных скриптов стоит дата 10 августа 2022 года, примерно за месяц до взлома. В файле многоэтажного гаража указана дата августа 2021-го. Эти отметки не позволяют установить, когда был написан весь код в сохранившихся версиях файлов.

Код декабрьского обновления лежал в дереве исходников ещё до взлома
Код декабрьского обновления лежал в дереве исходников ещё до взлома

Утечки обычно обсуждают ради того, что студия так и не выпустила. Здесь сохранился код обновления, которое вышло спустя 3 месяца после кражи, — с интерьерами, экономикой и рождественским сценарием.

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

Сведения о содержании обновления появлялись до релиза и без этого архива. Находка VGTimes в другом: в сохранившейся версии дерева за переключателем находится около 31,9 тысячи строк в 142 файлах, и этот код отделён от пользовательских сборок.

Инструменты с путями к ветке следующей игры

Последние файлы архива показывают, над чем Rockstar работала дальше.

Rockstar использует общий набор рабочих программ для разных проектов. В их файлах сохранились пути к нескольким веткам разработки. VGTimes нашёл в дереве GTA 5 311 файлов, внутри которых упомянуты соседние ветки. Девяносто из них несут следы ветки americas — это рабочее название шестой части, о котором в 2022 году писал Bloomberg. Двести двенадцать — следы ветки rdr3, то есть Red Dead Redemption 2.

Оставшиеся девять в эти колонки не попали, и разбирать их пришлось поимённо. Устроены они наоборот: служебный путь у них ведёт не наружу, а в дерево самой пятой части, — наружу смотрит что-то другое внутри файла.

Редактор расцветок транспорта сохраняет журнал в каталоге ветки шестой части. Эта же ветка указана как источник данных по умолчанию в 2 инструментах карты, которые отправляют замеры производительности в поисковый индекс. Оба файла датированы 14 сентября 2022 года. Путь к описанию автоматизации в одной из библиотек настроек тоже ведёт в эту ветку. Инструмент отложенных изменений содержит таблицу путей сразу для 2 веток: americas и rdr3. В плагине для программы анимации нашлось более 20 путей к исходникам rdr3. Наконец, у самого старого файла, датированного 2015 годом, служебный путь указывает на третью ветку — wildwest, а внутри файла есть путь в rdr3. Чем была wildwest, по этим данным установить нельзя.

То есть колонок в таблице по-прежнему две. Девятка — про другое: наружу у этих файлов смотрит не служебный путь, а то, с чем они работают.

311 файлов рабочих программ со следами соседних веток
311 файлов рабочих программ со следами соседних веток

Во всём наборе из 311 файлов нашлось вот что: измерение производительности, просмотр и управление тестовыми консолями по сети, отладочная панель, работа с анимацией и переносом диалогов, редактор расцветок транспорта. Рабочие программы — не материалы игры и не её код.

Путь внутри файла говорит о том, под какой веткой он заведён, а не о том, где физически шла сборка. Поэтому корректно говорить «следы ветки», а не «собрано в ветке». И игровых материалов GTA 6 в проверенной части архива не нашлось — только ссылки и общие инструменты.

Датировать при этом можно не всё. Из девяноста файлов со следом этой ветки шестьдесят один — исполняемые, и только у двадцати двух из них штамп времени в заголовке можно считать настоящей датой: у остальных сборка воспроизводимая, и в этом поле лежит не дата, а кусок хеша — отсюда берутся «файлы 2049 года».

Вот по этим двадцати двум и выстраивается хронология: апрель 2019-го — мост к системе контроля версий, июнь 2019-го — звуковые библиотеки, март 2020-го — поддержка геймпадов PlayStation, сентябрь 2020-го — отладочная панель, ноябрь 2021-го — измерение производительности.

Самая свежая запись — 15 сентября 2022 года: диспетчер тестовых консолей и три его библиотеки. Через три дня, 18 сентября 2022-го, в сеть попали ролики GTA 6 из той самой утечки 2022 года, с которой началась история этого архива.

Самый свежий датируемый инструмент со следом линии GTA 6 — 15 сентября 2022 года
Самый свежий датируемый инструмент со следом линии GTA 6 — 15 сентября 2022 года

Что из этого следует

Архив на 192 гигабайта интересен не тем, что в нём лежит другая невышедшая игра. Игровых материалов GTA 6 в проверенной нами части не нашлось — только ссылки на соседнюю ветку и общие с ней рабочие программы.

Он интересен другим: по нему видно всю лестницу — от одного имени в справочнике до снятых сцен и игравшейся миссии.

На нижней ступени — одно имя. От пака Manhunt осталась строка в справочнике, и больше в просмотренном дереве он нигде не встретился. От зомби-линии — три записи в списке прохождения, а условий сборки под неё в коде не нашлось.

Ступенью выше — то, что лежит, но никуда не поставлено. 472 модели восточного базара и военного набора без единой расстановки: как объекты игры они не заведены. Четыреста две регистрации команд движка с непустыми телами длиннее восьми строк, вызовов к которым в просмотренных скриптах не нашлось, — и часть из них наверняка наследство прежних игр.

Ещё дальше продвинулись проекты, которые уже собирали и проверяли. Тестовые стенды с лестницами для лошади. Тестовый уровень, где серверная и другие объекты выставлены рядами, а подводная база и космическая станция размещены отдельно. Майамский уровень, по которому можно было ходить и ездить: для него проложили маршруты транспорта и настроили ночное освещение. Cops'n'Crooks с 844 записями о дефектах в багтрекере — результатом месяцев тестирования.

И на верхней ступени — то, что уже снимали. У «Агента Тревора» собственная система сохранения, порядок прохождения на сорок семь миссий, сцены, расписанные до реквизита, и даты съёмки — декабрь 2014 года. У вырезанного ограбления — записанные диалоги, захват движений, отдельная заказанная модель персонажа и три варианта финала.

Что из этого в итоге увидели игроки? Либерти-Сити, «Агент Тревор» и ограбление с конём не вышли. В проверенных нами файлах GTA 5 не нашлось подтверждения, что игрок мог посмотреть выступления в комедийном клубе. Сцены с Дрейфуссом, Девином и Соломоном вошли в игру, но их переписали. Часть машин появилась под другими названиями. А обновление, которого ещё не было на момент кражи, выпустили 3 месяца спустя.

Геймер играет лишь в финальный продукт. По нему трудно понять, какие варианты пробовали во время разработки, сколько работы в них вложили и на каком этапе от них отказались.

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

В ней смешались материалы разных лет: записи багтрекера относятся к 2010–2012 годам, майамский уровень — к 2014–2015-му, а скрипты доходят до августа 2022-го. Так рядом оказались давно отложенные проекты, код обновления, вышедшего через 3 месяца после кражи, и инструменты с путями к ветке следующей игры.

Чем датировано то, что лежит в архиве
Чем датировано то, что лежит в архиве

А что из этого вы хотели бы получить больше всего — Либерти-Сити в GTA 5, «Агента Тревора», ограбление с конём или Cops'n'Crooks? Пишите в комментариях.

Что из этого вы хотели бы получить больше всего?

Результаты

Всё об утечке GTA 5

  1. Большой разбор VGTimes: что лежит в утечке исходников GTA 5
  2. Мобильное приложение GTA 5 вылетало, когда Чоп справлял нужду: VGTimes собрал самые смешные записи из известной утечки Rockstar
  3. Что разработчики GTA 5 предлагали добавить в игру: 197 пожеланий из багтрекера Rockstar
  4. Отменённый Либерти-Сити для GTA 5: VGTimes нашёл в файлах, какой район где
  5. В файлах GTA 5 до сих пор лежат остатки вырезанной верховой езды — VGTimes разобрал масштаб ее разработки
  6. Rockstar планировала добавить Liberty City в GTA 5: в сеть попал архив на 192 ГБ
    Комментарии0