Wie gehen die Spielprogrammierer vor, um den Spielstatus zu speichern und fortzusetzen? wie Dateien / Zuordnungen. Ich möchte es für das Tower Defense-Spiel speichern und verwende die unity3D-Game-Engine.
unity
tower-defense
savegame
Syed
quelle
quelle
Diese Antwort ist Unity3d-spezifisch .
In Unity sind die meisten Klassen serialisierbar. Dies bedeutet, dass Sie vollständige Unity-Objekte auf die Festplatte streamen können. Mit dem folgenden UnityScript-Code können Sie ein Objekt serialisieren, auf der Festplatte speichern und erneut laden (nach dem Laden müssen Sie das Objekt umwandeln):
quelle
Für einen TD würde ich wohl ausschließlich zwischen den Wellen sparen. Auf diese Weise müssen Sie nur an die Türme denken. Setzen Sie einige automatische Speicherpunkte in die Ebenen, nicht mehr als 10 Minuten dazwischen, aber weniger ist wahrscheinlich vorzuziehen.
Wenn Ihre Levels kurz genug sind, können Sie natürlich nur den Kampagnenstatus speichern.
quelle
Wenn ich mich auf den aktuellen Stand des Spiels beziehe, beziehe ich mich auf den Speicherauszug zum Zeitpunkt des Speicherns. Sie müssen in der Lage sein, dies anhand der Daten, die Sie auf Ihrer Festplatte speichern möchten, wiederherzustellen.
Am einfachsten ist es, alle Klassen mit Daten, die persistent sein müssen, zu serialisieren und auf die Festplatte zu sichern. Dabei wird im Wesentlichen ein Speicherauszug ausgeführt. Das Problem dabei ist, dass das Ändern Ihrer Klassen die Anzahl / Typen der serialisierten Werte ändert und alte Speicherungen aufbricht. Auch weil Sie alles speichern, erhöht sich die Ladezeit. Es ist effizienter, einzelne Felder zu markieren, die tatsächlich benötigt werden, um den aktuellen "Speicher-Snapshot" mit dem von Ihrem Serializer / Ihrer IDE verwendeten Attributsystem wiederherzustellen. Erstellen Sie dann den "Speicher-Snapshot" aus diesen gespeicherten Daten neu.
Außerdem habe ich Unity noch nie benutzt, sodass möglicherweise etwas eingebaut ist. Dies ist jedoch der typische Ansatz.
quelle