Pac-Man's Ghost Behavior Algorithms 194
An anonymous reader writes "This article has a very interesting description of the algorithms behind the ghosts in Pac-Man. I had no idea about most of this information, but that's probably because it's difficult to study the ghosts when I die every 30 seconds. Quoting: 'The ghosts are always in one of three possible modes: Chase, Scatter, or Frightened. The "normal" mode with the ghosts pursuing Pac-Man is Chase, and this is the one that they spend most of their time in. While in Chase mode, all of the ghosts use Pac-Man's position as a factor in selecting their target tile, though it is more significant to some ghosts than others. In Scatter mode, each ghost has a fixed target tile, each of which is located just outside a different corner of the maze. This causes the four ghosts to disperse to the corners whenever they are in this mode. Frightened mode is unique because the ghosts do not have a specific target tile while in this mode. Instead, they pseudorandomly decide which turns to make at every intersection.'"
Programming lesson (Score:5, Insightful)
Take note CS professors: writing a Pac Man ghost algorithm would be an awesome exercise.
Re:Always fascinating. (Score:5, Insightful)
A 30-year-old game featured AI more sophisticated than what you'll find in most games today.
I'm not sure "deciding whether to turn right or left at the fork in a 2D maze" can really compare to the ridiculously complex AI behavior in many games today. Team combat, terrain navigation, etc. Advance-to-cover squad-based tactical combat is hardly If PAC_MAN_INVINCIBLE == FALSE; Chase().
Re:Always fascinating. (Score:5, Insightful)
A 30-year-old game featured AI more sophisticated than what you'll find in most games today.
In defense of games today, things where a whole lot easier when you were on a strictly 2D, non-altering, fully 100% visible plane, and where an AI that knows your exact position regardless of things like noise and line of sight wasn't considered unfair, and where the only abilities an AI had to worry about were "Move My XY coordinates to = Player XY Coordinates" -
Well I think you're getting the picture...
Re:Always fascinating. (Score:5, Insightful)
More sophisticated?
They are constrainted by the paths and when they have to make a choice they pick the one that gives the shortest straight line distance to their destination.
In other words they are retarded, which is good because there are four of them and they'd box the player in in about 10 seconds if they weren't.
Re:Always fascinating. (Score:4, Insightful)
>Well, the behavior is complex in today's games, but the algorithms are not.
Study up on the path-finding, grouping, and line-of-sight algorithms in "today's games", before you lodge this kind of insult at their developers please.
Re:Programming lesson (Score:1, Insightful)
Listen, if you are arguing it is equal because women can hurt your feelings, shut up, you are a loser.
Don't like it, move out. Not quite the same as a guy beating the crap out of a woman and threatening her on what will happen if she tries to leave.
Re:Always fascinating. (Score:5, Insightful)
In other words they are retarded, which is good because there are four of them and they'd box the player in in about 10 seconds if they weren't.
Yes. There's this persistent myth that smart game AI is hard to build. It's not. A really smart, impossible-to-beat game AI is easy to build (for most types of games). What's hard to build is a sort-of-smart-but-often-fallible AI that's just competent enough that it makes you feel like you're accomplishing something worthwhile when you finally beat it. For extra bonus hardness points you can try building an AI that makes the same kind of sub-optimal choices that a human would make so that it feels "alive". That's hard to do.
Game AIs have all kinds of advantages that make it easy (again, for most types of games) to build them to be unbeatable. They have always have instant reaction time, they can consider a large number of disparate data streams simultaneously, they always have perfect knowledge of their environment, they can have vast libraries of pre-computed decision trees, and their accuracy in moving, aiming, etc is limited only by the precision of floating-point data types. (An aside: the reason why real-world robotics is so hard is largely because real-world robots have really terrible knowledge of their environment, unlike game AIs.) The trick to writing a top-quality game AI is to figure out how to degrade and handicap all of those advantages in ways that leave them beatable while not leaving them looking stupid.
Re:Programming lesson (Score:3, Insightful)
If someone says "stop being an asshole" and your conclusion is "but then I will have nothing to say", what the hell is wrong with you?
I am continually amazed with what people defend this behavior with. You don't need to be devoid of humor or steeped in forced neutrality, you don't need to stop speaking your mind or fear that you can't have an open and honest discussion. You just need to stop being a dick. (Which would probably help any arguments you're trying to make in any case.)
("You" doesn't refer to parent or grandparent; it's just a placeholder. "One" doesn't sound good.)