Тридцать восьмое обновление Kickstarter-страницы Torment: Tides of Numenera призвано разъяснить методику разработки одной из ключевых составляющих игры — диалогов. Рассказывает Томас Бикерс:
Некоторое время назад я воспользовался перерывом в своём плотном графике и расспросил Адама Гейне о том, как использовать один из ключевых инструментов, применяемых нами уже довольно длительное время — инструментарий разработки диалогов Obsidian. Этот инструментарий — настоящая находка для людей, не имеющих навыков программирования, таких как я. Он даёт возможность писать диалог и изменять его структуру, синхронизируясь с текущей сборкой на движке Unity. Будучи запущенным одновременно с игрой, инструментарий позволяет вносить изменения в реальном времени, и оценивать их, просто перезапуская диалог с персонажем снова и снова.
Для такой насыщенной диалогами игры как Torment: Tides of Numenera, очень важен хороший инструментарий их разработки. Главной задачей на этапе подготовки к полноценной разработке стала выработка собственных стандартов взаимодействия персонажей и улучшения и без того великолепного инструментария Obsidian. Я хотел бы поделиться с вами основами работы с ним, чтобы вы в дальнейшем понимали, о чём идёт речь.
Начнём с двух основных понятий: узлы и связи. Узлы содержат текст, который вы видите в игре, сама структура диалога состоит из связанных друг с другом узлов.
Да, вот так всё просто. Взгляните на один из игровых диалогов, написанных Колином МакКомбом. Это разговор со сшитым по кусочкам персонажем по имени Джонт, отдельные части диалога с которым содержат небольшие сюжетные сведения.
В начале разговора игрок видит узел диалога персонажа, в котором тот обращается к персонажу игрока (красный) и несколько вариантов ответа, выделенных на схеме голубым.
Сценарист может открывать или закрывать доступ к узлам, основываясь на соответствии персонажа игрока определённым требованиям. Для этого мы используем условные конструкции, которые проверяют значения переменных, таких как наличие у игрока определённого предмета или персонажа в его партии, предыдущих разговоров с этим же персонажем и так далее. С помощью общих признаков мы можем создавать условия практически любой сложности. Например, проверить, прочитал ли персонаж игрока записку со сведениями, которые сможет использовать против данного персонажа, или хорошо ли игрок обошёлся с его отцом в начале игры, или как много игрок знает о Соцветии. Условные конструкции позволяют отследить мотивации персонажа, выраженные двумя строчками с одинаковым текстом, одна из которых будет попыткой солгать, а другая — сказать правду.
Поскольку диалогам в Torment: Tides of Numenera уделяется самое пристальное внимание, именно условные конструкции стали для нас одной из важнейших функций инструментария Obsidian. С их помощью мы можем выбирать из обширной коллекции предварительно написанных сценариев, используя простейшую функцию поиска: проверять значение пола персонажа, его характеристик, навыков и, конечно, Потоков, появившихся в Torment.
Узлы могут быть объединены в накопительный узел. Каждый узел внутри накопительного узла имеет условие, и накопительный узел определяет, какой из внутренних узлов следует отобразить. По этому признаку накопительные узлы делятся на два основных вида: одни отображают лишь первый подходящий под условие узел, второй отображает их все.
Кроме того, для Torment мы создали особый тип накопительных узлов, который назвали дополняющим узлом. Он отображает все подходящие под условие внутренние узлы, но вместо того, чтобы показывать их по одному (требуя после отображения каждого щелчка по надписи «Продолжить»), он выводит их все вместе так, будто они составляют единое целое. Таким образом, содержимое узла может зависеть от навыков персонажа игрока, предметов в его инвентаре и общих признаков, при этом нам не приходится создавать множество узлов с незначительными отличиями.
Вот пример того, как Колин использует дополняющий узел для передачи игроку информации о Джонте в зависимости от значения восприятия его персонажа. Если персонаж игрока соответствует требованиям, текст из узла 1 будет дополнен текстом узла 23.
Ещё один подвид накопительных узлов проверяет, задавал ли персонаж игрока вопрос раньше, и если это так, меняет вопрос и ответ на него. Мы называем такие узлы последовательными. Они используются для того, чтобы оживить диалог, сделать его более правдоподобным, а также указать игроку на те вопросы, которые он уже задавал, более естественным образом.
В примере ниже, игрок в первый раз видит узел 42, а задав вопрос, в ответ получает узел 45. Проходя по диалогу несколько раз, вместо узла 42 он увидит 43, а на свой вопрос получит ответ из узла 46. Развёрнутый ответ узла 45 будет выглядеть странно для того, кто уже услышал его однажды, в то время как 46 выглядит более естественно (кстати, игрок в любое время может заглянуть в запись диалога и увидеть сказанное ими ранее).
Диалоговый инструментарий уже имеет функции последовательных вопросов и не требует создания дополнительных видов узлов, однако такой подход упрощает работу сценаристов, помогая им быстрее писать диалоги. Дополняющие и последовательные узлы улучшили функциональность инструментария Obsidian, за что мы выражаем благодарность нашему талантливому программисту Паоле Риццо [Paola Rizzo].
И последнее, о чём бы я хотел поговорить сегодня — это проверки навыков, также известные в настольной версии Numenera как задачи, или сложные задачи в Torment. В отличие от многих других систем, попытаться выполнить сложную задачу может каждый — наличие соответствующих навыков, предметов или сочетаний внешних факторов увеличивает шанс на успех, но попытаться можно и без них. Сложность задачи может быть изменена в большую или меньшую сторону в зависимости от многих условий: принятых ранее решений, снаряжения, навыков персонажей партии игрока или приложенного Усилия с использованием соответствующего запаса характеристик.
Сценарист присваивает узлу значение «выполнение задачи», устанавливает её сложность, используя некоторое абстрактное значение, которое будет использовано в процессе расчёта баланса, характеристику, запас которой будет израсходован на Усилие, и список навыков, которые облегчат её выполнение. Затем инструментарий отмечает последующие узлы как результаты выполнения задачи: успех, провал, критический успех, критический провал.
Сценарист пишет текст для каждого узла и определяет результаты: переход к следующему этапу выполнения задания (или его выполнение), установка глобальной переменной, уникальная награда за критический успех или получение ран за критический провал (в текущем варианте этого диалога игра слабо реагирует на критические броски, однако это может измениться в более поздних версиях). Кстати, провалы и критические провалы не всегда приводят к плохим последствиям, иногда их следствием становятся неожиданные развязки, меняющие направление развития ситуации.
Что мешает игроку пытаться выполнить задачу до тех пор, пока у него не получится? Каждый узел наделяется параметром «живучести». Многие узлы, в том числе и с задачами, имеют значение живучести, равное «единожды», то есть появляются всего лишь раз. Разумеется, существуют такие задачи, для которых параметр живучести не определён, поэтому игрок может пытаться выполнить их до тех пор, пока не преуспеет. Тем не менее, если попытка выполнения задачи была уже однажды провалена, вы должны будете заплатить стоимость повторной попытки (то есть приложить большее Усилие).
Диалог с Джонтом довольно обычен для столь малозначимого персонажа, на примере которого мы продемонстрировали основные концепции диалоговой системы. Сами диалоги могут разниться от примитивных кличей до очень сложных, состоящих из сотен узлов. Если вам интересно, в следующем обновлении мы подробнее расскажем о разработке диалогов, инструментах и процессах. И, кстати, вот вам ещё одна схема диалога, написанного одним из моих коллег:
И в заключение, концептуальный рисунок подводного рынка:
Ответов нет, потому что многим и написать что-то лучше "хм, круто зделали, батя одобрил. спасибо за материал" и нечего. Потому что только один человек на сайте более-менее варится в игродельческом котле (второй походу уже сварился), остальные просто сопереживающие.
Ну а по делу: "круто зделали". Все. Никто с настольной Нуменерой не знаком (ибо пдфки делать Куку труднее, чем печатный вариант). А на счет нод: я так думал, что нечто похожее итак уже использовали. Хотя оно может и по схемам схоже, но работает проще.
Да какая разница? Варится-не варится! Даже чисто теоретически это интересно! Вот у меня в детстве была книга-игра "Странник, изгоняющий мрак". Такая прикольная вещь! Кубин, листок бумаги и вперёд! Остров Гохан и 300 страниц, описывающих путешествие по этому острову. Эдакий Скайрим в виде книги! ))) Вот богатые диалоги в игре - это же здорово! Тем более, чем они реалистичнее, тем лучше.
Мне интересна игра, а её разработка совершенно нет. Так что думаю вы не правы.
И вы не один такой. Я совершенно безразличен не только к разработке игр, но и к биографии разработчиков, статьям о создании подземелий, водопадных диалогов и прочему. Я даже концепт-документ о Planescape: Torment не читал. Он, наверное, очень интересный, но мне кажется, что намного интереснее поиграть в другую игру, чем читать о том, какие сложности были у младшего помощника главного дизайнера во время создания игры.
По теме: статья о том, как чуваки используют конструкцию if-else для создания интересных диалогов.
Было бы здорово чисто теоретически создать своё описание (легенду так сказать) какой-нибудь локации и диалоги персонажей, на ней находящихся. Просто чисто теоретически. Типа "Как бы вы описали такое место как бар "Горящий труп" и какие диалоги создали бы у персонажей, там находящихся?" )))
Дьявол в мелочах. Эту конструкцию используют во всех диалогах, но диалоговые системы от этого одинаковыми не становятся.
И об этих мелочах - такая здоровенная статья с огромными картинками. Суть статьи заключается вот в чём: "чем больше условий типа if-else в диалогах, тем диалоги лучше, и в нашей игре даже с камнем в лесу можно поговорить 73 способами, какие же мы крутые!". Ежели вы, m00n1ight, хотите содержательных комментов к такой статье (или, тем более, к бессмысленной и беспощадной простыне о пещерах в Скайриме), то вам нужен форум любителей разработки ролевых игр. Даже специально зарегистрировавшийся ради этого Астролог не оставил коммента о содержании статьи. Наверное, потому, что такое вообще мало кого волнует.
Даже специально зарегистрировавшийся ради этого Астролог не оставил коммента о содержании статьи. Наверное, потому, что такое вообще мало кого волнует.
Папрашу неприличными словами не выражатца моё имя не поминать всуе! Вот щас перечитаю и что-нибудь скажу. И вы бы тоже самое сделали. всё равно сидите и брызжите слюной, так хоть делаете это по-делу.
про живучесть узлов не совсем понятно - это чтож один раз не получилось - загружай сейф, так что ли? )))
Ежели вы, m00n1ight, хотите содержательных комментов к такой статье (или, тем более, к бессмысленной и беспощадной простыне о пещерах в Скайриме), то вам нужен форум любителей разработки ролевых игр.
Одно не исключает другого, и этот форум отнюдь не состоит из вас с Товарищем.
один человек на сайте более-менее варится в игродельческом котле
А чего говорить-то. Я такой же штукой пользовался, когда диалоги для своей визуальной новеллы писал. Могу поделиться проблемами, связанными с написанием текстов и интеграцией их в непосредственный билд, когда ты криворукий ламер неопытный разработчик. Но, серьёзно -
ЦитатаUnknown ()
Я совершенно безразличен не только к разработке игр
...И, что важнее...
Цитатаm00n1ight ()
Дьявол в мелочах. Эту конструкцию используют во всех диалогах, но диалоговые системы от этого одинаковыми не становятся.
Несколько занудно, но в целом небезынтересно. Лично я после прочтения с немного большим интересом стал ждать новый Torment, ибо увидел основательный, с моей дилетантской точки зрения, подход к работе над одним из важнейших аспектов игры.
Лично я после прочтения с немного большим интересом стал ждать новый Torment, ибо увидел основательный, с моей дилетантской точки зрения, подход к работе над одним из важнейших аспектов игры.
Именно.
К вопросу о «да здесь банальные иф-элс, развели тут щи на щщах». На банальной иф-элс талантливый сценарист может сделать ого-го, чему есть множество примеров, но здесь мы видим не то что бы совсем одну иф-элс. Здесь есть массивы и селекторы разных видов, которые позволяют не просто выбирать из массива отдельные записи, но и выбирать несколько, строить друг за другом и склеивать их, составляя из кусочков целые фразы, что только обещает Левин в своей новой RPG.
У меня не только захватывает дух от мысли, что можно сделать на такой, довольно продвинутой диалоговой платформе, но прочитав эту статью, я прохожу игры, и невольно отмечаю в диалоговых системах (особенно применяемых в играх Обсидиан) такие же приёмы, и вижу, как эволюционируют их диалоги от игры к игре. Это совершенно новый взгляд, новый слой так называемого «фана», который, возможно, открылся только у меня, но он есть.
Как видите, уважаемый Неизвестный, написать есть чего, если очень захотеть, и я могу написать многое к самым разным новостям, однако новости, которые в гордом одиночестве комментирует один лишь создатель сайта, выглядят ещё более жалко, чем новости без комментариев вообще.
У меня не только захватывает дух от мысли, что можно сделать на такой, довольно продвинутой диалоговой платформе
Меня вот больше впечатлила связка с рабочим билдом. Т. е., переставил элементы - сразу же отразилось во внутри-игровом диалоге. В Draft'е такой штуке нет...
массивы и селекторы разных видов, которые позволяют не просто выбирать из массива отдельные записи, но и выбирать несколько, строить друг за другом и склеивать их, составляя из кусочков целые фразы, что только обещает Левин в своей новой RPG
Как бы вам сказать... Это тоже всё if-else.
Цитатаm00n1ight ()
На банальной иф-элс талантливый сценарист может сделать ого-го
То есть, все эти конструкции погоды на самом деле не делают, потому что все эти программерские приблуды - всего лишь инструмент для создания игры. Всё решает сценарий. Поэтому какая разница, с помощью чего игру создавали - оценивать я (да и вы тоже) будете её не за это. Хотя тем, кому нужен ещё один слой фана, такие статьи нужны.
Цитатаm00n1ight ()
написать есть чего, если очень захотеть, и я могу написать многое к самым разным новостям, однако новости, которые в гордом одиночестве комментирует один лишь создатель сайта, выглядят ещё более жалко, чем новости без комментариев вообще
Извините за грубость, но ещё более жалко выгдядит создатель сайта, который при каждом удобном случае ноет о том, что никто ничего не комментирует, а сам молчит, как партизан, даже когда новость "дух захватывает". Видите ли, все конструктивное обсуждение содержания статьи началось потому, что пришёл я и сказал "да тухляк, обсуждать нечего". И тут внезапно оказалось, что есть небезразличные люди, которым есть что мне возразить, и что на самом деле, если собрать в кучу много условий if-else, то в других играх получится бездушный набор условий if-else, а в замечательной обсуждаемой игре получится что-то особенное и душевное, что картинка с ветвями диалога может у кого-то вызывать умиление и радость, хотя, казалось бы, блок-схемы на информатике классе этак в пятом проходят, и так далее.
Поэтому, m00n1ight, я предлагаю вам универсальное решение большинства проблем сайта. В следующий раз, когда у вас зачешутся руки написать на форуме о том, что у нас в темах с новостями как-то пустовато и в комментариях попахивает трупным разложением, лучше откройте самую на ваш взгляд интересную из необсуждаемых тем и напишите там всё, что об этом думаете. И, глядишь, люди потянутся и тоже выскажут своё мнение. Как показывает практика, для начала разговора очень часто не хватает чьего-то мнения, за которое зацепятся другие люди, и обуждение этой новости тому подтверждение. И к чёрту эти комплексы - "я буду выглядеть жалко". Пустые темы с уникальными для рускоязычного сегмента интернета статьями выглядят вообще плачевно. Не нравятся пустые темы? Пишите сами. Problem solved.
А любой текст, состоит из букв. Следовательно, все тексты одинаковы.
ЦитатаUnknown ()
Извините за грубость, но ещё более жалко выгдядит создатель сайта, который при каждом удобном случае ноет о том, что никто ничего не комментирует, а сам молчит, как партизан, даже когда новость "дух захватывает".
Не извиняю. Ибо мы уже это проходили, и я не буду тыкать вас очередной раз тыкать носом в описание сайта, чтобы вы потом не хлопали демонстративно дверью и не начинали рассказывать, какой я противный и жизни от меня нет никакой. Хотя почитать бы вам его не мешало, коль скоро вы до сих пор не знаете, кому оно адресовано.
Далее, рассказывать о том, что кто-то должен что-то писать на форуме будете после того, как проведёте года эдак три, тратя на этот сайт от 4 до 14 часов ежедневного, не самого простого труда. Посмотрим тогда, будут ли у вас силы и желание строчить десятки комментов.
Видите ли, вот эти самые сообщения за нумером 1, содержащие текст новости — это тоже сообщения на форуме (а ещё это сообщение за номером один существует здесь только потому, что эта тема показалась мне интересной). То есть создав эту тему я УЖЕ, по идее, выполнил поставленные условия. Однако проблем, как ни странно, не солвед.
Я вам больше скажу: у меня, как у человека размещающего большую часть материалов сайта, всегда есть выбор — сделать потенциально интересную новость или настрочить своё никому не нужное мнение. Так вот первое за меня (особенно это касается именно новостей) здесь не сделает никто, зато мнение может оставить кто угодно.
А любой текст, состоит из букв. Следовательно, все тексты одинаковы.
Я не знаю, где вы такое прочитали, но я такого не говорил. С другой стороны, с моей точки зрения радоваться из-за диалоговой системы - это как радоваться, что скоро напечатают хорошую книгу и в ней - подумать только! - будут использовать буквы. Главное же - содержание, сами сказали.
Цитатаm00n1ight ()
я не буду тыкать вас очередной раз тыкать носом в описание сайта, чтобы вы потом не хлопали демонстративно дверью и не начинали рассказывать, какой я противный и жизни от меня нет никакой
Вот так вот и работают некоторые СМИ. Скажут - и не отвертишься! Покажите мне на мои "демонстративные хлопанья дверью", будьте любезны. И кстати, чем мне поможет описание сайта? Я его специально прочитал и не понял, какое отношение оно имеет к беседе.
Цитатаm00n1ight ()
рассказывать о том, что кто-то должен
Покажите мне, где я говорил "должен". Ей-богу, вы уже который раз говорите с какой-то воображаемой мной, который говорит вам не то, что я написал.
Цитатаm00n1ight ()
я УЖЕ, по идее, дал предпосылку для обсуждения
Тут я могу предположить, что местные новости ориентируются на людей поумнее, а такие люди вряд ли будут оставлять тупые комменты в духе "вау, круто, уже жду игру, будет шедевр!" Чтобы прокомментировать умную новость, нужно вдумчиво её прочитать, понять, определиться со своим мнением, выразить всё в словах и написать. Долго! Примерно то, чем мы с вами сейчас занимаемся. У меня подобные беседы очень много времени отнимают и мне это очень не нравится. То же и с комментами: у меня, например, по рабочим дням вечерами не больше 4-6 часов времени в лучшем случае, как и у любого другого рабочего человека (и это время уходит не только на развлечения, но и на дела поважнее), а рабочих дней у меня вообще шесть, и тратить 15-30 минут на чтение и внимательное написание одного коммента я очень не хочу. Думаю, и не только я. У других людей есть жизнь помимо сайта core-rpg.net. И, что удивительно, меня отсутствие комментариев вполне устраивает. А вас - нет. То есть, вы видите проблему и у вас есть возможность её хоть как-то исправить самому, но вместо этого жалуетесь. Я этого совсем не понимаю. Не вижу логики. Неужто это так сложно - разрешить наконец-то эти проблемы и стать чутоку счастливее?
С другой стороны, с моей точки зрения радоваться из-за диалоговой системы - это как радоваться, что скоро напечатают хорошую книгу и в ней - подумать только! - будут использовать буквы. Главное же - содержание, сами сказали.
Мы просто по-разному смотрим на вещи. То, что диалоговая система будет, мягко говоря, посложнее всяких там Mass Effect и прочих популярных калечных недо-RPG с диалоговыми колёсами, уже радует. Фундамент, понимаете ли.
ЦитатаUnknown ()
Покажите мне на мои "демонстративные хлопанья дверью", будьте любезны.
Мне вот искать лень, честно. Если вы не помните своих заявлений в духе «мне неприятно с вами общаться и я ушёл», тем лучше для вас.
ЦитатаUnknown ()
И кстати, чем мне поможет описание сайта?
В прошлый раз у нас был «конфликт» на эту тему, когда вы заявили, что вас не интересуют биографии разработчиков, процессы разработки и прочее, под интервью с Боярским. Я вам тогда доходчиво, как мне казалось, пояснил, что сайт сей существует для тех, кому это интересно. То есть не отдельные игры, а жанр, его история и направления развития. Об этом здесь статьи и новости. А вы мне сегодня объясняете, что я форум сделал для кого-то другого.
Цитата
Мы всегда рады людям, которых интересует жанр как таковой, его прошлое, настоящее и будущее, пути развития и тенденции.
Может это вы ошиблись?
ЦитатаUnknown ()
Покажите мне, где я говорил "должен".
То есть отсутствие слова «должен», мешает его подразумевать? Не вы ли целых два (!) абзаца поясняли, что эдакий молчун (настрочивший больше всех сообщений на сайте, но это не важно) молчит, а должен бы по идее писать, тогда и люди подтянутся? Ну, ок.
ЦитатаUnknown ()
Я этого совсем не понимаю. Не вижу логики.
А вы перестаньте зацикливаться на себе и подумайте о других. Если у вас нет времени писать комментарии, то откуда оно у меня? При том, что — вы не поверите — у меня тоже есть работа и дела, и я этому сайту и без того уделяю времени несоразмерно больше вас, выдавая недельную норму переводчика за один день. Откуда время у меня? И тем не менее (16к сообщений) я его нахожу.