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

Обновлено: 07.07.2024

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

Пример страницы из текстового квеста, сделанного в Twine​

Скорость разработки текстового квеста в этом инструменте ограничена фактически только вашей скоростью по созданию собственно текста. Тестовый пример к этой статье в 1900 слов и 12000 знаков с пробелами я написал за 2 часа (ссылка в конце) . Примерно столько же я потратил на черновик этой самой статьи.

Да, редактуру и вычитку лучше проводить по отдельной колонке расхода времени, иначе это морально вас может убить. А, может, сделает сильнее.

Сила Twine в том, что он позволяет увидеть связи между узлами текстового квеста в виде схемы.

​Редактор историй показывает схему связей между локациями

Когда-то я писал текстовые игры как обычный код в текстовом редакторе. Там приходилось решать кучу вопросов:

  • все ли узлы связаны переходами;
  • все ли задуманные выборы реализованы, то есть ведут к какому-то тексту;
  • нет ли у меня «потеряшек» — висячих узлов, в которые невозможно попасть.

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

Twine решает массу таких проблем тем, что просто показывает графическую схему. И все «потеряшки» видны как на ладони — как и густота связей, нереализованные варианты и так далее.

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

Итак, Twine — это комбинация трёх инструментов в одной программе:

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

При открытии Twine выглядит примерно так. У вас, скорее всего, он будет светлым.

Чтобы включить тёмную/светлую тему, надо кликнуть на иконке луны или солнца внизу справа.

Чтобы выбрать русификацию или адаптацию под другой язык, нажмите на кнопку Language и выбирайте. Есть украинский, китайский, испанский. всего 20 локализаций. Это влияет только на внешний вид самого редактора, текстовая игра будет на том языке, на котором вы будете набирать текст, что видно на скриншоте.

Внимание: каждая локализация хранит свои текстовые игры в отдельной папке, поэтому если вы начали писать проект под одним языком, а затем решили включить в Twine какой-то другой — не пугайтесь тому, что ваши игры исчезли. Это поведение характерно для последней версии (2.3.5), по которой написана статья. В будущем, возможно, это исправят.

​Stories и Истории — исходники для разных локализаций Twine (не игр!) лежат в разных папках

Файлы проектов в Twine хранятся под Windows в директории «Документы» для текущего пользователя. У меня были разные эксперименты: одни я делал под английским интерфейсом, другие —под русским, поэтому первые сохранились в папке Stories, вторые — в «Истории». И, да, китайский интерфейс создаёт на вашем компьютере папку с иероглифами. Это не проблема, просто забавно.

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

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

Ах, форматы! Я забыл сказать, что Twine — прекрасно расширяется с помощью разных форматов, которые можно воспринимать как микро-движки с собственными языками и возможностями. Для начала работы выбор формата не имеет значения. Если вы описываете локации или ситуации, и соединяете их выборами, то сеть переходов будет работать во всех форматах.

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

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

Для начала можно выбрать любой формат — его можно поменять потом.

Чтобы начать новую историю, нажмите на кнопке «+История» (+Story).

Введите имя игры-истории и нажмите «Добавить». Всё, вы в редакторе истории.

Он выглядит как огромный лист миллиметровки, на котором лежат листочки. В начале там будет только один «Безымянный параграф».

Параграф — это локация в бродилке или один кадр в диалоге. Короче, это базовый узел в сети, из которой будет сплетена игра.

Кликните дважы на нём, чтобы отредактировать его. Откроется окно с несколькими полями. Вам нужно только два: верхнее для названия и нижнее для описания.

Из моего опыта название параграфа — это ерунда. Это то, что нужно только внутри редактора для переходов. Можно писать что угодно: хоть цифры, хоть кириллицу. Я советую только делать их короткими, потому что их так удобнее будет вставлять как ссылки в других параграфах.

Объём текста в параграфе теоретически не ограничен. Но длинные простыни в наш век — на любителя. Кроме того, их придётся проматывать на экране мобильника. Решайте сами.

​Объём текста в описании не ограничен. Кстати, ссылки на другие параграфы можно давать прямо в тексте

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

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

