В следующей теме обсуждалось как реализовать "душу" мобу. Может кому будет интересно...
http://www.gamedev.ru/gamedesign/forum/?id=182159
Virtex
> Рандом вносит шум в логику поведения
> персонажей, поэтому игроку будет трудно понять эту логику. Он регулярно будет:
> 1) искать (и иногда даже "успешно находить", LOL) несуществующие закономерности
> (например, в упомянутом случае с крестьянином, который бросился в бой с
> разбойниками: игрок может подумать, что персонажей действительно можно
> "доставать" и провоцировать на эмоциональную реакцию, и впустую потратит уйму
> времени на выяснение конкретных условий этого);
> 2) сложность нахождения настоящих закономерностей (из-за рандома они будут не
> всегда проявляться в одних и тех же условиях);
> 3) сложность применения закономерностей (из-за рандома игрок не сможет
> спланировать в игре ни одной сложной заварушки).
А может оно и к лучшему? Есть мнение, что как только игрок понимает закономерности ИИ - игра заканчивается (это, конечно, больше справедливо для какой-нибудь RTS с компьютерным противником, но все же). С другой стороны, закономерности просто переместятся на более высокий уровень - на группы агентов. То есть, если один крестьянин кинулся на бандитов с ножом, это еще ничего не значит. А вот если каждый крестьянин в нескольких деревнях так делает, то тут уже есть какая-то закономерность и на действие влияет еще что-то, кроме рандома. Думаю, игрок это быстро поймет.
> Да, это недостаток описанного мной "иррационального" движка.
Не, тут D-Prince прав, это уже вопрос адекватности сценок, заложенных гейм-дизайнером (ну или адекватности его самого).
> Для снижения нагрузки на комп, можно ближайших NPC (которых ГГ видит) просчитывать "рациональным" движком, а остальных - "иррациональным".
Я бы добавил еще оптимизации: планирование ("рациональный" движок с эмоциональными оценками) - для чего-то важного и когда есть время и желание подумать; "заготовочки" - это когда свойства мира более-менее знакомы и в памяти есть подходящие старые планы, которые приводили к положительным эффектам, их и используем (а если, в процессе выполнения - какое-то действие недостижимо - перепланируем), это, кстати, вроде как, оптимизация от нашего мозга=); и "реактивное" мышление - когда нужно быстро отреагировать на раздражитель, т.е. система на основе правил.
Кстати, насчет твоего примера. Тут, возможно, как раз третий тип принятия решений вообще=) С позиции разбойника, тут еще можно говорить о каком-то выборе рационального или иррационального. Но, с точки зрения жертвы - не уверен. Дело в том, что пока ты будешь планировать свои действия и рассчитывать шансы - деньги уже будут снимать с твоего трупа. На это, собственно, у разбойников и расчет: не дать жертве подумать, заставить ее действовать реактивно - инстинктивно. И реакция у обычного крестьянина - избавиться от раздражителя, т.е. разбойников, отдав им деньги (если побег физически пресекается). Для внешнего наблюдателя, реакция НПС в такой ситуации будет говорить о его эмоциональном состоянии и подготовке. Внутри же это действительно можно сделать хоть тем же рандомом (в разумных пределах, конечно: охотник за головами, убегающий от разбойника, за которым он охотится, это уже чересчур).
D-Prince
> Для этого достаточно иметь дополнительный блок для "оживления" запоротой
> ситуации. Я где-то об этом указывал:)
> Это как в настольных ролевых играх, когда DM вытягивает ситуацию, если игроки не могут решить загадку или найти ключ к дверям. Игрокам подбрасывают
> спасительную соломинку:) В нашем случае, это будет запуск отдельных случайных "находок".
Ты что, предлагаешь оживить его? Или конкретно этому персонажу не продавать билеты на Марс? Я говорю о том, что "сюжет" должен безболезненно переносить такие ситуации, а ты предлагаешь блок, генерирующий костыли (причем запоротую ситуацию еще надо определить, не всегда же это труп персонажа, или недосягаемость предмета, в настолках-то это человек определяет). Это немного разные вещи. Или я тебя не правильно понял?
Belfegnar
> Или я тебя не правильно понял?
Наверняка, но по той причине, что видимо ты не знаком с методами работы с алгоритмами.
Belfegnar
> Ты что, предлагаешь оживить его? Или конкретно этому персонажу не продавать билеты на Марс?
Вопрос исходит от того, что же несет эта сущность? Если он просто информатор, то инфу игроку подбрасывают с любой сгенерируемой новой сущности или банально переключают на нового носителя информации. Если у него есть артефакт, тогда этот артефакт отслеживается и в случае потери следов для персонажа игрока, его банально заменяют в другом еще не активированном квэсте (то есть, заменяют награду). Или еще проще - игрок получает "подслушанный разговор" о следующем этапе "расследования". Путей вариации для поддержания важных кирпичиков можно разработать много.
-
Для придания более сильной живости мира, можно и нарезать несколько развилок, которые включаются(!) только при утери сущностей игровых (смерть персонажа или уничтожен артефакт). То есть, включение новых поворотов (с дальнейшей поддержкой генерируемых поведенческих эпизодов) может даже перевернуть сюжеты и цели для игрока:)
Но для этого и нужны разные стеки (стопки карт) моделирующие и самообразовывающие по каждой ключевой сущности и отдельно на сотню другую статистов ("глухих" НПС)...
Belfegnar
> блок, генерирующий костыли
Это не костыли, это предание живого мира без блокировки возможностей (читай: без скриптинга фиксированных исходов)
Там нет ничего сложного в определение запоротых сущностей. Просто не нужно сразу наделять их такиеми прямыми свойствами это вот Вася, а это планета Марс, а вот это билет на поездку. Эти сущности могут плавно преобразовываться, ибо это лишь рычаги и маячки в программном коде:)
==
Ну и конечно, лучше блокировка дальнейших интриг на потерянном этапе!
Просто, как и сказал ранее, нужно включение блока, который тупо спасет потерянные усилия игрока. Делов то:)
То есть, игрок будет идти по сюжетам и попадать в разные ситуации, но как только наступит потеря и отрезание нитей (важный НПС утонул или его убили), тогда игрока останавливают = ему просто говорят "сегодня получилось не так, как могло", поэтому игрок получит все равно иным способом сущность для того, чтобы продолжить игру - видеть сюжетные Па далее и преследовать какие-либо цели.
Это значит, что в игру закидываются ключевые маячки-сущности, которые игрок и "собирает". Их и отслеживает программа.
А вот далее, можно еще и плодить новые такие маячки или подбрасывать другое игроку = включать нз
В свете недавних обсуждений... Придумал игру, где балом правит эмоциональный ИИ с тонкой душевной организацией. :)
Можно начинать делать ИИ-движок для этого.
Кому-нибудь тут интересна такая игра? Или придумать что-нибудь другое?
Тема в архиве.