Super Castle Game
Saved games stay in this browser only.
About the game
Super Castle Game is a sliding-block puzzle with one unusual rule: you are not a single piece, you are a shape. You start as a small group of yellow blocks on a grid. Every move slides the whole group one square, and the aim of each level is to end with your blocks covering every hatched square on the board, no more and no fewer.
The trouble is getting the right shape. Loose blue blocks lie around the board, and the moment your group touches one, it becomes part of you, so you grow, sometimes in an awkward direction. Grey boxes can be pushed out of the way, but only if there is room behind them. Red blades work the other way: any of your blocks that slides over one is cut off, and if that splits your group in two, the smaller part is left behind as loose blocks. A level is often a question of the order in which you pick up, push and trim.
The game opens with a short introduction to each idea and then combines them, across seventeen levels plus a bonus one spelling out the name of the competition. The author's tongue-in-cheek pitch sets it in the 13th century, the theme of js13kGames 2023, where the entire game had to fit in 13 kilobytes, zipped. Mark Vasilkov wrote it in TypeScript with his own small game library, natlib.
Playing it here
This is the build submitted to the competition, unchanged. Click Play, choose whether to start with or without music, and the first level begins. The game remembers the furthest level you have reached in this browser and picks up from there next time; the level select screen lets you jump back to any level you have solved.
The level select screen also has a link to more levels made by players, which opens the author's GitHub page in a new tab. Those levels are not part of this build.
Controls
| Input | Action |
|---|---|
| Arrow keys / W A S D | move one square |
| R | restart the level |
| Tap or click | move towards that point |
| Gamepad left stick / B | move / restart the level |
| Icons at top right | music, restart, level select |
A few things worth knowing
Count the squares first. The hatched area tells you exactly how many blocks you need at the end. If you are about to collect more than that, you will need a blade to get rid of the extra.
Picking up is permanent, cutting is not. A loose block joins you as soon as you touch it, even by accident, but a blade can always trim you back down. Plan where the excess will go.
Push before you grow. A bigger shape fits through fewer gaps. Move boxes into place while you are still small.
Restarting is free. R puts the level back instantly, and many levels are easier to understand after one failed attempt.
Credits and licence
Super Castle Game was written by Mark Vasilkov for js13kGames 2023. It is free software under the GNU General Public License, version 3; the icons are Solar Icons by 480 Design, under CC BY 4.0. The licence text and the source code of this build (the author's repository at the commit that produced the competition zip, plus the version of his natlib library that it bundles, under the MIT License) are linked from this page. Repository: github.com/mvasilkov/super2023.