// notes from building EchoWarrior and the tools around it. A dark-first devlog about games, systems, and work that can be opened up, inspected, and changed.
The benchmark from Devlog #17 names four culprits — a missing TOML file, a per-frame String clone, health bars for nobody, and companions rescanning the whole arena — and the same ladder comes back 23x faster: 10,000 live enemies at 109 fps.
EchoWarrior grows a benchmark mode: a staged horde ladder, measurement that refuses to lie, reports humans can read — and a first run that catches a bug in itself, then humbles the whole optimization campaign.
EchoWarrior's release pipeline now ships the game, Leitmotif, and soundgarden as one cooperating suite, with optimized binaries that remain fully traceable through out-of-line debug symbols.
A one-day performance campaign: the supersample that secretly did nothing, baking a storm into a texture, one atlas to batch them all, and why every answer to 'make it faster' was 'make it remember'.
Two visual features that turned out to be one story — why the shaders looked flat, how a render pipeline (not the GLSL) was to blame, and how a scene gets an anime cel look without a single surface normal to light. Plus the messy, human part: two of us editing the same file at once, and how we didn't lose a line.
Closing the one gap between what the validator promised and what the engine did — and a failing test that turned out to be a compliment. <br />
Building the whole authoring app on top of the contract — timeline, inspector, live stage, pickers, export — and the quiet satisfaction of a loop that finally closes on itself.
Turning the choreography engine into a *\*contract\**, then standing up a separate app on top of it — the unglamorous plumbing that decides whether non-programmers ever get to direct this game.
Rendering — how a lantern beam manages to look expensive while mostly being bullied by noise
**\*\*Focus:\*\*** Optimising shader work without sanding off the magic, and admitting that "just make it look better" is how you accidentally write a small weather system inside a fragment shader.
Persisting pause-menu settings properly, tightening combat feedback budgets, and improving companion/audio/readability behavior without turning the runtime into spaghetti.
Hunting a slow graphical corruption bug to its actual root, fixing two things permanently instead of locally, and laying the foundation for VFX that don't look like clip art.
A shader fidelity pass, and the one theorem that made it cheap
Why EchoWarrior is written in Rust instead of C/C++, and what that actually felt like so far.
What EchoWarrior taught me about treating moddability as a structural constraint from the first commit.
The eight architecture decisions behind EchoWarrior’s modding-first design, with the real code that makes them work.
Companion AI, shader-driven NPC abilities, combat feel, and the point where EchoWarrior became a modding-first project.
How EchoWarrior went from first assets to a playable, moddable Rust prototype in two and a half weeks.
