Elite Games - Свобода среди звезд!
.
  » Принципы и алгоритмы сюжетной генерации | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 16
На страницу: 1, 2, 3 ... 14, 15, 16  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Принципы и алгоритмы сюжетной генерации»
Нужны ли такие сгенерированные сюжеты?
Да, всяко лучше, чем тупо бабло сколачивать - всегда есть чем заняться.
8%
 8%  [ 2 ]
Да, но только если хорошенько поработать над БД ситуаций и алгоритмами генерации
73%
 73%  [ 17 ]
Будет нелишне, хотя и не обязательно
13%
 13%  [ 3 ]
Нет, всё равно люди лучше придумают чем машина
4%
 4%  [ 1 ]
Нет, лучше усилия в другое русло направить (графику, например улучшить)
0%
 0%  [ 0 ]
Традиционный "пофиг".
0%
 0%  [ 0 ]
Всего проголосовало : 23
Jerry Rezet
 569 EGP


Рейтинг канала: 5(113)
Репутация: 84
Сообщения: 3353
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Сюжет, или "Что мы имеем".

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

Возможные действия, предпринимаемые игроком в процессе игры для достижения конечной цели сюжета таковы:
_____ 1. Доставка объектов, существенных для сюжета (+ их производство/поиск/отъём у противника).
_____ 2. Охрана объекта от нападений, конвоирование, эскорт.
_____ 3. Нападение на охраняемый объект. (+ захват и удержание)
_____ 4. Разведка обстановки вблизи существенных для сюжета объектов.
_____ 5. Зачистка объектов/территории от противника
_____ 6. Спор с персонажами и участие в мини-играх
_____ 7. Воздействие на экономику игры
_____ 8. Взаимодействие с разнообразными фракциями участвующими в сюжете вышеописанными способами:
_____ _____ 8.1. Поддержка/ослабление фракций. (вплоть до истребления/доминирования)
_____ _____ 8.2. Привлечение фракций на свою сторону.
_____ _____ 8.3. Введение в сюжет третьих сил.
_____ 9. Воздействие на игрока в сюжете со стороны:
_____ _____ 9.1. Предложение помощи/оплаты/угроза со стороны основных персонажей сюжета (игроку/третьим сторонам).
_____ _____ 9.2. Поддержка/предательство фракций/персонажей.
_____ _____ 9.3. Влияние действий игрока на его репутацию.
_____ _____ 9.4. Влияние репутации игрока на дальнейшее развитие сюжета.

Результатами выполнения задания могут быть:
_____ 1. Уничтожение объекта/персонажа/группы объектов/расы/фракции
_____ 2. Захват объекта/персонажа.
_____ 3. Доставка/привлечение объекта в пункт назначения/к сотрудничеству
_____ 4. Достижение какого-либо процентного/числового значения одного из параметров, имеющихся в игре.
_____ 5. Выигрышь в мини-играх.

При этом нет чёткого разграничения в последовательности описанных действий. Разве что в самых начальных стадиях игры задания сюжета таковы, что дают игроку освоиться и опробовать возможности игры, предоставляя ему "время и пушечное кибермясо", и только к концу сюжета действия обретают масштабность (порой доходя до эпических баталий) и начинают требовать минимальных навыков виртуозности в овладении игрой Подмигиваю

Чего бы, собственно, хотелось

В существующих играх после прохождения основного сюжета (продуманного и воплощённого создателями игры), если предусмотрено продолжение игрового процесса, приведённые типы миссий могут быть доступны в виде не связанных друг с другом заданий, выполнение которых может занимать весь дальнейший игровой процесс. Показательным в этом отношении является "Наёмник" ("Freelancer", "Фрилансер", да простят мне пилоты сей перевод названия игры на родной язык, в таком виде обычно не употребляемого Улыбка ). Типы миссий составляющих сюжет: охрана и конвоирование, доставка (с добычей из защищённого объекта из-под носа врага), привлечение на свою сторону (или корпорирование с уже дружественными персами из не вполне дружественной фракции), совместные операции с третьей стороной в тайне от первой по той же схеме - "найти-убить-отобрать-разрушить". Из всего этого в "вольнонаёмной части игры" (например - после основного сюжета) доступно лишь спасение и доставка груза (что тоже входит в разряд "доставка с добычей"), убийство, ну и ещё может быть "нападение на охраняемый объект". И всё. А ведь когда обращаешься в баре к местному полицейскому за заданием, да ещё и не один раз - ожидаешь что задания, даваемые ими будут хоть как-то взаимосвязаны общей целью - например хотябы так:
_____ 1. расправа с мелкой шайкой головорезов какой-нибудь банды, 2. расправа с мстящими за расправу над мелкой шайкой. 3. допрос пленного выжившего после расправы и узнавательство о нескольких базах шайки 4. разнос укреплённой базы и поиск главаря 5. погоня за главарём и каким-то его секретом (ну, скажем, скоммуниздил он у властей тот же самый секрет офигенной бомбы - в миссиях такое встречается) 6. уничтожение главаря и финальная битва всех сил полиции с привлечением игрока 7. постфинальный "догром" всяческих баз фракции пиратов чтобы они уж точно были трансклюкированы как класс 8. занавес-титры, с появлением в новостях сообщения о разгроме вышенепоименованной шайки и рожей игрока в ореоле славы.
_____ Ну хотябы так. То же самое можно организовать со стороны пиров по отношению к "распоясавшимся полицаям не берущим взяток". А если в это действо добавить ещё парочку миссий с привлечением ещё одной фракции (например игрока посылают уговорить их объединить усилия, а они поручают игроку ещё пару миссий, типа "в оплату" этого объединения надо убить главаря ещё одной шайки помельче) - ну, разве сложно? Улыбка)) Но это лирическое отступление, далее - снова по существу.

Нелинейное развитие сюжета может зависеть от эффективности выполнения описанных действий и их корелляцией между собой:
_____ 1. (Доставка) Корелляция скорости с численностью сюжетных объектов/репутацией/рейтингом доверия фракции
_____ 2. (Охрана) ="= времени отражения атаки, количества ретировавшихся из боя и статусом защищаемого объекта с дальнейшими проблемами (случайный объект нападавших - лидер, собирающий новую волну атаки, например): необходимость дополнительных сюжетных действий из перечисленных.
_____ 3. (Нападение) Выполнение/поражение + то же, что и с охраной
_____ 4. (Разведка) Качественность разведки (охват территории, количество выявленных объектов и время разведки)
_____ 5. (Зачистка) Количество/качество ретировавшихся (0 - наилучшее), затраченное время.
_____ 6. (Мини-игры) Качество победы (отрыв от персонажа по времени и очкам).
_____ 7. (Экономика) Распространённость собственности игрока на охваченной сюжетом территории.
И тому подобное, для всех пунктов можно придумать по несколько параметров, в зависимости от возможностей движка планируемой игры.

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


