Разработка текстового квеста


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


Слева - свиток с историей диалогов, справа - Space Quest



Моя ситуация


Начну со своей ситуации. У меня, сначала, все началось с простой идеи. Идея заключалась в следующем: иметь окна Windows, в которых будет происходить игровое действие. В одном окне показывается история, во втором окне - выбор действий. Собственно, все под операционную систему Windows пишется. Такова начальная идея. Также, нарисовал в пайнте и на бумажке примерно, как должно выглядеть. Затем, написал структуру будущего квеста с технической точки зрения, то есть запрограммировал на С++. Опробовал минимальный геймплей, например, считывание из файла истории, вывод текста в окна, работа с действиями, отображение картинки на заднем фоне, умение проигрывать музыку. С этого все началось, значительно легче, когда , все-таки навыки программирования хоть какие-то,но есть.


Техника и художества


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

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



Обложки альбомов готик-рок группы HIM. Слева - Dark Light, справа - Tears on Tape


Черный романтизм


В качестве примеров, взял изначально творчество писательницы Анны Райс, и писателей таких как Эдгар Алан По, Говард Филлипс Лавкрафт. Повторюсь, что лишь взял их в качестве первичного вдохновения. История получилась своя, в целом. Не буду тут распространяться на тему этого направление в литературе.

Просто несколько простейших ссылок:



Обложки книг Анны Райс


Вампиры Анны Райс



Сумеречный гений собственной персоной


сайт о величайшем американском писателе 19 столетия



И еще один мастер тьмы


Лавкрафт (Говард Филлипс)

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



Вальхалла... Как много в этом звуке


Мифология викингов


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

Мифология викингов

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



Программирование - важнейшая часть создания простой видеоигры


Моя игра и программирование


Код игры писался на C++, с использованием WinApi. Сюжет довольно простой. Целью разработки - ставил, довести игру до завершения. Пускай и не будет много игрового процесса, зато будет игра. Простая игра. Видеоигра представляет из себя два игровых окна. В первом окне - показывается история. А во втором окне показывается выбор действия из списка. А также, представлено меню с опциями - сохранить, загрузить и т.д. На текущий момент, обладаю базовыми навыками с++, поэтому написал все сам , на этот раз для своей игры.



Квест Gabriel Knight Sins of the Fathers


Итог и план действий


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

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



Квест Gabriel Knight: Sins of the Fathers 20th Anniversary Edition , то есть переиздание оригинальной игры


Итак, перед разработкой надо:

1) Придумать идею игры. На листочке бумажки нарисовать игровое поле, окна. Придумать идею взаимодействия между игровыми элементами. Так, сказать, такое прототипирование на листке в самом минимальном виде. Нужно, чтобы сложилось общее представлении в общих чертах, что у вас будет. Такие зарисовки интерфейсов можно делать в ворде, экселе, пайнте, на бумажке, в тетрадке. Где-угодно, главное иметь таким образом, представление о будущей игре. Можно подумать, о том, какие игровые экраны будут и в общих чертах их отрисовать.



Квест Gabriel Knight 3: Blood of the Sacred, Blood of the Damned


2) Разделить создание игры на две части - техническую часть и художественную. Лучше начать с технической части и нужным способом сделать функционал. В отрыве от сюжета и т.д. Реализовать чтобы какой-то спрайт прыгал, например. Или текст имел возможность выбора. Далее, сделать первый шаблон художественной части, например игрового вступления и интегрировать с технической частью, сделать дебаг. Посмотреть чего не хватает - и доделать.



Квест Gabriel Knight: Sins of the Fathers 20th Anniversary Edition, титульный экран


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



работа с движком


Программировать или взять движок


На сегодняшний день, у желающего сделать свой текстовый квест есть на выбор несколько способов:

1) Запрограммировать игру самому, используя язык программирования (С++, С Sharp или другой)

2) Использовать уже готовые движки (например, Ink, Instead)


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



Квест Space Quest


Во втором случае, вот несколько статей, полезных.

1) Движок Ink

Выдержка из Википедии: ink это технологическое решение для создания менюшных игр, которое разработала компания inkle. inkle использовала скрипты на ink при разработке собственных игр, таких как 80 Days.

В марте 2016 года inkle выпустили исходный код ink под свободной лицензией MIT, а до этого момента он уже развивался и использовался 4 года внутри компании. Позже они также опубликовали редактор кода Inky

Ссылка на ВИКИ, там написано, что это вообще такое: https://ifwiki.ru/Ink

Теперь - самое главное, как при помощи такой штуки, что-либо сделать:
Доступный мануал на русском языке по движку Ink. Материал понятен и новичку, все очень наглядно. Рекомендую всем, как минимум прочесть эту статью.

Ссылка на ifhub.club: Как написать текстовую игру на Ink

И тот же самый текст на английском, на всякий случай: Writing web-based interactive fiction with ink



2) движок INSTEAD

Еще один интересный движок INSTEAD - от русского разоаботчика. Отрывок из Википедии: INSTEAD (англ. IN — INterpreter, STEAD — Simple TExt ADventure) — программа-интерпретатор для простых текстографических приключенческих игр. Представляет собой платформу для игр, являющихся смесью визуальной новеллы и текстового квеста. Игры на этом движке пишутся в основном на русском языке.

Ссылка на ВИКИ, там написано, что это вообще такое: INSTEAD

Сайт движка: INSTEAD3 - Интерпретатор текстографических приключений

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



Слева - Earthworm Jim, справа - Simcity 2000


Источник вдохновения по художественной части


Про художественную часть, не буду писать. Это вопрос лично вас как автора, что вам нравится, чем мотивируетесь и интересуетесь. Для вдохновения полезно читать книги, комиксы, слушать музыку, смотреть фильмы и сериалы, играть в видеоигры, наконец. Сейчас в Ютубе полно еще и роликов про целые игровые серии, разборы их геймплея, и про кино и альбомы тоже. Например, хорошая идея может прийти в голову после прослушивания Deep Purple. Или после просмотра моднейшего кинофильма. Типа Мстителей Марвел.



Снова кадр из самого первого Габриэль Найта


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



Уж как бы там ни было,а старт точно надо нажать!


Видеоигры - искусство?


Таким образом, получается, что разработка видеоигры держится на двух составляющих:
1) творческой задачи
2) и технической задачи.

Наверное, отсюда и идут разговоры на тему: а являются ли видеоигры - искусством? Кто-то их считает таковым, а кто-то - нет. Лично я не вижу художественного творчества в технических задачах, но оно есть в художественной части. Художественная часть - и есть искусство. При условии, что оно не коммерческое, конечно, ради денег созданное. А техническая часть - инструмент создания этого искусства.

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

Вот великий Джон Ромеро (один из авторов великого DOOM) считает видеоигры - сверхискусством. Он также считает и программирование тоже искусством. Как и сценарий и создание уровней, в частности.

Живите долго и процветайте!