Acc. XXI · Ignis silvestris — voxel action-game world, cultivated 2026
Emberkeep — cozy voxel action game with class combat and open-world PvE
Systems R&D engineer · 2026 · Independent studio
A browser-native voxel action game with eight-plus handcrafted zones, class-based combat, and a 60-level progression system — a systems R&D vehicle for real-time rendering, physics, and procedural-world engineering under a verification-gated agent harness.
Ignis silvestris — voxel action-game world, cultivated 2026
Field notes
The context
Forked from the Embervale prototype once its rendering, physics, and asset foundation proved workable, Emberkeep pushed that base into a full open-world PvE game — the studio's hardest real-time-systems problem: sustained frame budget across open terrain, dozens of simulated actors, and a live day/night and weather cycle, none of which tolerate routing high-frequency state through a reactive store.
Cultivation
What I built
- Built eight-plus handcrafted zones (Hearth Grove, Twin City, Mist Peak, Ember Shore, Frostfir Reach, Lanternfen, Heatherdown Moors, Emberfall Canyons) over baked per-seed heightfields with authored landmarks.
- Implemented four class kits (Hearthblade, Embermage, Grovewarden, Shrinekeeper), a 60-level progression with a piecewise XP curve and difficulty scaling, and world bosses with unique mechanics at landmarks.
- Built the quest system end to end — map, tracker, objective wayfinding, and quest trails — plus a dungeon interior with independent progression.
- Designed a second-generation puppet system for character creation, wardrobe, and appearance customisation, rendering procedural voxel fallbacks or optional Blender GLB puppets under a versioned contract.
- Built enemy AI with steering pathfinding, aggro, pack pull, and flee behaviour, and an inventory/gear system where stats affect damage and movement.
- Split game state deliberately — Zustand for UI-visible state (phase, HP, XP, toasts), a mutable runtime module for high-frequency per-frame state (mob positions, projectiles, VFX, facing) — to keep the render loop off the reactive-state path.
Root system
How it works
A single Vite + React app renders through @react-three/fiber with @react-three/rapier reserved for player/environment physics, while player and mob blocking runs through soft collision rather than full rigid bodies. The world combines baked per-seed voxel heightfields with authored landmarks over procedural placement; mobs steer with local pathfinding plus detour avoidance, and environmental VFX are instance-capped to hold the frame budget. A roughly twenty-minute day/night cycle and weather system run alongside the zone and quest layers. Correctness is enforced by scripted verification — zones, capitals, population, world, weather, day/night, water, character rigs, and performance — gated in CI alongside typecheck, lint, build, and bundle checks, rather than by eye.
Harvest
Outcomes
- Eight-plus zones, four class kits, a 60-level progression system, and a full quest and dungeon layer shipped and playable at the live URL.
- A verification suite covering world, weather, rigs, and performance runs in CI as a hard gate, not an afterthought.
- Some zone capitals exist as content stubs pending further work, and a planned multiplayer simulation package has not been started.
- No players or usage metrics — this is a technical prototype, not a released product.
Herbarium
The work itself





Splitting UI-reactive state from per-frame simulation state early is what keeps an open-world voxel game's frame budget intact — retrofitting that split later is far more expensive than designing for it up front. Scripted verification over gameplay systems (zones, rigs, performance) catches regressions that visual inspection alone misses in a project this large.