Skip to content

go-doom documentation

A pure-Go DOOM (id Tech 1, 1993) engine for bare-metal TamaGo + UEFI under the cloud-boot loader. It is the sibling of the go-quake1 family (the id Tech 1/2/3 ports).

Fork origin

This engine is a fork of AndreRenaud/gore (commit 7dc6c654…, 2026-05-11). gore is itself a Go transpilation of doomgeneric via modernc.org/ccgo, then hand-cleaned. The engine has no CGO dependency — standard library only — and exposes its host bindings through a small DoomFrontend interface, exactly the shape needed to wire DOOM into cloud-boot's virtio device tree. The upstream README is kept as README.upstream.md.

Why this fork exists

cloud-boot is building an OS-agnostic OCI boot architecture on TamaGo + UEFI. To showcase Phase 3 it runs classic DOOM as the OS payload, with rendering, sound and input wired straight to virtio devices instead of SDL / X11 / a kernel. The fork adds:

  • backend/tamago/ — a DoomFrontend that drives cloud-boot's virtio-gpu, virtio-sound and virtio-input drivers (real wiring lands as the go-virtio sound/input sprints ship);
  • internal/embedwad/ — an io/fs.FS shim serving a WAD blob.

Provable-test protocol

go-doom originated the project's 4-gate provable-test protocol that go-quake1 inherits. Brand: blood-red, a D+horns glyph (no id Software trademarked assets).

Licensing

A BSD-3-Clause wrapper around the GPL-2.0 DOOM engine code: cloud-boot adapters and tooling are BSD-3, the ported engine retains the upstream GPL-2.0 license — see the engine repository.

Where to go next