Сейчас 15:25:45 Понедельник, 13 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [НАРАБОТКА] Простой пример ИИ
[НАРАБОТКА] Простой пример ИИ
lawsonДата: Воскресенье, 11 Декабря 2011, 02:39:15 | Сообщение # 1
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Короче, не терпится вам показать свой новый, сильно переделанный ИИ, который недавно закончил.
Конечно, он не идеальный, так как я пытался выжать из себя все, что знаю про ИИ, его поведение и строение.
Сама карта - это клон Доты, я не ставил целью создать какую-то конкурентноспособную карту, я просто делал ИИ, и поэтому практически всех героев, предметы и скиллы взял из Доты, за это, пожалуйста, не бить. Я хочу, чтобы вы просто оценили ИИ, к тому же карта не закрытая, если что интересно - посмотреть прошу. Со временем я буду совершенствоваться и доделывать ИИ по мере изучения кода и самого ИИ, но на данный момент это лучшее, что у меня получилось.
Прощу оценить, готов к любым комментариям. Думаю, для тех, кто часто играет в Доту будет легко разобраться, что к чему. Если какие-то баги или еще чего - пишите. А для опытных кодеров типа дуосов, фкофов - лучше код не смотреть, есть пара утечек, я их со временем уберу, так как это просто рабочая версия пока.
Сама карта.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Воскресенье, 11 Декабря 2011, 15:28:42
 

LaondaДата: Среда, 14 Декабря 2011, 15:27:08 | Сообщение # 26
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
Начал изучать сей труд...
Я противник регионов и стараюсь их исключать по максимуму)) Например первое что бросилось в глаза это регионы рун, они статичны я бы использовал строго взятые координаты и не использовал регионов вообще.

Ну да ладно всегда найдется к чему придраться, но речь о ИИ. Не понравилось мне ещё что скиллы изучаются рандомно, зачем это сделано??? гораздо лучше сделать чтоб было несколько стратегий сборки и раскачки скиллов, например на легком уровне можно оставить рандом, на среднем учить средние скиллы, которые не очень полезны и на сложном очень полезные + конечно же совмещать сборки предметов под выбранную стратегию.

Я конечно понимаю, что это делать гораздо дольше. Но раз уж взялись + в карте достаточно многое сделано чего можно было и не делать вовсе, если конечно преследовалась цель ТОЛЬКО ИИ сделать.

Порылся в функциях объем меня не удивил, всё логично и сопоставимо.
Но только после просмотра кода сборок и передвижений/атак героев желание искать где там в триггерах вшиты приказы на использования скиллов окончательно исчезло и сложилось впечатление, что сделаны они как и всё остальное топорным методом, который я не хочу использовать.

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

Пожалуй это всё что мне бросилось в глаза за 5 минут игры 4 из которых я пытался купить палку, которая в доте собирается из двух обливион стафов >_<


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

lawsonДата: Среда, 14 Декабря 2011, 15:35:13 | Сообщение # 27
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Пфф кароче на этих выходных хочу сделать алгоритм телепортации ботов к башням при покупке свитка как в доте, сам то код я уже придумал теперь осталось только его написать в ВЕ, ну и займусь оптимизацией.
Слушайте кто мне может подсказать я не понимаю по какой схеме боты в доте идут убивать нейтральных крипов, какое там стоит условие, я не могу придумать.
Тоесть мне нужно придумать условие(я) по которым бот пойдет качаться или просто убивать ради денег крипов. Вот этого я еще не придумал.

Добавлено (14 Декабрь 2011, 15:29:43)
---------------------------------------------
Quote (Laonda)
Не понравилось мне ещё что скиллы изучаются рандомно, зачем это сделано???

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

Добавлено (14 Декабрь 2011, 15:31:25)
---------------------------------------------
Quote (Laonda)
, что сделаны они как и всё остальное топорным методом

