Pitfall – «Counting cycles, counting bytes.»

David Crane under Classic Gaming Expo
David Crane under Classic Gaming Expo

Forleden dag kom jeg over et foredrag av David Crane på en eller annen videotjeneste kalt YouTube. Foredraget ble holdt på «Game Developers Conference» og omhandlet hvordan Crane utviklet spillet Pitfall. Dette inspirerte meg så sterkt at jeg måtte ha et segment om Pitall i episode 68, samt blogge litt her.

David Crane er så heldig at han har fått gleden av å jobbe med spill i 34 år. Karrieren som programmerer startet  i Atari på den tiden hvor Nolan Bushnell fortsatt drev selskapet. Atari ble senere kjøpt opp av Warner og Ray Kassar ble ny direktør. Den nye ledelsen besluttet at spillutviklerne skulle være fullstendig anonyme. Det innebar at ingen av dem fikk navnet sitt på trykk i verken manualer eller spillesker. Gud forby at de fikk “cred” for arbeidet sitt. De kunne jo bli snappet opp av andre selskaper! Ifølge Atari sjefene var ikke utviklerne mer viktige enn samlebåndsfolket som pakket spillene (hvorfor var det så farlig at utviklerne forsvant da ?). Uten dem ville heller aldri spill bli sendt i butikkene. Dette fikk begeret til å flyte over, og Crane tok med seg et par kollegaer for å starte Activision. Activision ble verdens første uavhengige spillprodusent og distributør.

David Crane på 80 tallet.

Konsollen Atari 2600
For å forstå genialiteten i “Pitfall” må man forstå hva Crane og gutta i Activision hadde å jobbe med. Atari 2600 består av et videokort, en CPU og et lydkort. Relativt likt det vi har i dag hvis vi hopper over små detaljer som…kremt..videominne. Maskinen var sammen med Fairchild Channel F den første med micro-prosessor. Det vil si at en x bits tallsekvens i et visst adresseområde kunne lage en tone, skifte bakgrunnsfarge osv. Man tenkte mer hardware enn software når man programmerte. CPU’en var konstant opptatt med å tegne bildet på skjermen, derfor var kun 25% igjen til å prosessere spillkode. Mens man knuste kode måtte man være svært nøye med å  telle bytes og cycles for ikke slippe opp for ressurser.

Atari 2600 kan vise 160 pixels vertikalt. For en analog TV er pixler meningsløst, men man snakker om «color clocks.» For analog TV vil dette da si 160 aktive color clocks vertikalt (1 color clock er det minste punkt med farge A2600 kan vise). Horisontal oppløsning varierer ihht til frekvens. (NTSC, PAL, SECAM.) Jeg overforenkler litt nå, men det er for å unngå at dette blir en 10 siders artikkel. Atari 2600 inneholder faktisk svært kompleks arkitektur!

Med Atari 2600 kunne man vise følgende sprites: en bakgrunn, et spillerområde, player0, player1 , ball , missile0 og missile1.

Det var det man hadde å jobbe med. Husk at Atari ingeniørene som designet konsollen aldri hadde forestilt seg i sin villeste fantasi at noen ville klare å lage et spill som “Pitfall” til denne maskinen. De hadde i utgangspunktet sett for seg et tanks spill (“Combat”) og et “Pong”- spill. Kom det noe mer utav maskinen enn det så var Atari happy!

Her ser vi det klassiske spillet “Combat”. Her har vi to tankser, altså to 1
bit player sprites, to missile sprites, bakgrunn og et spillerområde.


Her er en av de første forbedringene. Det ble programmert i bånd.
«Air Sea battle» dupliserer player sprites i form av fly, båter etc.

Pitfall Harry – Den første videospillkarakteren?
David Crane hadde en drøm. Han ville lage et spill med en animert karakter, og han hadde programmert en ganske fin springende mann. Problemet var at han hver gang han satt seg ned så ble det idètørke, og han endte opp med å lage et nytt sport- eller romskipspill.
Men en dag satte herr Crane seg ned, og brettet opp armene. Design dokumentet til Pitfall ble laget på cirka 10 min. Husk at på den tiden hadde man ikke grafiske artister, og ubegrenset med muligheter. Man lagde spill basert på hva Atari 2600 kunne gjøre.

