Игровые механики
- О чём эта тема
- Аппарат для точного описания игрового процесса: игровая динамика, игровые циклы, машина состояний и атомарные игровые механики, из которых собираются механики комплексные.
- Аннотация
- Конспект начинается с разграничения игровой механики и цели игры, затем вводится понятие игровой динамики как производной взаимодействий игрока с игрой и рассматриваются её слои — первичная и вторичные динамики. Далее разбираются циклические процессы: малый цикл (core loop) и цикл геймплея (gameplay loop) — и машина состояний как способ описать смену режимов игрового процесса, с реализацией на C#. Центральная часть — каталог атомарных механик трёх типов: физических, экономических и ментальных. Завершается конспект декомпозицией комплексных механик на атомы и интерактивным разбором нескольких известных игр.
- Пререквизиты
- Конспект A01: раздел «Игровая механика» дизайн-документа — именно его аппарат этого конспекта позволяет заполнить точно. Код на C# приводится как иллюстрация и подробно разбирается позже, в конспектах A07 и A11.
- Мотивация
- В A01 мы требовали описывать механики «очень точно», но не сказали, в каких терминах это делать. Фраза «игрок уклоняется от астероидов» кажется элементарной — пока не нужно её программировать. Из чего состоит «уклоняется»? Игрок распознаёт траектории объектов, выбирает стратегию и перемещает корабль — три разные операции, каждую из которых предстоит реализовать отдельно. Язык атомарных механик позволяет разложить любое игровое действие на такие программируемые составляющие.
1. Механика и цель игры
Должна ли игровая механика включать в себя цель игры? Нет — цель является задачей более высокого уровня. В шахматах основная игровая механика — перемещение фигур по определённым правилам. Единичное действие, перемещение фигуры, не приводит к достижению основной цели — поставить мат сопернику (за исключением последнего хода). Механика описывает как игрок взаимодействует с игровыми объектами; цель определяет, зачем он это делает.
2. Игровая динамика
Игровая динамика (game dynamics) определяет отношение воздействий игрока на игровые объекты и событий обратной связи в процессе игры. Важно: динамика — не принцип взаимодействия игрока с игровыми объектами, а производная этих взаимодействий. Динамика означает «отношения» — комплекс взаимодействий игрока и игры, которые активно меняются в процессе: компромисс между временем и ресурсами, между способностью нанести и получить урон, чередование сюжета и игрового процесса, вызова и зоны релаксации. Обобщённо игровая динамика отвечает на вопрос «каково в это играть» (How does it feel to play a game?).
С математической точки зрения игра — динамическая система: в ней постоянно протекают процессы, изменяющие состояние игровой среды, детерминированные или хаотические. Совокупность этих процессов, включая участие самого игрока, создаёт особый «почерк» игры. Игровые механики определяют динамику игры: чем сложнее комплекс механик, тем более хаотично развиваются процессы и тем сложнее балансировать игру.
2.1. Слои динамик
Игра может содержать несколько слоёв динамик. В простых играх обычно используется один уровень; если их два и более, выделяют первичную и вторичные динамики. Первичная, как правило, является основным геймплеем (core gameplay) и имеет более высокий ритм взаимодействия. Вторичные выполняют дополнительную или вспомогательную функцию — как правило, это метагейм (metagame); они менее ритмичны и могут играть роль зон релаксации.
3. Игровые циклы
Большинство игровых процессов имеют циклический характер — как и динамические системы реального мира. Циклы повторения действий помогают игроку довести до автоматизма взаимодействие с игровыми объектами и перейти к решению более высокоуровневых задач.
Игровая механика образует малый цикл (core loop) внутри цикла геймплея (gameplay loop). Масштабы целей у них разные: малым циклом решаются промежуточные задачи, циклом геймплея — высокоуровневая игровая задача. В Diablo малый цикл — перемещение по лабиринту и убийство монстров; цикл геймплея включает, помимо этого, сбор и распределение снаряжения, прокачку навыков и характеристик — то есть и метагейм тоже.
4. Машина состояний
Практически любой игровой процесс подразумевает наличие разных состояний в разные моменты времени. Состояние характеризует определённо настроенный цикл взаимодействий игрока с игровыми объектами в определённый период; если взаимодействие изменилось — изменилось состояние игрового процесса. Изменение бывает кардинальным, когда шаблон взаимодействия меняется полностью, или дополняющим, когда он расширяется новыми циклами. В Pac-Man герой в обычном состоянии поедает горох и уклоняется от привидений; съев большую фасолину, он переходит в состояние охоты — теперь привидения убегают от него. Шаблон взаимодействия сменился, и вместе с ним — мотивация игрока.
Формально смену состояний описывает машина состояний (state machine, конечный автомат): набор состояний, для каждого — свой цикл поведения, и условия переходов между ними. Машиной состояний описывается не только игрок, но и противники:
Та же схема, записанная на C# в виде скрипта Unity. Каждому состоянию соответствует значение перечисления, каждой стрелке схемы — проверка условия и присваивание нового состояния:
using UnityEngine; public class EnemyBrain : MonoBehaviour { // Состояния со схемы: патрулирование, атака, уклонение, поиск аптечки private enum State { Wander, Attack, Evade, FindAid } [SerializeField] private Transform player; // цель [SerializeField] private float sightRange = 8f; // дальность обнаружения [SerializeField] private float health = 100f; private State state = State.Wander; private void Update() { switch (state) { case State.Wander: Patrol(); if (PlayerIsNear()) state = State.Attack; // player is near break; case State.Attack: AttackPlayer(); if (!PlayerIsNear()) state = State.Wander; // player is out of sight else if (UnderFire()) state = State.Evade; // player is attacking back break; case State.Evade: RunAway(); if (health < 30f) state = State.FindAid; // healthpoints are low else if (!UnderFire()) state = State.Attack; // player is idle break; case State.FindAid: SeekMedkit(); if (health >= 100f) state = State.Wander; // found aid break; } } private bool PlayerIsNear() => Vector3.Distance(transform.position, player.position) < sightRange; // Поведение внутри состояний — заглушки: их содержание зависит от игры private void Patrol() { } private void AttackPlayer() { } private void RunAway() { } private void SeekMedkit() { } private bool UnderFire() => false; }
Метод Update вызывается движком каждый кадр (подробно — в конспекте A07), поэтому автомат проверяет условия переходов непрерывно. Полный разбор ИИ на машинах состояний — в конспекте A11; здесь важно одно: состояния и переходы, нарисованные на этапе дизайна, переносятся в код почти дословно.
5. Атомарные механики
Атомарная механика — минимальное, далее не разложимое взаимодействие с игровым объектом. Атомарные механики делятся на три типа:
5.1. Физические механики
Помещение объекта в игровое пространство; параметр — координаты размещения. В Тетрисе фигура
помещается в верхнюю часть стакана.
Удаление объекта из игрового пространства. В «три в ряд» удаление фишек с поля — часть
ключевой комплексной механики.
Изменение позиции объекта; подразумевает математический закон перемещения (равномерно,
с ускорением, с замедлением).
Частные случаи: гравитация (Gravity) — притяжение к точке; прыжок (Jump) —
рывковое изменение позиции с гравитацией; лезть (Climb) — вертикальное перемещение
с использованием вспомогательного объекта.
Поворот объекта вокруг выбранных осей на заданный угол. Есть игры с механикой поворота
в основе кор-геймплея: Superhexagon, Zuma.
Увеличение объекта в размере — равномерное или удлинение; закон увеличения влияет
на динамику геймплея.
Уменьшение объекта в размере; механика, обратная увеличению, с теми же свойствами.
Изменение формы объекта; начальная и конечная формы задаются задачей игрового процесса
(пример кор-механики — Gish).5.2. Экономические механики
Увеличение количества игрового ресурса: очки за монетки в Super Mario, за горошины
в Pac-Man.
Сбор определённого набора ресурсов или объектов: сеты оружия и брони в Diablo, коллекции
в социальных играх.
Уменьшение количества ресурса; механика, обратная «Собрать». Параметры: стартовый объём
и количество единовременно отнимаемого ресурса.
Генерация случайного количества ресурса — в том числе случайный выбор объекта из
заготовленного набора при помещении его в игровое пространство.5.3. Ментальные механики
Игрок идентифицирует заранее заданный шаблон — звуковой, графический, символьный или
поведенческий. Примеры: уровень-лабиринт; распознавание поведения привидений в Pac-Man.
Игрок придумывает шаблон и реализует его предоставленными игрой механиками: в Minecraft
из кубиков строится практически любой задуманный объект.
Игрок запоминает предоставленную игрой информацию; простейший пример — игра Memory
(парные карточки).
Игрок делает выбор между вариантами — равнозначными или с подсказками: куда двигаться,
как ответить в диалоге, как уклониться от противника.6. Комплексные механики
Комплексная механика — комбинация атомарных. Разложим механику «уклониться» (Avoid), с которой начинался конспект: игрок распознаёт шаблон движения объектов (Pattern Recognize), выбирает стратегию избегания столкновения (Choose) и перемещает свой объект (Move). Характерный параметр — отображение объектов, относительно которых требуется уклонение. Классический пример — Asteroids.
6.1. Как составить схему механики: «Стрелять» и её варианты
Декомпозиция полезна и в обратную сторону — как инструмент поиска необычных решений. Приём такой: сначала записывается схема механики в базовом виде — цепочка атомов с их параметрами, — а затем варианты получаются изменением ровно одного атома цепочки. Разберём на механике «стрелять» (Shoot). Базовая схема:
Choose · ментальная
Place · точка вылета
Move · закон полёта
Intersect · попадание
Reduce · урон
Каждый блок — атом с характерным параметром; именно параметры (закон полёта, величина урона) станут числами в дизайн-документе и переменными в коде.
Теперь варианты. В каждом изменён один блок схемы — и этого достаточно, чтобы получить орудие с совершенно другим ощущением игры:
Рельсовая пушка Quake
Атом Move исключён: снаряд не летит, попадание проверяется мгновенно по лучу (hitscan). Итог — оружие точности: важно только прицеливание, упреждение не нужно.
Гранатомёт Team Fortress
баллистика + отскоки
Атом Move заменён: закон перемещения — баллистическая дуга с отскоками от стен. Итог — оружие позиционное: стрелять можно из-за угла и навесом, а игрок учится предсказывать траекторию.
Superhot
Temporary · время
К цепочке добавлен атом «изменить динамику»: время движется, только когда движется игрок. Сами выстрелы не изменились, но стрельба превратилась в головоломку об управлении временем.
Схема варианта орудия в дизайн-документе — это базовая цепочка плюс явное указание, какой атом и как изменён. Такое описание однозначно и для программиста: исключён Move — попадание проверяется лучом (Raycast); заменён закон перемещения — меняется расчёт траектории; добавлен Temporary — масштабом времени управляет отдельный скрипт.
Выберите игру — тренажёр покажет её малый цикл, метагейм и атомарные механики, из которых собран кор-геймплей.
Цвет метки — тип атомарной механики: физическая экономическая ментальная. Разбиение иллюстративное — выполнено авторами конспекта.
Контрольные вопросы
-
Цель — задача более высокого уровня. Механика описывает единичное взаимодействие с игровыми объектами (в шахматах — перемещение фигуры по правилам), которое само по себе не приводит к достижению цели (поставить мат). Механика отвечает на вопрос «как», цель — «зачем».
-
Механика — принцип взаимодействия игрока с игровыми объектами; динамика — производная этих взаимодействий, «отношения» игрока и игры, меняющиеся в процессе: компромиссы между временем и ресурсами, чередование вызова и релаксации. Механики определяют динамику, но не совпадают с ней.
-
Малый цикл — повторяющийся цикл основной механики, решающий промежуточные задачи (в Diablo — перемещение по лабиринту и убийство монстров). Цикл геймплея включает малый цикл плюс метагейм (сбор снаряжения, прокачку) и решает высокоуровневую игровую задачу.
-
Состояние — определённо настроенный цикл взаимодействий игрока с игровыми объектами в данный период времени. Оно меняется, когда шаблон взаимодействия изменился: кардинально (полностью новый шаблон) или дополняюще (шаблон расширился новыми циклами), как у Pac-Man после большой фасолины.
-
Физические — имитация физических эффектов (Move, Rotate, Intersect); экономические — управление ресурсами (Collect, Reduce, Random); ментальные — использование возможностей мозга игрока (Pattern Recognize, Memory, Choose).
-
Pattern Recognize (распознать шаблон движения угрожающих объектов) + Choose (выбрать стратегию избегания) + Move (переместить свой объект). Характерный параметр — отображение объектов, относительно которых требуется уклонение.
-
К комбинаторному взрыву возможных исходов действий игрока. Следствия: эксплойты (непредусмотренные сочетания механик, ломающие баланс) либо когнитивная перегрузка игрока; игру становится сложно балансировать.
Источники
- Egenfeldt-Nielsen, S. Understanding Video Games: The Essential Introduction / S. Egenfeldt-Nielsen, J. H. Smith, S. P. Tosca. — New York : Routledge, 2008. — 293 p.
- Динамические системы : видеолекция // ПостНаука : [сайт]. — URL: https://postnauka.ru/video/73463 (дата обращения: 07.07.2026).