Результатом сюжета могут являться следующие цели:
_____ 1. Захват/подчинение объекта/персонажа/прочего.
_____ 2. Уничтожение фракции/расы/персонажа/объекта.

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

_____ Генерация фраз для чат-бота сюжетных персонажей производится из отдельных фраз (которые тоже могут генерироваться из случайных блоков), в совокупности описывая каждую сюжетную миссию. Фразы для бриффинга могут составляться по следующему шаблону:
_____ <1: Введение в проблему - почему случилось такое><2: Причина миссии><3: Необходимые действия для выполнения миссии, свои для каждого типа миссий из уже описанных><4:Различная информация к размышлению><5: Бонус даваемый для выполнения миссии - доп. корабли, оборудование, товары><6: "Дежурная фраза"><7: Прочее, для миссии несущественное>
_____ Пример (для миссии типа "Доставка объектов"):
_____ <1: В процессе боевых действий нам перекрыли почти все пути поставки (вид товара), проклятые (назв. фракции) шуруют в наших системах как у себя дома! ><2: Теперь у нас почти закончились запасы (вид товара), и наша (напр.: фабрика ракет) скоро остановит производство. ><3: Тебе нужно во что бы то ни стало достать (вид товара) пока ещё есть время. ><4: Скорее всего тебе прийдётся напасть на караван, принадлежащий (назв. фракции), разведчики сообщают что он будет двигаться из (...) в (...). ><5: Мы можем дать тебе в помощь звено штурмовиков и 3 торпеды, этого должно хватить.><6: Мы на тебя очень рассчитываем!><7: Тока ты там смотри в оба, - мало ли что...>
_____ Замечу что несмотря на то, что в п.4 эта миссия указывает на то, что придётся действовать по сценарию "Нападение на охраняемый объект", тем не менее в данном случае мы определяем "тип миссии" по п.3, указывающему на тип "Доставка с отъёмом/добычей". Тем не менее из-за этого возможна некоторая комбинация типов, тем более что в установках миссии может стоять "неважно откуда взят груз, главное что игрок притащит его в пункт назначения" - таким образом можно получить и ситуацию, когда способов решить поставленную задачу будет более чем один.
_____ К тому же ничто не мешает разбить каждую такую фразу на несколько, может быть даже распределить их между несколькими персонажами, и между ними вставить разнообразные реплики персонажа игрока (скорее всего это будут разнообразные вопросы, типа "а это нифиг?", "а не проще ли на всю эту шоблу полицию натравить?" и прочее Подмигиваю ), да и потом - вполне можно разбавить реплики фразами не привязанными к "игровому окружению" (между всеми используемыми фразами должны стоять какие-нибудь "метки корелляции" - что можно использовать совместно, а что не стоит, с какой частотой, и какую фразу можно поставить следующей).
_____ Основная проблема при таком подходе, по моему мнению, разве что только в фантазии при написании фраз для сюжета/чат-бота, коих должно быть достаточно много и они должны быть достаточно хорошо скореллированы между собой. Может быть ещё стоит упомянуть, что во избежание похожести фраз в сюжетах каждая фраза должна состоять из нескольких вариативных частей, чтобы каждую часть фразы можно было составлять в из имеющихся вариантов.
Следует разделить фразы по принципу зависимости от ситуации:
_____ 1. Приветствие, общие фразы, вопросы о личной информации, местонахождении и прочее
_____ 2. Предложения о совместной деятельности, уточнения к ним
_____ 3. Боевое взаимодействие - приказы, просьбы, оповещения
_____ 3.1 Разведка и взаимодействие с разведчиками
_____ 3.2 Предбоевое распределение обязанностей в групповом взаимодействии
_____ 3.3 Приказы непосредственно в бою. Позывные
_____ 3.4 Крики, предупреждения - "эфирный фон" в боевом взаимодействии
_____ 4. Вызовы, оскорбления
Совместная деятельность - несколько видов (НПЦ + Игрок):
_____ 1. Конвой и эскорт
_____ 2. Атака или защита объекта
_____ 3. Сбор информации и разведка.
_____ 4. Обмен информацией и разведданными.
_____ 5. Дуэли
_____ 6. Патрулирование
_____ 7. Взаимодействие при сигнале бедствия и просьбе о помощи (полиция, пираты, игрок, наёмники etz.)
_____ 8. Мини-игры (гонки, спейс-регби, и прочее Подмигиваю )
Некоторые виды деятельности перекрываются.
Так же необходимо разделить возможность выбора фраз в зависимости от местонахождения:
_____ 1. Свободный полёт. Космос.
_____ 2. Орбитальное пространство (взаимодействие с диспетчерами, службами и прочими при посадке-взлёте)
_____ 3. Разговоры в барах, ангарах, с торговыми представителями - в режиме "вне корабля".

Помимо "ситуационной зависимости", следует так же выделить звисимость "функциональную". То есть по функциональному принципу фразы можно разделить на типы:
_____ 1. Повествование.
_____ 2. Предложение чего-либо (подразумевает выбор)
_____ 3. Похвала.
_____ 4. Приказ (подразумевает подчинение)
_____ 5. Вопросы.
_____ 6. Ответы.
_____ 7. Обрисовка ситуации (подразумевает учёт "переменных окружения": у кого с кем война, что нынче в цене, и т.п.)
_____ 8. Действие (атака/бегство/игнорирование)

Для нормального выбора следующей фразы для игрового персонажа, подчинённого АИ игры, каждый персонаж может иметь следующие характеристики:
_____ 1. Настроение (Враждебное, Недоверие, Нейтральное, Дружелюбное...).
_____ 2. Преимущественный род деятельности.
_____ 3. Несколько побочных направлений деятельности ("в свободное время").
_____ 4. Текущий тип деятельности (Статус - "В бою", "Торгует", "Спасается бегством", "Проводит разведку").
_____ 5. Цель (Объект. В бою - атакуемый неписем/от которого уклоняется, Торговля - что везёт и куда).
Так же каждое сообщение имеет "рейтинг дружелюбия", связи с другими фразами,
идентификатор, определяющий статус фразы (является ли она вопросом, ответом, утверждением,
отрицанием, посылом подальше, приказом, предложением...) и, думаю, идентификатор события, при котором она может произноситься (например такие фразы, как "Удачный выстрел, коммандир!", или "Фиг-га ж себе бабахнуло!" не в любой ситуации к месту придутся Подмигиваю )

