PDA

Просмотр полной версии : Проект усовершенствования тактического ИИ



Peter
11.10.2010, 11:21
пока фираксис не дал нам исходники игры, предлагаю обсудить возможность улучшения ИИ. а как дадут - можно будет уже со знанием дела браться за рубанок.

Улучшение может идти по двум путям: запретить ИИ делать что-то тупое
заставить его делать что-то умное

по первому пункту - сразу приходят на ум суицидальные атаки. когда одинокий воин <strike>отважно</strike> тупо кидается на армию игрока и помирает. в общем-то иногда это может быть полезно - когда армия вторжения не велика и жертвой воина можно поранить один из юнитов противника настолько что осада будет сорвана. то есть тут нужен алгоритм оценки эффективности такой жертвы. комп же по ходу ее не оценивает а просто бросает на врага всё что у него есть. тут еще одна возможность для улучшения: заставить комп накапливать силы прежде чем отправить их в атаку. анализировать сможет ли этот юнит которого он собирается отправить на защиту города чего-то добиться. тут опять же нужно оценивать соотношение сил. комп должен отводить войска если видит что их жертва ничего не принесет кроме экспы юнитам противника.

какие еще соображения будут?

W.D. Scaramush
11.10.2010, 11:58
может дать возможность варварам захватывать города?
а то приходит стадо, сидишь и пинаешь бедных (реально играть только с агрессивными)

согласен с первым пунктом, запретить ИИ прибегать малыми толпами, пусть строит разных юнитов
включить боязнь конникам - пикменов (бывает свои колесницы и хорсменов пускает прям под спирменов и умирает быстро), а лучникам ходить по одиночке
нацчить юниты ИИ лечиться

mao
11.10.2010, 11:59
Из наблюдений, требуется фиксить:

1) Часто ranged юниты при осаде не стреляют а тупо бродят под обстрелом города.
2) Для того что бы достичь места боя ИИ часто спускается на воду, где беззащитные юниты топятся стрелками/кораблями
3) Попробовать ИИ научить делать морские десанты не одним юнитом, а хотя бы 3-4.

IL2T
11.10.2010, 12:06
Без разбора исходников обсуждать и понимания структуры работы АИ обсуждать конкретные способы его улучшения бессмыслено.

Относительно абстрактных способов ты прав.

Эффект от мер "запретить ИИ делать что-то тупое" относительно невелик.

Эффект от мер "<strike>заставить</strike>научить его делать что-то умное" может быть весьма существенным.
Хотя требует намного больших усилий по сравнению с "запретить ИИ делать что-то тупое".

Я собирался подобной работой позаниматься, если свободное время будет (ну и желание соответсвенно). :)

Peter
11.10.2010, 12:15
<div class='quotetop'>Цитата(W.D. Scaramush * 11.10.2010, 11:58) 357670</div>

может дать возможность варварам захватывать города?
а то приходит стадо, сидишь и пинаешь бедных (реально играть только с агрессивными)
[/b]
для варваров (да и не только - можно просто для одиноких юнитов) можно попробовать прописать такую тактику:
1. если вражеских юнитов не видно - грабить улучшения.
2. если улучшений не видно - идти на безопасном от города расстоянии, искать улучшения. заметив - переходим к пункту 1.
3. подошел еще один варвар - прикидываем возможность взять город. если она мала - переходим к п.1. если велика - нападаем на город.
4. отступать если мало хитов и надежды на победу нет (вообще говоря я видел пару раз что ИИ отводил войска, но варвары никогда вроде не отступают), прятаться в лесу и лечиться. при подходе сильного вражеского юнита - пытаться убегать. если убежать не получится (заперли, или враг быстрее (конник)), и если враг потеряет слишком мало здоровья (1 хп например) - распускаемся (чтобы противнику не достался опыт).


<div class='quotetop'>Цитата(IL2T * 11.10.2010, 12:06) 357675</div>

Без разбора исходников обсуждать и понимания структуры работы АИ обсуждать конкретные способы его улучшения бессмыслено.
[/b]
почему ж бессмысленно - очевидно что ИИ использует тактики (например ставит лучников за милишниками, по крайней мере пытается), и даже стратегии (может отступать, чего не было в четверке), а значит определенные механизмы заложены. поэтому есть смысл подумать о том какие тактики еще можно для него придумать, не в деталях конечно а в виде обобщенных правил.
если даже у него отсутствуют какие-то части вроде механизма распознавания ситуаций, их можно будет прикрутить. как прикрутили в четверке к BBAI возможность отступать.

stealth_nsk
11.10.2010, 12:19
<div class='quotetop'>Цитата(Peter * 11.10.2010, 15:15) 357677</div>
<div class='quotetop'>Цитата(IL2T * 11.10.2010, 12:06) 357675

Без разбора исходников обсуждать и понимания структуры работы АИ обсуждать конкретные способы его улучшения бессмыслено.
[/b]
почему ж бессмысленно - очевидно что ИИ использует тактики (например ставит лучников за милишниками, по крайней мере пытается), и даже стратегии (может отступать, чего не было в четверке), а значит определенные механизмы заложены. поэтому есть смысл подумать о том какие тактики еще можно для него придумать, не в деталях конечно а в виде обобщенных правил.
[/b][/quote]

