13 ms·
How Pitfall builds its world (2021)
- gdubs 4y agoSteve 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 4y agoI 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.
- midoridensha 4y agoIt's still possible, but only on extremely low-resource microcontrollers, such as the PICs and AVRs from Microchip (and Atmel, now part of Microchip). Many of these are tiny 8-bit micros with only a few dozen bytes of memory, meant for simple applications.
- Eleison23 4y ago[dead]
- hbn 4y agoIt'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 4y agoI 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.
- marcellus23 4y agoAny 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 4y agoI 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.
- 4y ago
- Waterluvian 4y agoI 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.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- criddell 4y agoAnd the generation before the one Jobs was nostalgic for didn't have integrated circuits. They knew every transistor, resistor, and capacitor.
- lowercased 4y agoStandard plug for this book: https://www.amazon.com/Racing-Beam-Computer-Platform-Studies/dp/026201257X https://www.amazon.com/Racing-Beam-Computer-Platform-Studies... and https://en.wikipedia.org/wiki/Racing_the_Beam https://en.wikipedia.org/wiki/Racing_the_Beam Great read. Very in-depth on some of the great games of that era.
- rsync 4y agoCame here to mention this. It is a fascinating book - and not just for the pitfall chapter.
- lowercased 4y agoWithout 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. :)
- russellbeattie 4y agoI 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 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.
- Arjuna 4y agoAwesome! 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 https://archive.org/details/program-pitfall/mode/1up
- Waterluvian 4y agoThis 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 4y agoYou 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.
- ilamont 4y agoPitfall 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 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 4y agoIt 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.
- actionfromafar 4y agoDid you try Ms Pacman? It's pretty solid.
- chungy 4y agoProbably 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 4y agoNo doubt, but I bought a VCS2600 and actually used it a couple of years ago. Pretty fun!
- bluedino 4y agoIf you like Pitfall you might like Keystone Capers
- popularrecluse 4y ago
- travem 4y agoMy 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.weekend https://www.theguardian.com/books/2003/oct/18/features.weeke...
- lowercased 4y agoI think Archipelagos https://en.wikipedia.org/wiki/Archipelagos_(video_game) https://en.wikipedia.org/wiki/Archipelagos_(video_game) and Sentry/Sentinel https://www.c64-wiki.com/wiki/The_Sentinel https://www.c64-wiki.com/wiki/The_Sentinel also employed this technique.
- binarymax 4y agoAwesome 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 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 4y agoAlso 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 https://en.wikipedia.org/wiki/Parkinson%27s_law
- benj111 4y agoThis also applies to stuff and houses (and garages)
- aaroninsf 4y agoThis 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 4y agoEven 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.
- RantyDave 4y ago128 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.
- mrguyorama 4y agoI 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-microcontroller-module/ 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.
- rsync 4y ago128 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 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."
- dylan604 4y agoDVDs. 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.
- midoridensha 4y ago
- bluedino 4y ago> 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 4y agoTangent… 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.
- bitexploder 4y agoI 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 4y agoPlus you can make new NES games.
- kgwxd 4y agoAnd a whole bunch of other systems: https://en.wikipedia.org/wiki/MOS_Technology_6502#Computers_and_games https://en.wikipedia.org/wiki/MOS_Technology_6502#Computers_... And, more recently, the Commander X16.
- bitexploder 4y agoThat 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 :)
- gamacodre 4y agoHeh. That would've been nice. Back in the day, after we walked in the snow uphill to work both ways, we wrote our code, ran it through the cross-assembler, burned EPROMs (after waiting an extra 15 minutes to erase the last ones we used because someone lost the dang tube), plugged 'em into a socketed NES cartridge and really hoped it worked.
- 4y ago
- tracker1 4y agoDid 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.
- themadturk 4y agoDid no one here play "Kaboom!"? That was a fun game...
- vikingerik 4y agoWe 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 4y agoAnd 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.
- themadturk 4y agoThat is true of many of the other games mentioned here as well, none of which have links to detailed technical discussions like Pitfall.
- deleted 4y ago[deleted]
- sasas 4y agoLFSR 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 https://fabiensanglard.net/fizzlefade/index.php [2] https://www.amazon.com/Game-Engine-Black-Book-Wolfenstein/dp/1070515841 https://www.amazon.com/Game-Engine-Black-Book-Wolfenstein/dp... [3] https://www.moria.us/articles/demystifying-the-lfsr/ https://www.moria.us/articles/demystifying-the-lfsr/ [4] https://www.youtube.com/watch?v=Ks1pw1X22y4 https://www.youtube.com/watch?v=Ks1pw1X22y4
- TedDoesntTalk 4y agoNow I want to write a JS game using LFSR.
- mike_hock 4y ago> 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.
- dang 4y agoDiscussed at the time (of the article): How Atari 2600 Game Pitfall Builds Its World - https://news.ycombinator.com/item?id=27111377 https://news.ycombinator.com/item?id=27111377 - May 2021 (29 comments)
- at_a_remove 4y agoI 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!
- fnordpiglet 4y agoMinecraft 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.
- CharlesW 4y agoJust for fun, here's the Pitfall TV commercial (and Jack Black's first acting gig): https://www.youtube.com/watch?v=wfLgSdAAHMA https://www.youtube.com/watch?v=wfLgSdAAHMA
- beej71 4y ago> *Reddit user knome and Hacker News user nwellnhof pointed out the size of this sentence in ASCII and UTF 8 were actually the same, so I changed an ASCII apostrophe for U+2019. I wholeheartedly approve of this correction. :)