Бывший ведущий дизайнер мультиплеера Red Dead Redemption Крис Робертс рассказал историю о том, как ему пришлось экстренно исправлять сломанный мультиплеер игры, параллельно выполняя обязанности присяжного в уголовном процессе. Подробностями Робертс поделился в новом интервью каналу Kiwi Talkz.
По словам разработчика, к моменту релиза в 2010 году он и так находился в "состоянии амнезии" из-за хронического недосыпа, накопившегося за предрелизный период. Однако вместо долгожданного отдыха его вызвали на присяжные заседания по уголовному делу, где решалась судьба человека, которому грозило тюремное заключение. Именно в этот момент выяснилось, что мультиплеерная часть Red Dead Redemption сломана.
Это какая-то злая шутка. Я заседал присяжным по уголовному делу, где человек мог отправиться в тюрьму, а когда вышла Red Dead, мультиплеер оказался просто абсолютно сломан.
Игроки начали замечать по-настоящему абсурдные баги – по словам Робертса, в сессиях появлялись персонажи верхом на курицах и летающие старушки.
Мы даже не понимали, что происходит. Нас взламывают? Кто-то троллит систему? Что вообще происходит?
Робертс занимался поиском причины бага после заседаний присяжных, устраивая сессии диагностики в три часа ночи вместе с командой Rockstar New England, включая программиста Джереми Тудиско. Первую зацепку разработчик получил, когда катался по открытому миру рядом с локацией Эскалера и заметил россыпь мешков с золотом там, где их быть не должно.
Это были специальные ассеты для соревновательных режимов – мешки с золотом, которые требовали больших вычислительных ресурсов, потому что всем клиентам нужно было точно синхронизировать, кому они принадлежат и где находятся.
Экс-дизайнер Rockstar назвал финальные полгода работы над Red Dead Redemption одной сплошной переработкой
Команда предположила, что баг возникал в результате редкого пограничного случая: игрок мог схватить такой мешок в соревновательном режиме, а затем выйти в свободный мир, унеся ресурсоёмкий объект с собой.
По нашей теории, эти мешки поглощали столько ресурсов, что игровая логика и скрипты просто переставали работать так, как задумано.
Точную причину бага в Rockstar так и не выяснили до конца, но нашли способ решить проблему на уровне симптомов.
Тудиско написал скрипт, который отслеживал объекты определённого диапазона ID и агрессивно удалял их из сессий свободного перемещения. Для наглядности программист даже привязал к удалению каждого мешка звук выплаты джекпота на игровом автомате – чтобы разработчики видели результат работы фикса в реальном времени.
Обычно подобные исправления проходили долгий путь согласования и тестирования перед развёртыванием, который мог занять недели. Но разработчики Red Dead Redemption воспользовались лазейкой в архитектуре консолей того поколения.
Мод Reality Redemption 4.1 для Red Dead Redemption вышел после 2 лет разработки
Дев-киты Xbox 360 и PlayStation 3 предоставляли доступ к так называемому title storage – системе хранения данных, изначально задуманной для доставки на клиенты уведомлений о турнирах и внутриигровых событиях. Команда обнаружила, что через этот же канал можно развернуть исполняемый скрипт Тудиско.
Так что без какого-либо контроля, без тестирования и без задержек мы смогли внедрить этот скрипт в публичные сессии в течение суток. В тот момент казалось, что команда выиграла в лотерею – проблема действительно решилась, а не превратилась в катастрофу.
Развязка истории пришлась на три часа ночи, когда Робертс отчитался о статусе исправления перед новым главой студии Гордоном Холлом, сменившим предыдущего руководителя. "Вот что мы делаем, вот как это разворачивается, бла-бла-бла. Но мне пора идти, потому что через несколько часов меня ждут в суде", – рассказал разработчик о разговоре с начальством.











