Динамический текст в текстовой игре на реальном примере диалога. Часть 1.
Привет. Меня зовут Игорь. Я разработчик игры «Цена Истины».
Это текстовое приключение с захватывающим сюжетом о молодом ученом из Москвы, отправившемся в Амазонию на поиски таинственного артефакта.
Много лет он манит исследователей, но все, кто пытался его найти, бесследно исчезают, оставляя лишь обрывки дневников. Удастся ли Алексею разгадать загадку и достичь своей цели?
Кроме игровых интерфейсов, в игре нет графики. Как удивлять читателя?
Работая над текстовой игрой без использования графики, приходится придумывать, как удивлять читателя? Есть не так уж и много инструментов создания атмосферы в полностью текстовой игре. Ведь перед глазами только текст.
Опираться приходится на подачу сюжета и стиль повествования, не лишним будет добавление звуковых эффектов и музыки. Как погрузить игрока в повествование, чтобы усилить эффект присутствия без визуальной составляющей?
Есть один приём, которого я придерживаюсь при разработке своей игры — динамическое построение текстов. Текст в некоторых сценах будет отражать реальные действия игрока. Это позволит максимально усилить повествовательный нарратив. Насколько глубоко "упарываться" при программировании таких диалогов, пусть каждый решает сам. Я покажу на примере своей игры, как можно удовлетворить, в хорошем смысле, внимательного читателя. На примере одного из диалогов.
В моей игре присутствует нелинейное повествование, таким образом, игрок может совершить или не совершить какие-то действия. В зависимости от его действий, некоторые моменты в диалогах могут выглядеть по-разному.
В прологе игры Алексей (главный персонаж) попадает в транзитную зону аэропорта Сан-Пауло. Где ему нужно дождаться следующего рейса в Манаус. Игроку предлагается посетить следующие зоны.
Задача этой части игры — рассказать игроку про ситуацию в Бразилии через различные точки интересов.
Например, в зоне отдыха Алексей может посмотреть телевизор и пообщаться с ожидающими своих рейсов пассажирами.
В газетном киоске может купить газету, журнал и телефонные карты различного номинала (действия игры происходят в 1999 году), пообщаться с продавцом газет на различные темы.
В сувенирной лавке можно купить сувениры дочке и супруге, узнать у владельца лавочки её историю.
В кафе за чашечкой кофе происходит беседа с человеком, работающим в крупной нефтяной компании.
А с помощью таксофона, используя телефонную карту, можно позвонить домой и оставить весточку супруге.
Во всех этих сублокациях транзитной зоны достаточно много действий, которые может совершить игрок. И все их надо учитывать в нужных местах.
Давайте разберём пример блок схемы диалога Алексея с Леной по таксофону.
Звонок Лене - это обязательное задание для игрока в данной локации.
Для его выполнения надо посетить газетный киоск и приобрести таксофонную карту.
Ключевой момент:
У каждого звонка есть своя стоимость кредитов на телефонной карте. Данный диалог состоит из двух частей. Общая стоимость звонка 20 кредитов. (10 кредитов первая часть, 10 вторая).
В газетном киоске продаются карточки номиналом: 10, 20, 30 и 50 единиц. Игрок может купить любую из этих карт. По этому мы не можем знать заранее, какой номинал он выберет. Надо этот момент учитывать.
Итак давайте посмотрим на схему начала звонка Алексея домой.
Начало диалога, мы должны дойти до фразы: "Маша всё спрашивает, когда папа вернётся?"
Сейчас мы идём по левой ветке блок схемы диалога, если подарок куплен дочке, мы увидим такой текст. Я подчеркнул, те строчки которые проходят по условию этой цепочки.. и они вставляются в текст.
Если подарок куплен и дочке и супруге. То срабатывают 2 левых условия блок схемы и текст формируется таким образом.
Теперь давайте рассмотрим ситуацию, если игрок не купил подарки а решил, сначала позвонить.
И последняя возможная ситуация. Игрок не купил подарок дочке, но купил подарок Супруге.
На блок схеме, отметил красными стрелками путь этой логической цепочки.
Как видим, текст четко отражает действия игрока.
Но на этом диалог Алексея с супругой не заканчивается.
Смотрим далее на блок схему.
Далее следуют 2 условия(Красные блоки)
Если у нас была куплена телефонная карта на 10 единиц, мы пойдём по левой ветке, иначе пойдём по правой ветке.
Давайте рассмотрим, как это отразится на тексте.
Итак, левая ветка. Карточка на 10 единиц.
Игрок слышит сигнал об окончании единиц на таксофонной карте. Игра об этом пишет в тексте. Реплика Елены прерывается на фразе Во сколько...
Связь прерывается, таксофонный дисплей показывает баланс 00.
Мы видим реакцию Алексея и подсказку игроку: "Придётся купить ещё одну карту."
Идём в газетный киоск и покупаем ещё одну карточку на 10 единиц.
Если перезваниваем с уже новой карты, видим такое.
Мы видим много интересных акцентов и деталей.
— Алло. Связь прервалась...
— Да. Телефонная карта закончилась. Пришлось взять ещё одну. Ты что-то говорила...
— Да. Я хотела спросить -
Лена произносит полноценно фразу на которой в прошлый раз оборвалась связь.
Это отлично погружает игрока в происходящее, и отражает реальные действия произошедшие в игре.
Теперь давайте рассмотрим правую ветку. Этого куска блок схемы. Она более скучная, но этот вариант тоже вполне реален, по этому надо его показать.
Условие: Игрок купил карточку не менее 20 единиц и начал разговор. Мы опустим подробности по подарки и сразу перейдём к экрану где Лена спрашивает во сколько у Алексея рейс до Манауса.
У нас отсутствует эпизод предупреждающим звуком о том, что карточка заканчивается т.к. кредитов у нас больше. Диалог на этом моменте не прерывается.
Мы доходим до фразы, чем ты там занимаешься?
Далее мы доходим до следующей проверки условий.
Алексей на момент звонка уже мог посетить все сублокации транзитной зоны либо, посетить только некоторые из них. Это надо отразить в тексте.
Рассмотрим вариант, если игрок посетил все сублокации.
Теперь давайте рассмотрим вариант, когда игрок посетил только некоторые. Газетный киоск он посетит в любом случае т.к. там надо купить телефонную карту для звонка. Ну и допустим он посетил сувенирную лавочку где купил родным подарки.
Подстраиваем текст под текущие реалии. Вуаля.. Алексей перечисляет только те зоны в которых побывал. Диалог строим в соответствии с действиями игрока.
Это не конец диалога. Т.к. у DFT есть ограничение на длину поста. Продолжение будет во второй части. Ищите в моём блоге -