Шаблони гоночної поведінки ШІ


9

Отже, скажімо, у вас є гоночний ШІ на основі сплайну. Припустимо, він вже може впоратися з основами гальмування та рульового керування навколо колії.

Як би ви структурували та впроваджували уникнення зіткнень, обгонів, складання, блокування та інших способів поведінки, щоб ваші автомобілі залишалися конкурентоспроможними, але робили цікаві перегони?

Посилання на документи / реалізації було б дивним.


який двигун ви використовуєте,
Харшал Бенаке

Відповіді:


7

Ви бачили рульові поведінки для автономних персонажів ? Я б розглядав алгоритм " CrowdPathFollowing" для перебування на трасі та уникнення зіткнень. Можливо, ви зможете змішатись із поведінкою " Слідкуйте за потоком" для складання, проходження та блокування - змусьте поле потоку слідувати минулому та прогнозованому шляху гравця, але розділити навколо його поточного місця розташування.

      /-------------\
 ----<  [playerCar]  >-----
      \-------------/

Це повинно викликати AI, як правило, слідувати прямо за ним і рухатися прямо вперед, щоб перекрити, але заохочувати чисті проходи.


1
Я знаю про боїди, але це хороша довідка. Мене трохи лякає багато поведінки (залишайтеся на гоночній лінії, уникайте автомобілів, блокуйте, тягайте тощо), взаємодіючи способами, які занадто складні для налаштування, і закінчуються випадковими зіткненнями по краю. Це добре для пішоходів, але катастрофічно для гоночних автомобілів, яким потрібно продовжувати рух.
tenpn

Я працював з OpenSteer API, який реалізує багато цього матеріалу. Я вважаю, що це досить легко настроїти. У вашому випадку я б зробив вагу "SteerToAvoidCollision" дуже високою. Я не знаю, якими транспортними засобами ви змагаєтесь, але я б подумав, що якщо ви зрозумієте це для переважної більшості випадків, то решта випадкових ударів чи ударів через край корпусу, ймовірно, досить реалістичні ....
AShelly

Це були рульові машини чи щось інше? Мені страшно ситуацій, що спричиняють проблеми, такі як два транспортних засоби вперед зліва і один вперед праворуч. Середній вектор призведе до руху вправо, навіть якщо це може привести вас у контакт з правою машиною.
tenpn

Я працював переважно з пішоходами, тому не можу присягнути, що це спрацює. Варто пам’ятати, що це не повинно бути поєднанням поведінки - це може бути спадковість. Таким чином, ви можете уникнути зіткнень, займаючи більш високий пріоритет перед будь-яким іншим. У випадку, коли ви описуєте, автомобіль пішов би направо до тих пір, поки передбачуваний шлях не перетне правий автомобільний шлях, і тоді час уникнення того, що колись стане переважаючою силою. Можна також додати спеціальні умови: наприклад, якщо в N кадрах не знайдено безпечного шляху, додайте жорстке гальмування.
AShelly

2

Частково про це була сесія на цьогорічній конференції AI Game Dev в Парижі. Слайди та резюме ви можете знайти тут:

http://aigamedev.com/open/coverage/paris10-report/#session9


1
Посилання на ppt - 404.> _ <
tenpn


ta - його підхід цікавий, але код, з яким я зараз працюю, насправді більш досконалий!
tenpn

1

Антидіаграма: Супротивники адаптують свою швидкість

На жаль, я не в змозі надати вам шаблони, але я хотів би назвати анти-шаблон. Будь ласка, не намагайтеся адаптувати швидкість драйверів AI до швидкості гравця людини. Ідея цього полягає у створенні справедливих перегонових умов для любителів, а також профі та відмовитися від необхідності численних рівнів складності (та їх реалізації).

Однак те, що добре звучить на папері, виявляється жахливим на практиці, і серія MotoGP нещасно не вдається реалізувати цю поведінку. Це опинилося в суперниках, що рухалися зі швидкістю 5 м / год, коли ви стояли нерухомо пару секунд, і неможливість сказати, чи покращилися ви в грі (дуже поганий відгук)


Дякую. Я конкретно говорю тут про цікаве поведінку гонки, а не про балансування чи рівень складності, але я пам’ятаю це.
tenpn

5
Майже всі гоночні ігри включають певну форму гумової пов’язки, щоб тримати гравця в дії, або тримати AI близько до хорошого гравця. Трюк - бути тонким з ним і знати, коли його вимкнути. Як тільки гравець помітить, вони відчувають себе обдуреними.
wkerslake

Ситуація з MotoGP звучить як проблема занесення її занадто далеко, а не проблема з гумовою обв'язкою взагалі. Це нерозумно, щоб водії спереду їхали з більшою обережністю, а автомобілі ззаду намагалися більш відчайдушно намагатися закрити прогалину, і я думаю, що є цінність у тому, щоб моделювати його таким чином і представляти це прозоро гравцеві.
Jibb Smart

Це цікавий пост на тему: gamasutra.com/view/feature/3920/… В основному вони ставлять вас у 3 групи гонщиків AI і дозволяють вам переходити з групи в групу під час змагання.
Фельсір
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.