Еще раз повторяю, систему использования скилов я не писал, да и писать не буду, это надо делать для каждого героя отдельно, я делал как можно муишную наработку ИИ, и я не вдавался в детали героев.

Добавлено (14 Декабрь 2011, 15:32:20)
---------------------------------------------
Quote (Laonda)
доте собирается из двух обливион стафов

да и самое интересное рецепты не все готовы. Потому что я ввел некоторые свои рецепты и обычные пришлось менять :)

Добавлено (14 Декабрь 2011, 15:32:52)
---------------------------------------------
Quote (Laonda)
в итоге я стою и спокойно бью бота, а он не отвечает мне а просто топчется на месте. советую внести коррективы и в зависимости от дальности атаки героя говорить боту на какой ренж отойти.

Посмторю что смогу сделать.

Добавлено (14 Декабрь 2011, 15:33:16)
---------------------------------------------
Спсибо за информативный комментарий.

Добавлено (14 Декабрь 2011, 15:35:13)
---------------------------------------------

Quote (Laonda)
а он не отвечает мне а просто топчется на месте

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


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 15:33:58
 

LaondaДата: Среда, 14 Декабря 2011, 15:35:19 | Сообщение # 28
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
Ну твой ИИ именно дял AOS ии(
Это я уже понял.

И я как раз таки собираюсь побороть твоё утверждение:
Quote (lawson)
это надо делать для каждого героя отдельно

Именно заставить всех героев нормально юзать свои скиллы ОДНИМ триггером.
Но только придется создать небольшую БД скиллов их типов и предназначений, жаль что этого я ещё не видел у других, пойду делать =\


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

lawsonДата: Среда, 14 Декабря 2011, 15:37:29 | Сообщение # 29
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Laonda)
создать небольшую БД скиллов их типов и предназначений

В том то идело почему я раньше этим не занялся. + надо будет создать еще условие что скилл перезаряжается и условия когда их использовать а это еще + не менее 400 сторок кода в таймер, это слишком нагрузка для бота, наверное поэтому доту под конец и начинает зверски глючить и система ИИ сбивается.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 15:38:02
 

LaondaДата: Среда, 14 Декабря 2011, 15:39:08 | Сообщение # 30
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
Quote (lawson)
Посомотри функцию на отлов атаки. Находится в самом верху. Хотя странно я вроде ему приказывал, если его атакуют и он ближнего боя отходить на приличное расстояние или к союзной башне.

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


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

lawsonДата: Среда, 14 Декабря 2011, 15:41:08 | Сообщение # 31
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Laonda, Слушай я вижу ты шарящий (хотя писал что впервые создаешь ИИ), я был бы рад с тобой сотрудничать, только в целях создания ИИ.

Добавлено (14 Декабрь 2011, 15:41:08)
---------------------------------------------
Quote (Laonda)
мне кажется что там путаются несколько условий

Не исключено и такого объема кода, но я пытался сделать как можно меньше противоречий действий.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 15:41:21
 

LaondaДата: Среда, 14 Декабря 2011, 15:42:35 | Сообщение # 32
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
Quote (lawson)
В том то идело почему я раньше этим не занялся. + надо будет создать еще условие что скилл перезаряжается и условия когда их использовать а это еще + не менее 400 сторок кода в таймер, это слишком нагрузка для бота, наверное поэтому доту под конец и начинает зверски глючить и система ИИ сбивается.

Зачем же отлов кд?
Если скилл уже откатился то он доступен если нет то не доступен.
Есть ситуации когда надо заюзать скилл и в этих ситуациях надо пытаться его юзать вот и всё.
Если скилл не откатился так герой его и не заюзает и никакого сбоя не будет. А если планировать атаку... тут конечно знание о кд пригодится, но это уже если прямо ПРО ИИ делать))

А так то нападающий враг и не спросит откатилисьу тебя скиллы или нет)


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

lawsonДата: Среда, 14 Декабря 2011, 15:48:28 | Сообщение # 33
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Ты так легко мысленно рассуждаешь, я тоже так думал, на деле оказалось сложнее чем ожидал.
Quote (Laonda)
Есть ситуации когда надо заюзать скилл и в этих ситуациях надо пытаться его юзать вот и всё.

Привиди пример, а я тебе скажу почему так не сделал.

Добавлено (14 Декабрь 2011, 15:48:28)
---------------------------------------------
Quote (Laonda)
что сделаны они как и всё остальное топорным методом

Это где ты такое находил, сколько не искал, ни где не видел ИИ на жасс - это первое, а второе что сделано методом таймера и условий. Обычно это жалкие намеки на присутствие ИИ, на само деле это просто триггеры на отлов события и только потом последовательность действий.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 15:49:20
 

LaondaДата: Среда, 14 Декабря 2011, 15:55:09 | Сообщение # 34
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
Quote (lawson)
Laonda, Слушай я вижу ты шарящий (хотя писал что впервые создаешь ИИ), я был бы рад с тобой сотрудничать, только в целях создания ИИ.

:) лестно читать, занимаюсь модостроением уже 10 лет. Обливион, морровинд, варкрафт3, Готика1,2, серьезный сем, кс, Lineage2, с января за Skyrim возьмусь.
Из живых и хоть сколько нибудь известных проектов только:
Demo-L2
C-Sharks
и карта Forest: Dead Match (F:DM)
Сотрудничать грубо сказано) Но на данный момент мне придется разбираться с ИИ тоже и если смогу быть полезен то пожалуйста.

Код у тебя ещё не такой уж и грамоздкий, но советую просто комментами помечать важные блоки или описывать их, причем ОЧЕНЬ жирными комментами и лучше всего с объяснениями.

Однажды придет время и ты забросишь к примеру эту карту, а потом снова вдруг захочешь вернуться к работе. И в таком случае без комментов не обойтись точно))
Да и другим станет легче понять твой код.

Добавлено (14 Декабрь 2011, 15:55:09)
---------------------------------------------

Quote (lawson)
Это где ты такое находил, сколько не искал, ни где не видел ИИ на жасс - это первое, а второе что сделано методом таймера и условий. Обычно это жалкие намеки на присутствие ИИ, на само деле это просто триггеры на отлов события и только потом последовательность действий.

эмм в своей карте Forest: Dead match v 1.2 такое видел)

Да и в любых картах моих "сотрудников".

Сори если обидел словом "топорный метод", я не имел в виду что В ОБЩЕМ это плохо, я имел в виду, что именно реализация обучения скиллов - примитивна, что сборка предметов тоже сделанно стандартным путем. Я не хотел обидеть или сказать, что сделанно плохо.. просто я искал нечто универсальное и сделанное на 5+.

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


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

Ty3uKДата: Среда, 14 Декабря 2011, 15:55:20 | Сообщение # 35
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Laonda, а если он еще и от говожасса избавится, то будет вообще замечательно ^_^ рли)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

lawsonДата: Среда, 14 Декабря 2011, 16:01:30 | Сообщение # 36
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Laonda)
Да и другим станет легче понять твой код.

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

Добавлено (14 Декабрь 2011, 16:01:30)
---------------------------------------------

Quote (Ty3uK)
а если он еще и от говожасса избавится, то будет вообще замечательно рли)

Ty3uK, у меня в первую очередь ИИ а только потом код.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

Ty3uKДата: Среда, 14 Декабря 2011, 16:06:36 | Сообщение # 37
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
lawson, я не имею ничего против, но я теюя всегда знал как нормального кодера. Просто я не понимаю, зачем ты полез в это болото

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

LaondaДата: Среда, 14 Декабря 2011, 16:14:16 | Сообщение # 38
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
Quote (lawson)
Ty3uK, у меня в первую очередь ИИ а только потом код.

противоречивое утверждение :)

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