_____ Общее число миссий в сюжетной линии не должно превышать 20-30 по психологическим причинам - на протяжении заданий не видя конца линии может создаться впечатление тягомотной "мыльной оперы". Движение по сгенерированному сюжету должно быть достаточно динамичным и разнообразным, может быть даже с предпочтением одних типов заданий перед другими в зависимости от расы/фракции, за которую проходится данный сюжет. И каждое следующее задание должно быть чуть сложнее и существенно масштабнее - в зависимости от ранга игрока можно задействовать большее количество кораблей или кораблей большего класса. То же самое должно наблюдаться и в зависимости от ранга игрока в игре вообще - чем больше ранг, тем масштабнее и обширнее генерируемые сюжеты, вплоть до участия в "глобальных разборках" рас, ранее, при малых рангах, происходивших без участия игрока (ну, например, только в новостях об этом писали Подмигиваю Или максимум - можно было поучаствовать в "мясорубке" в качестве "пушечного мяса", откликнувшись на объявление каких-нибудь ВКС Улыбка ).
_____
_____ Сюжетные заставки (т.н. "бриффинги" - короткие совещания перед заданием, получение задания), в которых игрок встречается с персонажами, если анализировать многие вышедшие на рынок игры, могут проходить следующим образом:
_____ 1. В пространстве, без привязки к определённому месту и времени
_____ 2. В определённом месте
_____ 3. В определённое время
_____ 4. После определённого события
_____ 5. После достижения определённых условий

Так же и по количеству/функциям/мотивам участвующих в заставках персонажей можно разобрать по пунктам:
_____ 1. "Сквозные" - персонажи, идущие плечём к плечу с игроком через весь сюжет,
_____ 2. "Командиры" - могут так и не появиться на "поле боя", раздавая указания издалека, или которым можно "нанести визит" пару раз за сюжет.
_____ 3. "Союзники" - появляющиеся обычно в ситуации, после привлечения на свою сторону третьих сил/фракций/рас, становясь "сквозными" или уходя со сцены после нескольких заданий
_____ 4. "Камикадзе" - в определённой ситуации могущие пожертвовать собой для задержания/уничтожения сил противника, для выполнения основной задачи очередного задания в сюжете. Добавляет трагизма, как бы цинично это не звучало.

Это же в равной степени относится и к персонажам противника, только с учётом того, что они "по ту сторону баррикад". И с учётом, что вражеского "камикадзе" необходимо остановить или увернуться от его домогательств на жизнь дорогих игроку персонажей Улыбка)) А персонажи-"командиры" вражеской стороны - скорее всего загадочные личности, сами до последних миссий сюжета лично не фигурирующие - может только в виде предположений и разведданных. Скорее всего они-то и должны будут являться целью сюжета. Хотя бы побочной, если уж не основной =D

Естественно, что всё это имеет место для режима "Одиночной игры", хотя и в сетевом режиме может пригодится в случае PvE, как альтернатива для более интересного прохождения похожих друг на друга монстромочилок, благо в режиме PvP плэеры сами разберуться чего у кого отобрать и кому с кем подраццо. Так что даже если "Single player"-режим благополучно отмирает (хотя - не хотелось бы.. ) оные принципы совсем не будут смотреться анахронизмом даже во многопользовательском режиме, хотя и они там не так уж нужнее.

Предлагаю высказывать мнения по поводу приведённой концепции. Мнения нах/пох не приветствуются, равно как и "невозможно!" - тоже. В крайнем случае крайне приветствуются мнения вроде "неполучится потому-то да посему-то, с этим поимеются такие и сякие проблемы".
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]

Последний раз редактировалось: Jerry Rezet (17:40 14-11-2007), всего редактировалось 2 раз(а)
    Добавлено: 17:23 14-11-2007   
Zachesa
 112 EGP

Рейтинг канала: 4(95)
Репутация: 11
Сообщения: 1387
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Понравилась идея взаимосвязи внутрифракционных новостей и рейтинга, правильна мысль падения рейтинга если не поддерживать репутацию. И всё остальное нужно только упорядочить и скелет для алгоритма готов. Могу предположить, почему в современных играх не делают подобных вещей. Свободно (по случайному закону) генерируемые миссии могут войти в противоречие с основным деревом сюжета. А в Иксах, к примеру, миссии примитивны и вообще оторваны от основного мирка, не дай бог нарушить шаткое равновесие.
Не возражаешь если я причешу сей труд, добавлю своих финтифлюшек и помещу у себя на сайте так сказать, чтоб был всегда под рукой.
Может кто другой раньше нас сделает что-то стоящее, а мы поиграем...
_________________
Язык Образов, как язык программирования и язык мысли, думающей машины.
    Добавлено: 18:57 14-11-2007   
Jerry Rezet
 569 EGP


Рейтинг канала: 5(113)
Репутация: 84
Сообщения: 3353
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Ты, похоже оперативно этим занимаешься, уже встретил кой-чего, из ранее упоминавшегося - хорошо, когда есть возможность собрать всё лучшее Подмигиваю Улыбка))))))) Помещай, но и сюда не забудь выложить причёсанное - мне же тоже интересно!
Цитата:
Свободно (по случайному закону) генерируемые миссии могут войти в противоречие с основным деревом сюжета.
Ну так не нафиг ли тогда "стандартный сюжет"? Гы-гы , если он так хлипок.. А противоречия - они обязаны быть - даже со "стандартным сюжетом" - просто продумывать тогда надо будет больше. А это уже всем лень. Зато бабло получать - не лень Расстроен ..
Цитата:
Может кто другой раньше нас сделает что-то стоящее, а мы поиграем...
Или я, или никто.. Иногда такое впечатление создаётся.. Или воплотят так, что весь интерес пропадёт.. Расстроен Потому что почти всё - именно так и происходит.. Была помнится тема "Какой бы вы хотели видеть Элиту 4" - там столько всего понамечтали - до сих пор эти идеи по душе бы многим пришлись (кстати, если ищешь идеи - очень советую порыться и найти эту тему в канале Elite).
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]

Последний раз редактировалось: Jerry Rezet (19:33 14-11-2007), всего редактировалось 1 раз
    Добавлено: 19:04 14-11-2007   
Anthrax
 145 EGP