Там ИИ построен на приоритетах. Ими можно играть через XML, но возможности катастрофически ограничены. Вот тут практически максимум:
http://forums.civfanatics.com/showthread.php?t=385370

Нужен полноценный SDK для того, чтобы прикручивать к ИИ новое поведение.

Peter
11.10.2010, 12:21
<div class='quotetop'>Цитата(stealth_nsk * 11.10.2010, 12:19) 357679</div>

Нужен полноценный SDK для того, чтобы прикручивать к ИИ новое поведение.
[/b]
я не предлагаю пока ничего прикручивать, а предлагаю обсудить что было бы неплохо прикрутить. читайте заглавный пост.

Flake
11.10.2010, 12:47
Тут скорее надо с нуля переписывать. Текущий ИИ настолько жалок, что оттуда даже нечего взять.

stealth_nsk
11.10.2010, 13:00
<div class='quotetop'>Цитата(Peter * 11.10.2010, 15:21) 357683</div>
я не предлагаю пока ничего прикручивать, а предлагаю обсудить что было бы неплохо прикрутить. читайте заглавный пост.[/b]

Я боюсь, что это подход сильно не с того конца. Правила типа "подошел еще один варвар - прикидываем возможность взять город. если она мала - переходим к п.1. если велика - нападаем на город." никакого толка не дадут. Нужно делать с нуля:
1. Заменить AI через приоритеты на AI через правила, чтобы проще реализовывать остальную функциональность.
2. Сделать логистическую подсистему для определения времени доставки юнита в заданную точку.
3. Сделать определение "поле боя" для того, чтобы просчитывать бой на ограниченном количестве вариантов.
4. Сделать список (настраиваемый) базовых формаций, чтобы оптимизировать рассчет боевых вариантов.
5. Сделать понятие "армии", чтобы при строительстве юнитов ИИ ориентировался на разнообразие юнитов.
6. Сделать список (настраиваемый) базовых компоновок армии (защитная, штурмовая, грабящая, морская, штурмовая с авиацией и т.д.).
7. После этого набить правила, которые все это будут связывать.

Часть этого, насколько я вижу, реализована, но в не очень внятном виде.

Триффид
11.10.2010, 13:23
Peter пишет:
<div class='quotetop'>Цитата</div>
если убежать не получится (заперли, или враг быстрее (конник)), и если враг потеряет слишком мало здоровья (1 хп например) - распускаемся (чтобы противнику не достался опыт).[/b]

А вот это уже нафиг. Нельзя давать возможность ИИ отбирать у игрока опыт, пусть и потенциальный.

Али Гарх
11.10.2010, 13:45
Перед тем как начинать что-то делать, было бы интересно узнать от эксперта по ИИ Сольвера какие возможности будут предоставлены модерам в этом плане.

А тема действительно очень важная, поскольку "боёвка" ИИ ахиллесова пята Civ5.

kim1988
11.10.2010, 14:21
Это точно, буквально вчера на боге играл и получилось, что 300 немецких спартанцев выносят зерг бессмертных персов и весь остальной континент:)

Peter
11.10.2010, 15:08
<div class='quotetop'>Цитата(stealth_nsk * 11.10.2010, 13:00) 357687</div>

Я боюсь, что это подход сильно не с того конца.
[/b]
не надо бояться! :yes:

вы сейчас обсуждаете тонкости реализации. о чем сами же говорили постом выше, что делать этого не следует.

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

и чем вам не нравится "подошел еще один варвар"? вы считаете что варвары должны ходить в боевых порядках и управляться из единого центра?

<div class='quotetop'>Цитата(Триффид * 11.10.2010, 13:23) 357691</div>

Peter пишет:
<div class='quotetop'>Цитата
если убежать не получится (заперли, или враг быстрее (конник)), и если враг потеряет слишком мало здоровья (1 хп например) - распускаемся (чтобы противнику не достался опыт).[/b]

А вот это уже нафиг. Нельзя давать возможность ИИ отбирать у игрока опыт, пусть и потенциальный.
[/b][/quote]
почему это? если человек может распустить юнит, почему этой возможности нужно лишать ИИ?

<div class='quotetop'>Цитата(Али Гарх * 11.10.2010, 13:45) 357697</div>

Перед тем как начинать что-то делать, было бы интересно узнать от эксперта по ИИ Сольвера какие возможности будут предоставлены модерам в этом плане.
[/b]
исходники дадут рано или поздно, а если они будут то и возможности будут самые широчайшие. вопрос о том что возможно будет использовать из наработок фираксис а что нет не имеет отношения к теме треда.

Триффид
11.10.2010, 18:00
Peter пишет:
<div class='quotetop'>Цитата</div>
если человек может распустить юнит, почему этой возможности нужно лишать ИИ?
[/b]
Потому что эта фишка нужна только человеку и только в мультиплеере, а ИИ будет использовать её везде. Лично мне, к примеру, мультик не интересен вообще.