โ† Back to blog
ChoostApril 19, 2026by Choost Games
Topic:Roguelikes & Roguelites ยท Deckbuilders ยท Indie Games (General)

How to Make Indie Games: The Honest Version

How to actually make indie games โ€” engine choices, scope management, AI tools, publishing, and what nobody tells you about finishing a project.

There are hundreds of "how to make a game" tutorials online. Most of them teach you how to START making a game. Almost none of them teach you how to FINISH one. That's the actual skill โ€” the ability to take a project from idea to shipped product while resisting the urge to add features, rebuild systems, and start over with a better engine.

This guide is from a small studio that has shipped actual games using AI-assisted development tools. Here's what the process actually looks like in 2026.

Pick an Engine and Stop Researching

The engine decision paralyzes more aspiring developers than any technical challenge. Here's the honest breakdown:

Godot is free, open-source, and capable of both 2D and 3D games. The community has grown explosively since Unity's pricing controversy. GDScript is easy to learn. For most indie games, Godot is the right answer in 2026.

Unity has the largest ecosystem of tutorials, assets, and community support. It's powerful but more complex than Godot, and the pricing changes damaged trust. Still viable, especially for 3D projects with specific asset store needs.

Phaser is a JavaScript framework purpose-built for 2D games โ€” sprite handling, animation, physics, and particles all built in. We built Granny's Rampage in Phaser 3 with React, TypeScript, and Vite, wrapped in Electron for the Windows desktop build. Use Phaser if you're comfortable with web development and want JavaScript-speed iteration on a 2D game.

RPG Maker and Ren'Py are purpose-built for RPGs and visual novels respectively. If your game fits those genres, don't use a general-purpose engine. Use the tool designed for the job.

The actual advice: pick whatever engine has the best tutorials for the specific TYPE of game you want to make, and then stop looking at other engines. Engine-hopping is the number one project killer for beginners.

Start With the Smallest Possible Game

Your first game should take less than a month to build. Not because you can't build something bigger, but because you need to experience the entire process โ€” from concept to shipped โ€” before you can understand what "finishing" actually requires.

The genres that work best for first projects: simple roguelikes (one room, one enemy type, one weapon, permadeath), puzzle games (one mechanic, twenty levels), deckbuilders (ten cards, five enemies, one run structure), or bullet heavens (one stage, one weapon, one enemy type, one upgrade).

These genres are ideal for indie development because they're modular โ€” you can add content piece by piece after the core loop works. Build the minimum viable game first, then expand. This is why so many successful indie games are roguelikes and deckbuilders โ€” the format rewards iterative development.

The AI Development Pipeline

In 2026, solo developers use AI tools to fill roles they can't hire for:

Code: Cursor with Claude handles implementation. The productive pattern is: plan the system in conversation first, then give the editor surgical, specific instructions. Not "build the combat system" but "add a damage flash effect to enemies when hit โ€” 100ms white tint, then return to normal."

Art: Gemini, Midjourney, or similar tools generate sprites and character art. A Python/Pillow pipeline processes outputs into game-ready sprite sheets. The art isn't going to win awards, but it's dramatically better than programmer art.

Music: Suno generates background music tracks. ElevenLabs handles sound effects. The quality is suitable for indie releases and improves monthly.

Design: AI is good at implementing your design. It cannot tell you whether your design is fun. That part is still entirely on you. Play your game constantly. If something isn't fun after ten minutes, AI tools won't make it fun after thirty.

Publishing and Getting Found

Itch.io is where you publish first. Zero gatekeeping, zero cost, and browser-playable games convert viewers to players at dramatically higher rates than download-only games. Make your game browser-playable. The conversion data is unambiguous.

Steam costs $100 per listing and provides access to the largest PC gaming audience. Don't publish on Steam until you have a game polished enough to earn positive reviews โ€” the algorithm rewards games that launch with momentum and punishes games that launch to silence.

Google Play is worthwhile for web-based games that can be wrapped with Capacitor or similar tools. The listing itself provides SEO value because Google indexes its own Play Store pages.

Getting found is harder than making the game. SEO through blog content on your own domain, devlogs on itch.io, and genuine participation in game dev communities (not self-promotion) are the sustainable discovery channels. Every blog post about your game's genre is a permanent indexed page that can drive traffic to your game page indefinitely.

The Part Nobody Tells You

Finishing a game is the skill. Not coding, not art, not design โ€” finishing. The ability to declare something done, publish it, and move on to the next project. Every aspiring game developer has a folder full of prototypes and zero shipped games.

The way you build the finishing muscle is by finishing small things. Ship a terrible game. Ship a game jam entry. Ship something you're embarrassed by. The act of completing the loop โ€” concept, development, polish, publish, promote โ€” teaches you things that building prototypes never will.

The best indie developers aren't the most talented programmers or the best artists. They're the people who finish things. Granny's Gambit and Granny's Rampage exist not because the developer had access to tools nobody else has, but because they scoped the projects to something finishable and then finished them.

Start small. Ship often. Get better. That's the entire secret, and no engine or AI tool changes it.