Her ser dere design dokumentet til Pitfall. Bildet er tatt under foredraget på GDC.

Til forskjell fra Combat som i sin helhet var programmert i en loop, så besto Pitfall av massevis av loops. En loop er for eksempel de to missilobjektene som ble brukt for å representere liv (oppe i venstre hjøre.) Liv ble lagt inn helt mot slutten av utviklingen. David Crane ville egentlig bare ha ett, men fikk krav ifra de andre om å gjøre det lettere for spilleren ved å legge til liv. Den endringen tok to uker med kodereduksjon!
Et genialt dyr som ble utviklet av Activision var “The Polynomial Counter”. Veldig enkelt sagt ble denne brukt for å generere tilfeldige tallrekker. Hvert tall representerte et objekt i spillet. Basert på hvilket tall som ble generert så ble objektet presentert i en spesiell posisjon, eller ikke vist i det hele tatt. Det ble generert totalt 256 brett, og David Crane valgte nøye hvilken rekkefølge brettene skulle komme i. Det var viktig at spilleren var minst mulig avhengig av manualen og kunne jevnlig bygge opp ferdighet utover i spillet. Dette var et produkt av den pågående arkadekulturen.

Etter 1000 timer med programmering ble hele fjøla presset inn i en 4k ROM cartridge, og sendt ut i butikkene. Spillet ble en umiddelbar hit. Det lå 64 uker på topp som best selgende spill. Activision fikk så mye som 14 000 fan brev i uken. Mange av brevene inneholdt egenproduserte kart av spillere. Etterhvert laget også Activision sitt eget kart over de 256 brettene, og hvilken sti man måtte følge for å runde spillet.

I 1984 fulgte David Crane opp suksessen med “Pitfall II.” Dette spillet var ikke en like stor “blockbuster” som forgjengeren, men solgte bra. Mange vil legge merke til at grafikken og lyden er bedre, og man må jo spørre seg hvordan det er mulig? Svaret er at Crane designet en proprietær chip som han puttet inn i Atari “cartridgen.” Chip’en utvidet kapasiteten og ga mer plass til grafiske detaljer og til og med musikk!

Det er også komme ut andre spill i ettertid med navn “Pitfall”, men David Crane har ikke noe med dem å gjøre. “Super Pitfall” til NES må unngås til enhver pris. “Pitfall: The Mayan Adventure til Sega Megadrive” er visstnok ikke så verst ifølge mine med-podcastere.


Fakta om Pitfall:
– Multifargede sprites som “Pitfall Harry” tok forferdelig lang tid å lage siden man måtte endre farge pr scanline.
– Telle hver CPU cycle. Brukte du tre pixler så gikk en CPU cycle.
– liv er f.eks. en loop. Brukte missiler.
– alterert “playfield” for toppen av trærne
– “player objects” for grener (pitfall harry trenger ikke være der oppe så da kan de dupliserers i et annet bånd)
– linen er et strukket “missile object.”
– krokodillene er kopierte 1 player objects.(maks 3)
– lage unike 256 screens med 4 k bytes? (hundredel av en jpg bitmap)


Fakta om Atari 2600:
128 byte med intern RAM (til sammenligning er en gjennomsnittlig Twitter mld på ca 200 bytes)
4K ROM Cartridge
6507@1,16 mhz (6507 var en billig versjon av 6502 CPU som finnes på VIC 20, C64 etc.)
3 ulike lyder – sinus, triangulær og “white noise.”

Relevante lenker:

David Cranes foredrag under GDC.

Meget nøyaktig post på AtariAge vedrørende hvordan Atari 2600 faktisk fungerer.


Angry Video Game nerd anmelder «Super Pitfall.»