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
- README.md GitHub · jaenster/libd2 · Revision bc21bb9
- LICENSE GitHub · jaenster/libd2 · Revision bc21bb9
- docs/VERIFICATION.md GitHub · jaenster/libd2 · Revision bc21bb9
- docs/BUILDING.md GitHub · jaenster/libd2 · Revision bc21bb9
- build.zig.zon GitHub · jaenster/libd2 · Revision bc21bb9
- packages/drlg/src/oracle.zig GitHub · jaenster/libd2 · Revision bc21bb9
- packages/drlg/src/verify_tests.zig GitHub · jaenster/libd2 · Revision bc21bb9