Gamedev Glossary ​​Che cos'è il Game Loop?

In questo post, spiegherò il cuore di ogni gioco: il ciclo di gioco! Tutto il codice che rende il gioco interattivo e dinamico va nel ciclo di gioco, ma è diviso in parti diverse. Il loop di gioco stesso è un loop infinito controllato che fa continuare il gioco; è il luogo in cui tutti i tuoi piccoli pezzi saranno aggiornati e disegnati sullo schermo.


Inizializza, Aggiorna e Disegna

Il ciclo di gioco è il codice centrale del gioco, suddiviso in parti diverse. Generalmente, questi sono: inizializzare, aggiornare e disegnare.

Il inizializzare fase viene utilizzata per eseguire qualsiasi configurazione di gioco necessaria e preparare l'ambiente per l'aggiornamento e disegnare le fasi. Qui è necessario creare le entità principali, preparare il menu, rilevare le funzionalità hardware predefinite e così via.

Lo scopo principale del aggiornare fase è preparare tutti gli oggetti da disegnare, quindi è qui che appartengono tutti i codici di fisica, gli aggiornamenti delle coordinate, i cambiamenti dei punti di salute, gli aggiornamenti dei caratteri, il danno inflitto e altre operazioni simili. Questo è anche il luogo in cui l'input verrà catturato ed elaborato.

Quando tutto è correttamente aggiornato e pronto, entriamo nel disegnare fase in cui tutte queste informazioni sono messe sullo schermo. Questa funzione dovrebbe contenere tutto il codice per gestire e disegnare livelli, livelli, caratteri, HUD e così via.


Stati di gestione

Il ciclo continuerà a funzionare ancora e ancora durante il gioco, quindi è necessario assicurarsi che esegua le parti corrette del codice per ogni parte del gioco. UN macchina di stato è generalmente utilizzato per questo compito; questo gestisce uno stato globale per il tuo ciclo di gioco e reindirizza il flusso verso la parte corretta del codice basato su di esso.


Tipica macchina di stato

Un semplice esempio che segue l'immagine qui sopra: un nuovo gioco inizia e procede allo stato principale. Questo caricherà il menu di gioco e quindi manterrà in esecuzione ed eseguirà la logica del menu finché non riceverà un evento di input (un clic del mouse, una tastiera o simili).

Questo evento innesca quindi una modifica nello stato di gioco principale, spostando il flusso di esecuzione nella scena di introduzione, quindi il codice del menu di gioco non viene più eseguito. Il ciclo di gioco continua a funzionare, ma esegue una parte diversa del codice - la parte corrispondente alla scena di introduzione.


Entità all'interno del gioco

Ora che hai tutti i tuoi stati sotto controllo, dovrai interagire con tutte le tue entità (caratteri, oggetti, NPC e così via) e aggiornare le loro proprietà (stato, salute, posizione, ...) per spostare oggetti e giocatori su il tuo gioco.

Così come l'esecuzione della parte specifica del codice basata sullo stato corrente, il ciclo di gioco ha anche un ciclo interno che esegue la parte specifica del codice per ogni entità nello stato attuale.


Interagire con le entità

Lo stesso comportamento accade nel disegnare fase, in cui ogni entità viene disegnata.


Conclusione

Il ciclo di gioco è il cuore del gioco, e non è troppo difficile capire il suo concetto se provieni da un ramo di sviluppo software diverso. C'è molto di più che potrebbe essere detto al riguardo, ma spero che questo post ti aiuti a capire il nocciolo di cosa si tratta!