- Feb 20, 2020
- Reaction score
In this video I go over the tools and techniques that I used to program an AI to play Pokemon Emerald!
Pokemon is quite a challenge for AI - much more than I thought when I started this project. In regards to barriers that move around over time, the only real solution to that is to have the AI start re-checking the boundaries if it gets stuck. So far the AI has never gone far enough to have to deal with HMs, but I know that those (along with puzzles such as those found in gyms or evil team hideouts) are going to be major roadblocks. In regards to catching Pokemon, my original plan was to follow Nuzlocke rules - catch first thing you find in a new area - because it would be easier to implement. There may be a better way, however.Wow, that's very interesting! I kinda get how AI works, and Pokemon without a doubt sounds like a very hard task to do.
In the overworld, what do you do when the barrier isn't physical but because of the story?
How did you handled HMs? Using them is easy in Gen 3, but teaching them to a Pokemon should be hard, I don't want to imagine how to code what happens if you don't have a compatible Pokemon in your party.
Battles also sound very hard to program. I would code it without switching first, because when taking switching into account you have multiple dilemmas: What's better: Lossing the least health possible or inflicting the most damage possible? And how do you take into account what could happen in the next turns? The more turns you include the bigger the decision tree will be.
Also...Should the AI get information about the enemies' stats and moves? Because that seems very unfair to human players who can only get that through trial and error.
How does the AI decides which Pokémon should be caught? How does it decide if it should replace the ones it already has?
I'm just curious.