Pokemon Go Is Everything Wrong With Lazy Programming

A daily player's teardown of Pokémon GO as a working example of uncreative engineering that shipped anyway and printed money for a decade: a reskin of Ingress, a strategically hollow default battle loop, a gym system that was patched around rather than fixed, and AR that's off by default.

July 21, 2026

Originally published on Substack.

I was talking to someone at the gym today. The physical kind (you know the one with weights). And somewhere between our sets we found out we both still play Pokemon Go, and we've been having a quiet little rivalry over the same Pokemon gym for weeks without either of us knowing who was on the other end of it.

So yes, I still play Pokemon Go every day. Not "opened it once for the community day event" every day. Actual, go walk-the-dogs, catch-the-pokemons, complete-the-challenges, do-a-raid (or two), close-the-app every day. Years of it. I am not exactly proud of this (I even have an auto catcher), but I have made peace with it the way you make peace with any relationship built on convenience rather than merit.

But the more time I spend in this game, the more I think it's less a guilty pleasure and more some sort of weird case study. Pokemon Go isn't just a game I keep playing despite its flaws. It's a working example of what lazy, uncreative, engineering looks like when it ships anyway and then still prints money for over a decade.

It's a reskin, and not a subtle one

Niantic didn't build Pokemon Go from scratch, they took Ingress, their earlier AR game about capturing portals for one of two shadowy factions, and retextured it. Portals became gyms and PokeStops, using the same underlying location database Niantic had already spent years building and moderating. It's the same GPS-anchored point-of-interest system and same real-world locations acting as the game's skeleton.

None of that is inherently bad. Reusing infrastructure is smart (and something I absolutely advise people to do). And if I want to be fair, Pokemon Go hasn't stood still; raids, Team GO Rocket, the buddy system, Routes, Showcases, GO Battle League, seasons, all of it got built on top over the years. What's lazy is that almost none of it touched the fundamental loop. Walk somewhere, tap a thing, watch a meter fill. That loop has been basically unchanged from 2016. The systems around it grew, but the core game underneath didn't.

The default battle system is strategically shallow

Close your eyes. Actually, don't you need to read what I am writing.

Go back in your childhood memory and remember at what a Pokemon battle in the games were like. Type matchups, move timing, prediction, counter play. A whole genre of strategy exists around it on the console games.

Now look at a standard gym battle. Tap the screen to attack. Swipe to dodge, except the dodge window is so forgiving it barely matters. Charge move, big charge move, repeat. Type effectiveness, move selection, energy generation, Shadow versus Purified, Mega boosts, IVs; all of it technically matters, but in practice CP is usually the biggest lever. You can win most gym fights by over leveling the numbers and ignoring the rest.

I'll give GO Battle League its some merit. Because it's the one place this criticism doesn't hold up. Counting your opponent's energy, shield baiting, switch timing, move priority, predicting swaps; all that's real competitive strategy, and pretending otherwise would just be wrong. So if I am being honest, the complaint isn't "there's no strategy anywhere in the game." It's that the default experience (the one most players actually spend their time in) never asks anything of you beyond a bigger number. GBL exists, but it's optional, while the gym and catching loop is the experience most people associate with Pokémon GO.

Compare the default experience to the actual games (the console ones). Badges didn't just unlock gym access, they controlled obedience. Trade for or catch a Pokemon leveled way above what your badge count allowed, and it just ignored you. Wouldn't attack, wouldn't listen, sometimes fell asleep mid-battle out of pure defiance. You couldn't just throw your strongest thing at every problem; you had to earn the right to command it. It's a strategy layer built directly into the core mechanic, sitting there by default for every player, not tuck behind an optional mode.

And if you're saying hey you aren't being fair its not supposed to be like the console games. Fine, if we're grading Pokemon Go against real strategy games instead of just its own console cousins, it's not just the mainline RPGs it loses to. Stack it against anything with a real PvP scene, and the default gym-battling experience still doesn't come close. But that's what matters, not "no strategy exists anywhere," but "the mode most casual players are actually in doesn't require any."

The gym system was never fixed, it was just patched around

This is the part that frustrates me, because it feels like nobody has ever stepped back and rethought the system.

The original gym system let you knock down prestige by repeatedly beating your own team's Pokemon, which meant petty rivalries turned into hour-long grudge matches at 11pm in a parking lot (not that I ever did this I swear). That got scrapped. The replacement is arguably more honest about what it is: you can solo a gym today, one defender at a time, chipping motivation down until they all leave. No mob required. What it actually rewards is time not teamwork. And the real failure mode isn't coordination, it's the opposite: gyms that nobody bothers to attack just sit there, permanently, because the system depends on someone showing up to knock them down and there's no mechanism that forces that to happen.

When a system swaps out its core mechanic and still ends up dependent on random player behavior to function correctly, that's not bad luck. It's a sign nobody actually solved the underlying problem, whatever it's called, they just moved where it shows up.

And if you live somewhere rural, the failure mode gets worse. There's not enough player density to contest a gym, which means your Pokemon can sit there defending it for weeks, sometimes even longer, maybe years, because nobody's around to knock it out. The only real fix is knocking yourself out, which is where a completely totally legit second account conveniently comes in (cough no comments cough).

Your Pokemon is defending this gym

*** Pokemon Go though did make me learn how to root an old phone of mine to "save" my Snorlax I left at a gym at a campsite though. So thanks?

The AR is the part I actually resent

Niantic built this entire company on augmented reality being the future of mobile gaming. I have it switched off. Every time I've tried using it, catching a Pokemon becomes an exercise in holding my phone steady while a cartoon creature jitters against my kitchen floor, loses tracking, and reappears somewhere behind the couch. It's not immersive, it's finicky, and it actively makes the core loop slower for zero gameplay benefit (it also ruined AR for me in general but that's another rant for another day).

If your headline feature (okay okay it's not their headline anymore) is off by default for anyone who's used it more than twice, it was never solving a real problem. It was a pitch deck slide that shipped as a toggle nobody uses.

** One Caveat: I have turned it on, occasionally, to entertain my kids. Watching a Pikachu awkwardly float over the living room rug gets a solid laugh out of them. That's the only use case I've found for it, a party trick, not a feature.

And yet, here I am, every single day

None of the engineering underneath this game earns the loyalty it gets from me. And that's the annoying part. I can sit here and complain about all of this, but tomorrow morning I'll still open the app while walking my dogs.

Which might be the actual lesson here, and it's not a comfortable one for anyone who cares about building things well. Elegant systems aren't what make something succeed. A game can be lazily built, unfixed for a decade plus, strategically hollow, and still be the thing you open on autopilot. Good engineering and successful products are correlated, not the same thing, and Pokemon Go is the reminder that sits in my pocket every day.

Dozens