Неуловимый баг LittleBigPlanet

image

В истории игровой разработки можно обнаружить немало интересных багов, с которыми приходилось сражаться разработчикам. Впрочем, как следует из истории, рассказанной в Twitter техническим директором компании Media Molecule Алексом Эвансом (известен своим участием в демосцене конца 90-ых, серией LittleBigPlanet и игрой Rag Doll Kung Fu) на выходных, многие легенды нам еще только предстоит услышать.

Случай, о котором пойдет речь, произошел десять лет назад — в 2008 году. Во время разработки первой части игры LittleBigPlanet — оригинального паззл-платформера, который должен быть стать эксклюзивом для PlayStation 3 — разработчикам компании пришлось столкнуться с воистину неуловимым багом.

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

Процесс разработки LittleBigPlanet практически подошел к концу и оставалось всего две недели до того, как игра должна была «уйти на золото». Внезапно, тестировщик из отдела QA в Японии сообщил о том, что игра стабильно «падает», когда он оставляет ее работать на ночь. Естественно, теперь до исправления бага ни о каком выпуске игры не могло быть и речи.
Время шло, а команда все никак не могла воспроизвести баг. Несколько дней ушло на то, чтобы удостовериться, что девкиты разработчиков и тестировщиков идентичны — что в них одинаковое «железо», на них стоит одна и та же версия ОС и одинаково настроено окружение. Из-за разницы в часовых поясах, каждая попытка воспроизвести баг занимала более 24 часов, что продолжало накалять обстановку.

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

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

Неудивительно, что когда Media Molecule попробовали воспроизвести этот баг в своем офисе при помощи радио, настроенного на «белый шум», у них это сразу же получилось. В итоге, на то, чтобы устранить сам баг, разработчикам понадобилось лишь около пяти минут — однако память о нем не выветрилась даже спустя десять лет.

© Habrahabr.ru