[[Облизать муравьиную тропу]]

Как только вы это сделаете, Twine тут же создаст второй параграф с этим именем. А если такой параграф уже есть, просто соединит их переходами.

Если вы послушались моего совета и начали писать параграфы с компактными именами, да ещё с цифрами и сокращениями, то для того, чтобы выбор содержал человеческий текст, надо писать по шаблону

[[Текст выбора|название параграфа, куда идти]]

[[Облизать муравьиную тропу|ants]]

Жмите на крестик в верхнем углу и закрывайте параграф. Теперь в редакторе лежит несколько узлов будущей игры. Их можно перетаскивать как угодно.

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

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

Тут все банально — нажмите «Запустить» или «Тестировать» в редакторе истории.

Игра откроется в вашем браузере.

Если что-то измените в игре — запускайте заново.

Чтобы экспортировать игру в HTML, в редакторе истории нажмите на названии игры внизу и выберите «Опубликовать в файл». После этого укажите путь и название с расширением .html

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

Многие сценаристы используют Twine для разработки диалогов или визуальных новелл на других движках, вплоть до Unity и Unreal — просто они экспортируют данные, описывающие сеть переходов и параграфов, в формат JSON. Это тоже монетка в копилку ваших представлений о возможностях проекта.

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

Я начал набрасывать пример к статье — игру-квест «Лорд-титан» про безумный магический мир после ужасных катастроф, и не успел обернуться, как пролетело два часа. Да, для полноценной игры это мало. Нужно как минимум восемь часов, по моим прикидкам, чтобы сделать что-то законченное. Ну или быть гением минимализма. Я не гений, факт.

Если вам интересны текстовые игры типа квестов из «Космических рейнджеров» — это готовый инструмент для создания подобных забав.

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

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

я вот и думаю, что сначала надо рассказать про картинки, как добавлять

как программист могу сказать, что надо открыть в Chrome дебаггер, посмотреть схему элементов и изменить в таблице стилей нужный CSS-селектор

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

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

Потом подумаю о музыке.

А потом можно уже и свой квест запилить)

Было бы очень здорово узнать больше о возможностях софтины. Заранее спасибо, с нетерпением буду ждать новых статей!

Огромный респект тебе дружище за твой труд.

Спасибо, рад что людям полезно:)

отлично, если понравится - можно вставлять видосы в статьи?

Комментарий удален по просьбе пользователя

Комментарий удален по просьбе пользователя

Вы так говорите о Зои Квинн, как будто то, что она делает - это что-то плохое

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

Комментарий удален по просьбе пользователя

поинтересовался, получил ответ, спросил почему такой эпитет применен к только к женщинам, а не ко всем "разработчикам" и получил токсичный ответ. Смысл отвечать: обосновать почему женщины которые "изображают", а мужчины при этом - "нет"?

Комментарий удален по просьбе пользователя

мгм понятненько. Сами то игры делаете?

Комментарий удален по просьбе пользователя

Люблю DTF, но рад, что под этим постом до SJW-скандала добирались довольно долго

тонкий намек на толстые обстоятельства, в которых засветился Twine ))
я стараюсь об этом не думать

Комментарий удален по просьбе пользователя

Спасибо за информацию. Вообще интересная тема, лично я больше предпочитаю qsp, привык уже, да и функционал пошире, но тут лишь вопрос вкуса и необходимости дополнительного функционала. Хотя там уже больше текстовые рпг, с инвентарем и так далее.

я бы сам с удовольствием почитал про qsp, если есть опыт или просто шишки от общения - пишите, я точно прочту.

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

К сожалению мой опыт заключается лишь в паре дополнительных квестов для уже существующих игр с открытым кодом, да провальная попытка сделать что-то свое)

иногда для статьи достаточно просто изложить свои ощущения и досыпать горстку фактов

А Inky не пробовали? Я сейчас пишу в нем, по функционалу похоже, присутствует масса логических операторов, так же из плюсов моментальное отображение изменений в тексте.
Но нет режима диаграмм, как здесь.
Было бы интересно понять как оно в сравнении, если есть опыт)