Вы упустили самое главное: комменты ДЛЯ ВАС, а не для других. Выбрось из головы вообще то, что кому-то нужен твой ИИ. Эта мысль многим мешает =\ некая фанатичная идея что твой код украдут используют и станут знаменитыми и богатыми.

Даже если твой код кто-тои получет и хвала небесам если кто-то со знаниями меньше твоих моих или тузика сможет вообще импортировать код и использовать его. максимум что выйдет:
1) Человек пару дней порадуется своей карте с ботами
2) человек научится делать ии и переделает твой код.

Не понимаю, что мешает комментить, в первую очередь для СЕБЯ, а уже потом для всяких Вась и Петь.
Так что не надо тут думать что я наглею) личном не от этого никакой выгоды нет и я здесь только потому что тема разговора интересная. Я попытался дать совет, а уже твоё дело принять его или забить ан него :)

И поменяйте вы уже эту капчу >_< она подвергается взлому + злит новых участников форума. Есть новые всякие простенькие и взломостойкие, например, которые на определенные движения курсора реагируют, мозайки там :) Ну ет я как всегда не в своё дело)


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

lawsonДата: Среда, 14 Декабря 2011, 16:26:11 | Сообщение # 39
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Laonda)
некая фанатичная идея что твой код украдут используют и станут знаменитыми и богатыми.

С одной стороны ты прав, смотря на мои действия действительно так и получается. Да но в тоже время я с удовольствие научу других, а как мне показать что я умею, на словах?
Quote (Laonda)
2) человек научится делать ии и переделает твой код.

Quote (Laonda)
карта открытая

Я только за, я не жадничаю иначе толку мне было бы сюда выкладывать, здесь очень много людей которые даже понятия не имеют с чего начинать.
Quote (Laonda)
Не понимаю, что мешает комментить, в первую очередь для СЕБЯ

Ну надо начинать с того что я любой код могу 100500 раз переделывать, тем самым улучшать ИИ, поэтому для того чтобы начать расставлять все возможные комменты мне сначала надо закончить саму работу по исправлению, добавлению. На это время я найду. У меня все системы отделены в триггеры, и я всегда знаю где найти то что не работает, хотя не дано у меня была проблема с блоком endif но это уже чисто синтаксическая ошибка.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 16:28:29
 

LaondaДата: Среда, 14 Декабря 2011, 16:38:57 | Сообщение # 40
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
даже в одной подсистеме может быть несколько блоков отвечающих за разное их бы и следовало пометить разумеется я не говорю о каком-то конкретном твоем триггере, я имею в виду, что лучше бы писать их там где вообще возможно и логично)

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

Вот элементарная ситуация, применительная ко многим картам:
Герой А ползает по лесу
Герой Б натыкается на героя А

Герой Б (в моей системе ИИ) должен оценить ситуацию(атаковать или спасаться, гнобить или вступить в недолгий бой) найти скилл отвечающий за нападение/бой и попытаться заюзать его на героя А, если понялч то надо атаковать.

Во всем этом героя Б не интересуют откаты скилла. Если скиллы для боя атаки будут в откате они просто не заюзаются и герой будет атаковать на уроне простом.

Герой А предпринимает те же действия и ту же логику.

Когда по арифметическим подсчетам хп, брони,урона и тд один из героев поймет, что пора бы делать ноги он должен обратиться к "бд" и выяснив какие у него магии есть для побега применять их пока направляется к "убежищу".

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


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

lawsonДата: Среда, 14 Декабря 2011, 17:06:51 | Сообщение # 41
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Laonda)
Когда по арифметическим подсчетам хп, брони,урона и тд один из героев поймет

