Creativity Within Constraints: Having Fun with PICO-8

I’ve been learning about and playing with PICO-8, a “fantasy console” (as their website phrases it). It’s a virtual machine with specs designed to be extremely limited compared to modern computers. With a 128×128 display, 16 colors, and a program size confined to 32K, you’re dealing with what would now be considered pretty dated specs.

But that’s the point of PICO-8. It was designed with constraints so that creators could build things within well-defined boundaries. Experimenting with it is ultimately a fun exercise in creativity within those constraints.

A Few Cool Examples

The main focus of PICO-8 is making games using the console’s built-in tools, like the Lua code editor, and editors for sprites, maps, and sounds. Given the restrictions, people have produced some pretty remarkable games, such as:

Click to Play!
Celeste

Click to Play!
Picoracer-2048

Click to Play!
Picofox

And more here.

But people don’t just use it for games, as you’ll see once you start exploring the existing projects, known as cartridges or “carts.” One popular way to share these carts is through the Twitter hashtags #pico8, #tweetjam, and #tweetcart, where people share things they’ve made with a source code that can fit within the 280-character limit on Twitter. Games don’t usually work with such a small source, but people have made plenty of cool visualizations and prototypes. Here are a few of my favorites:

What I Love about PICO-8

What makes PICO-8 so fun to use is that many of the overhead decisions are made for you. You’re not worried about delivery platforms, how many features you can fit in, or how you can share your creation. Those decisions are already baked into PICO-8.

All you do is sit down and develop a small thing in the given constraints. This allows you to think about design, rather than content.

Because you have such a limited space for your source code and such a small screen for output, developing for PICO-8 forces you to consider how to best communicate your design to the user. Your game or toy must be easy to understand and use, and you can’t accomplish that by throwing more things on the screen.

But that’s the beauty of the constraints. PICO-8 isn’t made for building a complicated and graphically impressive game. It’s made for little things. Once you know what your scope is, you can be creative about fitting your ideas within that scope, instead of trying to change the scope to fit your ideas.

Since PICO-8’s “resources” (i.e. memory, color, sound) are so limited, you have to be more careful using them. You really have to boil that concept down in order to take advantage of the resources you have. Maybe you want to have a game where your characters go on a big journey and learn a lot about themselves along the way. A concept like that might lead to this:

Click to Play!
Two Hiking Cats Have An In-Depth Conversation about Life, The Universe, And Everything

Or maybe you want to generate parts of a universe and allow users to explore. Narrow that concept down to fit on the PICO-8, and you end up with this:

Click to Play!
A Billion Pale Dots 1.0

PICO-8 is a great platform for fun prototypes, proof-of-concepts, and microgames. I definitely recommend checking it out, looking at its forums, and searching Twitter for cool creations made with it. Its old-school constraints can be really engaging, and they help to bring out creativity in those who use it.