В данной статье я расскажу как сделать хороший ИИ (Искусственный интеллект) для всех типов карт.
Что такое ИИ? ИИ - это аббревиатура слова Искусственный интеллект. Конечно же вы играли во многие карты Warcraft III по сети. Но неужели вам не хотелось сыграть в эту же карту в одиночном режиме? Побегать постреляться, покачаться, открыть какие ни будь секреты карты в конце концов и вы наверняка разочаровывались когда заходили в карту и бегали один одинешенька по карте, а другие герои тупо стояли. Да, конечно хочется что бы компьютер научился думать как человек и управлял другими героями, но, это не так уж и легко сделать. Не надо сразу критиковать создателей карты, им же тоже пришлось не легко делать ее, они и не рассчитывали на то что вы будите играть в одиночном режиме, заранее предполагалось что игра будет происходить с другими людьми, если быть точнее то по сети.
Представьте себя в роли опытного картостроителя, который уже не раз создавал карты.
Что нужно сделать, для того что бы создать мощнейший ИИ. Во первых нужен достаточно хороший мозг, во вторых идея, в третьих предположение как можно эту идею воплотить в жизнь!
Какие же основные критерии для создания ИИ.
1. Движение по карте. Как же вы представляете себе хорошее ИИ без движения персонажа? “Да ни как”- ответите вы себе, и будите совершенно правы.
Что такое движение? Мы разберем по подробнее.
С точки зрения компьютера.
Если вы хоть раз пытались сделать ИИ, или смотрели чужие нароботки, то вы наверно видели, что в триггерах это будет выглядеть примерно так "Боевая единица - заставить юнит передвигаться в случайную точку региона ..." не зависимо от того есть ли там враги или нет. В некоторых случаях это конечно же не правильно (AoS), нужно компьютер заставить мыслить! Заставить его осматривать ситуацию, что бы он мог передумать и пойти в другое место если ему это будет выгодно.
С точки зрения человека.
Вы зашли в какую ни будь карту, например Angel Arena. Что вы делаете первым делом, идете раскачивать своего персонажа, но как же вы это делаете. Очень просто, выбирая то место куда вы хотите пойти вы анализируете ситуацию, есть ли там герой чужой команды, если есть то вы смотрите на его параметры, предметы и думаете выгодно ли вам туда идти? Если вы сильнее его ,то вы наверняка пойдете и попробуете убить его.
Вывод.
Мы подумали и сделали вывод, что компьютер надо научить думать! Анализировать ситуацию, выгодно ему будет убить того или иного персонажа, или лучше подождать пока он уйдет от туда, а может вообще пойти в другое место! Короче – действовать по ситуации.
2. Предметы. Этому пункту я выделил особое внимание.
С точки зрения компьютера.
Во многих наработках я видел последовательную покупку предметов. То есть игрок накопил 50 монет и он тут же идет тратить их на одну вещь, не думая о том нужна она ему или нет. Так же он будет покупать остальные предметы пока не закончатся деньги.
С точки зрения человека.
Вы находитесь в какой то зоне и справляетесь со всеми мобами, в вашу казну деньги так и летят. Вы же не будите срываться с места что бы купить какую то бесполезную вещь, а потом опять возвращаться обратно. Нет, вы лучше подкопите денег и потом купите что ни будь по лучше, то что вам действительно будет нужно. Допустим вы накопили то кол-во денег сколько вам нужно было, вот вы стоите у торговой лавки и смотрите на статистику предмета, вы – воин. Выгодно ли будет вам покупать вещь которая прибавляет ловкость? Зачем она вам, незачем, а компьютеру все равно, он ее купит. Вы будите сравнивать параметры предметов, у которого больше свойства, то вы и купите, а компьютер – нет, он не будет сравнивать.
Вывод.
Опять же повторяюсь что компьютер надо научить мыслить! Без этого ни как! Надо научить компьютер сравнивать предметы по характеристикам, выгодно ли ему будет купить вещь на мага если он воин или нет?
Думайте, старайтесь! Без труда не вытащишь и рыбку из пруда.
Автор статьи: buuni Специально для Warcraft3ft.info
Скоро выложу примеры того что у меня получилось, на данный момент научил персонажа думать, нужно ли идти ему в то место или лучше пойти в другое.
чтобы научить компьютер мыслить - нужно самому уметь мыслить небольшие недочеты в статье:
Quote (BUUNI)
вы будите задавать герою движение в случайную точку не зависимо от того есть ли там враги или нет
Quote (BUUNI)
Это конечно же не правильно
вот это - зависит от карты, в АоS и рпг, конечно же нужно каждую единицу прорабатывать, а в маленьких (!) аренах - случайное перемещение используется повсеместно
и вообще BUUNI, ты капитан очевидность, но статья норм
Статья слабовата. А вобще, это не статья, а лишь размышления автора на тему создания ИИ. Статья картостроения должна быть ориентирована на обучение читателя, в данном случае - созданию ИИ. Ни одного примера, лишь пустые слова. Среднестатистический нуб на все подобные рассуждения будет иметь один вопрос: "А как?".
BUUNI, никто не будет верить автору, который сам не доказал, что умеет делать то, что описано в статье, так, что нужны примеры, примеры и еще раз примеры!
И, как уже сообщили, она мала. Я как не умел, так толком и не умею делать ИИ ибо на одних передвижениях и скупе не ограничишься. Ты не объяснил как сделать своевременный отход из боя, исп. скилов и вообще... многие, конечно, кто хорошо знает триггеры и могут сами додуматься, но есть же, кто и не очень их знает. Или влом убить 3-4 часа только на то, чтобы понять все, что нужно для создания ИИ и еще 48 часов, чтобы создать примитивный (вместо 12)
убить 3-4 часа только на то, чтобы понять все, что нужно для создания ИИ и еще 48 часов, чтобы создать примитивный
гугля в помощь... лично мое мнение. по поводу отхода из боя ИИ доты (да, такой пример который убережет от фейлов) в этом слаб, сколько не играю реальные люди, при нападении на них, отходят, скрываются, а ИИ ведет себя неестественно. это так размышления, автор молодец, но как уже говорилось статья неполная
Может скоро напишу статью по созданию хорошего ИИ на JASS в одно триггере через таймер с пиком юнитов. Без тупых триггеров типа Юнита Атакован или Юнит входит в область.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 25 Марта 2011, 00:00:41
Слишком мало информации Надо дополнить и написать функции. Просто посылать в случайную локацию - порог смертных. Начнутся лаги, по причине сохранения позиции этой самое случайной локации в памяти. Проверено
Ну и толку будет от этого? Карту свою дать не могу так как сижу без ВЕ на ноутбуке, приеду домой на выходных скину карту, но думаю это мало чем тебе поможет. Скажу вкраце об ИИ: Система перемещения проста, по началу кажеться что совсем наоборот, релизуеться простейшим таймером без глупых аля триггеров типа юнит атакован, и тому подобное, все в одном триггере. Другое дела система сборки, так как я в жизни не видел более продвинутого ИИ чем в доте, я делаю такую же систему сборки и у себя на карте, это вышло уже сложней чем перемещение, но я практически ее закончил. Gamefr@nk, Кстати я тебе помоему скидывал уже свою карту, если так то скинь ее аркей.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Понедельник, 28 Ноября 2011, 22:55:48
Это вроде все окей,но все же не жасс,точнее пока не могу делать всякие тру наработки типо инвентаря большого Таймером пользоватся неоч люблю(ну переборю как нить) и почии косяки в изучении жасса,скину если найду))
Добавлено (28 Ноябрь 2011, 23:05:52) --------------------------------------------- Точнее говоря у мну уклон изучения жасса был в спелмэйкниг:D Ибо любил спеллы,а делал накрайность коряво.