Sto creando un gioco basato sulla griglia in Java e voglio implementare la registrazione e la riproduzione del gioco. Non sono sicuro di come fare questo, anche se ho pensato di 2 idee:Il modo migliore per implementare la riproduzione del gioco?
Più volte ogni secondo, mi piacerebbe registrare l'intero stato del gioco. Per riprodurlo, scrivo un renderer per leggere gli stati e provare a creare una rappresentazione visiva. Con questo, tuttavia, probabilmente avrei un grande file di salvataggio, e qualsiasi tentativo di riproduzione avrebbe probabilmente un lag evidente.
Potrei anche scrivere ogni pressione di tasto e fare clic con il mouse sul file di salvataggio. Questo mi darebbe un file più piccolo e potrei riprodurre con meno lag. Tuttavia, il minimo errore all'inizio del gioco (ad esempio, sparare 1 millisecondo dopo) si tradurrebbe in uno stato di gioco molto diverso nel gioco.
Qual è, quindi, il modo migliore per implementare la riproduzione del gioco?
Modifica- Non sono sicuro di quanto deterministico sia il mio gioco, quindi non sono sicuro che l'intero gioco possa essere riunito esattamente registrando solo i tasti e i clic del mouse.
Questo è un modo elegante per gestirlo. Se il gameplay effettivo e la registrazione sono basati sullo stesso meccanismo di timing/frame, è necessario evitare errori dovuti a problemi di temporizzazione. Se hai randomizzazione nei tuoi eventi, potresti dover registrare anche il valore iniziale del seme per il tuo generatore di numeri casuali. Ecco come le funzioni "Mappa casuale" nei giochi RTS ti consentono di rigenerare una mappa casuale che ti è piaciuta. –
Questo modello può anche fornire funzionalità Annulla/Ripristina. –