Mein Speichersystem ist recht einfach gehalten und versionsunabhängig, indem ich es ausschließlich auf Info-Variablen beschränke. Ich verwende auch game_save und game_load, allerdings speichere ich per SV_INFO-Modus nur diejenigen Variablen, die ich tatsächlich brauche.

- Ich speichere Grafik- und Spieleinstellungen. z.B. aufloesung_x_i //_i für Info -> Lese im Manual unter game_save -> SV_INFO

- Ich speichere den Spielfortschritt. Eine Variable für den Karrierefortschritt des Spielers, eine Variable für verdiente Credits, ein paar wenige andere Variablen für Achievements und den Item-Shop. z.B. karrierefortschritt_i und credits_i

Bei jedem Spielstart wird die Speicherdatei ausgelesen. Mein Code ist so ausgelegt, dass die Auflösungs- und Soundeinstellungen bei jedem Spielstart nach diesen Variablen eingestellt werden, genau wie Mausempfindlichkeit, Helligkeit, Kontrast, Grafikeffekte, Shader, Anti-Aliasing etc.
Beim Spielfortschritt ist das ähnlich: Wenn der Karrierefortschritt bei 0 ist, kann nur ein neues Spiel gestartet werden. Falls bei 1, ist die erste Mission schon geschafft und es kann mit der Zweiten fortgefahren werden.
So auch beim Item-shop. Ist die Variable für die verbesserte Pistole auf 1, befindet sich diese im Inventar des Spielers und wird im Item-Shop als gekauft markiert.

Der Spieler merkt nichts von diesem minimalistischen System. Außer, dass die Speicherdatei nur 1 Kilobyte klein ist und er weder was vom Speichern noch vom Laden merkt, da es quasi in Echtzeit funktioniert.

Wenn man dieses einfache System beibehält gibt es nachher auch keine Probleme mit fehlerhaften Speicherdateien bei verschiedenen Versionen. Klar sind Rollenspiele ein wenig komplexer als ein Arenashooter, aber trotzdem würde ich so einfach wie möglich halten und auf ein Variablensystem setzen. Speichere zumindest nur das, was du wirklich brauchst. Das geht schneller, ist eleganter, vermeidet Fehler und etliche Probleme.

Ach und vergiss das mit dem eigenen Speichersystem. Das von Gamestudio ist mehr als gut genug, läuft fehlerfrei, wenn man es richtig einsetzt :-) . Ein Eigenes bringt nur Probleme und Frust falls du kein erfahrener Programmierer bist. Nicht böse gemeint, nur meine Erfahrung. Never touch a running system.