Keep in mind: I'm not saying Pokemon is bad (I love it) or that it is the only game that has this problem - the majority of games have stronger beginnings than endings. The beginning is the part of the game that is played, tested and polished the most, and first impressions are very important. If, as a designer, you had to choose between a good start or a good end, you would always choose a good start. Once players are hooked, they will often play to the end even if the end isn't as good (as I did with Pokemon). But this doesn't mean the end isn't important - if the beginning is what hooks a player, the end is what players remember long after they beat the game.
The start of Pokemon Sun was really fun like I remembered - full of nostalgia, Pokemon catching, a cat starter (YAY), but it also had updated graphics and gameplay. Gaining experience for catching Pokemon stood out especially, as it's often harder to catch than defeat a Pokemon, so it is nice to gain experience for the effort. Gaining an improved EXP Share early on was also nice - as it meant that I no longer had to worry about keeping my core team levels balanced, they all gained (basically free) experience just for being on my team even if I didn't send them out. However, perhaps because of that extra experience, my Pokemon were higher level than normal and I started noticing issues with the game earlier than normal.
The first problem: the One Hit Knockout - when you only get to use one move, there's not a lot of strategy or planning you can do during the battle.
Early in the game, even with a type advantage, it takes several hits to defeat an enemy of a similar level. This makes it possible to consider other moves, like boosting your attack so you can knock out the opponent faster, or other interesting status moves.
Late in the game, with a type advantage, you can consistently knock out enemies of a similar level in one hit. All of a sudden, interesting status moves feel like a waste - nothing can merit using a turn when you could've defeated the enemy that turn.
All of a sudden, attack power, type advantages, and speed become the most important parts of the game - often, the battle is decided before it even begins! Abilities and held items can offset this a little, but again, this is stuff decided before the battle, during the battle you just want to have your Pokemon with a type advantage out, and use your most powerful STAB (same type attack bonus) move.
This makes battles a lot less interesting, and a lot more meta. If the battle is usually decided before it even begins, then you have to be ready for the battle. If you send in the wrong Pokemon to start, you either have to sacrifice that Pokemon so you can switch for free, or switch and let the enemy get a free move, which can often give an overwhelming advantage when it only takes a single hit to get knocked out (even without a type advantage in some cases). This often leads me to bringing up a walkthrough to know exactly what Pokemon each trainer I'm about to fight has. It's easier than reloading or starting with a sacrifice Pokemon, and when this foreknowledge is the difference between and easy win or a crushing loss (sometimes without even a chance to make a move, as the opponents can do one hit knockouts as well), it becomes too tempting not to know.
Interesting final battle against an opponent with many different type Pokemon, or an easy sweep with foreknowledge?
But what this essentially means is that late game Pokemon battles involve me using a walkthrough, preparing for the fight, and then breezing through the battles with one hit knockouts. As you can imagine, this starts to feel less fun, and more of a chore. It was a lot more exciting when I could take a few moves to buff my Pokemon's stats, soften the enemy and switch out to win a tough battle - but in the world of one hit knockouts, this is not really an option.
The problem is that late game battles are too easy (even mindless) if you don’t make mistakes, but too difficult if you do - often being impossible to recover from a bad matchup or bad luck.
The reason for this is simple: defense and attack stats rise at a similar rate as Pokemon level up, but they learn new, more powerful moves - often twice or even three times as powerful. So, what would take 2 or 3 super effective hits with Ember would only take 1 super effective hit with Flamethrower (and it gets even crazier with Z-moves). Even though Pokemon also get more powerful status moves that raise defense more than one stage, it still counts as a move and requires a turn to use, which, as mentioned before, doesn't really help in a one hit knockout scenario. Similarly, items don’t really help either, as they take a turn, and even the best potion doesn’t help when the enemy defeats you in one hit.
One potential solution to this would be to have health increase faster than other stats - so even though attacks deal more damage, it would still take more than one turn to defeat an enemy. However, this runs the risk of feeling like your Pokemon are not getting more powerful - as even though they are dealing more damage, they aren't taking a larger chunk out of the enemy's health bar. With any RPG that uses levels, this is a problem you have to consider - you want the player to feel like they are getting stronger, but you want the battles to get more difficult as the player understands the battle system better, not easier (which can quickly make the player feel like they are getting weaker).
The second problem: no incentive to catch Pokemon late game.
There's one other major problem with late game Pokemon - catching them! I consider catching Pokemon the core of the game, and what makes it fun. But in the late game, I almost never catch Pokemon anymore, and it becomes all about the battles (which as I mentioned, get a lot less interesting).
In the beginning of the game, you start with one Pokemon, and you can have up to 6 on your team. Each Pokemon you catch, even if weak, is a potential asset and worth catching.
Worthless pokemon? Or valuable early help so your starter doesn’t have to fight alone?
Mid game, you have your team of Pokemon, but it's not balanced in terms of types (as not all types are available early on). So, you continue to catch Pokemon to improve your team, replacing the old Pokemon you caught earlier, sending them to the box.
Late game, you have a pretty solid team with balanced types, and while they might not have the highest base stats, there is a bonus for raising Pokemon from low levels as opposed to catching at high levels, so they are plenty powerful, and you are probably attached to your team. Because of this, there’s no real reason to catch and replace a Pokemon on your team anymore aside for a Legendary Pokemon where the stat difference is high enough (and it's cool enough) to be worth it. If I catch a Pokemon late game, it's usually just to send to a box to increase my pokedex percent for some random rewards, and it no longer feels important or valuable.
I hope you enjoy your box… it’s comfy there, right? Pokemon is even self aware of this and the story frequently talks about how Pokemon are used and then sent away when they are of no more use… but other than making you feel guilty, it doesn’t provide an alternative.
The only workaround I can think of for this is to give "boxed" Pokemon some value so they aren't just forgotten and collecting dust, or perhaps ending the game after you're able to assemble your dream team and prove it's worth.
I'm definitely curious to see what changes Game Freak will make with Pokemon Sword and Shield, and looking closely at why I didn't enjoy Pokemon endings made me consider the endings for my own games. Deity Quest definitely has these problems (it was too heavily inspired by Pokemon), and while they don't have the exact same problems as Pokemon, almost all of my games that aren't super short have a similar issue of the endings not being as interesting as the beginnings. The one exception to this was, surprisingly, I Can't Escape and its sequel - where the excitement/suspense actually builds as you head deeper towards the ending. This was not intentional, but an interesting realization. It probably happened because I focused on ambiance and tension in those games, instead of progression and leveling.
While I doubt I'll go back to my older games and revise their endings at this point, knowing these pitfalls will help with Aground, which has already started to show similar signs of the player growing too powerful. And of course, it will help with future games, and perhaps your games too. Often, you don't realize what would make an ending better until you've made the game and analyzed the ending, at which point it's often too late. By trying to analyze the endings and flaws of similar games, perhaps we can identify the issues that will occur late-game in our own games and fix/balance them before it’s too late.