Case study

libd2: Diablo II 1.14d engine-core libraries

Zig libraries reconstructing Diablo II 1.14d seeded maps, item generation, saves, simulation rules and network formats. Selected components expose native and WebAssembly interfaces; verification notes distinguish retail map comparisons from weaker subsystem evidence.

Requirements and limitations

  • Builds require Zig 0.16.0. These are modular engine libraries, not a complete playable client; basic generation uses embedded data and fixtures.
  • MIT covers the Zig source. Included Blizzard-derived binary blobs and map fixtures are expressly excluded from that grant; the repository is not asset-free.
  • The authors report cell-level comparisons for five Nightmare seeds and two holdouts, plus per-level CRC checks for 200 seeds at three difficulties. This finite corpus does not establish all-seed or whole-engine equivalence.
  • The game and net packages are checked against recovered rules and packet layouts, not a live server; save, item and pathfinding checks have different depth. No experiments were independently reproduced here.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Binary · Game · Protocol

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. README.md GitHub · jaenster/libd2 · Revision bc21bb9
  2. LICENSE GitHub · jaenster/libd2 · Revision bc21bb9
  3. docs/VERIFICATION.md GitHub · jaenster/libd2 · Revision bc21bb9
  4. docs/BUILDING.md GitHub · jaenster/libd2 · Revision bc21bb9
  5. build.zig.zon GitHub · jaenster/libd2 · Revision bc21bb9
  6. packages/drlg/src/oracle.zig GitHub · jaenster/libd2 · Revision bc21bb9
  7. packages/drlg/src/verify_tests.zig GitHub · jaenster/libd2 · Revision bc21bb9