Table of Contents

Class SaveFileSerializer

Namespace
Core.SaveLoad
Assembly
Core.dll

ENGINE LAYER - Binary save file format serializer

Responsibilities:

  • Write SaveGameData to binary file format
  • Read SaveGameData from binary file format
  • Handle file format: magic bytes, headers, metadata
  • Atomic writes (temp file → rename) to prevent corruption
  • Version validation

File Format:

  • Magic bytes: "HGSV" (4 bytes)
  • Metadata: version, save name, date, tick, speed, scenario
  • System data: count + (name, bytes) pairs
  • Command log: count + bytes[]
  • Checksum: uint32

Usage: SaveFileSerializer.WriteToDisk(saveData, filePath); SaveGameData data = SaveFileSerializer.ReadFromDisk(filePath);

public static class SaveFileSerializer
Inheritance
object
SaveFileSerializer

Methods

ReadFromDisk(string)

Read SaveGameData from disk

public static SaveGameData ReadFromDisk(string filePath)

Parameters

filePath string

Returns

SaveGameData

VerifyVersionCompatibility(SaveGameData, string)

Verify version compatibility

public static bool VerifyVersionCompatibility(SaveGameData saveData, string currentVersion)

Parameters

saveData SaveGameData
currentVersion string

Returns

bool

WriteToDisk(SaveGameData, string)

Write SaveGameData to disk with atomic write (temp file → rename)

public static void WriteToDisk(SaveGameData saveData, string filePath)

Parameters

saveData SaveGameData
filePath string