← Все материалы
Рабочий процесс

Проверка игрового поведения

Переводим фразу «механика готова» в воспроизводимые сценарии с условиями, действием и наблюдаемым результатом.

Что нужно знать

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

Принцип

Запишите начальное состояние, событие и ожидаемый наблюдаемый результат. Такая структура соответствует Given/When/Then из справочника Gherkin, но для ручной проверки не требуется устанавливать Cucumber.

Разделите чистое правило и его интеграцию. Расход заряда можно проверить на модели; столкновение с дверью, звук и восстановление после паузы требуют проверки в игре. Отладочные инструменты движка помогают увидеть причину, но отсутствие ошибок в консоли не означает правильность механики.

Практический пример

Рывок с одним зарядом

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

Дано Когда Тогда
Персонаж жив, заряд 1 Принят запрос рывка Заряд 0, состояние рывка активно
Заряд 0 Повторный запрос Новый рывок не начинается
Идёт рывок Игра поставлена на паузу Длительность не расходуется во время паузы
Идёт рывок Получено событие смерти Движение отменено, заряд остаётся 0

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

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

Частые ошибки

  • Проверять только успешный случай с полным запасом ресурсов.
  • Считать скриншот доказательством правильной длительности.
  • Требовать тот же номер кадра при разной частоте отрисовки.
  • Выдавать автоматическую проверку правила за проверку удобства управления.

Проверка результата

  1. Выполните каждый сценарий из указанного состояния и сохраните результат.
  2. Повторите интеграционный проход при разных частотах отрисовки, сохраняя шаг симуляции.
  3. Проверьте паузу, перезапуск и одновременные события.
  4. Для сбоя запишите сборку, входные события, ожидаемое и фактическое поведение.

Задание для ИИ-агента

Реализуй контракт рывка и таблицу сценариев. Автоматизируй чистые переходы, остальные проверки опиши для целевого устройства. В отчёте раздели выполненное, не выполненное и найденные расхождения. Не выдумывай успешный запуск.

Сверьте переходы с уроком «Состояния и переходы» и призмой «Правила».

Источники и дальнейшее чтение

CC BY 4.0 · Game Dev DB contributors