Tutorial Programmazione VIIIa, Parte VIII: l'AI (prima parte)

« Older   Newer »
  Share  
Squall LionHeart™
view post Posted on 14/3/2008, 19:42




PARTE VIII: L’AI

È consigliato seguire passo passo in modo pratico le nozioni descritte nel tutorial, per una facile e rapida comprensione.

Atto I: Cos’è l’AI

L’AI è l’intelligenza Artificiale, cioè i comandi che dicono al mugen come guidare un personaggio quando questo è controllato dal pc.
Come molti di noi possono sapere, senza un’AI, il personaggio è alquanto fiacco, ed è fin troppo facile da sconfiggere.
Per dire cosa fare al pc, ci sono vari modi, ma io spiegherò quello che utilizzo (cioè quello che mi è stato insegnato ;) ), perché ne ho imparato a conoscere ogni sfaccettatura.

Atto II: Programmazione dell’AI nel CMD

È importante aver capito, una volta arrivati qui, la programmazione come funziona. Sconsiglio di avventurarsi nella creazione di un AI se non si è sicuri di aver compreso il funzionamento del codice nel CNS.

Partiamo col dire che l’AI è, per sommi capi, un insieme di “Changestate”.

Ricordiamo, che il changestate è quel comando che fa passare il personaggio da uno Statedef ad un altro. Ora, se abbiamo capito come funziona il sistema di Trigger, dobbiamo capire a quali condizioni questi changestate debbano attivarsi.

1)Innanzitutto, cosa fondamentale, devono attivarsi SE e SOLO SE il char è controllato dal pc. Questo glielo potremo dire, tramite una Variabile.
Una Variabile è una parte importante della programmazione ed è alquanto difficile spiegarne l’essenza. Per grandi linee, una Variabile ha un numero che la contraddistingue, e dei valori che può assumere. Vediamo ora come utilizzarla.
Per far funzionare questa prima condizione, utilizzeremo del codice che va nel file.CMD.

E’ bene sapere che il mugen, mentre combatte contro di voi, “preme tasti a casaccio” ad una velocità altissima. Con questa breve nozione, e l’uso della variabile, potremo dire al mugen che i changestate si potranno attivare solo se il char è controllato dal pc.
Nel CMD, insieme agli altri comandi che possiamo utilizzare anche noi “umani”, aggiungiamo stringhe simili a questa:

;-| AI Command |--------------------------------
[Command]
name = "AI1"
command = a, a, a
time = 1

[Command]
name = "AI2"
command = c, c, c
time = 1

Osserviamo come le combinazioni in questo caso sono semplici. Questo da possibilità in più al mugen di comporre queste combo. Importante, notate che il Time, quindi il tempo concesso per comporre la combinazione è di 1 tick. Questo rende IMPOSSIBILE ad un giocatore umano comporre questa combo(1 sessantesimo di secondo) ma, come abbiamo detto, ciò è possibile al mugen.

Ora, dobbiamo dire cosa succede, quando il mugen preme questi tasti.
Andiamo nella seconda parte del CMD, dove ci sono i Changestate. Aggiungiamo una stringa simile:

[State -1, AI]
type = Varset
trigger1 = command = "AI1"
trigger2 = command = "AI2"
trigger3 = command = "AI3"
trigger4 = command = "AI4"
trigger5 = command = "AI5"
trigger6 = command = "AI6"
trigger7 = command = "AI7"
trigger8 = command = "AI8"
trigger9 = command = "AI9"
trigger10 = command = "AI10"
trigger11 = command = "AI11"
trigger12 = command = "AI12"
trigger13 = command = "AI13"
trigger14 = command = "AI14"
trigger15 = command = "AI15"
v = 59
value = 1
In questo caso, ho ipotizzato di aver messo 15 comandi di attivazione (normalmente io ne metto sulla trentina). Osservate il type di questo state. È un Varset.
Se controllaste sugli “Sctrls”, leggereste che questo comando serve a settare il valore di una variabile. Il “nome” della variabile, è dato dal valore che diamo a “v”, in questo caso 59, mentre il valore da affidare alla variabile è quello riportato in “value”.
In questo caso, abbiamo settato la Variabile 59 (da ora in poi Var(59)) a 1.

IMPORTANTE: a meno che non sia espressamente comandato al mugen, questi all’inizio di ogni incontro AZZERA tutte le variabili, quindi la var(59), prima di essere stata portata a 1, era inevitabilmente a 0.

In questo modo, abbiamo deciso la prima condizione: se il personaggio è controllato dal computer, la var(59) si setterà ad 1. quindi nei nostri trigger, potremo usare come condizione che la variabile 59 sia settata a 1.

Le altre condizioni, le vedremo nella seconda parte di questo tutorial, insieme alla programmazione dell’AI nel CNS.

Saluti

Squall
 
Top
0 replies since 14/3/2008, 19:42   177 views
  Share