Как создать игру, ничего не умея. Часть вторая: сцена (уровень), квесты, интерактивные объекты

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

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

image

Интерактивная проза – категория компьютерных игр, в которых игрок может контролировать персонажа посредством текстовых команд. Одной из самых известных игр в этом жанре является 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.

Итог

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

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

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

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

image 169, 18 июня 2021, 09:27

Android 4.1+   Другие версии

Текстовые Квесты — выбирайте жанр (фэнтези, хоррор, постапокалипсис и т.д.), выбирайте квест. Читайте часть текста, выбирайте ответ на заданный вопрос из предложенного списка. В зависимости от ответа, сюжет пойдет по определенному пути. По какому – зависит только от вас. Определите судьбу семьи, купившей домик на берегу озера, или воина, желающего вписаться в мирную жизнь, или романтической особы, ищущей приключений. Игра может быть воспринята просто как увлекательное чтение, а может – как своеобразная РПГ.

ЛучшийTelegram-каналпро технологии(возможно)

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

Возможности приложения Текстовые квесты:

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

Telegram-каналсоздателяТрешбоксапро технологии Чтобы увидеть более ранние версии, войдите на сайт Последнее изменение: 18 июня 2021, 09:27 Материал из MODFAQ.RU — моддинг игр серии S.T.A.L.K.E.R., The Elder Scrolls и Fallout Перейти к: навигация, поиск

Создание сложных квестов и диалогов

Дата публикации

2 октября 2007 (13 лет) [1]

Автор Эдуард Клишин
Связанная статья
Создание типовых квестов

В статье «S.T.A.L.K.E.R. — создание типовых квестов», которая притаилась на страницах «Мастерской» нынешнего выпуска журнала, мы поговорили о разработке несложных, точнее говоря, простейших типовых заданий для игры.

Ну а раз основы изучены, фундамент заложен, можно и нужно двигаться дальше и приступать к освоению неизведанного. Что мы, собственно, сегодня и сделаем. Итак, в настоящей статье речь пойдет о сборке сложных нелинейных квестов для игры и написании многоступенчатых диалогов. Готовы? Защитный костюм и противогаз на месте? Тогда вперед — осваивать бескрайние «модные» просторы…

Дар речи

Итак, решили вы написать оригинальную миссию для игры[2]. С чего начать? Бросаться писать скрипты? Приниматься за конструирование разветвленных диалогов? Или вообще все это отложить в сторону и сделать кое-какие наброски на бумаге. Первым делом, разумеется, нужно сделать кое-какие выкладки — подобрать действующих лиц, придумать крайне интересный и дух захватывающий сюжет, наконец, продумать, как будут выглядеть диалоги между NPC и будут ли они вообще фигурировать в игре. После этого уже можно приступать к чисто технической части — реализации задуманного.

Если кто-то подумал, что работать мы будем в редакторе уровней и по неосторожности его запустил, пусть покинет программу — она нам сегодня не пригодится. Писать миссии и диалоги для S.T.A.L.K.E.R. мы будем исключительно в «Блокноте». Нет, вовсе не оттого, что недолюбливаем официальный инструментарий, а лишь потому, что официальный модмейкерский набор пока не позволяет править ни одиночные карты, ни квесты.

Нелегкое это дело — писать квесты в «Блокноте». С другой стороны, выбирать не приходится: официальный редактор на данный момент не позволяет редактировать и создавать новые квесты.

Краткий брифинг проведен. Время действовать. Начнем, пожалуй, с написания разветвленных диалогов. Запустите «Блокнот» и подгрузите в него файл character_desc_escape.xml, который проживает в директории gamedataconfiggameplay установленной игры (прим. — все архивы «Сталкера» должны быть «распечатаны»). Данный документ, по сути, содержит множество ссылок на определенные ветви диалогов, т.е. фактически служит лишь для объявления или инициализации разговорных блоков, но не более того. Давайте вживим в тело данного файла ссылку на новый диалог с торговцем — Сидоровичем (впрочем, никто не мешает вам создать новых персонажей, например канонического Ктулху, и закрепить за ними определенные диалоги). Для этого выполните следующие действия. Отыщите строку escape_trader_done_blockpost_box (прим. — меню поиска в «Блокноте» активируется при помощи горячих клавиш Ctrl + F, если кто не знает) и сразу же после нее (с новой строки) поместите следующую конструкцию:

escape_trader_igromania

Где escape_trader_igromania — название будущего диалога.

Инициализация произведена. Двигаемся дальше — приступаем к внедрению кода диалога в файл dialogs_escape.xml из каталога gamedataconfiggameplay игры, в котором прописаны практически все игровые тексты в общем виде. Итак. Откройте «Блокнотом» файл dialogs_escape.xml и добавьте в конец документа — перед ключевым словом следующий блок:

escape_dialog.trader_alredy_give_jobtutorial_endescape_trader_igromania01escape_trader_igromania12escape_trader_igromania23escape_trader_igromania3

Давайте рассмотрим структуру данного диалога. В первой строке блока указывается название диалога, соответствующее определенной записи в файле character_desc_escape.xml. В нашем случае — это escape_trader_igromania. Последующие две строки отвечают за так называемое предварительное условие (precondition) и специальную информационную справку. Тег открывает огромный список фраз диалога, а , соответственно, его замыкает. Между ними, как мы уже сказали, размещаются различные реплики в общем виде. Каждая новая запись состоит из трех ключевых строк, содержащих так называемые теги phrase id, text и next. В первой из них указывается специальный идентификационный номер, указывающий на номер реплики. Нумерация начинается с нуля. Т.е., скажем, для первой записи значение параметра phrase id =, для второй — 1 и так далее. Во второй строке между тегами и содержится ключевое слово или «ключворд», которое представляет собой название строки — сам же текст вбивается в документ gamedataconfigtextrusstable_dialogs_escape.xml.

Ну и, наконец, между тегами и помещается номер следующего узла или реплики. Таким образом, зная структуру диалогов, вы можете конструировать блоки, состоящие из 10, 100, 1000 записей. Лимит не установлен.

Файлы диалогов игры можно редактировать и при помощи Microsoft Excel — по сути-то, мы имеем дело с банальными XML-документами. Правда, в таком случае могут возникнуть серьезные трудности при переводе «электронной книги» в XML-формат «Сталкера».

Полдела сделано. Осталось лишь насадить на сформированный каркас полноценные текстовые реплики NPC — не ключевые слова, не ссылки, а саму «начинку» в духе: «Эээй, Меченый…! Водки, водки давай… И побыстрее там, сколько уже можно ждать». Первым делом откройте «Блокнотом» файл stable_dialogs_escape.xml из директории gamedataconfigtextrus с установленной игрой и внедрите в конец документа перед тегом следующую конструкцию:

Слушай, Сидорович, есть у тебя какая-нибудь интересная работенка для меня? Что-нибудь экзотическое. Понимаешь, о чем я? Надоели убийства, надоели ограбления... Скукотища... Ну, Меченый, повеселил ты меня. Давно я такого бреда не слышал. Ну, иди, иди и найди снежного человека, поговори с Ктулху...Ктулху, говоришь?! А может быть, он есть, на самом деле есть. Ты об этом не думал. Сейчас пойду его поищу, ведь должен же он существовать: в зоне про него тоже немало слышал!Ну, иди, иди, только вот будь добр — прихвати для меня по пути несколько дельных вещиц — что найдешь: консервы, части местных животин, ценные артефакты. В долгу не останусь.

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

Квестострой

Диалог написан, а следовательно — первый этап работы по созданию новой миссии выполнен. Движемся дальше и приступаем к написанию самого задания. Вновь откройте текстовым редактором XML-документ dialogs_escape.xml из каталога gamedataconfiggameplay с установленной игрой. Отыщите свой диалог (прим. — если вы действовали согласно нашей инструкции, то проживать он должен в конце документа). И после строки escape_trader_igromania2 поместите следующий код:

igromania_quest

Данная команда приведет к старту квеста с незатейливым названием igromania_quest после появления на экране третьей записи диалога (прим. — помните, что отсчет-то ведется с нуля, а не с 1?). Итак, что же мы имеем на данный момент? Диалог есть, ссылка на квест есть, самого квеста… нету. Надо срочно эту проблему решить. Что ж, приступим. Подгрузите в «Блокнот» файл tasks_escape.xml из каталога gamedataconfiggameplay со «Сталкером» и вставьте в самое начало документа следующую конструкцию:

Типично русский квестПоговорить с Ктулхуui_iconsTotal_storyline_eliminate_gunslingerigromania_quest_doneРаздобыть ценные артефакты и просто полезные в хозяйстве вещицыgreen_location

Escape_Tutorial_Artefact igromania_quest_doneВстретиться со снежным человеком =)

blue_location

Escape_stalker_from_raid igromania_quest_done

