Показать сообщение отдельно
Старый 07.04.2012, 22:56   #3
Сардар
Новичок
 
Регистрация: 20.06.2011
Адрес: Нидерланды, Groningen
Сообщений: 9
По умолчанию Умное поведение персонажей

Пусть у персонажа есть некоторый набор навыков и вещей. Пусть есть навык "метнуть небесный огонь" и "чертов рог", тоже плюющий огнем. Допустим хотим сжечь цветок на дорогое. Не знаю на сколько умный парсер в Былинах, но предполагаю нужно будет:
  • метнуть огонь в цветок
  • рог в цветок
  • и т.п.

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

А вот для NPC это предпосылка к более умному поведению. Пусть есть не дружелюбный дракон, поведение которого по отношению к врагам "атаковать". Тогда игра автоматом находит наиболее эффективный метод для решения задачи: от новичка отмахнуться хвостом, от матерого вояки взлететь и бить огнем со всем мощи. Заметим, это не жестко прописанное поведение if-then, это динамический поиск решения (constraint satisfaction problem, на том же choco к примеру). Подобный подход открывает гибкий метод для задания поведения NPC.

Технически это потребует RDF подобного графа знаний, от качества которого зависит "интеллект" сервера. Хранение и поиск в большом графе в принципе решенная проблема (к примеру 4store). Затем по найденным решениям выбираем подходящие (CSP solver), ранжируем, применяем. Все это можно вынести в клиент, но тогда отпадут существующие клиенты, что недопустимо. Или кешировать результаты на сервере, что не сложно и эффективно.

Итог: кто-нибудь из игро-делов, может быть выложите скрипты одного любого персонажа из Былин (что то не нашел в открытом доступе). Попробую переписать под идею выше полу-натуральным языком.
Сардар вне форума   Ответить с цитированием