ПроектыЧто НовогоСкачатьСообществоПоддержкаКомпанияВакансии
Список форумов » Форум по Казакам 2 » Копилка идей и предложений
О настройке АИ

Когда/Кем создано
Вопрос/ОтветНовые наверх Сортировка по убыванию
  15:50:02  24 Февраля 2004
авторe-mailОтветить URL сообщенияНаверх
Z0RG7
Профи
 

 
На форуме с: 06/22/2004
 

Сообщение редактировал(а):
Z0RG7
02/24/2004 16:22:25
Сообщений: 206
О настройке АИ

1.Об АИ в компании.

Научите АИ следующему - если он по "опыту игры" с данным игроком знает, что он как правило проигрывает в сражении при соотношении, например, 1 к 2, то АИ должен стремиться начинать сражение при наличии более "лучшего" соотношения сил, а при его отсутствии АИ должен пытаться отступить, сохранив как можно больше войск.
Это важно потому что в большинстве сражений АИ кидает в бой войска частями без учета реальной возможности на выйграш (причем с учетом того, что АИ все же не человек), а если бы он подольше "копил" войска , то игроку было бы сложнее и интереснее.
Ну и, кроме того, это по сути и есть "подстраивание" АИ под конкретного игрока - чем сложнее с этим человеком АИ сражаться, тем "лучшего" соотношения пытается добиться АИ.

2. Об АИ в сражениях. Честно говоря даю свое очень старое предложение без правок (оно относилось к АИ в "ЗА" ) :


"В этом сообщении я попробую дать несколько советов, но прежде чем переходить к ним я укажу в целом как я вижу AI, отвечающий за управление « военными действиями» европейских наций.

AI делится на блоки. Первый блок отвечает за выделение военных юнитов, предназначенных для нападения, он же организует все выделенные для нападения юниты в отряды и объединение отрядов в более крупные формирования назовем их корпусами (проблемы синхронизации скорости отрядов корпуса без создания дополнительной анимации я коснусь в конце сообщения).
Второй блок отвечает за выбор корпусу общей (стратегической) цели для атаки
Третий руководит передвижением
Четвертый - тактикой действия корпуса при столкновении с противником
и так далее.

Теперь перехожу собственно к советам.

Совет №1
Разделите всю карты на относительно небольшие шестиугольники (по площади примерно равные площади крепости) и пусть компьютер периодически подсчитывает силу кавалерии, а также стреляющих и не стреляющих юнитов противника, в каждом из шестиугольников, в которых присутствует противник (если это будет « жрать» слишком много ресурсов, то подсчитывать можно лишь в тех шестиугольниках, которые находятся более менее близко к юнитам, управляемым компьютером; кроме того можно увеличить период время, через которое производится подсчет и т.д.).
Используя эти данные блокам AI будет намного легче делать следующие действия:
· Выбирать общий путь движения корпуса до цели атаки так, чтобы не столкнуться с противником и не попасть под огонь пушек/крепостей противника;
· При столкновении с противником на пути следования корпуса до определенной ему цели, определять следует ли атаковать встреченного противника или в данном квадрате противник столь слаб, что его можно не заметить и пройти мимо либо разогнать отрядом кавалерии;

При сражении в поле с несколькими отрядами противника деление на шестиугольники поможет:
· Определять слабый фланг противника и создавать на этом фланге превосходство в силах (ведь компьютер то управляет своими юнитами быстрее и точнее, так как тыкать мышкой ему не надо). Как это будет делать AI ? Например, он определил, что в нескольких прилегающих друг к другу шестиугольниках есть противник и решил атаковать его. Далее исходя из местоположения своего корпуса он определил два крайних шестиугольника, которые он должен считать флангами противника, а также тыл противника (подробно описывать процесс определения флангов и тыла не буду, но если это нужно - готов). После этого AI становится известна как сила противника на флангах, так и в остальных шестиугольниках, которые он считает центром – исходя из этого AI выбирает свою тактику, но об этом ниже.

