While the fleet chases the keyboard on real metal, RetroPie has been quietly building something large: a standard library for games, written as a continuous run of small, single-purpose relic_* modules. It crossed the 950-relic milestone with relic_dialog_box and is now closing on 1,000 — and every single one shipped clean. Not "mostly green." Zero bad, every time.
These are the building blocks a game actually needs: an inventory, a finite-state machine, a 2D camera with screen-shake, a BFS pathfinder, a weighted loot table, a particle system, a tweener, an AABB collision tree, a leaderboard, a dialog box. Each lands as one .sg file in lib/, a few kilobytes, fully tested, ready to drop into a Relic.
Built on the four pillars
The interesting part isn't the count — it's that the whole library is shaped by sigilOS's four pillars. The constraints that make the OS FAST · EFFICIENT · SECURE · STABLE are the same constraints every relic is written to.
FAST
Fixed-point throughout — Q8.8 for velocity, health, cameras, Béziers. No FPU dependency, so the same code runs full-speed from the Pi 3 floor upward. RNG is a tiny LCG; noise is a stateless lattice.
EFFICIENT
Bounded by construction. 8-slot pools, 16-slot rings, free-list object pools, fixed glyph and palette tables. No dynamic allocation, no unbounded growth — a relic's memory footprint is known before it runs.
SECURE
100% Sigil — no C, no ambient authority. Relics ship inside the capability-secured container, so a game holds only the sub-range caps it was granted and can touch nothing else.
STABLE
Every module passes the full ABCDEFGH test battery before it ships. The run is ~980 modules deep and the bad-build count is still zero — the discipline is the deliverable.
What's in the box
A sampling of the run, grouped by what they do:
| Domain | Relics |
|---|---|
| Simulation & math | momentum, bezier, noise1d, lock_step, terrain_gen, tween |
| Spatial & collision | grid_path (8×8 BFS), aabb_tree, trigger_zone, camera2d, pathfollower, minimap |
| Game systems | inventory, loot_table, xp_level, status_effect, cooldown, ability_charge, combo_meter |
| Presentation | sprite_anim, particle, damage_num, health_bar, color_palette, font_metrics, dialog_box |
| Plumbing | ring_buf, event_bus, event_queue, fsm, scene_stack, input_map, spawn_pool |
| Meta | achievement, leaderboard, save_slot, message_log, vote_poll, budget_alloc |
The shapes repeat on purpose. A relic_ring_buf and a relic_event_queue are both fixed-size wrap-around FIFOs because that's the pattern that's safe on a constrained device — you never chase a pointer past the end, you never allocate mid-frame, you never surprise the scheduler.
Why a standard library at all
Relics are the native game format for sigilOS RetroPie — one file, one game, capability-secured. A standard library underneath them means a game author isn't re-implementing a pathfinder or a save system from scratch, and isn't reaching for a C dependency that would blow the security model. They compose vetted, fixed-size, all-Sigil primitives — and inherit the four pillars for free.
The run continues. Next stop: relic #1,000.