Seaward.ru

Здравствуйте, гость ( Вход | Регистрация )

> ИИ для морского боя, нужно собрать статистику живых игроков
ALexusB
сообщение May 20 2009, 21:31
Сообщение #1


Разработчик ВМЛ-КВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 16,316
Регистрация: 2-November 04
Пользователь №: 3



Нужна ваша помошь!

Некоторые знают, а кто-то догадывается, но я не забросил поприще пиратски игр с концами smile.gif
Дело движется, медлено и как обычно ночами, но идет - кубики уже играбельны.

Начитался статей, много думал - понял, что к моменту начала кодинга ИИ кораблей нужно иметь базу знаний.
Помогите ее сделать!

Знания - это калька поведения нас - игроков в бою. Берем за основу бой в КВЛ-ГПК и текстом записываем свои действия.

Начну с себя, как пример, без деталей.

В бою у меня сразу идет
1. анализ состояния:
* сил противника (примерно равны, больше, меньше, сильно больше, сильно меньше).
* направления ветра

2. мои цели
* слинять из боя
* всех потопить
* всех абордировать
* часть абордировать и часть потопить
* часть абордировать и слинять из боя
Подзадачи:
* продержаться какое-то время (если это задача такая по квесту)
* защитить купца
- все это сводится в списку выше

3. Корректировка стратегии со временем, то есть повтор 1. и смена на 2.

4. Шаги для достижения цели 2.
* перезарядка
* выстрел
* маневрирование
* поднять-опустить паруса
* абордаж
* выкинуть товар

что еще обычно бывает?

И давайте лезть в детали - на что смотрим, когда оцениваем больше-меньше?

Паруса, корпус, команда, типы кораблей?

Попробуйте на примере конкретного боя описать свои действия - мне нужна статистика, я сам сведу по полочкам.
Пойдет рассказ "как я брал золотой флот" и типа того. Но в описании решений и критериев их оценки, а не литературных изысков про "отлетающие доски после бортового залпа".
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
ALexusB
сообщение Feb 17 2011, 16:01
Сообщение #2


Разработчик ВМЛ-КВЛ
*******

Seaward TeamЖелезный Профессор
Группа: Admin
Сообщений: 16,316
Регистрация: 2-November 04
Пользователь №: 3



Наконец-то подошел к задачам уровня ИИ для их практического решения. Есть полигон для применения - кораблики плывут, палят, тонут.
Есть замысел вообще для режима отладки сделать в коде возможность подключения разных ИИ, что б их можно было натравливать друг на друга. И тем калибровать параметры.

Но пока все понятные логики использования стратегий на несколько ходов (что выше описаны по делу) разбиваются о реальность - зрею, с какой стороны это все начать грызть. Кругами хожу и пока не нашел.
Начал с метрик описания всего, что есть в бою (дальности, попадание в сектор и тп). Потом это все нужно как-то анализить, чтоб принимать решения по маневру и уже от них сами команды (лево-право).
То есть, еще и траектории некие или последовательности движения нужно задавать. Чтоб не забыл ИИ в середине оверштага, зачем он его делал и что он вообще его делает smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hovgaard
сообщение Feb 21 2011, 11:10
Сообщение #3


матрос
***


Группа: форумчанин
Сообщений: 73
Регистрация: 25-January 11
Пользователь №: 24,087



Цитата(ALexusB @ Feb 17 2011, 17:01) *

Наконец-то подошел к задачам уровня ИИ для их практического решения. Есть полигон для применения - кораблики плывут, палят, тонут.
Есть замысел вообще для режима отладки сделать в коде возможность подключения разных ИИ, что б их можно было натравливать друг на друга. И тем калибровать параметры.

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