НУ И САМОЕ ГЛАВНОЕ: при определении действий своего корпуса или отдельного отряда, АИ "дает ему задачу" не на уничтожение того или иного отряда противника, а так - занять центр такого то шестиугольника и развернуться фронтом туда то, удерживая позицию или атакуя следующую площадь. При выполнении задачи занять/удержать шестиугольник отряд соответственно патается занять его центр и уничтожить все находящиеся в этом шестиугольнике войска, а затем развернувшись в нужную сторону идти далее или обороняться...... Таким образом для соответствующего блока АИ, управляющего дейставиями корпуса карта состоит из шестиугольников с определнным "условным" количеством сил противника в каждом из них и выбрать тактику своих действий на такой "шахматной доске" с ограниченном числом "полей" ему проще, чем анализировать карту без такого деления. А уж когда отряд получает приказ от АИ на атаку "шестиугольника" он действует через свой стандартный набор команд - атаковать центр шестиугольника "убивая всех на своем пути" /удержать "центр угольника и т.д.
Хотя может я велосипед пытаюсь изобрести???

Совет №2 не делайте AI умным.
Не надо пытаться сделать так, чтобы тактический AI выбирал для своего корпуса тактику « умно» - AI никогда не сможет это делать так. Нужно, чтобы корпус имел два-три варианта действий и более менее случайным образов выбирал один из этих вариантов (например, в корпусе есть четыре пехотных отряда и один кавалерийский: один вариант – атаковать противника в лоб пехотой и обойти противника кавалерией, ударив ей в тыл; второй вариант – атаковать в лоб кавалерией стреляющие отряды противника и за ней двинуть пехоту, третий вариант – часть стреляющей пехоты имитирует лобовую атаку, а остальная пехота пытается атаковать наиболее слабый фланг противника и уничтожив его зайти во фланг основным силам противника. Кавалерия может как идти в тыл, так и помогать атаке слабого фланга).
Такое разнообразие поможет AI казаться более умным и усложнит возможность приспособиться к нему. Кроме того, нужно, чтобы AI не делал явных глупостей, в частности не атаковал корпусом заведомо более сильный отряд (отряды) противника.

Каждый из вариантов действий корпуса назову уставом. Сколь всего должно быть уставов? Очень много, если корпусы, создаваемые компьютером разные. Но уставов может быть и не так много, если компьютер создает более менее однотипные соединения (корпусы). В реальной армии соединения являются относительно типовыми – мотострелковая дивизия, бронетанковая и т.д. и именно потому их делают « типовыми» , чтобы у каждой из них была своя задача и свой вариант действий. AI должен поступать также. Изначально для атаки противника он должен формировать типовые соединения, например, из пяти отрядов - три отряда стреляющей пехоты и два нестреляющих (либо один не стреляющий и один кавалерийский) либо все отряды стреляющие. Количество людей в каждом из отрядов AI должен выбирать исходя из своих возможностей. В начале игры AI действует вообще отдельными отрядами или соединениями из трех отрядов, в середине игры или при достижении определенного этапа развития экономики уже соединениями из пяти отрядов, причем вначале каждый отряд состоит из 15 юнитов, а потом постепенно ( с развитием экономики) количество солдат в каждом отряде соединения будет увеличиваться - на тактику количество солдат в отряде (15 или 120) никак не влияет, потому что при создании численного перевеса на фланге или при определении можно ли вообще атаковать противника AI сравнивает общую силу юнитов у себя и противника. Почему нужно много отрядов в типовом соединении, например, пять? – потому, что AI будет легче создавать преимущество на фланге или в центре и совершать обход проивника. Если отряда всего два примерно равных по численности, то одним атаковать в лоб, а вторым совершать обход рискованно – это может лишь облегчить жизнь противника. Лучше распределить AI силы так – 20-30% во фланг, а остальные идут по центру. Для того, чтобы сделать подобное деление и нужно несколько отрядов. Хотя бы три-четыре пехотных. Кавалерия для корпуса это всегда приятный бонус, позволяющий усилить как фронтальную атаку так и сделать быстрый обход или при переходе по карте разогнать мелкий отряд на пути следования, без "привлечения" основных сил. Но наличие или отсутствие в корпусе кавалерии принципиально для AI ничего менять не должно.

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

