На поиски некоторых уходили недели, а на исправление — всего пять минут.
Программист из инди-студии Flippfly Аарон Сан Филиппо в своём твиттере рассказал историю о поиске бага в игре Race the Sun, над которой он работал.
Речь идёт о версии Race the Sun для консоли PlayStation Vita. Отдел контроля качества Sony обнаружил в игре два бага. Первый был незначительным и на его исправление у разработчика ушло «пять минут», а второй приводил к зависаниям. При этом в Sony не дали Аарону Сан Филиппо чётких указаний, как воспроизвести ошибку — казалось, что она возникала случайным образом. При этом у самого разработчика проблем не возникало.
Программист на протяжении 20 часов пытался заставить Race the Sun зависнуть, но безуспешно. Он даже внёс кое-какие правки в код в слепую, но из-за этого в Sony игра стала «крашиться» лишь сильнее, а у самого Аарона Сан Филиппо она работала как надо.
В конце концов, разработчик нанял ещё одного тестера, чтобы плотнее заняться поисками причины ошибки, но и у того зависаний не возникало.
В тот момент я решил написать скрипт, который сам бы играл в игру. Где-то через 24 часа Race the Sun должна была использовать всю память системы, но проблема точно заключалась не в этом, ведь в Sony регулярно докладывали об ошибке.
Поэтому я стал думать о том, что в тестовой среде Sony могли быть какие-то отличия. Я пообщался с тестерами (которые мне очень помогли) и выяснил, что мы используем те же самые устройства и ОС. Однако у них краши случались, а у меня — нет.
Аарон Сан Филиппоразработчик
Через несколько недель разработчика осенило: «Что, если различия кроются в скорости соединения с интернетом?» Аарон Сан Филиппо включил 3G и запустил свой скрипт — игра зависла в течение часа.
Оказалось, виной всему было так называемое «состояние гонки» — состояние, при котором баги из-за нарушения порядка выполнения действий, связанных с обработкой одних и тех же данных. В случае с Race the Sun проблема заключалась в том, что игра пыталась внести результат игрока в «таблицу лидеров» ещё до того, как подсчёт очков был завершён. На поиск и исправление бага у Limited Run ушло около четырёх или пяти недель.
Другие разработчики также поделились своими историями о самых необычных причинах ошибок в играх, а также об их поиске. Так, технический художник из Treyarch рассказал о том, с чем ему пришлось столкнуться при работе над портом одной из частей Guitar Hero для PlayStation 2.
По его словам, в отделе контроля качества утверждали, что в тренировочном уровне музыка не была синхронизирована с нотами, которые игроку нужно нажимать. То есть каждый раз при запуске трека между ними были разные интервалы.
Разработчики потратили несколько десятков часов в попытках воспроизвести баг, запрашивали видеозаписи геймплея у отдела контроля качества, а в конце концов решили воспроизвести условия, при которых ошибка проявлялась. Это значило, что им нужно было запускать игру не с жёсткого диска, а с DVD.
Один из разработчиков Prison Architect под ником Tommodore 64
Этот баг стал неожиданностью не только для разработчиков, но и для команды контроля качества в Sony — прежде Frozen Synapse нормально запускалась на всех устройствах для тестов. В итоге в Sony всё-таки удалось найти копию PS3 для воспроизведения бага.
Отдел контроля качества отправил разработчикам отчёт об ошибке, но, по признанию Tommodore 64, в нём содержалась «какая-то чушь». Однако программисты смогли извлечь из него нечто полезное — оказалось, что проблема возникала из-за метода сохранения данных. Один из членов команды разработчиков предположил, что баг появился после выхода патча первого дня.
Авторы игры отправили Sony версию без него, и та отлично запускалась на той PlayStation 3, которая прежде не могла загрузить Frozen Synapse.
Оказалось, что у ревизий PS3 есть незначительные технические различия, которые полностью ломали нашу систему сохранения. Так как мы не могли самостоятельно воспроизвести баг, нам пришлось переписать её с нуля. Если бы не одна странная копия консоли в ливерпульском офисе отдела качества, в игру нельзя было бы поиграть и по сей день.
Tommodore 64разработчик
Люк Томпсон из студии Sigtrap Games
Проблема крылась в версии движка Unity для PlayStation 4. Из-за это последовательность уровней была постоянной.
Лайан Браун, который сейчас работает в Hello Games,
Кто-то заметил, что производительность падала, когда мы добавляли маленькие часы на задний план. Они работали в реальном времени. Оказалось, что PS2 приходилось каждый кадр обновлять данные о времени, а это было плохой идеей. Маленькая, незначительная деталь, которую я добавил в обход продюсера, чуть не стоила нам релиза.
Лайан Браунразработчик
Сооснователь Media Molecule Алекс Эванс
Разработчики пытались воссоздать условия, при которых возникала ошибка. Они использовали то же оборудование и программное обеспечение, а также подключили к консоли цифровую камеру PlayStation Eye и оборудование для записи звука, как в японском офисе контроля качества. Удалось установить, что игра крашится только около 4 часов утра каждый день.
Почему? Что происходит только в Японии в 4 часа утра? Мы решили узнать. Оказывается, что в это время в офисе проходила уборка. Местные уборщики гораздо тщательнее выполняют свою работу, чем наши! Час уборки пылесосом возле PlayStation Eye воспринимался игрой как белый шум и вызывал потерю нескольких байтов памяти. Если пылесосили долго, то происходил краш.
Алекс Эванссооснователь Media Molecule
Узнав об этом, разработчики смогли воспроизвести баг. А на его исправление потребовалось всего пять минут.
Программист Филип Бак
Мы гордились собой, находя самые безумные способы сломать ваши игры. А всё, что вы получали — это дёрганная VHS-запись, да плохо написанный отчёт. Сама политика была уморительной. Раз или два менеджер приходил к нам с новой задачей (от старых коллег, с которыми он, очевидно, порвал все связи) и говорил: «Первый тестер который сможет сломать эту игру получит оплачиваемый отгул».
Свежие комментарии