Игра в голове и диалоги мечты

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

Помню, в далёком детстве, когда я ещё был фидошным сис.опом и держал в кладовке свою собственную ноду BBS, довелось мне залипнуть в Fallot 2. И затянуло меня туда настолько, что под монотонное шипение модема Acorp 33600 бывало досиживал до 4-5 часов утра. Позднее было уже нельзя, потому что в 6:00 родители просыпались на работу и могли застать мои ночные посиделки.

Игра в голове и диалоги мечты

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

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

В итоге я сдался! Делаю story-driven action-adventure иммёрсив-сим RPG-шутер от первого/третьего, пятого-десятого лица с корОванами и охраной горы. Ну а коль скоро задача предстоит, как вы сами понимаете, не из лёгких, то и возникла потребность в дополнительном инструментарии, при помощи которого всё это дело можно провернуть.

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

С первого наскока в тему сюжетных игр мне показалось, что для создания чего-то похожего на Dysco Elysium или Planescape: Tornment в первую очередь нужен дополнительный инструментарий, который бы позволял писать многослойные, разветвлённые сценарии, которые бы учитывали текущую игровую ситуацию, включая окружение, наличие тех или иных предметов и знаний у игрока, уровня доверия к нему у NPC и прочего (возможно, кастомного) набора параметров.

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

Есть, конечно, вот такая штука из бесплатного для движка Unreal Engine. Есть ещё и вот такая штука из платного для того же UE4 (и, кажется ещё и для Unity), которая позволяет создавать параметрический граф диалогов. Но при беглом осмотре у меня оставалось ощущение, что весь масштаб задуманного мне всё-равно не удастся впихнуть в рамки существующего инструментария.

Вы уже догадались? Да, всё верно! Разумеется, я принялся за создание своего велосипеда и спешу с вами поделиться лучами добра, бликами расходящимися от глянцевой поверхности моих новеньких костылей!

Игра в голове и диалоги мечты

Может быть те из вас, кто имеет отношение к web-разработке, узнает на скрине выше стандартную админку популярного python-фреймворка Django? Да, я делаю web-версию редактора своего игрового мира. Это очень удобно тем, что работать над сценарием игры можно не привязываясь к рабочему месту. Например, отвожу сына на футбол, и у меня есть целых 2 часа, чтобы поработать над сценарием сидя в машине. Также можно подключить в систему нескольких пользователей, и вот уже и жена трудится над отдельной главой, а наёмный фрилансер (ага - размечтался!) работает в отдельной сессии над переводом уже готовых диалогов.

Структуру базы данных я разрабатывал, держа в голове только что пройденную Dishonored 2. У меня также запланированы сюжетные Главы, в рамках одной Главы предусмотрены Миссии с их Альтернативными вариантами развития. Миссии также могут делиться на основные сюжетные и второстепенные (необязательные сайд-квесты).

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

Для работы над диалогами пришлось вкручивать дополнительно графовый редактор, потому как технически не подготовленному сценаристу довольно трудно мыслить в рамках таблично-реляционной структуры. Я бы ещё кое-как смог что-то осилить с глубиной вложенности до 5, но вот супругу уже точно можно было бы досрочно отправлять на пенсию.

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

Заранее благодарю за любой конструктивный комментарий! Мы - Инди! С нами (_____заполнить на своё усмотрение_____)!!!

3636
29 комментариев

По теме сказать нечего, но Косточка говорит поставить лайк за Сулика. Удачи, автор!

6
Ответить

Я тоже просто молчаливо лайкну в ответ.

1
Ответить

А если посмотреть на Ink?
https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md
Писать на нём диалоги - одно удовольствие, и ничего кроме текстового редактора для этого не требуется.

3
Ответить

Спасибо за ссылку. Бегло посмотрел. Но это, конечно, совсем не то... Линейные диалоги-то, конечно, можно, но вот контекстно-зависимые параметрические, которые были бы завязаны на миссии и общее текущее состояние игрового мира - уже никак. ...Или я опять недоглядел.

Ответить

Привет дружище, мы с тобой как то обсуждали ландшафт и его реализацию. Мне тоже предстоит влезть в эту рутинную разработку, как взаимодействие с неписями. Фразы "многослойные, разветвлённые сценарии" и "система должна быть контекстно-зависимой" меня сразу кидают в страх и трепет. Поэтому я свою думу отправил к социальной психологии. Суть следующая. Как правило люди действуют стереотипно, т.е. каждый раз они основываясь на своем положительном опыте в делах и общении, повторяют его и закрепляют. Даже когда чел. делает что то сложное, на самом деле для него это стереотипно. Мышление всегда включается при трудности и необходимости решения задачи. Поэтому большинство неписей должны себя так же вести. Дом-работа-дом.(вписать свое). И в игре они не обязаны с тобой общаться от души, все стандартно и как вчера, как с другим. Алгоритм такой не сложный, диалогов стандартных можно набрать в соседнем с твоим домом магазине или в общ. заведении, или на работе в реале. А вот когда у человекам возникает нестандартная ситуация, он как правило действует по-другому. Вот эти особенные алгоритмы и нужно прорабатывать. Помимо этого я еще хочу отказаться от диалогов и выборов. Пока не знаю как. Потому что это долго в разработке и для локализации затруднено будет дорого. А многих вообще бесит. И буду просто упрощать, если оказался в ближней локации непися, то просто получаешь инфу, если повел себя дружественно, еще больше инфы. И так же можно запустить какие то события. А вот для босов надо делать что то более серьезное и продуманное, возможно с причинно-следственной цепочкой. Но тоже не думаю что надо усложнять. Вообщем алгоритм примерно следующий: cтатика, запускающий механизм, отработка, статика с изменениями. Потом более подробно напишу, когда дойду до этого. Но у каждого свой путь, это естественно.
Главное не бросай свою задумку))

1
Ответить

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

1
Ответить

Привет, Владислав! Да-да, помню по ландшафту. Тоже с этим провозился, тоже кое-чего попробовал в плане бесшовности и бесконечности. В итоге пришел к несколько иному выводу: просто сделал планету, на которую можно влетать в любой точке и каждый раз на новый кусок ландшафта, но сам кусок не бесконечный, а вполне себе огороженный невидимыми стенами (леса, скалы, заборы). Сколько не читал/смотрел про открытые миры - везде говорят об одном и том же: игроку там просто нечего делать. Поэтому решил для себя, что лучше создать иллюзию бесконечности, чем саму фактическую бесконечность.
Ну а по системе социального поведения вот что могу сказать: люди хотят играть в игры для того, чтобы отвлечься от опостылевшего социума. Если ещё и в игре копировать всё из реального мира, то такая игра будет скучной. Создавая сюжетную игру, нужно внедрять в неё поляризованных персонажей. Они все должны быть с отклонениями (и в хорошем и в плохом смысле). Есть интересная книга по этому поводу у Роберта Макки - классика для голливудских сценаристов. Стараюсь придерживаться его идеологии.

1
Ответить