ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Принципы и алгоритмы сюжетной генерации | страница 12 |
|
|
|
Канал Игры Мечты: «Принципы и алгоритмы сюжетной генерации» |
|
Нужны ли такие сгенерированные сюжеты? |
Да, всяко лучше, чем тупо бабло сколачивать - всегда есть чем заняться. |
|
8% |
[ 2 ] |
Да, но только если хорошенько поработать над БД ситуаций и алгоритмами генерации |
|
73% |
[ 17 ] |
Будет нелишне, хотя и не обязательно |
|
13% |
[ 3 ] |
Нет, всё равно люди лучше придумают чем машина |
|
4% |
[ 1 ] |
Нет, лучше усилия в другое русло направить (графику, например улучшить) |
|
0% |
[ 0 ] |
Традиционный "пофиг". |
|
0% |
[ 0 ] |
|
Всего проголосовало : 23 |
|
|
|
Jerry Rezet 581 EGP
Рейтинг канала: 5(113) Репутация: 86 Сообщения: 3365 Откуда: Санкт-Петербург. Зарегистрирован: 01.04.2005 |
|
Minx : |
Если рассматривать сюжет в классическом понимании (так, как его понимают в театре, кино, литературе, ..), то это совсем не эмуляция, а законы и правила его построения.
|
В данном случае под термином "эмуляция" имеется ввиду ровно такое приближение, чтобы оно не занимало много ресурсов и выглядело при этом достаточно убедительно. Этого, конечно, может быть мало, но этого достаточно (пока?). Просто если мы будем заморачиваться всякими "семантическими марковскими цепями с неконформным отображением в эквидалистическое пространство фазовых вероятностей" - это будет точно слишком заумно Только в этом смысле. В остальном ты, конечно же, прав.
_________________ - Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c] |
|
|
Gladius 52 EGP
Рейтинг канала: 1(9) Репутация: 0 Сообщения: 124 Откуда: Санкт-Петербург Зарегистрирован: 18.12.2007 |
|
Я вот схемку тут маленькую набросал по поводу принципов генерации...
Схемка простая. Если хотим, чтобы был сюжет, но не было "рельсов", то надо сюжет задавать точечно, в виде пунктирной линии. А путь между точками пусть игрок ищет сам.
Примерчик простенький.
Есть река, мост, лодка, игрок, враг. Враг на одной стороне реки, игрок на другой. Игроку надо сразиться с врагом.
Если сюжет линеен, то чтобы добраться до супостата нужно пройти по мосту и никак иначе.
Если у игрока есть выбор, то он может пойти по мосту, может переплыть реку на лодке, а может и вплавь.
Игровая механика должна позволять игроку этот выбор, иначе механика не игровая. Книжная, театральная, киношная, но не игровая.
Как-то так...
_________________ Спасибо за внимание. |
|
|
mc_ 408 EGP
Рейтинг канала: 1(8) Репутация: 41 Сообщения: 2841
Зарегистрирован: 09.04.2010 |
|
Еще мысль: AI групп.
Допустим, есть шахта на астероиде. Время от времени туда нужно привозить запчасти (по типу 20 тяжмаш, 10 точмаш, 5 электроники), чтобы шахта могла добыть руду (или что она там добывает). Руду надо дотащить до обитаемых мест и продать - генерится транспортник.
На транспорт (как и на саму шахту) могут напасть пираты - тогда скрипт "директор шахты" приобретает оборонительные турели или нанимает истребители.
А если безопасность обеспечена, можно начать гадить конкурентам, лучше чужими руками
Квесты идут на "биржу труда" и подхватываются игроком или нпц.
Последний раз редактировалось: mc_ (05:11 27-05-2012), всего редактировалось 1 раз |
|
|
WandererX 77 EGP
Рейтинг канала: 1(6) Репутация: 2 Сообщения: 243
Зарегистрирован: 05.12.2007 |
|
Minx : |
Если у вас он получается разнотипным первые десять раз - то это проблема вашего генератора.
|
Генератор у меня к в Элите (так формируются описания планет)
События разделены по уровню глобальности:
1. Частный (Взаимодействие НПС на станциях и в космосе)
2. Локальный (Отдельные планеты в системе)
3. Государственный (Внутренние дела государств)
4. Фракционный (Сюжеты связанные с отношением фракций)
5. Эпические (всякие властелины зла и т.п...)
Для каждого случая свой набор набор стандартных фраз. Проблема в том, что частных событий в игре предполагается до 100 на систему и текст в этих событиях начинает приедаться со временем. К эпическим сюжетам такой претензии нет, такие сюжеты очень редко появляются в игре.
|
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Gladius : |
Игроку надо сразиться с врагом.
|
То, что игроку надо сразиться с врагом - это обязательность действия, что означает линейность. В отличие от этого может быть несколько вариантов победы - победить, договорится, накопить много очков/денег, прокачаться так, что он испугается и пр..
Любой генератор имеет некоторую степень линейности/обязательности, и некоторую степень разнообразия (вариантов решения проблемы). Если взять ту же 3ю элиту, то в ней последовательность событий в галактике линейна, а решения, которые может принимать игрок - обладают разнообразием, так как можно летать по разным траекториям/системам, покупать разные корабли и оборудование, выполнять миссии или нет и пр..
Полностью разнообразный сюжет сделать не получится. Т.к. в игре должна быть цель (без цели что и зачем делать - не понятно) и результаты различных игр должны быть сравниваемы по каким-либо критериям (иначе какой смысл игры?).
mc_ : |
Допустим, есть шахта на астероиде. Время от времени туда нужно привозить запчасти (по типу 20 тяжмаш, 10 точмаш, 5 электроники), чтобы шахта могла добыть руду (или что она там добывает). Руду надо дотащить до обитаемых мест и продать - генерится транспортник.
На транспорт (как и на саму шахту) могут напасть пираты - тогда скрипт "директор шахты" приобретает оборонительные турели или нанимает истребители.
А если безопасность обеспечена, можно начать гадить конкурентам, лучше чужими руками
|
У вас в этом примере все пишется ручками. Человек-сюжетописатель создает шахту и принцип её функционирования. Этот же человек понимает, что для продажи нужен транспортник, и прописывает его (но не генератор). Он же понимает, что на транспорт могут напасть пираты, и ручками прописывает данную фичу. Что же тут делает генератор??
WandererX : |
Генератор у меня к в Элите (так формируются описания планет)
|
У вас - это где? Он уже где-то реализован в корпусе?
WandererX : |
Для каждого случая свой набор набор стандартных фраз.
|
Ту же фразу можно собирать из составляющих. См. например отсюда.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
mc_ 408 EGP
Рейтинг канала: 1(8) Репутация: 41 Сообщения: 2841
Зарегистрирован: 09.04.2010 |
|
Minx : |
У вас в этом примере все пишется ручками. Человек-сюжетописатель создает шахту и принцип её функционирования...
|
Отнюдь.
Шахта должна думать сама: налетели праты - апгрейдим защиту и т.д. То есть поведение задается некими коэффициентами в зависимости от того, сколько раз нападали и какой был ущерб, как дела у конкурентов, почем руда на торговой станци и т.д., которые со временем могут меняться.
Да, конечно, набор возможных "квестов" у неё ограничен (диапазон примерно от "привези детальку" до "сбей транспорт конкурента"), но, мне кажется, алгоритм создаст иллюзию работы некой социальной (или в даном случае - экономической) структуры.
|
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
mc_ : |
Шахта должна думать сама: налетели праты - апгрейдим защиту и т.д. То есть поведение задается некими коэффициентами в зависимости от того, сколько раз нападали и какой был ущерб, как дела у конкурентов, почем руда на торговой станци и т.д., которые со временем могут меняться.
|
Эти же зависимости прописываются человеком?
Или так понимаю идею, что нужно создать шаблон умной шахты, понатыкать много таких шахт в игровое пространство, они заживут своей жизнью и в этом (большом количестве одинаковых умных шахт) будет заключаться генерация?
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
WandererX 77 EGP
Рейтинг канала: 1(6) Репутация: 2 Сообщения: 243
Зарегистрирован: 05.12.2007 |
|
Minx : |
У вас - это где? Он уже где-то реализован в корпусе?
|
"одолжил" у одного студента , у них что-то вроде лабораторной было по работе с текстовыми файлами, приспособил под свои нужды.
mc_ : |
Допустим, есть шахта на астероиде. Время от времени туда нужно привозить запчасти (по типу 20 тяжмаш, 10 точмаш, 5 электроники), чтобы шахта могла добыть руду (или что она там добывает). Руду надо дотащить до обитаемых мест и продать - генерится транспортник.
|
Что-то подобное есть в иксах: если на станциях очень мало ресурсов, то можно встретить миссии по их доставке + профит за партию
Вообще странно, что у нпс кораблей есть хотя бы зачатки ИИ: стрелять по противнику, бежать если проигрывают или груз сбросить, откупиться. А для станций ИИ не предусмотрели...
ИМХО технически такое можно реализовать
Последний раз редактировалось: WandererX (21:54 27-05-2012), всего редактировалось 1 раз |
|
|
Gladius 52 EGP
Рейтинг канала: 1(9) Репутация: 0 Сообщения: 124 Откуда: Санкт-Петербург Зарегистрирован: 18.12.2007 |
|
Minx : |
То, что игроку надо сразиться с врагом - это обязательность действия, что означает линейность. В отличие от этого может быть несколько вариантов победы - победить, договорится, накопить много очков/денег, прокачаться так, что он испугается и пр..
|
Мы с Вами говорим об одном и том же, уважаемый Minx
Ведь сразиться = победить, а мост, лодка и вплавь = победить, договориться, испугать.
Просто я всё чаще встречаю сингловые компании, где и этого не делают.
Цитата: |
Полностью разнообразный сюжет сделать не получится. Т.к. в игре должна быть цель (без цели что и зачем делать - не понятно) и результаты различных игр должны быть сравниваемы по каким-либо критериям (иначе какой смысл игры?).
|
Полностью - нет. Да и не нужно это. А вот разветвить сюжет, обеспечив несколько концовок (Ведьмак, Сталкер) можно. Только мутарно это...
_________________ Спасибо за внимание. |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Gladius : |
Только мутарно это...
|
Причин может быть много. Например если это нерентабельно, невозможно или банально скучно.
В моем контексте идет речь о том, что в любой игре есть некая доля вероятностей/разветвлений, и другая доля линейности/зависимостей. С помощью генераторов и придумываний сюжетов можно смещать пропорциональность долей.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Jerry Rezet : |
принципом "возрастания эпичности" - т.е. чем дальше двигаешься по сюжету, тем эпичней твои победы
|
Аналогичные принципы есть в журналистике, литературе и прочем сюжетописании. Называются они по-буржуйски "Inverted pyramid" и "Burying the lead".
Первый - это когда наиболее значимые вещи подаются вначале описания. Делается ради того, чтобы привлечь зрителя и не занимать его время если детали не интересны. Например такой стиль используется в новостях, научных публикациях, заголовках книг и др. (броские заголовки, отражающие самую суть).
Второй - это когда самое интересное находится в конце. Т.е. сначала много деталей и событий, и зритель не знает, чем все закончится. Такое - это анекдоты, детективные истории, притчи, поучительные рассказы и др..
В общем случае думаю необходимо комбинировать принципы. Можно например стрелять Burying the lead малыми порциями, или новые открывающиеся миссии оформлять как Inverted pyramid.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
mc_ 408 EGP
Рейтинг канала: 1(8) Репутация: 41 Сообщения: 2841
Зарегистрирован: 09.04.2010 |
|
В РПГ есть так называемый "принцип трех С" - "сила, скрытность, слово". Настоящий (в смысле труЪ) квест должен решаться любым из этих способов.
На практике это, естественно, возможно не всегда.
|
|
|
WandererX 77 EGP
Рейтинг канала: 1(6) Репутация: 2 Сообщения: 243
Зарегистрирован: 05.12.2007 |
|
mc_ : |
В РПГ есть так называемый "принцип трех С" - "сила, скрытность, слово". Настоящий (в смысле труЪ) квест должен решаться любым из этих способов.
|
Ещё двух "С" не хватает: Сдаться (по убеждению или на милость победителю ) и Сбежать (пусть другие разбираются, а я лучше астероиды покопаю).
|
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Minx : |
WandererX : |
Разнотипный он получается только первые десять раз. Конешно же можно сделать текст более подходящим ситуации.
|
Если у вас он получается разнотипным первые десять раз - то это проблема вашего генератора.
|
Походу вырисовывается ещё один источник для понимания обработки и генерирования текстов. Это "Natural Language Processing"(рус.отзыв). сам не проходил, потому не осуждаю (;
Судя по различным косвенным данным, овладение им стоимостью в 50-100 часов позволит разработчику быстро получить advanced навык программной обработки текстов.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
о генерациях
лабиринтов
примеры и описания разных
http://www.astrolog.org/labyrnth/algrithm.htm
тжс, только готовый софт в исходниках
http://www.astrolog.org/labyrnth/daedalus.htm
(по мне так эти исходники ужасны и как библиотека это не применимо)
в рогаликах много разных генераций описано
http://roguebasin.roguelikedevelopment.org/index.php/Articles
в частности, например аналогичная этому идея
http://roguebasin.roguelikedevelopment.org/index.php/Programming_Roguelike_Magic
есть генерация имен, линки на генерации звуков и прочее.
---
Во всем, что нахожу, не вижу нигде фундаментальной теории по генерациям. В 99% случаях народ пишет что-то, что генерирует что-то, которое похоже на то, что хочется и все.
Чаще всего требуется что-то генерить специфичное, и оно практически никогда не вписывается в готовые заготовки. Поэтому важны базовые теоретические элементы и способы, а не собранные примеры с картинками.
В частности, хотелось бы видеть:
* сравнительные характеристики разных PRNG (немного есть тут);
* генерация сущностей с гарантированными заданными свойствами;
* способы верификации результата (например генерация с верификацией через матиндукцию);
* как делать переход от генерации грубого заполнения памяти к функции для быстрого получения нужной части карты (чтобы можно было бегать по лабиринту, но при этом не держать его в памяти);
* создание рандомных сущностей, изменяющихся во времени, и вписанных в канву созданного мира;
...
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Несколько статей по генерациям:
https://larc.unt.edu/ian/research/content/
Хотя авторы пишут такие паперы, что я бы вряд ли послал куда-то такой материал как научный.
Джерри, посмотри внимательно на эту статью: https://larc.unt.edu/ian/pubs/pcg2011.pdf
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (10:39 12-09-2012), всего редактировалось 2 раз(а) |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Кучу обезьян посадят генерировать сценарии для игр за деньги: http://www.technologyreview.com/view/525061/the-problem-with-serious-games-solved/
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Jerry Rezet 581 EGP
Рейтинг канала: 5(113) Репутация: 86 Сообщения: 3365 Откуда: Санкт-Петербург. Зарегистрирован: 01.04.2005 |
|
Minx : |
Несколько статей по генерациям:
|
Прекрасно (на первый взгляд)! Правда английский на порядок больше времени для понимания требует. Есть на русском?
Внимательно глянул "по диагонали". На первый взгляд - то же, что и я предлагал, только ближе к программированию сценариев, более разветвлённое и учитывающее больше факторов. Хотя перспектив для развития намного больше. Да и сама идея намного лучше проработана. Принято в вдумчивому прочтению. Спасибо!
_________________ - Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c] |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Джерри, эти ссылки тебя полтора года ждали (;
Jerry Rezet : |
Правда английский на порядок больше времени для понимания требует. Есть на русском?
|
У меня нет. Не видел чтобы пробегало.
---
Оказывается есть по генерациям специальная конференция. Последняя: http://pcg.fdg2014.org/
6 докладов и 2 демки в прошлом году.
В этом году уже в 5-й раз собираются. Надо будет попробовать найти паперы..
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (22:49 26-02-2014), всего редактировалось 1 раз |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Minx : |
Infinite Game Universe: Mathematical Techniques
|
Таких книг на самом деле две. Вторая: ссылка (есть у меня)
Книги прочитал подробно. В первой вообще ничего для себя не нашел. Во второй может 5-10% того, что потенциально полезно. Это пару идей звуковой генерации и генерации предложений (текст).
Звуки может кому-то будут более полезны, если вы не знакомы с теорией передачи сигналов или обработкой звука (волны, наложения, модуляция, фильтры и т.п.).
Основные проблемы книг.
1.
Как программист автор чайник. В качестве аргумента и факта, пример страницы: http://www.freeimagehosting.net/ya89i
Программисты меня поймут.
2.
Что такое генерация по мнению автора? Это создать как можно более разных элементов игрового мира. И пофигу, что это такое. Важно, чтобы количество разных было как можно больше.
Например если генерируется лабиринт 100х100, и генератор с seed в 2^32 бит, то считается, что мы создали 2^32 карт и тем самым сэкономили 100*100*2^32 ячеек памяти, и это очень круто. Чем больше сэкономили, тем лучше.
В этом ключе страница книги: http://www.freeimagehosting.net/cxgdd
Так генерируются портреты. Берется растровая картинка, например 100х100, и рандомно выбирается два числа - сжатие-растяжение по X, и тжс по Y. От 50 до 200 например. Это означает, что мы нагеренировали 150*150 изображений и тем самым сэкономили 150*150*(~ 100)*(~ 100) памяти, и это очень круто.
Такое можно написать только вообще ничего не понимая в геймдизайне.
Вот навхрена? Кому нужны твои 2^32 лабиринта и миллиарды морд? Автор что, думает игроки будут всех их проходить и смотреть на все лица? Может ему сгенерировать лабиринт в миллиард на миллиард клеток, пусть получает фан (;
3.
В книге куча откровенного барахла. Автор пытается скребками объяснить ООП в одной части, во второй рассматривает рынок разных игр в ключе как важн будет генерировать на мобильных платформах, потому что там Game Boy имеет 16Kb памяти.
4.
По генерациям материал безнадежно застрял где-то в 80-90-х гг.. Первых 70 страниц разбираются генераторы вида ряда Фибоначчи или "(ax+b) mod c" и какой из них лучше. Большинство примеров из 80-х, используется C++ в стиле C - без STL, с постояныым new/delete, объявлением переменных до исполняемых действий и пр.. Куча примеров как мы сэкономили 100 байт памяти и давайте ещё вот это заархивируем.. А то Брабен смог, чем мы хуже?
--
Потом посмотрел биографию автора. Ни одной выпущенной игры. Книги писались через год после окончания ВУЗа, при том что автор работал в банке.
Не понимаю таких авторов. Не сделал в жизни толком ничего, опыта нет, зачем писать? Я бы наверно после такого.. повесился.
Или самому что ли книгу написать..
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (23:49 26-02-2014), всего редактировалось 2 раз(а) |
|
|
|
|
|
Канал Игры Мечты: «Принципы и алгоритмы сюжетной генерации» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Так вот, засяду я под столом, бывало, вооружусь семиствольным полотенцем и выжидаю... (рассказывал Харитон Селедкин)
|
» Принципы и алгоритмы сюжетной генерации | страница 12 |
|