Examples
Готовые примеры scenarios для разных направлений
Examples: Примеры сценариев
Готовые примеры scenarios по разным направлениям обучения.
Kafka: Metamorphosis (Литература)
Branching сценарий для анализа литературного произведения.
Характеристики
- Тип: Branching
- Тема: Литература и философия
- Время: 18 минут
- Сложность: 4/5
- Концовок: 4
Переменные
variables:
humanity:
initial: 100
min: 0
max: 100
label: "Человечность"
description: "Сохранение человеческого сознания и эмоций"
despair:
initial: 30
min: 0
max: 100
label: "Отчаяние"
family_bond:
initial: 60
min: 0
max: 100
label: "Связь с семьёй"
inner_freedom:
initial: 20
min: 0
max: 100
label: "Внутренняя свобода"
Почему эти переменные?
humanity— центральная тема: что делает человека человеком?despair— эмоциональное состояние Грегораfamily_bond— отношения с близкимиinner_freedom— парадокс: потеря формы = обретение свободы?
Ключевые узлы
Начало: Awakening
- id: awakening
type: scene
content: |
**Утро. Комната Грегора Замзы.**
Вы просыпаетесь. Что-то не так.
Ваше тело... оно изменилось. Множество тонких ножек
беспомощно шевелятся перед глазами.
«Что со мной случилось?» — думаете вы.
choices:
- text: "Это кошмар! Нужно проснуться!"
goto: panic_response
effects:
humanity: -10
despair: 15
- text: "Попробую понять, что произошло"
goto: self_exploration
effects:
humanity: -5
inner_freedom: 15
Почему это работает:
- Сразу погружение в ситуацию
- Выбор определяет философский подход персонажа
- Effects отражают последствия реакции
Checkpoint: Символизм
- id: checkpoint_symbolism
type: checkpoint
content: "Момент рефлексии перед продолжением"
quiz:
question: "Превращение Грегора в насекомое — это метафора. Чего именно?"
options:
- text: "Психического заболевания и изоляции от общества"
correct: true
feedback: "Верно. Кафка исследует отчуждение и депрессию."
- text: "Наказания за грехи"
feedback: "Слишком упрощённо. Грегор не совершал злодеяний."
pass_next: middle_phase
fail_next: middle_phase
Концовка: Transcendence
- id: ending_transcendence
type: ending
endingType: good
title: "Освобождение через трансформацию"
content: |
В последние мгновения приходит ясность:
**Превращение не было проклятием. Это было освобождением.**
Всю жизнь вы были рабом — работы, долга, ожиданий.
Насекомым вы впервые стали свободны.
**Последняя мысль:**
«Я был человеком, когда выглядел насекомым.
И был насекомым, когда выглядел человеком.»
stats:
show: true
actions:
- text: "Пройти историю заново"
action: restart
- text: "Углубиться в философию Кафки"
action: link
url: "/concepts/kafka-philosophy/"
Что можно улучшить
Redux Tutorial (Программирование)
Linear сценарий с branching в ключевых точках выбора технологий.
Характеристики
- Тип: Mixed (Linear + Branching)
- Тема: Frontend разработка
- Время: 20 минут
- Сложность: 3/5
- Концовок: 3
Переменные
variables:
codeQuality:
initial: 50
min: 0
max: 100
label: "Качество кода"
userExperience:
initial: 50
min: 0
max: 100
label: "UX"
techDebt:
initial: 30
min: 0
max: 100
label: "Тех. долг"
Почему эти переменные?
- Отражают реальные метрики проекта
- Показывают trade-offs решений (быстро vs качественно)
- Определяют концовку (good/neutral/bad)
Ключевые развилки
Выбор библиотеки
- id: library_choice
type: scene
content: |
"У нас большое приложение с 50+ разработчиками.
Какой выбор сделаешь?"
choices:
- text: "Redux — для большой команды предсказуемость важнее"
goto: learning_approach
effects:
codeQuality: 10
techDebt: -5
- text: "Zustand — меньше кода, быстрее разработка"
goto: zustand_path
effects:
techDebt: 15
Checkpoint: Концепции
- id: checkpoint_concepts
type: checkpoint
content: "Проверим понимание основных концепций Redux"
quiz:
question: "Какие три принципа лежат в основе Redux?"
options:
- text: "Single source of truth, State is read-only, Changes via pure functions"
correct: true
- text: "Components, Props, State"
correct: false
- text: "Model, View, Controller"
correct: false
pass_next: store_structure
fail_next: concepts_retry
Theory с atoms
- id: store_structure
type: scene
content: |
Пора проектировать структу store.
atoms:
- type: callout
variant: success
content: "Используй нормализованную структуру!"
- type: code-block
language: javascript
code: |
{
entities: {
products: { byId: {}, allIds: [] },
users: { byId: {}, allIds: [] }
}
}
choices:
- text: "Нормализованная структура с entities"
goto: normalized_choice
effects:
codeQuality: 15
techDebt: -10
Концовки по метрикам
# Good ending
- id: good_ending
type: ending
endingType: good
title: "Redux Master!"
content: |
**Результаты через 3 месяца:**
- Время загрузки: 1.2с (было 5с)
- Баги: -70%
- Скорость разработки: +40%
# Bad ending
- id: bad_ending
type: ending
endingType: bad
title: "Технический долг"
content: |
**Проблемы:**
- Код сложно поддерживать
- Баги регулярны
- Нужен рефакторинг
Но это опыт! В следующий раз будет лучше.
Структура
START → Проблема
↓
Выбор библиотеки → (branching)
↓
Обучение (linear)
↓
Checkpoint концепций
↓
Проектирование → (branching)
↓
Тестирование → (branching)
↓
Деплой → (branching)
↓
ENDING (определяется метриками)
First Budget (Финансовая грамотность)
Branching сценарий для подростков о личных финансах.
Характеристики
- Тип: Branching
- Тема: Финансовая грамотность
- Время: 15 минут
- Сложность: 2/5
- Целевая аудитория: 12-16 лет
Переменные
variables:
money:
initial: 1000
min: 0
max: 2000
label: "Деньги"
savings:
initial: 0
min: 0
max: 1000
label: "Копилка"
wisdom:
initial: 0
min: 0
max: 100
label: "Финансовая мудрость"
Почему эти переменные?
money— основной ресурс (наглядно для подростков)savings— учит откладыватьwisdom— растёт с правильными решениями
Обучающие моменты
1. Планирование vs импульсивность
- id: start
type: scene
content: "Мама даёт тебе 1000₽ на месяц"
choices:
- text: "Подумать, на что могут понадобиться деньги"
goto: planning
effects:
wisdom: 15
feedback: "Планирование — первый шаг к умным тратам!"
- text: "Пойти в магазин — столько всего хочется!"
goto: impulse_shopping
effects:
wisdom: -5
2. Правило 10%
- id: smart_start
type: scene
content: |
**Совет:** Отложи хотя бы 10% (100₽) "на чёрный день".
choices:
- text: "Отложить 100₽ в копилку"
goto: week1_prepared
effects:
savings: 100
money: -100
wisdom: 10
feedback: "Правило 10% — основа финансовой грамотности!"
3. Непредвиденные расходы
- id: unexpected_expense
type: scene
content: |
**Твои наушники сломались.**
Новые стоят 400₽. Ремонт — 150₽.
У тебя: {money}₽ (+ {savings}₽ в копилке)
choices:
- text: "Взять из копилки на ремонт"
goto: finale
effects:
savings: -150
condition: "savings >= 150"
feedback: "Копилка выручила! Для этого она и нужна."
- text: "Денег не хватает..."
goto: finale_broke
condition: "money < 150 AND savings < 150"
Концовки
Success
- id: finale
type: ending
endingType: good
title: "Месяц пройден!"
content: |
**Что ты узнал:**
- Планирование помогает
- "Хочу" и "нужно" — разные вещи
- Копилка выручает в трудный момент
- Заработать можно, если искать возможности
**Главный урок:** Дело не в том, сколько у тебя денег,
а в том, как ты ими распоряжаешься.
Broke (нейтральная)
- id: finale_broke
type: ending
endingType: neutral
title: "Деньги закончились..."
content: |
**Что пошло не так?**
- Не было резерва
- Импульсивные покупки
- Не хватило планирования
**В следующий раз:**
- Отложи 10-20% сразу
- Подожди 24 часа перед покупкой
- Спрашивай: "Нужно или хочу?"
Каждая ошибка делает мудрее!
Педагогические приёмы
Rurik 862 (История)
Linear сценарий с branching в ключевых исторических развилках.
Характеристики
- Тип: Mixed
- Тема: История России
- Время: 12 минут
- Сложность: 3/5
Концепция
Историческая симуляция призвания варягов с альтернативными развитиями.
Переменные
variables:
stability:
initial: 30
label: "Стабильность"
military_power:
initial: 40
label: "Военная сила"
culture:
initial: 20
label: "Культура"
Ключевой момент: Решение князей
- id: decision_point
type: scene
content: |
**862 год. Новгород.**
Славянские племена в раздоре. Варяги требуют дань.
Хазары наступают с юга.
**Что делать?**
choices:
- text: "Призвать варяжского князя для порядка"
goto: invite_rurik
effects:
stability: 30
military_power: 20
feedback: "Рюрик становится князем. Начало династии!"
- text: "Объединиться без варягов"
goto: alternative_history
effects:
stability: 10
culture: 30
feedback: "Славянская конфедерация — альтернативная история!"
Checkpoint: Историческая проверка
- id: checkpoint_history
type: checkpoint
content: "Проверим знание исторического контекста"
quiz:
question: "Почему славяне призвали варягов?"
options:
- text: "Для установления порядка и защиты"
correct: true
- text: "Варяги завоевали силой"
feedback: "Нет, это было добровольное призвание"
- text: "Религиозные причины"
feedback: "Нет, Русь крестилась позже"
pass_next: continue_story
fail_next: history_reminder
Структура
START (linear)
↓
Исторический контекст
↓
Checkpoint
↓
РЕШАЮЩИЙ МОМЕНТ (branching)
/ \
A B (альтернативная история)
| |
| |
\ /
ENDING (два варианта)
Минимальный template
Базовый шаблон для быстрого старта:
id: my-scenario
title: "Название"
description: "Описание"
startNode: start
variables:
main_stat:
initial: 50
min: 0
max: 100
label: "Основная характеристика"
settings:
allowBacktrack: false
showVariables: true
restartAllowed: true
nodes:
# Начало
- id: start
type: scene
content: |
Введение в сценарий.
choices:
- text: "Продолжить"
goto: middle
# Развилка
- id: middle
type: scene
content: "Ключевой выбор"
choices:
- text: "Вариант A"
goto: path_a
effects:
main_stat: 20
- text: "Вариант B"
goto: path_b
effects:
main_stat: -20
# Путь A
- id: path_a
type: scene
content: "Последствия выбора A"
choices:
- text: "Финал"
goto: ending_good
# Путь B
- id: path_b
type: scene
content: "Последствия выбора B"
choices:
- text: "Финал"
goto: ending_bad
# Хорошая концовка
- id: ending_good
type: ending
endingType: good
title: "Успех!"
content: "Вы справились!"
stats:
show: true
actions:
- text: "Пройти снова"
action: restart
# Плохая концовка
- id: ending_bad
type: ending
endingType: bad
title: "Неудача"
content: "В следующий раз получится!"
stats:
show: true
actions:
- text: "Попробовать снова"
action: restart
Проверка понимания
Следующие шаги
Готов создавать свой scenario?
- Выбери тему — что хочешь донести?
- Определи тип — linear, branching, mixed?
- Спроектируй переменные — 2-4 ключевые
- Набросай структуру — start → развилки → endings
- Используй template — начни с минимального примера
- Тестируй — пройди все пути
Куда дальше?
- Best Practices как улучшить сценарий
- Типы узлов подробнее о типах узлов
- Линейный или ветвящийся выбор подхода