Гайды по Доте, Dota 2, стратегии и тактики Warcraft 3 Приветствую Вас Варкрафтер


Искусственный интеллект (AI) в редакторе карт Warcraft 3

Главная | Регистрация | Вход | RSS
Меню сайта
Категории каталога
Создание карт [40]
Статьи о Battle.net [30]
GGC (Garena) [4]
Интервью с топ-игроками [64]
Юмор [29]
Разное [68]
Случайная статья
Фокус с иллюзиями Мастера Клинка (0)
[Орда против всех]
Просмотров: 1416
Иллюзии натравливают крипов на армию противника
Случайная картинка
Мелкий тигр

Топ статей
Карта гайдов по героям Доты (281)
[Гайды по героям]
Просмотров: 350739
Гайд по Снайперу (Dwarven Sniper) (172)
[Гайды по героям]
Просмотров: 149574
Гайд по Хускару (Huskar, The Sacred Warrior) (269)
[Гайды по героям]
Просмотров: 142259
Гайд по Войду (Faceless Void, Darkterror) (199)
[Гайды по героям]
Просмотров: 137852
Гайд по Урсе (Ursa Warrior) (118)
[Гайды по героям]
Просмотров: 128310
Гайд по Гуле (Лайфстилеру, Найксу) (77)
[Гайды по героям]
Просмотров: 125418
Гайд по Траксе (Traxex, Drow Ranger) (89)
[Гайды по героям]
Просмотров: 107491
Гайд по Баланару (Balanar, Night Stalker) (152)
[Гайды по героям]
Просмотров: 106212
Гайд по Legion Commander (Командиру легиона, Tresdin) (166)
[Гайды по героям]
Просмотров: 103371
Главная » Статьи » Различные статьи Warcraft 3 » Создание карт


Искусственный интеллект (AI) в редакторе карт Warcraft 3

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

Описание редактора
Надо сказать, что работая над редактором AI близзы изрядно схалтурили (как и во всех остальных местах :)). Но если недостатки игры как-то устраняются в патчах, то редактор AI практически не меняется.
Редактор располагается на нескольких вкладках:
1. Общие
2. Герои
3. Здание
4. Атака
5. Проверка конфигурации

Вкладка "Общие"
Здесь располагаются настройки 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 созданные в редакторе, будут слепыми и не смогут учитывать уровень развития противника.

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

Вкладка "Герои"
На этой вкладке можно выбрать каких героев и в какой последовательности будет задействовать AI, а также какие способности будут изучать герои при достижении нового уровня.
Разработчик AI может выбрать до 3 героев, с которыми будет взаимодействовать AI. Тот факт, что AI не позволяет работать с большим числом героев – не очень приятен (хотя это еще не самый большой недостаток редактора AI). К тому же вы не можете указать герою как развивать его способности, при условии что сам герой развивается выше 10 уровня (это придется устранять триггерами). В принципе, вы можете даже заставить AI использовать и четвертого героя, хотя это геморрно и придется задействовать триггеры. Если на вкладке Общая вы указали расу Нестандартная, то сможете указывать для стратегии любых героев, какие есть в игре. С одной стороны это хорошо, но есть одна проблема: некоторые герои имеют одинаковые названия. Однажды я долго мучался, почему моя стратегия ведет себя очень странно. Оказалось, что я указал героя blademaster - того, который из кампании – красный, а не обычного. А ведь компьютер при всем желании не мог его построить :). Так что будьте внимательны.
Итак, сначала вы выбираете рабочих героев. Затем указываете шансы, что герои будут строиться в определенной последовательности. В редакторе AI это единственное место, в котором можно программировать случайные действия. Но даже тут система очень неудобна и придется повозиться, чтобы назначить те шансы, какие вы хотите.
Следующее, что вы должны сделать – это по очереди выбрать героев и указать, в какой последовательности они должны изучать геройские заклинания. Вы можете даже выбрать, в какой последовательности герой должен изучать заклинания, если он вызван вторым или третьим героем по счету. Для этого нужно убрать галочку «то же» в соответствующем списке.