После этих слов я понял что даже не знаешь с чего начать.
Тут выжны не только кд а все важно.
Допустимв моем примере через таймер
делаю новое условие
если (вражеский герой находится близко) - это только условие а ведь должно быть суждение что твой ЮНИТА А атакует или собирается это уже делается через поиск приказа - тоесть еще одно условие
в этом условии я нахожу приказа если герой отдал приказ атаковать то делать такие то действие:
юнита Б - герой ловкач - в базе данный я быстро прохожу по всем героям цилом и нахожу твоего ГЕРОЯ Б, дальше по базе ищу его скилы, допустим я знаю что у него есть скилл который прикажет ему скрытся в невидимость. Так я нашел героя, нашел его спелл отвечающую за невидимость.
А теперь идут условия согласно которым он будет использовать спелл.
Мы знаем что герйо А хочет атаковать героя Б (через приказ) мы знае что у героя Б есть спелл который даст ему невидимость, теперь составим условия по которым герой Б должен выбрать использовать спелл невидимость или нет.
1) Условие что у героя А больше хп чем у героя Б
2) Условие что у героя А больше брони чем у Б - допустим мы знаем сколько у каждого брони
3) Что рядом нет других вражеский героев Б
4) Что рядом нет союзных героев Б
5) Условие что спел не кдшиется - как это сделать я знаю.
Если все услоия выполнены то использовать спелл героя Б - невидимость.
Но это были лишь условия которые или выполняются или нет. А если например условие что у героя А больше хп чем у Б но меньше брони и что у героя Б кдшиется спелл и вот тогда надо придумывать еще условия по которым бот Б опять выберет нужный вариант.
Пфф ВОТ ПОЧЕМУ Я НЕ ДЕЛАЛ ЭТУ СИСТЕМУ.
А то как ты сказал вышло бы слишком как ты говоришь "топорно" - тоесть героя А рядом с Б и тут Б должне без каких причин использовать спелл, это уже попахиват идиотизмом.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

LaondaДата: Среда, 14 Декабря 2011, 17:24:59 | Сообщение # 42
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
Эммм я вот сколько с вами переписываюсь, либо я не верно доношу свои посты либо ты зацикливаешься не на том вовсе)

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

Ты пиешь что мой метод идиотский >_<

допустим я не обратил внимание на это оскорбление. Возникает вопрос зачем кд вообще нужен кроме детального условия (которое нужно в AOS только) В твоем случае игра специфична и твоим героям дается возможность стоять за вышкой и высовываться только в нужный момент. Для этого я бы составил таймеры которые меняли бы значения логических массивов по которым уже и смотрел бы откат был или нет.

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

Как показала мне практика - отлов событий с тем кто атаковал первым пользы не принесла да и особого смысла в этом я не вижу именно для своего ИИ. Разве что сверить параметры героя и понять еслть ли смысл за ним бежать или приблизиться.

P.S. что за клоуны отписываются в теме моего проекта, они всегда так троллят?)


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

lawsonДата: Среда, 14 Декабря 2011, 18:14:00 | Сообщение # 43
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Laonda)
Ты пиешь что мой метод идиотский

я имел ввиду: если бы я написал эту стстему
Quote (lawson)
попахиват идиотизмом

Добавлено (14 Декабрь 2011, 18:08:05)
---------------------------------------------

Quote (Laonda)
значения логических массивов по которым уже и смотрел бы откат был или нет.

так и делается.

Добавлено (14 Декабрь 2011, 18:09:25)
---------------------------------------------

Quote (Laonda)
что за клоуны отписываются в теме моего проекта, они всегда так троллят

не обращай внимания, они ко всем новичкам так относятся.

Добавлено (14 Декабрь 2011, 18:11:30)
---------------------------------------------

Quote (Laonda)
не зависимо от кд. есть скилл - юзнул, нет скилла - не юзнул, в процессе видишь что тот побеждает - бежим.

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

Добавлено (14 Декабрь 2011, 18:14:00)
---------------------------------------------

Quote (Laonda)
действовать не зависимо от кд

Да забудь ты про этот кд, я просто привел в пример одно из условий, если бы я строил эту систему.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

LaondaДата: Среда, 14 Декабря 2011, 18:20:12 | Сообщение # 44
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
О Иннос >_<

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

Что-то либо я тебя не понимаю, либо ты меня)

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

