Группа вконтакте! Подпишись!
Форум сайта

Авторизация



Реклама

Опросы

Откуда вы пришли на наш сайт?

Новые пользователи

  • gorniks
  • nensyrsy
  • saneka
  • baxa.0088
  • Persik
  • Evilsoevil
  • Arminaisss
  • ста
  • CharlesBug
  • aseoprodwig

В данный момент в этот раздел идет набор помощников, по написанию и добавлению материалов.

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

Редактор ИИ (Часть 1)

Рейтинг:   / 2
ПлохоОтлично 

Размышления о стратегиях AI


Наличие редактора компьютерных стратегий (AI) в worldedit - дает картостроителям достаточно интересные возможности. Тем не менее, не так уж часто приходится наблюдать наработки этого редактора, а еще реже - стоящие наработки. Это не связано со сложностью - редактор AI не сложнее, а на самом деле даже проще редактора триггеров (правда удобств гораздо меньше). Скорее дело в том, что сами по себе стратегии не востребованы. Кому они могут понадобиться? Разве что создателям модов и кампаний (да и то не всех). 
Стратегии, создаваемые в редакторе AI расчитаны на стандартные расы или по крайней мере не слишком отличающиеся от стандартных. Обязательно должны какие-то здания, рабочие, добыча ресурсов и т.п. Ясно, что картостроителям, создающим карты в стиле Tower Defense стратегии AI ничем помочь не могут. 
И все таки, на мой взгляд, сценарии стратегической направленности ничуть не хуже любых других сценариев и жаль, что ими почти никто не занимается. Игра starcraft до сих пор себя не изжила и немалая заслуга - удачная стратегическая система. 

 



Описание редактора


 

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

  • Общие
  • Герои
  • Здание
  • Атака
  • Проверка конфигурации


Вкладка "Общие" 
Здесь располагаются настройки AI: название; раса, под которую пишется AI; флажки для настройки параметров стратегии; список условий. 

Раса


 

Вам на выбор предложены 4 стандартные расы: люди, орки, нежить и ночные эльфы, а также пункт «нестандартная раса». Если вы выбираете стандартную расу, то тем самым ограничиваете выбор игровых объектов, которыми манипулирует AI. Вы не сможете использовать юниты и изобретать технологии других рас. 
В случае если вы выбираете нестандартную расу, то в вашем распоряжении окажутся все игровые объекты. Вы задействовать любые юниты игрока и изобретать любые доступные технологии, включая custom unit и custom tech.
Если вы пожелаете изменить в стратегии одну расу на другую, то вам будет выдано предупреждение, что такие действия приведут к обнулению данных по стратегии. Это действительно так. Все условия, группы и команды будут удалены. В связи с этим совет. 

Совет: даже если вы создаете стратегию для стандартной расы, лучше всего использовать «нестандартную расу». Почему? Потому что тогда будет намного проще вносить изменения в разработанную стратегию. Вдруг вы захотите создать аналогичную стратегию для другой расы? Или создать стратегию для аналогичной нестандартной расы? Намного проще отредактировать имеющуюся стратегию, чем писать все условия и команды заново. 

Флажки параметров


 

Узнать назначение того или иного флажка можно просто наведя на него курсор на пару секунд. В принципе тут все понятно. Какие флажки использовать зависит лишь от того, какого рода стратегию вы создаете. 
Если AI должен взаимодействовать с союзниками, имеет смысл установить флажки Сражение и Защита. 
Если вы делаете стратегию для melee, то имеет смысл включить флажки Бегство героев, Бегство войск, Бегство отрядов, Увольнение, Смена основного лагеря – тогда компьютер будет вести себя более осторожно и не вступать в невыгодные сражения. Что касается стратегий для кампаний, то тут наоборот – компьютер должен проводить самоубийственные атаки и никуда не убегать. Обычно компьютер владеет неограниченными ресурсами, и чтобы он не истощал рудники можно поставить флажок Замедлить сбор. 
Такие флажки как Случайные пути, Взять предметы, Покупать, Умная артиллерия подойдут практически для любой стратегии. 

Список условий


 

В правой части окна располагается список условий. Что это за условия? Просто условия, которые вы можете использовать в стратегии. Например, если выхотите чтобы ваш AI строил такой-то юнит, при условии, что уже построено такое-то здание. Или чтобы ферма строилась при условии, нехватки пищевых ресурсов. Условия могут применяться на вкладках Здание и Атака. Вообще говоря условия можно задавать непосредственно – без применения таблицы условий на вкладке Общие. Тем не менее, условия в списке имеют смысл в том случае, если одно и то же условие используется много раз. Проще создать условие в списке и для всех нужных действий указать это условие, чем создавать для каждого действия одно и то же условие заново. Зачем близзы поместили таблицу с условиями на вкладке Общие для меня загадка. Видимо на этой вкладке было много свободного места :). 
Остановимся более подробно на возможных условиях. Они напоминают условия из редактора триггеров и создаются по тому же принципу. В списке каждое условие должно иметь название, по которому вы будете их отличать. Существует 2 типа условий: Boolean Comparison (логические – принимают значение True (правда) и False (ложь)) и Integer Comparison (целочисленные), а так же 2 вида союзов AND (и) и OR (или), которые позволяют создавать множество комбинаций из различных условий.

