duncanlock.net

Speedrunning Computer Games History with a 6yr Old - Part 1

Galaxians vector
Figure 1. Galaxians.

As a family gift for Christmas 2020, I set up a Raspberry Pi 400 with Retropie. The plan is to load a selection of the “best of the best” games from computer game history, starting with games up to, roughly, 1985.

The kid doesn’t really know any better, so we can play Space Invaders unsullied by time and expectations and enjoy a speedrun through gaming history, playing just the highlights.

I’ll add more games as we go along, progressing through gaming history, one classic game at a time.

Why?

A black screen, with the BBC Basic prompt and flashing cursor.
Figure 2. The Mighty BBC BASIC prompt. This is what you saw when you booted it up - straight into an interactive programming environment: a 1980s REPL. Just type in BASIC code/commands and press Enter.

When I was around 8 yrs old, my parents bought a BBC Micro Model B - an early 8-bit home computer. Home computers were very new back then and I’d never used one before. We played games on it. A lot. Asteriods, Frogger, Missile Strike, Twin Kingdom Valley, Racer, Repton, Chuckie Egg, Elite, etc, etc…​ all loaded (very slowly) from cassette tape. There were also lots of games and other programs that came as code, printed out in books or magazines, which you then typed in.

Later, I started writing my own little BASIC programs. I think partly because that was what Mum & Dad actually wanted us to do with this rather expensive computer, and partly because it was interesting to get the computer to do things - and gratifying when they finally worked.

Like many others, this little machine changed the trajectory of my life. I’ve been fortunate to have made a reasonable living out of programming computers. It’s still interesting to get computers to do things that you thought up - and it’s still gratifying when it finally works, even after all this time.

I have no illusions that we can re-create this experience - you can’t step into the same river twice. However, I hope that we might be able to capture a few of the best bits, the most fun & most useful, while making new memories of our own.

I think that the 6yr old is currently in a narrow window where this might be possible. They haven’t really had much exposure to computer games, and the COVID-19 pandemic will keep them out of their peers houses for a while longer. But, because kids these days are surrounded by advanced computers, with modern 3D graphics and sound, I can’t leave it until they’re 8 or 9 - the window will have closed and modernity will have forever changed expectations.

I think that I’ve got about a year or so, at the most, before Minecraft and Roblox sweep this all away and close the window. I’m going to see if we can get to 1992 before then - it’s around this time that I think the games will start to stand up on their own, graphics & fun wise, against Minecraft. Maybe? Alright, probably not. We’ll see how it goes - either way, it’ll be fun while it lasts.

It’s also around that point that the Raspberry Pi 400 will start to struggle to emulate the more demanding games & systems, so we’ll have to do something else then anyway.

What do you have against Minecraft/Roblox?

Absolutely nothing, I think they’re great! The problem is, once you play modern games with modern(-ish) 3d graphics, your expectations are forever changed. It makes it harder to appreciate games which don’t have similarly modern graphics. This isn’t a fault of older games, it’s just a change in expectations - it’s hard to put that toothpaste back into the tube. When we get there, I hope we’ll play Minecraft & Roblox together too - and maybe use them to introduce coding.

A Modern “Home Computer”

I’m intending the Raspberry Pi 400 to be “the family/kids/home computer” for a while:

Featuring a quad-core 64-bit processor, 4GB of RAM, wireless networking, dual-display output, and 4K video playback, as well as a 40-pin GPIO header, Raspberry Pi 400 is a powerful, easy-to-use computer built into a neat and portable keyboard.

We can use it to play games on - but it’s also a regular Linux box, running Raspbian (a Debian distro) and can run a huge array of Linux software. It’s easy to change its personality but just booting it off a different USB stick/SD card, with a different OS & apps on. I’m intending to use it to introduce the kids to programming, as well as basic electronics and robotics - all of which are well-supported by the Pi’s hardware and huge maker community.

Hardware

We live in a pretty small apartment, so everything needed to be able to pack away as small as possible, without breaking the bank. The combination of the Raspberry Pi 400, which released at just the right time for this project, and a portable monitor - means that the system packs away fairly neatly.

The assembled system
Figure 3. The assembled system, with Raspberry Pi, monitor and controllers, sitting on an Ikea Lack table. Underneath the table are two boxes and a small pouch; the system packs away into these when not in use.

The monitor arrived without the bent metal wire stand, so I ended up making some decorative stands out of cardboard and covering them with retro game artwork:

The monitor stands I made from cardboard.
Figure 4. These stands came out pretty well, if I do say so myself - and they’ve unexpectedly been a hit with the kid, too. I often get “Which game is this?” or “I want to play this one” - pointing at one of the pictures on these stands.

Software

It’s running Retropie, which is a nice retro gaming system, which makes installing and configuring everything pretty simple:

[Retropie] builds upon Raspbian, EmulationStation, RetroArch and many other projects to enable you to play your favourite Arcade, home-console, and classic PC games with the minimum set-up. For power users it also provides a large variety of configuration tools to customise the system as you want.

I used the Retropie image to install this, which means you just need to write the image to an SD card and boot it up. You can use Balena Etcher, the Raspberry Pi Imager, or dd to do this. Installation instructions are here.

The games were selected from my memory, and various lists:

We started with the following emulated systems & games:

Arcade

These all work flawlessly in lr-mame, with perfect controller mappings out of the box.

ZX Spectrum

The Zesarux emulator is a pretty great, but the speccy graphics are a bit basic, and they’re mostly intended for keyboard play, so we have to remap them for the controllers.

Atari 2600

Apple II

This is a keyboard oriented emulator, so controller mapping, etc…​ Also, the sound is pretty bleepy.

Commodore 64

This emulator doesn’t seem to work very well and the games are difficult to get working & figure out controls. Consequently, we really haven’t played any of these so far. I’m sure it’s just a matter of me sitting down and figuring out how to configure it properly.

We should probably play the LucasArts games on ScummVM anyway.

ZMachine

These are all text adventures, so require reading & writing.

I’ll report back later…​

I realize that’s too many games, but…​ I got a bit carried away? Probably we won’t get around to playing all of these before we pass them by for newer pastures, but that’s life.

So, we’ll try it out and see how we get on – and I’ll report back later on our progress.


This post is part 1 of the 4 part "Speedrunning Computer Games History" series:


Comments