Ho recentemente fatto un salto nel pool XNA e sto imparando tutti i dettagli del framework in C#. Una cosa che ho notato nella mia ricerca è che non sembra esserci un modo "corretto" ampiamente accettato di implementare GameComponents.XNA GameComponent Implementation Preferences ...?
Dopo aver letto this thread (tra gli altri), ho scoperto un ampio spettro di preferenze tra gli sviluppatori di giochi. Ho visto alcuni sostenitori che non usano affatto GameComponents (o solo con parsimonia), mentre altri sostengono di usarli per tutto, fino al giocatore/unità nemiche, missili, ecc. Poi ci sono alcuni che prendono un moderato approccio e riserva l'architettura GameComponent per entità di medio-alto livello come schermi, renderer, scene, ecc. che a loro volta contengono e guidano le loro unità di gioco più granulari.
Alla fine della giornata, è compito dello sviluppatore del gioco determinare il modo migliore per implementare il framework. Dal momento che StackOverflow è pieno di sviluppatori esperti che hanno dimenticato più di quanto io possa mai sapere, mi piacerebbe avere un'idea di ciò che il consenso è qui prima di continuare su questa strada con il mio uso del framework.
Qualcuno deve preoccuparsi di ascoltare i propri pensieri? Grazie in anticipo!
Grazie per la risposta! Ho sentito dire che l'uso della raccolta Game.Components causa un sovraccarico, ma sembra che tu voglia sostenere diversamente. Pensi che la creazione della propria gerarchia/sistema di gestione delle entità offra maggiori potenzialità di rendimento? – Syndog
Mi dispiace, davvero non lo so. Avrai certamente più controllo, quindi forse puoi spremere più prestazioni. Ma poi di nuovo, MS probabilmente sa dove stanno andando e ha spremuto le prestazioni di GameComponent per cominciare :) Ma per alcuni oggetti, in particolare se si pensa di averli su schermo (come i proiettili), è meglio lasciarli come strutture per motivi di prestazioni – Bob
GameComponents sta per essere implementato come una lista interna, non può ottenere molto più efficiente di quello! Per quanto riguarda le strutture, non sono sicuro che sia una grande idea, il passaggio di una struct in C# implicherà molti valori di copia. Il garbage collector è lento solo su xbox, su PC puoi praticamente dimenticarlo. – Martin