December 30, 2019

QA vs Videogames.

November 13, 2018

Так каково же место QA в разработке видеоигр?

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

Да и смоук-тесты на предмет "А оно работает вообще?", которыми при лучшем раскладе занимается сам разработчик.

А где качество, там и его обеспечение. И тестирование, как часть этого процесса.

Какими же особенностями отличается именно разработка видеоигр?

Движки.

Основа всего. По сути, это набор решений для упрощения создания игр, в том числе для тех, кто не умеет программировать. Есть популярные и понятные решения, базовые возможности которых доступны бесплатно. Например: Unreal engine, Unity 3D, Defold, Game maker: Studio.

Каждое из них хорошо своими особенностями и для разных целей (и имеет свои проблемы и сложности). Но ключевое здесь то, что экспертиза в них помогает как в личных проектах, так и в трудоустройстве. А ещё она сужает область поиска основной технологии для разработки, в данном случае - языка или языков.

Языки программирования.

Да, а что по языкам? У UE4 это С++ (о да), в Unity3D используют C#, если выберете Defold - можно писать на Lua, а Game Maker радует своим внутренним упрощённым решением, GML.

Графика.

Это не то же самое, что собрать интерфейс из вёрстки и спрайтов, положить их на CDN-ы и оптимизировать, чтобы весило мало и грузилось быстро. Хотя, разработка мультиплеерных игр имеет пересечения с веб-разработкой и разработкой приложений. 3D-модели персонажей тяжелы, сложны в сборке и интеграции, а разломать их очередным коммитом ничего не стоит. Детализованное 2D легче, чем многополигональное 3D, но видеокарта и память от него трещат будь здоров. И здесь вступает наш Чёрный плащ (только свистни, он появится): программирование графики.

Я сама имела дело с шейдерами, отвечающим за свет на моделях и поверхностях, его цвет и эффекты. Но эта область по-настоящему широка и ей занимаются отдельные специально обученные люди - программисты, технические художники, 3D-generalist'ы.

Заметили, что я уже полстатьи говорю только о разработке? Потому что в современных подходах качество - часть разработки, ответственность всей команды, а приёмка и тестирование делятся между участниками по мере потребностей и возможностей. И хорошо, если каждая сторона разбирается в том, что делает другая. Лучше всего в этом ориентироваться заранее.

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

Зачем это всё нужно вам? Плохое качество на выходе не только вредит продажам, но и ломает опыт конечного пользователя. Что подразумевает, что он и его знакомцы не вернутся к вам покупать видеоигры. А если повезёт (что наверняка) - получите негативное освещение в медиа и ещё большие финансовые потери на подлёте.

Какая разница, если я наёмный разработчик? - спросите вы. Ну, все мы хотим, чтобы наши работодатели процветали, а проекты мечты имели шанс начаться. И здесь каждый вложенный кирпичик важен.

Спасибо за внимание!


Мой канал про QA https://tmgo.me/qa_yashik
Для связи в telegram: @br0wnale (нолик вместо "о")