Flow и кривые сложности
Механизм: канал, зазор и пила
Flow-канал
Поток требует трёх условий: ясные цели (знаешь, что делать), мгновенная обратная связь (знаешь, получилось ли), баланс вызов↔навык. На плоскости навык×вызов это диагональный коридор:
Слишком легко — скука (не вовлечён). Слишком трудно — тревога (фрустрация, выход). В меру — поток (поглощён, время исчезает). Канал — это полоса, а не линия: есть допуск. Формально, если — вызов, — навык, а — ширина допуска:
Тревога при , скука при . Пример (шкала 0–10): навык , допуск → поток при вызове ; — тревога, — скука.
Навык растёт → сложность обязана расти
Навык увеличивается с игрой. Фиксированный вызов const через час оказывается ниже канала → скука. Значит должен трекать . Отсюда «оптимальная кривая сложности» — растущая. Но как растить — два подхода.
DDA vs сложность-как-выбор
DDA (dynamic difficulty adjustment) — игра сама подстраивает вызов под замеренный навык. Mario Kart, резинка: лидера чуть тормозят, последнего разгоняют → гонка всегда близка → игрок ощущает накал (поток). Риск: слишком явная резинка ощущается нечестной — «меня наказывают за то, что играю хорошо», убивает мотивацию. Сложность-как-выбор (Dark Souls — это не DDA): трудность определяет игрок через уровень/билд/призыв. Перекачался — босс тривиален; недокачался — жесток. Философия «сложность — это выбор»: одни гриндят до overlevel, другие сознательно идут underleveled. Оба валидны.
Реальная кривая — пила, а не прямая
Ввод новой механики сбрасывает воспринимаемую сложность: по этой механике ты снова новичок. Поэтому кривая — пила: локальный провал в лёгкое на каждом новом элементе, затем рампа вверх; общий тренд растёт. Celeste — эталон: учит механику (стена) → лёгкая практика в безопасной зоне → трудный челлендж → вводит рывок → снова провал-практика-пик. Плюс режим ассиста (скорость игры, инвула) — расширяет канал для доступности, не стыдя игрока.
Анти-паттерны: плоская сложность (скука); скачок без обучения (тревога, выход); фейковая сложность (просто +HP врагу вместо более интересного поведения — BG3 на высокой сложности добавляет врагов и тактику, а не только хиты).
🕹 Во что поиграть — и что заметить
Учебник кривой: каждый экран вводит один приём, даёт безопасную практику, потом пик. Assist Mode (скорость, воздушные рывки, инвула) расширяет канал под любой навык, не убирая дизайн.
🎮 Сделай: пройди главу и отметь на каждом экране, что он вводит и где пик — увидишь зубцы пилы. Включи Assist Mode и почувствуй, как канал расширяется (провал в тревогу становится потоком) без «стыда за лёгкий режим».
Классическая динамическая подстройка: синий панцирь и разгон отстающих держат пелотон плотным. Приятно, когда близко; раздражает, когда чувствуешь, что тебя «придерживают» на первом месте.
🎮 Заметь: едь то первым, то последним — увидишь, как игра тебя подстраивает (лидеру хуже предметы, последнему лучше). Поймай момент, когда резинка ощущается нечестной — это цена слишком заметной DDA.
Никакой резинки: канал двигаешь ты сам — уровнем, билдом, призывом, порядком боссов. Overlevel → тривиально; underlevel → брутально; оба варианта — валидный опыт.
🎮 Заметь: застрял на боссе — попробуй сдвинуть свой навык-эквивалент (прокачка, другое оружие, помощь) вместо слайдера сложности. Почувствуй, что здесь регулятор — в руках игрока, а не автомата.
Хардкор · DDA как контур управленияможно пропустить
Регулятор с оценкой скрытой переменной
DDA — это feedback control: скрытая переменная — навык — не наблюдается напрямую; её оценивают по шумным сигналам (смерти, время прохождения, число ретраев, точность). Затем актуатор — сложность — двигают, чтобы держать ошибку около нуля (центр канала). Это П-регулятор: .
Почему наивная DDA осциллирует и «чувствуется»
Слишком большой gain → перерегулирование: игрок чуть выиграл — резко труднее, проиграл — резко легче, система колеблется, и игрок это замечает (резинка «палится»). Плюс оценка навыка шумная (одна смерть ≠ падение навыка), поэтому нужен фильтр/сглаживание и мёртвая зона (ширина канала = не реагировать, пока в потоке). Лучшая DDA — невидимая: медленная, с гистерезисом, актуирует не голую сложность, а её мягкие каналы (спавн, дроп, интенсивность). Resident Evil 4 — хрестоматийный скрытый пример.
Хардкор · дизайн: пила, фейковая сложность, доступностьможно пропустить
Пила и Kishōtenketsu
Зубец пилы = один цикл ки-сё-тэн-кэцу: введение приёма (провал в лёгкое) → развитие (практика) → твист (пик) → примирение (комбо всех приёмов). Каждый новый приём временно делает игрока новичком — отсюда локальный сброс сложности при растущем тренде.
Настоящая vs фейковая сложность
Фейковая — та, что растит числа (HP, урон) без новых решений: игрок делает то же дольше. Настоящая — та, что требует новых решений (новые паттерны врагов, комбинации механик, тайминги). Хороший «hard mode» меняет поведение, а не только множители (BG3, Doom Eternal). Фейковая сложность выталкивает в тревогу без роста навыка — худшее из двух миров.
Доступность расширяет канал
Assist/accessibility-режимы (Celeste, TLOU2) расширяют и двигают нижнюю границу: скорость игры, автоприцел, инвула, чек-пойнты. Это не «лёгкий режим-костыль», а признание, что навык у игроков разный, а поток нужен всем.
ML / AI (твой домен): flow-канал — это дословно curriculum learning: подавай модели задачи под её текущую способность и поднимай планку по мере роста. Слишком трудно → нет обучающего сигнала/градиента (≈ тревога); слишком легко → нет новой информации (≈ скука); максимум обучения — на «трудно-но-решаемо». Автоматические curricula — self-play лиги (AlphaStar), PLR (prioritized level replay), teacher-student generation уровней — держат агента в его flow-канале. DDA как П-регулятор с оценкой скрытого навыка ⇄ adaptive testing / IRT (следующий вопрос — на уровне способности испытуемого, setpoint-контроль) и bandit-подбор сложности. Осцилляция наивной DDA (слишком большой gain, шумная оценка) ⇄ нестабильность обучения при большом LR / шумной оценке трудности — лечится сглаживанием, гистерезисом (мёртвая зона = ширина канала), медленной адаптацией. А «вызов под навык максимизирует обучение» ⇄ зона ближайшего развития и сэмплирование самых трудно-решаемых примеров ради максимального градиента.
Обучение/EdTech: адаптивные платформы (Duolingo, Khan) держат ученика в зоне ближайшего развития — тот же setpoint между скукой и тревогой.
Управление: любой автоскейлер/термостат/PID — оценка состояния + актуатор + борьба с перерегулированием и шумом датчика.
Принцип: держи трудность у текущей способности; оценивай способность по шумным сигналам с фильтром и мёртвой зоной; адаптируй медленно, иначе контур «палится» и колеблется.
Почему канал — полоса, а не линия? Разве не нужен точный баланс?
Когда DDA хорошая, а когда ощущается дешёвой?
Чем настоящая сложность отличается от фейковой?
Как это связано с curriculum learning в ML?
- Mihály Csíkszentmihályi — «Flow: The Psychology of Optimal Experience» (1990) — первоисточник.
- Jenova Chen — «Flow in Games» (магистерская, 2006) + игра flOw — прямое приложение к дизайну.
- GDC: «Building the Adaptive Difficulty of Resident Evil 4» / доклады по DDA — скрытая подстройка на практике.
- Maddy Thorson — заметки о дизайне Celeste и Assist Mode (доступность как расширение канала).
- Модуль 9, Part 2 «Flow Theory» (
09-game-design-theory.md).