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.

MethodOctober 29, 2026

Five of my agents agreed. It was the same bias, copied five times

I had my game reviewed from several angles at once. They converged. I almost believed it, until I understood that a consensus can be a single bias, duplicated.

Read article
MethodOctober 23, 2026

What shipping solo actually costs

A studio that sells almost nothing still keeps paying: tool subscriptions, time split between projects, finishing energy. What a silent launch taught me about the one skill no gamedev tutorial ever teaches.

Read article
MethodOctober 14, 2026

When 'it's only an indicator' becomes an alibi

My balance reports ended with honest caveats. An audit showed me how "it's only an indicator" had slid from precaution to alibi, letting me settle numbers on an instrument blind to 40% of the game.

Read article
MethodOctober 8, 2026

Four languages, 884 keys, one solo dev

Grimoire Culinaire declares four languages, but only two are complete and the locale is hard-locked to French in the code. That is not neglect: it is a deliberate shipping pattern, feature first, translation when it pays off.

Read article
MethodSeptember 20, 2026

True when written, false when read

My portfolio was not lying by mistake: every sentence was true the day it was written. The story of the August 15, 2026 overhaul, of the build guard that prevents a relapse, and of what a second reading surface, held by a voice, makes visible that the guard cannot see.

Read article
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 studyOctober 2, 2026

Your tribe first, the world later

My god-game opened with the ending: the whole world, revealed in the very first second. The pivot inverted everything without touching the engine: the game now starts tight on your tribe, and the world is earned. The story of an entirely render-only overhaul.

Read article
Case studySeptember 26, 2026

I set out to prove emergence, I made a game

Limon was meant to be an instrument, proof that complexity can arise on its own. A squad of adversarial reviews showed me I was conflating two things. I let the claim go, and it cost me.

Read article
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.

TechnicalOctober 26, 2026

Routing two LLMs without going broke

No meta-router, no SDK, no tenth provider. Two bare fetch() calls, one timeout, one fallback, and muffin quotas that turn every AI call into a spending cap. A guided tour of Grimoire Culinaire's LLM routing.

Read article
TechnicalOctober 20, 2026

The debt that slept in a 64-bit word

I reserved room for 192 technologies and, without noticing, capped my tree at 64. The limit crashes nothing: it waits, quietly, for the day the game gets rich enough to hit it.

Read article
TechnicalOctober 17, 2026

31 personas, one orchestrator

Getting an 8-billion-parameter local model to produce a valid JSON execution plan, then running it across a fleet of 31 specialized personas: what breaks, what you harden, and why the hardest part is keeping the planner from being creative.

Read article
TechnicalOctober 11, 2026

Painting the glass and the tube

AquaTube does not display a skin drawn in Photoshop. The glass and the cathode-ray screen are computed every frame. Why re-embrace Frutiger Aero and the CRT TV in 2026, and what it changes.

Read article
TechnicalOctober 5, 2026

The file that hid URLs

A player that probes its files by content will also read what is disguised. A fake .mp3 holding an ffconcat manifest could make a local player open arbitrary URLs. The countermeasure fits in one option, and the lesson outgrows the case.

Read article
TechnicalSeptember 23, 2026

The save the player does not choose

EREME has no save button. The engine writes at the entry of every node, before revealing the card, and refuses to write mid-decision. Yet for nineteen days, the game played on screen almost never got written, and the gate stayed green.

Read article
TechnicalSeptember 17, 2026

The memory acted without ever saying so

EREME promises a crew that remembers. Ten marks out of fifteen really did weigh on maneuvers, but no path could make it speak: validation checked that the text exists, nobody checked that it could come out.

Read article
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.

LaunchesSeptember 29, 2026

The invisible web zip mistake

A web build for itch must carry index.html at the root of the archive. Zipping the folder instead of its contents breaks the browser player, with no useful message. It is the most banal mistake of the format, it always happens by hand, and I wrote a script to make it impossible.

Read article
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