Pokémon Team Optimization
Posted6d agoActive7h ago
nchagnet.pages.devTech DiscussionstoryHigh profile
informativepositive
Debate
20/100
PokémonGame StrategyOptimization Techniques
Key topics
Pokémon
Game Strategy
Optimization Techniques
Discussion Activity
Very active discussionFirst comment
5d
Peak period
39
108-120h
Avg / period
16.5
Comment distribution66 data points
Loading chart...
Based on 66 loaded comments
Key moments
- 01Story posted
Dec 27, 2025 at 8:38 AM EST
6d ago
Step 01 - 02First comment
Jan 1, 2026 at 3:38 AM EST
5d after posting
Step 02 - 03Peak activity
39 comments in 108-120h
Hottest window of the conversation
Step 03 - 04Latest activity
Jan 2, 2026 at 9:31 AM EST
7h ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 46401763Type: storyLast synced: 1/1/2026, 7:30:26 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
> Mewtwo (#151)
Should be 150
Thank you for a lovely post!
Three people in my current workplace have a balloon tattoo (interestingly all of them are red balloons). Five people in my current workplace have a Pokémon tattoo that is easily visible.
Edit: Including myself, on both counts, I should have said.
What does it mean?
One of my forearms is covered in things my son used to be obsessed by when he was young, which is why I have a lego figure, a pikachu, and a red balloon as depicted in the book "Goodnight Moon" which I read to him every night for 3+ years.
The type labels will be displayed in the language your browser is set to. I didn't even know this was possible.
[1] https://upload.wikimedia.org/wikipedia/commons/9/97/Pokemon_...
https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/E...
However, like with many of these obscure features, I am not so sure it works well in practice. I have the Windows 11 laptop I'm viewing that SVG from set with support enabled for english, french and russian, and I'm getting, among most of the English tags, a few stray "Psychique" and "Привидение" types in the svg. I have no idea how it chooses which one to show, there.
If the stats are distributed heavily both on attack and special attack, it's usually bad because you generally want specialist attackers and these stats could be better somewhere else like speed.
I’d state it as, Given any type, we should be able to hit it for super-effective damage with at least 1 move. And instead of taking raw BST, I’d take Max(SPD+ATK, SPD+SPA) to favour speedy offense.
Of course this does not take into question the thorny question of availability. Metagross is a top tier but only available post game in its debut. On the other hand Crobat and Gyarados are readily available in many of the games early on and evolve fairly quickly.
Please look into the competitive Nuzlocke community, there are a lot of damage calculations and viability spreadsheets all around, you’ll find it interesting.
My general problem with Pokémon (at least the older versions, haven't played the latest) is that when playing against others it frequently just boils down to the same set of legendary and overpowered mons.
You sort of addressed this running the milp without certain mons as options, which makes sense.
But you already have the machinery for a better constraint: max total base stat. You could think of it as "weight classes" in box.
So, for a given weight class, your team can only add up to Y in total base stat. You can squeeze one of the OP mons, but then the rest are slackers. Or you could balance them.
It makes it a lot more interesting and invites for diversity. And you could run it for many different values of Y.
For the mainline games it usually does not matter. You can beat it with any single Pokémon pretty much.
He also does some bad Pokemon challenges to see if it’s possible to finish with, say, a Weedle (mostly no).
That's why the competitive scene maintains a listing of tiers across generations derived from analyzing the actual usages across thoughful battles. https://www.smogon.com/sm/articles/sm_tiers
But Slaking doesn't get that for free-- it has an ability (Truant) that means it can only use moves every other turn. That limits its usefulness outside of a couple very specific scenarios, and means that it'll usually be outperformed by significantly "weaker" Pokemon (going purely by numbers).
And that's just one of the factors you'd need to take into account to build a team optimizer that's actually useful. Actually building a team has to take into account a massive number of factors: roles for each Pokemon (not just what types they can counter), available movesets, any advantages or disadvantages provided by abilities, your opponents' team composition, etc... it's a big problem to try to solve.
So each player comes with three teams of small, mid and large base stat classes. You can't repeat monster across teams. Whoever wins 2/3 wins the match.
...
And if this was my college house, we would have a price system for the mons so you wouldn't be able to repeat mons even between players. But that's a different thing altogether.
That said, complexity emerges and explodes in the tiny differences, even if there's like 8 pokemon that are in 95% of teams, and 10 situational pokemon that appear 5% of the times, that's like C(6,8) teams which is like 56 possible teams of Uber pokemon, and a buttload of possible teams with situational pokemon like choice scarf ditto, eviolite Chansey, nuzzle u-turn super fang pachirisu, etc...
Even if the teams were the same, just the possible differences in movesets create a lot of different sets, suppose 6 possible moves for each mon, you have C(4,6) sets for each mon, each with their own probability weight as well.
The Smogon tiers (NU, RU, UU, UUBL, OU, Uber) is a thorough attempt at placing all pokemon in tiers based on overall power level and to make interesting balanced matches at different tiers.
Translated text:
The 30th anniversary of Pokémon begins! It's been 30 years since the release of "Pokémon Red and Green." Pokémon will celebrate its 30th anniversary on Friday, February 27, 2026. This year is going to be the best year yet! Stay tuned! #Pokémon30thAnniversary
I definitely beat the first Pokemon games with a level 100 Charizard. I even defeated gyms that were strong against fire types, often KO'ing Pokemon in one hit. The text would say "It's not very effective..." and then the opponent's health bar would drop to zero. So yeah, these games are easy enough that a 10yo can get by with twinking out a single pokemon. Makes the blog post even funnier
There are Pokémon with certain abilities or tricks that makes it much better than legendary ones, with certain move sequences that could wipe the entire other team.
There are also Pokémon with certain types that are actually good against what the 'data' would say otherwise.
Maybe the analysis could be better done if you instead analyzed matches data.
BTW, the way people pay Pokémon since many years is to also divide the Pokémon into tiers and in a competitive setting, you are only allowed to pick Pokémon from the same tier or lower. This adds another level of complexity.
I actually found it interesting that in spite of what is a clearly overly simple model, the non-legendary non-multi-starter you eventually get is quite a good one, in my opinion better than what the naive constraints would lead me to think.
Also, keep in mind that I'm not talking about competitive matches here, just mainline gaming. For that end, types are usually all you need, and in that area the main thing I would do is generalize type constraints to not be just defensive but also ensure each resistant Pokémon has a good enough attack against that type.
In my opinion, abilities, nature, objects are: 1. Too complex for such models (MIPs are still exponential-time) 2. Overkill strategy when all you wanna do is beat the league
But that last part is just my opinion.
I think I'm one of those people who worries that if i understand the math of it all, it'll lose some of the magic that made me keep my raticate for no other reason than because it was the first pokemon that accepted me without me dealing any damage to it.
Took the team to online matches and got swept, the pro players have completely different team choices and strategies.
https://github.com/PyroMikeGit/SuperKaizoIronMON
I personally like restricting to generation 1, as it is very cannonical, very static, and one of the simplest.
Furthermore I like the 1v1 format, which instead of a team, it's just 1 pokemon vs the other. Otherwise you have to resort to heuristics.
But even with a 1v1 and generation 1 restriction it still isn't solved!
Even a single matchup it's very complex to arrive to a theoretical mathematical problem, and still quite burdensome to write a montecarlo simulation.
For example:
Tauros vs gengar (Not an uncommon matchup in competitive gen 1)
Hypnosis has a 60% accuracy, tauros can sleep for 1 to 6 turns with equal probability. Tauros can 2HKO with Earthquake, but can also crit. Gengar can 4HKO, with each crit counting as a double hit (both crits having roughly 20% chance).
The question of who has the advantage is to my knowledge unsolved (also consider that in 1v1 the answer is different, as in teams you only have 1 sleep, so Gengar wastes it). It's also different from the problem of choosing the actual correct move, not only do you need to find the best first move, but in the game decision tree, you need a decision for each node. For example, if Tauros has 60% HP and Gengar has 100%HP, is it still better to go for hypnosis, or better to go for damage and hope for 1 out of 2 crits. This is all made more complex by the fact that both mons have a speed tie, so it's yet another probability event of who will attack first.
https://www.smogon.com/forums/threads/gengar-vs-tauros-1v1-w...
For a simple gen 1 with hidden teams, I think there's a bigger game tree than chess, and even Poker. The fact that it's non-stochastic with hidden information makes it very similar to poker analysis wise, I bet Counter Factual Regret Minimization approaches would work as well.