Рейтинг канала: 3(27)
Репутация: 12
Сообщения: 681
Откуда: Москва
Зарегистрирован: 19.04.2003
Джерри, а ты действительно все это хочешь реализовать?
_________________
Я не злопамятный. Я просто злой. И память у меня хорошая.
    Добавлено: 19:55 16-11-2007   
Zachesa
 112 EGP

Рейтинг канала: 4(95)
Репутация: 11
Сообщения: 1387
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Разумные индивиды имеют следующие основные характеристики.
1. Специализация (основное направление деятельности, цель, мотивация)
a. Предприниматель (торговля, услуги)
b. Производственник (добыча ресурсов, производство)
c. Учёный (исследование артефактов, ремонт и модернизация оборудования)
d. Общественник (благотворительность, экология)
e. Проповедник (философия, теология)
f. Менеджер (управление проектами)
g. Пилот (управление космическими кораблями)
h. Наёмник (защита, война)
i. Турист (посещение новых космических миров)
j. Дипломат (создание новых объединений и шпионаж)
k. Спортсмен (участие, создание новых соревнований)
l. Творец (поиск и создание произведений искусства)
2. Уровень мастерства
a. Бездарь
b. Перспективный
c. Новичок
d. Бывалый
e. Опытный
f. Мастер
g. Эксперт
3. Участие в объединениях
a. Карьерист (уровень в иерархии)
b. Одиночка (известность)
c. Лидер (количество членов, известность)
4. Богатство
a. Денежные средства (наличность, счёт в банке, задолженность по кредитам)
b. Имущество (одежда, личное оружие, транспорт, артефакты, произведения искусства, товары)
c. Недвижимость (квартиры, офисы, дома, фермы, склады, фабрики)
5. Средства достижения цели
a. Убеждение (красноречие, психологическая обработка)
b. Сила (использование физического либо технического превосходства)
c. Коммерция (покупка, подкуп)
d. Обман, кража
e. Научные исследования
f. Творчество
g. Особые навыки
6. Расовые и половые признаки
(Для получения дополнительной специализации нужно образование, которое можно купить у другого индивида имеющего уровень не ниже мастер.)
Объединение это два или более индивида, один индивид является лидером, остальные карьеристами, карьеристы нанимают себе помощников, карьеристов ниже рангом. Цели и средства объединения зависят от лидера. Лидер может распустить объединение, тогда карьеристы высшего ранга становятся лидерами. Также объединение распадается при смерти, устранении лидера. Можно сместить лидера (заняв его место), (заручившись поддержкой карьеристов высшего ранга) вынудив его подать в отставку в вашу пользу, либо убив. Лидер объединения может вступить в другое объединение став карьеристом, вместе со своими подчинёнными. Также любой карьерист может в любой момент выйти из объединения и если у него были подчинённые, то он автоматически становится лидером, а они членами его объединения. Имущество объединения принадлежит лидеру. Карьеристы могут иметь своё имущество, а также использовать имущество объединения.
Индивиды одиночки (объединения) могут входить в контакт с другими индивидами одиночками, либо объединениями получая известность.
Участие в контакте вызывает отношение к индивиду одиночке (объединению)
• Враждебное
• Недоверие
• Нейтральное
• Симпатия
• Дружба
Отношение зависит от соотношения целей, (мастерства), средств, расовых (половых) предпочтений и изменяется в зависимости от результатов контакта.
_________________
Язык Образов, как язык программирования и язык мысли, думающей машины.

Последний раз редактировалось: Zachesa (04:18 18-11-2007), всего редактировалось 4 раз(а)
    Добавлено: 14:45 17-11-2007   
VBKesha
 793 EGP


Рейтинг канала: 3(31)
Репутация: 132
Сообщения: 3238
Откуда: обл.Брянская г. Трубчевск
Зарегистрирован: 07.12.2005
Ну первым делом скажу то что в глаза бросилось, а именно 20-30 миссий стока сейчас в основном сюжете не всегда насчитать можно.

Да эта тема мне вообще напомнила мой старый пост http://www.elite-games.ru/conference/viewtopic.php?p=1364030#1364030

Так вот самое неприятное во всём приятном описаном первым постом, это то что надо как то заставить жить мир сам по себе, чтобы делать теже новости.
1. Оно конечно хорохо что вроде всё должно развиватся по случайному сюжету, но по моему надо всётаки случайность свести на уровне немножко случайному. Потому как будт странно выглядеть как затюханая всеми групировка вдруг всех резво победила.
2. Сюжетное дерево, однако хотелось бы чтобы ещё оно укладывалось в текущую картину. А то в томже Фрилансере миссии на снос вражеских баз убивают просто, особенно когда 3 раза подрят сносих одну и туже базу в одном и томже месте. Но при этом несюжетную базу трогать смысла нет всё равно с ней ничего не сдалать. И что делать если игрок решил пропустить допустим только одну миссию но в следущей не против поучаствовать? Или допустим вылев на миссию по захвату продовольствия в разграр битвы с обораняющимеся перебивает всех напарников? Что делать врагам принимать в свои ряды, попытастя устранить? Если игрок вообще перебил всех и "обездвижил" корабль с продовольствием? Давать ли ему возможность продать месторасположения корабля кому либо? Слишком много появляется если. Вот ещё вариант, по сюжетному дереву базу главного "плохого" надо снести миссий через 5-6 но игрок снёс её сейчас, как перестраивать дерево сюжета? Варианты типо а галную бащу тока в последней миси сделаем ИМХО не катят, потому как возникает вопрос аткуда оно зедсь ведь 20 минут назад небыло.
Как выкручиватся я незнаю, но чтотот надо думать, так как дерево дотаточно легко надломить. ИМХО дерево не выход.

Мне больше видется догенеривание сюжета, после каждой миссии в зависимости от обстаноки мира. И у каждого значимого "существа"(ну например командира какой нить искадрилии) должны менятся опредеоённые характеристики,ну например наз нанял генерал X для проведения зачистки сектора Y а мы свалили с поля боя, у него после миссии должны измнится например кофициет отношения ко всем фрилансерам(ну если они конечно есть) и чтобы он допутим перетстал давать миссии "походим" на нас пилотам. Итд но тогда придётся делать не одну живущую сюжетную линию а целый мир что уже не так просто.

