Come implementare l'IA per il gioco di combattimento


8

http://neighr.com/mif/index.htmlIeri ho costruito un caccia 2D .

Il secondo "giocatore" non fa quasi nulla. In realtà niente. Ad essere sincero, non ho mai realizzato un gioco che avesse un avversario come questo.

Quindi la mia domanda è: come si inizia con la programmazione AI per l'avversario? Ci sono tutorial, buone pratiche? Voglio che sia una sfida (per il giocatore, non per me stesso).

Risposte:


12

Gli N-grammi sono popolari qui. L'idea di base è quella di mantenere un elenco di mosse che il giocatore ha fatto. Puoi quindi, date le ultime N mosse del giocatore, capire la probabilità percentuale di quale potrebbe essere la sua prossima mossa.

Il tuo gioco dovrebbe avere un database di segnalini e blocchi efficaci per ogni mossa.

Per le modalità offensive nell'intelligenza artificiale, puoi ancora modellare i giocatori di base per determinare quali attacchi ha avuto il maggior numero di problemi a bloccare o contrastare e riutilizzarli.

Per difficoltà AI, basta attenuare l'intelligenza artificiale a livelli più facili. La peggiore modalità AI potrebbe invertire le scelte (vale a dire, se sa che il giocatore solitamente blocca i pugni, ha una possibilità più alta che più bassa di lanciare un pugno). La modalità di massima difficoltà userebbe l'algoritmo non handicappato, e probabilmente batterà la merda dal giocatore.

Se stai cercando di rendere il gioco più divertente, ti consiglio anche di aggiungere personalità all'intelligenza artificiale. Alcuni personaggi potrebbero schernire di più, alcuni potrebbero essere più difensivi che offensivi, ecc. Ai giocatori piace essere in grado di attribuire intelligenza umana ai personaggi dell'IA.


3

Onestamente tanto quanto alcune delle risposte migliori raccomandano un'IA più complessa, se questo è un tentativo iniziale di gioco e non sei ancora così abile con il codice, potresti provare per un'intelligenza artificiale più stupida

Ad esempio un semplice sistema di

attendere (0-3 secondi)

Rotolo d6

scegli tra 6 azioni.

O qualcosa di simile a seconda di quante azioni hai


2

Ecco come farei per creare un gioco di combattimento.

Fai elenchi di mosse (a seconda del personaggio) che sono appropriate per diverse distanze dal giocatore e fagli scegliere una mossa se la difficoltà è dura. Fagli scegliere una mossa violenta. Altrimenti scegli la mossa che fa meno per medio e meno per facile. Puoi anche lanciare un fattore casuale che seleziona intervalli diversi da quello in cui si trova il giocatore a seconda della difficoltà. La quantità di decisioni dovrebbe essere basata sulla difficoltà in cui valuta 3 secondi dopo ogni mossa (facile) 2 secondi (media) ect. Ogni volta che determina il suo corso di azione.

riassumendo, scegli una distanza (set di mosse), scegli una mossa e poi quanto tempo aspettano prima di fare la stessa cosa. Tra l'attesa dell'azione successiva possono spostarsi e schivare per caso. Spero che sia di aiuto.


+1 Questa è una soluzione estremamente semplice, ma assolutamente fattibile ed efficiente. Per caso, sapresti se un sistema come questo è stato utilizzato in qualche gioco commerciale? :)
Miguel,

No non lo so. Sto parlando di poca esperienza. Quindi, se va bene, e ci ho pensato. Quindi sicuramente non sono il primo (se va bene). N mosse sarebbe più intelligente. Ma più difficile.
Kaliber64,
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.