Войти
ПроектыФорумОцените

Стратегический ИИ

Страницы: 1 2 Следующая »
#0
22:39, 4 мар. 2003

Ктонибудь думал о реализации ИИ двигана для
постоновок сражений ?Мне всегда было интересно чем
кончаются битвы ИИ в играх типа Контры или Варкрафта..
хотя выглядит туповато можно какнить извернуться и
очеловечить процесс , вроде разбиение ИИ модуля
на  подзадачи стратегического тактического и ИИюнита...
У меня есть мыслишки я накидал коечего но мне
интерестно мнение народа ?или все будит как у енотоа
и ему подобных???


#1
23:28, 4 мар. 2003

Не понял.. То есть ты хочешь сделать програму.. которая моделировала сражение?

#2
0:30, 5 мар. 2003

Ага.Я использую бейсик как скрипт язык для программирования
ИИ .Последний пока слабоват тк я расширяю возможности скрипта...
а сами скрипты делать времени нет=(
Вообще меня массив из LOTR на мысль натолкнул...
токма я хочу его к BMRT присобачить ...потом

#3
11:26, 5 мар. 2003

Думаю иерархический метод принятия решений.
Есть интелект юнита ,  есть группы  , армии и т. д.  Каждый принимает решения в своих понятиях и исходя из своих задач.
Думаю это самый реалистичный подход.

Сам скоро буду писать ИИ,  для стратегии ... Так что есть мысли ...

#4
11:49, 5 мар. 2003

если есть что считать и без ИИ то лутше упращать кс
пытался вчера масштабное сражение поставить на
Operation Flashpoint...боже какие они тупые там.И
иерархия солдат-офицер-все тоже бесит.....разветвлять
тоже не стоит а то каждая своочь будет действовать
как "в репу" взбредет и рандом покажет=)))по моему
иерархия должна выглядить так:стратегический ИИ(генерал)->тактический(офицер)->и зольдатены собственно
кс

#5
12:14, 5 мар. 2003

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

#6
13:39, 5 мар. 2003

WildMaNтут вообще интересно начинается...
я не на реалтайм ориентируюсь .Мне не быстро надо а красиво.Это хорошая идея с агентами!) можно сдобрить
все это разным трюками со скриптами...

#7
17:49, 5 мар. 2003

WildMaN
Разжуй немного , что ты имеешь ввиду ? Например ? Статья ?

#8
9:26, 6 мар. 2003

minorlogic
Статья 117 пункт 5 -изнасилование КРС.=)
WildMaN
Вообще если ИИ занимаешься кинь линков где чего читал?

#9
9:40, 6 мар. 2003

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

#10
10:22, 6 мар. 2003

Ну да вообщем то так хотя скрипты способны придать этому
всему натуральный вид....что мне и требуется.

#11
11:36, 6 мар. 2003

WildMaN
Гм ... конечный автомат это круто, очень люблю этот термин ,  и темин "агенты" мне нравится .
Но по правде говоря  , все что я читал по данной тематике где использовались эти термины  , было ОЧЕНЬ низкого качества . Именно поэтому я и прошу поделиться опытом или ссылками.

#12
13:08, 6 мар. 2003

Могу только вкратце пересказать что я понял :)
Общая идея - разбить весь процесс "думанья" на множество мелких подпрограммок-агентов. Агенты общаются между собой _исключительно_ через общую доску объявлений, никаких читов, спецфункций, обращений в движок и т.п. Есть специальная группа агентов, которые лазят в движок, но больше они ничего не делают (на входе агент читает объявление с запросом к движку, ставит флажок что объява прочитана, на выходе агент вывешивает объявление с запрашиваемой инфой). Возможны лишь общие таблицы данных для всех агентов (абсолютно независимые от движка). Так сразу отсекается куча глюков и намного легче настраивать и отлаживать систему. Дальше стоим систему агентов по логическим уровням. Конкретно у нас  1 уровень - системные агенты, 2 уровень - агенты простейших команд, 3 уровень - агенты сложных, групповых команд, 4 уровень - оценка ситуации и принятие решений, 5 уровень - стратегический АИ.

Пример (не реальный, всё сложнее, но смысл понятен) - стоял танк и вдруг увидел чужого солдата. Агент 1 уровня "монитор" засёк вражеского солдата в зоне видимости и повесил объяву. Агент 1 уровня "поле" занёс этого солдата в инфу об общем состоянии войск врага. Агент 2 уровня "групповик" принял сообщение о нахождении врага и повесил объяву о поиске группы врагов. Агент 1 уровня "группиратор" прочитал его, посмотрел по списку видимых врагов и выдал объяву о предполагаемой группе врагов. Агент 2 уровня "самосохранение" прочитал, оценил опасность для танка и мог выдать сообщение об отступлении для агента 2 уровня "движение юнита". Агент "движение юнита" в простейшем случае выдаёт объяву на поиск безопасной точки агенту 1 уровня "поле" и затем вешает объяву агенту 1 уровня "команды юнитам", который уже общается с движком и отдаёт путь отступления в движок. Помимо этого сообщение о нахождении группы врага прочитал агент 3 уровня "оценщик", который может принять решение на локальное уничтожение группы, отдать команду агенту "сборщик групп" на сбор группы для уничтожения, дальше "движение группы" для движения к врагу, "simple attacker" для атаки группы, и заодно активизировать агент "самосохранение" для этой группы. Агент 4 уровня мог принять решение о сборе войск для отражения атаки, ну и т.д. ...

Самое главное - юниты и АИ никак напрямую не связаны. Для каждого конкретного танка не надо задавать свою функцию АИ, свой скрипт и т.п. Реально по 10-20 агентов уровня "move unit", "simple attacker" хватит на управление сотней юнитов с каждой стороны. Экономия памяти и ресурсов очевидна. Один и тот же агент (в смысле куска кода в памяти) двигает и "думает" нужный в данный момент юнит, потом по мере выполнения задач берёт себе всё новые и новые. При этом объявы вешаются для агентов данного типа, но не для конкретного агента (и вообще говоря у агентов нет личных идентификаторов, они неразличимы друг для друга).

Гибкость системы в том, что можно хоть для каждой миссии писать своих агентов, с разными параметрами, и подключать их при загрузке миссий. В одной миссии эйфория захватила солдат, и агента "самосохранение" вообще нет, в другой к примеру для шпиона "spy simple attack" будет выполнять совсем другие функции нежели для танка. Можно в пределах одной миссии задавать несколько агентов, одинаковых по логике, но для разных игровых ситуаций...

#13
18:02, 6 мар. 2003

Спасибо за развернутый ответ.  Собственно ,  это то что подсказывает здравый смысл.

"
Дальше стоим систему агентов по логическим уровням. Конкретно у нас 1 уровень - системные агенты, 2 уровень - агенты простейших команд, 3 уровень - агенты сложных, групповых команд, 4 уровень - оценка ситуации и принятие решений, 5 уровень - стратегический АИ.
"
Я это и называл "иерархический метод принятия решений".
А термин "агенты"  в данном контексте , плохо отражает суть процесса ,  мне кажется.

P.S. комментарии по поводу их реализации показывают ,  что вы далеки от совершенства в программировании. Значит есть куда расти !

#14
8:21, 7 мар. 2003

minorlogic
=)совершенства в прграммировании не бывает....а я лично
и не претендую .

Страницы: 1 2 Следующая »
ПроектыФорумОцените

Тема в архиве.