2010-09-17 3 views
14

Esistono molti articoli sulle intelligenze artificiali a distanza, come Killzones (see this paper) o Halo. Ma non sono stato in grado di trovare molte informazioni su una IA da combattimento tranne che per questo work, che usa i sistemi neurali per imparare a combattere, il che non è esattamente quello che sto cercando.Come progettare l'intelligenza artificiale di un gioco di combattimento (Street Fighter o Soul Calibur)?

L'intelligenza artificiale occidentale nei giochi è fortemente focalizzata su FPS, a quanto pare! Qualcuno sa quali tecniche vengono utilizzate per implementare un'intelligenza artificiale decente? Gerarchici macchine a stati finiti? Alberi decisionali? Potrebbero finire per essere abbastanza prevedibili.

+0

io non ne so abbastanza sull'argomento per dare una risposta decente, ma provare a lanciare un po 'di errore casuale per dare un non-prevedibile "umano" si sente come weel. Anche l'intelligenza commette errori, e la mutazione semplice offre una grande quantità di diversità. – Jeriko

+0

Sicuro. Se finalmente uso un albero decisionale, aggiungerò un po 'di casualità ad esso. Qualcosa di simile agli "attacchi nemici" -> "bloccanti 0.8; evadere il senso di 0.2 ', quindi non è sempre la stessa risposta. – Notnasiul

+0

Street Fighter Tipo di applicazione giochi di A.I. non è molto pesante L'obiettivo del gioco è di infliggere danni all'avversario e prevenire danni al tuo avatar per vincere la partita. Usando RNG puoi rendere il comportamento più realistico se è in grado di bloccare o fare combinazioni di attacco una percentuale del tempo a seconda del livello di difficoltà. Maggiore difficoltà significa maggiori possibilità che l'A.I. l'avversario bloccherà l'attacco del tuo avatar o eseguirà con successo combinazioni di attacchi al tuo avatar. – winux

risposta

3

Nei nostri laboratori di ricerca, stiamo utilizzando la tecnologia di pianificazione AI per i giochi. AI Planning è utilizzato dalla NASA per costruire robot semi-autonomi. La pianificazione può produrre un comportamento meno prevedibile rispetto alle macchine a stati, ma la pianificazione è un problema molto complesso, ovvero risolvere i problemi di pianificazione ha un'enorme complessità computazionale.

AI Planning è un campo vecchio ma interessante. In particolare per i giochi solo di recente le persone hanno iniziato a utilizzare la pianificazione per far funzionare i loro motori. L'espressività è ancora limitata nelle attuali implementazioni, ma in teoria l'espressività è limitata "solo dalla nostra immaginazione".

Russel e Norvig hanno dedicato 4 capitoli a AI Planning nel loro libro sull'intelligenza artificiale. Altri termini correlati a cui potresti essere interessato sono: processi decisionali Markov, reti bayesiane. A questi argomenti viene anche fornita un'esposizione sufficiente in questo libro.

Se si sta cercando un motore pronto per iniziare a utilizzare facilmente, suppongo che l'utilizzo di AI Planning sarebbe eccessivo. Non conosco alcun motore di pianificazione AI per i giochi, ma ne stiamo sviluppando uno. Se sei interessato a lungo termine, possiamo parlarne separatamente.

+0

Esatto, qualcosa del genere è stato usato in Fallout3, per quanto ne so. Ma AI Planning non sembra essere la risposta qui, dato che un combattente in realtà non "pianifica" nulla, giusto? Non c'è obiettivo come "uppercut" o "hit enemy" ... c'è? Sembra qualcosa di più reattivo, combinato con un certo stile di combattimento a seconda del personaggio (i ragazzi grandi sono lenti, tendono a bloccare invece di eludere e quelle cose ...). Tuttavia, darò un'occhiata più approfondita alla pianificazione dell'IA. – Notnasiul

+0

Viene spesso chiamato "GoAL-Oriented Action Planning" (GOAP) AI, reso popolare dal gioco, "F.E.A.R.", di Monolith. – Pup

