Class SaveFileSerializer
ENGINE LAYER - Binary save file format serializer
File Format v2:
- Magic bytes: "HGSV" (4 bytes)
- Format version: int32 (4 bytes) — 1 = legacy, 2 = metadata+compression
- Metadata header: 256 bytes (fixed-size, readable without full deserialization)
- Compressed payload (GZip):
- System data: count + (name, length, bytes) pairs
- Command log: count + bytes[]
- Checksum: uint32 (CRC32 of compressed payload)
File Format v1 (legacy):
- Magic bytes: "HGSV" (4 bytes)
- Header: variable-length metadata
- System data + Command log (uncompressed)
- Checksum: uint32
public static class SaveFileSerializer
- Inheritance
-
objectSaveFileSerializer
Methods
ReadFromDisk(string)
Read SaveGameData from disk. Supports both v1 (legacy) and v2 (metadata+compression) formats.
public static SaveGameData ReadFromDisk(string filePath)
Parameters
filePathstring
Returns
ReadSaveMetadata(string)
Read only the metadata header from a save file (fast — reads ~264 bytes). Returns null if the file is invalid or uses legacy format.
public static SaveMetadata? ReadSaveMetadata(string filePath)
Parameters
filePathstring
Returns
VerifyVersionCompatibility(SaveGameData, string)
Verify version compatibility
public static bool VerifyVersionCompatibility(SaveGameData saveData, string currentVersion)
Parameters
saveDataSaveGameDatacurrentVersionstring
Returns
- bool
WriteToDisk(SaveGameData, string)
Write SaveGameData to disk with atomic write (temp file → rename). Uses format v2: fixed metadata header + GZip compressed payload.
public static void WriteToDisk(SaveGameData saveData, string filePath)
Parameters
saveDataSaveGameDatafilePathstring