eieio.games

by nolen royalty

Game 6: Get the DVD logo in the corner

Achieving my childhood dream (of getting the DVD logo in the corner)

Jul 3, 2023

This game was linked from New York Times Watching newsletter on Friday September 8, 2023. This was super cool for me! Margaret Lyons I have no idea how to get in touch with you but thanks for mentioning my game!

Basics

  • Genre: Uh. Arcade action game / childhood dream achievement simulator (?)
  • Links: play it on itch or check out the code on github
  • Engine: PICO-8
  • Time Spent: 4 days (June 27th - June 30th)
  • Other Stuff: I built this game at Recurse Center, a magical place that functions like a writers retreat for programmers. Consider applying!

Gameplay Video

My favorite part was adding manual 'particle effects' by drawing individual pixels to the screen

High level thoughts

This game is tiny! It takes 45 seconds, has no ambitions to be longer, and is based on a joke. I love it.

After the UI complexity and lack of a theme in ReShape it was refreshing to make something so limited. The scope of the game was perfect for learning a bit about the PICO-8 (and the PICO-8 probably pushed me to make a game of this scope, which is also great).

I think the gameplay itself is…fine? It’s kinda hard, but not that hard, and the strong theme + short length means that you’re probably gonna finish the game if you start it. This is the most arcadey game that I’ve built and it’s been really fun to get messages from friends with their high scores. At the time of writing the high score from a friend is 21 (mine is 26 but that was a freak accident).

This is also my first PICO-8 game! I loved some parts of the PICO-8 experience and did not like some of the others. But on the whole I’m happy that I gave it a try and I’m excited to make some more PICO-8 games this year.

Wait, the PICO-what?

A tl;dr of the PICO-8: it’s a “fantasy console 1” with restrictions on graphics, sound, code size, and processor speed that mimic the consoles of the 80s. You can create sprites/music/sound effects and write code straight from the console.

1

That is, an emulator for a console that doesn’t actually exist

The PICO-8 terminal. The PICO-8 logo is displayed at the top, then some boilerplate and the line 'TYPE HELP FOR HELP', and then a command prompt.

A comfy little PICO-8 terminal

The tools that the PICO-8 gives you are pleasantly simple but also primitive relative to modern game engines; if you want collision or particle effects you’re gonna have to manually handle collision on a pixel-by-pixel basis and draw your particles by hand. This simplicity is the point - constraints breed creativity and all that. And a fun side effect of these limitations is that PICO-8 games have a distinct and relatively consistent feel.

The most well-known PICO-8 game is likely the original version of Celeste, which was made in the PICO-8 for a gamejam. The PICO-8 version of Celeste is playable as an easter egg in the real game! Check it out if you haven’t.

The PICO-8 environment: tooling

The PICO-8 comes with some built in tools:

  • A sprite editor. I found myself missing Aseprite a bit, but being able to edit sprites directly from the PICO was great! I may try using Asperite with the PICO in the future but it’s not a sure thing.
  • A sound effect editor. I found the editor wildly unintuitive until I watched this Gruber video and then got the hang of it pretty quickly. It’s neat and I’m excited to play with it again.
  • A music editor. I am too used to playing the keyboard to find it super pleasant, but the editor is relatively intuitive (and would be hard to swap out with how the PICO does music).
  • A code editor that I absolutely cannot stand oh my goodness 2.
2

This is not meant to disparage the PICO-8 devs! I think they were going for a very specific feel for the console and the editor and nailed it; the editor is just a little past what I can handle D:

The PICO-8 code editor. The lines are very short and the font is very difficulty to read. Some code complaining about the editor is visible.

The lines don't get longer if you make the editor wider. The font just grows.

Fortunately to swap out the code editor I just:

  1. Installed the pico8-ls extension for vscode, which gave me nice syntax highlighting and an API reference.
  2. Changed the code in my main pico8 file to just be include code.pb and wrote all of my code in code.pb

Step 2 is necessary because the PICO-8 stores sprite / music data in the same file that it stores code - I didn’t want to be editing the same file from vscode and the PICO-8.

I ended up pretty happy with this setup. My only gripe is that I need an easier-to-search PICO-8 language reference; this manual is hard to search because there’s no way to limit your search to, say, just function names.

The PICO-8 environment: vibes

It felt super natural to ship a game this small on the PICO-8. I loved that!

During development I considered all sorts of extensions - for example, maybe you could collect tokens that gave you more time, or you could upgrade your TV / your DVD logo to make it easier to score points, or maybe there could be enemies that were trying to bump the logo. Maybe this game was actually meant to be a Vampire Survivors clone!

And I think if I was writing in Godot I might have given into more of those impulses (or at least tried them out). This game is so simple! Games are meant to have decisions and complexity and choices! It’d be silly to put the game up on itch in this state!

But the PICO-8 is so simple that it felt totally natural to ship this game as-is; I felt as though the simplicity of the console gave me permission to do something simple. Of course I’ve always had that permission. But sometimes it’s nice to have a push.

I’m excited to revisit the PICO-8 and that push is a big reason why.

It’s great to have a theme again

As a game player I sometimes skip through themes to get to mechanics. As a kid I’d skip cutscenes; I’ve played hundreds of hours of Path of Exile but absolutely cannot explain the story. This isn’t always true - my favorite game is easily Outer Wilds and that’s as much due to the story as the mechanics - but it’s often true.

And so when making games I sometimes talk myself into thinking that a theme isn’t that important. This was certainly true with ReShape TD and probably also with click, click, trick. Both games have some neat mechanics but it’s hard to explain what the games are about.

“Put the DVD Logo in the Corner” is the exact opposite and I think that’s great. There is a single mechanic in this game and it is “make a square land in the corner of a bigger rectangle.” Not a very exciting mechanic! But I’ve had more fun telling folks about this game than anything else I’ve made - and that’s all because of the theme.

I’ll do my best to keep that in mind for future games.

Wrapping up

That’s it! I had a lot of fun making this game and working with the PICO-8. I’m interested in building some more small arcade-feeling games and looking forward to returning to the PICO.

Right now I’m toying with a game that relies entirely on an (ab)use of the OpenSearch spec to build something that runs entirely from the Firefox address bar. I’ll probably get back to something more, uh, traditional next.

An update from the future (2024-07-05): I ended using OpenSearch to run Wordle in the Firefox address bar. And I can’t say I’ve made a lot of traditional stuff since then :)

Thanks for reading!

Keep up with me on my socials 👆

Or sub to my newsletter here! 👇