[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-549065259", "adfox_url": "//ads.adfox.ru/228129/getCode?p1=bxeub&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid21=&puid22=&puid31=&puid32=&fmt=1&pr=" } } ]
{ "author_name": "Дмитрий Мучкин", "author_type": "self", "tags": ["\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 1, "likes": 19, "favorites": 20, "is_advertisement": false, "section_name": "gamedev", "id": "7990" }
Дмитрий Мучкин
1 687
Gamedev

Муравей и голубь: подходы к созданию процедурного нарратива

Как сгенерировать историю игры.

Поделиться

В избранное

В избранном

Сотрудники Университета Северной Каролины Рохелио Кардона-Ривера (Rogelio Cardona-Rivera) и Крис Мартенс (Chris Martens) выступили на конференции GDC, где рассказали о двух способах создать процедурный нарратив.

DTF публикует перевод лекции.

История

На заре индустрии многие игры были вдохновлены идеей «Голодека» из Star Trek — симуляцией реальности, которая будет реагировать на импровизацию пользователя. Ранние игры-приключения, такие как Hobbit 1983 года, старались приблизиться к этому с помощью вида от первого лица и предоставления игроку выбора, но в них было слишком мало возможностей для импровизации.

Затем разработчики увлеклись идеей иммерсивного геймплея, в основе которого лежала сложная система симуляции. Сюжет в ней появлялся в результате действий игрока. Dwarf Fortress и Rogue не навязывали нарративные арки. В них спонтанно возникали ситуации, из которых складывался сюжет, индивидуальный для каждого игрока.

Определение

Создание процедурного нарратива — это автоматический процесс, с течением времени генерирующий не определённый заранее сюжет. Мы расскажем, как добавить в игру систему создания процедурного нарратива и о двух подходах к вопросу — симуляционному (simulation-centric) и сюжетному (plot-centric), а также рассмотрим основные задачи и перспективы процедурной генерации историй.

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

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

Симуляционный подход

Основная идея такова:

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

При этом подходе дизайнер загружает в генератор историй (story generator) правила взаимодействия (interaction rules) и исходное состояние (initial state). Так создаётся интерактивный нарратив, с которым может взаимодействовать игрок.

Правила взаимодействия — это переходы между ситуациями. «Муравей хочет пить» превращается в «муравей в воде». Можно обозначить его как сюжетное событие: «муравей падает в ручей». Чтобы привести всё это к формальному виду, нужно вспомнить логические формы двух ситуаций и дать название событию.

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

Таков один из способов имплементации генеративности: обобщение правил взаимодействия между персонажами и объектами. Ещё один вариант — добавление вариативности. Скажем, если персонаж находится рядом с ручьём и хочет пить, он может попытаться попить и упасть или удержать равновесие.

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

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

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

После начала симуляции система начинает случайным образом исследовать пространство состояний (state space). Например, муравей может подойти к ручью, а голубь пролететь рядом: персонажи окажутся в одной локации, и между ними может произойти взаимодействие. Или сначала может переместиться голубь, а потом уже муравей, что приведёт к тому же состоянию.

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

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

В качестве примеров игр с процедурным нарративом с упором на симуляцию можно указать Prom Week и Blood & Laurels. В Prom Week игрок может контролировать любого персонажа (единовременно — только одного), Blood & Laurels похожа на игры, основанные на выборе, однако все варианты, предоставляемые игроку, генерируются в процессе симуляции по правилам взаимодействия.

Сюжетный подход

Строится на основе симуляционного подхода, в нём тоже нужно описать исходное состояние и правила взаимодействия. Но также требуется план нарратива (narrative agenda), описывающий желаемую траекторию пути через пространство состояний.

​К генератору историй добавляется сюжетный посредник (story mediator), который будет следить за действиями игрока и направлять его так, чтобы он следовал заранее заданной истории.

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

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

Чем больше условий будет в плане нарратива, тем чётче траектория сюжета в пространстве состояний. Это подводит нас к первой технике, используемой в сюжетном подходе, — расставление акцентов (beats).

Вторая техника сюжетного подхода — чередование (turn-taking). Его можно объяснить с помощью аналогии из Dungeons and Dragons: вы выполняете действие, вам отвечает мастер, вы выполняете другое действие, вам снова отвечают — игрок и мастер по очереди двигают сюжет вперёд. Начиная с исходного положения, игрок делает шаг в пространстве состояний, а следующий шаг делает система, отвечая на его действия.

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

Есть и третья опция — изменение плана (re-planning), но для неё необходим генератор истории. Когда игрок пытается отклониться от плана нарратива, система запрашивает у генератора дополнительные сюжетные события, которые вернут нарратив обратно на намеченную траекторию.

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

Как примеры игр с процедурным нарративом, созданным согласно сюжетному подходу, можно указать Facade и Base Case. В Facade игрок взаимодействует с окружением свободно, но непременно попадает на расставленные разработчиками акценты. От его действий зависит только то, когда случится кульминация сюжета и какой она будет.

В Base Case система процедурно генерирует окружение в ответ на действия игрока, направляя историю ближе к намеченной траектории.

Задачи

Одна из главных задач академического сообщества, изучающего создание процедурного нарратива, — это переход от сюжетного подхода к дискурсному. Её хорошо иллюстрирует фраза Эмили Шорт (Emily Short): «Ни к чему симулировать часть мира, которую не увидят игроки».

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

Ещё одна важная задача для нас — масштабирование. Мы ищем пути для масштабирования наших систем таким образом, чтобы они были способны генерировать более объёмные сюжеты. Пока что они не могут создавать большие истории на основе небольшого количества правил.

Возможности

Как нам кажется, поцедурные нарративы открывают большие перспективы в области интерактивных историй. Так, Йеспер Йуул (Jesper Juul) рассуждает об идее продвижения (progression) против появления (emergence). В некоторых играх сюжет прописан заранее, и он раскрывается при выполнении определённых действий (как в Secret of Monkey Island), а в некоторых нарратив появляется из самих действий пользователя (как в Civilization).

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

#геймдизайн

Популярные материалы
Показать еще
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Узнавайте первым важные новости

Подписаться