Игры – очень сложные программы, работоспособность которых зависит от очень большого количества факторов. Компоненты самого устройства, на котором будет запускаться игра, драйвера, операционная система, внешние библиотеки, которыми игра будет пользоваться, размер и соотношение сторон экрана, качество соединения с интернетом и множество других факторов, которые почти невозможно учесть, но можно постараться проверить.
Учитывая сложность продукта, которым являются игры, и количество разных людей, участвующих в их реализации, одним из важнейших критериев качества игры является даже не исполнение отдельных ее компонентов – красивая графика, интересный игровой процесс, – а общая работоспособность, то есть отсутствие багов. И тут на сцену выходят бойцы невидимого фронта – тестировщики.
Баг (bug – «жук») – понятие бага как ошибки при выполнении какой-то программы восходит к временам, когда компьютеры были большими, и нечаянно забравшиеся в них тараканы и прочая живность могли привести к сбою. По легенде, в 1947 году сотрудники Гарвардского университета обнаружили неисправность в одном реле университетского компьютера, вызванную залезшим в него мотыльком. С тех пор все ошибки, которые могут появляться при работе проекта, называются багами.
Разработчики игры должны играть в свою игру не только для того, чтобы удостовериться в соответствии ее механик задумке или в том, что математика делает интересным игровой процесс, но и для того чтобы удостовериться в том, что игра вообще запускается и работает так, как было задумано. Тестировщики занимаются поиском проблем, которые проглядели или не догадались проверить другие члены команды. И к чисто системным проверкам различных устройств, на которых игра должна запускаться, добавляется, конечно же, проверка работы и гейм-дизайнеров с программистами. Возможно, только работа художников освобождена от зоркого взгляда тестировщиков, и то лишь потому, что художники обычно не вставляют свою работу в игру, этим занимаются дизайнеры уровней и контента.
Практически все компоненты, кроме идеологических, могут быть потенциальным источником ошибок. Интерфейс может работать не так, как ожидается, вызывая неправильные реакции: открывать не те окна, воспроизводить не те звуки. На уровнях могут быть ошибки в виде неправильно расположенных предметов: недостижимых или летающих в воздухе. Или, наоборот, игрок может зайти туда, куда не должен. Могут вызываться неправильные сценки, неправильные диалоги. В текстах могут встречаться опечатки. Могут быть неправильно настроены характеристики предметов и персонажей или неправильно выдаваться награда.
Несмотря на то что все, что может, должно быть автоматизировано, практически все тестирование в играх ручное. И человек, занимающийся тестированием, должен день за днем играть в одну и ту же игру, проверяя исправление старых ошибок и обнаруживая появление новых. При этом исследовать надо не только места, связанные с текущими задачами, но всю игру, потому что всегда что-то может пойти не так в совершенно случайном месте.