Skip to content

Devblog

Blog

Production notes and field reports.

Featured

MethodJuly 9, 2026

Observe before you patch

An audit diagnosed an arithmetic error in Limon's prayer loop. I almost fixed it. The code said the opposite: the mechanism was sound. The code tells no story.

Method

Scoping, batches, validation, delivery.

MethodSeptember 8, 2026

Ask the decoder, not the extension

Most of my files had stopped playing. The app promised Opus support on the word of an extension list its audio engine could not honor. The fix: ask the decoder itself. And the measurement that kept me from uniformizing too far.

Read article
MethodSeptember 5, 2026

925 outcomes, zero coda

My game rang out its punchlines on detached lines: 58% of the 925 outcome texts ended in a coda. Two days of tooled mass rewriting later: zero. The story of a pass where measurement corrected intuition at every batch, including on my own commit titles.

Read article
MethodAugust 8, 2026

AI on the box, only when it's in the product

Same studio, two opposite pitches: Grimoire puts its AI front and center, Galactic Rogue never mentions it. That is not an inconsistency, it is a rule. Use freely, disclose systematically, sell only what is true.

Read article
MethodAugust 3, 2026

Narrating emergence is not proving it

Anyone can claim that complexity emerged from their code. Proving it is another matter: comparing it against pure chance, and telling what the program invents apart from what I wrote by hand.

Read article
MethodJuly 29, 2026

Shipping sprites without drawing them

A solo dev with no pixel artist producing the assets for an idle game through a generation API. The real work isn't the generation: it's the protocol around it. Briefs, budget, selection, composition.

Read article
MethodJuly 24, 2026

Scope creep hides in the words

I had frozen my game's scope. Then I wrote a roadmap that, without ever lying, had relabeled as "finishing" work I'd filed away for after release. The quiet mechanics of scope creep, and the document that stopped me.

Read article
MethodApril 10, 2026

The scoping document I deliver before the first line of code

Before writing any code on Grimoire, I lock a scoping document: strict scope, delivery batches, validation criteria. Here is what is inside, and the two times it failed me.

Read article
MethodApril 7, 2026

72h to a playable prototype

The format, the constraints, an honest example, and why time pressure creates direction instead of just cutting it short.

Read article
MethodApril 2, 2026

Why I never merge without an audit

Tests, coverage, lint, post-batch audit, CI/CD. The full sequence, and what happens when you skip it.

Read article
MethodMarch 12, 2026

Why I never code first

PREDEV/POSTDEV, numbered batches, post-delivery audit. The method I apply on every project, from idle games to Play Store.

Read article

Case study

Grounded in real projects.

Case studySeptember 14, 2026

A delivery round is worth 71 coins, not 9

My autopilot had played one freight round and concluded it paid 9 coins. A 400-draw probe says 71. Between the two there is no bug: there is an anecdote mistaken for a measurement, and I almost tuned my economy on it.

Read article
Case studySeptember 2, 2026

My game taught the wrong key

On the itch page, the tutorial plates announced A and D. On an AZERTY keyboard, the key to press is engraved Q. The very first gesture the game teaches showed the wrong key to its audience. The cause: the web does not know what your keyboard engraves.

Read article
Case studyAugust 27, 2026

The boar was purple

After release, I looked at my game like a painting: every image produced as needs arose, against a palette that no longer existed. The overhaul happened in waves, by measurement. And at the end, a purple beast that two out of three measurements declared fine.

Read article
Case studyAugust 24, 2026

A prologue with weight

The first hour of EREME teaches the rules by example, and it used to teach that choosing costs nothing: eleven of the fourteen options led to outcomes with no effect. How the prologue learned to weigh, why it ends at undocking, and how a stowaway without a character sheet became someone.

Read article
Case studyApril 11, 2026

Galactic Rogue: from prototype to playable alpha

Why I prototyped fast first, why I rebuilt the project on a cleaner foundation, and what the PC-first alpha already validates today.

Read article
Case studyMarch 28, 2026

Grimoire Culinaire: 14 batches solo

700 tests, an 80% coverage gate, 14 batches, and a scoping mistake caught early enough to fix. A look at shipping a real mobile product, batch by batch.

Read article

Technical

Rendering, engines, systems, local AI.

TechnicalSeptember 11, 2026

Four tiers instead of a switch

In my maneuvers, placing the crew well cancelled luck: sixteen options out of twenty-four dropped to zero chance of failing. The fix does not change the roll, it changes its reading: it holds, it barely holds, it fails, it fails badly.

Read article
TechnicalAugust 30, 2026

The map that tells

EREME's voyage map fits in an 86-pixel strip. On hover, a crossed node says what happened there; an upcoming node says you know nothing about it. All of it without a single new piece of state: the journal already carried everything, it was missing one line.

Read article
TechnicalAugust 21, 2026

The cab is the menu

Sillon has no driving screen. A control desk, a four-notch lever, a whistle, a firebox: everything you operate is operated from the cab, by walking up to the organ. What this commitment demands, and how I verify it holds.

Read article
TechnicalAugust 13, 2026

My note-reading assistant was an injection target, and the title was the vector

I gave my assistant long-term memory: it retrieves my notes and quotes them. I sanitized the content, wrote tests, everything looked solid. An adversarial review of my own code found the hole I had not seen: the title.

Read article
TechnicalJuly 19, 2026

Decoding 4K in Rust

AquaTube uses no system player: video is decoded by hand, up to 4K HEVC in hardware, to pass through the cathode-ray screen. The pipeline, its traps, and the clock that sets the tempo.

Read article
TechnicalJuly 14, 2026

Offline-first is not a cache

In Grimoire Culinaire, the local database is the source of truth and Supabase is just a mirror to reconcile. What that inversion concretely changes in the code, and what it costs.

Read article
TechnicalMarch 15, 2026

Designing a mobile game economy: the muffins case

How I designed Grimoire Culinaire's internal economy: 80 muffins/month, rewarded ads, free trial, and pricing mistakes.

Read article

Launches

Launches and distribution.

LaunchesAugust 18, 2026

Inheriting an itch page

On August 7th, the itch page of my discontinued game became EREME's. Everything can be replaced in a single day, except three traces: a rating, a date, buyers. What inheriting a page really means, and what it costs in transparency.

Read article