22.01.2015

Как создать текстовую игру?

Бен Сервисс (Ben Serviss), программист, геймдизайнер и игровой продюсер из Нью-Йорка, в своем блоге описал этапы создания текстовой игры. Мы с его разрешения перевели текст и делимся им с вами.

как_создать

Сочинять тексты — сложно. Сочинять тексты для интерактивной игры со множеством вариантов ответов — еще сложнее.

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

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

Я недавно выпустил свою первую полноценную текстовую игру для Choice of Games под названием The Last Monster Master (в ней примерно 250 000 (!) слов). В процессе я пришел к определенным базовым схемам, — они помогли написать игру глава за главой. Я использовал отличный (и бесплатный) Chat Mapper, чтобы создать каждую нелинейную главу. Затем я перевел окончательный вариант текста в ChoiceScript, собственный язык программирования Choice of Games, удобный для создания текстовых игр.

last_monster_master

Скриншот из игры The Last Monster Master 

Я упростил процесс, разбив работу над каждой главой на шесть этапов. В Chat Mapper есть очень удобная функция — она позволяет присваивать свой цвет каждому текстовому блоку. Я использовал эту фичу, чтобы отслеживать ключевые моменты работы с текстом, — изменял цвет каждый раз, как заканчивал этап (это можно увидеть на приведенных ниже скриншотах)

Этап 1. Текстовые заготовки (без цветового маркера)

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

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

На этом этапе избегайте чрезмерных правок (или вообще любых правок, — если получится).  Главная цель — описать структуру главы так, чтобы это было читабельно. Когда вы закончите, у вас должна получиться карта того, над чем вы потом будете работать — в первом приближении.

В приведенной ниже схеме из The Last Monster Master один из монстров игрока застрял в дереве во время атаки. Игрок может использовать телепатию или навык чтения языка тела, чтобы помочь монстру отразить атаку, или подбежать и помочь напрямую.

stub_text

Этап 2. Ревизия текстовых заготовок (цвет — желтый)

На этом этапе сконцентрируйтесь на проверке того, что уже создали. Пока что вас должно волновать только то, как расположены диалоги — не переживайте насчет грамотности или красоты текста, поскольку все, что вы написали, еще не раз может подвергнуться переделке.

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

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

Этап 3. Текст в первом приближении (цвет — оранжевый)

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

Не заботьтесь о том, что не имеет отношения непосредственно к тексту. На этом этапе вас не должны волновать варианты выбора, структура этапов и так далее. Именно эта часть самая интересная — и она же отнимает больше всего времени.

first_text_pass

Этап 4. Проверка текста (цвет — фиолетовый)

Выжили после того, как написали целую главу? Отлично! Дальше все пойдет быстрее. Включаем режим беспощадного редактора.

Прочитайте написанный вами текст. Будьте безжалостны. Проверьте все, что относится к тесту — грамматику, пунктуацию, будьте точны в выборе слов, описании персонажей или мест и так далее. Повторюсь: сосредоточьтесь на тексте. Заставьте его зазвучать.

Этап 5. Варианты (цвет — голубой)

Со структурой разобрались, текст выглядит пристойно. Теперь пройдитесь по всей главе еще раз. Ищите все места, где возникает вариативность, особенно те, где меняется статус игрока или где от него зависит поворот сюжета. Возможно, на этом этапе придется добавить варианты взаимодействия с уникальными артефактами, персонажами, появляющимися только один раз — и так далее.

Оцените повороты сюжета с точки зрения их уместности и влияния на игровой баланс.

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

Например, если сила игрока должна быть на уровне в 45 единиц, чтобы вышибить деревянную дверь в четвертой главе, то логично, что в шестой главе ему понадобится 65 единиц, чтобы выбить металлическую дверь (то есть, соответственно, статус реквизитов должен расти вместе со статусом игрока).

variable_pass

Этап 6. Экспорт и игровая логика (цвет — зеленый)

Время поместить почти готовую главу в программу, которую вы используете непосредственно для разработки игры. К счастью, Chat Mapper экспортирует файлы в формате XML, JSON, Excel и Rich Text, — что дает вам возможность выбирать. В случае с The Last Monster Master я просто скопировал каждый ключевой элемент в файл ChoiceScript, видоизменив их по мере необходимости.

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

Другие методы

Представленный вариант — не единственный подходящий для создания нелинейных текстовых игр, однако в случае с моим проектом он сработал. В зависимости от того, какого стиля разработки вы придерживаетесь и тех программ, которые вы используете, можно попробовать экспортировать текст в игру на более ранних этапах — чтобы в нее можно было сыграть как можно раньше. Добавлю, скрипты для Chat Mapper можно писать с помощью Lua, — а значит, игровую логику можно задавать прямо в программе.

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

Другие материалы по теме:

Комментарии
Добавить комментарий
Новости по теме