Unpopular opinions

IMO the AI predicting is fair when it makes a reasonable assumption a human would make. Like if the AI has seen different parts of your team, then it can go for "hard reads" but when it's just omniscient it's annoying
I agree, though i gave more simple "hard" percentages of "it either knows what you do or goes by its ai estimate" because I don't know how easy it is to code ai like this. it could be easy thought, the only coding i know is basic javascript LOL i just dont like assuming things I don't know are easy to do because it makes me look dumb as fuck when they arent
 
I agree, though i gave more simple "hard" percentages of "it either knows what you do or goes by its ai estimate" because I don't know how easy it is to code ai like this. it could be easy thought, the only coding i know is basic javascript LOL i just dont like assuming things I don't know are easy to do because it makes me look dumb as fuck when they arent
I'm not good at programming yet, but my first thought is that you'd have a function with data variables of what the player has sent out in the fight (ie. match it by Pokemon slot as shown, send the data to this function when the player sends out their Pokemon in said slot), and use the types of the Pokemon. When the player has sent out multiple Pokemon use the ability of the AI to read any move regarding the Pokemon slots revealed (so you are still taking the player's action of course, but the AI only decides if it's using the Pokemon it knows about) and then it is allowed to make a prediction.)

It wouldn't be easy, most things in programming aren't, but definitely not impossible. I also might have gotten some things wrong as, again I am new, but I am just trying >.>
 
Singleplayer Pokemon isn't really supposed to be about teambuilding skill or whatever. It's meant to be casual.
And? I should think suggesting the AI have a capacity for "hard reads" (in practice, randomly making baffling decisions for no discernible reason) would be similarly without merit in the reality of the games being casual experiences. I don't see what your point is in saying something few here would be so obstinately clueless as to be unaware of.

The hypothetical is just nonsensical too. Why in the world would a gym leader that knows your moves be impossible to beat just because you're not 100% geared to counter them? Take any random gym leader in these games and let them know what move you decided on using, and it would change very little, mostly just the ability to nail switch-ins better...and there's hardly any reason to switch against a monotype team full of overlapping weaknesses. It's mainly just rivals and champions that stand to gain here, and that's only if they're also given the capacity to switch in resists and immunities in response to the player's moves.
 
Why in the world would a gym leader that knows your moves be impossible to beat just because you're not 100% geared to counter them?
Omniscient play is, essentially, literally perfect play in Pokemon. The opponent knowing your move and making a move to counter it every turn makes it oppressive unless your team has an advantage.

I don't think you are talking about the same thing as me. To me, omniscient play for AI is not just "xd switch!"

It's actually countering every move, ie. if you burn heal? Click will o wisp again. Heal? Do the highest damage again, when otherwise midgrounds would be better. Etc.

Most Gym leaders would still not be a big challenge for this, but also having switching for easy gyms does not meaningfully make the game better either, it makes it more annoying for the player with longer battles with the same amount of challenge.

This is my fault because originally I used the word to just describe switching, but I meant that descriptor more as "this is a way that AI can be omniscient".
 
Last edited:
I more or less understand the first example, even if that's already something that could happen under gen I mechanics (I.E. cure Sleep vs. a Hypnosis user and they'll immediately click Hypnosis again, mainly applicable for Psychic weak mons), but the second scenario is something that would happen in any situation where only one move can get a KO, and the AI randomly selects from potential KO moves, so even at best there's a 25% chance it would have picked that move again whether you healed or not. Plus, if I'm not mistaken, the AI actually prioritizes moves with secondary effects anyway, not just the strongest move available.

Regardless of the validity of your examples, something like using Will-o-Wisp on a non-Burned mon is exactly what I'm talking about with learning how the AI works and exploiting that. If the AI prioritizes applying a Burn, then you know that it will attempt to do so when possible and can work with that information, using a Guts user or something else that doesn't care about a Burn, or a Special Attacker. If the AI continually hammers away at something you're trying to heal, sticking yourself in a loop...that's on you for being put in that scenario. Why should you get a free heal with negligible damage just because the AI randomly allowed you to do so? The games are easy enough as they are without the AI randomly allowing you to get away with brute forcing your way through heal spam. Maybe you should try a better strategy instead.

Also, the AI making pointless switches would be much more likely in a scenario where you gave it the capacity to make "predictions". If an AI that had information on the player's next move had the capacity to switch accordingly, it would only do so if it was actually advantageous for it to do so, I.E. throwing out a resistance/immunity or something capable of KOing the player's current mon. Most of the time you likely would not even know the AI had the capacity to read the player's moves with how poorly constructed 95% of the teams are.

Not to mention this AI doesn't even have to be universally applied...even gen I had like three different AI behaviors. Reserving it for opponents with actually balanced teams that could make use of the broad range of types and strategies available to them would be fine. No need for the typical Rock first gym leader to read the player's moves if they're just gonna get swept by Bubble anyway.
 