Совет 4.
AI имеет смысл определять силу юнитов противника не только в шестиугольниках о которых я писал выше (каждый примерно соответствует площади крепости в "ЗА" – назовем их тактическими, но и в более крупных, каждый из которых состоит , например, из 9 тактических. Зачем это нужно?
Как я уже говорил AI делится на блоки один из которых на общем стратегическом уровне определяет цель для атаки корпуса(соединением), а уже другие блоки определяют путь корпуса и его действия при столкновении с противником. Так вот « стратегическому блоку» AI будет проще выбирать цель для своего корпуса, если своих расчетах он будет учитывать силу противника не в маленьких шестиугольниках, а в более крупных.

В заключение скажу о синхронизации скорости, например, отряда пехоты и отряда кавалерии, объединенных в одно соединение (на эту проблему при создании соединений отрядов раньше указывал Pepsi). Скорость пехоты и кавалерии вообще синхронизировать не надо. Просто в режиме перехода корпуса (при отсутствии противника) кавалерия будет периодически останавливаться и ожидать пехоту. При встрече с противником, управление действиями соединения возьмет на себя соответствующий блок AI, который будет управлять каждым отрядом в отдельности и надеюсь AI « не придет в голову» при атаке противника пытаться синхронизировать скорость своей пехоты и кавалерии – этого просто не нужно, каждая атакует со своей скоростью.

Что касается действий корпусов, управляемых человеком, то если человек показывает корпусу идти в такую-то точку без атаки противника, то там всегда синхронизация идет по первому варианту – кавалерия идет быстрее, но она периодически останавливается и ждет пехоту; если же человек приказывает корпусу атаковать противника или определенную точку, то пехота и кавалерия движутся каждый со своей скорости без всяких остановок.
  19:04:19  26 Февраля 2004
авторe-mailОтветить URL сообщенияНаверх
Varlock
Профи
 

 
На форуме с: 06/23/2004
 

Сообщение редактировал(а):
Varlock
02/26/2004 19:07:55
Сообщений: 173
Идея с корпусами (корпусными генералами) обсуждалась нами уже довольно долго. Без корпусов практически невозможно контролировать игру уже даже после того, как у тебя более пяти формаций ! А когда 100 формаций в бою ? Так они только пороx будут прожигать пока сам за дело не возмешься. Такое уже мы наблюдали в играx Сида Майера. Кроме этого весь геймплей идет насмарку : невозможно проводить традиционную атаку на всеx флангаx по сxеме : застрельщики (егеря) впереди, позади линейная пеxота (гренадеры с фусилерами), по бокам легкая конница (уланы/гусары).
Основная цель корпуса – действовать по заданной программе, используя имеющиеся ресурсы. К примеру вот так :

В Казакаx 2 корпус генерала тоже должен зависеть только от самого игрока. От него дольно исxодить сколько и какиx частей он решает передать в распоряжение того или иного генерала. Минимум рота, максимум – сколько душе угодно. То есть сколько он считает нужным для обеспечения намеченного плана.
Игра должна идти примерно так :

Вот атака корпуса Нея развивается успешно.
Даву медлит из-за сильного сопротивления. Надо придать ему пару рот гвардейцев и пару экскадронов кирасир. Щелчек по кнопке и новые формирования маршируют на помощь ... А Понятовский вообще бежит – приказать занять круговую оборону и резервному корпусу Вандамма идти на помощь ...
  09:03:59  27 Февраля 2004
авторe-mailОтветить URL сообщенияНаверх
Z0RG7
Профи
 

 
На форуме с: 06/22/2004
Сообщений: 206
Я согласен с тобой. Но ты не понял меня... я говорил об Аи компьютерного игрока, а ты говоришь о "корпусах" игрока-человека. Кстати и в поседнем случае АИ будет проще управляться с войсками, если "корпуса" будут все-таки как то диференцированы - так у в основном кавалерийского корпуса иная должна быть тактика чем у преимущественно пехотного.
  10:11:40  27 Февраля 2004
авторe-mailОтветить URL сообщенияНаверх
Z0RG7
Профи
 

 
На форуме с: 06/22/2004
 

Сообщение редактировал(а):
Z0RG7
02/27/2004 10:47:28
Сообщений: 206
С Зет поговорил насчет этой темы и еще некоторые мысли появились по АИ - конечно мое описание "шахматной доски для АИ было дано очень условно. Например, угольник, содержащий крепость возможно должен иметь особое обозначение для АИ, но главное - каждый шестиугольник на "доске". должен описываться для АИ несколькими параметрами зависящими, от типа войск, их морального состояния, посторек и т.д., например, - сила в обороне/сила в нападении/ ценность в качестве цели/ угроза артобстрела из данного квадрата/мобильность (скорость перемещения) и может быть еще что то. Например квадрат где есть пушки с малым прикрытием будет иметь высокое значение ценности как цели, и как угрозы артобстрела из него и малое значение "силы в обороне" - соответственно АИ будет рассмартивать этот угольник как первоочердную цель. Наличие в квадрате крепости или хорошо прикрытой артилерии будет означать не только высокое значение силы в обороне, но и высокую угрозу артобстрела из него и заставит Аи обходить этот квадрат. Квадрат содержащий большое количество деморализованных, в том числе бугущих войск будет иметь высокое значение ценности как цели (войск то много), но малое значение силы в обороне - тоже подходящая цель. А чем атаковать эту цель (кавалерией, пехотой)? А вот тут уже АИ будет смотреть на состав боеспособных войск прротивника в данном угольнике и оценивать веротяность помощи этому угольнику из соседних (а для этого и понадобиться значение мобильности).
Ну и т.д.
Ну и конечно для того, чтобы действия корпуса не превращалось в хаотичное уничтожение отдельных легких целей с высоким значением ценности как цели, то до начала "мелких" боевых операций, он должен делить весь бой на фазы (а под боем он понимает локальное столкновение в угольниках, указанных ему более "высоким блоком АИ"" - стратегическим). В первой фазе, если бой носит агрессивно-наступательный характер, он должен определив угольник с основной угрозой для него - стремиться уничтожить войска в нем даже при высоком значении силы в обороне у противника. И только если он увидит, что сил недостаточно, то тогда уже он пытается уничтожать противника по частям, определяя цели, исходя из ряда заложенных в АИ принципов.
Во второй фазе - когда он видит, что побеждает - в ближайших угольниках нет сил, представляющих серьезную угрозу для него - он "зачищает территорию, которая была указана ему перед началом боя - более "стратегическим АИ", исходя из принципа в начале атакую наиболее ценную цель. А в третей фазе.... а хрен знает, чего там в третей фазе... я все равно в мультиплеер в основном играю

То же конечно поверхностное описание, но все идея более менее понятна надеюсь

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

Опять, увы, путанно получилось надеюсь больше к этой теме не возвращаться, достала она меня.
 
Каждое слово должно быть не менее 3 букв.
Искать:    
Условия поиска:    - пробелы как AND    - пробелы как OR   
 
Список форумов » Форум по Казакам 2 » Копилка идей и предложений
 

Все даты в формате День-Месяц-Год.


 
Наверх

Copyright © 1995-2019 GSC Game World. Все права защищены.
Этот сайт лучше всего просматривать в Internet Explorer 4.xx и выше, с поддержкой Javascript
При возникновении проблем обращайтесь к вебмастеру.
Продукты Opera Software не поддерживаются.
При возникновении ошибок в работе сайтов с использованием продуктов Opera Software обращайтесь
в службу поддержки Opera Software.