Уровень 1 0 / 100 XP
Сегодня
0 мин
0 вопросов
- точность
0 уроков

Завтра счёт начнётся заново

Новое достижение
Первые шаги

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?

  1. Выбери тему — что хочешь донести?
  2. Определи тип — linear, branching, mixed?
  3. Спроектируй переменные — 2-4 ключевые
  4. Набросай структуру — start → развилки → endings
  5. Используй template — начни с минимального примера
  6. Тестируй — пройди все пути


Куда дальше?