Live data from Hacker News

Why Can a Machine Beat Mario but Not Pokemon?

medium.com

21–30 of 76 posts

Re: Why Can a Machine Beat Mario but Not Pokemon?

#21
post #4

Earlier quoted context omitted.

If you're following video games, Pokémon isn't really anything special. It's an RPG. It's doesn't have any innovative gameplay. What was new at release, is the way it combines things which already existed at the time. For example, in Final Fantasy V (which came out 3 years before pokémon), a character could already catch monsters and have them battle against others. Many games already had a collecting element. The ex…

It's special to me, the tv show and the trading cards assisted with that. I rekindled my love of the franchise getting into speed running a few years back. 10yo me would spend weeks slow grind progressing. 22yo me trying to speedrun it in sub 2 hours.

I'm not denying that it's special to many people, but this is true of many things in pop culture. I was answering the GG-parent with regards to "understanding" Pokemon. I'm arguing that it's easy to understand as a video game. As a pop culture phenomenon, the question doesn't really make sense, calling for a tautological answer.

Re: Why Can a Machine Beat Mario but Not Pokemon?

#22
post #9

I think the battling issue may be a hard one for AI to deal with alone, though not so much in terms of the main game. Remember, the main story is meant to be beatable by people who don't want to think very much and who don't really care about training their team beyond 'reach a certain level'. Hence in the main story, 'grind until you significantly outlevel the next opponent' would probably be an optimum strategy for…

Is the battle system much different than playing blackjack with your own deck? Imagine a world where someone can buy and trade towards a deck with 90% aces going up a person with 80% aces.

A pokemon can be one (or two) of a bunch of different types like "bug" or "rock" or "ghost," each of which comes with a particular set of types it's vulnerable to (2x damage taken) and another set of types it's resistant to (0.5x or 0 damage taken). So no one pokemon has an advantage over all the others, and there's no 2-3-4-...-J-Q-K-A strength ordering for types.

You can also freely substitute among your team of 6, though subbing replaces your attack for that turn. If you anticipate the opponent using an attack of a particular type, you can sub in something resistant to that attack.

In single-player/story mode, you never encounter an opponent at the maximum level, and the NPCs tend not to build type-diversified teams, so the player gets a huge advantage in most battles by just grinding a couple pokemon of the right type.

Re: Why Can a Machine Beat Mario but Not Pokemon?

#23
post #9

I think the battling issue may be a hard one for AI to deal with alone, though not so much in terms of the main game. Remember, the main story is meant to be beatable by people who don't want to think very much and who don't really care about training their team beyond 'reach a certain level'. Hence in the main story, 'grind until you significantly outlevel the next opponent' would probably be an optimum strategy for…

Is the battle system much different than playing blackjack with your own deck? Imagine a world where someone can buy and trade towards a deck with 90% aces going up a person with 80% aces.

Most people who battle at a high level play on a simulator where any legal Pokemon is available to everyone, or alternatively use tools to 'hack' whatever Pokemon they want into the game. Some of the most popular strategies use Pokemon/Move combinations that were only available through events 10+ years ago, but since it's possible to transfer those Pokemon forward to the latest games those moves are available to use.

The exception is official Nintendo events, but most serious competitors at those will have a network of breeder friends to produce flawless Pokemon for them to use.

Feel free to ask if you have any questions about the competitive Pokemon scene, I was very into battling on simulator for a number of years and have a pretty good knowledge of the scene.

Re: Why Can a Machine Beat Mario but Not Pokemon?

#24
post #5

The complexity of Pokemon is much lower than the author implies. It's not really an open world game. There are lots of choke points where your branching factor is limited drops down to two, continue forward to the next trainer or go back and regroup. There is no issue regrouping in Pokemon, you always end up stronger. There is also very little punishment for pushing fowards and failing, you lose half your money and m…

The AI can't always know if it's going closer to the next trainer if the next trainer is off-screen. There's also no visible counter of how many trainers you've defeated, only how many badges you have. If you're giving the AI knowledge of where and what a trainer is and how to get closer to one, why not give it knowledge of the map of the routes? Then your branching factor is binary: are you further along, or not?

That's not an AI beating Pokemon, that's an AI beating your decision tree.