Вкладка "Здания" (т.е. строительство)
На этой вкладке определяется, что и в какой последовательности компьютер должен строить.
Первое что нужно сделать – определить, какое здание для лагеря. Видимо имеется ввиду здание, постройка которого будет говорить компьютеру, что построен новый город. Тут же выбираем юнит, который будет отвечать за добычу золота и юнит для добычи леса, а также специально здание для рудника, если этот рудник нестандартный (как у undead).
Большую часть окна занимают два списка: Приоритет строительства и Приоритет добычи. Элементы списков являются указаниями для компьютера – что, где и при каких условиях нужно строить. Компьютер читает строки сверху вниз: если такой-то пункт выполнен, то он переходит к следующему. Т.е. верхней части списков находятся задания, которые компьютер должен выполнять в первую очередь, в нижней – в последнюю.

Важно: если компьютер не может выполнить какое-то указание, то в игре стратегия начнет тормозить. Это будет выгладить, как будто компьютер дошел до определенной стадии развития и вдруг остановился. Такие ошибки практически неизбежны и, к сожалению, их достаточно тяжело отловить.

Приоритеты строительства
Когда вы добавляете новую позицию в этот список, вы выбираете, где проводить строительство: где угодно, в главном лагере, в дополнительном городе (указать номер) в городе с рудником (указать номер). Затем выбираете что делать: героя (Герой 1, Герой 2, Герой 3 – на самом деле кем будут эти герои определяется на вкладке Герои), дополнительный лагерь, боевую единицу или улучшение.

Важно: компьютер может делать параллельно множество дел: что-то строить, кого-то тренировать, вызывать героя, делать улучшения. AI будет успешно справляться со всеми задачами, пока не дойдет до пункта плана, который он должен сделать, но не может. К примеру, если он должен строить несколько футмена, а в бараках уже строится другой воин. Или если нужно изобрести технологию, а денег для этого не хватает. Тогда компьютер впадет в министупор: все пункты плана до этого момента выполнены, а к тем, что после него он приступать не может. Поэтому очень важно правильно выбрать последовательность действий (что, после чего нужно делать) и (!) назначить правильные условия, при AI должен выполнять такие-то действия.
В связи с вышесказанным, условия, навешиваемые на команды, имеют большое значение для успеха AI. Добавить условие на команду можно через меню Правка, нажав ctrl-m или щелкнуть правой кнопкой мыши на условии и выбрать пункт Модифицировать условие. Вам будет предложен список условий, заданных в списке на вкладке Общие + пункт Нестандартное условие, который позволит задавать условия, не описанные в этом списке.
Обратите внимание, что вы можете заставить AI построить тех героев, не прибегая к пунктам Герой 1-3 - как обычных юнитов, но в этом случае AI не будет прокачивать их умения.

Приоритеты добычи.
Принципы работы с этим списком аналогичны описанным выше, но этот список попроще. Тут мы назначаем, как компьютер будет распоряжаться построенными рабочими: кого направить на добычу золота, кого на лес. AI точно так же читает все сверху вниз. Если первый элемент списка Золото 3, а второй Лес 2, то первые трое рабочих пойдут добывать золото, а последующие двое – лес.
На добычу вы можете отрядить фиксированное число рабочих или всех сразу. Или всех, кроме атакующих (видимо в тех случаях, когда рабочие являются боевыми единицами – как гули).
На приоритеты добычи вы также можете навешивать условия, хотя они и не всегда срабатывают по моему опыту.

Вкладка "Атака"
Здесь определяется, кого будет водить в атаку AI и на кого он должен нападать.

Атакующие отряды – Текущий отряд
Это взаимосвязанные списки. В список Атакующие отряды вы добавляете новые отряды, а при помощи списка Текущий отряд определяете состав войск в отряде. В AI для кампании атакующих отрядов может быть довольно много – с их помощью можно разнообразить атаки компьютера. К примеру, чтобы в первый раз он вел в атаку первого героя и наземные войска, во второй – второго героя и воздушные войска, в третий – третьего героя и осадные машины и т.п. Что касается AI для melee, в них редко бывает более 2-3 отрядов. Основным атакующим отрядом будет один, включающий в себя всех героев и все виды войск.
Итак, в текущий отряд вы можете добавлять виды войск. Вы может определять количество войск, входящих в отряд:

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

