Перейти к основному содержимому

Первая нода

Чтобы начать писать свою историю, откройте проект в веб-редакторе.

Настройка стартовой ноды

В вашем проекте уже есть глава Start — это точка входа. Мы используем её для объявления переменных и перехода к первой ноде истории.

Создайте новую главу, нажав кнопку + в боковой панели, и назовите её escape.

Совет

Введите \ в редакторе, чтобы быстро вставить команды: <<jump>>, <<declare>> и другие.

title: escape
checkpoint_name: "Escape"
---

===

Это наша стартовая нода. Мы добавили параметр checkpoint_name, чтобы прогресс игрока сохранялся в этой точке.

Связь с нодой Start

Вернитесь к главе Start. Здесь мы объявим переменные и создадим связь с нодой escape:

title: Start
is_entry_point: true
---
// Game vars

// Jump to your start node
<<jump escape>>
===
Совет

Хорошая практика — использовать ноду Start для объявления переменных. Это позволяет держать ноды истории чистыми и сосредоточенными на повествовании.

Пишем историю

Перейдите к главе escape и напишите первый диалог. В этой ноде агент сообщает, что его раскрыли, и игроку нужно будет сделать выбор, чтобы помочь ему сбежать.

title: escape
checkpoint_name: "Escape"
---
Срочно! Меня раскрыли. Мне нужно срочно выбираться отсюда.
-> Что случилось?
-> Как я могу помочь?

Нет времени объяснять, просто помоги мне выбраться!
-> Где ты сейчас?

Я в лаборатории №15, но они уже нашли меня. Мне нужен план отхода.
===

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

Однако долго так делать не получится — игрок заскучает. Давайте добавим настоящий выбор, который повлияет на сюжет.

Совет

Разбивайте сообщения пустой строкой, чтобы сделать текст более читаемым. Нажмите Enter дважды в редакторе, чтобы начать новое сообщение.

...

Я в лаборатории №15, но они уже нашли меня. Мне нужен план отхода.
-> Используй вентиляцию
<<jump escape_ventilation>>
-> За окном стоят строительные леса, можешь спуститься по ним
<<jump escape_scaffolding>>
===

Первый выбор

Мы добавили два варианта выбора, каждый из которых перенаправляет игрока на другую ноду. Создайте две новые главы, нажав + в боковой панели:

Глава: escape_ventilation

title: escape_ventilation
---
===

Глава: escape_scaffolding

title: escape_scaffolding
---
===

Давайте запомним выбор игрока на будущее. Вернитесь к главе Start и объявите переменную:

title: Start
is_entry_point: true
---
// Game vars
<<declare $escape_choice = ''>>

// Jump to your start node
<<jump escape>>
===

Теперь установим значение переменной в каждой главе выбора:

escape_ventilation:

title: escape_ventilation
---
<<set $escape_choice = 'ventilation'>>
===

escape_scaffolding:

title: escape_scaffolding
---
<<set $escape_choice = 'scaffolding'>>
===

История может становиться сложнее. Например, предположим, что агент получил ранение на строительных лесах, и мы хотим уменьшить его здоровье. Добавим переменную $health в главу Start:

title: Start
is_entry_point: true
---
// Game vars
<<declare $escape_choice = ''>>
<<declare $health = 100>>

<<jump escape>>
===

И в escape_scaffolding:

title: escape_scaffolding
---
<<set $escape_choice = 'scaffolding'>>

Хорошо, я спускаюсь по строительным лесам.

<<wait 5>>
<<set $health = $health - 10>>
Меня подстрелили! Чёрт, это было близко. Надо быстрее уходить отсюда.
-> Возвращайся в лабораторию, попробуем через вентиляцию
<<jump escape_ventilation>>
-> Продолжай спускаться

...
===

Мы добавили команду <<set $health = $health - 10>>, которая уменьшает значение переменной health на 10. Команда <<wait 5>> добавляет задержку перед следующим сообщением, имитируя время, необходимое для спуска.

Тестирование

Используйте отладчик () для тестирования вашей истории. Вы можете изменять переменные на лету в панели «Переменные», чтобы проверять разные ветки без необходимости проходить всю историю заново.