Skip to content

Latest commit

 

History

History
66 lines (47 loc) · 2.21 KB

File metadata and controls

66 lines (47 loc) · 2.21 KB

doom-gzengine-core — testing reference

Last updated: 2026-06-17

@hypercrab2000/doom-gzengine-core — game engine WASM scaffold, GZTICK wire format. Cross-repo guide: ../../docs/TESTING.md.

Status

Scaffold only. Tests today cover TypeScript types, GZTICK codec stubs, and host API contracts. Tick parity corpus and WASM binary tests are not started.

Component Test status
GZTICK v0 TypeScript types Unit tests
Binary read/write codec Unit tests
GzEngineHostApi stub Unit tests
GZDoom -dumpgztick fixtures Not started
WASM gzengine_core Not started
Federated engine+renderer doom-wad-lab integration (planned)

Commands

npm install
npm test
npm run test:watch
npm run build

Planned test layers

Aligned with game-engine-vs-renderer.md:

Layer A  GZTICK codec           — section layout, endian, version bump policy
Layer B  Tick fixtures          — GZDoom dump vs WASM export per map/tick
Layer C  Actor/thinking corpus  — zombie, sergeant, imp minimal set
Layer D  Federated host         — engine WASM + renderer WASM in doom-wad-lab

Future commands (planned)

npm test                      # codec + types (today)
npm run corpus:tick           # GZDoom vs WASM tick parity (planned)
npm run test:engine-render    # doom-wad-lab federated integration (planned)

GZDoom dependency

Tick ground truth requires gzdoom-project fork with -dumpgztick (not implemented yet). Until then, tests validate format contracts only.

See gzdoom-project/docs/PARITY-TOOLS.md.

Regression policy

  1. GZTICK schema change → version bump in GZTICK-v0.md + golden fixture update.
  2. Any fix to tick simulation → add failing fixture before fix.
  3. Run doom-wad-core + doom-wad-lab smoke after host API changes.

Related

Document Topic
ARCHITECTURE.md Engine vs renderer split
GZTICK-v0.md Wire format draft
LICENSING.md MIT vs future GPL linkage