Auf dieser Seite findest du interne Infos zur Entwicklung von Serflings und zu Siedler 1. Dazu gehören zum Beispiel Datenformate oder Informationen über interne Strukturen und Abläufe des Spiels.

Hier geht es zurück zu den allgemeinen Infos: Serflings

Speicherdateien und Archiv

Im Original ist die Speicherdatei (save[0-9].ds) eine binäre Abbildung des Spielstatus aus dem RAM. Die einzelnen Speicherstände werden verwaltet in einer separaten Archivdatei (archiv.ds). Das Archiv beinhaltet zum Beispiel die Namen der einzelnen Speicherstände, da diese nicht in der Speicherdatei direkt gespeichert werden.

Datenformat Archivdatei (archiv.ds)

Das Archiv kann 10 mögliche Speicherstände verwalten. Jeder Speicherstand besteht dabei aus 16 Bytes. Insgesamt besteht die Datei somit aus 160 Bytes.
Nachfolgend sind die Bytes eines Speicherstands im Archiv dargestellt:

Datenformat Speicherdatei (save[0-9].ds)

Die Speicherdatei hat keine feste Länge, da sie von der Kartengröße und der Anzahl der aktuell genutzen Objekte (Siedler, Fahnen, Gebäude, Lager) abhängt.
Serflings ist vollständig kompatibel zum Originalformat, nutzt aber einige unbenutzte Bytes für einfache Änderungen am Spiel, die nicht die Spiellogik direkt betreffen. Dadurch lässt sich eine Speicherdatei von Serflings auch wieder im Original laden.
Bei größeren Änderungen an den Spielregeln wird allerdings die Speicherdatei so weit verändert, dass sie nicht mehr kompatibel ist. Serflings nutzt dafür das Feld für die Anzahl der Elemente der Karte, da das Original die Gültigkeit an diesem Feld prüft.
Nachfolgend ist eine grobe Übersicht der einzelnen Bereiche dargestellt:

Nachfolgend sind die Bytes des allgemeinen Bereichs dargestellt (250 Bytes):

Nachfolgend sind die Bytes eines Spielers dargestellt (8.628 Bytes):

Die Elemente der Karte sind aufgeteilt in Spalten und Zeilen. Jedes Element in einer Zeile ist zudem aufgeteilt in 4 Bytes vorne und 4 Bytes hinten. Konkret sieht man die Aufteilung im folgenden Beispiel (4x4 Elemente):

      AAAABBBBCCCCDDDD AAAABBBBCCCCDDDD
      EEEEFFFFGGGGHHHH EEEEFFFFGGGGHHHH
      IIIIJJJJKKKKLLLL IIIIJJJJKKKKLLLL
      MMMMNNNNOOOOPPPP MMMMNNNNOOOOPPPP
    

Nachfolgend sind die Bytes eines Kartenelements dargestellt (4 Bytes Vorne + 4 Bytes Hinten):