Я не программист и не математик (базовые/средние познания), но немного читал о применении эвристического подхода в кибернетике, заинтересовало. Популярно и красиво изложен в книге Стаффорда Бира "Мозг фирмы" (рус. пер.), очень рекомендую всем, кому интересна теория управления. Исходя из почерпнутых сведений, осмелюсь предложить где-то такую структуру расчетов ИИ:
Глобальная задача , определяется со старта, по входным параметрам. Инициализирует дробный (например, [0 - 1]) управляющий параметр, или "параметр успеха" (ПУ) на пути достижения глобальной задачи. Дальнейшие действия ИИ будут его повышать (в случае успешных тактик) либо понижать (противник успешно огрызается). При выборе одной из возможных тактик (оформленных в в виде дочерних к глобальной задаче процедур) достижения задачи ИИ пытается грубо просчитать, каким будет ПУ через (например) минутные интервалы в результате применения каждой из шаблонных тактик (процедур).
Среднесрочная стратегия боя будет избрана та, которая в прогнозе дала наибольший ПУ (или сумму ПУ дискретных чекпоинтов прогноза) в виде запуска действия по программе одной из алгоритмических тактик или их комбинации (ход в лоб 40с, залп ядрами, сближение, на книппеля и т.п.). При этом, сама стратегия НЕ является алгоритмом - через определенный промежуток времени, либо при драматическом изменении ключевых параметров (успешный залп бомбами с тремя критикалами) проводится извлечение текущего значения ПУ и проводится новый среднесрочный расчет (прогноз) его значения как результата применения различных стандартных тактик или их комбинаций. В итоге, предположительно наиболее успешная (с наибольшим ПУ) среднесрочная стратегия заменяет собой текущую.

