Pokémon games aren't known for being challenging. That doesn't mean you can't spice things up.
Don't Grind (Much)
I know, I know. Choosing not to grind in a role-playing game with levels and experience points? That's kind of like choosing not to go for headshots in a shooter! But trust me, it's easy to overlevel your Pokémon if you spend much time in the grass, looking for random encounters. And once you overlevel your Pokémon, you stop having to think about tactics—you can just spam whatever move you'd like, and your opponent will faint.
My advice is: do battle everyone you come across, don't run away from any random encounters, don't use items like repel—battle as much as you have to, basically, just don't go out of your way to level your Pokémon up more than what is normally unavoidable. If done right, some battles should give you a tough time.
Don't Use Experience Share
If you have to manually level up each Pokémon one by one, things become a little harder. So when the game gifts you an item called Experience Share—something that lets everyone in your party gain experience from battle, regardless of whether or not they participated—don't turn the device on. It means that leveling everyone takes longer, but that's not a bad thing if you're seeking a challenge.
The systems and mechanics that give life to our favorite little critters are actually surprisingly complex...but the main game does a crap job of showing you that's the case. The bulk of what you need to know when playing against AI is what the different weaknesses are—knowledge of strategy beyond that isn't required.
That's not the case when you play against other people online. People are clever. People use strategy. People will do their best to win—and this means reading up on abilities, natures, breeding, EVs, IVs, items, builds and team composition. It's much harder to simply spam a Pokémon's weakness when a trainer anticipates that you'll try to do exactly that.
Unlike hopping into a match of League of Legends or Call of Duty, playing Pokémon online with others is usually a joy. And when the online features are so robust and easy to use—you're just a few taps away from connecting to someone else via the PSS menu—why not mess around with it a bit, see what you're made of? You may find that other trainers provide the sort of challenge that gym leaders and the Elite Four in the actual game cant.
You can also play against friends locally. That might be a better option, if you know any buddies with the game—the potential for juicy rivalry is much better.
And finally, don't forget about secret bases. You can decorate your own secret base, and then share it with friends. Your friends have the ability to battle against you—so why not pretend you're a gym leader, and take the time to create the perfect gym and team experience for them? Alternatively, you could try to find friends who have created secret bases, and challenge them. Chances are they can make an experience that is way more challenging than an actual gym!
Traded Pokémon get an experience boost. That means they level up faster, which in turn means traded Pokémon are often the strongest Pokémon in your party. That's not ideal if you're looking for added difficulty! Plus, if you avoid Wonder Trading, you never run the risk of obtaining powerful Pokémon you're not supposed to have at that point in the story.
Don't Use Healing Items
When you have to rely solely on Pokémon centers, things can get dicey during battle—especially if you couple this tip with other ones, like not grinding. You may find that, without the ability to use a potion, you might actually lose battles every now and then.
For added challenge, you can disallow the use of any items at all—healing and stat-boosting alike.
Don't Use Legendary Pokémon
Omega Ruby and Alpha Sapphire have dozens of legendary Pokémon, many of them powerful. Resist the urge to use them in battle, and put them back into your PC for added challenge. Do feel free to capture them all, though—they're rare and nice to have!
Change The Battle Style
If you go into options, you have the ability to change the "Battle Style" from Switch to Set. It's defaulted to Switch, which lets you swap in Pokémon whenever your enemy has had their Pokémon faint. But if you change it to set, you can't switch Pokémon in battles like that—which means you can't just change your Pokemon to whatever would easily counter your opponent's Pokémon. This simple change makes things a bit harder for the player.
Do A Nuzlocke Run
You know of permadeath runs—playthroughs of games that require you to stop going forward once you die? Pokémon has something like that, though it's not built-in to the game. It's called 'Nuzlocke,' and it's a set of rules that someone came up with back with the original Pokémon Ruby and Sapphire that make the Pokémon games significantly harder. Since then, veterans have continued to use Nuzlocke—and you can, too.
There are many variations to it, but these are the rules I use when going through the game:
1. You can only capture and use the first Pokémon you encounter in each new area, and no others. So if the first Pokémon you encounter in route X is an Oddish, you can capture and use that Oddish, but no other Pokémon on route X. Yes, even if Oddish is the shittiest Pokémon available on route X. Tough luck!
On top of that, if the first Pokémon you encounter in a new area faints, you can't catch any Pokemon in that area. Whatever Pokémon you do catch, however, must be nicknamed. Nicknames will make you feel closer to a Pokémon, which means a Nuzlocke run is harder both mechanically and emotionally.
2. If a Pokémon in your party faints, that's it. It's 'dead.' You gotta release it. Kind of morbid, but thems the rules!
3. You can't play with traded Pokémon, unless it's a Pokémon an NPC can trade you.
4. No resets.
5. If you black out (as in, if all the Pokémon in your party faint), that's it. The playthrough is done. Game over. You gotta restart if you wanna keep playing.
The idea behind these rules is that they not only keep the game interesting, they also force players to use Pokémon they'd normally never use. And because of the challenge and restrictions, many trainers come to feel that they form stronger bonds with their Pokémon—which is pretty neat!
Traditionally, people who do Nuzlocke runs sometimes also do comics documenting the experience, as the original Nuzlocker did—you can check some of 'em out here.
Here are some variations/additional rules you can add to Nuzlocke, courtesy of Bulbapedia:
Starter Pokémon is based off the player's Trainer ID number. If the last number is 1-3 the player starts with a Grass type, 4-6 is Fire type, 7-9 is Water type, 0 is the player's choice.
Not officially enforcing the rules until the player has Poké Balls and can catch Pokémon. For example, the PoochyenaRS/ZigzagoonE that the player has to save Professor Birch from is not counted as the first encounter on the route, and not counting any other encounters as such until they can catch. Likewise, in the games where the rival battle is immediately after getting the starter Pokémon, the "any that faint must be released" rule is not enforced at that time.
Going to options and making the battle style "set", leaving the player unable to switch out.
Banning the use of Pokémon Centers, relying only on Potions and healing items for healing
Limiting Pokémon Center visits to a certain number per town.
Banning the use of held items.
Banning the use of Master Balls.
Rather than releasing the Pokémon, it can be permanently boxed, migrated, or transferred with Poké Transfer should it happen to faint.
The player may not evolve captured Pokémon, but evolved Pokémon may be caught.
No catching/using legendary Pokémon.
If the player runs into a Shiny Pokémon on the incredibly rare chance, the player may still catch it, regardless of whether or not it is the first encounter in the area. It also does not need to be released if it faints.
As another mercy rule, each gym badge acts as a checkpoint. If the player gets a game over, they can start from when they got their previous gym badge.
If the player has no Pokémon that can use a certain field move that is required to continue through any given point of the game, they may catch another Pokémon that can learn said field move. However, it cannot be used in battle for any reason, and must be released, permanently boxed, or migrated as soon as the player gets another Pokémon that can use said field move.
Modifying the "first encounter only" rule for the Safari Zone, sometimes allowing one encounter for each area, or until they catch one Pokémon in the entire area, and vice versa.
Banning the use of Poké Marts.
Setting a level limit based on the next Gym Leader's/Champion's highest leveled Pokémon. Any team members that surpass that limit before taking on the Gym Leader or Elite Four must be released.
Most of these are general Pokémon things, though. Let's add Omega Ruby and Alpha Sapphire-specific stipulations, shall we? Here's one.
A Nuzlocke run in Omega Ruby and Alpha Sapphire MUST require players to max out a Pokémon's friendship in Pokemon Amie. This is something that should take maybe 30 minutes tops, and since it's a mode that requires you to pet, play with and feed your Pokémon, chances that you'll care about the Pokemon are even higher. Excellent. This bond means that if that Pokemon ever faints/'dies', it'll hurt even more.
And here's an optional variation, let's call it the Wonder Run: instead of playing with whatever Pokémon you first encounter in a new area, catch six Pokemon. Any Pokémon will do. Then go into Wonder Trade, which is a new online feature that lets you get a random Pokémon in exchange for one of your own, and trade these six Pokémon away. Whatever you get in return, that's your team. From there, you can proceed as if it's a Nuzlocke Run.
Do Other Types of Runs
Mono-type run: Pick a type—fire, water, grass, what have you—and go forward with a team of only that type. You can pretend you're a gym leader if you'd like.
Solo-run: You get one Pokémon, and one Pokémon only. Add additional Nuzlocke rules, if you'd like, and whatever you do, choose wisely.
Community run: Your friends or strangers pick your team, and the moves to go along with every Pokémon. You have to go with it, regardless of what team or moves you end up with...but just to balance things out, at least one of these moves has to be an attack move, ha.
No Evolution run: what it says on the tin. Whenever a Pokémon starts evolving, press B. No stat boosts for you.
No Mega Evolution Run: put that mega stone away, and play only with normal Pokémon. Since Mega Evolutions give your Pokémon a boost, they're not ideal for those looking for a challenge.
This is less "to make things harder" and more "to keep things interesting." If you learn how to create specific, powerful Pokémon with the moves and abilities you want, you're going to have to learn a few new mechanics, including the ins-and-outs of what IVs and EVs are. This is the sort of thing you'll need to do if you want to seriously play against other real people, too—because I can guarantee you, most of these hardcore players don't run around with normal, run of the mill Pokémon. They breed special, if not outright perfect Pokémon with all the right stats and moves.
Here's a good primer on some of the things you'll need to know to breed in Omega Ruby and Alpha Sapphire:
Explore The Post-Game
Once you beat the game, you can visit a place called the Battle Resort. Here, you'll find lots of powerful trainers that are eager to take you on. You can also challenge the Battle Maison, where you'll see how many trainers you can take on in a row without losing. Getting a big streak is harder than it sounds, even if you have powerful Pokémon. Plus, the Battle Maison offers some variety, too. It's not just single battles, you can also try double, triple, rotation or multi-battles. The normal game doesn't feature much outside of single battles.
And the more you win, the more "Battle Points" you earn—which you can trade in for prizes. So it's not just added difficulty, you can get some rad stuff for your time, too. Did I mention that some of the trainers you can challenge are people like May, Wally, and Steven?
Once you beat the game, you'll also gain access to something called the Battle Institute, which is located in Mauville City. Here, you can do something called a "Battle Test." Battle Tests give you five battles in a row, all of which you have to win. Some Pokémon are banned, too, so don't think you can just bring in your high-level Deoxys and Rayquaza.
And finally, we can't forget about the Delta Episode, which is the best part of the game. You should play it. If nothing else, it gives you the opportunity to get very powerful, and tough-to-capture Pokémon. Which brings us to...
Catch 'Em All
The tagline for the franchise is no laughing matter. There are more than 700 Pokémon now, and getting a hold of all of them is hard. That's especially true if we take into account the legendary Pokémon in Omega Ruby and Alpha Sapphire, some of which are tough to find and capture. Give this challenge a try, if you dare—especially if you don't care about the battling in Pokémon. You can think of it a bit like trying to get a full set of furniture in Animal Crossing, only there are hundreds of pieces to collect.
Pokémon games have never been particularly difficult. As much as I think Pokémon is about the experience and not the challenge, I know that breezing through a game isn't everyone's cup of tea. I'd hate for you to play the otherwise excellent Omega Ruby and Alpha Sapphire and feel bored because it isn't very difficult. Hopefully these tips help with that—but surely they're not the only options you have to keep things interesting in ORAS. Feel free to share any advice or playstyles you've adopted to make Omega Ruby and Alpha Sapphire more challenging in the comments!