Рубрика «Тестирование игр» - 3

Рефлексия геймдизайнера: персонажи для игры, которая не вышла - 1

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

NB! Значительная часть статьи — это копипаста из конфы проекта без особой обработки. Это сделано специально, чтобы показать настоящие воркфлоу и рабочие материалы, а не их вылизанные для публичного доступа версии.

Структура и манера описания меняется от персонажа к персонажу, потому что разным художникам нужны разные детали в описании, да и мои представления о приоритетах и акцентах менялись со временем. В рамках под концептами — уже сегодняшние комментарии.Читать полностью »

Допустим, я создаю уровень для классического шутера от первого лица. Сначала я строю ареню и добавляю на неё несколько монстров. Я не хочу, чтобы на игрока нападали сразу после начала уровня, поэтому присоединяю к одной из сторон арены коридор и ставлю игрока туда.

Проблема дверей в дизайне шутеров - 1

Буквами E помечены враги-монстры на арене, а буквой P — игрок, изначально находящийся в коридоре.

Мой уровень получился простым, но я им доволен и приглашаю друга протестировать его. Мой друг проходит по коридору, входит на арену и его обнаруживают монстры — пока всё идёт по плану. Затем мой замысел начинает разрушаться. Вместо того, чтобы сражаться на арене, мой друг возвращается в коридор и стреляет в дверь, когда в ней один за другим появляются враги. Вместо динамичной перестрелки, уворотов от пуль и вихря разрушений мой приятель превратил уровень в тир: скучный, безопасный и медленный.

Иллюстрация проблемы (GIF)

Проблема дверей в дизайне шутеров - 2

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

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

Если расширить дверной проём, чтобы коридор выходил на арену, то мы получим другую версию той же проблемы. В чём-то она будет лучше, в чём-то хуже. Даже после увеличения порога ничто по-прежнему не привлекает игрока на арену, и ничто в коридоре не выталкивает его оттуда.
Читать полностью »

Сегодня я хочу вам рассказать о достаточно новом open-source инструменте для автоматизированного тестирования под названием Airtest. В дальнейшем я сделаю ещё несколько статей с подробным рассказом об отдельных элементах данного инструментария и как с ними работать, а сейчас у меня цель познакомить вас с ним и дать общее представление о нем.

AirTest IDE разработан компанией NetEase и предназначен для "hard-to-automate" приложений, таких как, к примеру, игр. Собственно на них и делается основной упор разработчиками, хотя это не мешает использовать AirTest и для любых других приложений.

AirTest IDE работает под Windows, MacOS X и Linux и содержит в себе 2 фреймворка: AirTest и Poco. Данная разработка была представлена Xin Liu на Android Game Developer Summit 2018. Для написания тестов используется Pthong 2.7 и Python 3.3+. Такие важные вещи как поддержка запуска тестов сразу на большом количестве устройств, открытость исходного кода и бесплатность приложения, а также легкое написаное тестов — это те преимущества, которые выделяются разработчиками. Приложение может быть использовано как на Windows, так и на MacOS и позволяет автоматизировать приложения со следующих OS: Windows, iOS, Android.

AirTest Project на GitHub содержит 4 проекта: Airtest, Poco, iOS-Tangent, multi-device-runner.
Стоит также упомянуть, что NetEase предоставляет свою ферму физических устройств для автоматизированного тестирования, которая называется AirLab.

imageЧитать полностью »

Курс Молодого Геймдизайнера 2: баланс прогрессии и динамики без математики - 1

Предыдущая статья про баланс персонажей и снаряжения собрала много отзывов и я решил не тянуть с продолжением.

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

Бонусом в конце — несколько ссылок по теме.Читать полностью »

Курс Молодого Геймдизайнера: как считать баланс персонажей и снаряжения без математики - 1

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

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

Статья будет полезна тем, кому надо заняться балансом, но не знает с чего начать, а также начинающим геймдизайнерам, которые будут выбирать специализацию. Ну и всем, кто просто интересуется, чем занимаются ГД, когда не придумывают новые виды лутбоксов.Читать полностью »

image

