Pico-8 woes!

Here I am, struggling to finish a game again! A poor craftsman blames their tools so here I am talking about what are the difficulties with developing games in Pico-8.

Constraints

Constraints are a double-edged sword. They can of course be good when you are struggling from feature creep or overscoping your projects. When you look at Pico-8, you are not going to think “I’ll use this to create the next great MMORPG” (is this still the synonym for very difficult game to make? Do people even play MMOs anymore?).

But constraints are also, well, constraining. In my Pac-Man clone, I struggled with path finding. I managed to set up something that uses breadth-first search but quickly found that I can’t call it on every frame while keeping a steady 30 fps. I don’t need to call it on every single frame, but that would involve me getting clever and making some sort of queue to make it so that I am calling the pathfinding function on every other frame. This is doable but when you factor in the fact that you have 4 ghosts, this orchestrating can become quite tricky. It makes the code very complex. Which leads me to my next issues.

Developer experience

It turns out I am quite used to the various quality of life features that something like TypeScript offers. Being able to create types really helps when the project grows and become non-trivial in size. When you are no longer able to remember everything, its hard to know if you called some key row or y. And if you want to look it up, thats difficult as well. In JavaScript/TypeScript, you can Ctrl click or Command click on a function call and it will reliably take you to the definition. With Pico-8, the language server (I assume this is the tool that enables this functionality) is just not clever enough. The end result is that you spend a lot of time jumping from one part of the code and another and fixing bugs that are essentially typos.

Debugging

Speaking of bugs, the various constraints of Pico-8 make it quite hard to debug things sometimes. Due to the limited resolution, you can only print a few variables on the screen at a time. It can also be quite difficult to step through the code (although I do now know that you can pause the game and then hit . to advance the game by 1 frame).

Its also quite difficult to avoid regressions because testing really isn’t a thing. I did try to set up something to run some tests but it was pretty hacky.

Rant over

Like I said, a poor craftsman blames their tools. These are not insurmountable problems by any stretch. And its clear that Pico 8 can be used to create very complex games, just a have a quick browse through the subreddit and you’ll be blown away. It’s just, when its already hard to find the motivation to sit behind the computer to work on your game after a long day of office work and just life, these things can get annoying. But do not be fooled! Seeking a different tool is not the answer. Its fine to try different engines and tools, but there is no silver bullet. They are bound to have different issues. In the end, do your best to carry on.

I am reminded of a clip from Jonathan Blow’s stream where he talks about motivation. To sum it up very loosely, he says something to effect of: there is no silver bullet, if you want to make games, then you just make games, if you don’t, then you don’t, and thats ok too.

I am slightly of two minds about this position. On the one hand, I agree. After all, I enjoy playing Slay the Spire 2 and I keep going back to it. I’m not asking YouTubers “what do I have to do to play Slay the Spire 2 more?”. On the other, I think its not that simple. I don’t know Mr Blow’s situation, but in my case, I have to balance this desire (or this belief that I have a desire) to make video games with the rest of my life. There are only a few slots in the day when I realistically can work on my game projects and when those times come up, I might be tired or preoccupied with something else or have any other excuse to not work on the game. Because at the end of the day, it is hard work so there has to be some level of “overcoming a position of comfort” to engage in the activity.

I often wonder what this says about me and my pursuits. If it is so hard to dedicate time to this hobby, am I really interested in it? Why am I interested? What motivates me? I really cant say, at least at the moment, but I hope to find out.

Also! No worries as I can now shelve this current project for a bit since the Gamedev.js Jam 2026 ($30k in prizes!) – itch.io game jam is starting up and I think I shall attempt to take part!

Comments

Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *