О текстовых приключениях (обновление движка TDZ)

Когда-то давным-давно я проводил конкурс текстовых игр на ОГ. Точнее, дело было как обычно: появился некто, кто вовсю кричал “давайте-давайте”, а потом, когда народ уже начал что-то делать, благополучно слинял и пришлось браться за дело самому. Тогда же я зарегистрировался на отечественном форуме интерактивной литературы и заинтересовался этим делом. В результате в муках был рожден движок TDZ (о чем была написана статья в дискмаг №6) и создана игра по мотивам моей любимой игры Simon the Sorcerer. Дальше он был благополучно заброшен на много лет, пока летом я о нем не вспомнил и не решил дописать.

За дело я взялся основательно: кроме переписывания и доделывания движка было решено делать удобный редактор. За основу была взята технология Turbogears, то есть веб-фреймворк на Питоне, который позволяет удобно работать с БД. Есть возможность импортировать и экспортировать результаты в игровой файл. Вот примерно как выглядит сейчас интерфейс:

Можно работать с таблицей ключевых слов-“глаголов”, сценами, объектами на сценах и самое главное – действиями. Вся суть движка заключается именно в действиях, так как создаваемые игры, в соответствии с канонами классического квестового жанра, строго детерминированы, то есть результат ваших действий строго определен вашими предыдущими действиями. Интересно заметить, что подобные жанры, по-видимому, оказались менее интересны людям и постепенно вымерли, оставив игрокам обязательный random. Хотя в плане игровых взаимосвязей и причинно-следственных цепочек оставалось огромная неисследованная территория, на которую почему-то никто не ступал ногой. В общем-то, это, наверное, легко объяснить: ИИ еще не придумали, так что продумывать такие цепочки приходится людям, которым в случае очень большого числа действий это оказывается не по зубам. Так и получается, что даже в шедеврах вроде Fallout вы выполняете квест, а NPC моментально забывает, что вы его сделали и пытается всучить вам его снова, повторяя одну и ту же фразу, что бы вы не делали в игровом мире.

Действия в TDZ имеют “условия”, то есть список действий и их необходимых состояний для того, чтобы это действие могло быть выполнено. Кроме того, есть результат действия. Это более интересно. Результат может менять состояния у других действий, а также делать несколько специальных вещей: менять описания у сцен и объектов, менять выходы у сцен, приводить к смерти (это пока не реализовано в редакторе, приходится делать руками в игровом файле:( ). Кроме того, есть еще специальный результат: изменение инвентаря. Вам могут быть добавлены или, наоборот, у вас заберут какие-то предметы. У действия может быть начальное состояние, то есть оно может быть по умолчанию заблокировано, а открываться только каким-то другим действием. Но обычно всех этих сложностей не требуется: достаточно лишь отслеживать (строкой “условий” действия) предыдущие действия, которые “открывают” данное. Сложности начинают возникать, когда может быть несколько одинаковых действий (то есть, например, “открыть холодильник”), приводящие к различным ответам в зависимости от того, были ли сделаны какие-то другие действия (взят из него сыр и/или записка). Но всё это также можно решить, о чем подробно описано в статье на сайте.

Подробнее я постараюсь изложить свои мысли на статье на Хабрахабре.

Игры
С помощью нового редактора я немного подредактировал предыдущую игру, которую теперь назвал Simon the Sorcerer in Textmode World и записал видео:

В качестве саундтрека играют обработанные Джеймсом Вудкоком мелодии из оригинальной игры.

На этом я не успокоился. У нас на сайте был анонсирован традиционный отечественный конкурс ИЛ “КРИЛ-2013” и я решил – надо участвовать! Но как обычно, дедлайн подходил, а ничего не было готово, идея игры, которую я придумал еще летом на даче (смысл такой, что герой оказывается на космическом корабле, в окружении экипажа, но постепенно он понимает, что это всё иллюзия и на самом деле никого вокруг нет, а воображаемых людей он придумал, чтобы отгородиться от жестокой действительности), так и оставалась идеей. Очень мучительно за последние выходные был написан “скелет” игры, который предполагалось, что облагородит Virgil. К сожалению, времени на это не оставалось, так что он успел от себя добавить и исправить лишь несколько фраз, многое так и осталось “заглушками”. Но игра проходима (особенно после моего сегодняшнего исправления:)), видео можно посмотреть здесь:

Сами игры доступны для скачивания со страницы TDZ.

This entry was posted in Программирование, Старые игры. Bookmark the permalink.

Leave a Reply