-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Dan Riddell edited this page Aug 7, 2026
·
3 revisions
crucible — the vessel the family is forged in.
The shared engine behind the family's Ebitengine apps and games. One package per engine concern, flat at the module root, generic over each app's own types.
The API reference lives on pkg.go.dev — this wiki carries what godoc cannot.
| Page | Description |
|---|---|
| Provenance | Where each package came from, and what deliberately stayed app-side |
App-specific vocabularies — messages, events, cues, tiles, textures — stay in each app; packages that carry them are generic.
| Package | What it is |
|---|---|
geom |
Vectors, grid coords, rects, clamps |
hud |
Timed status-line overlay |
canvas |
Software RGBA text/menu surface |
menu |
Title/pause/settings menu model + input polling |
keymap |
Display-free control-hint bar layout |
window |
Shared Ebiten window setup and resizing policy |
store |
JSON settings/records under the user config dir |
status |
Cue → timed HUD line pipeline |
narrate |
narrata-backed rewording of status lines |
telemetry |
Generic observer bus with bounded recent feed |
synth |
Procedural PCM sound effects, panning, cue shapes |
record |
Frame capture to GIF, MP4 and PNG |
demo |
Headless documentation-media toolkit — clips, montages, palette ramps |
hub |
Multi-window leader/child coordination |
worldgen |
BSP dungeon generation, corridors, flood-fill, weighted choice |
level |
Shared world model + generation pipeline |
raycast |
Raycasting camera, DDA, billboards, height-aware column walker |
view |
Display-free 2D pan/zoom camera |
camera |
Ebiten draw transform layered over a 2D view |
rng |
Deterministic seeded sub-streams (PCG) |
ring |
Fixed-capacity rolling-history buffer |
paint |
Colour brightness scaling and full-frame framebuffer blend |
Only menu, camera and window import Ebiten; everything else is plain Go and runs headless. That is what lets each app generate its whole docs/demos set with no display — see demo and record.
go get github.com/danielriddell21/crucible