In fact, if the AI knows what RNG it's on, it's deterministic. So all it needs is a script.

At one point in Gen 1 there are 4 gym leaders you can to get closer to. You can also go after one of two HMs. How can an AI determine success in that in a human timeframe?

Additionally, one failure mode is ending up with no money, a level 1 Rattata, and no pokeballs. The AI might not feel frustration, but its branching factor just grew again. And the branches have loops.

Edit: the crux of this is that it's not an AI (as described by Alan Turing) taking on Pokemon, it's ML. A general Pokemon-beating AI would need other tricks.

Re: Why Can a Machine Beat Mario but Not Pokemon?

#25
post #9

I think the battling issue may be a hard one for AI to deal with alone, though not so much in terms of the main game. Remember, the main story is meant to be beatable by people who don't want to think very much and who don't really care about training their team beyond 'reach a certain level'. Hence in the main story, 'grind until you significantly outlevel the next opponent' would probably be an optimum strategy for…

There have been at least two attempts (that I know of) to create a competitive (6v6 singles) battling AI, although they were a few years ago and relatively primitive by modern standards. I expect that the relatively limited official support for competitive play would make Pokemon less appealing to the types of institution doing AI research, so you're limited to what a handful of amateurs can do.

Re: Why Can a Machine Beat Mario but Not Pokemon?

#27
post #24
post #5

The complexity of Pokemon is much lower than the author implies. It's not really an open world game. There are lots of choke points where your branching factor is limited drops down to two, continue forward to the next trainer or go back and regroup. There is no issue regrouping in Pokemon, you always end up stronger. There is also very little punishment for pushing fowards and failing, you lose half your money and m…

The AI can't always know if it's going closer to the next trainer if the next trainer is off-screen. There's also no visible counter of how many trainers you've defeated, only how many badges you have. If you're giving the AI knowledge of where and what a trainer is and how to get closer to one, why not give it knowledge of the map of the routes? Then your branching factor is binary: are you further along, or not? Th…

The issue with this logic is that the AI is being held to a subtly higher standard than a human.

Consider this - how do _you_ know that there is a next trainer if it is off screen?

I'd guarantee you didn't figure that out from the context of the game, because then you'd have the same problem as the AI - it isn't data that is provided in the game.

Re: Why Can a Machine Beat Mario but Not Pokemon?

#28
post #9

I think the battling issue may be a hard one for AI to deal with alone, though not so much in terms of the main game. Remember, the main story is meant to be beatable by people who don't want to think very much and who don't really care about training their team beyond 'reach a certain level'. Hence in the main story, 'grind until you significantly outlevel the next opponent' would probably be an optimum strategy for…

In 2014, I wrote a minimax-based AI to play games on Pokemon Showdown. We adapted Showdown's battle simulator for our tree search. The hardest part was syncing the local simulator state with the actual game state - the battle state in Pokemon is both complex and partially observed. Bugs in this process could result in the AI using Protect twice because the state wasn't updated with the fact that it used Protect the previous turn.

The minimax AI was able to use tactics like Pain Split, Spikes, and Magic Guard.

Writeup: https://varunramesh.net/content/documents/cs221-final-report... GitHub: https://github.com/rameshvarun/showdownbot

Re: Why Can a Machine Beat Mario but Not Pokemon?

#29
post #27
post #24

Earlier quoted context omitted.

The AI can't always know if it's going closer to the next trainer if the next trainer is off-screen. There's also no visible counter of how many trainers you've defeated, only how many badges you have. If you're giving the AI knowledge of where and what a trainer is and how to get closer to one, why not give it knowledge of the map of the routes? Then your branching factor is binary: are you further along, or not? Th…

The issue with this logic is that the AI is being held to a subtly higher standard than a human. Consider this - how do _you_ know that there is a next trainer if it is off screen? I'd guarantee you didn't figure that out from the context of the game, because then you'd have the same problem as the AI - it isn't data that is provided in the game.

Because I can read and understand a context of a video game, a map, vision, etc.

So now it's reduced the problem to creating a general human AI. Good luck!

FWIW, a (ML) bot can beat Mario with just the x-value - what a human understands by viewing the screen.

Post reply on HN