Перечислю условия: 


Boolean comparison 
Attack captain is at home – «главный герой вернулся на главную базу». 
Attack group is complete – «атакующая группа укомплектована войсками». Компьютер водит в бой так называемые группы атаки, состав которых определяет создатель AI (см. ниже) 
Attack group is empty - «атакующая группа укомплектована войсками» 
Attack captain is retreating – «главный герой обращен в бегство» 
(?)Attack captain is at goal – «главный герой ушел на задание» (предположительно) 
Captain is in combat – «Главный герой сражается с кем-то» 
Creep exist anywhere – «крипсы повсюду» (предположительно) 
'''Town is under attack – «город с таким-то номером под атакой» 
Town has mine - «город с таким-то номером имеет шахту» 
Town has hall -«город с таким-то номером имеет главное здание» 
(!)Expansion spot needed - «игрок собирается строить новую базу, но все шахты в округе уем-то охраняются» 
Integer comparison 
(!)Arithmetic – арифметические действия +, -, *, /. 
(?)Command waiting – «количество команд, посланных к AI ожидающих выполнения». Не все тут до конца понятно, но путем проведения нескольких экспериментов я выяснил, что счетчик учитывает команды, которые посылаются AI следующими триггером send ai command в течении пары секунд, после чего счетчик обнуляется. 
(?!)Last command – «номер посланной команды». Это важное условие позволяет AI получать команды, посланные триггерами! Когда вы используете триггерную команду send ai command (a, b) это означает, что Last commandпараметр «удалить» = a, «покинуть» = b. Я не до конца понял, как там все работает, но путем экспериментов выяснил, что команда, посланная триггерами является значимой для AI в течении пары секунд. При этом условия на параметр «покинуть» срабатывают на 100%, а вот на удалить – когда как. 
(?!)Last command data – проведение экспериментов не выявило отличий этой и предыдущей команд. 
(!)Attack group size – «размер атакующей группы» 
Attack group health level – «процент здоровья от максимума в атакующей группе» 
Attack group mana level - «процент маны от максимума в атакующей группе» 
Current attack wave - «номер текущей волны атаки». Компьютер водит в атаку атакующие группы, состав юнитов в которых можно определять так называемыми волнами атаки (см. ниже) 
(!)Melee difficulty level – «уровень сложности игры» 
(!)Current gold amount – «количество золота у игрока» 
(!)Current lumber amount - «количество леса у игрока» 
(!)Unmined gold owned - «количество золота у игрока в шахтах, которое еще не добыто» 
(!)Food used – «количество используемой еды» 
(!)Food produced - «количество еды, производимой в фермах» 
Food produced by unit - «количество еды, производимой таким-то типом юнитов» 
(!)Number of mines owned – «количество шахт, которыми владеет игрок» 
Town with mine (ID) – «номер первого попавшегося города с шахтой» 
Next expansion town (ID) – «количество баз у игрока +1» 
(!)Total units of type – «количество юнитов такого-то типа у игрока». Считаются и те юниты, которые еще только строятся. 
(!)Total units of type completed only - «количество юнитов такого-то типа у игрока» 
Total units of type by town - «количество юнитов такого-то типа в таком-то городе» 
Gold cost of unit – «цена такого-то юнита в золоте» 
Lumber cost of unit - «цена такого-то юнита в лесе» 
Build time of unit - «время постройки юнита» 
Current upgrade level – «текущий уровень такой-то технологии» 
Gold cost of upgrade - «цена проведения апгрейда в золоте» 
Lumber cost of upgrade - «цена проведения апгрейда в лесе» 




(!) означает, что данные условия применяются достаточно часто, но подробнее об этом будет сказано ниже. 
(?) означает, что действие условия не изучено до конца. 
Заметьте, что все условия связаны только с игроком, для которого мы создаем AI. Вы не можете узнать при помощи этих условий, насколько силен противник, есть ли в составе его войск воздушные юниты и т.п. Это означает, что все AI созданные в редакторе, будут слепыми и не смогут учитывать уровень развития противника. 

 

Добавить комментарий

Защитный код
Обновить

    © Собщество игроков. 2012.

Рейтинг игровых сайтов