Волны атаки.
В списке Волны атаки вы определяете, в какой последовательности AI будет использовать атакующие отряды. Т.е. на первое задание AI поведет отряд, указанный для первой волны, для второго – второй и т.д. Кроме отряда вы можете также указать паузу между окончанием работы одной волны и началом работы следующей.
По умолчанию, после последней волны AI будет использовать последний из отрядов, который он водил атаку. Но есть возможность заставить AI повторить атакующие волны. Для этой цели служит пункт Повторные волны, в котором требуется указать номер волны, с которой будут проводиться повторы.
Ниже списка находятся еще два пункта: Минимум войск и Начальная задержка. Первый из них позволяет определить самый первый атакующий отряд. Это очень важно для melee, т.к. в них компьютер отстраивается с нуля. Нужно выбрать момент – когда герой должен отправиться в первую атаку. Например, можно создать отряд Minimum, в который включить первого героя и еще не менее 2 таких-то воинов. Тогда AI отправит героя в первую атаку только после того, как будут построены 2 воина-помощника. Если же вы включите в минимум войск только первого героя – то после постройки героя AI поведет его в атаку, но эта атака будет не очень результативна.
Пункт Начальная задержка позволяет задать паузу – через какое время идти в атаку после того, как минимум войск укомплектован.

Приоритет целей.
Это важный список, от которого во много зависит успех AI. Здесь определяется на кого AI будет ходить а атаку. Компьютер прежде всего реагирует на приоритеты вверху списка и в последнюю очередь на нижние.
Перечислим возможные приоритеты:

(?)Обычная цель – не совсем понятно. Видимо выбор цели предоставляется самой AI.
Новый лагерь (местность) [/i] – целью для AI станет завоевать участок для строительства новой базы (т.е. крипсы, охраняющие рудники).
Враг (главный лагерь) – нападение на главный вражеский лагерь. Т.е. удар по фабрикам.
Враг (дополнительный лагерь) - нападение на дополнительный вражеский лагерь. Т.е. удар по добыче ресурсов.
Враг (любой лагерь) - Нападение на любой вражеский лагерь.
Лагерь монстров – напасть на базы крипсов. Вы можете определять уровень силы крипсов. Примерно: слабые 0-10, средние 10-20, сильные 20-100. А еще можете указать, чтобы нападение велось на крипсов, среди которых нет летающих юнитов.
Купить дирижабль гоблинов – указание AI идти к лавке гоблинов и купить дирижабль. Имеет смысл на островных картах.

Итак, создайте приоритеты и расставьте их в нужном порядке. Например, что главный приоритет – вражески базы, затем обычная цель, затем криспсы. Но это еще далеко не все. На приоритеты можно (не только можно, но и нужно!) навесить условия. Если вы не навесите условий, то AI просто зациклится на первых по счету целях.
К примеру, если первая строка – атака вражеской базы (без условий), то AI вероятнее всего не будет обращать никакого внимания на остальные строки и зациклится на атаках по базе врага. Если первая строка Новый лагерь – то AI поведет воинов в атаку на крипсов, стерегущих рудники (пока не истребит их всех:)).
Какой из этого вывод? Для каждой записи в списке нужно придумать условия. Например, мы можем сделать первым приоритетом Новый лагерь и навесить условие Expansion spot needed. В итоге AI в обязательном порядке будет нападать на крипсов у рудников ПРИ УСЛОВИИ, что AI собирается строить новую базу, но нет свободных участков. Следующим пунктом можно сделать атаку на вражескую базу, ПРИ УСЛОВИИ, что AI имеет в запасе столько-то воинов и т.п. Лучше всего посмотреть, как это делается в примерах.

Вкладка "Проверка конфигурации"
Эта вкладка предназначена для тестирования AI. Тестирование сделано достаточно неплохо, за исключением тестирования нестандартных рас, у которых главное здание и рабы – нестандартные юниты. Такие нестандартные расы придется тестировать прямо в сценарии.