Ink хорош скорее для случаев, когда тебе нужен вариативный текст:

Писал квесты для игры "Школьные будни". Офигевал от того, насколько QSP ужасное двигло с ужасным кодом для игры такого масштаба. Но с другой стороны, если не QSP, то что? Для своих задач подходит отлично, но ограничения в коде огорчают и бесят, особенно, если ты такой новичок, как я. Нормальную документацию, как с RenPy например, найти тяжело.

На форуме schoollife один парень даже решил собственный движок сделать по такому случаю. У него что-то даже получается.

да-да-да, я тут на ДТФ несколько раз читал, как дизайнеры больших игр используют Twine для проработки диалогов - и это заставило меня поверить, что этот инструмент не игрушка, а. действительно инструмент

Как сделать текстовый квест за 20 минут

Квестер - он-лайн конструктор игр. Создай свой собственный квест, играй и обсуждай его с…

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

А как с этим у Квестер?

Кроме прав, можно ли на Квестере сделать станд-алоне приложение для компа или телефона, не только страницу?

Я высоко ценю, что Квестер и подобные проекты делают в плане создания сообщества и поддержки талантов.

Что касается "квест за 20 минут". За 20 минут не делается ничего, только комментарии обычно пишутся с такой скоростью. Текстовый квест требует текст. Сколько текста можно набрать за 20 минут? Какая у него будет связность? Сохранит ли он интерес? Сколько концовок в нем можно сделать.

Мне лично за 20 минут никогда не удавалось написать ничего толкового. За час - более-менее, но это были не игры с ветвящимися сюжетами, а художественные рассказы.

Если вы реально пишете за 20 минут законченный квест - мое почтение! Вы должны очень много зарабатывать


Для того что бы создать текстовую игру нужно понять как все должно быть устроено:

Надеюсь, вы поняли суть строения игры, все по кирпичику как в стройке дома. Но не достаточно просто сделать сюжет, добавить выбор, и парочку концовок игры нужна еще сопровождающая графика для игры, например можно сделать игру как комикс, в котором будут перелистывать страницы , но это очень долго нужно работать над графикой.…
А вот пример легкой в графике игру можно сделать по всем нам известном "КЕП капитан очевидность":

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

Вот пример сюжета текстовой игры (написан мною):


Владислав закончил 11 класс, решил попробовать поступить в Институт Железнодорожный им. И.О. Образцова. Но из за плохой учебы в протяжении 11 год, он соответственно плохо сдал ЕГЭ. Его не приняли, но он не очень расстроился, его поддерживала его любимая девушка. Он наслаждался летом, и совсем забыл что ему 18 лет. Незаметно подкралась осень, и ему приходи повестка в военкомат. Он игнорировал, пока не приехали за ним к его дому. Он увидел ржавый УАЗ, и у него появился выбор сбежать с дому незаметно к любимой девушки или сесть в УАЗ, и уехать на службу.
1)Сбежать - Он незаметно сбежал к девушке. Они нечего не подозревая сидели на лавочке и ели семки. Владислав совсем забыл что его мать в дома. Капитан Василев
расспросив у матери где может быть ее сын. Она ответила что может быть в его девушки Вики, они сразу поехали к ней и увидели их на лавочке, капитан и два сержанта задержали Владислава, но во время задержания набили ему синяк и разбили губу. Он оказывается в казарме где ему сразу дали кличку "синяк" и он потерял авторитет среди дедов.
2) Пойти в УАЗ- Он приезжать к казарме и начинает знакомится, он вместе с другими ребятами сразу придумал кличку одному сослуживцу. Деды улыбнулись, посмеялись, что бы это значило?

И это я только расписал первый выбор Владислава. Но соответственно это все должно сопровождаться графикой.

Это первая часть статьи во второй я боду показывать как создать текстовую игру на Game Maker.
С вами был, TransceD.

6 оупенсорсных средств создания текстовых игр

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

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