Так, давайте посмотрим, что здесь к чему. Параметр, точнее говоря, тег с ключевым словом game_task id отвечает за идентификационный номер (правда, текстовый, а не цифровой) или название миссии. Между тегами проживает заголовок задания на русском, в нашем случае — Типично русский квест. Далее в пределах от элемента до содержится краткий текст квеста на чистейшем русском языке. Между тегами и задается определенный тип маркера или иконки, который будет отображаться на карте местности, в нашем примере — ui_iconsTotal_storyline_eliminate_gunslinger. В теле тега проживает ссылка на определенную запись в файле gamedataconfiggameplayinfo_l01escape.xml с текстом условия. Тег типа

включает в себя информацию о графической подсказке на радаре, а — о квестовом объекте. Вот, в принципе, и все. Что? Зачем мы вживили в тело миссии несколько -блоков? Все просто. Три части задания, три независимых группы — Поговорить с Ктулху, сгонять за артефактами и встретиться со снежным человеком.

С созданием квестовой основы покончено. Следующий шаг — обозначение целей и прописывание экранных подсказок. Передохнули, сил набрались? Тогда снова в бой! В очередной раз вооружитесь «Блокнотом». Откройте файл info_l01escape.xml из папки gamedataconfiggameplay со S.T.A.L.K.E.R., отыщите в нем тег и после него поместите следующую незатейливую конструкцию:

igromania_quest

Если внимательно приглядеться, то несложно обнаружить, что в теле каждого тега типа info_portion id прописывается определенное условие, название которого было ранее задано в файле tasks_escape.xml. Между тегами и указывается название квеста, для которого обозначаются условия, в нашем случае — igromania_quest. Так, с прописыванием условий разобрались.

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

Откройте файл string_table_tasks_escape.xml из директории gamedataconfigtextrus с игрой и скопируйте в начало или конец файла следующий текстовый блок:

Поговори с КтулхуНайди полезные предметы и артефактыВстреться со снежным человеком

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

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

escape_trader_igromania_122468

Из этого примера отчетливо видно, что игрок может сам сделать выбор — к какому звену диалога перейти: 2,4, 6 или 8.

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

После этого встройте в тело конечных «разговорных» блоков ссылки для активации нужных игровых скриптов, скажем:

escape_igromania_17igromania_quest_doneartifacts_and_objgive_gold23

Последние штрихи. Осталось лишь написать скрипты, ответственные за «выписку гонорара» игроку, а также передачу ценного предмета определенному NPC. Откройте файл gamedatascriptsescape_dialog.script при помощи «Блокнота» и вживите перед ключевым словом Trader следующий функциональный блок, точнее говоря — два блока:

function give_gold (first_speaker, second_speaker) dialogs.relocate_money(second_speaker, 84000, "in") end  function artifacts_and_obj (npc, actor) dialogs.relocate_item_section (npc, "object", "out") -- здесь слово object необходимо заменить названием того элемента, который игрок должен передать шефу, например, vodka или conserva. end

Первая функция в приведенном примере отвечает за выдачу золотых игроку в сумме 84000, вторая — за изымание ценных артефактов и вещиц у Меченого.

Ура — квест готов! Отправляемся на поиски канонического Ктулху, снежного человека и полезных в хозяйстве вещиц… Эдуард Клишин

***

Сегодня мы научились писать сложные квесты для «Сталкера» с чистого листа, а также прошли хорошую школу написания диалогов, экранных подсказок и вникли в тонкости редактирования XML-документов игры. На этом тема редактирования S.T.A.L.K.E.R. не закрыта — мы вернемся к ней в одном из ближайших номеров «Игромании». Ну а пока традиционно прощаемся с вами и желаем удачных модостроительских будней. До скорого!

Источники

Категории:

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

Перевал Дятлова: За северным ветром

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

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

Подборка игр

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

(Тык на картинку)

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

Спасибо за ваше потраченное время?

image

Сегодня в выпуске:

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

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

Воспоминания: Выход из комнаты (бесплатно)

Сбежать из помещения

image

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

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

Отель Молчание (бесплатно)

Выжить с зашитым ртом

image

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

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

Отдых за гранью (бесплатно)

Приключение в лесу

image

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

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

Пандемия: Дорога домой (бесплатно)

Постапокалиптический мир

image

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

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

Reminiscent (бесплатно)

На дне глубокой шахты

image

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

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

🤓 Хочешь больше? Подпишись на наш Telegram. … и не забывай читать наш Facebook и Twitter 🍒 imageiPhones.ruИгры для поклонников воображения и визуализации. —> Николай Грицаенко avatar

Николай Грицаенко

@nickgric

Кандидат наук в рваных джинсах. Пишу докторскую на Mac, не выпускаю из рук iPhone, рассказываю про технологии и жизнь.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий