- 4
- Posts
- 6
- Years
- Seen Oct 24, 2018
Hi, all. New to the forums, not new to Pokemon. That said, I am back to the game after a bit of a hiatus and got back into it watching LPs of fan-made games. I've pretty well outgrown main series playthroughs because they're too easy, and unfortunately I'm even having trouble staying hooked on fan-made games because they tend to be made difficult primarily by over-leveling your opposition as you progress, forcing you to grind or exploit the AI to progress.
I want a Pokemon game that not only allows you to battle strategically (by resetting PP after every battle) but requires it of you, with gyms based not on types but on different strategies (e.g., aggro, balance, stall, hazard stacking, volt-turn, etc.), that will have players sometimes get stuck at random trainers rather than just gym leaders or other major characters. In short, I want a Pokemon game marketed towards its older fanbase that can appreciate the complexity of this otherwise childish game.
But a game like this requires a genuinely challenging AI, which I haven't yet seen in a Pokemon game and, based on the Googling and thinking on the subject that I've been doing for the last couple nights, doesn't appear to exist yet (and may not currently be achievable). So I've come here to ask all of you whether any of you have any examples to counter my pessimism or personal experience trying to come up with better AI, yourselves.
Either way, I'm interested in discussing what anyone interested in improving Pokemon AI might think is the best approach, though if this isn't the place for that then I'll happily find another place to have that discussion.
From my understanding, the minimax approach used in chess AI's wouldn't be viable for Pokemon battling (unless modified somehow) given that turns are taken simultaneously as opposed to sequentially and that Pokemon is not a deterministic game (i.e., in chess a move has only one possible outcome whereas in Pokemon a move can have different outcomes - Will scald burn or not? Will it crit or not? Exactly how much damage will is do? Will its user be fully paralyzed or not? Will its user hurt itself in confusion or not? Etc.). Additionally, in the worst case scenario, a single turn has 625 different move combinations (each player could switch to 5 different pokemon, and each move could cause the user to switch to another pokemon (4*5) --> (5 + 20)^2 = 25^2 = 625. And this is before calculating outcomes (i.e., damage, status, possible speed ties, etc.) The first turn of a pokemon battle could have hundreds of thousands if not millions of different possible outcomes. Any algorithm capable of making those calculations even just a few turns in advance will need to run for days before deciding on a move.
Alternatively, one could try designing an AI that evaluates its team's strengths and weaknesses relative to its opponent's at the start of every battle, and constructs a more proximal win condition than KOing every Pokemon on the opposing team. For example, it could realize that its Dragonite could sweep its opponent's team after one DD once the opponent's mons have fallen below a threshhold level and then aim to accomplish that without losing Dragonite or getting it status'd - and also while avoiding falling into any traps of its opponents'. The downsides of this could be that it might forgo an obviously superior short-term move with a high chance of KOing an opposing Pokemon in favor of bizarre choices with high long-term payoff. I suspect it would also be very susceptible to really cheesy styles of play unless monstrously convoluted logic trees were built into it.
And this is pretty well where I stand right now. Not sure what, if anything, anyone will do or wants to do with these thoughts, but I wanted to put them out there before they escape my head and hopefully get some feedback from people who'll give me good ideas or put into perspective how impossible a task this is for me. Thanks.
*To be clear, I am asking about this because I am personally interested in developing better AI for future fan-mane Pokemon games. Though, for the record, I am also very inexperienced with this. Before I even decide to start working on it, I want to know how feasible it is at all.
I want a Pokemon game that not only allows you to battle strategically (by resetting PP after every battle) but requires it of you, with gyms based not on types but on different strategies (e.g., aggro, balance, stall, hazard stacking, volt-turn, etc.), that will have players sometimes get stuck at random trainers rather than just gym leaders or other major characters. In short, I want a Pokemon game marketed towards its older fanbase that can appreciate the complexity of this otherwise childish game.
But a game like this requires a genuinely challenging AI, which I haven't yet seen in a Pokemon game and, based on the Googling and thinking on the subject that I've been doing for the last couple nights, doesn't appear to exist yet (and may not currently be achievable). So I've come here to ask all of you whether any of you have any examples to counter my pessimism or personal experience trying to come up with better AI, yourselves.
Either way, I'm interested in discussing what anyone interested in improving Pokemon AI might think is the best approach, though if this isn't the place for that then I'll happily find another place to have that discussion.
From my understanding, the minimax approach used in chess AI's wouldn't be viable for Pokemon battling (unless modified somehow) given that turns are taken simultaneously as opposed to sequentially and that Pokemon is not a deterministic game (i.e., in chess a move has only one possible outcome whereas in Pokemon a move can have different outcomes - Will scald burn or not? Will it crit or not? Exactly how much damage will is do? Will its user be fully paralyzed or not? Will its user hurt itself in confusion or not? Etc.). Additionally, in the worst case scenario, a single turn has 625 different move combinations (each player could switch to 5 different pokemon, and each move could cause the user to switch to another pokemon (4*5) --> (5 + 20)^2 = 25^2 = 625. And this is before calculating outcomes (i.e., damage, status, possible speed ties, etc.) The first turn of a pokemon battle could have hundreds of thousands if not millions of different possible outcomes. Any algorithm capable of making those calculations even just a few turns in advance will need to run for days before deciding on a move.
Alternatively, one could try designing an AI that evaluates its team's strengths and weaknesses relative to its opponent's at the start of every battle, and constructs a more proximal win condition than KOing every Pokemon on the opposing team. For example, it could realize that its Dragonite could sweep its opponent's team after one DD once the opponent's mons have fallen below a threshhold level and then aim to accomplish that without losing Dragonite or getting it status'd - and also while avoiding falling into any traps of its opponents'. The downsides of this could be that it might forgo an obviously superior short-term move with a high chance of KOing an opposing Pokemon in favor of bizarre choices with high long-term payoff. I suspect it would also be very susceptible to really cheesy styles of play unless monstrously convoluted logic trees were built into it.
And this is pretty well where I stand right now. Not sure what, if anything, anyone will do or wants to do with these thoughts, but I wanted to put them out there before they escape my head and hopefully get some feedback from people who'll give me good ideas or put into perspective how impossible a task this is for me. Thanks.
*To be clear, I am asking about this because I am personally interested in developing better AI for future fan-mane Pokemon games. Though, for the record, I am also very inexperienced with this. Before I even decide to start working on it, I want to know how feasible it is at all.