{"schemaVersion":1,"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors","paths":[{"id":"first-prototype","lang":"ru","title":"Первый проверяемый прототип","description":"Одна сцена: от вопроса и управления до отклика, измерений и проверки работы агента.","updatedAt":"2026-10-20","outcome":"Одна игровая сцена с одним действием, быстрым рестартом и воспроизводимой проверкой.","checks":["Прототип отвечает на записанный вопрос и имеет критерий остановки.","Действие, пауза, повторный запуск и отклик проверены в целевой среде.","Изменения агента объяснены и подтверждены наблюдаемыми результатами."],"practiceRationale":"Начните с бумажной проверки идеи. Затем используйте задания уроков, чтобы собрать одну сцену и проверить её по условиям выше.","url":"https://gamemechanics.pro/ru/learn/first-prototype/","lessons":[{"id":"scope-and-prototype","url":"https://gamemechanics.pro/ru/lessons/scope-and-prototype/","markdownUrl":"https://gamemechanics.pro/content/ru/scope-and-prototype.md"},{"id":"game-loop","url":"https://gamemechanics.pro/ru/lessons/game-loop/","markdownUrl":"https://gamemechanics.pro/content/ru/game-loop.md"},{"id":"input-and-feedback","url":"https://gamemechanics.pro/ru/lessons/input-and-feedback/","markdownUrl":"https://gamemechanics.pro/content/ru/input-and-feedback.md"},{"id":"collision-basics","url":"https://gamemechanics.pro/ru/lessons/collision-basics/","markdownUrl":"https://gamemechanics.pro/content/ru/collision-basics.md"},{"id":"state-machines","url":"https://gamemechanics.pro/ru/lessons/state-machines/","markdownUrl":"https://gamemechanics.pro/content/ru/state-machines.md"},{"id":"game-feel","url":"https://gamemechanics.pro/ru/lessons/game-feel/","markdownUrl":"https://gamemechanics.pro/content/ru/game-feel.md"},{"id":"performance-budget","url":"https://gamemechanics.pro/ru/lessons/performance-budget/","markdownUrl":"https://gamemechanics.pro/content/ru/performance-budget.md"},{"id":"agent-workflow","url":"https://gamemechanics.pro/ru/lessons/agent-workflow/","markdownUrl":"https://gamemechanics.pro/content/ru/agent-workflow.md"},{"id":"gameplay-acceptance","url":"https://gamemechanics.pro/ru/lessons/gameplay-acceptance/","markdownUrl":"https://gamemechanics.pro/content/ru/gameplay-acceptance.md"}],"prerequisites":[],"practice":[{"id":"paper-current","url":"https://gamemechanics.pro/ru/practice/#paper-current"},{"id":"rhythm-without-hurry","url":"https://gamemechanics.pro/ru/practice/#rhythm-without-hurry"}],"lenses":[{"id":"schell-002","url":"https://gamemechanics.pro/ru/lenses/#schell-002"},{"id":"schell-033","url":"https://gamemechanics.pro/ru/lenses/#schell-033"},{"id":"schell-103","url":"https://gamemechanics.pro/ru/lenses/#schell-103"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"level-design","lang":"ru","title":"Левел-дизайн","description":"От чернового пространства к понятному маршруту и обучению одной механике.","updatedAt":"2026-10-20","outcome":"Проходимый блокаут с маршрутом, ориентирами и обучением одной механике.","checks":["Маршрут пройден без подсказок автора.","Размеры и сигналы проверены реальным игровым действием."],"practiceRationale":"Упражнения помогают проверить решения из уроков. Сохраните условия и результат сравнения.","url":"https://gamemechanics.pro/ru/learn/level-design/","lessons":[{"id":"level-blockout","url":"https://gamemechanics.pro/ru/lessons/level-blockout/","markdownUrl":"https://gamemechanics.pro/content/ru/level-blockout.md"},{"id":"level-wayfinding","url":"https://gamemechanics.pro/ru/lessons/level-wayfinding/","markdownUrl":"https://gamemechanics.pro/content/ru/level-wayfinding.md"},{"id":"teaching-a-mechanic","url":"https://gamemechanics.pro/ru/lessons/teaching-a-mechanic/","markdownUrl":"https://gamemechanics.pro/content/ru/teaching-a-mechanic.md"}],"prerequisites":[{"id":"scope-and-prototype","url":"https://gamemechanics.pro/ru/lessons/scope-and-prototype/","markdownUrl":"https://gamemechanics.pro/content/ru/scope-and-prototype.md"},{"id":"input-and-feedback","url":"https://gamemechanics.pro/ru/lessons/input-and-feedback/","markdownUrl":"https://gamemechanics.pro/content/ru/input-and-feedback.md"}],"practice":[{"id":"paper-current","url":"https://gamemechanics.pro/ru/practice/#paper-current"},{"id":"signal-room","url":"https://gamemechanics.pro/ru/practice/#signal-room"},{"id":"three-minute-museum","url":"https://gamemechanics.pro/ru/practice/#three-minute-museum"}],"lenses":[{"id":"schell-026","url":"https://gamemechanics.pro/ru/lenses/#schell-026"},{"id":"schell-032","url":"https://gamemechanics.pro/ru/lenses/#schell-032"},{"id":"schell-034","url":"https://gamemechanics.pro/ru/lenses/#schell-034"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"balance","lang":"ru","title":"Баланс и прогрессия","description":"Цена выбора, случайные серии и улучшения, которые меняют действия игрока.","updatedAt":"2026-10-20","outcome":"Таблица цены выбора и трёх этапов прогрессии с журналом сравнения.","checks":["Полезность вариантов зависит от ситуации.","Пороги покупок и случайные серии проверены отдельно."],"practiceRationale":"Упражнения помогают проверить решения из уроков. Сохраните условия и результат сравнения.","url":"https://gamemechanics.pro/ru/learn/balance/","lessons":[{"id":"choice-cost","url":"https://gamemechanics.pro/ru/lessons/choice-cost/","markdownUrl":"https://gamemechanics.pro/content/ru/choice-cost.md"},{"id":"controlled-randomness","url":"https://gamemechanics.pro/ru/lessons/controlled-randomness/","markdownUrl":"https://gamemechanics.pro/content/ru/controlled-randomness.md"},{"id":"progression-pacing","url":"https://gamemechanics.pro/ru/lessons/progression-pacing/","markdownUrl":"https://gamemechanics.pro/content/ru/progression-pacing.md"}],"prerequisites":[{"id":"scope-and-prototype","url":"https://gamemechanics.pro/ru/lessons/scope-and-prototype/","markdownUrl":"https://gamemechanics.pro/content/ru/scope-and-prototype.md"}],"practice":[{"id":"last-ferry","url":"https://gamemechanics.pro/ru/practice/#last-ferry"},{"id":"weather-window","url":"https://gamemechanics.pro/ru/practice/#weather-window"},{"id":"remove-the-market","url":"https://gamemechanics.pro/ru/practice/#remove-the-market"},{"id":"three-workshop-shifts","url":"https://gamemechanics.pro/ru/practice/#three-workshop-shifts"}],"lenses":[{"id":"schell-039","url":"https://gamemechanics.pro/ru/lenses/#schell-039"},{"id":"schell-036","url":"https://gamemechanics.pro/ru/lenses/#schell-036"},{"id":"schell-055","url":"https://gamemechanics.pro/ru/lenses/#schell-055"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"npc-behavior","lang":"ru","title":"Поведение NPC","description":"Что персонаж знает, как выбирает действие и каким путём добирается к цели.","updatedAt":"2026-10-20","outcome":"Робот с наблюдениями, памятью, выбором действий и проверенным движением по маршруту.","checks":["В журнале видна причина каждого решения.","Потеря цели и закрытие двери обработаны явно."],"practiceRationale":"«Общая мастерская» помогает сформулировать роли и конфликт ресурсов. «Ремонтный патруль» соединяет восприятие, выбор и выполнение маршрута в проверяемую систему.","url":"https://gamemechanics.pro/ru/learn/npc-behavior/","lessons":[{"id":"npc-perception","url":"https://gamemechanics.pro/ru/lessons/npc-perception/","markdownUrl":"https://gamemechanics.pro/content/ru/npc-perception.md"},{"id":"npc-action-selection","url":"https://gamemechanics.pro/ru/lessons/npc-action-selection/","markdownUrl":"https://gamemechanics.pro/content/ru/npc-action-selection.md"},{"id":"npc-pathfinding","url":"https://gamemechanics.pro/ru/lessons/npc-pathfinding/","markdownUrl":"https://gamemechanics.pro/content/ru/npc-pathfinding.md"}],"prerequisites":[{"id":"game-loop","url":"https://gamemechanics.pro/ru/lessons/game-loop/","markdownUrl":"https://gamemechanics.pro/content/ru/game-loop.md"},{"id":"state-machines","url":"https://gamemechanics.pro/ru/lessons/state-machines/","markdownUrl":"https://gamemechanics.pro/content/ru/state-machines.md"},{"id":"collision-basics","url":"https://gamemechanics.pro/ru/lessons/collision-basics/","markdownUrl":"https://gamemechanics.pro/content/ru/collision-basics.md"}],"practice":[{"id":"shared-workshop","url":"https://gamemechanics.pro/ru/practice/#shared-workshop"},{"id":"maintenance-patrol","url":"https://gamemechanics.pro/ru/practice/#maintenance-patrol"}],"lenses":[{"id":"schell-028","url":"https://gamemechanics.pro/ru/lenses/#schell-028"},{"id":"schell-031","url":"https://gamemechanics.pro/ru/lenses/#schell-031"},{"id":"schell-062","url":"https://gamemechanics.pro/ru/lenses/#schell-062"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"game-verification","lang":"ru","title":"Проверка игры","description":"Наблюдение за игроком, проверка поведения и поиск барьеров доступности.","updatedAt":"2026-10-20","outcome":"Повторяемый сценарий проверки, запись плейтеста и список барьеров доступности.","checks":["Ожидаемое поведение отделено от наблюдаемого.","Проверка выполнена в целевой среде с сохранёнными условиями."],"practiceRationale":"Упражнения помогают проверить решения из уроков. Сохраните условия и результат сравнения.","url":"https://gamemechanics.pro/ru/learn/game-verification/","lessons":[{"id":"running-a-playtest","url":"https://gamemechanics.pro/ru/lessons/running-a-playtest/","markdownUrl":"https://gamemechanics.pro/content/ru/running-a-playtest.md"},{"id":"gameplay-acceptance","url":"https://gamemechanics.pro/ru/lessons/gameplay-acceptance/","markdownUrl":"https://gamemechanics.pro/content/ru/gameplay-acceptance.md"},{"id":"game-accessibility","url":"https://gamemechanics.pro/ru/lessons/game-accessibility/","markdownUrl":"https://gamemechanics.pro/content/ru/game-accessibility.md"}],"prerequisites":[{"id":"scope-and-prototype","url":"https://gamemechanics.pro/ru/lessons/scope-and-prototype/","markdownUrl":"https://gamemechanics.pro/content/ru/scope-and-prototype.md"},{"id":"state-machines","url":"https://gamemechanics.pro/ru/lessons/state-machines/","markdownUrl":"https://gamemechanics.pro/content/ru/state-machines.md"}],"practice":[{"id":"three-minute-museum","url":"https://gamemechanics.pro/ru/practice/#three-minute-museum"},{"id":"rhythm-without-hurry","url":"https://gamemechanics.pro/ru/practice/#rhythm-without-hurry"}],"lenses":[{"id":"schell-103","url":"https://gamemechanics.pro/ru/lenses/#schell-103"},{"id":"schell-033","url":"https://gamemechanics.pro/ru/lenses/#schell-033"},{"id":"schell-060","url":"https://gamemechanics.pro/ru/lenses/#schell-060"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"first-prototype","lang":"en","title":"Your first verifiable prototype","description":"One scene: from a question and input to feedback, measurement and reviewing agent work.","updatedAt":"2026-10-20","outcome":"One playable scene with a single action, quick restart and a reproducible check.","checks":["The prototype answers a recorded question and has a stopping criterion.","The action, pause, restart and feedback are checked in the target environment.","Agent changes are explained and supported by observable results."],"practiceRationale":"Start with a paper test of the idea. Then use the lesson tasks to build one scene and check it against the conditions above.","url":"https://gamemechanics.pro/en/learn/first-prototype/","lessons":[{"id":"scope-and-prototype","url":"https://gamemechanics.pro/en/lessons/scope-and-prototype/","markdownUrl":"https://gamemechanics.pro/content/en/scope-and-prototype.md"},{"id":"game-loop","url":"https://gamemechanics.pro/en/lessons/game-loop/","markdownUrl":"https://gamemechanics.pro/content/en/game-loop.md"},{"id":"input-and-feedback","url":"https://gamemechanics.pro/en/lessons/input-and-feedback/","markdownUrl":"https://gamemechanics.pro/content/en/input-and-feedback.md"},{"id":"collision-basics","url":"https://gamemechanics.pro/en/lessons/collision-basics/","markdownUrl":"https://gamemechanics.pro/content/en/collision-basics.md"},{"id":"state-machines","url":"https://gamemechanics.pro/en/lessons/state-machines/","markdownUrl":"https://gamemechanics.pro/content/en/state-machines.md"},{"id":"game-feel","url":"https://gamemechanics.pro/en/lessons/game-feel/","markdownUrl":"https://gamemechanics.pro/content/en/game-feel.md"},{"id":"performance-budget","url":"https://gamemechanics.pro/en/lessons/performance-budget/","markdownUrl":"https://gamemechanics.pro/content/en/performance-budget.md"},{"id":"agent-workflow","url":"https://gamemechanics.pro/en/lessons/agent-workflow/","markdownUrl":"https://gamemechanics.pro/content/en/agent-workflow.md"},{"id":"gameplay-acceptance","url":"https://gamemechanics.pro/en/lessons/gameplay-acceptance/","markdownUrl":"https://gamemechanics.pro/content/en/gameplay-acceptance.md"}],"prerequisites":[],"practice":[{"id":"paper-current","url":"https://gamemechanics.pro/en/practice/#paper-current"},{"id":"rhythm-without-hurry","url":"https://gamemechanics.pro/en/practice/#rhythm-without-hurry"}],"lenses":[{"id":"schell-002","url":"https://gamemechanics.pro/en/lenses/#schell-002"},{"id":"schell-033","url":"https://gamemechanics.pro/en/lenses/#schell-033"},{"id":"schell-103","url":"https://gamemechanics.pro/en/lenses/#schell-103"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"level-design","lang":"en","title":"Level design","description":"From a rough playable space to readable routes and teaching one mechanic.","updatedAt":"2026-10-20","outcome":"A traversable blockout with a route, landmarks and one taught mechanic.","checks":["The route is completed without the author’s hints.","Dimensions and cues are checked through actual gameplay."],"practiceRationale":"Use the exercises to check decisions from the lessons. Preserve conditions and comparison results.","url":"https://gamemechanics.pro/en/learn/level-design/","lessons":[{"id":"level-blockout","url":"https://gamemechanics.pro/en/lessons/level-blockout/","markdownUrl":"https://gamemechanics.pro/content/en/level-blockout.md"},{"id":"level-wayfinding","url":"https://gamemechanics.pro/en/lessons/level-wayfinding/","markdownUrl":"https://gamemechanics.pro/content/en/level-wayfinding.md"},{"id":"teaching-a-mechanic","url":"https://gamemechanics.pro/en/lessons/teaching-a-mechanic/","markdownUrl":"https://gamemechanics.pro/content/en/teaching-a-mechanic.md"}],"prerequisites":[{"id":"scope-and-prototype","url":"https://gamemechanics.pro/en/lessons/scope-and-prototype/","markdownUrl":"https://gamemechanics.pro/content/en/scope-and-prototype.md"},{"id":"input-and-feedback","url":"https://gamemechanics.pro/en/lessons/input-and-feedback/","markdownUrl":"https://gamemechanics.pro/content/en/input-and-feedback.md"}],"practice":[{"id":"paper-current","url":"https://gamemechanics.pro/en/practice/#paper-current"},{"id":"signal-room","url":"https://gamemechanics.pro/en/practice/#signal-room"},{"id":"three-minute-museum","url":"https://gamemechanics.pro/en/practice/#three-minute-museum"}],"lenses":[{"id":"schell-026","url":"https://gamemechanics.pro/en/lenses/#schell-026"},{"id":"schell-032","url":"https://gamemechanics.pro/en/lenses/#schell-032"},{"id":"schell-034","url":"https://gamemechanics.pro/en/lenses/#schell-034"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"balance","lang":"en","title":"Balance and progression","description":"Choice costs, random streaks and upgrades that change player actions.","updatedAt":"2026-10-20","outcome":"A choice-cost and three-stage progression table with comparison logs.","checks":["Option usefulness depends on the situation.","Purchase thresholds and random streaks are checked separately."],"practiceRationale":"Use the exercises to check decisions from the lessons. Preserve conditions and comparison results.","url":"https://gamemechanics.pro/en/learn/balance/","lessons":[{"id":"choice-cost","url":"https://gamemechanics.pro/en/lessons/choice-cost/","markdownUrl":"https://gamemechanics.pro/content/en/choice-cost.md"},{"id":"controlled-randomness","url":"https://gamemechanics.pro/en/lessons/controlled-randomness/","markdownUrl":"https://gamemechanics.pro/content/en/controlled-randomness.md"},{"id":"progression-pacing","url":"https://gamemechanics.pro/en/lessons/progression-pacing/","markdownUrl":"https://gamemechanics.pro/content/en/progression-pacing.md"}],"prerequisites":[{"id":"scope-and-prototype","url":"https://gamemechanics.pro/en/lessons/scope-and-prototype/","markdownUrl":"https://gamemechanics.pro/content/en/scope-and-prototype.md"}],"practice":[{"id":"last-ferry","url":"https://gamemechanics.pro/en/practice/#last-ferry"},{"id":"weather-window","url":"https://gamemechanics.pro/en/practice/#weather-window"},{"id":"remove-the-market","url":"https://gamemechanics.pro/en/practice/#remove-the-market"},{"id":"three-workshop-shifts","url":"https://gamemechanics.pro/en/practice/#three-workshop-shifts"}],"lenses":[{"id":"schell-039","url":"https://gamemechanics.pro/en/lenses/#schell-039"},{"id":"schell-036","url":"https://gamemechanics.pro/en/lenses/#schell-036"},{"id":"schell-055","url":"https://gamemechanics.pro/en/lenses/#schell-055"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"npc-behavior","lang":"en","title":"NPC behavior","description":"What a character knows, how it selects an action and how it reaches a destination.","updatedAt":"2026-10-20","outcome":"A robot with observations, memory, action selection and verified route following.","checks":["The log explains every decision.","Lost targets and closing doors are handled explicitly."],"practiceRationale":"Shared Workshop helps define roles and resource conflicts. Maintenance Patrol connects perception, selection and route following into a verifiable system.","url":"https://gamemechanics.pro/en/learn/npc-behavior/","lessons":[{"id":"npc-perception","url":"https://gamemechanics.pro/en/lessons/npc-perception/","markdownUrl":"https://gamemechanics.pro/content/en/npc-perception.md"},{"id":"npc-action-selection","url":"https://gamemechanics.pro/en/lessons/npc-action-selection/","markdownUrl":"https://gamemechanics.pro/content/en/npc-action-selection.md"},{"id":"npc-pathfinding","url":"https://gamemechanics.pro/en/lessons/npc-pathfinding/","markdownUrl":"https://gamemechanics.pro/content/en/npc-pathfinding.md"}],"prerequisites":[{"id":"game-loop","url":"https://gamemechanics.pro/en/lessons/game-loop/","markdownUrl":"https://gamemechanics.pro/content/en/game-loop.md"},{"id":"state-machines","url":"https://gamemechanics.pro/en/lessons/state-machines/","markdownUrl":"https://gamemechanics.pro/content/en/state-machines.md"},{"id":"collision-basics","url":"https://gamemechanics.pro/en/lessons/collision-basics/","markdownUrl":"https://gamemechanics.pro/content/en/collision-basics.md"}],"practice":[{"id":"shared-workshop","url":"https://gamemechanics.pro/en/practice/#shared-workshop"},{"id":"maintenance-patrol","url":"https://gamemechanics.pro/en/practice/#maintenance-patrol"}],"lenses":[{"id":"schell-028","url":"https://gamemechanics.pro/en/lenses/#schell-028"},{"id":"schell-031","url":"https://gamemechanics.pro/en/lenses/#schell-031"},{"id":"schell-062","url":"https://gamemechanics.pro/en/lenses/#schell-062"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"},{"id":"game-verification","lang":"en","title":"Game verification","description":"Player observation, behavior acceptance and finding accessibility barriers.","updatedAt":"2026-10-20","outcome":"A repeatable acceptance scenario, playtest record and list of accessibility barriers.","checks":["Expected behavior is distinct from observations.","Checks run in the target environment with recorded conditions."],"practiceRationale":"Use the exercises to check decisions from the lessons. Preserve conditions and comparison results.","url":"https://gamemechanics.pro/en/learn/game-verification/","lessons":[{"id":"running-a-playtest","url":"https://gamemechanics.pro/en/lessons/running-a-playtest/","markdownUrl":"https://gamemechanics.pro/content/en/running-a-playtest.md"},{"id":"gameplay-acceptance","url":"https://gamemechanics.pro/en/lessons/gameplay-acceptance/","markdownUrl":"https://gamemechanics.pro/content/en/gameplay-acceptance.md"},{"id":"game-accessibility","url":"https://gamemechanics.pro/en/lessons/game-accessibility/","markdownUrl":"https://gamemechanics.pro/content/en/game-accessibility.md"}],"prerequisites":[{"id":"scope-and-prototype","url":"https://gamemechanics.pro/en/lessons/scope-and-prototype/","markdownUrl":"https://gamemechanics.pro/content/en/scope-and-prototype.md"},{"id":"state-machines","url":"https://gamemechanics.pro/en/lessons/state-machines/","markdownUrl":"https://gamemechanics.pro/content/en/state-machines.md"}],"practice":[{"id":"three-minute-museum","url":"https://gamemechanics.pro/en/practice/#three-minute-museum"},{"id":"rhythm-without-hurry","url":"https://gamemechanics.pro/en/practice/#rhythm-without-hurry"}],"lenses":[{"id":"schell-103","url":"https://gamemechanics.pro/en/lenses/#schell-103"},{"id":"schell-033","url":"https://gamemechanics.pro/en/lenses/#schell-033"},{"id":"schell-060","url":"https://gamemechanics.pro/en/lenses/#schell-060"}],"license":"CC-BY-4.0","codeLicense":"MIT","attribution":"gamemechanics.pro contributors"}]}