Attualmente sto sviluppando il mio primo gioco in linguaggio Java.
Il gioco è un corridore senza fine con ostacoli da evitare e nemici da uccidere. Purtroppo ancora non ho esperienza abbastanza e molte volte sto solo improvvisando. Non ho idea se il mio metodo di caricamento degli ostacoli sia buono o cattivo in termini di prestazioni (quanto velocemente un gioco funziona, quanto fps) .
Attualmente il mio codice è progettato in un modo in cui ho una classe di livello e nel costruttore di livello creo tutti gli ostacoli che verranno utilizzati in quel livello. Gli ostacoli sono mostrati casualmente nella finestra di gioco. Quando è necessario un ostacolo, lo stato dell'ostacolo viene resettato e l'ostacolo viene reso. Quando l'ostacolo diventa rendering offscreen e le funzioni di aggiornamento vengono interrotte. L'oggetto ostacolo è ancora nella memoria dell'heap pronto per essere riutilizzato. Quindi non esiste la creazione di oggetti al volo e quindi la rimozione dei riferimenti.
Non ho idea se è valido per la velocità di esecuzione del gioco o non buono o irrilevante? Che dire di Garbage Collector è una buona pratica o no? Lo codifico in questo modo perché è più semplice per me perché gli oggetti ostacolo sono in realtà piuttosto complicati e sarebbe più difficile per me codificarlo nel modo in cui li creo al volo a caso. E ci sono probabilmente 40 o 50 oggetti sempre pronti per l'uso? Gli oggetti sono referenziati tramite ArrayList di ArrayLists.
Quindi questo design accettabile o spazzatura completa? Qual è il tuo pensiero?