Скорость игры – скорость, на которой будет происходить тестирование. Можно ставить значения от 1 до 24 от стандартной игровой скорости. Но вообще говоря ставить скорость выше 8 не имеет смысла, т.к. в игре начнется торможение из-за нехватки памяти.
Туман войны – можно самого начала убрать туман войны и видеть всю карту.
Условия победы – можно отключить условия победы. Тогда тестирование продолжится даже если все противники побеждены.
Файл – можно указать сценарий, на котором будет происходить тестирование AI. Карта должна быть пригодна для melee.
Игроки – это таблица, в которой мы определяем, кто и с кем дерется.
В колонке Управляет нужно выбрать одного человека-наблюдателя (себя) и пару компьютеров. Чтобы компьютеры сражались друг с другом, их нужно поместить в разные команды. Игрокам вы можете назначить цвета, чтобы различать где какой AI. Игрокам вы можете назначить разные AI:
Текущий – тот AI, который вы создаете.
Стандартный – обычный компьютерный AI.
Нестандартный – AI, который загружается из файлов с расширением ai. Например, вы можете стравить несколько нестандартных стратегий, созданных вами и посмотреть, какая из них сильнее.
Столбец Фора позволяет ослаблять юнитов определенного игрока (давать фору).
Столбец ИИ (сила) позволяет также изменять силу AI, но другим способом. Уровни легкий, средний и безумный отличаются лишь скоростью добычи ресурсов. Первый вариант испытывает нехватку ресурсов, второй – норма, третий – имеет их с избытком (а значит может быстро развиваться и жертвовать войсками).

Как загружать AI в карту
Все достаточно просто. Прежде всего запоминаете каталог, в который вы сохранили свою стратегию. Это будет файл с расширением wai. Затем открываете нужный сценарий, загружаете менеджер импорта. В менеджере делаете команду Импорт файла – и в качестве файла указываете файл с вашей стратегией.

Важно: обратите внимание, что при загрузке файла <стратегия>.wai на самом деле загружается еще один файл <стратегия>.ai. Этот новый файл – и есть настоящая стратегия. Менеджер импорта сам произвел преобразование wai в ai! При желании вы можете экспортировать файл с расширением ai - либо чтобы отредактировать его вручную, либо чтобы использовать его как нестандартный ai при тестировании какого-то другого ai в редакторе.
После того, как AI загружен в сценарий, посмотрите, что произойдет, если открыть редактор AI. В него автоматически будут загружены все импортированные AI и вы сможете вносить в них изменения напрямую. Т.е. исчезнет необходимость все время импортировать файл с AI. Но с другой стороны, не забывайте, что при этом вы работаете с AI находящемся внутри сценария.

Как заставить компьютер использовать импортированную AI?
Заходите в редактор триггеров и создайте команду Start melee AI script for <игрок>: <название стратегии>. Название стратегии берете из списка импортированных стратегий.

Практические советы
Несколько советов, которые помогут вам работать с редактором AI:
1. Вы можете копировать элементы многих списков: условия, приоритеты строительства, приоритеты добычи, приоритеты атаки, приоритеты атаки, юниты из атакующей группы. Очень часто проще скопировать и отредактировать запись, чем создавать заново.
Копировать можно даже с одной AI в другую. Просто откройте несколько AI и переключайтесь между ними через пункт Окно.
Быстрые клавиши: копировать – ctrl-c, вставить ctrl-v.

2. На вкладке Общие в качестве расы лучше всего всегда указывать Нестандартная раса (о причинах – см выше).

3. Помните, что для нестандартных рас вы можете создавать любые юниты и давать им любые заклинания. Но будут ли юниты использовать новые заклинания – совсем не факт. Будет ли использовать юнит заклинания определяется не в AI. Это уже встроено в игру. Например вы можете дать юниту способность создавать иллюзии, но сам по себе он никогда этой способностью не воспользуется. Этого заклинания не было в игре! Какой выход? Проблему можно решить на уровне триггеров. Например дать юниту способность-пустышку на базе скажем frost armor. Это заклинание юнит будет применять самостоятельно, а мы будем отслеживать на кого оно применено и создавать иллюзии.

4. К сожалению поведение AI нельзя корректировать исходя из мощности противника, также как и вносить элементы случайности. Но при помощи триггеров это можно скорректировать. Например, каждую секунду через команду Send AI command посылать в AI информацию о силе противника. Или передавать AI случайное число.

