Non e' che sia particolarmente chiaro che cosa stai chiedendo!
Un videogioco, ma e' generalizzabile, ha UNO STATO.
L'idea e' che in ogni momento tu puoi SALVARE lo STATO, chiudere l'applicazione, rialnciare l'applicazione, RILEGGERE LO STATO e ritrovarti ESATTAMENTE nello stesso punto.
Come si fa questo?
Potrebbe anche non essere necessario SALVARE lo stato per il semplice fatto che lo stato si trova gia' su un repository PERSISTENTE, ad esempio su un database!
Ma se vuoi utilizzare un file? In forma binaria ZIP, TAR, JSON, XML, HDF, Avro, ... e in qualunque altra forma ti viene in mente.
Certo, se usi qualche formato STANDARD (JSON, XML, magari dentro uno ZIP) ti risparmi la necessita' di inventarti una libreria per la lettura/scrittura.
Che cosa salvare? Questo dipende da quanto PERFETTAMENTE vuoi/puoi ripristinare lo stato al riavvio dell'applicazione