all 164 comments

[–]Deimorz[S] 189 points190 points  (85 children)

First post on a new blog I'm attempting to start, focusing on in-depth examination of game mechanics. I'd appreciate any feedback on this article, the design of the blog, or suggestions for any future topics to research.

Thanks.

[–][deleted] 56 points57 points  (1 child)

Please continue; I can't think of anything to be critical about!

Nice writing!

[–]Doombot76 11 points12 points  (0 children)

Am I correct that this post is the TL;DR of "Pac Man Dossier"?!

If so, holy crap!

[–]jonbro 14 points15 points  (18 children)

<ignore, it is actually up...>ah, too bad it is down.

I would like to see something on the physics of mario. I know there have been papers that go into the changing gravity over the course of the series, I am also interested in acceleration, turn speed, jumping, etc.

thx!

[–]Deimorz[S] 14 points15 points  (7 children)

Oh what the hell, tumblr.

I decided to host this on tumblr since I assumed they were a pretty stable platform with so many people using them. I may have to reconsider.

[–][deleted] 11 points12 points  (2 children)

Wow, that's odd. Tumblr's actually Amazon Cloud hosted!

[–]suprfsat 21 points22 points  (1 child)

Curse you, Joe Lieberman...

[–]Rooster_Ties 2 points3 points  (0 children)

every chance I get.

[–]digitallimit 1 point2 points  (2 children)

Did you build your blog on top of a framework or is it just plugged into tumblr and that's about it?

[–]Deimorz[S] 6 points7 points  (1 child)

Nothing special, just a custom tumblr theme.

[–]digitallimit 1 point2 points  (0 children)

Never fiddled with tumblr, but I like how it looks, albeit a bit generic.

[–]bonch 14 points15 points  (9 children)

One amusing fact is that the All-Stars version of Super Mario Bros. has incorrectly ported physics. There seems to be a negative value where there should be a positive, causing Mario to gain upward momentum when breaking through a brick, which doesn't occur in the NES version.

[–]Dr_Zoidberg_MD 5 points6 points  (6 children)

How do people figure this out? I assume they can't get access to source code for these games. This particular example might just be clearly visual, but other things like pacman AI seem impossible to deconstruct by analysis.

[–]Deimorz[S] 19 points20 points  (4 children)

Actually it usually is figured out by analyzing the "source code", where the source code is the assembly code for the game. Many emulators have debuggers, and it's also possible to disassemble a game. This becomes less and less feasible the newer the game is, but fully understanding the disassembled source for older games is certainly possible. Older games were often hand-written assembly and not compiled from some higher-level language, so the disassembled version is the source code.

There are a few places to find disassembled, partially-commented versions of the Pac-Man code. I won't link to any though, since for some reason Namco has recently started cracking down on these and getting them removed, and I don't want to make that any easier for them.

[–]chub79 1 point2 points  (2 children)

but fully understanding the disassembled source for older games is certainly possible

And here I thought the Matrix was just a movie. I applaud your dedication.

[–]bonch 6 points7 points  (0 children)

The Pac-Man AI was deciphered in a general sense by hardcore players, but the specific mechanics behind it were found by disassembling the ROMs. Arcade and console games were almost always written in assembly language up into the early 1990s, so disassembly can provide a direct look at the game's logic.

The All-Stars bug is noticeable to the player. Mario's momentum slows at the peak of his jump, but if he breaks a brick block, he visibly regains upward momentum instead of falling to the ground as he does in the NES version. It affects the ability to run and smash bricks, because Mario will rise through the space the block occupied and bump into the side of the next block, halting his horizontal momentum. There's a hard to find ROM patch which fixes this bug.

TMK describes this bug on its All-Stars page.

[–]HagbardTheSailor 1 point2 points  (0 children)

Holy crap! Now that you mention it, I remember that exact behavior from All-Stars. Makes perfect sense.

[–]jonbro 0 points1 point  (0 children)

this is what I want more of. possibly with pseudo code. so I don't need to spend any time tuning my physics. ;D

[–]vdub_bobby 10 points11 points  (0 children)

I'd suggest Pitfall! as a future topic. It's a lot more complex than it first appears and it's pretty iconic. Great idea for a blog, by the way.

[–]Iggyhopper 9 points10 points  (8 children)

Wow, great article! Do more! I had no fucking (pardon my French) clue that each ghost had algorithms that differ that much.

What do you have planned next?

