Динамический текст в текстовой игре на реальном примере диалога. Часть 1.

Привет. Меня зовут Игорь. Я разработчик игры «Цена Истины».

Это текстовое приключение с захватывающим сюжетом о молодом ученом из Москвы, отправившемся в Амазонию на поиски таинственного артефакта.

Много лет он манит исследователей, но все, кто пытался его найти, бесследно исчезают, оставляя лишь обрывки дневников. Удастся ли Алексею разгадать загадку и достичь своей цели?

Кроме игровых интерфейсов, в игре нет графики. Как удивлять читателя?

Работая над текстовой игрой без использования графики, приходится придумывать, как удивлять читателя? Есть не так уж и много инструментов создания атмосферы в полностью текстовой игре. Ведь перед глазами только текст.

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

Есть один приём, которого я придерживаюсь при разработке своей игры — динамическое построение текстов. Текст в некоторых сценах будет отражать реальные действия игрока. Это позволит максимально усилить повествовательный нарратив. Насколько глубоко "упарываться" при программировании таких диалогов, пусть каждый решает сам. Я покажу на примере своей игры, как можно удовлетворить, в хорошем смысле, внимательного читателя. На примере одного из диалогов.

Перед собой вы видите пример блок схемы построения динамического текста в диалоге Алексея с супругой Леной.
Перед собой вы видите пример блок схемы построения динамического текста в диалоге Алексея с супругой Леной.

В моей игре присутствует нелинейное повествование, таким образом, игрок может совершить или не совершить какие-то действия. В зависимости от его действий, некоторые моменты в диалогах могут выглядеть по-разному.

В прологе игры Алексей (главный персонаж) попадает в транзитную зону аэропорта Сан-Пауло. Где ему нужно дождаться следующего рейса в Манаус. Игроку предлагается посетить следующие зоны.

Через "Навигатор" игрок может свободно перемещается по локациям в любой последовательности.
Через "Навигатор" игрок может свободно перемещается по локациям в любой последовательности.

Задача этой части игры — рассказать игроку про ситуацию в Бразилии через различные точки интересов.

Например, в зоне отдыха Алексей может посмотреть телевизор и пообщаться с ожидающими своих рейсов пассажирами.

В газетном киоске может купить газету, журнал и телефонные карты различного номинала (действия игры происходят в 1999 году), пообщаться с продавцом газет на различные темы.

В сувенирной лавке можно купить сувениры дочке и супруге, узнать у владельца лавочки её историю.

В кафе за чашечкой кофе происходит беседа с человеком, работающим в крупной нефтяной компании.

А с помощью таксофона, используя телефонную карту, можно позвонить домой и оставить весточку супруге.

Во всех этих сублокациях транзитной зоны достаточно много действий, которые может совершить игрок. И все их надо учитывать в нужных местах.

Давайте разберём пример блок схемы диалога Алексея с Леной по таксофону.

Звонок Лене - это обязательное задание для игрока в данной локации.

Для его выполнения надо посетить газетный киоск и приобрести таксофонную карту.

Ключевой момент:

У каждого звонка есть своя стоимость кредитов на телефонной карте. Данный диалог состоит из двух частей. Общая стоимость звонка 20 кредитов. (10 кредитов первая часть, 10 вторая).

В газетном киоске продаются карточки номиналом: 10, 20, 30 и 50 единиц. Игрок может купить любую из этих карт. По этому мы не можем знать заранее, какой номинал он выберет. Надо этот момент учитывать.

Итак давайте посмотрим на схему начала звонка Алексея домой.

Динамический текст в текстовой игре на реальном примере диалога. Часть 1.

Начало диалога, мы должны дойти до фразы: "Маша всё спрашивает, когда папа вернётся?"

Начало диалога.
Начало диалога.

Сейчас мы идём по левой ветке блок схемы диалога, если подарок куплен дочке, мы увидим такой текст. Я подчеркнул, те строчки которые проходят по условию этой цепочки.. и они вставляются в текст.

