Je weet dat je een nerd bent als je je gaat verdiepen in Pac-Man ghost behavior algorithms

Saturday 11 December 2010, 13:13:00 | software dev

[[image: donkeykong_barrel.png]] Recentelijk op aanraden van een collega de film/docu The King of Kong gekeken (niet verwarren met King Kong!). Erg vermakelijk, omdat ik ben opgegroeid in de tijd dat de classic arcade games ook hun hoogtij vierden. En leuk om te zien hoe de echte meesters het tegen elkaar uitvechten.

Een interessant gegeven uit de docu is dat veel spelletjes bugs bevatten die pas aan het licht kwamen door zo lang te spelen, dat bepaalde tellertjes fout gaan. Bijvoorbeeld een overflow door een level nummer dat niet meer in een byte past. In The King of Kong werd dat een kill screen genoemd, omdat het meestal inhield dat er iets gebeurde waardoor je niet meer verder kunt spelen.

Van de kill screen van Pac-Man was ik reeds op de hoogte (level 256: de rechter helft van het scherm is rotzooi en je kunt het veld niet meer uitspelen), maar in King of Kong werd met name Donkey Kong besproken. Die blijkt ook een kill screen te hebben: in stage 22 klopt er een timertje niet meer waardoor je binnen een paar seconden doodgaat zonder iets te kunnen doen. Je kan dus niet meer verder spelen dan deze stage.

Dat fascineerde me. Omdat ik in de jaren '80 zelf ook vrij veel assembly aan het hacken was op de C-64 is het voor mij interessant om te lezen over hoe dit soort games onder de motorkap in elkaar zitten. Dus kwam ik terecht op de site "The Pac-Man Dossier", waar bijna het hele spel uitgeplozen is. Hoofdstuk 5 gaat over de kill screen, en geeft zelfs aan hoe je dat nog een beetje kunt spelen om toch de laatste paar pilletjes op te eten, teneinde de Perfect Score (3.333.360 punten) te halen o_o

[[image: pacmanghosts.png]] Maar nog interessanter eigenlijk zijn de hoofdstukken 3 en 4, die gaan over het gedrag van de spookjes. Wat ik niet wist is dat elk van de 4 spookjes een eigen gedrag vertonen, dat soms verandert (b.v. als je een power-pill hebt opgegeten). En dat een paar simpele regels dat gedrag bepalen. Fascinerend om te zien wat de Namco programmeurs in 1980 in haardkoor Z-80 assembler al wisten te stoppen aan AI pathfinding logica ;-) Het blijkt echter dat één van de spookjes (Pinky) een foutje bevat en soms de verkeerde target tile kiest!

Als je daar dan verder op zoekt kom je al snel uit op de site van Don Hodges, waar hij -compleet met Z-80 assembler listings- de bug uitpluist en zelfs een bug-fix geeft ^_^

Er valt nog een hoop meer over te vertellen maar hier zijn een paar links die het nodige leesvoer verschaffen:

[[image PacMan-Maze-32742.jpg from www.freakingnews.com]]Screw you, ghosts!