Game Maker - создание игр | HellRoom Games
Март 24, 2025, 02:33:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сложные модели поведения NPС на основе General Problem Solver(GPS)  (Прочитано 26800 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Christopher
mgflernGD
GM Pro user
*

Репутация: 99
Offline Offline

Пол: Мужской
Награды:
3 место в HellRoom Jam XВторое место на HellRoom Jam #9 [Антибиотик]500 сообщений!За постоянность! [10 дней на форуме]
API: Game Maker 7.0 Pro
Деятельность: Инди-разработчик
Сообщений: 713


DragonGameStudios


WWW
« : Январь 23, 2017, 01:16:33 »

Выкладываю этот обрывок статьи из статьи Игромания-Игрострой за 2009 год так, как она может быть полезна и натолкнуть на какие-то неординарные решения тех, кто еще не сталкивался с подобными вещами.
Саму статью будет уже довольно проблематично найти в интернете, а она дает хорошую пищу для размышлений, поэтому посчитал своим долгом выложить это на просторы форума.
Автор оригинала: Алексей Макаренков, Игромания 2009г.

Как работают сложные модели поведения NPC


В прошлом выпуске «Игростроя» мы вам уже рассказывали о проблеме AI в современных играх — в частности, упомянули, что в подавляющем большинстве игр искусственный интеллект построен на примитивных триггерах и с реальным человеческим мышлением не имеет ничего общего.
Однако существуют алгоритмы, которые делают поведение NPC очень похожим на поведение реальных людей. Например, системы, основанные на GPS (General Problem Solver — универсальный решатель задач, не путать с GPS-навигаторами).
Этот алгоритм был разработан Алленом Ньюэллом и Гербертом Сайнмоном еще в 1959 году. GPS отчасти моделирует мыслительную деятельность человека.
 Он ставит перед собой задачу (задается программистом), после чего ищет различные пути ее решения, основываясь на информации о законах функционирования окружающего мира. Если какой-то вариант решения приводит в тупик, то происходит откат системы к последней стадии, с которой можно найти работоспособный вариант. Звучит немного сложно, так что лучше давайте разберемся на конкретном примере.

Предположим, в игре имеется NPC-убийца, который знает об окружающем мире то, что в нем есть магазины, в некоторых из которых могут продаваться топоры, еще в мире есть бабушки, наделенные свойством сидеть дома или перемещаться по улицам, на улицах помимо бабушек могут встречаться милиционеры, которые могут больно ударить дубинкой или выстрелить из пистолета в коленную чашечку.
 Программист Ф.М. Послеевский ставит перед NPC непростую задачу: свести на нет поголовье бабушек на заданной игровой территории.
Дальше — никаких триггеров. В действие вступает GPS:

 NPC-убийца начинает проигрывать последовательность действий.
Выйти на улицу, подойти к бабушке, попытаться зарубить ее топором. Ошибка ввода!
 Топора нет, рубить нечем.
 Возврат к первой стадии.
Надо дойти до магазина, поискать топор.
Если в данном магазине топора нет, снова возврат к первой стадии, поиск топора в другом магазине.
 Топор найден, выходим на улицу.
Обнаруживаем бабушку, подходим к ней, замахиваемся топором.
Получаем дубинкой по голове и пулю в коленную чашечку.
Возврат к предыдущей стадии (здесь, кстати, обязательно нужно задать дополнительное «знание о мире» — возможность лечиться).
Идем к бабушке домой и используем топор по назначению уже без последствий для собственного здоровья.

Казалось бы, отличная система, позволяющая создавать миры, которые живут своей собственной жизнью, вне зависимости от того, есть в них игрок или нет (см. S.T.A.L.K.E.R.).
 Вот только все маневры персонажей необходимо просчитывать, а процессоры, увы, обладают ограниченной мощностью. Да и эффект от такой реалистичности, прямо скажем, невелик.
 Да, мир живет своей жизнью, вот только игрок не видит и сотой части всего этого великолепия. Именно поэтому GPS-подобные системы в играх используются крайне редко. Это просто нерентабельно.

Дополнение от создателя темы:
Было бы неплохо использовать для этого банальное индексирование зон и машину состояний, для которой NPC мог бы определять, что есть первостепенная задача в текущей стадии. Но, вероятно, это может быть рассмотрено как некие триггеры поведения персонажа.
Записан
DmitryDS
Потому что я такой-сякой
GM Pro user
*

Репутация: 159
Offline Offline

Награды:
За лояльность! [+150 репутации]1000 сообщений!За постоянность! [100 дней на форуме]
API: GameMaker Studio Master
Сообщений: 1061



WWW
« Ответ #1 : Январь 23, 2017, 05:52:17 »

Статья, конечно, хорошая, но довольно бесполезная, если быть честным. Во-первых, алгоритм очень общо описан, во-вторых, GPS имеет тенденцию дохнуть от комбинаторного взрыва.
Очень похожа на него архитектура под названием "планировщик" (planner). Вкратце: ИскИн "знает" обо всех наименьших действиях, которые он может совершить (подходить к предметам, брать предметы, использовать предметы...), а также об их последствиях. Каким-то способом он определяет себе цель (она может быть задана заранее или выбираться по какому-то алгоритму), а затем поэтапно составляет план достижения этой цели всеми возможными способами, после чего выбирает самый простой.
Заинтересовавшимся гуглить GOAP
Записан

Я никогда никого не пытаюсь оскорбить или обидеть, хотя порой веду себя вызывающе. Не обижайтесь, я не со зла
Christopher
mgflernGD
GM Pro user
*

Репутация: 99
Offline Offline

Пол: Мужской
Награды:
3 место в HellRoom Jam XВторое место на HellRoom Jam #9 [Антибиотик]500 сообщений!За постоянность! [10 дней на форуме]
API: Game Maker 7.0 Pro
Деятельность: Инди-разработчик
Сообщений: 713


DragonGameStudios


WWW
« Ответ #2 : Январь 23, 2017, 11:31:54 »

Да, сейчас для "прожженых" пользователей статья будет не совсем полезна, но для "архивации" и "иногда заглядвать, прочитать, вспомнить, вдохновиться" будет очень даже кстати
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.1 секунд. Запросов: 27.