Тоже самое сделает и ИИ не зная своего кд.


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

lawsonДата: Среда, 14 Декабря 2011, 18:24:17 | Сообщение # 45
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Laonda)
у тебя мало хп и ты решил что надо делать

Вот ты и попался. Ты сам это сказал, так вот как ты объяснишь боту что надо "делать ноги", как ты объяснишь что у тебя маленькая скорость передвижения, как ты объяснишь что вышка далеко или близко - это все условия ты сам это только что доказал!? Из этого всего и следуют будущии действия которые совершит ИИ.

Добавлено (14 Декабрь 2011, 18:24:17)
---------------------------------------------
Ты пытаешся оправергнуть то что очевидно.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Среда, 14 Декабря 2011, 18:23:18
 

_Nerevar_Дата: Среда, 14 Декабря 2011, 18:40:31 | Сообщение # 46
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
Не очень понял вашу логику написания ии,но я лично использую следующий принцип:
По событию таймера я получаю для каждого бота такие данные,как текущее здоровье и стоит ли он на базе,вылечился ли,кол-во союзных крипов,вражеских крипов,есть ли вражеское здание и возможно ли его добить,есть ли союзное здание и можно ли его добить,наличие вражеских героев и героя с малыми хп.=>это всё для текущего состояния "0",т.е. нет текущей задачи и бот в поиске её.Они все выстроены в замещающем друг друга порядке,т.е. конструкциями

if (1) then
endif
if (2) then
endif
и т.д.

В итоге самое высокоприоритетное условие стоит в самом низу - т.е. при его срабатывании оно перекроет все остальные и будет выполняться соответствующее действие,текущее состояние изменится на допустим "5",и будут выполняться присущие этому условию действия.В итоге для всех текущих состояний выстроена своя система приоритета действий и нет никакой мороки с выстроением громоздких конструкций(необходимо всего лишь выстроить цепочку приоритетов,где самые важные будут стоять внизу всех условий).
Также советую выделить все действия в коде в отдельные функции, а все вышеперечисленные проверки\действия выполнять вызовами информативно названных функций,которые уже в свою очередь выполняют нужные действия - так удастся избежать непонимания кода собой впоследствии и другими людьми.
Также изучение скилов не является проблемой(если не важен специфический скил-билд),можно воспользоваться следующей конструкцией:

if GetUnitTypeId(u)=='H004' then
call SelectHeroSkill(u,'A01W')//4
call SelectHeroSkill(u,'A00J')//1
call SelectHeroSkill(u,'A023')//3
call SelectHeroSkill(u,'A01Z')//2
call SelectHeroSkill(u,'A01G')//plusiki
endif

С предметами тоже особых проблем нет почти - можно немного схитрить и использовать следующий принцип покупки предметов - когда бот стоит на базе просто сдавать все вещи по 100% стоимости(требует бд стоимости предметов(!)),затем для каждого денежного диапазона прописать список покупаемых предметов и сверяясь с ним давать предметы\забирать деньги.

Учет кд способностей считаю важной составляющей при принятии ботом решений относительно дальнейших действий,которая также поможет в имитировании в поведении ботов рисковости - таких как побежать за турик при нужных условиях.Однако это не является первоочередной задачей.Первоочередной задачей является:распределение ии по дорогам,бежание на них,при нужных условиях на базу,добивание крипов,атака вражеских героев если можно,добивание вражеских\союзных зданий,отбегание от вражеских зданий при опасности,базовая покупка предметов.Дальше уже можно думать об улучшенном сборе предметов,применении скилов,хорошем добивании крипов.В последнюю очередь возможность просчёта специфических условий,возоможность гангов ботами,предсказания гангов и убегания.

Также считаю определение "Муи-ИИ" неприменимым вообще,так как даже если он будет использоваться только для аоса - все аосы разные,для каждого придётся допиливать это всё добро под себя - указывать здания\их координаты\героев\скилы\предметы\координаты баз\направления движения\расположение нейтралов и т.д.

Извиняюсь за "многабукафф" %) ,но кому надо тот прочитает - буду рад обсудить все интересующие аспекты ;)
 

LaondaДата: Среда, 14 Декабря 2011, 19:31:42 | Сообщение # 47
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
С выше написанным согласен на 100%.
Придраться не к чему)) везде есть уточнения которые обрубают все мои попытки что-то написать в критику.

Но у меня как раз таки основная проблема в специфическом скилл-билде.
В карте 420 уровней, на каждом 3 из которых можно проучить скилл, причем на 39ом скилл не учится, чтобы на 40ом изучить ультимейт, причем есть герои которым предпочтительней все е проучить не последний скилл а какой-то определенный который на данной стадии игры даст большее преимущество чем ультимейт, которой можно будет изучить позже сразу на несколько уровней.

И поэтому, даже если я сокращу цепочку изучений до кратных 3ем, затем задам условия с какого уровня по какой учить другой скилл, ещё можно узначать делится ли скилл например на 2 и учить другой скилл в принципе математических операций всегда хватало и я умею ими пользоваться.

Но меня волнует вопрос: "можно ли сделать проще, не потеряв в стратегии?". В редакторе ии можно сгенерировать ИИ файл, можно ли включить в него несколько героев? Или может хотя бы для одного оставить информацию только по скиллам, что бы не занимал много места и продлить список изучения. Возможно есть какой-нибудь редактор, который позволяет это сделать.

Добавлено (14 Декабрь 2011, 19:28:55)
---------------------------------------------
И вопрос не в тему, ник Неревар это по мотивам Morrowind?

Добавлено (14 Декабрь 2011, 19:31:42)
---------------------------------------------

Quote (lawson)
Вот ты и попался. Ты сам это сказал, так вот как ты объяснишь боту что надо "делать ноги", как ты объяснишь что у тебя маленькая скорость передвижения, как ты объяснишь что вышка далеко или близко - это все условия ты сам это только что доказал!? Из этого всего и следуют будующии действия которые совершит ИИ.

Это ты мне пишешь очевидные вещи которые я и так знаю. Я специально в них не вдаюсь, потому что это очевидно, понятно и я умею это делать. Изначально вопрос был именно по КД т.к. ты писал, что если делать ИИ то ОБЯЗАТЕЛЬНО знать когда кд иначе скилл заюзать нельзя.
Сейчас поищу цитату из которой я сделал такой вывод.


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

_Nerevar_Дата: Среда, 14 Декабря 2011, 19:36:19 | Сообщение # 48
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
Morrowind - он,родимый=)

Сколько у героя может быть максимальное кол-во скилов? Они изначально даны или можно приобретать во время игры?
 

LaondaДата: Среда, 14 Декабря 2011, 20:02:16 | Сообщение # 49
4 уровень
Группа: Пользователи
Сообщений: 81
Награды: 0
Репутация: 15
Блокировки:
Quote (lawson)
Quote (Laonda)
создать небольшую БД скиллов их типов и предназначений

В том то идело почему я раньше этим не занялся. + надо будет создать еще условие что скилл перезаряжается и условия когда их использовать а это еще + не менее 400 сторок кода в таймер, это слишком нагрузка для бота, наверное поэтому доту под конец и начинает зверски глючить и система ИИ сбивается.


вот я из-за раздумий в голове, "как заставить кастовать скилл одним триггером" думал только о том как заставить кастовать. В основном в моей карте ситуации такие что "бац и враг перед носом".

и вот тогда:
Quote (Laonda)
Зачем же отлов кд?
Если скилл уже откатился то он доступен если нет то не доступен.
Есть ситуации когда надо заюзать скилл и в этих ситуациях надо пытаться его юзать вот и всё.


есть ситуации которые вовсе не бот лично выбирает, в таких ситуациях, назовём их Форс-мажёр, надо действовать независимо от кд. Есть скилл - хорошо юзаем, нету - действуем по обстоятельствам дальше.

