I've shipped three games as a solo developer while working a full-time job. None of them are massive — but each one taught me something I couldn't have learned from a tutorial. Here are five of those lessons.
1. Mobile Is Its Own Project
I kept thinking of mobile support as a checkbox — make it responsive and move on. In reality, it's a second project hiding inside the first. The Penguinboi landing page alone took over ten rounds of iteration just to get things sized and positioned right on small screens. Hacking Slash needed a full set of touch controls that didn't exist in the desktop version — virtual joystick, action buttons, screen-size adjustments — and each one went through multiple fixes before it felt right.
If you're making something people will play on their phone, budget real time for it. It's not a CSS tweak at the end.
2. Polish Is a Trap (Until It Isn't)
There's a phase early in development where polishing is procrastination. Adding particle effects to a game that doesn't have a win condition is avoiding the hard work. But once the core loop is solid, polish is what makes people actually enjoy playing.
My rule: get to "playable but ugly" as fast as possible, then polish only what players interact with most.
3. Ship to the Browser
The single biggest factor in whether someone tries your game is how easy it is to play. Every extra step — downloading, installing, creating an account — loses players. Browser games remove all of that friction.
This is why I ported Hacking Slash from Pygame to Phaser, and why Corgi Care targets Flutter web. The install barrier is real, and removing it is worth the engineering effort. If you're weighing your options, I wrote a deep dive on three ways to get a Pygame game into the browser.
4. Your Day Job Is an Asset
I spent years thinking of my enterprise software job and my game dev hobby as separate things. They're not. Writing maintainable production code taught me project structure. Debugging customer issues taught me to read error messages carefully. Code review taught me to question my own assumptions.
The skills transfer in both directions. Game dev made me a better engineer, and engineering made me a better game dev.
5. Done Is a Feature
The hardest part of solo development isn't coding — it's deciding something is finished. There's always one more thing to add, one more bug to fix, one more feature that would make it "really good." At some point you have to call it and ship.
A shipped game with rough edges teaches you more than a perfect game that only exists on your hard drive. Ship it, learn from the feedback, and make the next one better.