Пример, когда дочке куплен подарок.
Пример, когда дочке куплен подарок.

Если подарок куплен и дочке и супруге. То срабатывают 2 левых условия блок схемы и текст формируется таким образом.

Пример, когда подарок куплен и дочке и супруге.
Пример, когда подарок куплен и дочке и супруге.

Теперь давайте рассмотрим ситуацию, если игрок не купил подарки а решил, сначала позвонить.

Пример, когда подарки не куплены.
Пример, когда подарки не куплены.

И последняя возможная ситуация. Игрок не купил подарок дочке, но купил подарок Супруге.

На блок схеме, отметил красными стрелками путь этой логической цепочки.

Динамический текст в текстовой игре на реальном примере диалога. Часть 1.
Пример, когда подарок куплен только супруге.
Пример, когда подарок куплен только супруге.

Как видим, текст четко отражает действия игрока.

Но на этом диалог Алексея с супругой не заканчивается.

Смотрим далее на блок схему.

Продолжение диалога.
Продолжение диалога.

Далее следуют 2 условия(Красные блоки)

Если у нас была куплена телефонная карта на 10 единиц, мы пойдём по левой ветке, иначе пойдём по правой ветке.

Давайте рассмотрим, как это отразится на тексте.

Итак, левая ветка. Карточка на 10 единиц.

Не хватает кредитов для завершения диалога.
Не хватает кредитов для завершения диалога.

Игрок слышит сигнал об окончании единиц на таксофонной карте. Игра об этом пишет в тексте. Реплика Елены прерывается на фразе Во сколько...

00 на дисплее -  в игре баланс карты отображается на дисплее таксофона.
00 на дисплее -  в игре баланс карты отображается на дисплее таксофона.

Связь прерывается, таксофонный дисплей показывает баланс 00.

Мы видим реакцию Алексея и подсказку игроку: "Придётся купить ещё одну карту."

Идём в газетный киоск и покупаем ещё одну карточку на 10 единиц.

Динамический текст в текстовой игре на реальном примере диалога. Часть 1.

Если перезваниваем с уже новой карты, видим такое.

Пример, того, что увидит игрок перезванивает используя новую телефонную карту.
Пример, того, что увидит игрок перезванивает используя новую телефонную карту.

Мы видим много интересных акцентов и деталей.

— Алло. Связь прервалась...

— Да. Телефонная карта закончилась. Пришлось взять ещё одну. Ты что-то говорила...

— Да. Я хотела спросить -

Лена произносит полноценно фразу на которой в прошлый раз оборвалась связь.

Это отлично погружает игрока в происходящее, и отражает реальные действия произошедшие в игре.

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

Условие: Игрок купил карточку не менее 20 единиц и начал разговор. Мы опустим подробности по подарки и сразу перейдём к экрану где Лена спрашивает во сколько у Алексея рейс до Манауса.

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

Пример. Если звонок совершался с карты 20 единиц.
Пример. Если звонок совершался с карты 20 единиц.

Мы доходим до фразы, чем ты там занимаешься?

Далее мы доходим до следующей проверки условий.

Динамический текст в текстовой игре на реальном примере диалога. Часть 1.

Алексей на момент звонка уже мог посетить все сублокации транзитной зоны либо, посетить только некоторые из них. Это надо отразить в тексте.

Рассмотрим вариант, если игрок посетил все сублокации.

Если посетил все локации.
Если посетил все локации.

Теперь давайте рассмотрим вариант, когда игрок посетил только некоторые. Газетный киоск он посетит в любом случае т.к. там надо купить телефонную карту для звонка. Ну и допустим он посетил сувенирную лавочку где купил родным подарки.

Пример посещения некоторых локаций
Пример посещения некоторых локаций

Подстраиваем текст под текущие реалии. Вуаля.. Алексей перечисляет только те зоны в которых побывал. Диалог строим в соответствии с действиями игрока.

Это не конец диалога. Т.к. у DFT есть ограничение на длину поста. Продолжение будет во второй части. Ищите в моём блоге -

1
Начать дискуссию