PuzzleScript is an open-source, browser based tool for making small grid based games by indie game developer Stephen Lavelle. Published already in 2013, it’s still the lesser known gem among the other small game makers.
I can’t quite remember when or how I was introduced to PuzzleScript, but I was immediately hooked. I had sort of been wanting to at least try out making games, but hadn’t really come across a tool I would feel comfortable with. Unity and Godot felt daunting in their complexity. Twitch was simple, but I had no interest in writing text based narratives. PICO-8 still feels more like a thing for programmers to show off their coding skills rather than a tool for newcomers. Bitsy is charming, but very limited in what it can do.
The first look of the editor view might not feel that inviting or intuitive. The right side of the screen shows a playable preview of the game, with plenty of example games available. Below that is a console for error messages and a little widget for creating sound effects. Everything that makes the game is written on the text panel on the left, under separate headings for objects, sounds, rules, levels, etc. Even the graphics are “drawn” in text, with numbers representing different colored pixels, like so:
PuzzleScript takes pixel based retro aesthetics to the extreme, with objects only 5 by 5 pixels in size. This restriction is somewhat emblematic of the general design philosophy of the platform. The focus is on making it easy to implement ideas into something playable without getting sidetracked into visual finessing. My pleas on the forum for better resolution sprites have met with a verbal equivalent of a shrug. But now that forks like PuzzleScript+ have made this possible, I usually end up using the original version for both the simplicity and for the challenge of making pleasant looking graphics within the constraints.
The script part in PuzzleScript is in fact extremely simple and easy to grasp. The mechanics are defined by a list of simple rles, basically if / then statements based on the movements and positions of the objects in relation to each other, with no variables or numeric calculations involved.
Let’s take an example. Here are the mechanics for the classic box pushing puzzle game Sokoban, expressed in one line.
[ > Player | Crate ] -> [ > Player | > Crate ]
This basically says “if a player is next to a and crate moves towards it, move both one step to that direction.” Add a win condition that crates need to be moved on targets, draw some levels either with characters or a simple level editor, and you have a game.
Add another rule, and now the player can pull the crates too.
[ < Player | Crate ] -> [ < Player | < Crate ]
Make three gems in a row disappear? Poof!
[ Gem | Gem | Gem ] -> [ | | ]
It’s very easy to learn the script by tinkering with rules, sometimes coming up with interesting new mechanics. Once you get more familiar with it, the script is surprisingly versatile, though some things are still easier than others: I can implement randomised labyrinths or flawless pathfinding in just three rules, but have no idea how to even get started drawing a circle.
PuzzleScript is not just for making puzzles either. Designing a walking simulator is very similar to making one in bitsy, but with the benefit of being able to add more complex features if needed. While designing games that are not turn based is a bit tricky and smooth multiframe animations might not be worth the trouble, any genre that can be implemented on 2D grid is certainly possible.
I am not a game designer, at least in a sense that I would go advertise it as a skill on my LinkedIn profile. Yet, I make games. For me, PuzzleScript is something between a hobby and a pastime, and definitely one that has changed and deepened my relationship with games in general. I’m much more tuned to analysing the gameplay from a developer perspective and find myself thinking, how could the core of that mechanic be implemented in PuzzleScript? Or even, what would that visual style look like reduced to 5 by 5 pixel tiles? For me, making games has become a game in itself.
Some of my games are demakes or variations of older ones, some are more original in their concept, some just simple experiments. Most are unfinished, and will remain so. Though I’ve not been active making my creations available to others, many have. Itch.io currently lists over 1200 games made with PuzzleScript. Pick a random one and the changes are that it is the first game the designer has made. Maybe they are taking their hobby further, perhaps not. That’s hardly the point. For anyone interested in games, making even small ones can be a truly rewarding experience.
Pictures: Screenshots from games made by the author.
You might also like
More from Toys and Gadgets
Build Your Own Car Collection, A Review of Lego Speed Champions Series
Looking for a hobby that won't take your entire time and savings account at the same time? These Lego sets …
The Future of Handheld Gaming? A Review of Playstation Portal
New Playstation handheld gaming device is here, but it’s not following the steps of its predecessors. It is determined to …
The PSVR2 – More like a Blizzard Game than an Indie Title
Cable-bound but capable, comfortable, and accessible, the PSVR2 is a virtual reality (VR) headset that prioritises a smooth experience over …