Riad
Post by Riad
Jun 30, 2025

Riad is the product manager of Codecks. He is also the co-founder of indie games company Maschinen-Mensch and still believes that Street Fighter 2 is the most beautiful video game ever created. Coincidentally he also believes that Codecks is the best project management tool for game developers. Apparently he has been creating video games for over 14 years now and considers himself a productivity nerd: scrum, kanban, extreme programming, waterfall, seinfeld. He has tried it all.

Codecks Icon

Codecks is a project management tool inspired by collectible card games. Sounds interesting? Check out our homepage for more information.

Iterative Development: Are You Building a Playable Game, or Just a Pile of Parts?

If you’re in game development, you know as well as I do that the word “iteration” gets tossed around a lot, particularly in team meetings. “We’re iterating on the combat system,” or “This sprint is all about iterating on level design.” It sounds good, it sounds productive. But what do we really mean when we say we’re iterating, especially in the wonderfully chaotic world of game development?

Much like its cousin “agile”, “iterative” is a term that’s easy to claim but harder to truly embody. We wrote about this before, in our blog post all about agile in game development. Too often, we think breaking down big tasks into smaller pieces is iteration. Or that having short development cycles automatically means we’re iterating. But if those pieces don’t form a playable, functional whole regularly, or if those cycles end with a bunch of disconnected assets and systems, we might be missing the magic of what true iteration offers.

This isn’t about getting hung up on definitions for the sake of it. It’s about understanding a development approach that can be incredibly powerful for “chasing the fun,” managing risk, and actually building momentum. So, let’s unpack what genuine iterative development looks like and why it’s a game-changer (pun intended) for us game devs.

What “Iterative Development” Actually Means: More Than Just Small Steps

At its heart, true iterative development is about one core principle: at the end of every single iteration (or cycle, or sprint), you should have a working, potentially shippable product. Now, “shippable” in early game development doesn’t mean “ready for Steam launch.” It means you have an integrated, functional slice of your game that can be played and tested. It could be a very rough version, but it works. The new mechanic is in, the character can perform the new action, the basic game loop is playable with the latest additions.

The entire purpose of this is to enable continuous feedback and learning. Each iteration isn’t just about producing code or assets; it’s about producing a playable experience that allows the team, stakeholders, and even early testers to see, feel, and react to what’s being built. This feedback loop is golden. It lets you know if you’re on the right track, if the feature is fun, if it performs well, and if it integrates with the rest of the game as expected.

You might be thinking, “But what if I build one enemy ‘completely’ and then, after adding three more, I realize the overall enemy design philosophy needs to change? Haven’t I wasted time on that first one?” That’s a valid concern. The key here is that “complete” for an early iteration (like the first enemy) means functionally complete enough to test its core gameplay contribution and our ability to build it. It’s not about final polish. The learning gained from building that first, rough but playable enemy (about its AI patterns, its “fun factor,” the animation pipeline, how it interacts with the player) is invaluable. This knowledge directly informs the next enemies or even the systemic changes needed. It’s about de-risking the overall vision by testing its components in a playable state early, rather than building many parts in isolation and hoping they all work together fun-ly at the end.

The Classic Analogy: Building a Vehicle, Not Just Assembling Parts

There’s a famous analogy (often depicted visually) that perfectly illustrates true iterative development versus a more component-based (but often mistaken for iterative) approach. Imagine you want to build a car:

The “Pile of parts, often mistaken for iteration:

Iteration 1: Design all four wheels.

Iteration 2: Manufacture all four wheels.

Iteration 3: Design the chassis.

Iteration 4: Build the chassis.

The True Iterative Approach:

Iteration 1: Build a skateboard. It’s basic, but it rolls! It provides a rudimentary form of transport. You can get feedback. Is it fun? Does it work?

Iteration 2: Add handlebars. Now it’s a scooter! More control, new possibilities. More feedback.

Iteration 3: Evolve it into a bicycle. Add pedals, a seat. Now it’s much more versatile.

Iteration 4: Motorize it – a basic motorcycle.

Iteration 5: Refine it into a car.

…and so on, until months later, you finally assemble a car. The “customer” (be it your team, publisher, or players) doesn’t get to try anything or give meaningful feedback on the experience until the very end. If the car handles poorly, you find out very late.

At each step of the true iterative approach, you have a functional product that delivers some value and can be tested and experienced. This allows for learning and adaptation throughout the entire process.

Connecting the Analogy to Game Development

Let’s bring this back to making games:

