Dipende quasi interamente dalle tue esigenze di gioco specifiche. Può funzionare perfettamente per un gioco semplice, ma fallire su un sistema più complesso. Se funziona per il tuo gioco, non preoccuparti o prova a progettarlo eccessivamente fino a quando non è necessario.
Per quanto riguarda il motivo per cui l'approccio semplice potrebbe non riuscire in alcune situazioni, è difficile sintetizzarlo in un singolo post, poiché le possibilità sono infinite e dipendono interamente dai giochi stessi. Altre risposte hanno citato, ad esempio, che potresti voler raggruppare gli oggetti condividendo le responsabilità in un elenco separato.
Questo è uno dei cambiamenti più comuni che potresti fare a seconda del design del tuo gioco. Ne approfitterò per descrivere alcuni altri (più complessi) esempi, ma ricordo che ci sono ancora molte altre possibili ragioni e soluzioni.
Per i principianti, farò notare che l'aggiornamento di alcuni oggetti di gioco e il loro rendering possono avere requisiti diversi in alcuni giochi e pertanto devono essere gestiti separatamente. Alcuni possibili problemi con l'aggiornamento e il rendering degli oggetti di gioco:
Aggiornamento di oggetti di gioco
Ecco un estratto da Game Engine Architecture che consiglierei di leggere:
In presenza di dipendenze tra oggetti, la tecnica di aggiornamento graduale sopra descritta deve essere leggermente adattata. Questo perché le dipendenze tra oggetti possono portare a regole contrastanti che regolano l'ordine di aggiornamento.
In altre parole, in alcuni giochi è possibile che gli oggetti dipendano l'uno dall'altro e richiedano un ordine specifico di aggiornamento. In questo scenario, potrebbe essere necessario escogitare una struttura più complessa di un elenco per archiviare gli oggetti e le loro interdipendenze.
Rendering di oggetti di gioco
In alcuni giochi, scene e oggetti creano una gerarchia di nodi genitore-figlio e devono essere resi nell'ordine corretto e con trasformazioni relative ai loro genitori. In questi casi, potresti aver bisogno di una struttura più complessa come un grafico di scena (una struttura ad albero) invece di un singolo elenco:
Altri motivi potrebbero essere, ad esempio, l'utilizzo di una struttura di dati di partizionamento spaziale per organizzare gli oggetti in modo da migliorare l'efficienza dell'esecuzione dell'eliminazione della frustum della vista.