ИИ, умеющий оценивать ситуацию.
| |
Black_Templars | Дата: Вторник, 09 Апреля 2013, 18:18 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Можно ли сделать врага, который бы мог оценивать ситуацию не только "от себя", но и учитывающего друзей? То есть что бы он мог отступать при перевесе сил, окружать, бить с фланга? И если да, то как (ну не полностью, конечно, код, не буду нахлебничать, а некоторые указания)?
|
|
| |
Luxorix | Дата: Вторник, 09 Апреля 2013, 18:26 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Black_Templars, для начала нужно сделать бота который просто ходит и стреляет. Потом уже походу дела, бот будет обрастать возможностями. А сделать то оно все можно.
LUXORIX GAMES
|
|
| |
Maxaon | Дата: Вторник, 09 Апреля 2013, 18:29 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Black_Templars, можно
|
|
| |
Black_Templars | Дата: Вторник, 09 Апреля 2013, 18:30 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| Maxaon, Цитата (Maxaon) какой вопрос такой и ответ Цитата (Black_Templars) И если да, то как (ну не полностью, конечно, код, не буду нахлебничать, а некоторые указания)? Добавлено (09.04.2013, 18:30) --------------------------------------------- Luxorix, такое есть.
|
|
| |
Barbatos | Дата: Вторник, 09 Апреля 2013, 18:48 | Сообщение # 5 |
3D-моделлер/Руководитель
Сейчас нет на сайте
| Black_Templars, С точки зрения логики можно сделать так, что бы бот ссылался на данные от своих ближайших союзников. Считал количество своих союзников и и количество видимых врагов. Да можно, но нужно долго расписывать.
Его остатки и на хлеб не намазать. Мой тебе совет Пабло - относись к жизни как к веселухе, но непродолжительной. @Эш
|
|
| |
monk05 | Дата: Вторник, 09 Апреля 2013, 19:03 | Сообщение # 6 |
почетный гость
Сейчас нет на сайте
| Barbatos верно отметил, что долго расписывать. Существует теория игр, если хочешь действительно хороший ИИ. Не думаю, что мощи GML хватит на описание этих алгоритмов. Ну или это будет достаточно геморройно.
Сообщение отредактировал monk05 - Вторник, 09 Апреля 2013, 19:08 |
|
| |
Barbatos | Дата: Вторник, 09 Апреля 2013, 21:18 | Сообщение # 7 |
3D-моделлер/Руководитель
Сейчас нет на сайте
| monk05, ГМ я не использовал, но я абсолютно уверен, что действия аi любой сложности можно расписать даже очень простыми языками.
Его остатки и на хлеб не намазать. Мой тебе совет Пабло - относись к жизни как к веселухе, но непродолжительной. @Эш
|
|
| |
Black_Templars | Дата: Среда, 10 Апреля 2013, 06:34 | Сообщение # 8 |
был не раз
Сейчас нет на сайте
| Barbatos, я подумываю сделать так: создать глобальную переменную, и каждый объект будет добавлять в него по единичке. Потом сравниваются количества и в зависимости от разности, производится какое-то действие.
|
|
| |
Luxorix | Дата: Среда, 10 Апреля 2013, 09:56 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| Black_Templars, как вариант можно. К примеру установлены невидимые чекпоинты, которые считают сколько врагов и своих рядом в определенном радиусе. Если количество своих <3 значит возле этого чекпоинта мы теряем оборону и надо туда перебрасывать юнитов. Добавлено (10.04.2013, 09:56) --------------------------------------------- Black_Templars, ты бы хоть написал что у тебя за игра или что ты хочешь от ботов конкретно.
LUXORIX GAMES
|
|
| |
Black_Templars | Дата: Среда, 10 Апреля 2013, 12:33 | Сообщение # 10 |
был не раз
Сейчас нет на сайте
| Luxorix, КОЛОНИИ БАКТЕРИЙ БОРЮТСЯ ДРУГ С ДРУГОМ БЕЗ ПОМОЩИ ИГРОКА.
Сообщение отредактировал Black_Templars - Среда, 10 Апреля 2013, 12:33 |
|
| |
Maxaon | Дата: Среда, 10 Апреля 2013, 13:54 | Сообщение # 11 |
участник
Сейчас нет на сайте
| Black_Templars, это в 2D? если да то элементарно по аларму создаешь бактерий, в их коде пишешь двигаться к своему enemy и сравниваешь расстояние если расстояние до енеми такое то, то срабатывает действие Вариант что бактерии умеют использовать огнестрельное, холодное и пр. оружие сразу отбрасюваю
|
|
| |
Black_Templars | Дата: Среда, 10 Апреля 2013, 14:55 | Сообщение # 12 |
был не раз
Сейчас нет на сайте
| Maxaon, заставить их атаковать - дело нехитрое. А вот как их заставить, скажем, окружать? Заходить с тыла7 То есть, как сделать само действие7
Сообщение отредактировал Black_Templars - Среда, 10 Апреля 2013, 15:00 |
|
| |
Barbatos | Дата: Среда, 10 Апреля 2013, 15:33 | Сообщение # 13 |
3D-моделлер/Руководитель
Сейчас нет на сайте
| Black_Templars, Сначала определить ситуацию когда можно окружить, потом соответственно задать им плотность линии относительно количества юнитов врага и союзников, и вычислить расстояние, которое юнит должен держать от противника. То есть: -Ситуация пригодная - враг сбился в кучу. -Максимальное расстояние от врага - 10 поинтов минимальное 8 поинтов (Таким образом вокруг врага будет линия из союзников в 2 поинта, которая находится на 8 поинтов дальше чем враг и имеет ширину 2 поинта от количества союзников вычисляется максимальная ширина) Максимальная ширина нужна для того, что бы юниты не сбивались в одной точке держа расстояние в 8 или не пытались пробиться через других. Это конечно если очень просто.
Обход. Нужно пометить тыл врагу, то есть указать где у юнита спина, задать выгодную ситуацию(враг находится по углом 90 градусов к лицу отряда), расстояние, которое они должны держать от врага при обходе к точке спины, то есть нужно задать точку спины каждому юниту и вычислять ее средний показатель или задать группе юнитов точку спины. Хм, хотя я этим не занимался, здесь много пробелов получается.
Его остатки и на хлеб не намазать. Мой тебе совет Пабло - относись к жизни как к веселухе, но непродолжительной. @Эш
Сообщение отредактировал Barbatos - Среда, 10 Апреля 2013, 15:35 |
|
| |
Black_Templars | Дата: Среда, 10 Апреля 2013, 15:41 | Сообщение # 14 |
был не раз
Сейчас нет на сайте
| Barbatos, спасибо, но как это воплотить в код гамака...
|
|
| |
Barbatos | Дата: Среда, 10 Апреля 2013, 16:20 | Сообщение # 15 |
3D-моделлер/Руководитель
Сейчас нет на сайте
| Black_Templars, Я не знаю, мне просто было интересно расписать алгоритм.
Его остатки и на хлеб не намазать. Мой тебе совет Пабло - относись к жизни как к веселухе, но непродолжительной. @Эш
|
|
| |
Black_Templars | Дата: Среда, 10 Апреля 2013, 16:25 | Сообщение # 16 |
был не раз
Сейчас нет на сайте
| Barbatos,
|
|
| |
BrightSpot | Дата: Пятница, 12 Апреля 2013, 03:19 | Сообщение # 17 |
заслуженный участник
Сейчас нет на сайте
| Цитата (Black_Templars) А вот как их заставить, скажем, окружать? Заходить с тыла7 То есть, как сделать само действие7 зная скороть кода ГМ можешь забить на эту затею... тут хорошим алгоритмом не обойдешся т.к нужно сделать хороший поиск пути, а даже 100+ объектов при точном поиске точки и следование к ней очень понижает фпс, в твоем же случае потребуется каждом юниту просчитывать свой путь и каждый шаг корректировать его с путями остальных юнитов(ведь если одна бактерия попытается зайти в тыл другой, а предполагаемая жертва пойдет в другую сторону, то прийдется заново перещитать все возможные действия и выбирать из них новое...каждый шаг) у тебя даже 10 юнитов повесят комп...
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
Luxorix | Дата: Пятница, 12 Апреля 2013, 05:44 | Сообщение # 18 |
постоянный участник
Сейчас нет на сайте
| Цитата (BrightSpot) у тебя даже 10 юнитов повесят комп... Что за бред? И что значит "зная скорость кода ГМ"? Проверяй не каждый шаг, а проверяй через 10 шагов. Сделал пример. 2 команды ботов + игрок в одной команде, 50 тех, 50 тех, видят только глазами (а не всем телом), гуляют по игровому полю между колонн, как только видят врага начинают бегать и стрелять. При попадании в спину, разворачивается и начинает стрелять. Сделано все через поиск пути , причем проверка идет каждый шаг. При нахождении на экране 100 юнитов + игрок выдает 50 fps из 60. И это на 1,8 атлоне с гигом ддр1, и встроенной видеокартой. На этом компе даже зума тормозит.
LUXORIX GAMES
Сообщение отредактировал Luxorix - Пятница, 12 Апреля 2013, 05:46 |
|
| |
BrightSpot | Дата: Суббота, 13 Апреля 2013, 04:29 | Сообщение # 19 |
заслуженный участник
Сейчас нет на сайте
| Цитата (Luxorix) Сделал пример по его тексту:Цитата (Black_Templars) их заставить, скажем, окружать? Заходить с тыла делаем вывод, что нужно поиск пути производить по всей карте с учетом всех остальных юнитов + наверняка нужно сделать плавное смещения при потере\смене цели(что бы не дергались при равных наступательных силах - т.к движение каждого юнита(наверняка все в одну линию не будут переть) будет менять баланс сил, а значит уже нужны дополнительные условия\действия) хотя если делать через стандартный\кривой поиск пути или еще более упрощенный то точно тормозить не будет(через стд.сетку вообще не вариант- фпс сжирает чють только оптимизация хромнет...)
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
Randall | Дата: Суббота, 13 Апреля 2013, 22:47 | Сообщение # 20 |
участник
Сейчас нет на сайте
| Максимально конкретизируй задачу. Уверен, ее можно сильно упростить, если сделать некоторые допущения, исходя из специфики гамака и самой игры.
А по теме: Продумай шаблоны поведения, к каждому шаблону д.б. свое условие. Я не знаю, что у тебя за бактерии, но пусть примером будет игра, подобная споре. Например, если бактерия-хищник, то:
1. видя цель больше себя, она будет заходить с тыла - с направления относительно жертвы, которое рассчитывается как определенная точка на расстоянии dist в направлении image_angle+180 2. доходя до жопы большой цели (догоняя ее), она начинает кусаться 3. если только что угол следования жертвы был angle_previous, а вдруг резко стал отвечать условию abs(angle-angle_previous)>160 (жертва уже почти развернулась зубами к хищнику), нападающий разворачивается и начинает бежать от контратаки ...
травоядное: 1. Если враг на определенном расстоянии по бокам, то ударить его жгутиком хз чем там 2. Если враг сзади ближе чем надо, начать бздеть ядом 3. Спереди, - ускориться и толкнуть там шипом каким-нибудь
после первого удара проверка - враг маленький - повторить действие, враг большой - развернуться и бежать
---
Каждый шаблон должен отвечать уникальному условию, то есть их надо продумать так, чтобы исключить одновременное исполнение более одного шаблона.
После этого все проверяется в степе и да.
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
Сообщение отредактировал Randall - Суббота, 13 Апреля 2013, 22:47 |
|
| |
|