Your First Game Should Be Embarrassingly Small

Your First Game Should Be Embarrassingly Small

January 5, 2026 Off By Tobias Lindqvist

Stop looking for the “ultimate engine tutorial” or a massive, hundred-page design document that you’ll never actually finish. Most people think learning how to start designing a game means mastering complex math or learning how to code a physics engine from scratch, but that’s just a way to procrastinate on the hard part. I spent months in my dorm room trying to build the perfect combat system, only to realize I hadn’t actually decided what I wanted my players to feel. You don’t need a PhD in mathematics or a massive budget to begin; you just need to stop treating your ideas like sacred texts and start treating them like experiments.

I’m not here to sell you on the dream of being the next big indie hit. I’m here to tell you how to build something that actually functions without accidentally building a second job for your players. I’ll show you how to look at your mechanics as sentences, how to spot the “chores” you’re accidentally coding into your loops, and how to make decisions that actually respect a player’s time. We’re going to skip the fluff and focus on the logic of play, because if your systems are saying something you didn’t intend, no amount of polish will save you.

Table of Contents

Choosing a Game Engine Picking Your First Broken Sentence

Choosing a Game Engine Picking Your First Broken Sentence

When you start choosing a game engine, don’t think of it as picking a toolset; think of it as picking the vocabulary for your first sentence. If you pick a massive, high-fidelity engine like Unreal, you’re essentially deciding to write an epic novel before you’ve even mastered basic grammar. You’ll spend more time wrestling with lighting shaders and complex physics than actually testing if your core loop is fun. It’s a trap. You think you’re building a world, but you’re actually just fighting a battle against a massive, intimidating framework that’s competing for your time against the actual design of your game.

I’ve seen so many solo devs get paralyzed here, stuck in a loop of downloading every engine on GitHub because they think the tech will solve their design problems. It won’t. An engine is just a way to manifest your iterative design process. If you pick something lightweight like Godot or even a specialized 2D engine, you can fail faster. And in this business, failing fast is the only way to learn. You want an engine that lets you write a broken, ugly sentence, delete it, and try again without needing a PhD in math to move a sprite three pixels to the left.

The Game Development Lifecycle Avoiding the Infinite Loop of Failure

The Game Development Lifecycle Avoiding the Infinite Loop of Failure

The biggest trap I see—and the one I fell into while trying to build my first prototype—is treating the game development lifecycle like a straight line. You think you’re going to move from “Idea” to “Polished Product” without looking back. You won’t. If you try to build a massive, feature-complete world before you’ve even tested if jumping feels good, you aren’t designing; you’re just accumulating technical debt. You’ll end up in a loop where you’re constantly fixing broken systems that shouldn’t have been built in the first place.

Instead, you have to embrace an iterative design process that feels uncomfortably repetitive. You build a tiny, ugly version of a mechanic, see if it actually forces the player to make an interesting choice, and then you break it. Most people think they need a massive, hundred-page game design document template to stay on track, but a document is just a list of promises you haven’t kept yet. I’d much rather see a small, playable loop that proves the core “sentence” of your game actually makes sense before you spend six months writing the rest of the book.

Five Ways to Stop Writing Bad Sentences

  • Design for the decision, not the action. If your player is just pressing ‘E’ to interact with a lever, you haven’t designed a mechanic; you’ve designed a button press. A real mechanic is when the player has to choose between using that lever to open a gate or using it to trigger a trap that clears a path. If there’s no choice, there’s no game, just a series of choreographed movements competing with the player’s desire to check their phone.
  • Respect the player’s time by acknowledging the competition. Every minute you spend making a player sit through a progress bar or a tedious tutorial is a minute they are considering Alt-Tabbing to a YouTube video or a different game entirely. You aren’t just competing with other developers; you’re competing with the dopamine hit of a social media feed. If your system doesn’t offer a meaningful trade-off, it’s just friction.
  • Kill your darlings before they become technical debt. I spent three months building a complex weather system for my current project that ended up being nothing more than a visual filter that slowed down the frame rate. It was a “cool” sentence that said nothing about the gameplay. If a feature doesn’t force a player to change how they interact with the world, strip it out. You can always add the fluff back in once the core loop isn’t broken.
  • Treat your economy like a social contract. Whether it’s gold, mana, or crafting materials, your economy is a set of rules about how much effort a player must expend to achieve a status. If the “sentence” your economy writes is “work for forty hours to buy a slightly shinier hat,” you aren’t building a progression system; you’re building a second job. A good economy should feel like a ladder, not a treadmill.
  • Prototype the “ugly” version first. Don’t waste time on high-fidelity assets when you don’t even know if the movement feels right. If your game isn’t fun when it’s just gray cubes jumping over gray cylinders, no amount of shader work or particle effects is going to save it. You need to find the core “verb” of your game—the thing the player does most—and make sure that verb is satisfying before you start writing the rest of the book.

The Final Draft

Completing a game titled The Final Draft.

At the end of the day, starting a game isn’t about mastering a complex engine or perfectly mapping out a five-year development cycle. It’s about realizing that every choice you make—from the way your character moves to the way your loot drops—is a way of communicating with your player. You’ve learned that your engine is just the paper you’re writing on, and your lifecycle is the discipline required to actually finish a sentence instead of just scribbling notes in a margin. If you treat your mechanics as intentional dialogue rather than just math and code, you’ll stop building chores and start building experiences. Don’t get lost in the infinite loop of “just one more feature”; remember that a finished, simple game is infinitely more communicative than a massive, broken one.

I’ve spent enough time in dead MMOs and half-finished solo projects to know that the most important thing you can do is just start making mistakes. You are going to write bad sentences. You are going to design systems that tell your players to go away, and you are going to realize it far too late. But that is how you learn the grammar of play. Stop worrying about whether your first game will be a masterpiece and just focus on making sure your mechanics actually mean what you think they mean. Go build something, even if it’s small, even if it’s messy, and most importantly, make sure you actually finish it.

Frequently Asked Questions

If my core loop is essentially just a "grind sentence," how do I rewrite it to actually say something interesting without just adding more fluff?

You can’t fix a grind sentence by adding more “flavor” text or shiny loot drops; that’s just adding adjectives to a boring sentence. You have to change the verb. If your loop is “Kill X to get Y,” you aren’t making decisions, you’re following instructions. To make it interesting, introduce a trade-off. Instead of “Kill X,” try “Risk X to gain Y, but lose Z.” Give the player a choice that actually costs them something.

How do I know if I'm building a real mechanic or just a complex way to waste the player's time?

Ask yourself: if you removed the reward, would the action still feel like a choice? A mechanic is a decision point; a time-waster is a tax. If a player is clicking a button just to make a progress bar move, you haven’t designed a system, you’ve designed a chore. You’re competing with the player’s real life for their attention. If your “mechanic” doesn’t offer a meaningful trade-off, it’s just noise masquerading as depth.

When I'm working solo, how do I stop myself from over-designing systems that are actually competing for the same tiny slice of player attention?

You have to treat player attention like a finite currency. Every new system you add is a new bill you’re asking them to pay. If you add a complex crafting loop alongside a deep skill tree, you aren’t “adding depth”—you’re forcing the player to choose between two different games. I call this the “Attention Tax.” Before you code a single line, ask: “Does this system reinforce my core loop, or is it just competing with it?”

About Tobias Lindqvist

Every system in a game is a sentence about what the designer wants you to do. Grind is a sentence. So is a queue timer, a loot table, a guild bank permission screen. I write about what those sentences actually say, and why so many of them say something the designer did not intend. I build a game alone, badly and slowly, which means I have made most of these mistakes myself and can tell you what they cost.