Hello world - La struttura classica di un videogame
Senza addentrasi nello specifico di singoli progetti, per i quali potrebbero essere necessarie strutture alternative se non completamente personalizzate, vorrei descrivere in breve quelle che sono le componenti frequenti che si possono trovare in un videogame.
Nota. I post successivi che tratteranno questo argomento avranno come parola chiave “Struttura”, detto ciò:
Benvenuti in struttura!
Supponiamo di avere una classe principale che gestisca la logica del gioco, chiamiamola MainGame. Questa avrà i metodi:
Initialize()
{
Crea, Carica, Istanzia e Configura tutti gli elementi del gioco (Personaggi, Grafica, Audio, Stato di Gioco)
Può essere strutturato come un insieme di chiamate a metodi Initialize() o Load() degli elementi detti sopra.
Quando tutto è pronto lo notifica o avvia direttamente il fase di gioco.
}
La fase di gioco si può considerare come in insieme di istanti in cui viene modificato lo Stato di Gioco. Questi istanti vengono scanditi da un Timer che ad una determinata frequenza invocherà due metodi principali che si occupano della Logica e del Rendering:
Update(Timer)
{
Controlla lo stato di Gioco
Legge Input dell’utente
Modifica lo Stato di Gioco
}
Renderer(Time)
{
Legge lo Stato di Gioco
Modifica l’aspetto visivo/Audio
}
Esempio
Il gioco consiste in un omino che possiamo muovere sullo schermo evitando che venga colpito da macigni che cadono dall’alto.
In MainGame avremo:
StatoDiGioco
{
Posizione Omino
Posizioni Macigni
Fase (Gioco, Vittoria, Sconfitta)
}
Grafica: Omino, Macigni, Fondale
Suoni: Musica, Esplosione, Vittoria
Cominciamo.
Initalize()
{
Carica Grafica, Suono
Posiziona omino al centro
Posiziona Macigni in alto
Fase = Gioco
Comincia: Timer.Start
}
Update(Timer)
{
Leggi input -> cambia posizione dell’Omino
Cambia posizione Macigni (position.Y + gravità)
If (macigno colpisce Omino)
{
Play.Esplosione
Fase = Sconfitta
}
If (macigni finiti)
{
Play.Vittoria
Fase = Vittoria
}
}
Renderer()
{
Legge Stato di Gioco
Disegna Fondale
Disegna omino nella posizione aggiornata
Disegna macigni nella posizione aggiornata
Suona Musica ed Effetti
}
Bene adesso andiamo a fare un gioco!
Alla prossima, ciao
Commenti
Posta un commento