Кстати что то подобное описаное в первом посте было в такой игрушке как XENUS: Точка кипения. Там имиссии давались последовательно каждым NPC и одна продолжала другую тока что если отказываешься от миссии она не жила совей жизьню. Вот как раз там и модно нагляжеть кучу косяков которые я писал. Особенно с фракциямит. Помню просто случай пошёл выполнять миссию за ФБР там надо пробратся в лагерь партизан и освободить пленного. при этом с партизанами у меня отличные отношения ну так вот прихожу к ним в лагерь, они начинают палить(откуда они пронюхали зачем я пришёл незнаю) ну в итоге никого не убив умудряюсь спасти этого пленного, в след летят пули отбегаю от лагеря на приличное растояние, возвращаюсь, и на те все со мною чуть ли не за руку здороваются. Рекомендую поиграть чтобы приглядется к таким косякам.
    Добавлено: 00:09 18-11-2007   
Zachesa
 112 EGP

Рейтинг канала: 4(95)
Репутация: 11
Сообщения: 1387
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Орбитальные станции, мегаполисы на планетах (и отдельные здания, если не применяется супер оружие), а также большие корабли не уничтожаются полностью - их можно отремонтировать. Индивид (компьютерный персонаж или игрок) может состоять только в одном объединении, любая работа выполненная в рамках этого об-я изменяет его послужной список. Члены других об-й, могут получить информацию о его послужном списке используя принятые в них средства достижения целей. Учитывается что в пределах исследованного космоса связь мгновенна. Возможно самые влиятельные индивиды могут скрыть (фальсифицировать) эту информацию в своих целях. Также и взаимные отношения между индивидами и об-и могут быть выяснены таким же образом.
Проще говоря, если ты друг моего врага, то ты не можешь стать мне другом. В тоже время взаимная вражда это не обязательно война.
Любые, значимые события, отражаются в сводке новостей, соответственно игрок может настраивать фильтр новостей, чтобы выделять важные события, просматривать историю событий на своём коммуникаторе.
_________________
Язык Образов, как язык программирования и язык мысли, думающей машины.

Последний раз редактировалось: Zachesa (04:26 18-11-2007), всего редактировалось 2 раз(а)
    Добавлено: 04:00 18-11-2007   
Jerry Rezet
 569 EGP


Рейтинг канала: 5(113)
Репутация: 84
Сообщения: 3353
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Anthrax :
Джерри, а ты действительно все это хочешь реализовать?
Насколько могу - да. Хочу. Но получится ли - "А это уже второй сложный вопрос!" (с), как говорил Вовочка из анекдота. Из того, что пока получается - небольшая БД по фразам для чат бота, насколько фантазии хватает. Пока хватило на 12Кб текста, файло надо парсить под xml, разработать структуру фразы, чтобы в неё органично вписывались разные "рандомные части", составляющие одну и ту же фразу, чтобы у неё при разном словесном наполнении был одинаковый смысл, к каждому действию ИИ сопоставить фразу или несколько, для каждой сюжетной ветки - свои "рандомные позиции" (из чего именно выбирать и по какому принципу - в зависимости от ранга игрока и "масштабности" сюжета, потому что если это просто разборка с шайкой пиратов - то тут и звена штурмовиков хватит, а если глобальные разборки рас - то и трёх линкоров может не хватить =-) ).. Вобщем много чего надо продумать. Попутно пытаюсь накодить удобное "междумордие", для написания фраз и скидывания всего напридуманного в xml с соответствующими ключами и тэгами..

Вообще же общие принципы того, что я бы хотел сделать таковы:
Первое
Шаг №1. Псевдорандомная генерация Галактики: сначала генерим "реперные точки секторов". Например каждый сектор - это 100х100х100 св.л. "Репер сектора" - это тупо число, длиной в 80 байт (например. потому что 80 - это самый длинный тип в С++), из которых мы берём первые несколько бит (скажем 16) - они определяют число звёзд в секторе. При дальнейшей генерации мы умножаем это число на особую функцию, графическое изображение которой было бы похоже на галактику спирального типа (сбоку - линза с выпуклым шариком в середине, а в плане сверху - семилепестковая спираль - т.н. "архимедова спираль" думаю подойдёт для этой цели. Т.о. имеем разряжения и сгущения количества звёзд, располагающиеся вдоль спирали)
Остальная часть - тоже можно придумать какие-нибудь параметры..
Шаг №2. Генерируем массив звёзд для сектора (в котором игрок и/или для нескольких окружающих - для навигации на карте) исходя из общего числа - это тоже одно число на звезду. И таким же образом берём и драконим число-"репер" на неколько цифр:
а),б),в) - соответственно x,y,z,-смещение относительно "центра сектора" (который тоже смещён от "математического центра" сектора на величину, определённую в "репере сектора").
г) кратности системы (однинарная, двойная, тройная звезда)
д) тип звёзд,
е) количество планет
ж) количество ещё-чего-нибудь..

Шаг №3 и последующие. То же самое по уменьшению масштаба идём в сторону "Система->Планета->Спутники->Тип планеты/спутника->Рельеф" и прочее.
Второе
Генерация кораблей.

Это довольно непростая часть. Ибо если идти по пути обычного 3Д-моделлинга каждого корабля для каждой расы - мы получим или однообразие, или угрохаем кучу времени на одно моделирование. Формула для алгоритма генерации внешнего вида корпусов кораблей в общих чертах мне ясна, но описать ещё пока не могу - позже. Если всё пойдёт удачно, то корабли будут действительно неповторимые для каждой расы, и псевдоживого вида, и техногенного, и обтекаемые, и кристаллоподобные... Надеюсь.. Пожелайте мне в этом удачи.. В бою.. С самим собой.

Третье
Генерация рас.

Так же по принципу "Реперных точек" генерируем числа, определяющие каждую расу. Из этого числа формируем структуру, описывающую расу. В этой структуре должны отразиться такие характеристики расы, как координаты родной планеты в Галактике, ареал распространения (и типы пригодных планет для расы - выбираются в этом случае в соответствии с "родной" планетой), вид (форма) жизни (планетарные/живущие в космосе/плазменная жизнь (энергетическая форма жизни)/кристаллическая форма/белковая/ещё какой-нибудь вид...), императивы поведения (агрессивная/мирная/экспансионистская/изоляционисты) и прочие вещи.

Генерация внешнего вида - схоже с кораблями. Ибо если мы имеем разумную форму то, имхо (хотя и не обязательно, но примем такой послулат), внешний вид состоит из нескольких частей: конечности(имеющие/неимеющие суставов), туловище, места крепления конечностей к телу, органы ориентации (оптические, аккустические, эл.магнитные, ещё какие-нибудь), голова (мозг - сконцентрированн где-то/распределённая система).. Или не имеющие особой формы. Так же и социальное устройство - улей/индивидуальные особи/другие типы соц.устройства... - всё это надо закодировать в один "репер". Длинный получится, но что же - пусть..

