Quick answer: Sometimes abandoning a project is the right call—when the core isn't fun and can't be fixed, when continuing costs more than it's worth, or when you've learned what you needed. Knowing when to quit is as important as knowing when to persist, and neither is a failure.

Persistence is praised in game development, and rightly—most projects die from giving up too easily. But sometimes abandoning a project is genuinely the right decision, and the inability to ever quit is its own trap, sinking time into something that won't work. Knowing when to abandon, as opposed to push through, is a real and underdiscussed skill.

Not every project should be finished

The dominant advice to persist and finish is mostly good, because the majority of abandoned projects were killed by surmountable obstacles—a hard patch, lost motivation, a problem that felt fatal but wasn't. But the advice has a shadow: sometimes a project genuinely shouldn't be finished. If the core isn't fun and you've honestly tried and failed to make it fun, if the fundamental concept doesn't work and no amount of additional effort will fix that, then continuing is sinking good time after bad. The hardest version is the project that's fine but not worth the enormous remaining effort—where finishing it would cost more than the result is worth to you. Recognizing these situations, as distinct from the far more common 'this is just hard right now,' is what separates wise abandonment from both stubbornness and quitting too easily.

The signals for genuine abandonment are about the core and the cost, not about temporary difficulty. A project worth abandoning usually has a problem at its foundation—the core loop isn't fun and resists every attempt to fix it, the central concept doesn't hold up, the thing it's built on is broken in a way more work won't repair—as opposed to surface problems that persistence solves. Another honest signal is when continuing costs more than it's worth: when the remaining effort is enormous and your belief in the result has faded, when you're working out of sunk-cost obligation rather than any conviction the game will be good. And sometimes the project has already given you what you needed—the learning, the skills, the experiment's answer—and finishing it adds little. Crucially, abandoning a project for these reasons is not a failure; it's a decision, often a mature one, and the time spent wasn't wasted because of what you learned. The trap is treating every project as sacred and never quitting, which sinks years into things that won't work, just as the opposite trap is quitting everything the moment it gets hard. The skill is honest assessment: distinguishing a fundamental, unfixable problem or a cost that's no longer worth it from the ordinary difficulty that persistence overcomes—and having the wisdom to push through the latter and walk away from the former.

Trust behaviour over opinions

People are unreliable narrators of their own experience — they're polite, they rationalise, they suggest fixes that miss the real problem. What they do tells the truth that what they say obscures: where they hesitate, where they get stuck, what they ignore, where they quit. The most valuable feedback is usually the behaviour you observe, not the opinion you're offered.

This is why watching beats asking, and why real data about what players actually do beats any amount of speculation. When several people stumble at the same spot, that's a problem worth fixing, regardless of whether any of them mentioned it.

Why finishing beats perfecting

The hardest skill in indie development isn't any particular technique — it's finishing. Most games that never ship didn't fail on talent; they failed on scope, polished forever, or chased one more feature. The developers who build a real body of work are almost always the ones who got good at choosing something small enough to complete and then completing it.

That's worth keeping in mind here, because it's easy to let any one part of development expand to fill all your time. Decide what 'good enough to ship' looks like, protect that line, and treat the endless list of possible improvements as a backlog rather than a set of obligations.

Plan for the parts you can't see

Once a game leaves your machine, a lot of what happens to it becomes invisible by default. Players run it on hardware you don't own, hit problems you never reproduced, and most of them never tell you — they simply move on. The gap between 'it works for me' and 'it works for everyone' is where a surprising amount of churn quietly lives.

So plan to see what you otherwise couldn't. Watching real players, capturing the bugs and crashes they hit with the context to fix them, and paying attention to where they drop off all turn invisible problems into ones you can actually act on — which protects the reviews and retention everything else depends on.

Consistency beats intensity

Indie development is a long game, and it rewards steady, sustainable effort more than heroic bursts. A little progress made consistently — on the game, on the marketing, on the community — compounds in a way that last-minute sprints never do. The developers who finish and find an audience are usually the ones who kept showing up, not the ones who worked themselves into the ground for a week and then burned out.

Build a pace you can sustain, and protect it. Momentum is fragile and expensive to rebuild, so steady forward motion is worth more than any single intense push.

Let real players be the judge

It's remarkable how differently real players behave from how you imagine they will. The tutorial you think is obvious confuses them; the feature you agonised over goes unnoticed; the thing you almost cut becomes their favourite. None of that is visible from inside your own head, which is why watching real people play is the single highest-leverage thing most developers under-do.

Watch without intervening, resist the urge to explain, and pay attention to what players do as much as what they say. Their confusion and their choices are data, and acting on that data is what turns a game that works for you into one that works for everyone.

Abandon when the core is unfixable or the cost outweighs the worth—not when it's merely hard. Quitting wisely isn't failure.