+0

@Notnasiul In realtà il combattente o qualsiasi personaggio non giocante può essere controllato da un pianificatore, il cui piano è quello di massimizzare l'esperienza del giocatore. A volte il modo per farlo cercando di attenersi a una certa curva nel tempo della motivazione del giocatore. Una tale curva è anche il tratto distintivo dei film di Spielberg. –

3

Sembra che tu conosca già le tecniche per la pianificazione e l'esecuzione. Un'altra cosa che devi fare è prevedere la prossima mossa dell'avversario e massimizzare la ricompensa attesa della tua risposta. Ho scritto un articolo su questo blog: http://www.masterbaboon.com/2009/05/my-ai-reads-your-mind-and-kicks-your-ass-part-2/ e http://www.masterbaboon.com/2009/09/my-ai-reads-your-mind-extensions-part-3/. Il gioco che considero è molto semplice, ma penso che le idee principali della teoria della decisione bayesiana potrebbero essere utili per il tuo progetto.

+0

Grazie mille! E bel blog, lo sto seguendo ora;) (Mi piace che Pacman catturi il gioco delle bandiere!) – Notnasiul

+0

Grazie! A proposito, pensiamo di avere una variante open source del gioco Pacman entro il prossimo febbraio. – pberkes

1

Un altro percorso da considerare è il cosiddetto Ghost AI come descritto here & here. Come suggerisce il nome, in pratica si estraggono le regole dal gioco reale, il primo è offline e il secondo estende la metodologia per l'apprendimento online in tempo reale.

Controlla anche il ragazzo webpage, ci sono un certo numero di altri articoli sui giochi di combattimento che sono interessanti.

+1

Quella IA fantasma è piuttosto interessante, ma non quello che stavo cercando, però. Volevo, precisamente, un modo di dare all'IA la sua 'personalità'. Ho programmato questo fine settimana e la combinazione di un FSM con qualche casualità basata su "pesi tecnici" (offensiva, difensiva, bloccante/evitante ...) sembra essere appropriata. E la pagina web di quel tizio è un crimine del design;) – Notnasiul

+0

Lo scopo dell'IA fantasma era di avere un avversario con la propria personalità, anche se veniva addestrato imitando un altro giocatore. Il tuo approccio sembra interessante, non sono sicuro di quanto tweaking abbia bisogno. –

1

Ho invertito le routine relative al sottosistema AI all'interno della serie di giochi Street Figher II. Non incorpora nessuna delle tecniche sopra menzionate. È completamente reattivo e non richiede pianificazione, apprendimento o obiettivi. È interessante notare che non esiste un sistema di "peso della tecnica" che tu menzioni, sia. Ad esempio, non usano i pesi globali perché le decisioni decidano la frequenza di attacco rispetto al blocco. Quando ho smontato le routine relative al modo in cui la "difficoltà" è fatta per sembrare aumentare, mi aspettavo di trovare qualcosa del genere. Ahimè, si riferisce a una serie di decisioni più piccole che potrebbero potenzialmente influenzare tali rapporti in modo emergente.

0

http://www.ice.ci.ritsumei.ac.jp/~ftgaic/index-R.html

il suo vecchio ma qui ci sono alcuni esempi

+1

[Gli esempi di solo collegamento sono sconsigliati su Stack Overflow] (http://meta.stackexchange.com/questions/65277/are-link-only-answers-poo-practice). Si prega di aggiungere le informazioni pertinenti alla tua risposta. – Chris

+0

È meglio includere le parti rilevanti dai collegamenti nella risposta. Ciò impedisce che la risposta diventi non utile in futuro se muore quel collegamento con le altre informazioni. – Walls

+0

è spiacente per un concorso organizzato da un'università in cui le persone hanno inserito il proprio codice AI e si sono combattuti a vicenda. Scritto in Javascript. L'ho trovato utile, alla fine ho deciso di scrivere l'intelligenza artificiale nel mio gioco usando un metodo di macchina a stati sovrapposti. –