Воскресенье, 10 Ноября 2024, 17:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Несколько вопросов по простому AI бота-футболиста.
БозингарДата: Среда, 12 Августа 2015, 10:55 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Selamlar.

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

С первой частью проблем не возникло:


Со второй - тоже:


Проблемы возникли дальше, а точнее, вопросы:
1. Если бот застрял в стене или, того хуже, в углу - как ему оттуда выбираться?
Пробовал проверкой скорости, но так возникает больше проблем, чем решений. Триггером при столкновении с стенкой или raycast? Не хотелось-бы слишком сильно нагружать браузерную игру.
2. Если бот застрял в углу вместе с мячом, то каким методом ему лучше вытягивать мяч в сторону ворот, а не просто толкать его из стороны в сторону?

Неплохо-бы услышать не только дельные советы здешних мастеров, но и увидеть примеры спортивных AI, наподобие футбола или хоккея.

P.S Роль футболиста выполняет бульдозер.

P.S.S Забыл упомянуть, что игра - изометрия, в 2d.


#Хийвэл бүү ай, айвал бүү хий.

Сообщение отредактировал Бозингар - Среда, 12 Августа 2015, 10:57
KamiRoninДата: Среда, 12 Августа 2015, 11:39 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
салам.
Цитата Бозингар ()
Если бот застрял в стене

алгоритм может опираться на координаты - ведь координаты стен поля известны! т.е. если координата центра бота явно удалена от центра поля больше чем "возможно" - значит застрял.
Цитата Бозингар ()
Если бот застрял в углу вместе с мячом, то каким методом ему лучше вытягивать мяч в сторону ворот

тут даже стратегия - "занять правильное положение и бить по мячу (а он имеет отскоки) пока не выскочит" может не сработать! поэтому у себя я сделал - угол запретная зона - если мяч туда попал - значит респаун (там правила на выбор - угловой, аут, персональный для робофутбола - просто респ)! при ситуации когда бот зажал мяч в борт - такое правило не срабатывает, это допустимо (для своего робофутбола можно задать безнаказанное время зажимания, можно сделать программный блок у бота чтобы отъезжал от борта под углом "на рефлексе" если пытается долбиться впрямую и тп).


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


Сообщение отредактировал KamiRonin - Среда, 12 Августа 2015, 11:39
БозингарДата: Среда, 12 Августа 2015, 14:10 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Цитата KamiRonin ()
алгоритм может опираться на координаты

Об этом не подумал, что так действительно проще.

Цитата KamiRonin ()
"занять правильное положение и бить по мячу (а он имеет отскоки) пока не выскочит

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


#Хийвэл бүү ай, айвал бүү хий.

Сообщение отредактировал Бозингар - Среда, 12 Августа 2015, 14:11
JhonДата: Среда, 12 Августа 2015, 15:41 | Сообщение # 4
частый гость
Сейчас нет на сайте
Цитата Бозингар ()
увидеть примеры спортивных AI, наподобие футбола или хоккея.

Здесь реализация специфичная, но может будет интересно.
ИИ для хоккея, часть 1
ИИ для хоккея, часть 2
ИИ для хоккея, часть 3
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг