During my playthroughs, I mostly just picked my favorites. As a result, a lot of my teams featured the same Pokémon. More recently, however, I tend to design my playthrough teams based on keeping my Starter Pokémon for the entire playthrough and a structure of cores and roles. For example, if I were playing Pokémon Omega Ruby:
- Torchic (Lovely cute Starter that I can't pass up)
- Staryu (Serves as my Water-type coverage for Torchic and evolves into my favorite Pokémon)
- Seedot (Serves as coverage for my Staryu and is a great replacement when you don't pick the Grass-type Starter)
Overall, this completes my Fire, Water, Grass core, which guarantees offensive and defensive coverage. Not only did I pick these three Pokémon to complete my three-type core because they are personal favorites, but when they are fully evolved, they also gain the Fighting, Psychic, and Dark types respectively, which can also serve as a three-type core similar to Fire, Water, and Grass, providing me with even more offensive and defensive coverage at the same time. After that, I try to get my other Pokémon to fulfill different roles. Because this example is about Pokémon Omega Ruby, some of those roles involve HMs. While Staryu can already Surf, Dive, and Waterfall when needed (thankfully move deleters exist), Torchic can Rock Smash, and Nuzleaf can Cut, I need a Pokémon that can Fly and use Strength. Another role that I find important is False Swipe for catching Pokémon, which is something that Nuzleaf is good at.
- Aerodactyl (A personal favorite that gets a lot of STAB from Fly, can learn Strength, and has a lot of coverage. If not Aerodactyl, assuming that I can't transfer a level 1 one over, then I would use any powerful Flying-type Pokémon, such as a strong regional bird, that can deal good damage from Fly. I believe in making the move useful in battle as well as an HM move).
Another aspect of my playthroughs is battle facilities. Because I already have all the Pokémon I need to fulfill every role, the rest of the Pokémon should be strong enough to hold their own in the Battle Maison. In that case, I typically choose a strong Pokémon such as a member of the 600-club (pseudo-legendary) or something similar, and another strong Pokémon that can cover for it.
- Beldum (Eventually evolves into Metagross, and does so relatively early at level 45. Has a Mega form and is powerful enough to hold its own in Battle Maison).
- Igglybuff (Covers for Beldum's weaknesses)
Eventually, my Pokémon would evolve, leaving me with a team of:
- Blaziken
- Starmie
- Shiftry
- Metagross
- Aerodactyl
- Wigglytuff
It would come out looking like so, fully prepared for Battle Maison:
https://pokepast.es/38ba5df183da9ddc