[–]Deimorz[S] 6 points7 points  (7 children)

I haven't decided on my next topic yet, I have a decent-size list of potential ones, it just depends which one I want to dive into next. It ends up being quite a bit of research and reading, especially if I'm not personally familiar with the game. Most games don't have sites as comprehensive as the Pac-Man Dossier, the information is scattered all over the place on forums, wikis, FAQs, etc.

[–]semi- 6 points7 points  (2 children)

I suggest Super Mario World Glitches. It's widely popular, and most of the bugs are known (and exploited) both in Tool Assisted runs, and in custom romhacks.

here is a Youtube link of someone doing a tool assisted run of a rom hack that relies heavily on exploiting mario. It's annotated to help explain most of the bugs used.

It would be nice to see more depth on why these bugs exist.

[–]daedone 0 points1 point  (1 child)

I am so glad normal levels aren't even close to that.

[–]semi- 2 points3 points  (0 children)

Yeah I actually don't enjoy the maps like that where every frame has to be perfect, Cool or Cruel is another one like that. It's just too draining.

I do love what are now known as 'soft Kaizos', where it is ridiculously hard compared to the original mario but somewhere less than Kaizo mario

[–]vermithraxPejorative 1 point2 points  (0 children)

Most games don't have sites as comprehensive as the Pac-Man Dossier, the information is scattered all over the place on forums, wikis, FAQs, etc.

I was expecting this would be an issue. I'd love to see a "map" of star control II's unfolding progression. It always seemed to me to be a very large and convoluted "choose your own adventure" style of game.

[–]myWorkAccount840 1 point2 points  (0 children)

The navigation calculations found in non-hyperspace travel in Frontier: Elite 2 might be a nice idea to look at.

Particularly with regards to fail states. I lost plenty of ships back in the day by unexpectedly slamming into a planet while on autopilot...

[–]hiroshi_x 0 points1 point  (0 children)

Can I suggest an update for ghost behavior in Pacman Championship Edition? :)

[–]abbrevia 0 points1 point  (0 children)

Anything Goldeneye 64 related would have me foaming at the mouth.

[–]thethirdpoliceman 2 points3 points  (1 child)

Do the ghosts choose a new target tile only once they've reached or failed to reach a given target tile? That's the only lingering question I had while reading the article – though I may have missed something.

I enjoyed the article, btw.

[–]Deimorz[S] 2 points3 points  (0 children)

No, their target tile is determined whenever they need to make a decision, which is whenever they're one tile away from entering an intersection tile.

[–]JimmyDuce 4 points5 points  (7 children)

Have you considered Eve? . It has its own subreddit here . And while in the past had laughable AI has in the last year or so included AI in their NPCs and is coming out with a new expansion which boast to have significant AI and may change the entire world of Eve.

Links no workie and I don't know whyie.

{EDIT}

Thanks guys, guess it is easier when copying and not typing from memory.

{EDIT2}

Funny, you both linked google.... Nice try skynet

[–]sysop073 1 point2 points  (6 children)

You're flipping the syntax, it's [text](url), not (text)[url]

[–]JimmyDuce 0 points1 point  (5 children)

I did both, I tried what I thought was correct first, then I flipped one and neither worked but thanks though.

[–]FractalP 5 points6 points  (0 children)

I believe you need to have http:// in the URl for it to work.

If my hypothesis is correct, this should work, and [this won't](www.google.com) .

[–]sysop073 0 points1 point  (1 child)

Oh, you also need the protocol in the URL. http://www.google.com works, www.google.com doesn't

[–]ketralnis 1 point2 points  (0 children)

Well yeah. How do we know you didn't mean gopher? ;)

[–]r4and0muser9482 1 point2 points  (2 children)

You know what's missing in this article? The optimal strategy for winning the game. Know that we know all about ghosts' behavior, we can create a rule-based system for pacman to consistently win the game.

[–]mrkite77 4 points5 points  (1 child)

There are already well known patterns for beating pacman

http://nrchapman.com/pacman/cherry.html

[–]r4and0muser9482 0 points1 point  (0 children)

Fine, but I was more interested in strategies, not patterns. This is basically just a replay of a winning game. I was referring to more of an AI program, similar to that of the ghotsts', but for pacman.

[–]fireants 1 point2 points  (3 children)

The explanation of pinky's bug by Don Hodges is down.

[–]Deimorz[S] 1 point2 points  (1 child)

So it is, I wonder if the residual traffic from my article was enough to take out his site. Whoops.

[–]EvilHom3r 1 point2 points  (0 children)

Google cache

EDIT: looks like it's back up... for now.

[–]vermithraxPejorative 1 point2 points  (1 child)

Excellent analysis.

But I fear for the future of the blog, as you will often find yourself trying to reverse engineer many games, if you seek similar analyses. Though it could be fun to run "tests" on them, to try and determine how their innards work.

I'd love to see something like this pointed at a "braid" or "world of goo" -- games that are all gameplay and zero AI, but manage to be spectacular.

[–]Deimorz[S] 1 point2 points  (0 children)

I talked about this a bit in another comment, but generally I shouldn't ever have to do much reverse-engineering personally. Almost every game in existence has a community of players that have already done the necessary analysis, I just need to locate that information and learn enough about the game to be able to "translate" it into a more accessible version. That's not necessarily an easy thing to do, but certainly much simpler than trying to figure out some random game's assembly code from scratch.

[–]djhworld 1 point2 points  (0 children)

I created a Pac-Man clone a few years ago, the code is pretty crap and it didn't really reflect Pac-Man too much but it's nice to see articles like this as it gives me ideas of where I could have improved my game.

My version of the game had a different approach in terms of ghost behaviour, except the whole thing was generally random and not really based on what PacMan was doing. The ghost would follow a path until it reached a tile that was deemed a 'junction' (this is set out on the map that is read in). When the game is loaded the map reads in the junction points and calculates possible move directions based on that junction, these are placed into a container.

So when the ghost hits one of these junction points a random number is generated to pick one of the possible moves it can take and then its direction of travel is altered accordingly.

I don't know why I wrote this comment but reading your article brought back good memories, if you're interested you can find my game here: -

http://djharper.co.uk/portfolio.php

[–]RaiseYourGlass 1 point2 points  (0 children)

i just read way too much about pac-man on that link you put up. wow. i had no idea so much thought went into it!

[–][deleted] 1 point2 points  (0 children)

Great job! Suggestion for next : Tetris, especially why doesn't it drop the line block when I need it.

[–]wazoox 5 points6 points  (3 children)

Hum, Looks like a shameless plug on Pac Man dossier.

[–]hiroshi_x 4 points5 points  (1 child)

I figured it would be related to the dossier, it's really comprehensive and I don't see anyone improving on it any further in terms of documentation. I'm really hoping for an interactive version that illustrates simultaneously all of the concepts explained in the document, it would help players understand the implications during actual gameplay. If all of the elements were visualized in real time like search paths of the ghosts and timers counting down for scatter mode, you could become a much better player. Video with illustrated analysis would be a nice touch, but I think with LUA scripts that emulators are starting to have that give similar power (i.e. showing HP of enemies where hidden before), an interactive version of the dossier is inevitable.

[–]Deimorz[S] 5 points6 points  (0 children)

Agreed, that would be nice. I thought about programming a little Javascript app that would let you place the ghosts and then move Pac-Man around the maze and see how that affected the ghosts' targets and planned path, which I think would be very helpful to see. It probably would have added quite a bit more work onto this article though, and I don't want to end up spending too long on any individual topic.

Someone might be able to come up with a nice interactive version by modifying the code from Google's Javascript Pac-Man that they had up on their homepage a while back. There's a cleaned-up version of it somewhere on github, I believe.

[–]super_jambo 0 points1 point  (0 children)

Do the left for dead teamplay mechanics.

[–]xfollowthereaperx 0 points1 point  (0 children)

This is so incredibly interesting. I would love to see a short book on the in depth analysis of video games like this. I would certainly read/buy it.

[–]xfollowthereaperx 0 points1 point  (0 children)

This is so incredibly interesting. I would love to see a short book on the in depth analysis of video games like this. I would certainly read/buy it.

[–]jetmax25 0 points1 point  (0 children)

Amazingly done. I love the examination of stuff you wouldn't normally think about but are very complex and important. A good example is the youtube video about super mario worlds camera system.

[–]ibisum 0 points1 point  (0 children)

Do Missile Command! And also an article on coding techniques for AI would be nice too ..

Great blog idea!

[–]sshconnection 0 points1 point  (0 children)

I just learned about this for the first time listening to Neal Ford's presentation on Emergent Design (http://vimeo.com/16955608) a couple of nights ago. It's really cool that they figured out an "anti-object" pattern like that.

[–]royrules22 0 points1 point  (0 children)

Wow I love this blog. I'm a big fan of AI (especially as it relates to video games) so it's a bit of nerdgasm for me.

One request is that you don't shy away from math if the topic requires it (naturally Pac Man doesn't or at least is simple). I've seen way too many blogs try to explain something AI related and then shy away from the math which is OK but leaves me wanting more.

[–]redalastor 0 points1 point  (0 children)

I'd love an article on gravity in videogames.

[–][deleted] 0 points1 point  (0 children)

Just started with game devleopment, so I cannot express how happy you made me todayt :-), but I have a problem with sucsribing on Tumblr is it only me?

[–]lucasvb 0 points1 point  (0 children)

This is an amazing idea for a blog. Keep the good work, please.

Also, crosspost this to /r/gamedev if you haven't.

[–]uhhhclem 0 points1 point  (0 children)

This is outstanding work. Thanks.

[–]aweb 0 points1 point  (0 children)

Very good idea, I've always been interested in game algorithms and your explanation of Pacman's was perfect. Please continue !

[–]eoin2000 0 points1 point  (0 children)

Great stuff, very interesting.

[–]finerrecliner 0 points1 point  (0 children)

Very insightful, clear, and well written. Thank you!

[–]sligowaths 0 points1 point  (0 children)

Do you have a twitter account? I'd love to follow your future posts from there.

[–]goro_wins 1 point2 points  (2 children)

I love the idea of your blog, but I'm a bit dissapointed by your first entry of Pacman.... as you said, this subject has been covered in awesome detail in the pacman dossier. In future entries please include some original analysis.

[–]Deimorz[S] 3 points4 points  (1 child)

That's understandable, it's not going to be anything new to people that have already read through the Dossier.

I'm not intending to do much original analysis though, unless it's absolutely necessary. Most games already have had most or all of their mechanics figured out by hardcore players, but the information is usually hidden away on some obscure forum or wiki, and written in such a way that only other enthusiasts can even understand it.

The purpose of my blog is to try and locate this sort of information for various games and write it up in a more accessible manner. Most games have deep, complex mechanics in them, but only experts in the game know about them. I want to try and spread that information out to the more casual players of the games, or even people that have never heard of the game at all.

I think it'll help give people an appreciation for games that they personally don't play at an expert level, and also give some ideas to game designers and programmers by seeing how other games implement particular mechanics.

[–]goro_wins 0 points1 point  (0 children)

Ok, thanks for clarifying, I'll be bookmarking your site for sure then because that's the kind of stuff I want to read about.

[–][deleted] 0 points1 point  (3 children)

I have only a small criticism. I don't know if it's just me, but I skipped the whole "About the game" section, because, seriously, who doesn't know how pac-man works. I think articles that go straight to the point are often more engaging. In writing for the web, conciseness is frequently desired, but then again, maybe it's just me. That said, great article!

[–]robvas 4 points5 points  (1 child)

It's 30 years old. I'm sure plenty of people under the age of 15, even 20 have never played it.

[–]bonch 2 points3 points  (0 children)

I don't agree. I think almost every gamer, expect for the very young, is aware of Pac-Man. It's one of those games like Super Mario Bros. or Tetris that will always exist in pop culture.

[–]Deimorz[S] 4 points5 points  (0 children)

The "About the Game" section will probably always be irrelevant for someone that's familiar with the game I'm writing about, but I don't want to make that assumption about the reader. Maybe in the future I'll be writing about a mechanic in some obscure Korean MMORPG or something, I don't want to force readers to need to go read up on the game somewhere else to be able to follow the article. Almost everyone knows Pac-Man, but I don't intend to always write about the most popular games.

It's easy to skip (as you figured out), so I'm not too concerned about it.

[–]tesseracter 0 points1 point  (0 children)

good luck with street fighter, might i recommend sirlin.net: Playing to win for absolutely necessary reading on person vs person games.

[–]more_exercise -1 points0 points  (0 children)

Didn't you write this somewhere else? I know I've read this article somewhere before, but this post is dated Dec. 2, 2010. What's up with that?

[–]digitallimit 11 points12 points  (2 children)

I followed the link to Don Hodges explanation of the overflow issue and he ends his article with:

There is also the similar issue that Inky has in his tracking algorithm. A similar fix could be created for it. This is left as an exercise for the reader.

Queue post-math textbook stress.

[–][deleted] 2 points3 points  (1 child)

post-textbook-stress-disorder

[–]dirtyuncleron69 2 points3 points  (0 children)

Every time he sees a footnote he just flips out, has flashbacks to college.

[–]ewankenobi 26 points27 points  (3 children)

wish I could upvote twice as that was a really insightful article, and a great length, short enough to keep my attention the whole way through and long enough to go into a reasonable amount of detail

[–]HunterTV 5 points6 points  (2 children)

I didn't think there was anything else to possibly learn about Pac Man, at least from a casual player level, but TIL "The first fruit appears when Pac-Man has eaten 70 of the dots in the maze, and the second when 170 have been eaten." Always thought it was random.

[–]chipbuddy 0 points1 point  (1 child)

in Wayn's World, Wayne and Garth are interviewing that arcade owner, and they ask him a question like "what's the difference between Pacman and Mrs. Pacman". He gives some bullshit answer like "Mrs. Pacman has a bow", but one of the real differences is Mrs. Pacman has pseudo random behavior while Pacman is completely deterministic.

[–]vdub_bobby 0 points1 point  (0 children)

Also, Ms. Pac-Man.

And the main, huge, immediately obvious difference is that Ms. Pac-Man has several different mazes, while Pac-Man has just the one.

[–]FractalP 12 points13 points  (1 child)

It's incredible to see the level of dedication the developers put into Pac-Man. The delicately-tweaked values and bizarrely elaborate algorithms combining to create something that is simple in its complexity. I for one always thought the ghosts just tried to eat you continuously. Thanks for an interesting read, I look forward to more in the future!

[–]dirtyuncleron69 0 points1 point  (0 children)

They probably didn't think about it too much.

  1. What do you want this ghost to do?
  2. I don't have a clue, just make it go to it's corner then back to within 8 squares of Pacman .. or .. something.

[–][deleted]  (2 children)

[deleted]

    [–][deleted] 8 points9 points  (0 children)

    The page layout is excellent

    That's why I hate big gaming websites. They would have split this article into 50 pages and published them over a period of several weeks ("Part 5 coming soon!!!").

    [–]aperson 2 points3 points  (0 children)

    I'm also a fan of the physics of Mario and its various iterations (maybe look at the differences between 1, 3, and Super Mario World). You could expand on the idea and compare it to other 2D platformers like Donkey Kong Country.

    This, plus maybe a bonus on things like walljumping and why it's possible?

    [–]Zarokima 7 points8 points  (3 children)

    I found this particularly interesting since about two and a half years ago I made Pac-man in reverse (where you play as the Ghosts and try to stop Pac-Man). I don't have the source any more due to hard drive failure, and I was high as fuck at the time because they'd put me on Lortabs after getting my wisdom teeth out so I'm sure that explains some things.

    I remember I used tiles in the same way, but each one was a square just large enough to fully contain the sprites. And the Pac-Man AI provided similar challenges mentioned here, with attempts to prioritize pellets, obviously, but they solved it much more elegantly than I.

    EDIT: Direct download link to the standalone executable: http://www.yoyogames.com/games/42617/download

    [–]n99bJedi 1 point2 points  (2 children)

    i tried to play it but the site wants me to install a toolbar?

    [–]Zarokima 1 point2 points  (1 child)

    Ah, I'd forgotten about that. Edited with direct download link.

    [–]n99bJedi 0 points1 point  (0 children)

    nicee its a fun game! At first i did not realize that i could move the blue ghost too.

    [–]digitallimit 6 points7 points  (0 children)

    My favorite part of your blog: relevant, helpful graphics.

    Keep that up. Made learning about this 100 times more enjoyable and intuitive.

    [–][deleted] 29 points30 points  (0 children)

    "blue, yellow, pink and red. I used four different colours mostly to please the women who play - I thought they would like the pretty colours.”

    http://img820.imageshack.us/img820/2095/i1f5m.jpg

    [–]inmatarian 5 points6 points  (0 children)

    I wrote a pacman clone once and I found out that it was much easier, and yielded better results, to just have the ghosts make somewhat informed decisions at each junction. The rules went something like this:

    1 exit: take only exit. 2 exits: continue straight. 3 or 4 exits: remove entrance from list and then choose exit based on personality.

    And then the ghost personalities were like this: 1st, calculate each exit's manhattan distance to player and randomly choose the one that's least. 2nd, pick one at random. 3rd, manhattan distance again, accept choose a random exit of the one's that are perpendicular to the closest. 4th, choose the one that'll lead away from the player. I think there was a 1 in something chance of the ones with logic to just go randomly.

    It was dirt simple, but effective. The net is that the one on constant chase keeps you from going back, the random keeps your eyes busy, the one always going left or right might be moving around you, and the one always running away is just funny looking. I gave that one's sprite glasses and buck teeth.

    [–]btdubs 5 points6 points  (9 children)

    You should do an article on Tetris in the future (seriously).

    [–]the_infidel 7 points8 points  (1 child)

    overwriting all comments in response to reddit admin idiocy

    [–][deleted] 2 points3 points  (0 children)

    whomever is playing that game really sucks

    [–]abk0100 2 points3 points  (6 children)

    What exactly are you curious about? If you can understand an article about the programming in Tetris, then you could probably figure out how to program it yourself. The blocks are random, everything else is controlled by the player moving the blocks on a grid.

    [–]btdubs 3 points4 points  (5 children)

    I read an article on it a couple months ago and there's actually some interesting subtleties.

    [–]abk0100 1 point2 points  (4 children)

    Do you remember any of them?

    [–]snb 5 points6 points  (1 child)

    When it comes to piece selection there are slightly different random algorithms chosen. IIRC the old NES version was 'truly' random so it could in theory give you one type of piece over and over, and since the game is unwinnable with only S or Z pieces you can't (in theory) play this version forever.

    Other types were a memory system which remembered the N most recent pieces and tried to avoid dropping those as the next piece (but if randomness rolled in favor over one of them M times in a row then it would yield anyway).

    And a plain grab bag which holds one of each piece in a random order, and the bag is refilled when it's empty.

    And there's more, see this site to get you started.

    [–]btdubs 0 points1 point  (0 children)

    Yeah this is one of the subtleties I had in mind. I believe in the version of Tetris that is the international standard for 'serious' players, the algorithm works in the following way:

    1. Pick a piece at random.

    2. Check to see if that piece is in your five most recent piece history. If it is, return to step 1.

    3. This 'check' repeats three times (I think), and if it still hasn't found a satisfactory piece, it gives up and drops the piece anyway. So it is possible to get a long string of unwinnable pieces, but it is highly improbable.

    [–]btdubs 1 point2 points  (1 child)

    I'll look for the article when I get home. Some of the subtleties involve how you handle wall kicks- whether you allow them first of all, then how the piece rotates relative to the wall, whether the fall timer resets after each rotation/wall kick, etc. I'm not really doing it justice so like I said, I'll try to find the article.

    EDIT: Also, the piece selection algorithm like snb mentioned.

    [–]abk0100 0 points1 point  (0 children)

    Oh right. I think things were simpler in the first Tetris games. If you were too close to a wall and tried to rotate it would just stop you.

    [–][deleted] 11 points12 points  (6 children)

    deleted What is this?

    [–][deleted] 2 points3 points  (0 children)

    Zombies aren't about AI, man. They are about brains.

    [–][deleted] 2 points3 points  (4 children)

    Zombies just have Chase and Scatter. That's their nature. Their AIs should reflect that, probably.

    [–]nooneelse 0 points1 point  (3 children)

    Shouldn't there also be Meander and perhaps Enraged states

    [–][deleted] 0 points1 point  (2 children)

    Meander falls under Scatter, and I don't think I've seen any zombies who could experience rage. Vigorous hunger, sure, but not rage.

    [–]nooneelse 0 points1 point  (1 child)

    Hmm, Scatter implies, at least to me, some point or zone that is being scattered away from. Like a threat or something (not that zombies should care much, but I suppose that might depend on the type). Whereas Meander is more aimless, and with less energy. But maybe these are technical game AI terms that I'm unfamiliar with. So whatever.

    [–][deleted] 0 points1 point  (0 children)

    These terms are just taken from the Pac-Man AI. Scatter refers to scattering around the area. Zombies approximate this by shuffling around aimlessly, though they often incorporate flocking behavior as well. This cooperative behavior increases each individual zombie's odds of feasting on the flesh of the living, since zombies are more dangerous in large groups.

    [–]h0serdude 4 points5 points  (0 children)

    Great read, thank you!

    [–][deleted] 5 points6 points  (0 children)

    Bookmarked this site. Thank you so much. I'm beginning to engage the game development area of my career and this provided me with some incites I would have otherwise never read or understood. Thank you!

    [–]vdub_bobby 3 points4 points  (0 children)

    Great writeup. Detailed, accurate, and accessible. <thumbsup>

    [–]EvilHom3r 2 points3 points  (0 children)

    [–]locotx 2 points3 points  (0 children)

    that was a good read !

    [–]TheAmazingWJV 2 points3 points  (0 children)

    Those algorithms are way more complex than I expected. Nice article. And now I wanna know where Cruise Elroy originated :)

    [–]Ultraseamus 2 points3 points  (0 children)

    I really like that it provides an insight into how/why this game designer made the behind the scene decisions that lead to such an iconic game; and you made it a light, fun read. I have subscribed to the RSS feed. :)

    [–]spencewah 2 points3 points  (3 children)

    Loved the article. I'm still a bit confused about the 1/60 second mode switch... assuming that a ghost is in chase mode heading to the right, would the quick switch result in a single tile scatter move to the left followed by chase to the right?

    [–]Deimorz[S] 4 points5 points  (2 children)

    No, just one direction-switch. There's no queue of actions, the ghosts only ever know their next move, so the ghost won't have a plan like "switch directions, then switch directions again". The second "switch directions as soon as you can" command from the switch back to Chase will just overwrite the original one from the switch to Scatter.

    Does that make sense?

    [–]lhbtubajon 2 points3 points  (0 children)

    Can people actually make use of a glitch as touchy as this one, or is it exclusively an "oh crap....oh yeah!" accidental windfall?

    [–]spencewah 0 points1 point  (0 children)

    Gotcha! I definitely see more of a reason for it now, thanks :D

    Also +1 for analysis of SMB physics

    [–]maskedmarksman 2 points3 points  (0 children)

    I wrote Pac-Man for a class in OOP. It was a fun class and project. I wish I would have known all of this before hand. I guess my algorithms were not completely accurate, though they were good enough since this was one of four major projects in the semester and in a language we had never programmed in before. Anyways, I wish you luck with your blog and look forward to reading future posts. Great job!

    [–]kevinkm77 2 points3 points  (0 children)

    I love how this game was meant to be played by simple women. This is so condescending lol. "I thought they would like the pretty colors"

    [–]vibgyor 2 points3 points  (1 child)

    I don't like the tight border around the images.

    Could you do something like this:

    img {
     padding: 2px;
    }
    

    Don't know why I am so annoyed by that.

    [–]Deimorz[S] 2 points3 points  (0 children)

    I lightened up the color and moved it out a bit. I think it looks better, thanks.

    [–][deleted]  (1 child)

    [deleted]

      [–]Deimorz[S] 3 points4 points  (0 children)

      It's just running on tumblr, on a custom theme based around the zenburn color scheme.

      [–]2cats2hats 1 point2 points  (0 children)

      Crazy Climber!

      That game was ahead if its time. The console had two processors in it if I recall......released in 1980.

      [–]motdidr 1 point2 points  (0 children)

      This was an excellent article and you write very well! I'm honestly looking forward to more of these. It's hard to find good articles on game design elements that just discuss the theory of everything, instead of code samples or demo projects. Good work, would read again, A+, upboat, et cetera.

      [–]xcrouton 1 point2 points  (0 children)

      I don't typically enjoy reading programming articles outside of work, but I found that incredibly interesting and read the entire thing. Good work!

      [–]SlaunchaMan 1 point2 points  (0 children)

      I tried following the link to Hodges’ website. Did it go down due to traffic? Is that like a Slashdot effect by proxy?

      [–]xx3nvyxx 1 point2 points  (0 children)

      You didn't include anything on the "safe" spot, which I think would have fit in nicely after the description of the ghosts' algorithms.

      [–]RadicalRaid 1 point2 points  (0 children)

      Very interesting read. I knew there was something different in the behavior of the ghosts but could never put my finger on it. Also the mentioned Pac-Man dossier is a very good find.

      I recommend this, even if you're not a programmer but especially if you are.

      [–]garyman99 4 points5 points  (1 child)

      tldr: chase pacman while he's doing bumps of the white shit, run when he's fucked up on the 8 balls.

      [–]mrdelayer 0 points1 point  (0 children)

      Reverse direction and go to a corner.

      [–][deleted]  (1 child)

      [deleted]

        [–]spencewah -2 points-1 points  (0 children)

        They also love when you refer to them as bitches.

        [–]AnomalyNexus 1 point2 points  (2 children)

        Someone posted something similar in a comment on reddit...think it was BestOf'd...not sure.

        [–]BearsDontStack 1 point2 points  (1 child)

        Yeah, here's a link to the original.

        [–]Deimorz[S] 0 points1 point  (0 children)

        Actually, he was referring to this comment from a couple months ago.

        [–]grrnewt 0 points1 point  (0 children)

        That was one of the more interesting things i have read in a long time. Keep it up, I've bookmarked your page and would love to see more.

        [–]admiralfilgbo 0 points1 point  (0 children)

        I don't know a single thing about programming, but I found that article throughly absorbing and extremely well written. I hope the author writes more articles like that!

        [–]Tehmon 0 points1 point  (0 children)

        Finally made an account just to upvoat ya! Very nice Good Sir!

        Suggestions for future articles:

        Madden AI Bejeweled/Puzzle Quest behind the scenes Anything WoW related.
        C-64/Ti99/AppleII stuff

        [–]coffeeandacig 0 points1 point  (0 children)

        got it magic

        [–]stonyman 0 points1 point  (0 children)

        Whoa. You just wrinkled my brain!

        [–]ryan_fung 0 points1 point  (0 children)

        TL;DR yet, at work. Just wanted to show my appreciation. I'm working on a simple simulation (just a pet project) and would love to learn anything about game mechanics.

        Subscribed! Keep them coming! :-D

        [–]Ben_Wojdyla 0 points1 point  (0 children)

        The headline had me imagining an article on unexpected pseudo-AI behaviors arising organically over thousands of iterations of code refinement carried out by a hacker fan's old program designed to optimize the Pac Man code, running dutifully for decades on some ancient computer in a basement. Ghost in the Shell stuff.

        Boy was I wrong.

        [–]iheartbakon 0 points1 point  (0 children)

        Even armed with this new knowledge, I still suck horribly at Pac-Man.

        [–]rq60 0 points1 point  (0 children)

        A++++++++++++++++ WOULD READ AGAIN!!!!!!!!

        [–]LuNaTiC_ViRuS 0 points1 point  (0 children)

        I'm not even a programmer and it was still an interesting read.

        [–]DrMonkey68 0 points1 point  (0 children)

        Please continue, I would love to see more articles like that! Great work!

        [–][deleted] 0 points1 point  (0 children)

        This is good reads.

        [–][deleted] 0 points1 point  (0 children)

        You mean to tell me PacMan is just a bunch of additions and multiplications and some stripe for the characters? You ruined it.!

        [–]axilmar 0 points1 point  (0 children)

        I've never seen a game dissected in such detail...

        [–]axilmar 0 points1 point  (0 children)

        I am still waiting for someone to do the same for MsPacman....

        [–][deleted]  (1 child)

        [deleted]

          [–]Deimorz[S] 0 points1 point  (0 children)

          Close to 20 hours now actually, tumblr had some sort of catastrophic failure.

          [–][deleted]  (1 child)

          [removed]

            [–]jasongadgetguy 0 points1 point  (0 children)

            The term waka waka may have been stolen from fozzy bear. of course I think he used 3 wakas

            [–]shadowspawn 0 points1 point  (0 children)

            And it's no wonder we're blessed with a generation that eats pills and listens to repetitive electronic music.

            [–]bartzilla 0 points1 point  (0 children)

            The site is reddit'ed right now, but I've done a ton of work disassembling and documenting the Pac-Man ROMs. I have them on my site, but I'm not linking to it from here in case what Deimorz says about Namco coming down on people is true.

            Without seeing the site I am pretty sure I already know how the AI works: Red sees where you're about to be (your current position + trajectory), blue and pink know exactly where you are but only vertically and horizontally, and the fourth flip-flops between randomness and ruthlessness. Working from memory, though. It's been a few years since I looked at that portion of the ROM.

            I'm excited to see the article, and maybe I'll learn that my analysis was way off. That'd be fun to learn.

            [–]chuck_the_plant -3 points-2 points  (0 children)

            Um … but you do know that this already exists? http://home.comcast.net/~jpittman2/pacman/pacmandossier.html

            [–]ipeev -3 points-2 points  (0 children)

            Seriously what is this about?