Ты ответил, что кд надо отлавливать для более дитального просчета и планирования ботом атаки или ситуации.

(ВСЕ ОСТАЛЬНЫЕ УСЛОВИЯ И РАСЧЕТЫ Я ОПУСКАЮ ЧТО БЫ НЕ ПИСАТЬ ТРИ ЛИСТА КОДА)

Я же считаю, что кд это уже для через чур про АИ, я уверен, что даже лучший на мой взгляд АИ из доты не использует просчет кд.
Если уж и делать просчет кд, дак нужно и оставшееся время до отката расчитывать. Ведь если мы применим формулу и рассчитаем приблизительное время сражения героев то сможем узнать какое время будет бой и успеет ли откатиться наша магия.

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

Заключение на мой взгляд такого:
Я разобрался с проблемой использования скиллов, а именно создал мини БД из массивов по которым будет выясняться:
1) какая строка активирует спелл. (строка)
2) Какого типа действие должно активировать спелл и на какую цель. (целочисленный)
3) Для каких действий используется скилл (целочисленный)

Дальше дело за условиями и кд я учитывать не буду в своем ИИ. Т.к. скиллы не будут тратиться куда попало, при постройке грамотных условий.
Но в то же время мне ничто не помешает добавить проверку кд и добавить условие в будущих версиях ИИ или выставить это в зависимости от выбранной игроком сложности.

Я НЕ ОТРИЦАЮ ЧТО УСЛОВИЙ ТАМ КРОМЕ КД ГОРА + ТЕЛЕЖКА, НО МЕНЯ В НАЧАЛЕ ДИСКУССИИ ИНТЕРЕСОВАЛО ИМЕННО КД.[u]

Добавлено (14 Декабрь 2011, 19:56:06)
---------------------------------------------

Quote (_Nerevar_)
Сколько у героя может быть максимальное кол-во скилов? Они изначально даны или можно приобретать во время игры?

Изначально у каждого героя 4 скилла. Первые 3 скилла можно качать как только получаешь очко обучения.
1 очко обучения дается раз в 3 уровня.
4ый скилл учится лишь на 40ом уровне.
Очко обучения получаешь на 39ом и тут новички обычно учат совсем не ульт )
Ну и ИИ эту мелочь тоже учесть конечно должен, это не сложно, пишу потому что оно так есть.

Вообще дальше 120 уровня терпения мало кому хватало)) разве что на втором пне тестировали на лаги и утечки патрулированием из точки в точку))

В ранних версиях можно было покупать дополнительные скиллы в магазине, но сейчас я убрал эту возможность, но все просят вернуть =\
Так что если есть мысли на этот счет, то могут быть полезны.

Добавлено (14 Декабрь 2011, 20:02:16)
---------------------------------------------
а да у каждого скилла, включая ультимейт 10 уровней.

а нет как раз 120 уровней со скилами выходит.
Я уже и сам забыл) 420 это придел из-за того что раньше был пятый скилл который я удалил.


Основатель команды "Компьютерные Акулы"
Г. Разработчик проекта: Forest: Dead Match
Признанный сансей картостроения в wc3
Ищу Дизайнеров/Художников на бесплатную основу. Скайп: Don.Laonda
В зависимости от качества и объема работ, можно говорить и о платной основе.
 

_Nerevar_Дата: Среда, 14 Декабря 2011, 20:27:56 | Сообщение # 50
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Блокировки:
Ну не знаю..Думаю в данном случае если не прописывать для каждого 3 лвла героя изучение нужного скила по порядку,то учить на кратных каким-нибудь числам уровням.

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

Добавлено (14 Декабрь 2011, 20:27:56)
---------------------------------------------
Так стоп неправильно прочитал насчёт создания своих функций - но всё равно гуи+кс не являет собой образец удобности и тем более наглядности написания и использования кода

 

Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [НАРАБОТКА] Простой пример ИИ
  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz