Skip to main content

Making a game in PICO-8: Getting an idea

Making games is frightening

Welcome to the first part of a FESTIVE SERIES in which over the course of a week I will smash my head against something I’ve never done before. Specifically, making a game. And I’m terrified.

I’m going to use PICO-8 [official site], which its creator, Joseph “Zep” White, calls a ‘fantasy console’, but really it’s like an indie-fied emulator of the computers I grew up with, like the BBC B. When you start it, you’re presented with a 128 by 128 pixel display glitching into life, this little do-do-do-do! jingle, and a command prompt.

Everything you need to make games is right there: a mini Lua code editor, sprite and map editors, and sound and music editors. It’s reactive, instant to test to see if things work, and generally delightful. And the stuff people have made in it is extraordinary. Little short-form games: colourful, fun, immediate, varied. Type SPLORE into the command prompt and this little browser for games posted to the PICO-8 forum comes up. Since no game, including its graphics, is bigger than a 65K text file, you’re playing them pretty much instantly. It’s lovely.

Here are some of my faves, each playable in your browser right now:

Guerragames’ The Green Legion is a fast and fun shoot ‘em up
Sophie Houlden’s Dusk Child is an intricate puzzle-platformer
Benjamin Soule’s Mistigri is Mario Bros meets Super Crate Box
Kometbomb’s Pico Racer is funnn Out Run

And there are so many more.

So no, I’ve never made a game before, but I’ve always wanted to. Writing a set of instructions that define rules that simulate a little world seems like magic, and I’ve always wanted to know what that feels like. Well, actually I did, back in about 1988, make a choose your own adventure about ninjas in BBC Basic using a lot of GOTOs. So I know a little about IFs and THENs.

I also know, from following a couple of YouTube tutorials, roughly how a PICO-8 game is structured. You have an update() function, which runs 30 times a second, and a draw() function, which draws stuff to the screen 30 times a second. Then some other stuff. Easy.

So I sit down on the first morning. I’ve got an idea, an infinite-climb platformer where platforms randomly appear from above and scroll down. You’re collecting items to help you jump higher, and maybe some are hazards that reduce your jump. It’s for RPS so you’re, I don’t know, a bear? Touch the bottom of the screen and it’s game over. It feels to me like it’s nice and limited, and technically doable if I can work out how to do jumps and generate platforms. And it happens that there’s some nice little platformer demo code in issue two of the PICO-8 zine. So I fiddle around with it.

It looks OK, right? Check out the little animation I gave his hat when he falls! It doesn’t feel so good and the character interacts with the platforms a bit oddly, but it seems like a good place to start from. And then I speak to Benjamin Soule, who’s one of the most prolific and original PICO-8 creators. He makes an incredibly wide range of kinds of games, from action to strategy, puzzle games and shooters, with consistently sharp and distinctive design ideas and cute visual design.

“About your game, if it's your first game, maybe a platformer is not the best choice,” he tells me after I describe my ambitions. “Collisions and readjusting position code are sometimes tricky.”

This puts the stops in fast. A fantastic thing with PICO-8 is that you can look at and edit the code and assets behind every game. And when I started looking at platformers, even the code for the demo Jelpi which comes built into PICO-8, I started to realise that their code for dealing with collisions very quickly got very complex. Unreadably complex for someone like me. It was time to rethink.

I started to imagine a game played on a grid. A kind of puzzle game? But where you shoot? But your shots don’t kill? Instead, they push stuff into goals? This seems doable?

But what about the theme? As reported by this very publication, a guy called Nate Crowley has been coming up with hundreds of game ideas on Twitter, first for a laugh, and then to take donations for the Zoological Society of London’s amphibian conservation work, and one seemed to chime:

382) No Frog Left Behind: RTS where you organise an army combing a polluted swamp, putting poorly frogs in boxes & shipping them to safety

I am going to make a game about pushing frogs into boxes. The game is afoot.

Here’s the full series, which we’ll be publishing daily over the week of Christmas. Also, just to note that PICO-8 is available right now in a Humble GameDev Software Bundle, in case you're interested in trying it out.

Read this next