Developer Interviews
This episode is part of a series of interviews with developers. Check out this page for more of them
Players
If you wish to support the Waffling Taylors, and the other shows in the network, you can over at Ko-fi.com/jayandjaymedia. However, supporting us is completely voluntary and not required at all.
Another way to support us is to shout out about us on social media or give us a rating on your podcatcher service of choice. The more people who listen to the show, the more shows we can do.
Show Notes
This wonderful episode is a continuation of our attempt to reach out to developers and folks within the video game production fields, and chat with them about something that they’ve been working on; something we’re calling “dev-interviews”
catchy name, or what!
To find out who else we’ve interviewed, check this link.
We we incredibly lucky to be able to sit with Eben Upton for a few hours and talk about his love of vintage computers, his history with them, the Raspberry Pi, and the new book that he has co-authored: Coding the Classics: Volume 1
if you’re serious about learning to program games, I would really recommend picking up this book
We start the conversation off by attempting to come up with Eben’s title. I had thought that “Chief Architect” was about right, but Eben prefers “Chief Cat-herder”
each to their own, I suppose
Raspberry Pi
Because not everyone is as into computers and their history as I am
and some are even more interested in it
we started with a quick description of what the Raspberry Pi is, and how it came to be.
Eben:I became a computer programmer, not because I sat down one day and thought, "I want to be a computer programmer." I became a computer programmer because I had programmable hardware around me, all the time […] The idea with Raspberry Pi was to say, "well, nobody’s getting involved with programming any more. If we make the world a little bit more like it used to be, maybe people will get involved with programming again."
I tell Eben about some of the Raspberry Pi’s that I have in my house and what I’m using them for. Which includes:
- A local playback only Home Theatre PC running OpenElec, in the living room
- A local playback only music player running Rune Audio, in the kitchen
- With an accompanying app that I’m writing
- And terrible music tastes, apparently
- One hooked up to my WiFi router running pi-hole, to filter ads across my network
- And potentially a set in the home office, for the kids to do their homework on
And Eben tells us that the unfortunate-ness of lockdown has lead to one of the best months for sales of the Raspberry Pi.
Eben:Go on Amazon today, and try and buy a Chromebook.
I then drop the fact that the first computer that Squidge and I had was an Amstrad CPC 464
which I’ve written about before
and Eben and I talk about tinkering with code copied from magazines. I also discuss what “Hello, World!” is
for the listeners who aren’t programmers
Hello, World
For those who are interested, here’s the “Hello, World!” app in different programming languages. Each of these code snippets should compile and run without too much effort, but you may need to install the compiler onto your computer or find an online simluator:
First, C# (See Sharp). This is the language that I write the majority of my applications in; it’s also the language that I’m paid to write in
in real life, that is
using system;
namespace hello
{
public class helloWorld
{
public static void Main(string[] args)
{
// Everything above the following line is "voodoo"
Console.WriteLine("Hello, World!");
}
}
}
Next up is C, one of the oldest and most powerful languages. The operating system for your computer, laptop, phone, and games console was written in this.
#include <stdio.h>
int main(void)
{
// printf means "Print Function"
printf("Hello, World\n");
}
And now Java, which is very similar to C#:
class HelloWorld
{
public static void main(String args[])
{
// Again, everything above this is "voodoo"
System.out.println("Hello, World");
}
}
Last, but by no means least, here’s Python:
print("Hello, World!")
Seriously, that’s it. Can you see how Python is better for teaching with?
Everyday Computing up to IoT on the Raspberry Pi
In March (when we recorded this interview), they had sold 32 million Raspberry Pis
a quick straw-poll among my developer friends shows that they own 2-3 EACH, on average
with 620,000 units sold in March 2020 alone. And when you consider that the original goal was to build 1,000 of them… that’s just staggering. Talk about a runaway success.
And that original goal was to get 1,000 of them built and set up in schools. I honestly think that 1 in 3 of my friends
no, I don’t just know programmers and tech heads
has at least one of the many models of Pi, and are using them something or other every day. Amazing!
Squidge asks a great question about the physical size of the Pi boards, before telling Eben about his Picade
which we first talked about way back in episode 16
And just when Squidge mentioned the old classic Streets of Rage, Eben quickly mentioned that Streets of Rage is pencilled in for Volume 2 of the book. Which is quite exciting.
Code The Classics: Volume 1
In the time since we recorded this episode and it being released
we recorded this interview in April, for reference
I’ve actually received my copy of Code The Classics, and it’s really rather splendid.
Due to the recent changes at Twitter, we are unable to embed tweets at this time. We apologise for the inconvenience.
I would definitely recommend buying the book, which you can find here
Imagine that you could buy a book with a description of a game, an interview with a developer of the original, a code listing for the game, and some meta discussion on the game. That’s what Code The Classics is, and it’s a wonderfully bound and presented book.
The story that I tell about John Carmack recreating Super Mario Bros. 3, pixel-by-pixel, is true by the way. Go read Masters of Doom for the details.
Eben’s Dream List of Games For Future Volumes
At one point, I asked Eben what his dream list of games would be, assuming that licensing and time weren’t issues. His list was:
- Doom
- Wipeout
- Crash Bandicoot
- Streets of Rage / Double Dragon
- Defender
- Arkanoid
- Pole Position
- Pang!
Creating a Wipeout or Crash Bandicoot clone as a 200+ page book would be a glorious read, in my opinion.
Run Away!
I mentioned that I’d written a game called “Run away!” in JavaScript and HTML5. And here’s a link to it: https://runaway-game.netlify.app/
The whole point of the game is that you control a person who doesn’t want to fight, but is being chased by a baddie who wants to eat you. You could run away at a constant rate but you haven’t been looking after yourself, so you get fatigued rather quickly. Whereas the baddie doesn’t get fatigued as quickly. It becomes this delicate balancing act of running just far enough away that you can pause to rest a little before running some more. As the Baddie’s hunger increases, so does its speed; right up until it’s fatigue outweighs it’s hunger and it has to slow down to have a bit of a rest.
The character is moved by using the arrow keys on your keyboard
it also works with touch devices, but it’s a little janky
and you can use the Pause/Break button to pause and un-pause the game.
Your score is how many seconds you’ve managed to survive the onslaught.
Give it a try and see how well you do. If you do try it out, let us know in the comments. I’d love to know whether you survived as long as I did, or if you could beat my score
I got 139.28
Eben then told us about BBC Micro Bot. This a twitter bot that you can tweet some BBC Micro code to, it will run the code, then send you a video of the output. It’s absolutely wonderfule, and this is one of my favourites:
Due to the recent changes at Twitter, we are unable to embed tweets at this time. We apologise for the inconvenience.
Eben’s Recent Games
this list will have likely changed by the time you hear this episode, as it was recorded a few months in advance
- Team 17’s back catalogue on the Amiga
- Kerbal Space Program
Eben references this wonderful comic from XKCD when talking about KSP
- Alto’s Adventure
- Dreams
Jay’s Recent Games
this list has definitely changed since we recorded this interview… but not by much
- Undertale
- 0 A.D
- Canon Fodder
- Wolfenstein 3D
Squidge’s Games
- Borderlands 3
- Streets of Rage
- Dynasty Warriors 7
External Links of Interest
- Support us on Ko-Fi
- Our Facebook page
- Us on Twitter
- Eben on Twitter
- Code the Classics: Volume 1
- Raspberry Pi Foundation on Twitter
- OpenElec
- Rune Audio
- pi-hole
- Hello, World! on wikipedia
- Friend of the show K Jay Miller has written a website rendering engine in Python
- (psst. the K is silent)
- Masters of Doom
- https://runaway-game.netlify.app/
- BBC Micro Bot
- Orbital Mechanics
Music
Links to the music used in the podcast can be found below. Definitely check them out, because they're amazing tracks by awesome musicians.
- Intro music is Among The Stars, from the Cosmos Music Pack by Muz Station Productions
- Spoiler Break music is Spectrum (Subdiffusion Mix) by Foniqz (BandCamp)
- Pallet Cleanser music is Breath Deep Breath Clear (Wu Chi) by Siobhan Dakay
- Outro Music is I N e e d Y o u 私の側て by G.H (removed from BandCamp)