5. Может быть у вас возникнет соблазн заставить AI строить все в определенном порядке (так, как строили бы вы, если бы играли на его месте). Понимаю ваше желание, но не забывайте, что AI не обладает вашим интеллектом. AI всего лишь выполняет план сверху вниз. Причем чем ниже находится запись, тем больше вероятность, что AI в силу сбоев не будет ею заниматься.
Первый пример. Допустим, в ваших приоритетах строительства:
..
Построить дворец орков
Построить тотем тауренов
Построить таурена
Построить таурена
Построить таурена
..
Неожиданно приходит враг и самоубийственной атакой уничтожает дворец орков. Что произойдет с AI? У нее в распоряжении будет тотем таурена, но он им не сможет воспользоваться. Он будет ждать, пока не будет заново построен дворец орков! И все это время будет пользоваться устаревшими войсками. Этот AI практически обречен против умного противника.
Или еще один пример: в ваших приоритетах строительства первые строки:
Дом вождей
Раб
Раб
Раб
..
Все тут нормально? А если враг придет, уничтожит пару ферм и большую часть строителей? Т.е. по приоритету AI должен строить раба, но для этого не хватает пищевой мощности. Нужна бы ферма, но он ее построить не сможет – ее нет в приоритетах. Значит, наступит ступор и этот AI также обречен.
Третий пример: скорее всего в начале вы будете давать команды AI строить грантов. Но когда уже есть тотем таурена, выгоднее строить тауренов. Но ваш AI все равно будет строить грантов – ведь их приоритет сохранился и он даже выше, чем у тауренов. Весело?

Как же с этим бороться?
Используйте свой интеллект :). Вы должны навешивать на приоритеты строительства определенные условия! Не даром условный оператор называется также оператором ветвления. При помощи условий мы производим ветвление алгоритма, делаем его более универсальным.
Рассмотрим еще раз наши примеры с учетом условий.
Пример 1: произведем некоторую перестановку. Переместим все что связано с тауренами ближе к началу приоретов строительсвта.
..
Построить бараки
Построить тотем тауренов
Построить таурена
Построить таурена
Построить таурена
..
Построить дворец орков
..
Законный вопрос: т.е. как? AI построит бараки, захочет построить тотем, но ведь необходимого для этого дворца нет? Ответ: мы навесим на пункт Построить тотем тауренов условие Количество дворцов таурена больше 0 (integer comparison), а на постройку каждого таурена навесим условие Количество тотемов таурена больше 0. Наша задача решена. Как только будет готов дворец, будет построен и тотем и AI будет его использовать даже если дворец будет снесен.
Пример 2: очевидно нужно расставить приоритеты. После дома вождей следующим приоритетом должна быть постройка нужного числа ферм, а затем уж постройка рабов. Но фермы нужно строить только ЕСЛИ в них есть необходимость. Можем мы определить, когда в ферме есть необходимость? Да. Я эту задачу решил создав специальное условие need farm: Food Produced – Food used меньше или равно 4. Т.е. если количество производимой еды минус количество используемой еды меньше 4 – пришло время для фермы. Поэтому у меня первые строки приоритетов выглядят так:
Дом вождей
Логово орка
Логово орка
..
Логово ррка
Раб
Раб
..
На каждое логово навешено условие need farm.
Только есть одно но. Если оставить все как есть, то при нехватке еды доблестные работнички примутся строить столько ферм, на сколько им хватит денег (подумайте почему?). Я же хочу, чтобы одновременно строилось не более 1 фермы. Поэтому я модернизировал условие need farm: (Food Produced – Food used меньше или равно 4) and (количество логов орков - количество логов орков завершенных равно 0). Т.е. если у нас строится хоть одна ферма, то количество логов больше чем количество построенных логов. А значит AI не сможет строить одновременно более одного логова.
Задача решена: в случае нехватки еды AI не будет впадать в ступор, а будет оставшимися рабочими строить фермы. Более того, мне больше не нужно вообще заботится о постройке ферм в приоритетах строительства.
Третий пример: я думаю вы уже и сами поняли, что нужно делать. Как избавить AI от необходимости строит устаревшие юниты? Всем юнитам, которые впоследствии устареют ставим условие – строить их только ЕСЛИ компьютер не дошел до определенной стадии развития. Например, строить грантов до тех пор, пока количсетво тотемов таурена = 0.

