[HN Gopher] How Pitfall builds its world (2021)
       ___________________________________________________________________
        
       How Pitfall builds its world (2021)
        
       Author : kibwen
       Score  : 209 points
       Date   : 2022-12-22 17:30 UTC (5 hours ago)
        
 (HTM) web link (evoniuk.github.io)
 (TXT) w3m dump (evoniuk.github.io)
        
       | mike_hock wrote:
       | > We got really lucky that Microsoft released the source code for
       | MS DOS, and maybe if we're lucky Activision and Atari and
       | Nintendo have all their original code somewhere in a vault, which
       | they'll release freely into the public for the good of mankind,
       | but I'm not holding my breath. Everyone who is able should be
       | working to preserve whatever piece of history they can, 'cause
       | it's not gonna preserve itself.
       | 
       | Amen.
        
       | ilamont wrote:
       | Pitfall _really_ stood out ... and made many of us think,  "why
       | can't other 2600 games hit the bar set by Pitfall?"
       | 
       | I mean, there were fun games with very basic graphics (Combat
       | springs to mind,
       | https://www.free80sarcade.com/atari2600_Combat.php) but there
       | were also way too many uninspiring original games and arcade
       | copies that were just lame.
       | 
       | Now we know why. It's a great article, thanks for sharing
       | @kibwen.
        
         | chungy wrote:
         | It still stands out as an actually-fun game on the 2600.
         | 
         | The 2600 is before my time. I grew up with the NES and its
         | library. I do see 2600 nostalgia in older generations, but for
         | me, Pitfall is pretty much the only title worth playing.
        
           | bluedino wrote:
           | If you like Pitfall you might like Keystone Capers
        
           | toast0 wrote:
           | If you've got the paddle controllers in good condition, and a
           | low latency screen, super breakout in progressive mode is a
           | treat. And paddle controllers disappeared since then, so hard
           | to replicate. Arkanoid with a spinner on newer systems is
           | similar but different.
        
           | thom wrote:
           | The two-player games were all fun, the arcadey stuff like
           | Centipede and Missile Command were addictive. My memories of
           | Pitfall were mostly that it was repetitive and hard, but I
           | was pretty young so presumably sucked. I do remember that
           | things like Submarine Commander and Star Raiders/Solaris felt
           | very, very sophisticated though and I can imagine they'd be
           | worth a revisit.
        
             | tenebrisalietum wrote:
             | A YouTube video
             | (https://www.youtube.com/watch?v=CkDllyETiBA) showing the
             | complete walkthrough where all 32 treasures are acquired
             | leaves less than a minute on the 20 minute clock (actually
             | 8 seconds left). Nintendo hard doesn't have much on certain
             | types of Atari hard.
        
               | duskwuff wrote:
               | The best tool-assisted speedrun for this game comes in at
               | 18:11. According to the runner, a lot of the obstacles,
               | like swinging vines, all run on the same timer. This
               | means that saving a bit of time on one room may not put
               | you ahead (because it just means you have to wait longer
               | for the next obstacle), but missing a "cycle" on an
               | obstacle is an unrecoverable setback.
               | 
               | https://tasvideos.org/4000M
        
           | popularrecluse wrote:
           | You may find many of the Activision titles still hold up.
           | River Raid, Megamania, Seaquest, Frostbite. There's a lot of
           | fun to still be had in those games, especially if you're
           | competing head-to-head.
           | 
           | But for my money the most fun you can have on an Atari 2600
           | today is 4-player Warlords with well-maintained paddles.
        
             | GeekyBear wrote:
             | > for my money the most fun you can have on an Atari 2600
             | today is 4-player Warlords with well-maintained paddles
             | 
             | This was definitely the most fun for larger groups of
             | players back in the day.
             | 
             | https://www.giantbomb.com/warlords/3030-25096/
        
             | chungy wrote:
             | I'll definitely have to check them all out. Thanks!
        
             | kgwxd wrote:
             | Do you know about Medieval Mayhem?
             | https://atariage.com/store/index.php?l=product_detail&p=842
             | 
             | "adds arcade features such as the launch dragon, multiple
             | fireballs, and a level of polish missing from the original
             | 2600 release."
             | 
             | There are a ton of homebrew games for the 2600 that are
             | super fun.
        
               | JohnBooty wrote:
               | Yeah! 2-player (or 4-player!) simultaneous Warlords or
               | Medieval Mayhem are _really_ fun, even in 2022.
               | 
               | After many decades I finally managed to try it out, on a
               | real CRT and everything. It's not something you generally
               | want to play for hours or anything like Mario Kart... but
               | it is really really good.
        
             | virgulino wrote:
             | My vote for River Raid, H.E.R.O., and Enduro. Cool fact
             | that I only recently discovered: River Raid was designed
             | and programmed by a woman,
             | https://en.wikipedia.org/wiki/Carol_Shaw .
        
           | lowercased wrote:
           | Others have mentioned some other good games (Ms Pac, Keystone
           | Kapers, River Raid, etc).
           | 
           | There was something about the first generation Activision
           | games that seemed to stand out compared to the rest. Whether
           | simple or complex, they had some hard to pinpoint quality
           | that was just... 'good'. David Crane mentions this in one of
           | the linked videos. "2 line kernel didn't look good. 1 line
           | kernel was harder to do, but looked better, so we just did
           | that". He's referring to doing more work to be able to make
           | visual updates every scan line, instead of every other scan
           | line. This made their games so much more visually sharp and
           | appealing compared to what came before on the same hardware.
        
             | tenebrisalietum wrote:
             | So the TIA (the Atari video chip) has a "delay" slot for
             | its "player" graphics--a player being an 8 dot wide object
             | - the CPU is supposed to program in new data the player
             | graphics register during the HBLANK portion of the display
             | for each scaline it's visible.
             | 
             | The intention was that the CPU would spend 1 scan line
             | updating P0 graphics, then the next scan line updating P1
             | graphics, and by setting the delay for P0, both player
             | graphics would appear on the same 2-line portion.
             | 
             | So "2 line kernels" were doing it in a way the TIA
             | supported and providing time to do other things like check
             | paddle status (because you're supposed to be programming a
             | Pong game). Of course the TIA has been wonderfully pushed
             | and twisted in ways never imagined by the designer. I think
             | someone even experimented with interlaced 160x400 graphics.
        
           | antiterra wrote:
           | "River Raid" stands out to me as the most actually fun Atari
           | 2600 game.
           | 
           | Despite having awkward controls, "Combat" is also fun due to
           | couch multiplayer. "Jungle Hunt" is similar to Pitfall but
           | faster. I also managed to spend a lot of time playing the
           | 2600 version of Asteroids, but I don't know if it actually
           | holds up.
        
             | MisterBastahrd wrote:
             | Yep. Anybody hating on Combat never played Combat the way
             | it was meant to be played. I treated it as the game you
             | just put to the side as a kid because we were too busy
             | playing Pac-Man, Donkey Kong, Breakout, Chopper Command,
             | Galaga, Galaxian, Defender, Adventure, Vangard, etc. But
             | once you've played Empire Strikes Back ten dozen times and
             | the fun of shooting glowing pixels on the backs of AT-ATs
             | wears off... Combat was still there and took almost zero
             | explanation for how to play.
        
               | progmetaldev wrote:
               | I really loved playing Vangard when I was younger. The
               | multi-level types and fast-paced action really drew me
               | in.
        
           | lowercased wrote:
           | https://www.youtube.com/watch?v=B21K8X1eja0
           | 
           | Check this out - a list of 20 Atari VCS games the author
           | thinks still hold up in 2022.
           | 
           | I'm not sure I agree with all the choices, but it's an
           | interesting list nonetheless.
        
           | caseyf wrote:
           | If we're listing fun games i'd like to add Berzerk :)
        
           | actionfromafar wrote:
           | Did you try Ms Pacman? It's pretty solid.
        
             | chungy wrote:
             | Probably haven't, but I'm not usually enamored with home
             | console ports of arcade games when I can just as easily
             | fire up MAME. I can recognize them for what they are on the
             | hardware they target, but nearly always the arcade original
             | is preferable.
        
               | actionfromafar wrote:
               | No doubt, but I bought a VCS2600 and actually used it a
               | couple of years ago. Pretty fun!
        
         | s1mon wrote:
         | I didn't have a 2600, but my friend did. Pitfall was by far the
         | game I remember going to his house to play. It really was
         | worlds better than the rest.
         | 
         | This was also a time (1982) when arcade games (Star Wars, Tron,
         | Zaxxon, etc.) and their graphics were an order of magnitude
         | more impressive than home console games, but Pitfall still had
         | enough playability and complexity to keep it interesting.
        
         | coldpie wrote:
         | > Combat springs to mind,
         | https://www.free80sarcade.com/atari2600_Combat.php
         | 
         | Fun Copyright Fact: This website is violating Atari's copyright
         | and will do until the year 2072!
         | 
         | "For a work made for hire, the copyright endures for a term of
         | 95 years from the year of its first publication"
         | https://www.copyright.gov/help/faq/faq-duration.html
        
           | mrguyorama wrote:
           | And this is all thanks to the goddamned mouse and the
           | politicians that decided disney's desire for infinite money
           | was more important than societal good from more media
           | turnover and ability to riff on it.
        
       | CharlesW wrote:
       | Just for fun, here's the Pitfall TV commercial (and Jack Black's
       | first acting gig): https://www.youtube.com/watch?v=wfLgSdAAHMA
        
       | dang wrote:
       | Discussed at the time (of the article):
       | 
       |  _How Atari 2600 Game Pitfall Builds Its World_ -
       | https://news.ycombinator.com/item?id=27111377 - May 2021 (29
       | comments)
        
       | bluedino wrote:
       | > We have the original source code for basically zero games for
       | the Atari, NES, SNES, ColecoVision, you name it
       | 
       | Aren't those dumpster-dived scans of source code to Atari 7800
       | games?
        
         | devoutsalsa wrote:
         | Tangent...
         | 
         | From 2000 to 2002 I worked as a QA engineer at a semiconductor
         | company in Silicon Valley. We tested the chips using all sorts
         | of software. My boss loved dumpster diving at software
         | companies, and probably half of our lab's software came from
         | stuff she found in the trash. My favorite find was Risk (the
         | board game) for Windows 3.0.
        
       | themadturk wrote:
       | Did no one here play "Kaboom!"? That was a fun game...
        
         | vikingerik wrote:
         | We did, but there really isn't anything interesting about
         | Kaboom to make for discussion here. There's no technical
         | wizardry or open world or groundbreaking mechanics or sense of
         | fascination or urban legendarium about Kaboom, it's just a
         | straightforward reflex game doing simple things with the
         | hardware.
        
           | CharlesW wrote:
           | And yet, this completely uninteresting game by legends Larry
           | Kaplan and David Crane had to fit into 2,048 bytes, ran at
           | 60fps, won several awards, set sales records, and quickly
           | became an instant classic.
        
       | russellbeattie wrote:
       | I think much of this is explained at a high level in this talk
       | from the original game designer: Pitfall Classic Postmortem With
       | David Crane Panel at GDC 2011 (Atari 2600).
       | https://youtu.be/MBT1OK6VAIU
       | 
       | I haven't seen it in a while (will rewatch now), but I remember
       | him going over how he was able to create so many levels in such a
       | tiny space. I love these sorts of examples of breakthrough tech
       | products that were the result of a developer figuring out how to
       | do something that seemed impossible. Much of Apple's early
       | success, for example, could be attributed to this.
        
       | travem wrote:
       | My first exposure to the concept of this kind of procedural
       | generation was with the game Elite and how it created different
       | galaxies. With such limited capabilities available it was eye
       | opening to see the creativity that was unleashed.
       | 
       | See
       | https://www.theguardian.com/books/2003/oct/18/features.weeke...
        
         | lowercased wrote:
         | I think Archipelagos
         | https://en.wikipedia.org/wiki/Archipelagos_(video_game) and
         | Sentry/Sentinel https://www.c64-wiki.com/wiki/The_Sentinel also
         | employed this technique.
        
       | gdubs wrote:
       | Steve Woz said something in his book that always stuck with me:
       | the younger generation is missing out on what it was like to grow
       | up during a time where it was possible to grasp the entire
       | machine in your mind.
       | 
       | People always chime in to say that you can still do that today.
       | But back then the constraint was real; it was the best you had to
       | work with, and it forced you to think of creative ways to use it
       | and maximize it.
       | 
       | Anyway, super cool piece -- thanks for sharing!
        
         | spogbiper wrote:
         | I grew up with early 80s microcomputers. I played around with
         | BASIC and a little asm, definitely found it fascinating but as
         | a kid just typing in little games from magazines I didn't
         | really ever understand the whole computer.
         | 
         | Then in my 30s I found a group of retro enthusiasts that were
         | still hacking on the little oddball computer I'd had as a kid.
         | It became a hobby for a few years, and coming back to the
         | platform with a couple decades of experience programming was
         | truly a revelation. Fitting the whole machine in your head,
         | knowing what every byte in the memory map and every cycle of
         | the CPU are doing.. its an experience I don't think is really
         | possible on modern hardware. Maybe with a microcontroller or
         | arduino type device, but even these are much more complex than
         | the old 80s microcomputers.
        
         | [deleted]
        
           | [deleted]
        
         | criddell wrote:
         | And the generation before the one Jobs was nostalgic for didn't
         | have integrated circuits. They knew every transistor, resistor,
         | and capacitor.
        
         | Eleison23 wrote:
         | [dead]
        
         | hbn wrote:
         | It's even more sad for kids being raised on smartphones and
         | iPads as their only computing paradigm. If desktop OSes aren't
         | complicated enough, there's certainly no hope of you learning
         | how one of those work with how locked down they are. There's a
         | lot of people who got into programming from learning to make
         | Minecraft mods or basic scripting for some game. It feels like
         | the mobile application paradigm tightly cements the idea that
         | all software that runs on a computer is from some big company
         | and shan't be tampered with.
         | 
         | And I don't think Xcode Playgrounds or various Programming
         | Environment For Babies applications draw as much attention and
         | spark as much imagination as learning to mod infinite lives
         | into a game you already play, or even something as simple as
         | modifying an ini file for a mod you found online.
        
           | ilyt wrote:
           | I do vividly remember feeling of pride when as kid I edited
           | some game files to do something funky (like swapping Red
           | Alert Tanya weapon to tesla coil...) or managed to cheat the
           | game via hex editor or cheat engine.
           | 
           | Mixing "something you like" with "something you can learn" is
           | always a winning combo.
        
           | benj111 wrote:
           | Well I had a BBC as a kid before progressing to pcs. The idea
           | of programming never really occured to me. I had a book but
           | it's idea of programming consisted of typing out an ASCII art
           | house.
           | 
           | I only got in to programming in my 20s when some company
           | called canonical were giving CDs away of this thing call
           | Linux.
           | 
           | Point is. We have the internet now for kids to discover these
           | things, and schools are more up on it and we have inexpensive
           | computers and stuff for kids to play about with.
        
           | marcellus23 wrote:
           | Any kid who wants to build an app for the iPhone/iPad can do
           | it pretty easily, they just need a Mac and Xcode. With Swift
           | Playgrounds for iPad, you don't even need a Mac.
           | 
           | I know you mentioned it "doesn't spark as much imagination",
           | but I'm going to strongly disagree with you there. I don't
           | think most software engineers got started by tweaking
           | existing software. _You_ may have started that way, but I
           | didn't. I got into programming by seeing the kinds of apps
           | people made for Mac and iPhone, and wanting to build those
           | kinds of experiences.
        
             | gdubs wrote:
             | I just want to be clear I'm not framing today's tools as
             | "bad" or unable to spark imagination -- my own kids are
             | getting started with Scratch and it's great!
             | 
             | But I also feel like there's some magic in the past too.
             | Some of it's nostalgia, but there's also lessons there that
             | are valuable.
        
         | Waterluvian wrote:
         | I don't disagree, but it's all perspective and it's all
         | fractal. Every generation is building on top. He had his own
         | examples of what he laments, I'm sure.
        
       | bitexploder wrote:
       | I have been deep in the 6502 hole writing an emulator and
       | watching Ben Eater. Throw off the shackles of your massive
       | computers and compute for the sheer fun of it! Almost everything
       | about the 6502 and writing assembly for it is relevant in some
       | way to modern systems programming. You get to trim all the fat
       | from programming and computing and see the ingenuity of computing
       | unfolding before you in a tiny little 2^16 address space. Where
       | you are going there isn't even a div instruction. It is a cool
       | way to compute and as retro as it is if you were ever interested
       | in systems programming this is a cool, nostalgia themed, way to
       | start.
        
         | tenebrisalietum wrote:
         | Plus you can make new NES games.
        
           | kgwxd wrote:
           | And a whole bunch of other systems: https://en.wikipedia.org/
           | wiki/MOS_Technology_6502#Computers_...
           | 
           | And, more recently, the Commander X16.
        
           | bitexploder wrote:
           | That is my eventual goal. There are many NES emulators out
           | there, but this one will be mine :)
           | 
           | I also wanted to release a decent pure 6502 with a good
           | command line monitor that lets you explore programs easily.
           | Step. Poke memory. Set registers. Good CLI. We'll see. It
           | really helps to have a decent playground when getting started
           | :)
        
       | binarymax wrote:
       | Awesome write up, thank you for the deep dive and nostalgia!
       | 
       | I also like that this is on the front page the same time as "24
       | cores and I can't move my mouse"
       | https://news.ycombinator.com/item?id=34095032
       | 
       | It tells us that software is like a gas - it naturally expands
       | and fills the container it occupies.
        
         | whoopdedo wrote:
         | Also known as Parkinson's Law[1]. "Data expands to fill the
         | space available for storage." And the reason building more
         | highways doesn't reduce traffic congestion.
         | 
         | [1] https://en.wikipedia.org/wiki/Parkinson%27s_law
        
           | benj111 wrote:
           | This also applies to stuff and houses (and garages)
        
       | [deleted]
        
       | Arjuna wrote:
       | Awesome!
       | 
       | Any time I think of Pitfall!, I always remember this pamphlet you
       | could request and receive via mail:
       | 
       |  _Programming Pitfall Harry_
       | 
       | https://archive.org/details/program-pitfall/mode/1up
        
       | aaroninsf wrote:
       | This sure takes me back to hand-coding embedded systems firmware
       | for a family of products on Microchip 8-bit microcontrollers...
       | and that was as recent as this millennium.
       | 
       | In the days before ARM and when we needed to use a $3 processor
       | to hit our BOM cost, my code used every byte of the 8K and every
       | register... bit-banged I2C, bit-banged RS232 up to 56Khz, LED and
       | 8-key touchpad debouncing, and best of all, an IR receiver and IR
       | emitter which both learned arbitrary consumer IR codes in the
       | fashion of a then-fashionable universal remote, and reproduced
       | them including press-and-hold behavior, while emulating their
       | carrier frequency... and could do bi-directional device cloning
       | via IR by holding the products up to one another face-to-face...
       | 
       | And had a rock-solid bootloader for encrypted firmware updates.
       | 
       | Ah the good ol' days... a tear for the old skool.
       | 
       | I called the binder with the hard copy of the commented assembler
       | source "my first novel"...
        
       | isk517 wrote:
       | Even though I was grew up well into the Nintendo dominated era of
       | video games (NES,SNES) my first video game experience was playing
       | on my parents Atari 2600 and both Adventure and Pitfall where
       | common go to games for me. Reading the beginning of the article
       | gave me real food for thought about how the manual of Adventure
       | needed to specifically explain to the user about the concept of
       | multiple rooms. Even with my limited exposure to more modern
       | video games at the time I instinctively knew that going to the
       | very edge of the screen was how you got to the next screen so the
       | idea that this was something so new in Adventure it needed to be
       | explained just blows my mind.
        
       | sasas wrote:
       | LFSR algorithms are super interesting. Fabien Sanglard documents
       | how it was used in Wolfenstein 3D's 'Fizzle effect' [1]. This is
       | also covered in his book on the development of that game [2].
       | 
       | A detailed write up that goes into a bit of mathematics with code
       | examples is 'Demystifying the LFSR' [3].
       | 
       | The 'Computerphile' Youtube channel did a whole episode on LFSR
       | last year which is very accessible, highly recommended [4].
       | 
       | [1] https://fabiensanglard.net/fizzlefade/index.php
       | 
       | [2] https://www.amazon.com/Game-Engine-Black-Book-
       | Wolfenstein/dp...
       | 
       | [3] https://www.moria.us/articles/demystifying-the-lfsr/
       | 
       | [4] https://www.youtube.com/watch?v=Ks1pw1X22y4
        
       | RantyDave wrote:
       | 128 bytes. I'm trying to think of something in today's world with
       | that little memory - a 'door opening' smart card? a car key?
       | There are light bulbs with literally a thousand times as much.
        
         | rsync wrote:
         | 128 bytes and _no framebuffer_.
         | 
         | They had to "race the beam" ... but the VCS was not as fast as
         | the beam, which is why Atari 2600 games always have a
         | horizontally stretched look to them:
         | 
         | https://en.wikipedia.org/wiki/Racing_the_Beam
         | 
         | "The book's title comes from the fact that the Atari 2600,
         | initially branded the VCS (Video Computer System), did not have
         | a video frame buffer, and required the programmers to write
         | each line of video to the television, one line at a time. As
         | there were only a limited number of machine cycles in which to
         | do this, the programmers were literally racing a high speed
         | electron beam across the screen."
        
         | mrguyorama wrote:
         | I 2007 or so, my mother bought me a "robot" kit with a Parallax
         | branded "BASIC stamp microcontroller"
         | https://www.parallax.com/product/basic-stamp-2-microcontroll...
         | 
         | It had 32 bytes of RAM. The IDE and educational materials were
         | very heavy handed about encouraging you to split them up into
         | very small variables, only as big as needed. Think of all the 8
         | bit ints that fit into 32 bytes!
         | 
         | PBASIC was actually pretty cool.
        
         | dylan604 wrote:
         | DVDs. There were 16 GPRMs that were 16 bits. Doing anything
         | that resembled complicated required the use of everyone of
         | those bits. This was the first time I had ever had to use bits
         | in this manner, and did things not dissimilar to how Pitfall is
         | described using the bits it had available. Of course, I was
         | doing things 20+ years later. I found it quite a bit of
         | perverse fun thinking in 0s and 1s like that. Not all DVD
         | authoring programs were made the same, and the abstraction
         | layer software like DVD Studio Pro required use of half of
         | those GPRMs limiting what the programmer could do.
        
       | fnordpiglet wrote:
       | Minecraft doesn't have to save generated data. As long as they
       | seed is preserved all the data will be regenerated. It only does
       | this to save time and to persist any changes made.
        
       | lowercased wrote:
       | Standard plug for this book:
       | 
       | https://www.amazon.com/Racing-Beam-Computer-Platform-Studies...
       | 
       | and
       | 
       | https://en.wikipedia.org/wiki/Racing_the_Beam
       | 
       | Great read. Very in-depth on some of the great games of that era.
        
         | rsync wrote:
         | Came here to mention this.
         | 
         | It is a _fascinating_ book - and not just for the pitfall
         | chapter.
        
           | lowercased wrote:
           | Without a doubt. There was a David Crane video from 2011
           | linked here by russellbeattie(?) in which David plugs this
           | book himself in the middle of his talk. It's that good. :)
        
       | Waterluvian wrote:
       | This reminds me of something I read, am not sure if true:
       | 
       | If you try to save the entire mesh for a video game world's
       | surface, it would be absolutely massive. So you just save the
       | gist and generate all the in-betweens.
       | 
       | I think it was about Morrowind?
        
         | jerf wrote:
         | You could say that about a lot of games. It is a common
         | approach. Every compression scheme you can imagine has been
         | used and more, from simply shipping the whole thing after all
         | to procedural generation and everything in between. I seem to
         | recall Oblivion was mostly procedural on the overworld but then
         | people would come in and edit the maps afterwards for various
         | things.
        
       | tracker1 wrote:
       | Did something not too dissimilar for storing test answer
       | randomization and answers in an older elearning standard. I had
       | limited space, so for each screen, I used a single byte to store
       | the state of if it was seen, the answer selected and order of
       | answers. The intent was to randomize answer order on display to
       | make it harder to pass an answer key around. This is more
       | impressive though... Cannot even imagine the effort it took.
        
       | at_a_remove wrote:
       | I was saddened by the lack of "real" (translation: actual itty
       | bitty robots) nanotechnology taking off. I imagined everyone
       | trying to drag old Atari programmers out of retirement with a
       | "We're used to shipping these fuck-huge executables, how did you
       | _do_ all of this under such tremendous constraints? " plea. So
       | much with such minimal resources!
        
       ___________________________________________________________________
       (page generated 2022-12-22 23:00 UTC)