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
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.
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.
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