Категория: Создание карт | Добавил: Admin (17.10.2009)
Просмотров: 23505 | Комментарии: 48 | Рейтинг: 3.9/19 |
Всего комментариев: 481 2 »
1  
Как Скачать Этот Редактор Искуственного Интелекта Плиззз!!

2  
Редактор встроен в worldedit )))) который в свою очередь идет с игрой варик)

3  
прекрасно создали игру. и все понятно в тексте

4  
Спс за поддержку

24  
А ты не знаеш где скачать?

5  
а можно зделать AI чтобы он играл за тебя с карты варкрафт как и все боты тока кагбы поставить что ты играеш а насамом деле бот играет))) можно так зделать? например создал карту 2 на 2 и включил за себя бота, и получилась то что бот играет с ботом а ты смотреш)

12  
так можно сделать во время тестирования АИ ставишь свой АИ и в противники ставишь компа обычного, я так батлы устраивал, мой АИ выигрывал 3х сложных компов =)

6  
Просто заходи за зрителя и ставь ботов.

13  
Можно и так =) но вариант выше прикольнее =)

7  
чё то я не понял как создать фаил с расширением wai.

40  
Русским языком написанно:

Все достаточно просто. Прежде всего запоминаете каталог, в который вы сохранили свою стратегию. Это будет файл с расширением wai.

То что делали в редактори ИИ, а потом сохранили убдет файл с расширением wai (warcraft acient intelegence)

8  
нет мне надо бото в бателнет поставить чтобы он выигрывал за меня))

14  
тогда нет, таких ботов не знаю... ну если только ты не лунатик и пока спишь не заходишь на батл =) Прикинь, просыпаешься утром, глядишь на статы, а у тебя там +100 побед =)

9  
а в этом редакторе мона сделать задания????? если можно то как??

15  
Что значит сделать здания? Модельки? Если их, то нельзя, качай MDLVIS

10  
подскажите откуда можно скачать дополнительные модели всяких там лич кингов,дренеев?? если знаете сайт то напишите его очень надо.!

11  
xgm.ru - там в разделе про Warcraft 3 ищи

16  
подскажите, пожалуйста как сделать так чтобы комп перестал строить устаревших юнитов (я всё прочитал только не понял как назначить) а то он у меня даже устаревших не делает

19  
Что-то я вопроса совсем не понял...
Что вы хотите? Во первых напишите грамотно =\ А во вторых на форуме. Если у вас юниты не стандартные, то АИ делается триггерно. Кароче напишите нормально вопрос, желательно на форуме, тут вы долго ответа можете ждать.

17  
Задавайте свои вопросы на форуме, здесь вам никто отвечать не будет, профессионалы там.

18  
Да, на форуме лучше. Но здесь я тоже иногда профессионалов прошу отвечать.

20  
"Профессионалов"
=)))) Скорее любителя =) Отвечаю то только я =))

21  
Ну Донлаонда один раз в комментах отвечал и Ванзер несколько раз ))

22  
плз помаги зделал всё как ты написал а аи всё ровно не чего не делает

23  
Что значит ничего не делает? Просто стоит? А что делал? Как тебе помочь? Я ж не экстрасенс =\
Блин, народ, давай те на форум. Вы тут месяц будете ответ получать... А на форуме почти сразу.

25  
Тут есть кто?

27  
есть

26  
У меня такой вопрос!!!!!! Например: я создал карту на развитие! Понасоздавал кучу новых юнитов,,, И так вопрос)) Как заставить бота Пользоваться новыми Войсками, Нанимать их, использовать в бою на пример за ранее спасибо!!

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

29  
Так Карта сделана с оригинальными юнитами Они там нужны!!! Я вот иименно хочу сделать чтоб комп Пользовался не стандартными юнитами и улучшениями НАУЧИТЕ ПЛЗ!!! Карта у меня тогда будет ваще рульная))

