Recreating Heroes of Sokoban
I love the game Heroes of Sokoban by Jonah Ostroff. The game is the perfect blend between simplicity and depth. The visuals of the game are minimal but still clear, the sound effects are simple but engaging, and the puzzle design is fun and challenging.
After watching a video by a YouTuber named Juniper Dev titled "Make Tiny Games", I was inspired to try recreating Jonah's game using the Pico-8. The Pico-8 is the perfect way to learn how to create games that are fun without getting overloaded by the complexity of making a full game. Even just spending a couple hours is enough to create something unique. It has everything you might need to create a full game including writing code, drawing art, making music, and designing levels. I learned how to use the Pico-8 in just a day, watching a few YouTube tutorials and reading a few blog posts on how to get started. After that, I was ready to attempt my goal of recreating Heroes of Sokoban.
I have some experience making small puzzle games, but I have to say this game is super fun to try to recreate. The process of switching between my version of the game and Jonah's and seeing what feature I had to try to implement next was a great learning experience. I wasn't sitting at the computer completely unsure of what to add next, I could just look at the problem that I needed to solve and work towards a solution.
I will say, there were a few times when I really wished I had a debugger. The Pico-8 is great because it's so simple, but sometimes simplicity has a cost. I ended up resorting to using the built-in printh function, which could print text to a file as the game was running, which was not exactly the best experience.
I come from a low-level systems programming backend, and I love diving deep into everything that goes on in my program. As a result, I am very comfortable stepping through code in a debugger and watching how my program runs. Ryan Fleury, a developer from Epic Games, has been working on The RAD Debugger, and it's clear he understands the core idea that in order for a debugger to be useful, it has to be faster than adding print statements to your code and rerunning it to view the output, which is exactly what I had to do many, many times while working on the Sokoban game.
I will say, the overall experience using Pico-8 was very charming. People praise it because it has constraints, which aren't always necessarily a bad thing. Oftentimes constraints can actually lead to more freedom. Instead of sitting in front of your computer with an endless stream of ideas running through your brain and not knowing where to start or how to proceeded on a project, constraints narrow the possibilities to just a few clear options, making it easier to pick a direction and start creating.
I may write another blog post about some of the algorithms I came up with for implementing sokoban, as there were some tricky cases that had to be handled. If you are interested, you may want to subscribe to my RSS feed.
As always, if you have any questions, please feel free to reach out. If you want to play my version of the sokoban game, it's hosted as a web version on my website here. If you want to play the original Heroes of Sokoban games (which I strongly recommended you do!), you can find the links on Jonah Ostroff's website.
Questions? Thoughts? Leave a comment!