The “Pile of Parts” in Game Dev: Imagine you’re creating ten new enemy types for your game.

  • Sprint 1: The art team creates textures for all 10 enemies.
  • Sprint 2: The animation team creates walk cycles for all 10 enemies.
  • Sprint 3: The programming team codes the basic AI for all 10 enemies.
  • Only after many sprints do all these components get integrated. You can’t play against a single new enemy until very late in the process. If the fundamental design of an enemy isn’t fun, or if there are major integration issues, you discover this when the cost of change is high.

The True Iterative Approach in Game Dev:

  • Sprint 1: Create one complete enemy. This means basic model, basic textures, basic animations, and basic AI – all integrated and playable in the game. The team can now fight this enemy, see how it feels, test its mechanics, and gather feedback.
  • Sprint 2: Based on feedback, refine the first enemy OR build the second complete enemy, applying lessons learned from the first.
  • And so on. After each sprint, you have a more complete and tested game experience.

This way, you’re constantly validating your designs and technical approaches in a real gameplay context.

”But My Game is a Complex Beast!”: Iteration Across Different Genres

Now, you might be thinking, “This sounds great for a simpler arcade game or something prototyped at a game jam, where you can quickly find a core fun loop and just add more enemies, levels, and weapons. But what about my complex city builder, deep simulation, or sprawling RPG? The real ‘fun’ in those often emerges from the complex interplay of many systems, which only come together much later in production!”.

This is a perfectly valid point. The nature of the “shippable/playable product” from an early iteration will indeed differ based on genre complexity. For a game jam title, that first iteration might genuinely be a miniature version of the final game loop. For a complex RPG, an early iteration’s “shippable product” might not be a slice of the epic story with full voice acting. Instead, it could be:

  • A robust prototype of the core combat system with just one character class and a few enemy types, proving the feel and flow of battle.
  • A functional version of the inventory and crafting system, allowing designers to test its usability and balance implications with a small subset of items.
  • A working quest system that allows for the creation and completion of a simple fetch quest, validating the technical pipeline and basic narrative delivery.
  • For a city builder, it might be a core simulation loop: can citizens satisfy basic needs? Does the resource economy function as designed with a handful of buildings?

In these complex genres, early iterations are often focused on de-risking foundational systems and validating core mechanics in a more isolated, controlled manner. The “fun” might emerge more slowly, from the gradual, iterative layering and integration of these proven systems. The goal remains the same: to build, test, and get feedback on functional pieces of the eventual whole, rather than developing all components in parallel and hoping they magically synergize at the end. The “skateboard” for a complex simulation might be a very focused technical prototype of its core economic engine, but it’s still a vital, testable first step. 

Similarly, some teams successfully use what feels like a mix: they might graybox all their levels first (a more waterfall-like phase for level structure) and then iteratively add art and gameplay details to those approved grayboxes. The iterative principle applies to how that art and detailing is done – section by section, testably, rather than all at once in isolation.

What Iterative Development Isn’t (Clearing Up Misconceptions)

It’s easy to fall into traps where we think we’re iterating, but we’re missing the core ingredient of an integrated, functional outcome:

  • It’s not just about Sprints or Short Cycles: Many teams use agile sprints in game development, but if those sprints only produce isolated components that aren’t brought together into a playable whole at the sprint’s end, it’s not truly iterative in the way we’re discussing. The meeting at the end of the sprint might be a show-and-tell of parts, not a demo of a working game increment.
  • It’s not just Breaking Down Tasks into Sub-Goals: Saying “this sprint we’ll do the enemy’s left arm, next sprint the right arm” isn’t iteration. That’s just sequential task completion if those parts aren’t forming a testable whole.
  • The “Component Factory” Anti-Pattern: This is common. Art makes a batch of assets. Code builds a set of systems. Design writes documents. They all work hard, but if these efforts aren’t being continuously integrated into a playable game state, the team is deferring risk and missing out on crucial early feedback about the actual player experience.

Why True Iteration is Gold for Us Game Developers