30  
Завтра в 6 вечера я буду онлайн Кто нибудь может со мной пообщаться по этому вопросу ПЛЗ ПЛЗ ПЛЗ!!!

31  
Я вот чего не понял... Я создал карту, создал всё что нужно, но потом завис над импортированием, запуском триггеров, т. есть КАК ЗАГРУЖАТЬ AI В КАРТУ??? Ответьте плиз на мой емейл! Tinaroll@yandex.ru или Sigrif@mail.ru!!!!!!

41  
Через менеджер импорта, импортируйте ранее сохраненный файл ИИ.
И активируйте его для нужного игрока через триггерную команду.

Если не понимаете что такое триггер - прочитайте статью "пособие по триггерам для начинающих", у нас на форуме.

32  
Поймите, никто не будет писать вам на емейл. Никто не будет на это заморачиваться. Задай свой вопрос у нас на форуме и там получишь квалифицированный ответ.

33  
Здравствуйте! Как сделать так чтобы определенный отряд появлялся из неоткуда не из здания! и он бежал туда куда я ему задам!

34  
Создать через триггер, например если хочешь чтобы у тебя постоянно создавались отряды в определённом месте и шли атакуя на своём пути до другого места делать надо так:
-создаёшь триггер допустим с названием Respawn and attack
-создаёшь событие
"Время - Every 5.00 seconds of game time"
-условие в данном случае ненужно
-создаёшь действие
"Боевая единица - Create 1 Каменный голем for Нейтрально-враждебный at (Center of Respawn0011 <gen>) facing 90.00 degrees
где "Respawn0011 <gen>" область карты, которую ты отмечаешь на карте через "Слой - Области R"
-следующее действие В ЭТОМ ЖЕ ТРИгГЕРЕ
"Боевая единица - Order (Last created unit) to Перейти, нападая на противников (Center of Zoone0011 <gen>)
где "Zoone0011 <gen>" область карты, которую ты отмечаешь на карте через "Слой - Области R"

35  
И снова я! Версия карты уже 1.04 с моего сайта можете скачать без проблем)

36  
Какой карты? И какое отношение она имеет к этой статье?

37  
как в редакторе карт Warcraft 3 сделать чтобы герои могли брать предметы?А то в ходе редактирования что-то нажал, и в ходе тестирования герой не мог поднимать предметы, у него не было таблтцы в которую всё складывается....

38  
Вы наверное про инвентарь?
Зайдите в параметры стандартного героя, которого не изменяли.
Найдите свойство - способности по умолчанию.
Там будет - инвентарь (Герой)

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

Выставите такую же способность "инвентарь(герой)" своему отредактированному герою.

39  
чё то я не понял как создать фаил с расширением wai.

Русским языком написанно:

Все достаточно просто. Прежде всего запоминаете каталог, в который вы сохранили свою стратегию. Это будет файл с расширением wai.

То что делали в редактори ИИ, а потом сохранили убдет файл с расширением wai (warcraft acient intelegence)

Я вот чего не понял... Я создал карту, создал всё что нужно, но потом завис над импортированием, запуском триггеров, т. есть КАК ЗАГРУЖАТЬ AI В КАРТУ???

Через менеджер импорта, импортируйте ранее сохраненный файл ИИ.
И активируйте его для нужного игрока через триггерную команду.

Если не понимаете что такое триггер - прочитайте статью "пособие по триггерам для начинающих", у нас на форуме.

42  
Слушайте а почему я создал карту 1 на 1 я против компа сделал ему много персов сделал ИИ комп на меня волну атаки отправляет и ближнее войско убивает а дальше не идёт потом все волны собрались и попёрли на меня.Объясните чё такое

1-30 31-36
Имя *:
Email:
Код *:
Последние новости на сайте
Солнечные батареи - путь к бесплатной энергии? (0)
Reckless MC - первый фанатский сериал на движке GTA 5 (19)
Впечатляют ли вас Трансформеры? (27)
Лучшие ульты Энигмы за всю историю Доты 2 (10)
Поиск по сайту
Рекомендуем на сайте
Статистика

Онлайн всего: 23
Гостей: 23
Пользователей: 0