Making a game in PICO-8: Getting an idea

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.

16 Comments

  1. Scandalon says:

    Oh dear Lord (of the Rings, of War, of Code) you’re already started down the path of madness, listening to other people and changing your mind. :P I’ve been down that road many times, hopefully you can stay on task/motivated more than me! Maybe having it public with people following can help with that.

    I happen to have Pico8, I bet many here (probably through owning Voxatron) do too. Will you be sharing your project files as you go along? (Github?)

    Bonus points if you can work “frog blast the vent core” into the game somewhere. Probably a frog-fractions reference in there too.

    • Alex Wiltshire says:

      Thanks! Truth be told, I did it last week so RPS (and I) get a Christmas break, and yeah, I will be sharing the game a bit later during the series.

      • warkwark says:

        You let us peek behind the curtain, and we shall never be the same.

  2. Janichsan says:

    Kometbomb’s Pico Racer is funnn Out Run

    It rather reminds me of Buggy Boy.

  3. Moonboy says:

    you know there’s an actually real “pico-8” handheld-tiny-pc-console-thingy called Pocket Chip? link to getchip.com
    you can make your frogs in boxes game run there as well!

    • Scandalon says:

      I didn’t. Now I do. There goes my morning wasted looking at stuff… :/ Thanks moonboy.

      Thoonboy. :P

    • jaronimoe says:

      I have the pocket chip and while it’s cute to get your pico8 games to run on it, the clicky keyboard is unfortunately very unresponsive. so just recommended for turn based games ;)

      also: please do not consider to actually code your pico8 game within pico8, rather use an external text/code editor like atom. I found this short blog post very helpful in setting up a productive pico8 development environment:
      link to codepen.io

      • Premium User Badge

        phuzz says:

        The keyboard is bad like a Spectrum, but I still kind of love how I have a whole proper computer in a tiny box, (even though it’s way less useful than a tablet pc.)

      • Alex Wiltshire says:

        Yeah, the PICO text editor is kind of terrible to work with. I’m on a Mac, so using TextWrangler, though I keep falling foul of editing a sprite or audio in PICO and then dipping into the code externally before realising I’ve created two versions AGAIN (for those wondering, this is because a PICO program is a single text file that contains all code/images/everything)

        • ButteringSundays says:

          Use Atom over TextWrangler any day. It’s still free.

      • Scandalon says:

        I love you all for your knowledge and recommenddations! please though, no tool wars, Atom is installed but learning it is on the back burner for now, as I know Text Wrangler/BBEdit better, so bounce between that and VSCode (!) for now. Language def for pico8 though would certainly bump that up though.

  4. Elusiv3Pastry says:

    This is a brilliant idea for a series! If you manage to escape from this with your sanity intact may I recommend tackling ZQuest next? ZQuest is an emulator and editor for the original 8-bit Zelda engine that allows you to build your own worlds/quests. It’s fascinating and is probably one notch less archaic than just learning to edit straight Assembly.

    If you’re interested in this sort of thing though I advise you to 1)stick with it, and 2)watch the thorough and most excellent tutorial series by TeamUDF here: link to youtube.com

    Even if you don’t want to go through the pain of learning how to use it, you can still download other people’s quests from the site.
    You can download it here: link to zeldaclassic.com

    Fun fact: I used this to propose to my now-wife a few years ago. Although she’s only a casual gamer in general, she is quite a hardcore original Zelda fan so I spent three sleepless months crafting a very detailed and tricksy quest for her with this thing (honestly I never would have survived without that TeamUDF tutorial series). I told her it was a lost version of an unfinished sequel that got scrapped in favor of the Zelda 2 engine that just turned up one day. She accepted my explanation that all the odd humor and quest text that I wrote in the game was a result of weird, overworked, underpaid developers from the 80s right up until the marriage proposal came up after she beat the final boss.

    • KingFunk says:

      You, sir/madam, win the right to have children.

      EDIT: Gender assumption removed…

    • Alex Wiltshire says:

      Ha, that’s amazing, and thanks for the tip! I’ll look into it! Though “probably one notch less archaic than just learning to edit straight Assembly” might be seeeeeveral notches above my station.

  5. Premium User Badge

    MajorLag says:

    When I read PICO-8 I was thinking of CHIP-8, a somewhat different beast often used as a target for writing your first emulator. It had 64×32 monochrome output, so I was a bit confused by the colorful screenshot.