Skip to content

go-quake1 documentation

A pure-Go Quake 1 (id Tech 1, 1996) engine for bare-metal TamaGo + UEFI under the cloud-boot loader — hand-ported from the tyrquake NetQuake (single-player) branch (commit 6531579) and wrapped in cloud-boot virtio adapters.

It is the sibling of go-doom/engine in the DOOM → Quake roadmap. The family also reserves go-quake2 (id Tech 2) and go-quake3 (id Tech 3).

Status

Phase Q-1a in flight — hand-porting tyrquake-NQ to pure Go one module at a time, with parity tests against the upstream C behaviour. Every ported package holds 100% test coverage (the org gate) and validates on all six 64-bit architectures.

Component State
Porting conventions + reference/ tyrquake mirror (6531579) done
common (mathlib, crc, cmd, cvar, zone, qstr, sizebuf, qpath, qparse, msg, qargs, pak, vfs, wad, keys, protocol, anorms) done — 17 packages, 100% cov
models (bspfile, mdl, spr, model dispatcher) done — 4 packages, 100% cov
bsptrace (Mod_HullPointContents + Mod_TraceHull) done
progs (QuakeC VM — 65 opcodes + edicts + parser + math builtins) done — 100% cov
server (host + sv_world + sv_main + sv_phys + sv_user) in progress
client + soft renderer (r_*, d_*, cl_*) pending
sound (snd_dma + snd_mem + snd_mix) pending

Licensing

The repository is a BSD-3-Clause wrapper around the GPL-2.0 engine code (id Tech 1 is GPL): the cloud-boot adapters and tooling are BSD-3, while the ported engine retains the upstream GPL-2.0 license — see the engine repository.

Where to go next