Modelli per il comportamento delle corse con l'intelligenza artificiale


9

Supponiamo che tu abbia un'intelligenza artificiale da corsa basata su spline. Supponiamo che sia già in grado di gestire le basi della frenata e dello sterzo in pista.

Come struttureresti e attiveresti la prevenzione delle collisioni, il sorpasso, il disegno, il blocco e altri comportamenti in modo che le tue auto rimangano competitive ma realizzassero gare interessanti?

I collegamenti a documenti / implementazioni sarebbero fantastici.


che tipo di motore stai usando,
Harshal Benake,

Risposte:


7

Hai visto comportamenti di guida per personaggi autonomi ? Considererei un algoritmo " CrowdPathFollowing" per rimanere in pista ed evitare le collisioni. Potresti essere in grado di mescolare un comportamento di "Seguire il campo di flusso" per disegnare, passare e bloccare - fare in modo che il campo di flusso segua il percorso passato e proiettato del giocatore, ma diviso attorno alla sua posizione attuale.

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

Ciò dovrebbe indurre l'AI a seguire direttamente dietro di lui e muoversi direttamente davanti per bloccare, incoraggiando tuttavia passaggi puliti.


1
Sono a conoscenza di boids, ma è un buon riferimento. Ho un po 'paura di molti comportamenti (rimanere sulla linea di corsa, evitare auto, blocchi, tiraggio, ecc.) Interagendo in modi troppo complessi da mettere a punto e finendo con l'occasionale collisione del bordo. Questo va bene per i pedoni, ma catastrofico per le macchine da corsa che devono continuare a muoversi.
10

Ho lavorato con l'API OpenSteer che implementa molte di queste cose. L'ho trovato abbastanza facile da sintonizzare. Nel tuo caso aumenterei il peso di "SteerToAvoidCollision". Non so che cosa i veicoli che si sta correndo, ma mi piacerebbe pensare che se lo fanno bene per la stragrande maggioranza dei casi, poi i restanti urto occasionale o bash a causa di un caso limite è probabilmente abbastanza realistica ....
ASelly

Erano i veicoli di governo o qualcos'altro? Ho paura di situazioni che causano problemi come due veicoli davanti alla tua sinistra e uno davanti alla tua destra. Il vettore medio comporterebbe un movimento a destra, anche se ciò potrebbe metterti in contatto con il veicolo a destra.
tenpn

Lavoravo principalmente con i pedoni, quindi non posso giurare che funzionerà. Una cosa da ricordare è che non deve essere una miscela di comportamenti: può essere un'erarchia. In questo modo puoi evitare che le collisioni abbiano una priorità maggiore su qualsiasi altra cosa. Nel caso in cui descrivi l'auto andrebbe bene fino a quando il percorso previsto non intersecasse il percorso dell'auto a destra, momento in cui evitare quella collisione diventa la forza prevalente. È inoltre possibile aggiungere condizioni speciali: ad esempio, se non viene trovato alcun percorso sicuro in N frame, aggiungere una frenata brusca.
AShelly,


1

Anti-Pattern: gli avversari adattano la loro velocità

Sfortunatamente non sono in grado di darti modelli, ma vorrei nominare un modello anti. Non tentare di adattare la velocità dei driver AI a quella del giocatore umano. L'idea alla base è quella di creare condizioni di gara eque per i dilettanti e professionisti e di abbandonare la necessità di livelli di difficoltà multipli (e la loro attuazione).

Tuttavia, ciò che suona bene sulla carta risulta terribile in pratica e la serie MotoGP ha fallito miseramente nell'attuare questo comportamento. È finito con l'avversario alla guida a 5mp / h quando sei rimasto fermo per un paio di secondi e l'impossibilità di dire se sei migliorato nel gioco (feedback molto negativo)


Grazie. Sto parlando in particolare di comportamenti di razza interessanti qui piuttosto che di bilanciamento o livelli di difficoltà, ma lo terrò a mente.
tenpn,

5
Quasi tutti i giochi di corse includono una qualche forma di fascia in gomma per mantenere il giocatore in azione o mantenere l'IA vicino al buon giocatore. Il trucco è quello di essere discreto con esso e sapere quando spegnerlo. Una volta che il giocatore se ne accorge si sentono traditi.
Wkerslake,

La situazione della MotoGP sembra un problema di andare troppo lontano, piuttosto che un problema con la fascia in gomma in generale. Non è irragionevole per i conducenti nella parte anteriore guidare con più cautela e le auto nella parte posteriore per provare più disperatamente a colmare il divario, e penso che abbia valore modellarlo in quel modo e presentarlo in modo trasparente al giocatore.
Jibb Smart,

Questo è un post interessante sull'argomento: gamasutra.com/view/feature/3920/… Fondamentalmente ti hanno messo in 3 gruppi di corridori di intelligenza artificiale e ti hanno fatto avanzare da un gruppo all'altro durante il corso della gara.
Felsir,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.