Daniel Byron

Prototyping on the PICO-8

A few days ago I stumbled upon a really lovely piece of pixel art, which I found out was done with the PICO-8 palette. I’d previously seen store listings for the PICO-8, but didn’t really understand what it was until seeing some of the things people had done with it.

If you, like me, had no clue this existed, let me attempt to explain the PICO-8. It’s a “fantasy console” for making small 8-bit-ish games with a built in development environment and game explorer. The “fantasy console” aspect is a little hard to describe. Essentially it endeavours to recreate the experience of developing for and playing on a retro console, by having standardised specifications and development tools, self-imposed limitations similar to those of retro consoles (16 colors, 128x128 resolution, 32kb “cartridges”, etc), its own platform for distribution, and a community built around it.

The games are shared through the in-built game browser, the HTML5 exporter, or PNG images of game cartiridges with the data embedded in them (seriously, that is just such a cute idea). But the real reason the PICO-8 stands out to me, is its value as a prototyping tool. There’s something about working in a limited environment that brings the best out of some people. As Terrible Toybox’s Mark Ferrari said in a recent GDC talk about 8 Bit & ‘8 Bitish’ Graphics (and I recommend watching it as it is a great talk):

“The most creative work I ever did was done when I just had those 16 horrible colors to do it in. If somebody gives you 2 gum wrappers and 3 sticks, and tells you to make the Pieta with this, you will take 2 gum wrappers and 3 sticks as far as they can possibly go in your effort to accomplish your mission. If someone gives you all the artistic resources of the universe and says “make the Pieta with this”, you will dabble in all of those resources until the time is up and you have made nothing at all”- Mark Ferrari.

I have a tendency to do this when prototyping, I get stuck on small details that don’t matter much, I spend too much time trying to make things look nice and work perfectly before getting to a point where I can determine if it’s worth it. I spend a lot of time trying to find the best method to do things that I’m not even sure I want to implement. However, the PICO-8 forces a different mindset. I decided to prototype a card game idea I’d had for a while, and I got a complete prototype finished in a little over a day (so much faster than it would usually take me). As part of this prototype I needed some card assets. I like to make things look nice, and enjoy making game art, so I tend to spend more time than I should making things pretty. But, when limited to 16 colors and a small resolution, there’s not a lot of room for small unnecessary details. In fact, it’s really easy to create simple, yet nice looking, assets in very little time.

Here’s a mockup level using assets that I made in just a few minutes using the in-built pixel art editor:

Art Assets

Similarly, the in-built sound editor is great for quickly creating simple sounds and chiptunes. I’ve previously used sfxr and similar tools for this purpose, but having it included in the editor is great (and reduces the chances I’ll get distracted and end up spending more time away from prototyping).

The language used for writing the games is Lua, and whilst I’m not very comfortable with Lua (particularly because the PICO-8 uses a different version to what I’ve used previously), I could learn enough to get going by reading through the cartridge data of games in the explorer, and by doing a little reading.

Finally, here is a GIF of the completed prototype. PICO-8 is always recording, so exporting a GIF is only a keypress away.

Gameplay GIF