This may be anti-inspirational. It worked anyway.
After forty years of unfinished projects, Chris Reynolds set one rule before choosing what to build: “This, I ship.”
This is part of Fix Stories, our first-person series where developers share the real lessons behind making games.
In this story, Chris Reynolds, solo developer of Ominomicon, explains why finishing the game meant giving away the part of development he loved most.
Want more developer stories like this?
Get more first-person developer stories, interviews, reviews, indie coverage, and gaming features from Fix Gaming Channel.
Join Our Newsletter
Stay updated with the latest interviews, previews, and indie gaming news.
I have been writing software for forty years. Over that time I have amassed a directory full of unfinished projects. None of them died because of a crisis. They died abandoned, neglected, forgotten.
As I near retirement from the corporate grind, I looked at that directory and decided the problem was worth solving before the next project went in there too. So I set one rule, and I set it before I chose what to build: “This, I ship.”
Two things that kill my projects
There are two things wrong with me, and they work together to kill projects. Only two that are relevant here, anyway.
The first is that I was never in it to build the thing. I was in it to learn something new. A new language, a new database, a new game engine. And the learning ends. It ends well before the project does.
The second is that I love writing code. I learned to program before I had my first girlfriend, literally. And when the learning runs out I do not stop—I obsess over the details: this function could be ten times faster, does that line need to exist at all, is this the right shape for an interface nobody but me will ever see. It feels exactly like progress. I can do it indefinitely, and ship nothing.
Neither of these looks like quitting. Forty years of experience doesn’t fix it. If anything, it makes it worse. By now I can see the bottom of most things before I get there—it’s all lipstick on assembly—and the more you know, the sooner the learning runs out.
So I gave it away
The rule’s first consequence arrived immediately, and I did not like it.
If the place I go to disappear is the code, then I could not be the one writing the code.
So I gave it away. Claude wrote all of it.
Coding is my first love. Handing it over meant sitting on my hands while something else touched the thing I am best at, and knowing that was the point.
This was not vibe coding—typing a paragraph and shipping whatever comes back. It was also not code review. I did not read the code at all, and that was deliberate. Reading it would have been like letting a recovering alcoholic have just one drink.
What I did instead was move the obsession with detail somewhere it could not stall the project. I played the game compulsively. I drove the technical decisions without touching the implementation. And I went back and forth with Claude endlessly, both of us circling something neither could see clearly yet.
The target was the App Store
The target was the App Store. Not “make a game”—get on the store, with a price and a listing and a support address.
I chose it knowing it was doing double duty. It was the goal, and it was also the only part of this I had never done—I knew App Review could be brutal and knew absolutely nothing else about it. A lot of unknowns, all of them sitting on the far side of the finish line, which is exactly where I needed them. For once the personality defect was pointed at shipping instead of away from it.
Notice what is missing from all of that: an idea.
I did not have one. I had a bar to clear—ship something I was not embarrassed of, because the rule said “ship,” not “ship anything”—and no money for assets. So the question I opened with was not “What should I make?” It was: What kind of game can be built entirely out of art generated in code?
Falling blocks, with a roguelite run structure over the top and one mechanic strong enough to carry it, because there was no budget for a second. There are no image files in Ominomicon. Every pixel is computed, and the audio is generated for the same reason.
The vision was not grand. I have grand visions; none of them have shipped.
The rule kept turning up everywhere
No ads. No in-app purchases. No telemetry. No remote configuration of the balance numbers. Every one of those is a position I hold, and every one was also code I would not have to write. I would like to say they were all conviction. Most were conviction that happened to be cheap.
No telemetry has a price. Whatever balance ships is the balance, and I would never know if it was wrong. So it had to be right before it left.
Twenty relic cards, five offered per run: 15,504 possible hands. Not a large number in computer terms, but impractical for a human to test. We built a headless version of the game, the board as a bitboard and the rules as pure functions, and ran every hand.
It found two things. One card combination was overpowered, and the life economy was broken. Together they meant that with sufficiently precise play you could avoid death indefinitely—fatal for a permadeath game, where the run is supposed to end. Both were fixed before the game shipped. Neither would have been found without the bitboard automation.
Level 117, 1,167 lines. The game playing itself, unattended, in demo mode.
No playtester would have found that. It needs one specific set of five cards and play good enough to exploit them, and my playtester is my son, and he had other things to do. There is no QA team either, so early on I built the game to play itself. It ran unattended for hours while I worked on other things, and I caught several bugs out of the corner of my eye. Most of the test suite grew out of it.
None of this is the interesting part of making a game, and on any previous project I would have been long gone. The only reason I was still there is that I no longer had any code to hide in.
Then nothing happened
The game went live on July 29, 2026.
Gravity inverts. The stack hangs from the ceiling and pieces fall upward.
Then nothing happened. In the first week the store page was seen roughly a dozen times. There was one sale, and I made it myself.
This was not a surprise. I knew that shipping with no audience meant shipping into silence. But knowing that and watching it are different things. The rule said ship. It did not say anyone would look.
The rule worked
The rule worked. It did the one job it was written to do. There is a finished thing now, on a store, with a version number and a support address and a trademark application, and it is not in the directory with the others.
What it did not do is make anyone care. Those turn out to be two entirely separate problems, and I had only built a rule for the first one.
The discipline had a shelf life. For 1.0.1 I read every new or modified line, because shipping an update against something people already have is a different kind of risk than shipping nothing at all.
None of this is an argument for handing your code to a model. It was an answer to my particular defect, and if yours is different the same move will do nothing for you. I finished something, and I did it by giving away the part I love. That is a stranger feeling than I expected.
You do not fix yourself. You find the project where your particular defect points at the finish line, and then you get out of its way.
Which may be anti-inspirational, but true.
Ominomicon
Release: July 29, 2026
Genre: Falling-block roguelite puzzle game
Developer / Publisher: Chris Reynolds
Platforms: iOS — App Store
Bluesky: @ominomicon.com
Related Reading
Instant Estresso Fix Stories: Music, Coffee, and Solo Mobile Game Development
Golel: A Tick-Based First-Person RPG Built Through Persistence and Hard Lessons
Fix Stories: Real Game Development Lessons From Developers
Story by Chris Reynolds, solo developer of Ominomicon.
Edited and published by Ronny Fiksdahl, Founder & Editor of Fix Gaming Channel.
Send interview pitches, corrections, tips, or developer stories to contact@fixgamingchannel.com.
Support independent games coverage on Ko-fi.