I had major bosses wastefully use moves repeatedly against my Pokémon in Violet, so there's definitely some room for improvement.

One was Larry hitting my Pincurchin with his Oricorio's Revelation Dance despite Lightning Rod. I'm assuming the AI picked it because it was numerically the strongest option available, even factoring in resists, but my issue with the choice is that he picked it a second time (maybe more, I don't remember exactly) after Lightning Rod made the first use ineffective. The second was AI Turo choosing to use Snowscape with Iron Bundle... after he had just used it the previous turn. Also worth noting that my Skeledirge was in against it the second turn, so even if Snow hadn't already been active, Water Pulse would have been the superior option.
 
I had major bosses wastefully use moves repeatedly against my Pokémon in Violet, so there's definitely some room for improvement.

One was Larry hitting my Pincurchin with his Oricorio's Revelation Dance despite Lightning Rod. I'm assuming the AI picked it because it was numerically the strongest option available, even factoring in resists, but my issue with the choice is that he picked it a second time (maybe more, I don't remember exactly) after Lightning Rod made the first use ineffective. The second was AI Turo choosing to use Snowscape with Iron Bundle... after he had just used it the previous turn. Also worth noting that my Skeledirge was in against it the second turn, so even if Snow hadn't already been active, Water Pulse would have been the superior option.
The AI can't handle both a type changing move and an immunity ability at the same time.
 
vaguely related but in xy there was a game mode (through the vs recorder maybe?) where you battled against your own team and i remember the ai being stupidly broken on that (switching in water absorb lapras every single time i used a water move is the example i remember). does anyone remember what exactly that was?
In Generation 6, if you save a battle video with the VS. Recorder, then you can battle the opposing team (Battle Chatelaine, perennial human rival, etc.), controlled by relatively strong AI, with your current party or battle box through mock battle. It does not work for multi battles, and I do not know if this feature returns in future generation games. I am currently creating an opposing team to battle through this function which is based on my very first campaign team: :greninja: :lucario: :flareon: :absol: :charizard: -> :charizard-mega-x: :pikachu:.
 
I had major bosses wastefully use moves repeatedly against my Pokémon in Violet, so there's definitely some room for improvement.

One was Larry hitting my Pincurchin with his Oricorio's Revelation Dance despite Lightning Rod. I'm assuming the AI picked it because it was numerically the strongest option available, even factoring in resists, but my issue with the choice is that he picked it a second time (maybe more, I don't remember exactly) after Lightning Rod made the first use ineffective. The second was AI Turo choosing to use Snowscape with Iron Bundle... after he had just used it the previous turn. Also worth noting that my Skeledirge was in against it the second turn, so even if Snow hadn't already been active, Water Pulse would have been the superior option.
I think this demonstrates different types of weak enemy AI problems.
Larry using E!Revelation Dance despite Lightning Rod is a complex issue to solve. That specific edge case might be fixable, but there's 900+ moves, 300+ abilities, and lots of weird edge cases. Programming to avoid all of them just won't happen, even though it looks really bad whenever it breaks(and it breaks often).
Using a move repeatedly when it hasn't worked(for whatever reason) the first time, is a complicated set of flags, but one with a lot of upside. However, you can see how "Don't use a move if that move failed the previous turn, unless the opponent switched, but continue not using it if they switched using Baton Pass and have a substitute up or if it failed due to a field condition, unless that field condition expired" could quickly grow out of control. And if you don't follow the chain of logic as far as possible, people will still see errors and point them out, the errors will just be more confusing and somehow look dumber. "I Baton Passed a Substitute from Umbreon to Toxicroak, but the enemy Ribombee kept spamming Pollen Puff and never chose Psyshock! Do they not see switches if the substitute stays?"
Spamming a setup move(Snowscape) that can only be in effect once is just bad and is the sort of thing I care about(along with no switching). The move has an effect, things should be written so that the NPCs try to take advantage of that effect. When an enemy seems to not understand what the moves even do, it really makes it hard to treat them as reasonable opponents.
 
Enabling the AI to recognize ability-based immunities would be the simplest fix to the Lightningrod example, albeit one with a bit of cheating. But that's better than blindly ignoring them entirely.
 
Enabling the AI to recognize ability-based immunities would be the simplest fix to the Lightningrod example, albeit one with a bit of cheating. But that's better than blindly ignoring them entirely.
It does recognise immunity abilities, the AI just doesn’t register that some moves can change type and just treats them like what the ”default” type of the move is (in Revalation Dance’s case, normal (iirc))
 

QuentinQuonce

formerly green_typhlosion
It does recognise immunity abilities, the AI just doesn’t register that some moves can change type and just treats them like what the ”default” type of the move is (in Revalation Dance’s case, normal (iirc))
It might be something that varies from game to game but the AI doesn't recognise all immunity abilities equally. It might recognise Levitate but not Flash Fire, it might completely fail to take notice of Lightningrod but stop using Water moves after the first time it uses a move nullified by Water Absorb. And there are other abilities it does or doesn't register: it knows it can use a normally-ineffective move if it has Mold Breaker, but it will completely fail to recognise your Zoroark's disguise. It's always been something I've found rather inconsistent.
 

Celever

i am town
is a Community Contributor
It might be something that varies from game to game but the AI doesn't recognise all immunity abilities equally. It might recognise Levitate but not Flash Fire, it might completely fail to take notice of Lightningrod but stop using Water moves after the first time it uses a move nullified by Water Absorb. And there are other abilities it does or doesn't register: it knows it can use a normally-ineffective move if it has Mold Breaker, but it will completely fail to recognise your Zoroark's disguise. It's always been something I've found rather inconsistent.
Levitate is usually the only ability a Levitate Pokémon gets, so I suspect it has to do with that. Maybe some AI testing with Weezing should be done, play the same fight with a Weezing of each ability and see if it still recognises Levitate despite their being a chance of it being Neutralising Gas.

Pretty sure never recognising Zoroark’s illusion is hardcoded to make little Timmy feel smart for using the cool mon they wanted to be a mascot. And I respect that, because if I were little Timmy, I would and it would make me happy.
 
Levitate is usually the only ability a Levitate Pokémon gets, so I suspect it has to do with that. Maybe some AI testing with Weezing should be done, play the same fight with a Weezing of each ability and see if it still recognises Levitate despite their being a chance of it being Neutralising Gas.

Pretty sure never recognising Zoroark’s illusion is hardcoded to make little Timmy feel smart for using the cool mon they wanted to be a mascot. And I respect that, because if I were little Timmy, I would and it would make me happy.
Since Weezing's other abilities announce themselves on coming out, so if the AI is playing by "human" rules it should immediately know if Ground moves would work or not rather than having to scout or whiff one first.
 
Since Weezing's other abilities announce themselves on coming out, so if the AI is playing by "human" rules it should immediately know if Ground moves would work or not rather than having to scout or whiff one first.
Only Galar Weezing though, I don't think Stench announces itself. Bronzong could work as well since none of Levitate/Heatproof/Heavy Metal are immidiately obvious.
 
The AI can't handle both a type changing move and an immunity ability at the same time.
I think this demonstrates different types of weak enemy AI problems.
Larry using E!Revelation Dance despite Lightning Rod is a complex issue to solve. That specific edge case might be fixable, but there's 900+ moves, 300+ abilities, and lots of weird edge cases. Programming to avoid all of them just won't happen, even though it looks really bad whenever it breaks(and it breaks often).
Using a move repeatedly when it hasn't worked(for whatever reason) the first time, is a complicated set of flags, but one with a lot of upside. However, you can see how "Don't use a move if that move failed the previous turn, unless the opponent switched, but continue not using it if they switched using Baton Pass and have a substitute up or if it failed due to a field condition, unless that field condition expired" could quickly grow out of control. And if you don't follow the chain of logic as far as possible, people will still see errors and point them out, the errors will just be more confusing and somehow look dumber. "I Baton Passed a Substitute from Umbreon to Toxicroak, but the enemy Ribombee kept spamming Pollen Puff and never chose Psyshock! Do they not see switches if the substitute stays?"
Yeah, I can definitely see the difficulty in not noticing type-changing moves and how they interact with abilities. However, I'm not sure I totally buy that it's difficult to cover for multiple cases where they should change (or not change) using a specific move if it failed previously.

As a few others have noted, the AI mostly runs off of information that's visible to the player (to what extent it reads information like stats for damage calculation is probably game-dependent). For example, your "Umbreon Baton Passed a Substitute to Toxicroak but the AI keeps using a move intended for Umbreon" doesn't make much sense to me, since the active Pokémon behind the is visible to the player, and so should be visible to the AI as well. I'm probably underestimating the number of ways moves can fail, but there are usually indicators as to why a move failed, indicators that players can see and react to (and so should the AI). A few examples:

  • Abilities: a handy pop-in appears when an ability procs to nullify a move. Should be something the AI reacts to. Includes reacting to abilities that announce themselves on entry. There are a lot of abilities, but I don't know how many specifically cause moves to fail. Might be worth counting to sate my curiosity.
  • Types: this one is obvious. I feel AI should react to various forms of type-changing (via ability, move, Tera)
  • Protection moves: I'm not sure if this counts as a move "failing," exactly, for the purposes of AI consideration, but it should be able to distinguish between an attack failing because of an opponent's protection move as opposed to an ability or similar. Probably harder to code for when doubles are the format when Wide Guard and Quick Guard are more viable.
  • Substitute: this one move is a bit of a mess, but I know past games had a specific flag for moves bypassing Substitute. If they still do, the AI checking if a move that failed on a Substitute failed because of it seems reasonable. Might be worth adjusting move choices to prioritize sound or multi-hit moves to damage opponents behind them.
  • Status/Stat moves already at their limit: this falls under "the AI theoretically has access to at least the same information players do." The status subscreen is good for keeping track of stuff like this.
  • Moves failing because of field effect: I see this as two distinct parts. One is "don't use a field effect inducing attack if that field effect is already active," as an example I brought up (as a side note, I think doing that should restart the number of turns the field effect is active for, but since it doesn't, the AI should never do this). The other part is "moves failing because of an active field effect." There aren't a lot of these, but a few examples are Psychic Terrain blocking priority and Misty Terrain preventing status. Those are simple enough, but accounting for relatively fringe cases like Gravity preventing certain airborne attacks and the Primal weather abilities blocking Fire/Water attacks may not be worth the effort.
  • Items: this one is touchier. It depends a little on if the item announces itself beforehand (the Air Balloon, for example). I'm actually not sure if the Ability Shield or Safety Goggles have a special message when they do their jobs. If they do, the AI should account for a move failing because of them.
Okay, I understand there is a ridiculous amount of information to account for when programming a battle AI. Seasoned players make mistakes on occasion. I admit I'm not a coder and I don't know how large modern AI structure is, or how feasible it is to increase it. But I feel that at least reacting to new developments in a battle should be something the AI should be regularly capable of.
 
The more I look at Gigantamax Pokémon, the more they resemble bad fan-art of new Mega Evolution Pokémon that saturated Pokémon discourse from 2013 to 2016. Most Gigantamax forms are designed along the lines of "what if Pokémon's feature / body part was huge?". Gigantimax Pokémon focus on growing to giant size and hurling elemental projectiles from the sky, whereas Mega Evolution Pokémon usually look unique and capture the idea of a Pokémon tapping into an awesome, mysterious power without being overwhelming. The Pokémon that best illustrates this is Gengar.

Pokemon Mega Gengar Artwork.png

If you use Mega Gengar, you have summoned the incarnation of terror. Its gradient "skin" tone and sinking into the ground emphasize how it can warp into and out of surfaces at will; I am not even sure of the significance of its "third eye" but it certainly induces fear, and with a smile like that Gengar knows it has practically defeated its foe already. Mega Gengar is distinct but doesn't overdo the creepiness or new biology. Overall, it is clear it does not play by the rules other Pokémon do.
Pokemon Gigantamax Gengar Artwork.png

"Look at what my buddy Guzzlord taught me! Are you scared? ARE YOU?" Gigantamax Gengar leans into the clownish elements of the Pokémon, which is fine, but I am not sure whether to laugh with it or at it. I can't be the only one who just sees a rejected Mega Evolution concept.
Images are from Bulbapedia.
 
The more I look at Gigantamax Pokémon, the more they resemble bad fan-art of new Mega Evolution Pokémon that saturated Pokémon discourse from 2013 to 2016. Most Gigantamax forms are designed along the lines of "what if Pokémon's feature / body part was huge?". Gigantimax Pokémon focus on growing to giant size and hurling elemental projectiles from the sky, whereas Mega Evolution Pokémon usually look unique and capture the idea of a Pokémon tapping into an awesome, mysterious power without being overwhelming. The Pokémon that best illustrates this is Gengar.

View attachment 625472
If you use Mega Gengar, you have summoned the incarnation of terror. Its gradient "skin" tone and sinking into the ground emphasize how it can warp into and out of surfaces at will; I am not even sure of the significance of its "third eye" but it certainly induces fear, and with a smile like that Gengar knows it has practically defeated its foe already. Mega Gengar is distinct but doesn't overdo the creepiness or new biology. Overall, it is clear it does not play by the rules other Pokémon do.
View attachment 625474
"Look at what my buddy Guzzlord taught me! Are you scared? ARE YOU?" Gigantamax Gengar leans into the clownish elements of the Pokémon, which is fine, but I am not sure whether to laugh with it or at it. I can't be the only one who just sees a rejected Mega Evolution concept.
Images are from Bulbapedia.
Gengar especially feels like they were scrambling to replace its mega because it's G-max move traps the opponents just like Gengar-Mega's Shadow Tag. Since they were that desperate, you have to wonder why they didn't, I don't know, not remove the Mega in the first place or something? I do think a few of the gen 8 Gmaxes look decent, but it comes with the cost of the base mon looking like it exists only as a vessel for the GMax, a potentially larger problem since the base mon is more likely to show up in future games than the GMax.
 

Users Who Are Viewing This Thread (Users: 8, Guests: 14)

Top