← All posts

The Relic Standard Library — ~980 Game Primitives, Every One Clean

June 28, 2026
Sigil-RetropieSigil-RetropiePR →
retropiegamingmilestonerelics0.7.0

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:

DomainRelics
Simulation & mathmomentum, bezier, noise1d, lock_step, terrain_gen, tween
Spatial & collisiongrid_path (8×8 BFS), aabb_tree, trigger_zone, camera2d, pathfollower, minimap
Game systemsinventory, loot_table, xp_level, status_effect, cooldown, ability_charge, combo_meter
Presentationsprite_anim, particle, damage_num, health_bar, color_palette, font_metrics, dialog_box
Plumbingring_buf, event_bus, event_queue, fsm, scene_stack, input_map, spawn_pool
Metaachievement, 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.