Ффффффффуууууууххххххх... "Понесло по гиперссылкам", блин.. Начнёшь идею излОгать - не успокоишься пока полностью не изложишь.. Ужоз Ужас! ..
VBKesha :
Да эта тема мне вообще напомнила мой старый пост
Не без этого. Именно то, что ты описывал в этом посте я и хочу сделать. Или по крайней мере - хотя бы продумать до мелочей, если уж сделать не получится.

Самое главное во всём этом - игра не должна быть слишком уж "тяжёлой" - сотни мегабайт кода, тучи моделей и речёвок персов. Это должно быть просто свод законов, по которому живёт мир вокруг игрока. Графика и звук в идеале должны быть "без прибамбасов и 10ых шейдеров", без всяких наворотов, ровно такие, чтобы оставлять место воображению, но тем не менее направлять его в нужное русло. В идеале - прога должна занимать несколько мегабайт максимум (ну десяток - если ещё кого-то найду, что вряд-ли), а если более реально - то сотни килобайт. Всё остальное - фразы для чат бота, библиотечки для речевого синтезатора (некоторую картавость и "роботичность" звучания всегда можно обыграть - много рас, много языков, автоматический переводчик лучший выбор, хотя и теряет интонации и тонкие оттенки) и прочее "сопутствующее", что делает игру более наполненной - названия ресурсов, алгоритмы генерации названий, взаимосвязи для различных ресурсов - кому что требуется одних ресурсов, для получения других, и так далее.. - вобщем всё, что можно впихнуть в текст..


VBKesha :
1. Оно конечно хорохо что вроде всё должно развиватся по случайному сюжету, но по моему надо всётаки случайность свести на уровне немножко случайному. Потому как будт странно выглядеть как затюханая всеми групировка вдруг всех резво победила.
Естественно! Просто в новостях пишем через определённое время "Следы фракции такой-то затерялись в пространстве, похоже они свалили из нашего сектора, испугавшись наших доблестных фараонов!" или "Наша полиция разгромила пиратов клана Такогото (японская фамилия! Гы-гы ), им теперь уже никогда не подняться из праха...". Ну, или, скажем, рассчитываем расстановку сил, что кто имеет и выбираем соответствующую ветку сюжета, и иногда выбрасываем в новостях мессаги из "узловых точек" выбранного сюжета..
VBKesha :
Варианты типо а галную бащу тока в последней миси сделаем ИМХО не катят, потому как возникает вопрос аткуда оно зедсь ведь 20 минут назад небыло.
Как выкручиватся я незнаю, но чтотот надо думать, так как дерево дотаточно легко надломить. ИМХО дерево не выход.
Поэтому - и 20-30 Гы-гы завалили кого-то раньше - несколько "узлов" сюжета - побоку. Получаем похвалу от начальства и орден на попу. Ухайдокал напарников - автоматически появляется пункт в меню ответов "ЭЙ, придурки! Не стрелять! Я вам голову Самого Крутого Перца в мешке привёз!". Генерим новый сюжет (но уже против бывших друзей) и понижаем рейт игрока у нужной фракции, чтобы они стреляли едва только увидят на радарах ID твоего корабля.

Zachesa :
Индивид (компьютерный персонаж или игрок) может состоять только в одном объединении, любая работа выполненная в рамках этого об-я изменяет его послужной список. Члены других об-й, могут получить информацию о его послужном списке используя принятые в них средства достижения целей.
Не обязательно, на самом деле.. ибо можно же быть одновременно и торговцем и "охотником за головами" - думаю что персонаж может состоять в нескольких объеденениях только в том случае, если они не враждебны - в дружественных или нейтральных друг к другу. Ты же сам писал:
http://cvetkov.shalasha.net/content/view/2/3/ :
Игра индивидуальная по замыслу, но с широкими возможностями заключения альянсов. С одними - торговый, с другими - взаимопомощь, с третьими – нейтралитет, с четвёртыми война до взаимоуничтожения. Развитая система дипломатии.
А дипломатия невозможна без множественных союзов Подмигиваю

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

P.S.: Фух.. Вроде всем ответил.. Спасибо за идеи!
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
    Добавлено: 17:39 18-11-2007   
Anthrax
 145 EGP


Рейтинг канала: 3(27)
Репутация: 12
Сообщения: 681
Откуда: Москва
Зарегистрирован: 19.04.2003
Джерри, спасибо за ответ. Я тут сложу у себя в голове ряд наработок и тож тебе подкину для размышлений. Улыбка
_________________
Я не злопамятный. Я просто злой. И память у меня хорошая.

Последний раз редактировалось: Anthrax (21:51 18-11-2007), всего редактировалось 1 раз
    Добавлено: 21:51 18-11-2007   
Zachesa
 112 EGP

Рейтинг канала: 4(95)
Репутация: 11
Сообщения: 1387
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Звёзды в "шарике" галактики расположены настолько близко, что там может существовать только какая-нибудь энергетическая жизнь. А в межзвёздном пространстве может царить что-нибудь кристаллическое. Но эти формы жизни лучше включить в игру как фон или в виде природных бедствий, как в MOO2. Между прочем идея! Будет смысл пошарить между звёдочек, чтоб найти что-нибудь этакое.
Торговец это работа, а не смысл жизни...
Дипломатию я еще не прописал, но в двух словах так:
Находясь в объединении карьерист может выполнять (возмездно или из альтруизма, если за ним стоит реальный игрок и ему так хочется) задания одиночек или представителей других объединений, в своё свободное время, или согласовывая свои действия с карьеристом более высокого ранга (у старшего спросить надо разрешения).
Абсолютная демократия это анархия...
Или как говорит народная мудрость: "На двух конях не усидишь."
Соответственно дипломатия это отношения продвинутых одиночек (с оборванцем никто и разговаривать не станет) и лидеров между собой.
Представь себе твой подчинённый, у которого обязанностей выше крыши (а иначе что ты за начальник, если не загружаешь его под завязку) вдруг берёт работу на стороне, а на твою нагрузку ложит... вообщем выгонишь хама взашей.
Понравился мне Обвилион, раньше я в подобные игры не играл, не цепляло. А тут вылез из подземелья и загляделся как восходит солнце, вообщем играл просто потому что природу люблю, а эти гады её портили. Но сюжетное дерево там полный отстой. И вообще принцип его построения и реализации. Может в жанре RPG так принято и я просто чего-то не понимаю...
_________________
Язык Образов, как язык программирования и язык мысли, думающей машины.
    Добавлено: 13:49 19-11-2007   
Sh.Tac.
 140 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1403

