Quoted By:
Better AI for every trainer. Better teams too. They shouldn't have a level 32 Magikarp.
Sometimes they use very dumb moves even if they have something way better in their moveset. They could switch more often, use hazards, weather, etc.
And like others said, obligatory SET and not SHIFT mode, battles with a fixed number of Pokémon for each trainers, full team for gym leaders or other important characters. Maybe restrict the number of items used? Or give revives to NPC for extra douchery.