Source: Mechanics systems cycles and design of games

← Rendered

markdown source:

---
description: Кратко о дизайне игр, механиках, системах, игровых циклах и геймплее
tags: gamedev
title: Mechanics systems cycles and design of games
---
## Механики

**Механика** в концепции гейм-дизайна - это базовый блок игры, представляющий из себя комбинацию объектов, действий и правил, определяющих связь действий с объектами.

Основные механики (список естественно неисключительный) с точки зрения игрока:

- **механки контроля** - контроль над воплощением игрока
- **механики прогресса** - понимание процесса игры, контроль над прогрессом в ней
- **механики неопределенности** - попытки понять и предсказать случайные процессы
- **механики управления ресурсами игры** - накопление, инвестиции, трата ресурсов, прогнозирование поступления в будущем

Сама игра представляет из себя череду состояний, меняющихся в результате взаимодействия игроков с игрой. Различается **пространство действий** и **пространство состояний** - в этом контексте теория гейм-дизайна похожа на [[reinforcement-learning]]. Пространства состояний рассматриваются, как полностью и неполностью наблюдаемые. К примеру, в покере пространство состояний неполностью наблюдаемое, а в шахматах - полностью.

## Дизайн систем

Две основные концепции:

- **дизайн сверху вниз** - создается и тестируется одна система, затем добавляется следующая поверх предыдущей
- **дизайн снизу вверх** - определяется геймплей, делается его описание, а затем принимается решение, какие системы нужны.

На практике используется микс из этих двух подходов.

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

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

Системы предоставляют:

- изоляцию
- повторное использование
- масштабирование

## Виды систем

**Циклы конверсий** - это зацикленная цепочка механик, приводящая к профиту/убытку игрока. Примером цикла конверсий является добыча минералов и постройка зданий. Циклы конверсий провоцируют гринд.

**Циклы обратной связи** - это такие циклы, в которых прошлое поведение, определяет будущее. Два вида циклов обратной связи:

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

**Эмержентные системы** - это системы, которые сочетают эффекты других систем, складывающихся в новую логику поведения. К примеру, эмержентным является движение косяка рыб. Эмержентные системы сложно строить и тяжело предсказывать их поведение.

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

## Метод дизайна систем игры

- создать упрощенное сюжетное описание (нарратив)
- проанализировать описание слово за словом, выделив системы. Вынести системы в таблицу
- для каждой строки таблицы описать как будет работать данная система и какие механики ей требуются

## Геймплей

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

Основная единица - это **геймплейный цикл**, представляющий из себя постоянно повторяющиеся действия игрока.

Типичная игра состояит из разных геймплейных циклов, с разными задачами и точками принятия решений. **Быстрый или механический** геймплейный цикл требует частого принятия решения. **Медленные или крупные циклы** требуют более редких по времени решений.

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

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

Выполнять циклы игрока побуждают два вида мотиваций:

- **внутренняя мотивация** обусловлена состоянием потока, стремлением овладевать навыками и желание преодолевать игровую неопределенность
- **внешняя мотивация** обусловлена наградами (механики процесса). Здесь, так же как и в [[reinforcement-learning]], работает "подкрепление"

### Внутренняя мотивация

Рассматриваются три основных условия перехода в состояние потока:

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

Кроме того, важным является соответствие между целями конкретной задачи и более абстрактными долгосрочными целями игры.

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

Основные типы неопределенности:

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

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

### Внешняя мотивация

Самым простым способом внешней мотивации являются прогрессия и награды - это механики игры, относящиеся к механикам прогрессии:

- счет и очки опыта
- уровни персонажей
- достижения (ачивки)
- лидерборды

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

**Режимы подкрепления** определяют как, какие и сколько наград предоставлять игроку, для того чтобы "подкрепить" желание продолжить игру.

Типы режимов:

- непрерывное подкрепление - награда выдается за каждое действие непосредственно
- с постоянным интервалом - каждые n промежутков пока действия выполняются
- с постоянным соотношением - за каждые n действий
- с вариативным интервалом - каждые n случайных промежутков пока действия выполняются
- с вариативым соотношением - за случайное количество действий

Режимы сравниваются по двум критериям:

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

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

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

Внешняя мотивация несет в себе риск, связанный с азартностью. Самый яркий пример - лутбоксы.

## Разработка геймплейного цикла через пользовательскую историю

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

Смотри еще:

- [[godot]]
- [[gamedev]]



[reinforcement-learning]: ../lists/reinforcement-learning "Reinforcement learning"
[godot]: godot "godot engine"
[gamedev]: ../lists/gamedev "Gamedev"