Зарегистрирован: 27.07.2005
Zachesa :
И всё остальное нужно только упорядочить и скелет для алгоритма готов.


Jerry Rezet, мну тут выскажет собственную имху ессно, это всё (имею в виду первый пост) лишь начало пути, готово по сути лишь описание, то как это может выглядеть снаружи

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

нада копать глюбже, к сути, к мотивации, ничего не происходит просто так, обычно происходит лишь то (спорное утверждение канешна Гы-гы ), чего кто-то очень сильно захочет...

вопщем мну бы скромно посоветовал обратить пристальное внимание на агенты BDI (Believs, Desires, Intentions)
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 15:09 19-11-2007   
Zachesa
 112 EGP

Рейтинг канала: 4(95)
Репутация: 11
Сообщения: 1387
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Повторюсь
Zachesa :
Разумные индивиды имеют следующие основные характеристики.
1. Специализация (основное направление деятельности, цель, мотивация)

Zachesa :
Отношение зависит от соотношения целей, (мастерства), средств, расовых (половых) предпочтений и изменяется в зависимости от результатов контакта.

[цель (мотивация)+средства]*контакт=отношени
_________________
Язык Образов, как язык программирования и язык мысли, думающей машины.
    Добавлено: 16:50 19-11-2007   
Jerry Rezet
 569 EGP


Рейтинг канала: 5(113)
Репутация: 84
Сообщения: 3353
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
2 Zachesa: Последний пост немного не понял, особенно формула - как отношения могут зависеть от таких некореллирующих друг с другом величин?

Цитата:
Звёзды в "шарике" галактики расположены настолько близко, что там может существовать только какая-нибудь энергетическая жизнь. А в межзвёздном пространстве может царить что-нибудь кристаллическое. Но эти формы жизни лучше включить в игру как фон или в виде природных бедствий, как в MOO2. Между прочем идея! Будет смысл пошарить между звёдочек, чтоб найти что-нибудь этакое.
Торговец это работа, а не смысл жизни...
Да. Именно. Но насчёт "как фон" - не знаю.. Подумаю ещё.. Энергетические ФЖ, скорее всего, смогут образовываться на газовых гигантах или тропосферах звёзд, кристаллическая форма - вполне может быть и планетарной (с учётом того, что этим ФЖ необязательны "гуманоидные руки-ноги-тулавИЩЩа"). В МОО2 не довелось поиграть, но думаю, что понял, что ты хотел сказать. Думаю, что если ФЖ может быть замечена и изучена - почему бы ей не стать участником "игрового процесса"? А вот те ФЖ, которые трудно понять (предположим, что есть ФЖ, эдакие энергетические сгустки, летающие от звезды к зезде и кушающие кораПлики...) - эти вполне можно сделать и стихийным бедствием. Тем более, что если разные ФЖ не смогут понять (или даже заметить!) друг друга - то др. для друга они будут восприниматься как "часть природы", или - просто "стихийные беЦтвия". Да. Спасибо за идею. Я об этом думал, но на осознание и формулирование этого сподвиг только этот пост Подмигиваю
Sh.Tac. :
тут правидьно заметили, что рандом может выдавать совершенно нелепые ситуации, и не есть правильно полагаться исключительно на него
Вполне может быть. Или надо этот самый рандом настроить так, чтобы совсем уж взаимоисключающие вещи исключал из рассмотрения.. Тем более, что при существовании "сюжетного генератора" основной сюжет, имхо, не нужен - ибо основным будет тот, который "ведёт" игрок. Подмигиваю
Sh.Tac. :
нада копать глюбже, к сути, к мотивации, ничего не происходит просто так, обычно происходит лишь то (спорное утверждение канешна Гы-гы ), чего кто-то очень сильно захочет...
Именно. То есть мотивация НПЦ (индивидуумов, рас, фракций и сообществ) и должна являться определяющей в постановке цели каждого сюжета.
Sh.Tac. :
вопщем мну бы скромно посоветовал обратить пристальное внимание на агенты BDI (Believs, Desires, Intentions)
Непонял... Совсем запутался... Поподробней пожалуйста.
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
    Добавлено: 17:54 19-11-2007   
Zachesa
 112 EGP

Рейтинг канала: 4(95)
Репутация: 11
Сообщения: 1387
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Формула не математическая, а скорее абстрактно-логическая. Имеются в виду средства достижения цели. То есть моё отношение к другому субъекту зависит и от того какие он ставит перед собой цели и то какие средства он готов применить.
_________________
Язык Образов, как язык программирования и язык мысли, думающей машины.
    Добавлено: 12:34 20-11-2007   
Jerry Rezet
 569 EGP


Рейтинг канала: 5(113)
Репутация: 84
Сообщения: 3353
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Zachesa :
Формула не математическая, а скорее абстрактно-логическая. Имеются в виду средства достижения цели. То есть моё отношение к другому субъекту зависит и от того какие он ставит перед собой цели и то какие средства он готов применить.
Нет.. Неподойдёт - игрок и НПЦ не знают целей др.друга (по крайней мере - не должны, по крейней мере вне процесса отладки Гы-гы ). "Абстрактно-логическая" форма записи в данном случае не подходит.

Но "что-то в этом есть".. Вполне возможно.. Подмигиваю
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
    Добавлено: 12:49 20-11-2007   
Zachesa
 112 EGP

Рейтинг канала: 4(95)
Репутация: 11
Сообщения: 1387
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Вот по семантическому анализу кое что.
http://packin.ru/ariadna
При первой встрече ты кто? (варианты)
Отвечает такой то. Такие цели, привык поступать так то.
Вариант А: индивид известный проверяешь по ком-у лжёт или нет. Может и лжёт, но тебе именно такой нужен. Лучше явный враг, чем подлый друг.
Вариант Б: индивид не известный новичок в большом мире, либо шпион. Если некогда возиться а дело важное - ищешь другого. Не сильно торопишься и напарник так для компании - берёшь с собой в дело, а вдруг и вправду перспективным окажется!
_________________
Язык Образов, как язык программирования и язык мысли, думающей машины.
    Добавлено: 14:59 20-11-2007   
Jerry Rezet
 569 EGP


