go-quake1

Pure-Go Quake — the original 1996 id Tech 1 engine, hand-ported from tyrquake-NQ, cgo-free, designed for TamaGo bare metal under the cloud-boot UEFI loader.

CGO_ENABLED=0 no SDL · no GL · no OpenAL · no libc soft renderer over go-virtio SIMD via go-asmgen 6-arch CI 100% coverage discipline
Engine README GitHub

Running Quake from Go usually means either binding an existing C engine through cgo (ironwail, vkQuake, the upstream WinQuake) or relying on a machine-translated source tree. go-quake1 takes the third path: a disciplined, operator-owned hand-port from a single pinned upstream (tyrquake commit 6531579), one tyrquake C module at a time, with the C source mirrored verbatim into reference/ so every Go file is a 1:1 audit of the upstream it derives from.

Built for bare-metal, validated by tests. The engine drives the framebuffer through the go-virtio GPU driver and the audio mixer through its snd channel; hot loops accelerate via go-asmgen-emitted Plan 9 SIMD on all six 64-bit Go targets. Every ported package carries the project-wide 100% statement coverage CI gate — error branches included, not just happy paths — and inherits the go-doom/engine 4-gate provable-test protocol (engine determinism BYTE-EQUAL · guest-GPU χ² bounded · audio events BYTE-EQUAL · audio WAV RMS bounded).

Repositories

engine engine

common · models · progs (QuakeC VM) · server · client · sound

The Quake engine in pure Go. Hand-ported from tyrquake-NQ commit 6531579. 22 packages at 100% statement coverage today (common + models + progs + bspfile + bsptrace); server / client / sound / backend in flight. CGO_ENABLED=0, 6-arch CI, BSD-3 wrapper + GPL-2 engine carve-out.

last commit cgo=0

brand brand

Logos, favicons, social previews

Brand assets — SVG / PNG / JPG / ICO / ICNS in color, white-transparent and black-transparent variants. Drives this landing, the engine README banner, and the org avatar.

last commit cgo=0

Every module is pure Go with CGO_ENABLED=0, held at 100% statement coverage as a CI gate. Every Go file traces 1:1 to a reference/ tyrquake C function, pinned to commit 6531579. The 4-gate provable-test protocol carries forward from go-doom/engine so engine determinism, GPU fidelity, and audio output are all measured-not-asserted. BSD-3 wrapper + GPL-2 engine carve-out throughout.

Family

go-quake1 — id Tech 1 (1996) · this project · go-quake2 — id Tech 2 (1997) · reserved · go-quake3 — id Tech 3 (1999) · reserved