После выпуска в 2004 году Halo 2 мгновенно стала самой популярной многопользовательской игрой в Xbox Live. Она сохраняла это звание почти два года, и можно даже с уверенностью сказать, что основной причиной выживания Xbox Live в её ранние годы стала огромная популярность этой единственной игры. На протяжении всего шестилетнего срока жизни игры более 6,6 миллионов игроков наиграли больше 499 миллионов часов в онлайн-мультиплеер Halo 2. Команда разработчиков Bungie сильно рискнула и создала новый тип онлайн-игр, получивший огромный успех и порадовавший миллионы людей.

И поэтому я рад, что не убил эту игру в зародыше.

Во время разработки Halo 2 получила кодовое название «Prophets» («Пророки»), потому что во вселенную Halo добавили новую расу инопланетян. В то время большинство исследователей в Microsoft осуществляли поддержку от трёх до пяти игр, но из-за того, что этот проект был так важен для первой Xbox, в помощь разработчикам игры выделили на полный рабочий день аж двух исследователей user experience — меня и Рэнди Пагулаяна. Мы оба были опытными учёными с докторскими степенями по экспериментальной психологии и давно состояли в отделе Games User Research компании Microsoft. Наша задача заключалась в использовании качественных и количественных техник, например, исследований юзабилити, игрового тестирования (плейтестинга) и опросов, позволяющих командам разработчиков понять, как будут приняты их игры после выпуска.
Читать полностью »

image

Вам любопытно, как работает юнит-тестирование в Unity? Не знаете, что такое юнит-тестирование в целом? Если вы ответили положительно на эти вопросы, то данный туториал будет вам полезен. Из него вы узнаете о юнит-тестировании следующее:

  • Что это такое
  • Его польза
  • Достоинства и недостатки
  • Как оно работает в Unity при использовании Test Runner
  • Как писать и выполнять юнит-тесты, которые будут проходить проверку

Примечание: в этом туториале предполагается, что вы знакомы с языком C# и основами разработки в Unity. Если вы новичок в Unity, то изучите сначала другие туториалы по этому движку.

Что такое юнит-тест (Unit Test)?

Прежде чем углубляться в код, важно получить чёткое понимание того, что такое юнит-тестирование. Если говорить просто, то юнит-тестирование — это тестирование… юнитов.

Юнит-тест (в идеале) предназначен для тестирования отдельного «юнита» кода. Состав «юнита» может варьироваться, но важно помнить, что юнит-тестирование должно тестировать ровно один «элемент» за раз.
Читать полностью »

Доброго дня.

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

От пяти копеек до игры божеств - 1

Настольно-ролевые конкурсы мне попадались как наши отечественные (именуемые «Кашеварами»), так и международные (ежегодный Game Chef). На международном, как правило, требовалось придумать какую-то новую мини-систему правил, а на Кашевары подавались не только системы, но и модули-приключения для существующих систем. Ещё международный конкурс пытался задавать некие тренды и экспериментировать — в тот год очередной темой Game Chef стал поиск новых настольно-ролевых форматов: «отсутствие книги правил».
Читать полностью »

TDD в геймдеве применяют довольно редко. Обычно проще нанять тестировщика, чем выделить разработчика для написания тестов — так экономятся и ресурсы, и время. Поэтому каждый успешный пример использования TDD становится интереснее. Под катом перевод материала, где эту технику разработки применили при создании передвижения персонажей в игре ElemenTerra.

TDD в геймдеве или «кроличий ад» - 1
Читать полностью »

Релиз часто подкрадывается незаметно. И любая ошибка, внезапно обнаруженная перед ним, грозит нам сдвигом сроков, хотфиксами, работой до утра и потраченными нервами. Когда подобный аврал стал происходить систематически, мы поняли, что так больше жить нельзя. Было решено разработать систему всесторонней валидации, чтобы спасти рядового Райана разработчика Артёма, который перед релизом уходил домой в 9 вечера, или в 10, или в 11… ну вы поняли. Идея была в том, чтобы разработчик узнавал об ошибке, пока изменения еще не попали в репозиторий, а он сам не потерял контекста задачи.

Статическое тестирование или спасти рядового Райана - 1


Сегодня вносимые изменения бережно проверяются вначале локально, а затем серией интеграционных тестов на сборочной ферме. В этой статье мы поговорим о первом этапе проверки — статическом тестировании, которое следит за корректностью ресурсов и анализирует код. Это первая подсистема в цепочке и на её долю приходится основная масса найденных ошибок.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js