Рейтинг канала: 5(113)
Репутация: 84
Сообщения: 3353
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
За семантический анализ - дикое спасибо, это полезно для игр. Но, думаю, не в данном случае. Я собираюсь использовать заранее заданный набор фраз, для создания эффекта "живого общения" каждая фраза состоит из нескольких вариативных элементов, идущих в строго определённом порядке, но чтобы при любой выборке элементов (при условии, что не меняется их порядок следования) фраза сохраняла единственно возможный смысл. Разве что, скорее всего понадобиться сделать возможной "разрыв смысла" на два, три и более фраз, чтобы между ними вставить реплики игрока (типа "а зачем?", "А почему?", и прочее в таком же духе), но чтобы жто не меняло сути. Семантический анализ применять для такой вещи - слишком накладная штука, мне кажется - по реализации может и просто, но скорее всего моск сломаешь, пока придумаешь как это всё орагнизовать и зачем это нужно. Пока - всего лишь имитация Подмигиваю Нам же не нужен полноценный ИскИнт в качестве НПЦ? Гы-гы Подмигиваю
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
    Добавлено: 11:12 21-11-2007   
Jerry Rezet
 569 EGP


Рейтинг канала: 5(113)
Репутация: 84
Сообщения: 3353
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Так.. Продолжая тему, вкратце можно набросать пути реализации:
Структура сюжета.

Типы заданий:
1. Охрана
2. Доставка
3. Уничтожение
4. Совместные действия
*. Прочее (другие варианты)

Шаг 1: В зависимости от типа НПЦ и врагов/друзей его фракции выстраиваем конечную цель сюжета и основной способ его достижения (преимущественные типы миссий)
Шаг 2: Генерация "важных" заданий (обязательных для выполнения для достижения окончания сюжета) - состоит из расположенных в случайном порядке типов миссий. Это "ствол" всего "дерева заданий". Если их несколько - сюжет становится нелинейным (при прохождении задания в одном из таких "стволов" задание с таким же номером в "параллельном" стволе становится необязательным).
Шаг 3: Генерация типов субъектов задания (что-от кого охранять, кому-куда-что доставлять, что и где разведывать, что/кого уничтожать). В некоторых типах заданий может понадобиться иметь ввиду, что данная фракция имеет в собственности ("что охранять" и "куда доставлять"). Если задание связано с собственностью фракции - генерировать с учётом возможных для данного типа объекта типов заданий. Например:
Для объекта типа "фабрика" возможны несколько типов заданий:
Защита (для дружественной фабрики)
Доставка ресурсов/продукции
Уничтожение (для вражеской фабрики)
Для объекта типа "корабль/персонаж" типы заданий будут:
Защита
Уничтожение
Типа "группа кораблей":
Совместные действия (атака/эскорт других кораблей/объектов)
Уничтожение.
Типа "груз":
Доставка
Уничтожение

Шаг 4: Составление "картины взаимодействия": основной враг, с которым будут бороться, который будет указан причиной тех или иных заданий.
Подшаг 4.1: Введение в игру "третьих сил" (при необходимости), помогающих/противостоящих помимо двух сил, за/против которых сражается игрок. Определение номера задания, в котором они будут мешать/помогать игроку (так же в зависимости от типа задания - каким образом противостоит/помогает).
Подшаг 4.2: Рассчёт и определение где "третьи силы" будут действовать в союзе с "основными" фракциями, а где - самостоятельно.
Шаг 5: Генерирование "побочных" заданий, необязательных для выполнения или поражение в которых не приводит к проигрышу в сюжете, но при выполнении которых можно получить бонус для основных заданий. Принципы - те же, что и с основной линией: выполнение шагов 1-4 для побочной линии. Возможны "тупиковые линии", ни на что не влияющие.
Шаг 6: Рассчёт "бонусов" за доп.задания по определённым правилам: уничтожение кораблей одного из противников ведёт к уменьшению его активности (количество противостоящих кораблей) в осн.заданиях, успешная защита фабрики - к возможности получить бонусный объект (например ракеты нахаляву выдать могут), успешная защита крупного боевого корабля - он появляется на стороне союзников и т.д.)
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
    Добавлено: 13:10 26-11-2007   
Jurec
 435 EGP


Ведущий раздела
Рейтинг канала: 4(64)
Репутация: 106
Сообщения: 1425
Откуда: Berlin
Зарегистрирован: 25.02.2006
Вопрос:

За реализацию брался? По-моему, вполне можно сделать. Сам думал об автосюжетах. Впринципе, это граф.

Надо постепенно наращивать функционал и сложность его генерации. В таком случае написать можно что угодно. Лишь бы писали Подмигиваю
_________________
MOV topka, C++
    Добавлено: 15:46 27-11-2007   
Jerry Rezet
 569 EGP


Рейтинг канала: 5(113)
Репутация: 84
Сообщения: 3353
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Угу.. Digited не даст соврать, шо я крантец, какой ленивый, но мало-помалу кой-чего делаю. Пока наращиваю "теоретический костяк", на который постепенно наращиваю лаконичный код на С++. Правда пока этот "костяк" больше на "косяк" похож, потому как нет представления о чётком формате фраз для чат-бота.. Пока он таков:
Код:
Структура одиночной фразы, используемой в игровом чат-боте:
<ph ID=XXXXX type=q> //ID – уникальный идентификатор фразы, type – тип фразы: вопрос, ответ, повествование, приказ (соответственно ключи q, a, s, o) .
<part NN=1 EM=0> Часть фразы – начало </part> // NN – номер п/п в фразе, EM – эмоциональная окраска 0- доброжелательная 5 – нейтральная 9 – враждебная.
<part NN=1 EM=1> Часть фразы – начало </part> // Та же часть, применяемая для более недруж. обращения
<part NN=2 EM=0> Вторая часть фразы </part>
...
<action="bonus">//Не знаю как определить тэг - действие, которое может совершиться после фразы.
<links=q> XXXXX, YYYYY, ZZZZZ, … NNNNN </q> Связи с другими фразами, где параметр обозначает возможные вопросы к этой фразе, возможные ответы, если это вопрос или связанную по смыслу фразу (продолжающую сюжетный/свободный диалог персонажей и игрока)

То есть фраза выглядит в файле так:
<ph ID=XXXXX type=q>
<part NN=1 EM=0>Вообще-то</part>
<part NN=2 EM=0>пиратов здесь</part>
<part NN=3 EM=0>маловато, но всё равно - тебе хватит и одного</part>
<action="bonus">
<links=q> XXXXX, YYYYY, ZZZZZ, … NNNNN </q>
</ph>
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]
    Добавлено: 16:44 27-11-2007   
Канал Игры Мечты: «Принципы и алгоритмы сюжетной генерации»
На страницу: 1, 2, 3 ... 14, 15, 16  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: По просьбе автора - заклозиваю. (закрыл тему Harley)

  » Принципы и алгоритмы сюжетной генерации | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18