В первых двух статьях ( один раз И два ) мы уже рассмотрели виды тестирования, используемые при разработке игр, и примеры часто (и не очень часто) встречающихся в играх ошибок.
Но в воздухе оставался невысказанный вопрос: «Как все это проверитьЭ» В этой главе я поделюсь подходами и инструментами, которые использую для тестирования тех или иных игр, в том числе игр с большими картами (например, в жанре Battle Royal) или чего-то более локального, например спортивного симулятора.
Чит-коды / Чит-меню
Чит-коды изначально не были пасхалками или полезными трюками для игроков, чтобы они могли загрузить определенный уровень или поставить себе бесконечное здоровье/деньги, и даже не были придуманы для сохранения, хотя их можно использовать и таким образом.Чит-коды использовались разработчиками для отладки игр.
Из-за различных ограничений их приходилось вводить на определенном игровом экране или в меню.
Со временем коды дошли до народа и стали чрезвычайно востребованы по очевидным «божественным» причинам.
Теперь вместо кодов, которые нужно запоминать и долго вводить, используются Cheat Menus, в которых уже есть списки чит-кодов, сгруппированные в удобную для использования форму.
Этот список можно вызвать практически на любом экране, но если код не соответствует текущим условиям, он не будет выполнен (например, если вы пытаетесь заспавнить объект в главном меню).
Чит-меню не является стандартной функциональностью; каждая игра имеет уникальный внешний вид и уникальный код, отвечающий за его реализацию.
Пример удобного чит-меню Однако с большой силой приходит и большая ответственность — использование чит-кодов может привести к ошибкам, которых невозможно добиться в реальных игровых условиях.
Именно по этой причине достаточно сложные и даже «странные» баги необходимо перепроверять и воспроизводить без использования чит-кодов, а также всегда держать в голове весь поток, который должен пройти игрок, чтобы наткнуться на данную проблему.
.
Также стоит учитывать, что существует большая вероятность того, что игрок никогда не столкнется на практике с тем или иным багом, который легко воспроизвести с помощью читов.
P.S. Motherlode и Konami Code навсегда в наших сердцах!
Игровая консоль
Внутриигровая консоль может использоваться и часто используется в качестве полезного инструмента тестирования.Обычно он вызывается при нажатии кнопки «~» (тильда), появляется либо внизу небольшой строкой, либо вверху экрана, занимая приличную его часть.
Думаю, многие использовали консоль в Counter Strike 1.6, превращая персонажа из правши в левшу или меняя характеристики зрения.
Однако по умолчанию консоль не была включена: ее нужно было предварительно активировать в настройках.
Пример игровой консоли в Counter Strike 1.6 С помощью консоли на девбилдах (например, прямо из Unreal Editor) вы можете подключить бэкенд с нужными вам тестовыми аккаунтами, ускорить или замедлить игру (не FPS, а внутриигровые действия), использовать чит-коды, включение/выключение нужного вам HUD и многое другое.
Внутриигровой HUD (проекционный дисплей)
Чрезвычайно полезные инструменты, которые, однако, невозможно получить без помощи разработчиков.Виджеты HUD часто вызываются с помощью консольной команды.
В зависимости от того, как разработчики настроят HUD, для конкретных нужд будет отображаться та или иная информация.
С помощью таких элементов чрезвычайно удобно отслеживать нанесенный урон, прогресс в испытаниях, использование предметов (расходников) и т.д. Стоит отметить, что такие HUD разрабатываются разработчиками специально для нужд отладки и их вполне может не быть в вашем проекте.
Оружейная/Тренировочная комната
Комнаты такого типа обычно содержат оружие, персонажей, врагов (включая боссов), поверхности, расходные материалы и транспортные средства.В общем, все необходимое и теоретически необходимое, что может пригодиться для тестирования в процессе игры.
Помимо всего вышеперечисленного, в таких пространствах могут создаваться комнаты для конкретных нужд: например, в одной комнате предметы могут располагаться таким образом, чтобы проверять, защищает ли вас препятствие определенного размера, когда вы сидите на корточках, стоите, и т. д.; в другой комнате - проходит ли персонаж между предметами и т.д.
Пример тренировочной комнаты из Apex Legends Такие пространства встречаются, как правило, в довольно больших играх, потому что для их создания нужен бюджет и разработчики, которые смогут собрать воедино все необходимое.
Тогда вы сможете самостоятельно «достроить» нужные вам места внутри этой карты, если умеете пользоваться редактором движка.
Конфигурационные файлы
Файлы конфигурации распространены повсеместно, и вы можете использовать их для самых разных нужд. В разрабатываемых сборках таких файлов больше, чем в релизной версии, и через них можно включать/отключать функции, изменять разрешения, управлять уровнем журналирования, указывать, к какому серверу подключаться, управлять настройками графики и многое другое.Часто любители «старых игр» возятся с файлами конфигурации (например, формата «.
ini»), чтобы настроить функционал старых игр на новом оборудовании, если для нее не выпущен соответствующий патч или переиздание.
Количество и объем доступных настроек, а также их формат могут радикально отличаться от игры к игре, даже если игры написаны на одном и том же движке.
Пример файла конфигурации (файл .
ini) из Fortnite
Управление подключением к Интернету
Крайне важный момент, который стоит проверить в наше время, потому что.Даже в одиночных играх могут (и чаще всего встречаются) элементы, завязанные на онлайн.
К сожалению, уникального и комплексного инструмента здесь нет. Лично мне пользоваться инструментом приятно и удобно.
Неуклюжий в качестве помощника в этом деле.
Программа манипулирует не игрой, а вашим соединением в целом, что делает Clumsy удобным инструментом управления вашим соединением абсолютно для любых нужд: веб, автономное ПО и т.д. В рамках этого инструмента вы можете управлять такими возможностями по испорчению вашего Интернета.
соединение как задержка, падение, дросселирование, выход из строя, дублирование и вмешательство.
Более того, вы можете сделать это как для входящего, так и для исходящего трафика, указывая вероятность возникновения этой проблемы.
Неуклюжий пример использования
Режимы просмотра
Игровые движки имеют функцию, называемую «режимами просмотра», которая помогает вам увидеть тип данных, обрабатываемых в вашей сцене, а также диагностировать любые ошибки или неожиданные результаты.Наиболее распространенные режимы просмотра имеют свои собственные горячие клавиши, и они могут отличаться от движка к движку, но вы всегда можете просмотреть их все из режима просмотра или вызвать с помощью соответствующей команды в консоли.
Ниже я приведу несколько примеров на основе режимов просмотра из Unreal Engine, и вы сможете узнать больше и подробнее.
прочитайте документацию по двигателю .
Давайте посмотрим на некоторые из них.
Горящий режим
Режим освещения отображает окончательный результат вашей сцены после применения всех материалов и освещения.
Неосвещенный режим
В этом режиме отключается все освещение в сцене, отображается только базовый цвет.Каркасный режим
Каркасный режим или режим «каркас» показывает все полигоны сцены без заливки.Цвет линий ребер многоугольника может иметь дополнительную функцию.
А может и нет :) (тогда все края условно черные).
Режим отражений
Режим отражения полезен для диагностики деталей отражений и позволяет разместить больше «актеров захвата отражений» в областях, где вам нужно больше деталей.
Набор инструментов для детской площадки
Все игровые платформы предоставляют разработчикам собственные инструменты для загрузки и тестирования игр через свою систему.Например Пар позволяет переключать языки (локализацию) через меню Свойства вашей игры, запускать игру со своими параметрами (например, запустить игру с нужными вам параметрами или переписать значения используемых параметров), позволяет вы можете проверить целостность файлов игры, вручную проверить наличие обновлений из вашей системы CI/CD и многое другое! Ну и конечно платформы позволяют скачать и добавить свою игру в библиотеку с помощью специального кода.
Если игра уже доступна для скачивания игрокам или вы хотите использовать разные среды для разных команд, то для таких нужд игровые платформы предоставляют возможность использовать разные ветки (Ветки).
Например, одна ветка смотрит на главный клиент — тестовый бэкенд («рабочая среда»), а вторая — производственный клиент — живой бэкенд (релизная среда).
Пример функционала добавления вашей игры (dev build) в вашу коллекцию Steam Этот метод чрезвычайно удобен в использовании и помогает всем членам одной команды или даже разных команд использовать те версии игры, которые нужны каждому, не влияя друг на друга.
При использовании «рабочей среды» сайты также перед запуском спрашивают, нужно ли им запускать античит-систему.
Во многих случаях тестировщикам даже не нужно использовать сборку редактора (запуск игры через редактор игрового движка), поскольку большинство потребностей по умолчанию покрываются сборкой сайта.
Также данная версия сборки максимально приближена к тому, что получит конечный игрок, что является важным критерием выбора этих сборок в качестве основных кандидатов на регрессионное тестирование.
Меню контроллеров, которые в настоящее время поддерживаются вашей игрой.
Общие инструменты, которые могут быть полезны при тестировании игр
Говоря об инструментах, которые не имеют прямого отношения к тестированию, но могут облегчить вам жизнь, я бы выделил следующие: система контроля версий (Перфорс, Git) редакторы игровых движков , Графана И Плейфаб .
система контроля версий
Я не буду много говорить о Perforce и Git, потому что.Это распространенные программы системы контроля версий и важные элементы рабочего процесса для большинства проектов.
С помощью Perforce вы можете скачать девбилд, загрузить изменения, выбрать и использовать конкретный номер сборки (Change List), сделать файлы доступными для редактирования (Check Out), установить нужные вам настройки и т.д. После проведения описанных выше манипуляций , вы можете использовать эту сборку как угодно, например, взять определенные файлы или коммиты и убедиться, что баг там (нет), но это совсем другая история =) Часто недалеко от Perforce на своем проекте можно встретить Git, но используются они для разных нужд, например, Perforce — для работы с клиентом, Git — для работы с Back-End частью.
Подробнее о Перфорсе Вы можете прочитать это на их официальном сайте и я настоятельно рекомендую это проверить.
UnrealGameSync (UGS)
Если вы не хотите мучиться с изучением Perforce, но при этом вам нужна возможность собирать сборки с определенными CL, то такой классный инструмент, как UnrealGameSync ( ПХГ ).В данном случае это инструмент для Unreal Engine, который позволяет видеть и фильтровать CL в репозитории.
С помощью UGS чрезвычайно удобно отслеживать последние изменения и собирать новый билд — достаточно дважды кликнуть по нужному CL и процесс начнется! (звучит как рекламный слоган xD)
Редактор движка
Примерно такая же история у нас с редактором игрового движка.Здесь вы можете перенастроить нужные вам элементы внутри игры перед ее запуском.
Игру можно запустить как в режиме «редактора» (игра запускается во ViewPort вашего движка), так и в «автономном» режиме.
Здесь могут быть реализованы любые ваши пожелания и предпочтения, если таковые имеются, но чаще всего вам нужно тестировать игру на «доработанных» сборках, которые можно либо скачать со своих внутренних ресурсов после завершения очередного процесса CI/CD, либо сыграть напрямую.
через игровые платформы, такие как Steam. Также стоит отметить, что редактор может отсутствовать в некоторых пользовательских движках.
Графана
Графана — этот дашборд для визуализации метрик используют многие члены команды.Чрезвычайно полезный инструмент при тестировании производительности и сети благодаря возможности отслеживать количество реальных и смоделированных игроков в определенный момент времени, отображать ограниченный объем информации для внешних команд в вашем процессе и многое другое.
Подробнее об этом инструменте Вы можете прочитать это здесь .
Пример диаграмм в Grafana
Плейфаб
Я думаю, что это также стоит упомянуть Плейфаб .По сути, это готовый Back-End, предоставляемый в наши дни Microsoft на условиях подписки, который объединяет аккаунты из разных игр в единый (главный) аккаунт, помогает в настройке экономики без «лишнего» кодирования.
Как сказано на сайте Playfab, это комплексное серверное решение, позволяющее избежать хлопот по сборке, управлению и запуску серверов в больших масштабах, а также помогает организовать чаты и обмен данными с минимальной задержкой.
В рамках тестирования Playfab будет использоваться не часто (это НЕ инструмент тестирования, как и все инструменты в этом разделе), но он может быть интересен, когда речь идет о проверке правильности использования, например, аналитики, которая прилагается.
к вашему функционалу.
Кто бы не хотел использовать аналитику для BattlePass или систему развития? На сайте Playfab можно увидеть множество игр с использованием этого продукта.
Среди них Doom Eternal, Minecraft, Roblox, Gears 5 и многие другие! Обзор функций, которые предоставляет Playfab можно посмотреть на их сайте .
Инструменты от производителей консолей
В конце этого раздела я уточню, что все производители консолей есть свои инструменты для общения и работы с разработчиками и тест-китами.Эти программы имеют множество полезных функций, таких как сбор логов, работа с данными сохранения, сбор информации при сбое игры, возможность использования расширенных ресурсов дев-китов, эмуляция работы с онлайн-сервисами без прямого подключения к ним, удаленное управление и многое другое.
! Начиная с 2020 года все эти программы начали улучшать существующий функционал по удаленному управлению консолями, что крайне удобно в современных реалиях.
Пример использования Nintendo Target Manager найден в Интернете
Так в чем же суть?
Как видите, тестирование игр — это сложный, многоэтапный, но чрезвычайно увлекательный и творческий процесс, включающий в себя самые разные виды тестирования, в том числе специфические, которых вы не встретите в других «жанрах» программ.Начинать тестировать игры, как и начинать тестирование в целом, можно с простых задач, зная лишь азы для позиции «джуниора» и понимая, чем и как живёт игровая индустрия.
Для этого не обязательно иметь профессиональное высшее игровое образование =) Однако, как и во всем, чтобы стать экспертом в чем-то, вам потребуется наработать опыт в разных областях и инструментах, а также обладать аналитическими качествами, которые помогут вам в этом направлении, например, аналитическими и логическими способностями, глубокими знаниями видеоигры, их структура и механика; умение работать под давлением и т. д. Тестирование игры — это своеобразный рейдовый босс, для победы над которым требуется специалист соответствующего уровня.
И чтобы прокачать такого специалиста, обычно недостаточно просто нанять «опытного QA-инженера», чтобы у вас вдруг появился крутой Game Tester. В таких случаях часто все работает наоборот, поскольку получить богатый игровой опыт за короткий срок – задача крайне непростая.
Но в целом все зависит от того, чем вы хотите заниматься дальше: кто-то хочет помочь разработчикам своими отзывами и отличным началом для этого будут плейтесты, ранний доступ и т. д., а кто-то хочет углубленно изучить игры и достичь лично их качество, находить и локализовать проблемы с качеством продукции прямо на проекте! Эта серия из трех статей была разработана, чтобы помочь вам во всех этих случаях и познакомить вас с новинками в этой области! Надеюсь, они были вам полезны и вы открыли для себя что-то новое! Также пишите в комментариях примеры из своего опыта, чтобы мы могли обсудить эту тему! Теги: #игры #Разработка игр #Игры и игровые консоли #игры #тестирование #Тестирование мобильных приложений #Тестирование IT-систем #Тестирование игр #Тестирование приложений #gamedev #игровая индустрия #создание игр #разработка игр
-
Зарабатывайте Деньги, Став Тестером Видеоигр
19 Oct, 24 -
Skarp – Лазерная Бритва «Нового Поколения»
19 Oct, 24 -
Моддинг Yota Egg
19 Oct, 24 -
Pycon 2011. Краткие Итоги Выступлений
19 Oct, 24 -
Триз И Капча
19 Oct, 24