Написання сценаріїв та діалогових дерев ігор

Наша компанія з розробки відеоігор веде незалежні проекти, спільно з клієнтом створює ігри та надає додаткові операційні послуги. Досвід нашої команди дозволяє нам охопити всі ігрові платформи та розробити приголомшливий продукт, що відповідає баченню клієнта та перевагам гравців.

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Написання сценаріїв та діалогових дерев ігор
Складна
від 1 тижня до 2 місяців
Часті питання

Наші компетенції

Які етапи розробки гри?

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

Написання сценаріїв та діалогових дерев ігор

Ігровий сценарій — це не кінозценарій з пробілами під реплики. Це технічний документ зі станами, умовами і ветвленнями, який одночасно читає нарватив-дизайнер і парсить рушій діалогів. Написати сценарій, який добре звучить і при цьому коректно реалізується без армії прапорів і hardcода — задача, що вимагає розуміння архітектури з обох боків.

Структура діалогового дерева: вузли, ребра, умови

Діалогове дерево — це орієнтований граф, а не дерево у строгому сенсі: один вузол може мати кілька вхідних з'єднань, і до нього можна прийти з різних точок нарративу. Кожний DialogueNode зберігає: speaker ID, текст реплики, список вихідних ребер (DialogueEdge[]), опціональний список умов входу та список actions (тригери подій ігрового світу).

Умови — це перевірки ігрового стану: QuestFlag("rescued_merchant") == true, PlayerLevel >= 5, Reputation("thieves_guild") > 30. Якщо жодна умова вхідної реплики не виконана — гілка приховується або замінюється fallback-репікою.

Actions — це впливи на ігровий світ: видати квест, додати предмет, змінити репутацію, відтворити анімацію, запустити кат-сцену. Actions прикріплюються до вузлів або ребер (при виборі варіанту відповіді).

Це розділення на умови та actions — основа будь-якої нарративної системи. Не важливо, реалізовано це в Yarn Spinner, Ink, Dialogue System for Unity або кастомному редакторі — логіка одна.

Yarn Spinner та Ink: реальна різниця

Yarn Spinner — текстовий формат з синтаксисом, близьким до Twine. Умови пишуться прямо у скрипті: <<if $player_level >= 5>>. Команди: <<jump NodeName>>, <<set $flag = true>>. Добре підходить для лінійних діалогів з ветвленнями, легко редагується письменниками без технічного бекграунду. Інтегрується в Unity через офіційний пакет з компонентом DialogueRunner.

Ink — потужніша мова з концепцією «knots» та «diverts», підтримкою лічильників відвідувань (visited, visit_count) і weave-структурою для паралельних нарративних потоків. Використовується у Disco Elysium, 80 Days, Heaven's Vault. Для складних нарративів з відстеженням історії взаємодій Ink зазвичай чистіше.

Вибір інструменту залежить від нарративної складності проекту: для 200 рядків діалогу в action-RPG достатньо Yarn Spinner; для нарративної гри з 100k+ словами та ветвною історією — Ink або кастомне рішення.

Як писати реплики, які технічно працюють

Кожна реплика повинна функціонувати без попереднього контексту — тому що гравець може прийти до цього вузла з різних гілок. Перевіряється просто: прочитати реплику в ізоляції. Якщо незрозуміло — потрібен fallback-контекст або реструктуризація.

Варіанти відповідей не повинні бути семантично порожніми. «Так», «Ні», «Розкажи більше» — це погані варіанти: вони не передають характер гравця. «Я вже чув про це» / «Продовжуй, мені цікаво» / «Некогди — що потрібно?» — це варіанти з голосом персонажа.

Локалізаційні мітки. Кожна рядок отримує унікальний ID (NPC_MERCHANT_GREETING_01) — не порядковий номер. При локалізації перекладач бачить контекст в ID, а не гадає що таке рядок №847. Це стандартна практика при роботі з LocalizationTable в Unity Localization пакеті.

Нарративний дизайн: квести та структура

Окремий масштаб роботи — написання квестових діалогів з урахуванням станів квеста. Один NPC може мати різні реплики в залежності від QuestState: NotStarted, InProgress, ObjectiveComplete, Turned In, Failed. Це мінімум 5 версій діалогового дерева на квест, або одне дерево з умовними гілками на кожен state.

Типічна помилка: написати діалоги лише для NotStarted та InProgress, забути про Turned In — і гравець після здачі квеста чує видачу завдання повторно. QA відловлює, але правки вимагають роботи як нарративу, так і програміста.

Діалог як навчання механіці. Найефективніші tutorial-діалоги не говорять «натисни X для атаки» — вони вбудовують навчання у нарватив: «Покажи мені, як ти вмієш обходитися з мечем» з наступним вимушеним енкаунтером. Сценарій і дизайн рівня пишуться разом.

Орієнтовні строки

Масштаб Обсяг Строк
Малий 1–3 квести, ~500 рядків діалогу 1–2 тижні
Середній Основний сюжет + побічки, ~3000–5000 рядків 1–2 місяці
Великий Повна нарративна система, 20k+ рядків 3–6 місяців

Процес роботи над сценарієм

Починаємо з нарративного документа: хто персонаж, які його мотивації, що повинен дізнатися і почути гравець після діалогу. Тільки потім — структура вузлів в інструменті (Yarn Spinner Visual Editor або Articy:Draft). Чорновик діалогу → технічне ревю на виконуваність умов та actions → правка → фінальний текст.

Обов'язковий етап — тест усіх гілок вручну в редакторі з увімкненими логами: який вузол завантажився, яка умова спрацювала. Це знаходить «мертві» гілки, до яких немає шляху, і вузли без виходу, зависаючі діалог.