Embracing genuine iterative development can profoundly impact how we “chase the fun” and manage the inherent uncertainties of creating games:

  • “Chasing the Fun” Becomes Practical: Game design is often a journey of discovery. An idea that sounds amazing on paper might not be fun in reality. Iteration allows you to build a small piece of that experience, play it, and quickly determine if it has that spark. If not, you can pivot or refine early, before sinking massive resources into a dead end.
  • Early Risk Identification: Technical hurdles, design flaws, an unexpected performance hog, or simply that “this mechanic isn’t clicking,” these problems surface much earlier when you’re constantly integrating and testing playable builds.
  • Avoids the “Everything is 70% Done” Trap & Improves Scope Management: We’ve all seen or experienced this: a team diligently ‘iterates’ on, say, ten game levels simultaneously. Each level gets a bit of work each cycle. The problem? As a crucial deadline approaches, you might realize all ten levels are stuck at 70-80% completion. None are truly shippable or polished. You’re left with a lot of almost-done work, which means nothing actually done for a release. True iterative development pushes for completing one level (or a small, manageable batch like levels 1-3) to a defined ‘done’ state (fully playable and tested) before moving comprehensively to the next large batch. If that deadline hits and you’ve ‘finished’ levels 1-7 to 100% quality, you have seven solid, potentially shippable levels. You can then make a clear decision about scope: release with seven great levels, rather than ten half-baked ones. This ensures you’re always building on a foundation of quality, completed work.
  • Boosts Team Morale and Momentum: There’s nothing quite like seeing your work come alive in the game regularly. It’s incredibly motivating for the team to play with new features or content at the end of each short cycle. It makes progress tangible and builds a sense of accomplishment.
  • Meaningful Feedback Loops: When you have a working, playable increment, feedback becomes far more concrete and actionable. Whether it’s from internal reviews, publisher demos, or early playtests, people can react to an actual experience, not just concepts or isolated parts.
  • Enhanced Adaptability: Games evolve. Player expectations change. New ideas emerge. An iterative process, by its nature, builds in the capacity to adapt. Because the team is used to integrating changes and producing working builds regularly, responding to necessary shifts becomes less disruptive.

Common Pitfalls: The Rituals Without the Reality

Even with the best intentions, it’s easy to slip into patterns that look like iteration but miss the substance:

  • “Iterating” in Silos: The art team “iterates” on assets, the code team “iterates” on systems, but these “iterations” only merge into something playable much later. The real test of iteration is the integrated whole.
  • Iteration Goals Don’t Yield a Testable Product: If the goal for an iteration is “implement the backend for the inventory system” without any way for a designer or tester to use a basic version of that inventory in-game, the feedback loop is broken.
  • Fear of Showing “Imperfect” Work: Sometimes there’s a reluctance to demo or test something that’s not polished. But an early, rough, playable version is incredibly valuable for learning. Iteration embraces imperfection as a stepping stone.
  • Ignoring Feedback from Early Iterations: Dismissing valid feedback with “don’t worry, it’s just an early version, we’ll fix it later” can be dangerous if the feedback points to fundamental issues with fun or usability. The purpose of the early playable version is to get that feedback and act on it.

How Codecks Can Support Your Iterative Journey

While tools don’t make you iterative, the right tools can certainly support an iterative mindset and workflow. And this is something we built our tool, Codecks, for.

  • Granular Task Management: Breaking down large features into smaller, manageable Cards in Codecks is the first step. Each card can represent a piece of work for an iteration, ideally contributing to a functional outcome.
  • Clear Workflow and Feedback Points: Moving a card to a Review state can signify that an iterative piece of work is ready for the team to playtest and provide feedback on, ensuring it’s integrated and working as expected before being considered “done.”
  • Managing the Big Picture While Iterating on Details: For larger features like a new game world or a complex character pipeline, you can use Hero Cards. A Hero Card can represent the overall feature, containing many sub-cards that are tackled iteratively, each delivering a piece of the larger whole. This helps maintain visibility on the overall goal while focusing on incremental delivery.
  • Defining “Done” Meaningfully: In an iterative context, a card marked as Done shouldn’t just mean the task is complete in isolation. It should ideally mean it’s integrated into the main game build and contributes to that iteration’s playable experience.

Conclusion: Build the Skateboard First, Then the Car

True iterative development isn’t just a trendy way to organize tasks; it’s a fundamental shift in how we approach building games. It’s about consistently delivering working, playable increments of our game, no matter how small, and using the feedback from those increments to guide our next steps. It’s about learning by doing, and by playing, at every stage.

So, take a moment and look at your team’s process. Are you diligently assembling individual car parts in separate corners of the factory, hoping they all fit together perfectly on assembly day? Or are you focused on getting that first skateboard rolling, then the scooter, then the bicycle: learning, adapting, and delivering an evolving, playable experience every step of the way?

The latter is where the real power of iteration lies, especially in our quest to “chase the fun” and create games that resonate with players.

How can we help you make your game?

Do you have any questions about Codecks, game development or anything else? Send them over, and we'll answer them asap!

Card Announce 200k WishlistsCard Announce Console PortsCard Prep Demo

So, what is Codecks?

Codecks is a project management tool inspired by collectible card games.

Codecks Icon
Codecks GmbH — 2025
Supported by
Creative Europe Media Logo