Пылесосы и часы: разработчики рассказали о самых необычных причинах багов в своих играх

На поиски некоторых уходили недели, а на исправление — всего пять минут.

Пылесосы и часы: разработчики рассказали о самых необычных причинах багов в своих играх

Программист из инди-студии Flippfly Аарон Сан Филиппо в своём твиттере рассказал историю о поиске бага в игре Race the Sun, над которой он работал.

Я бы хотел рассказать вам историю о том, что это на самом деле такое — управление инди- компанией. Тогда мы уже какое-то время работали над версией Race the Sun от Limited Run. Где-то в июне мы думали, что находимся на финишной прямой, просто доделываем оставшееся.

Речь идёт о версии 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.

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

Один из разработчиков Prison Architect под ником Tommodore 64 рассказал, с чем он столкнулся, выпуская Frozen Synapse для PlayStation 3. Игра вышла бесплатно для подписчиков PS Plus, однако у многих пользователей она крашилась при первом запуске.

Этот баг стал неожиданностью не только для разработчиков, но и для команды контроля качества в Sony — прежде Frozen Synapse нормально запускалась на всех устройствах для тестов. В итоге в Sony всё-таки удалось найти копию PS3 для воспроизведения бага.

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

Авторы игры отправили Sony версию без него, и та отлично запускалась на той PlayStation 3, которая прежде не могла загрузить Frozen Synapse.

Оказалось, что у ревизий PS3 есть незначительные технические различия, которые полностью ломали нашу систему сохранения. Так как мы не могли самостоятельно воспроизвести баг, нам пришлось переписать её с нуля. Если бы не одна странная копия консоли в ливерпульском офисе отдела качества, в игру нельзя было бы поиграть и по сей день.

Tommodore 64, разработчик
Пылесосы и часы: разработчики рассказали о самых необычных причинах багов в своих играх

Люк Томпсон из студии Sigtrap Games рассказал о поиске бага в шутере Sublevel Zero Redux для PlayStation 4. На этот раз он не был связан с зависаниями — игра отлично работала в офисе контроля качества Sony, однако один из тестеров заметил, что уровни, которые должны генерироваться случайным образом при каждом запуске, повторяются.

Проблема крылась в версии движка Unity для PlayStation 4. Из-за это последовательность уровней была постоянной.

Пылесосы и часы: разработчики рассказали о самых необычных причинах багов в своих играх

Лайан Браун, который сейчас работает в Hello Games, поделился историей поиска бага в неназванной игре для PlayStation 2. Она отлично работала на девките, но при запуске с диска подгрузка ассетов и текстур сильно замедлялась. Разработчики пытались менять порядок загрузки файлов, но ничего не работало.

Кто-то заметил, что производительность падала, когда мы добавляли маленькие часы на задний план. Они работали в реальном времени. Оказалось, что PS2 приходилось каждый кадр обновлять данные о времени, а это было плохой идеей. Маленькая, незначительная деталь, которую я добавил в обход продюсера, чуть не стоила нам релиза.

Лайан Браун, разработчик
Пылесосы и часы: разработчики рассказали о самых необычных причинах багов в своих играх

Сооснователь Media Molecule Алекс Эванс рассказал, с какими трудностями пришлось столкнуться при разработке первой Little Big Planet. По его словам, за две недели до того, как игра «ушла на золото», японские тестеры стали сообщать о баге — Little Big Planet крашилась, если оставлять её запущенной на 24 часа. В студии воспроизвести ошибку не удавалось.

Разработчики пытались воссоздать условия, при которых возникала ошибка. Они использовали то же оборудование и программное обеспечение, а также подключили к консоли цифровую камеру PlayStation Eye и оборудование для записи звука, как в японском офисе контроля качества. Удалось установить, что игра крашится только около 4 часов утра каждый день.

Почему? Что происходит только в Японии в 4 часа утра? Мы решили узнать. Оказывается, что в это время в офисе проходила уборка. Местные уборщики гораздо тщательнее выполняют свою работу, чем наши! Час уборки пылесосом возле PlayStation Eye воспринимался игрой как белый шум и вызывал потерю нескольких байтов памяти. Если пылесосили долго, то происходил краш.

Алекс Эванс, сооснователь Media Molecule

Узнав об этом, разработчики смогли воспроизвести баг. А на его исправление потребовалось всего пять минут.

Пылесосы и часы: разработчики рассказали о самых необычных причинах багов в своих играх

Программист Филип Бак поделился опытом с «обратной стороны», рассказав, как происходила работа в отделе контроля качества Sony в 1998 году. По его словам, он устроился туда сразу после окончания университета.

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

Филип Бак, программист
181181
50 комментариев

С пылесосом реально жесть. Тестеры, наверное, сдвинутые по фазе люди, если им такие закономерности искать приходится.

54
Ответить

Это настоящий детектив получается.
А помните как Хуан включал камин, когда искал геймпад?

17
Ответить

В принципе, если бы этот баг не исправили, то почти никто бы с ним не столкнулся

6
Ответить

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

1
Ответить

Мля , это инженеры чинить должны , а не программисты

Ответить

у ревизий PS3 есть незначительные технические различия

Сколько раз во время срачей я пытался опровергнуть пункт о том что "у консолей в рамках поколения всего 2-3 конфигурации", но меня не слушали, уверяя что все это чушь.

Наконец-то удалось заполучить доказательство что это не так!

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

30
Ответить

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

11
Ответить