скачать книгу бесплатно
Тестирование видеоигр, или Легкий способ попасть в геймдев
Александр Александрович Торговкин
Российский компьютерный бестселлер. Гейм-дизайн
Играть в игры и получать за это деньги? Звучит как работа мечты! Но чем на самом деле занимаются тестировщики?
Тестирование – критически важный этап при создании видеоигр, позволяющий разработчикам исправить ошибки и недочеты, а игрокам – сполна насладиться геймплеем.
На страницах книги ты найдешь ответы на самые важные вопросы о профессии QA-специалиста в области игровой разработки, множество практических советов, рекомендаций, а также разборы реальных кейсов из жизни компаний.
• Почему игры необходимо тестировать и чем они отличаются от другого ПО?
• Чем занимается тестировщик игр и что нужно знать, чтобы им стать?
• Какие бывают баги, почему они случаются и как с ними работать?
• Чем отличается тестирование игр для разных игровых платформ?
• Как начать карьеру в области тестирования и куда развиваться?
После прочтения книги ты станешь лучше понимать процесс продуктовой разработки, узнаешь все о работе тестировщика и сможешь внести свой вклад в создание видеоигры.
В формате А4 PDF сохранён издательский макет.
Александр Торговкин
Тестирование видеоигр, или Легкий способ попасть в геймдев
© Торговкин А.А., текст, 2024
© Оформление. ООО «Издательство «Эксмо», 2024
* * *
Благодарности
Автор выражает признательность людям, оказавшим помощь при подготовке этой книги.
Компании Saber Interactive[1 - Saber Interactive – международная компания по разработке и изданию компьютерных игр. Офисы разработки находятся в России, Армении, Испании, Беларуси, Швеции и Португалии. – Здесь и далее прим. авт.] и лично:
Виктору Гляненко
за веру в проект подготовки специалистов в области игрового тестирования, за поддержку при подготовке материалов и рецензирование книги;
Нине Резниченко
за массу полезных замечаний и жизненных историй, которые, несомненно, сделали изложение материала более интересным;
Даше Касимановой
за оценку материала, независимое мнение и помощь в структурировании материала;
Максу Филиппову
за энтузиазм при рецензировании материала и примеры из жизни тестировщика, без которых не удалось бы раскрыть всю суть профессии.
Компании Bytex[2 - Bytex – российская компания, специализирующаяся на тестировании компьютерных игр любого жанра на любых платформах.] и лично:
Вадиму Луковатому
за апробирование материала еще до публикации книги и подтверждение правильности изложенных в ней мыслей на практике;
Сергею Унгеру
за экспертизу при описании специфики тестирования на разных игровых платформах;
Наталье Шевяковой
за помощь в подготовке раздела, касающегося карьеры тестировщика и замечания к материалу с точки зрения HR и психологии.
RSTQB[3 - RSTQB (Russian Software Testing Qualifications Board) – российское представительство открытой международной организации ISTQB, занимающейся развитием тестирования программного обеспечения через обучение и сертификацию.]
и лично:
Андрею Конушину
за вдохновение и демонстрацию того, что можно добиться многого при желании и правильной организации дела;
Александру
«Дедушке русского тестирования» Александрову за мудрость, демонстрацию абсолютного спокойствия в любой ситуации и десятки часов совместной работы над силлабусом ISTQB® GaMe Tester;
Павлу Шарикову
за энтузиазм и массу бесподобных примеров для подготовки по программе ISTQB® GaMe Tester, которые позволили сфокусироваться и не расплескать мысль при обработке материала.
Моей дочери Маше
за конструктивную критику стиля изложения (без нее книга была бы совсем другой) и предложения по его улучшению.
А также всем, без кого публикация этой книги была бы невозможной.
От автора
Я надеюсь, что эта книга будет полезна тем, кто хочет попасть в игровую индустрию, но еще никогда не принимал участия в создании игровых продуктов и не знает, как устроен мир разработки.
Важное преимущество профессии тестировщика – то, что со временем ты очень четко будешь разбираться во всех игродельных процессах и нюансах, будешь понимать и выявлять первопричины ошибок. А значит, впоследствии сможешь управлять процессом разработки, точно зная, как делать НЕ надо.
В основе тестирования компьютерных игр лежат те же принципы и применяются те же методологии, что и при тестировании прикладного программного обеспечения. Однако в играх есть области, которые отличают их от любого другого ПО, и в этой книге я бы хотел обратить особое внимание как раз на них.
С другой стороны, если ты уже сейчас разрабатываешь игровые продукты, здесь много полезной информации для того, чтобы понимать, каким образом обеспечивается и поддерживается их высокое качество.
Важно понять, что, прочитав эту книгу, ты не превратишься мгновенно в суперпрофессионала игрового тестирования. Но в ней точно содержится информация, которая позволит тебе пройти собственный путь гораздо быстрее и легче.
На этих страницах изложен опыт, накопленный за годы работы в компаниях, занимающихся не только тестированием игр и их разработкой, но и подготовкой кадров в этой сфере. Надеюсь, что в ней ты найдешь ответы на многие свои вопросы. Главное – эти знания помогут тебе построить карьеру в игровой индустрии.
Желаю удачи!
Глава 01. Путь в тысячу ли начинается с первого шага
– А далеко до этой комнаты?
– По прямой – метров 200. Да только тут не бывает прямых.
S.T.A.L.K.E.R.
• Почему игры необходимо тестировать?
• Чем отличается игра от другого программного обеспечения?
• Чем занимается тестировщик игр?
• Что нужно знать, чтобы стать тестировщиком?
• В чем смысл 7 принципов и 5 мифов тестирования?
Практически на любом промышленном предприятии был отдел, который назывался ОТК. В нем, как правило, трудились люди, проработавшие на этом предприятии очень солидное время и знавшие от и до не только выпускаемую продукцию, но и все нюансы ее производства. Название отдела расшифровывалось как «отдел технического контроля», а его сотрудники каждый день приходили на работу, чтобы искать в продукции, которую выпускало их любимое предприятие, не полезные качества, которые помогли бы ее продать, а… дефекты и недостатки. Солидные дяденьки и тетеньки брали детский велосипед, присоединяли колесо передачей к двигателю и наблюдали, как оно вращалось по много часов подряд, имитируя долгую поездку на дачу и обратно. Если в процессе испытаний происходило что-то, не похожее на нормальную работу велосипеда (а о том, как ДОЛЖЕН работать велосипед, эти люди знали все), сотрудники ОТК скрупулезно фиксировали эти случаи в специальных документах, попутно добавляя информацию о том, по каким причинам такое могло произойти и что стало причиной брака.
А ты помнишь старые велосипеды? Стальная рама, кованая «звездочка», «неубиваемые» педали, цепь, которая удержит и быка. И через 30 лет такой велик скрипит, но едет без единой поломки. Новый велосипед, с его тридцатью тремя скоростями, пневмоподвеской, подшипниками, звездочками и тормозами, над которыми трудились десятки инженеров, хотя и позволяет нам ехать гораздо быстрее, однако более подвержен различным «болезням». Это и понятно. Чем сложнее система, чем больше в ней элементов, чем чаще они взаимодействуют друг с другом, тем более она уязвима для различных поломок.
Теперь представь, что было бы, если велосипеды, производимые на заводе, отправлялись бы сразу в магазины без всяких испытаний. Последствия могли бы быть самые разные: от противного раздражающего скрипа сиденья до лопнувшей цепи посреди долгой дороги. В любом из этих случаев человек, купивший велосипед, испытал бы разную степень возмущения, разочарования и досады по поводу неудачного приобретения… если бы выжил, когда на полном ходу у него бы отвалилось колесо.
Развиваются не только велосипеды; развивается вообще все. Все становится сложнее, быстрее, технологичнее. И компьютерные игры – главная цель обсуждения в этой книге – не исключение. Стремительное развитие игровой индустрии привело к их распространению на множестве различных платформ. Игры стали масштабнее, реалистичнее и требовательнее к техническим ресурсам. Как и все люди, разработчики компьютерных игр допускают ошибки в работе, а чем затейливее становятся применяемые технологии, тем больше дефектов может возникнуть при их использовании. В то же время аудитория игроков значительно увеличилась, стала более искушенной и требовательной к качеству. Они хотят еще большей реалистичности, новых технологий, новых ощущений! И поскольку они платят за это довольно большие деньги, они вправе ожидать качественный продукт.
Игра, которая запускается на телефоне, компьютере или игровой приставке, – это разновидность программного обеспечения. А значит, все, что справедливо для тестирования ПО в общем смысле, справедливо и для тестирования игр.
Но интернет-магазины, приложения для построения маршрутов движения, сервисы для просмотра фильмов и прочие программы в первую очередь важны своим функционалом и удобством использования. В играх же, помимо этого, важна интересность, увлекательность, вызов. Пользователь запускает игру, чтобы нескучно провести время, развлечься, получить яркие эмоции.
Поэтому для игры важно, как она ощущается, является ли захватывающей, хочется ли запустить ее снова или поискать другой способ досуга.
Если рассматривать игру как систему, то можно заметить, что она состоит из подсистем, каждая из которых сама по себе очень сложна. Ниже перечислены некоторые из них.
• Графическая подсистема
• Звуковая подсистема
• Подсистема игровой логики
• Подсистема искусственного интеллекта
• Физическая подсистема
• Подсистема взаимодействия с пользователем
• Подсистема хранения данных и др.
А еще не забудь про историческую достоверность в играх, соответствие прототипу и локализацию.
Так же как специалист, испытывающий велосипед, должен знать, как он устроен и принцип его работы, тот, кто считает себя игровым тестировщиком, должен знать, как создаются и анимируются 3D-модели, как записываются звуки и где они хранятся в игре, как в игровом движке настраивается освещение, откуда в игре появляются невидимые стены, почему враги атакуют разных персонажей по-разному, почему в Китае нельзя выпустить игру со скелетами и почему персонаж должен оставлять разные следы на разных поверхностях.
Хороший тестировщик должен разбираться в продукте, который он тестирует. А без большого игрового опыта в разных жанрах это практически невозможно.
Ты скажешь: «Получается, что стать игровым тестировщиком невероятно сложно?» И да и нет! Всему можно научиться, все знания систематизировать и каталогизировать, если подойти к этому процессу правильно.
После выхода Cyberpunk 2077 пользователи базовых версий PlayStation 4 и Xbox One пожаловались на практически неиграбельные версии продукта. В версиях для обеих консолей наблюдались графические артефакты, падения частоты кадров и частые подзагрузки окружения и текстур. По данным Digital Foundry, Cyberpunk 2077 на PlayStation 4 работает с разрешением 720–900p (для сравнения, на PlayStation 4 Pro разрешение игры держится в районе 1080p), а частота кадров при этом в некоторых местах падает до 15.
14 декабря 2020 года компания CD Projekt RED официально прокомментировала ситуацию, извинившись за проблемный старт и анонсировав работу над двумя большими обновлениями, которые должны были выйти в январе и феврале 2021 года и были призваны исправить самые серьезные проблемы игры на консолях предыдущего поколения. Также студия пообещала вернуть всем желающим средства, потраченные на покупку игры.
Чтобы понять, чем занимается игровой тестировщик и кто это такой, давай попробуем разобраться с одним из определений этой профессии. «Тестировщик – это специалист, который занимается тестированием программного обеспечения с целью выявления ошибок в его работе и повышения уровня общего качества продукта». Если честно, понятнее не стало. Может быть, нужно почитать определение тестирования? «Тестирование – это процесс проверки соответствия заявленных к продукту требований и реализованной функциональности, осуществляемый путем наблюдения за его работой в искусственно созданных ситуациях и на ограниченном наборе тестов, выбранных определенным образом». О! Это уже лучше, и можно попробовать разобраться. «Процесс» означает, что мы занимаемся этим некоторое время и в рамках этого занятия происходит последовательная смена различных состояний.
С реализованной функциональностью все вроде бы понятно: мы можем ее увидеть, услышать и почувствовать, когда используем какой-то продукт, в том числе и видеоигру. А вот как быть с заявленными требованиями? Кем заявленными? Где они записаны и как их узнать? Давай порассуждаем. Если они кем-то заявлены, то мы имеем право ожидать, что они и реализованы. Так ведь? Какие требования и функционал пользователь вправе ожидать, например, от старого доброго «шутана»?[4 - Шутан (от «шутер», англ. shooter) – жанр игры от первого или третьего лица, в котором игровой процесс основан на использовании в сражениях огнестрельного оружия.] Очевидно, что в нем геймплей будет развиваться по законам игрового жанра, а перед игроком будут стоять соответствующие задачи. То есть игрок ждет, что в игре он получит возможность использовать различные виды оружия для уничтожения различных видов умных и не очень врагов, восполняя свое здоровье и запасы патронов, находя на уровнях аптечки и ящики с амуницией. При этом ему необходимо будет добраться живым от точки А на первом уровне до точки Б на последнем.
А дальше начинается самое интересное. Чтобы протестировать игру, нам, оказывается, нужно будет наблюдать за ее работой в искусственно созданных ситуациях, используя для этого некоторое количество тестов. Вопросов больше, чем ответов! Что это за ситуации и почему ограничено количество тестов? С последним, правда, еще можно разобраться: у тестировщиков нет бесконечного запаса времени, как у игроков, чтобы попытаться воплотить все многочисленные игровые ситуации и сценарии. А что значит «искусственно созданная ситуация»? Тут многих уже должны терзать смутные сомнения. Разве тестировать не значит играть в свое удовольствие и одновременно находить какие-то изъяны в игре? Неужели нет?!
Тут я вынужден развенчать один из самых распространенных мифов среди желающих попасть в игровую индустрию через тестирование. Ты не поверишь, как часто при собеседовании очередного кандидата в игровые тестировщики на вопрос «Как ты представляешь себе работу?» можно услышать: «Я играю в игру и по ходу прохождения обращаю внимание на разные баги[5 - Баг – жаргонное название дефекта. В индустрии ходит такая легенда о появлении этого термина. В 1945 году при испытании компьютера Mark II случился сбой в работе, вызванный мотыльком, закоротившим собой контакты реле. В журнале была сделана соответствующая запись о первом подтвержденном случае обнаружении бага (жука). Так с тех пор называют любой дефект программного или аппаратного обеспечения.], потом просто сообщаю об этом своему руководителю». Это утверждение очень-очень далеко от истины.
Просто поиграть тестировщику удается редко, если только во время знакомства с новым проектом или во время плейтестов[6 - Плейтест (англ. playtest) – метод тестирования игры путем предоставления ее группе представителей целевой аудитории для обнаружения потенциальных дефектов и сбора отзывов.].
Обычный пользователь запускает игру, чтобы ее пройти, победить соперников или приятно провести время. Тестировщик же проверяет соответствие игры требованиям, записанным в спецификации (если повезет и такие требования ему дадут[7 - Продукт развивается, и требования могут быстро устаревать. Если требования не актуализируются, то, как правило, использовать их в работе нет никакого смысла. Поэтому одна из важных задач в проекте – поддерживать требования к продукту в актуальном состоянии.]), или, основываясь на многих факторах, старается понять, как устроена эта игра и как в нее играть. Другими словами, делает все, чтобы пользователь потом прошел игру, победил врагов и приятно провел время. Причем сама игра может не совпадать с личными предпочтениями тестировщика, так как предназначена совсем для другой аудитории. Тем не менее тестировщик будет раз за разом проходить один и тот же уровень, чтобы проверить, например, правильность отображения игровых объектов.
Кроме того, помимо самого игрового процесса игра содержит множество различных элементов, которые тоже необходимо проверять. Тестировщики могут обнаружить изъяны в архитектуре игрового ПО уже на ранних этапах разработки, найти ошибки в звуковом сопровождении или выявить дефекты в тексте уже готовой к выпуску игры. Обычно тестировщик занят проверкой порученной ему небольшой части игры, и его задача – убедиться, что его 10 % игры работают на 100 %.
Вот тебе факт № 1: «тестировать игру» не равно «играть в игру». Но про то, что ты геймер, тоже забывать не нужно.
Нина Резниченко, QA-менеджер Saber Interactive
Ты, наверное, замечал, что иногда выходят игры, которые вроде хорошо сделаны, но при этом играть в них особо не хочется. Как-то раз мы проводили в команде плейтест игры среди тестировщиков и просили заполнить форму с фидбеком. Открыв эту форму, мы очень удивились, увидев там всего лишь один фидбек из 20, поскольку почти все тестировщики вместо фидбека написали список багов.
Одна из «побочек» работы геймдев QA – смещение фокуса, когда спустя некоторое время работы человек видит в игре одни лишь баги и теряет связь с геймерской частью себя («я – игрок»). Геймдев – это творческая среда, но за багкаунтом зачастую теряются эмоции и интерес, а это тоже очень важно.
Например, для игрока всплывающие подсказки в игре могут просто бесить и раздражать, но это не будет являться багом с точки зрения их функционала. Фича работает в соответствии с ГДД[8 - ГДД (гейм-дизайн-документ) – детальное описание разрабатываемой компьютерной игры.], подсказки действительно нужны, они работают. Но для игрока они навязчивы, прерывают геймплей в неподходящий момент, а отключить их невозможно.
Тестируя игру с позиции игрока, спрашивай себя, понятна ли фича для игрока. У тебя, как у QA[9 - QA (Quality Assurance) – это любой систематический процесс определения соответствия продукта или услуги определенным требованиям.], есть ГДД или описание фичи или какие-то подробности от разработчиков. Но представь, что ты видишь ее в первый раз. Спроси себя: «Как игрок найдет эту фичу? Понятно ли, как ею пользоваться и для чего? Сможет ли он ее абьюзить?»
Примеряя на себя разные роли и рассматривая проект с нескольких сторон и уровней, QA могут помочь выпустить не просто правильно работающую игру, но еще и интересную, в которую приятно играть.
Если ты мечтал попасть в геймдев, чтобы создавать, то, став тестировщиком, ты должен быть готов услышать факт № 2: твоей основной задачей будет разрушать, находить способы «сломать» игру, обнаруживать в ней изъяны – и чем больше, тем лучше. Но, разрушая игру, ты делаешь ее лучше, избавляешь ее от зловредных багов, находясь на первом рубеже защиты.
Для того чтобы эффективно выполнять свою работу, ты должен понимать, из чего состоит рабочий процесс выбранной тобой профессии. Ты, как врач, будешь иметь дело с пациентом, организм которого не работает так, как нужно. Чтобы поставить правильный «диагноз», тебе необходимо правильно провести обследование и сделать необходимые «анализы». Также потребуются инструменты и знания о том, как проводится диагностика органов (подсистем игры). Ты должен знать, где у твоего «пациента» находятся самые уязвимые места, и придумать тесты, которые помогут найти там дефекты. А после такой диагностики очень важно тщательно и грамотно записать полученные результаты. Чем точнее ты «поставишь диагноз», тем быстрее будут устранены дефекты, игра «выздоровеет», и игроки смогут насладиться качественным продуктом.