Интерактивная проза – категория компьютерных игр, в которых игрок может контролировать персонажа посредством текстовых команд. Одной из самых известных игр в этом жанре является Zork.

Более богатой на изображения версией текстовых игр является книга-игра. Книги-игры позволяют так же прокликать себе дорогу до финала. Графика, тем не менее, и в них особо сильного значения не имеет. Все фокусируется на тексте и сюжете. Отличным примером книги-игры является серия “Выбери себе приключение”.

Подыскать хорошую текстоую игрушку на английском языке можно здесь и здесь; на русском здесь, например.

Лучшие средства с открытым кодом для создания интерактивной прозы

Сегодня я покажу вам средства, с помощью которых можно создать интерактивную прозу на Linux. Программы не проставлены в каком-то определенном порядке.

1.Twine

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

Если вы еще хотите чего-то добавить в свою игру, то есть возможность облагородить творение переменными, условной логикой, изображениями, CSS и javascript. Результат Twine экспортирует в формате HTML. Такой подход дает возможность с легкостью делиться своими творениями.

На данный момент последняя версия Twine это 2.1.3, которая доступна для Linux, Windows, и Mac OS. Она лицензирована под GPL v3.

2.Quest

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

Как и Twine Quest можно расширить с помощью изображений, музыки, и звуковых эффектов. У вас даже есть возможность вставки роликов с YouTube или Vimeo и модификации интерфейса финальной версии игры с помощью HTML или javascript.

Последняя версия для Windows 5.7.0. Если у вас Linux или Mac, то можете использовать онлайн редактор. Он лицензирован под MIT. Исходный код доступен здесь.

3.Squiffy

Squiffy - это еще одно средство для создания текстовых игр от разработчиков Quest. Его отмечают как “простой способ создания интерактивной прозы”. Squiffy не сильно отличается от предыдущих вариантов, так как позволяет выводить результат в HTML и javascript, как и Twine, чтобы можно было сыграть в браузере. Для превращения игры в приложение можно использовать PhoneGap.

Самый актуальный релиз Squiffy 5.0. Его можно запускать на Linux, Mac и Windows; можно использовать в браузере. Она лицензирована под MIT. Исходный код здесь.

4.TADS

TADS или Text Adventure Development System – это “прототипный предметно-ориентированный язык программирования и набор стандартных библиотек” для создания интерактивной прозы. Наиболее свежая версия языка TADS основана на C++ и javascript. Она предоставляет компилятор как для создания игр, так и для самой игры.

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

5.Inform

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

У Inform есть библиотека созданных пользователями расширений, которые могут добавить возможностей вашим историям. Авторы написали электронную книгу, призванную помочь писателям в освоении программы. Inform можно запускать на Linux, Mac и Windows. Linux версия использует фреймворк GNOME. Наиболее актуальный релиз Inform 7.0.

6.Ren'Py

Ren'Py - средство для создания графических романов. Я даже хотел не включать его в этот список, так как оно слишком лаконично для упоминания. Если верить сайту, то он является "бесплатным и кроссплатформенным движком для цифровых рассказов. Он позволяет с легкостью комбинировать слова, изображения и звуки для создания визуального повествования и игр, симулирующих жизнь".

Как и несколько ранее уже упомянутых вариантов, Ren'Py работает со своим собственным языком, но при этом предоставляет поддержку кода на скриптовом языке программирования Python. Ren'Py предлагает поддержку Linux, Windows и Mac. В игры, созданные на нем, так же можно играть на iOS и Android. Вы даже можете создать версию игры для загрузки в Steam. Большая часть Ren'Py лицензирована под MIT. На исходный код можно взглянуть здесь. Актуальная версия 6.99.12.

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

Когда я был моложе, то прочел много книг из серии "Выбери свое приключение", так что мне понятна притягательность такого рода игр. Замечательно, что сегодня сделать что-то подобное не представляет особых сложностей.

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

Если статья показалась вам интересной, пожалуйста, поделитесь ей с другими. Спасибо!

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

как_создать

last_monster_master

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

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

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

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

stub_text

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

first_text_pass

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

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

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

variable_pass

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

Читайте также: