---
key: lesson/gameplay-acceptance
type: lesson
id: gameplay-acceptance
lang: ru
title: Проверка игрового поведения
summary: >-
  Переводим фразу «механика готова» в воспроизводимые сценарии с условиями,
  действием и наблюдаемым результатом.
updatedAt: '2026-10-20'
status: active
url: 'https://gamemechanics.pro/ru/lessons/gameplay-acceptance/'
jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/ru/lesson/gameplay-acceptance.json'
markdownUrl: 'https://gamemechanics.pro/content/knowledge/ru/lesson/gameplay-acceptance.md'
aliases:
  - тестирование
  - testing
  - acceptance
tags:
  - testing
  - acceptance
  - debugging
sourceIds:
  - source-ee9efb6934cc6681
  - source-e882a929b35f2ca0
sources:
  - id: source-ee9efb6934cc6681
    title: 'Cucumber: Gherkin reference'
    url: 'https://cucumber.io/docs/gherkin/reference/'
    verifiedAt: null
  - id: source-e882a929b35f2ca0
    title: 'Godot: Overview of debugging tools'
    url: >-
      https://docs.godotengine.org/en/stable/tutorials/scripting/debug/overview_of_debugging_tools.html
    verifiedAt: null
relations:
  - type: requires
    direction: outgoing
    label: Перед началом
    key: lesson/agent-workflow
    title: Разработка игры с ИИ-агентом
    url: 'https://gamemechanics.pro/ru/lessons/agent-workflow/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/ru/lesson/agent-workflow.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/ru/lesson/agent-workflow.md'
  - type: requires
    direction: outgoing
    label: Перед началом
    key: lesson/state-machines
    title: Состояния и переходы
    url: 'https://gamemechanics.pro/ru/lessons/state-machines/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/ru/lesson/state-machines.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/ru/lesson/state-machines.md'
  - type: related
    direction: incoming
    label: Связанные материалы
    key: lesson/performance-budget
    title: Бюджет производительности
    url: 'https://gamemechanics.pro/ru/lessons/performance-budget/'
    jsonUrl: >-
      https://gamemechanics.pro/api/v1/knowledge/ru/lesson/performance-budget.json
    markdownUrl: >-
      https://gamemechanics.pro/content/knowledge/ru/lesson/performance-budget.md
  - type: related
    direction: outgoing
    label: Связанные материалы
    key: lesson/state-machines
    title: Состояния и переходы
    url: 'https://gamemechanics.pro/ru/lessons/state-machines/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/ru/lesson/state-machines.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/ru/lesson/state-machines.md'
  - type: reviews
    direction: outgoing
    label: Проверить через призму
    key: lens/schell-033
    title: Правила
    url: 'https://gamemechanics.pro/ru/knowledge/lens/schell-033/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/ru/lens/schell-033.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/ru/lens/schell-033.md'
  - type: contains
    direction: incoming
    label: Учебные маршруты
    key: path/first-prototype
    title: Первый проверяемый прототип
    url: 'https://gamemechanics.pro/ru/learn/first-prototype/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/ru/path/first-prototype.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/ru/path/first-prototype.md'
  - type: contains
    direction: incoming
    label: Учебные маршруты
    key: path/game-verification
    title: Проверка игры
    url: 'https://gamemechanics.pro/ru/learn/game-verification/'
    jsonUrl: 'https://gamemechanics.pro/api/v1/knowledge/ru/path/game-verification.json'
    markdownUrl: 'https://gamemechanics.pro/content/knowledge/ru/path/game-verification.md'
placements: []
supersededBy: []
attributes:
  category: workflow
  level: beginner
  minutes: 6
endsAt: null
provenance: >-
  Авторский материал gamemechanics.pro. Учебные примеры требуют проверки в своём
  проекте.
license: CC-BY-4.0
codeLicense: MIT
attribution: gamemechanics.pro contributors
---
# Проверка игрового поведения

id: gameplay-acceptance
type: lesson
key: lesson/gameplay-acceptance
lang: ru
status: active
url: https://gamemechanics.pro/ru/lessons/gameplay-acceptance/

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

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

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

## Принцип

Запишите начальное состояние, событие и ожидаемый наблюдаемый результат. Такая структура соответствует Given/When/Then из [справочника Gherkin](https://cucumber.io/docs/gherkin/reference/), но для ручной проверки не требуется устанавливать Cucumber.

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

<span id="пример-рывок-с-одним-зарядом"></span>

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

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

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

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

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

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

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

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

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

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

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

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

Сверьте переходы с уроком [«Состояния и переходы»](/ru/lessons/state-machines/) и призмой [«Правила»](/ru/lenses/#schell-033).

## Связанные материалы

- Перед началом: [Разработка игры с ИИ-агентом](https://gamemechanics.pro/ru/lessons/agent-workflow/) (key: lesson/agent-workflow)
- Перед началом: [Состояния и переходы](https://gamemechanics.pro/ru/lessons/state-machines/) (key: lesson/state-machines)
- Связанные материалы: [Бюджет производительности](https://gamemechanics.pro/ru/lessons/performance-budget/) (key: lesson/performance-budget)
- Связанные материалы: [Состояния и переходы](https://gamemechanics.pro/ru/lessons/state-machines/) (key: lesson/state-machines)
- Проверить через призму: [Правила](https://gamemechanics.pro/ru/knowledge/lens/schell-033/) (key: lens/schell-033)
- Учебные маршруты: [Первый проверяемый прототип](https://gamemechanics.pro/ru/learn/first-prototype/) (key: path/first-prototype)
- Учебные маршруты: [Проверка игры](https://gamemechanics.pro/ru/learn/game-verification/) (key: path/game-verification)

## Источники и происхождение

Авторский материал gamemechanics.pro. Учебные примеры требуют проверки в своём проекте.

- [Cucumber: Gherkin reference](https://cucumber.io/docs/gherkin/reference/) (id: source-ee9efb6934cc6681)
- [Godot: Overview of debugging tools](https://docs.godotengine.org/en/stable/tutorials/scripting/debug/overview_of_debugging_tools.html) (id: source-e882a929b35f2ca0)

CC-BY-4.0 · gamemechanics.pro contributors
