Welcome to Game Design Bites - a personal take on game design, straight from years of experience in the industry!
If this interests you, subscribe to get game design insights straight to your inbox for free!
](https://images.unsplash.com/photo-1517373116369-9bdb8cdc9f62?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwzfHxjb21wbGV4aXR5fGVufDB8fHx8MTc3NzkwOTE0M3ww&ixlib=rb-4.1.0&q=80&w=1080)
Photo by John Barkiple on Unsplash
I was recently reading this post on â Substack about building tools with AI. He makes a point that really stuck with me: the real challenge isnât figuring out how to build with AI tools, but deciding whether you should build the feature in the first place.
That really hit home for me. Weâre often so busy worrying about the how (like getting the perfect difficulty curve, writing cleaner code, or making the UI look âjust rightâ) that we skip the only question that actually matters: Do we even need to build this?
This line of thinking led me to explore the philosophy of YAGNI (You Ainât Gonna Need It). While it isnât a completely new or revolutionary concept, learning this specific vocabulary made me wonder how I could apply it to my own design workflow. It echoes familiar ideas like MVP, MDA framework, or just plain olâ prioritization, but thereâs something about its blunt, direct framing that acts as a real wake-up call.
đ§ The Design Trap
If youâve spent any time in the âdesign weeds,â you know exactly what Iâm talking about. Itâs that moment when you start thinking big. Youâre mapping out a complex progression system, five different currencies, and a massive branching narrative before youâve even figured out if the core movement feels good.
We love to over-design, usually out of fear. We get scared that our core loop is too simple, or we fall for the illusion that more features automatically equal better player retention. Iâve definitely been guilty of trying to mask a boring core mechanic with a complicated progression system, only to realize later that the foundation itself was completely broken. We convince ourselves that if we just add enough features, enough âjuice,â or enough complexity, the game will somehow become better. But more often than not, weâre just reinventing the wheel because we think we might find a âcoolerâ way to spin it.
Honestly, you shouldnât over-design something if you donât know how much youâre actually going to use it. Itâs so easy to trick yourself into thinking youâve found a âbetterâ way to do things, when you should really be asking if a solution was even needed.
đšď¸ YAGNI: You Ainât Gonna Need It
YAGNI is a simple philosophy, more common in programming circles: donât build it until you need it. Note that this doesnât mean writing bad code or completely ignoring future plans. It simply means keeping your current implementation focused solely on current needs, saving your future self from maintaining unused features.
Think about the actual cost of building something you donât need right now. Itâs not just wasted hours. Every unnecessary mechanic you jam in introduces new bugs, requires its own UI, completely messes with your balance, and worst of all, distracts you from polishing the actual core loop. Building things you donât need actively harms the things you do need.
In game design, this means keeping your basics tight. If youâre making a single-player level-based game, or a multiplayer shooter, or a roguelike, those are your foundations. You canât take those lightly. Thatâs the base of your structure.
But everything else? The exact racing speed, whether you have five obstacles or ten, and that shiny new power-up you just thought of, those are things you can experiment with later. As you level up as a designer, you start to develop a filter. You start to see whatâs a âmust-have,â whatâs a âgood-to-have,â and whatâs just ânot-important-but-I-feel-we-should-have-it-because-I-think-so.â
The last one is the one you should probably remove first.
đ The Power of âPlayable Nowâ
Itâs frustrating to realize you spent hours, if not days, deep in the details of a system that isnât even being used. Trust me, it happens to me every other day.
But the best way to get over that disappointment is to have a crystal clear view of what makes sense for your game and what doesnât. Spend more time thinking through the core experience. Separate your âmust-havesâ from your âgood-to-haves.â
Now, this exact mindset becomes a lifesaver when youâre up against an actual release deadline. You can easily get stuck in the nitty-gritty details of a system for weeks. But if you canât actually ship the experience on time, all the hours you spent crafting what you thought was a âgreatâ solution are just wasted. These days, whether Iâm approaching my own work or reviewing something for the team, the very first question I try to answer for myself is: is this even necessary?
We shouldnât just focus on âfinishingâ things. The real win is getting them in front of players as fast as we can. The sooner people play it, the sooner we can identify the parts that actually suck.
Players are inevitably going to interact with your game in ways you never even imagined. All those hypothetical, perfectly-designed systems you planned out for the future? They usually shatter the second they make contact with a real player. Getting to a âplayable nowâ state prevents you from designing for a player that doesnât actually exist.
đ Case Study: Beeline
Iâve been putting this into practice with my latest experiment, Playable Things. My goal is to work with AI tools to get something playable as soon as possible.
Take my newest game, Beeline. Itâs a strategic puzzle game I started by using a prompt from an older game jam. Using the prompt was my way of challenging myself with constraints to make me think about designing around them. My initial plans were ambitious. I wanted a massive level selection screen, staged levels, and some complexity added to the meta-game.
Instead, I built a quick prototype with bare-minimum UI just to see if the core mechanic worked. Since the game heavily depends on visual placement, I realized prompting an AI for level design wouldnât be enough. I needed absolute control. So, I spent time also building a level editor, using AI to help me with building it. It was messy under the hood, but it allowed me to quickly test the limitations of the design and tweak it on the fly. Building the editor in this scrappy way was a YAGNI decision in itself: I didnât need a perfectly scalable, beautiful editor, I just needed something to solve the immediate problem of testing the mechanic.
Once I actually played it, I realized a lot of my initial plans didnât make sense. By cutting the âfluffâ, like those extra power-ups, meta-game elements, and staged levels, I could focus on what actually mattered for me: building a solid amount of content thatâs playable as soon as possible. I gave up on many of my initial âgood-to-havesâ just to get the game to a presentable, playable state.
Because of this brutal cutting, I actually had a game I could share. More importantly, it freed up my mental space to focus on the next thing to build. We all know how easy it is to ânever-finishâ personal projects. But the more you can force yourself to reach an acceptable finish point, the sooner you can start working on new things equipped with all the hard learnings from your last project.
đŁď¸ The Path of Least Resistance
Iâve always believed that laziness is a game designerâs good friend.
When you approach a problem by being a bit âlazy,â you start looking for the path of least resistance. You find solutions that achieve the goal without building extra overhead for your future self to handle. Plus, extending the scope of your project just means it stays in âWIP modeâ longer, and if thereâs one thing I want to avoid, itâs being stuck in WIP purgatory.
Think about what your future self will thank you for. Design in a smart way. Always remember what problem youâre solving. As Iâve said many times before:
Great design is just a great solution.
If your design doesnât solve a problem, itâs probably something that YAGNI.
If youâre interested, you can read more about my thoughts on good design. Or, if you prefer a visual format, you can watch my talk from last year.
đTL;DR
Ask âShould I build this?â : Before you worry about how to build something, ask if itâs even necessary.
Embrace YAGNI : Donât over-design features until youâre absolutely sure youâll use them.
Focus on Foundations : Keep your core mechanics solid and leave the ânice-to-havesâ for later.
Get to Playable Fast : The sooner you experience your design, the sooner youâll know whatâs broken.
Be Smart Lazy : Find the path of least resistance to avoid creating future overhead.
Design solves problems : If it doesnât solve a problem, it isnât good design.
Do you have any stories of âover-designingâ that you regret? Or maybe a time where cutting a feature actually made the game better? Iâd love to hear from you!
Thanks for reading Game Design Bites! Subscribe for free to receive new posts and support my work.
Top comments (0)