Такой подход устраняет сразу несколько классических недостатков ИИ:
1. Узколобость, ограниченность в инструментарии тактик и стратегии в целом.
2. Стоический консерватизм - удержание давно неактуальной стратегии боя, определенной в начале боя или просто по слишком устаревшим параметрам.
3. Предсказуемость - даже если оставить в стороне постоянное жонглирование алгоритмическими тактиками (хотя бы, "в уме" компа, при прогнозировании на чекпоинтах, пускай он и будет выбирать одну пол-боя), эвристический подход будет иногда вносить "непредсказуемый тупизм" наряду с оригинальными, свежими боевыми комбинациями (вторых будет меньше), неизбежных вследствие проявления главного недостатка эвристического подхода - принципиальной сложности оценки и прогнозирования ПУ в процессе выполнения задачи. Собственно, оценка ПУ и есть самым сложным во всем этом.
4. Ну и резюмируя, он не страдает этим
Цитата
Слабость ИИ в практически любых компьютерных играх состоит в том, что он не умеет мыслить абстрактно и тем самым он не может мыслить комбинационно. Другими словами ИИ действует только по обстановке, но он не может создать логически направленную цепь определённых действий, имеющую общую конечную цель.
, так как именно увеличение ПУ и есть той нитью Ариадны, ведущей ИИ к успеху (выполнению глобальной задачи.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Serginio
сообщение Feb 21 2011, 11:53
Сообщение #4


инопланетянец
*******

Заслуженный КорсарСоздатель Модов к ГПК
Группа: форумчанин
Сообщений: 2,018
Регистрация: 7-August 07
Из: Днепропетровск
Пользователь №: 11,632



Цитата(Hovgaard @ Feb 21 2011, 12:10) *
Глобальная задача , определяется со старта, по входным параметрам...
Интересный метод, но его применение чревато ситуацией, которую мы можем наблюдать и сейчас - реагируя на тактическое изменение ситуации, ИИ постоянно перезаряжает орудия на различные боеприпасы (по мере приближения к нему противника), в конечном итоге гибнет, так и не сделав ни единого выстрела.
Причина в том, что не идёт просчёт "предполагаемых действий противника" - игрока.
Поэтому игроку не составляет труда растянуть караван ИИ так, как ему (игроку) будет удобнее его щипать.

ИМХО - обучать ИИ нужно с того, что определить ему чёткие "варианты боевого построения" в зависимости от выбранной тактики. А тактику выбирать исходя из единой стратегической задачи, как то - утопить ГГ; абордировать ГГ; сохранить все свои корабли; сохранить грузовые корабли каравана (один спецкорабль); увести грузовой транспорт в порт; и т.д....

В этом случае действия ИИ будут более адекватны и похожи на морской бой, а не настойчивые попытки суицида.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hovgaard
сообщение Feb 21 2011, 18:50
Сообщение #5


матрос
***


Группа: форумчанин
Сообщений: 73
Регистрация: 25-January 11
Пользователь №: 24,087



Цитата(Serginio @ Feb 21 2011, 12:53) *

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

ИМХО - обучать ИИ нужно с того, что определить ему чёткие "варианты боевого построения" в зависимости от выбранной тактики. А тактику выбирать исходя из единой стратегической задачи, как то - утопить ГГ; абордировать ГГ; сохранить все свои корабли; сохранить грузовые корабли каравана (один спецкорабль); увести грузовой транспорт в порт; и т.д....

В этом случае действия ИИ будут более адекватны и похожи на морской бой, а не настойчивые попытки суицида.


Не спорю, контроль за приемлемостью "отрыва от своих" у кораблей быть должен.
Но его вполне можно запрограммировать в простенький алгоритм.
А вот ввести истинную непредсказуемость действий алгоритмически невозможно.
Думаю, просчет предполагаемых действий игрока - вещь весьма простая в краткосрочном
прогнозировании (линейная экстраполяция параметровЮ описывающих статус игрока)
и очень сложная - в длительных прогнозах. Кто его знает, что этому человеку в голову взбредет?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Serginio
сообщение Feb 22 2011, 11:54
Сообщение #6


инопланетянец
*******

Заслуженный КорсарСоздатель Модов к ГПК
Группа: форумчанин
Сообщений: 2,018
Регистрация: 7-August 07
Из: Днепропетровск
Пользователь №: 11,632



Цитата(Hovgaard @ Feb 21 2011, 19:50) *
Думаю, просчет предполагаемых действий игрока - вещь весьма простая в краткосрочном
прогнозировании (линейная экстраполяция параметровЮ описывающих статус игрока)
и очень сложная - в длительных прогнозах. Кто его знает, что этому человеку в голову взбредет?
Совершенно верно.
Но из всего возможного многообразия действий игрока, для ИИ важны только те, которые могут помешать ему выполнить генеральную стратегическую задачу. И не только действия предпринятые противником, но и возможные его действия.
Другими словами - идёт караван ИИ в порт (по ветру). Корабли находятся в предустановленном для случая конвоирования боевом порядке. А тут генерится геймер со своим люггером и пытается против ветра атаковать караван. ИИ просчитывает, что к моменту, когда этот камикадзе подойдёт на расстояние выстрела, последнее судно из каравана уже войдёт под прикрытие порта. Какие действия должен выполнить хитрый ИИ?
Варианта 2:
1. Никаких.
2. Изменить боевой порядок так, чтобы корабли охранения находились между вражеским люггером и охраняемым караваном. Сбалансировать скорости всех судов в эскадре, чтобы этот строй сохранялся, зарядить борта боевых кораблей книппелями, а конвоируемых - бомбами. Эти действия будут очень полезны на случай, если значительно поменяется ветер.

Согласитесь, что прописать указанные действия для ИИ не так уж сложно. Алгоритм будет универсальный для многих случаев. Просто в данной иллюстрации не затрагивается такой важный аспект, как изменение направления движения каравана (его цель находится по ветру).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщений в этой теме
ALexusB   ИИ для морского боя   May 20 2009, 21:31
Dir   В бою у меня сразу идет 1. анализ состояния: * с...   May 20 2009, 21:47
makarena   Для меня: 1.анализ состояния: * сил противника (пр...   May 20 2009, 22:24
Black Angel   1.1 Количество кораблей противника(не важен класс)...   May 21 2009, 00:49
dima12   Оценка противника: *Эскадра или одиночка *Оценка с...   May 21 2009, 09:34
Джафар   Оценка противника: Оценка : Эскадра/одиночка (клас...   May 21 2009, 14:23
ALexusB   Усложним задачу - как бы вы играли против себя? Вы...   May 21 2009, 16:25
Black Angel   Усложним задачу - как бы вы играли против себя? В...   May 22 2009, 23:20
dima12   Это сложнее. *Противник равен мне по силам или си...   May 21 2009, 19:28
Dir   #Если на равне 1)даю бой, НО 2)держусь дистанции,...   May 22 2009, 06:31
ALexusB   Заряд разный по бортам будет.   May 22 2009, 08:14
Bers   Если сражаться против себя, и силы равны. То не ст...   May 22 2009, 11:47
Dir   В бою с равным соперником,потеря им части парусног...   May 22 2009, 11:54
Джафар   Тогда можно будет использовать так называемые ...   May 22 2009, 11:58
Bers   В бою с равным соперником,потеря им части парусно...   May 22 2009, 12:19
Rаvеn   Проще всего рассмотреть тактику боя на примере, ко...   May 22 2009, 15:24
Golden Hind   [b]Анализ действий обычно начинается с оценки сил ...   May 22 2009, 14:08
mr.Li   Так, ну что же, я играл бы против себя так: 1 Осто...   May 22 2009, 21:08
ALexusB   В хорошем ИИ есть плохая сторона для игр - ИИ долж...   May 22 2009, 23:28
Golden Hind   В хорошем ИИ есть плохая сторона для игр - ИИ дол...   May 23 2009, 19:56
Black Angel   2ALexuSB Надо чtобы наpод pаcкaзал как он боpetца ...   May 22 2009, 23:46
ALexusB   любой ИИ (даже тупой) нужно сделать, делать его ср...   May 23 2009, 09:20
navy   Ага, для примера, вы играетесь с ПГГ на коэффицие...   May 23 2009, 13:30
mr.Li   Хочу заявить, что это не единственная моя тактика....   May 23 2009, 20:18
Kamil   Гм... Чтобы я делал играя против себя - нападать т...   May 24 2009, 19:16
Black Angel   ALexusB вы меня не поняли.Я имел в видy 'tyпые...   May 24 2009, 23:37
Bucaneer   Для эталонного ИИ вполне можно взять существующий ...   May 25 2009, 14:51
Denis   В данной задаче необходимо посмотреть на ситуацию ...   May 26 2009, 11:02
sergo-kon   В большинстве случаев на низких уровнях развития Г...   May 26 2009, 21:38
Ван дер Декен   было бы не плохо если бы были специальные маневры ...   May 27 2009, 12:22
Mitrich   Вот и пришло время заняться многострадальным ИИ. П...   May 28 2009, 06:35
ALexusB   Я понял, что у игроков (не программистов) есть уст...   May 28 2009, 12:04
Denis   Mitrich В своем посте я попытался сделать кальку м...   May 28 2009, 20:45
ALexusB   Denis, да, возможно. Только дело не в типе, а в ст...   May 28 2009, 21:38
Mitrich   ALexusB Отвечу за себя. У меня нет никаких "з...   May 29 2009, 06:25
Denis   Mitrich Ты прав в том, что надо определиться с тер...   May 29 2009, 08:27
ALexusB   Да, все так А тут остановлю. Нет такой сильной ...   May 29 2009, 08:39
Denis   Тогда дай, плз, образец шаблона для описания мо...   May 29 2009, 09:26
ALexusB   так выше дал Идет сперва перечень шаблонов (кратн...   May 29 2009, 09:47
sergo-kon   А развороты к сзади нагоняющему противнику, будут ...   May 30 2009, 13:32
Mitrich   2Denis Тут ты прав, «золотому флоту» незачем знать...   May 30 2009, 16:00
ALexusB   ираектории джижения судов - это отдельная задача н...   May 30 2009, 21:49
delfin_   Против себя, играл бы так: Если 1х1 - снести мачт...   May 31 2009, 00:16
Denis   Тут есть важный момент для правильной оценки ситуа...   May 31 2009, 12:03
delfin_   Ну или в том случае если корабль особой ценности ...   May 31 2009, 14:34
Mitrich   2ALexusB "Траектория движения". Я об это...   May 31 2009, 14:52
Oceanlab   В дебри размышлений заходить не буду опишу свой ме...   Jun 14 2009, 01:47
Rolando   Пойдет рассказ "как я брал золотой флот...   Jun 14 2009, 08:43
Джафар   На днях играл, вышла такая фигня: Прижали меня во...   Jun 14 2009, 08:57
Rolando   Почему? ведь они враги вроде, по идее должны хотя...   Jun 14 2009, 10:17
Джафар   А под каким флагом шли Вы и какой нации и НГЗ был...   Jun 14 2009, 13:15
Serginio   Не буду описывать какое-то конкретное сражение, т....   Jun 14 2009, 14:45
Rolando   Буду рад, если хоть что-то из написанного пригоди...   Jun 14 2009, 19:05
ALexusB   Да уж... пока искушение токо одно - оставить токо ...   Jun 14 2009, 22:03
СТРАННИК   Много тут наговорили уже. Позвольте и мне вставить...   Jun 15 2009, 09:56
Serginio   Serginio играйте в патч 1.2.3 - бейтесь с Джентель...   Jun 15 2009, 21:31
ALexusB   разница в перезарядки бортов КВЛ и ГПК есть и она ...   Jun 15 2009, 12:05
Rolando   Недавно встретилась явная "дыра" в повед...   Jul 4 2009, 11:12
СТРАННИК   Проходил квест 20 моноваров Лин кор у меня был. И...   Jul 4 2009, 12:11
Serginio   А как вы проходите 20 мановаров? :1: Дык для них...   Jul 4 2009, 19:57
Rolando   А как вы проходите 20 мановаров? Использую Араб...   Jul 6 2009, 20:32
Serginio   Использую Арабеллу для взятия описи методом с/л: к...   Jul 6 2009, 21:44
Blood5   Всем привет! И так конкретное: 1. Вижу эскадр...   Jul 9 2009, 02:13
Миротворец   Если выхожу на охоту , то используя перк у меня на...   Aug 5 2009, 20:56
VladNiP   Расскажу о своей тактике в морском бою: В зависимо...   Aug 5 2009, 21:12
Керосин   предлагаю таким образом усовершенствовать тактику ...   Aug 6 2009, 13:01
Rolando   предлагаю таким образом усовершенствовать тактику...   Aug 6 2009, 16:52
Керосин   или вот пример морского боя (реально бывший в игре...   Aug 7 2009, 10:33
FoKyS   В бою у меня сразу идет 1. анализ состояния: * си...   Sep 22 2009, 10:32
ALexusB   Прочел книжецу C / С++ : C++ мастер-класс. 85 нетр...   Apr 27 2010, 08:58
N.tony   Пришел к некому концепту реализации ИИ для мор боя...   Apr 27 2010, 09:25
ALexusB   Обычно в таком случае ИИ сильно неловкий получает...   Apr 30 2010, 23:43
N.tony   Я отказался от самообучения - мне проще самому идт...   May 1 2010, 00:02
Hawcker   2.* слинять из боя * всех потопить Слинять из...   Apr 27 2010, 17:49
m-traxx   Постараюсь рассказать, что на мой взгляд позволяет...   Apr 27 2010, 19:04
bullet   Кста, а мона в сетке где-нить нарыть основы/правил...   Apr 27 2010, 20:17
Captain Flint   Кста, а мона в сетке где-нить нарыть основы/прави...   Apr 27 2010, 21:45
ALexusB   Пробовать буду - тема интересная мне, потому и дел...   May 1 2010, 00:35
HenMoR   Пробовать буду - тема интересная мне, потому и де...   Nov 2 2010, 00:45
ALexusB   Статья в тему ИИ http://xitri.com/2010/10/27/ai-c...   Nov 25 2010, 10:33
Shadow   Э-э-э, разве это не описание реализации ИИ на осн...   Nov 25 2010, 14:07
ALexusB   Не знаю, открою ли я тайну, но во многих играх, да...   Nov 25 2010, 15:31
Shadow   Не откроете. Иногда, но не всегда. Вот, почитай...   Nov 25 2010, 15:34
ALexusB   В тему ИИ книжка аж 1975года, но от того даже инте...   Dec 28 2010, 00:21
Commandor_S   В тему ИИ книжка аж 1975года, но от того даже инт...   Dec 28 2010, 08:46
Hovgaard   По теме: 1. Оценка погодных условий; 2. Проверка ...   Feb 8 2011, 16:43
Golden Hind   Слабость ИИ в практически любых компьютерных играх...   Feb 16 2011, 06:03
Serginio   Слабость ИИ в практически любых компьютерных играх...   Feb 16 2011, 13:08
ALexusB   Наконец-то подошел к задачам уровня ИИ для их прак...   Feb 17 2011, 16:01
Hovgaard   Наконец-то подошел к задачам уровня ИИ для их пра...   Feb 21 2011, 11:10
Serginio   [b]Глобальная задача , определяется со старта, по ...   Feb 21 2011, 11:53
Hovgaard   Интересный метод, но его применение чревато ситуа...   Feb 21 2011, 18:50
Serginio   Думаю, просчет предполагаемых действий игрока - ве...   Feb 22 2011, 11:54
ALexusB   Самое интересно, что навернуть стратегию высокого ...   Feb 23 2011, 01:24
Kunla   кстати по поводу абордажа, например в PotBS зацепи...   Mar 17 2011, 22:26
ALexusB   пока это все мне рано, базовых вещей нет. Такие то...   Mar 17 2011, 23:57
ALexusB   Однако, какая хорошая тема и она снова актуальна д...   Nov 28 2022, 13:30
ALexusB   Полезные статьи про ИИ в играх-стратегрях https://...   Dec 10 2022, 17:57
ALexusB   Добрался до ИИ Пока сделал просто выбор всех вариа...   Jan 5 2023, 22:05
ALexusB   Я это сделал! ИИ игровой http://seaward.ru/p...   Jan 6 2023, 21:51
2 страниц V  1 2 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 2nd June 2024 - 06:34

Блок рекламы
Яндекс цитирования Rambler's Top100
Rambler's Top100