The True Slime King

The True Slime King is a single player hardcore puzzle platformer with a focus on tight controls, challenging maneuvers, and mind-bending puzzles. All of this is achieved with just three buttons: left, right, and jump. Use your sliminess to stick to walls and cling to ceilings in order to avoid obstacles and reach hidden items. Whether you’re a speed demon crushing records or you’re just interested in progress through the story mode, one thing is guaranteed: you will die a lot in the process. But don’t worry, you’ll be respawned and back in the action just as fast as you can die.

False kings have taken over the 5 kingdoms. You must search through the kingdoms to find these false kings, battle them, and beat them in order to reclaim your title as king.


  • 115 hand crafted levels that ease you into mastering the controls and solving complex puzzles.
  • Large overworld with hidden secrets to reward exploration.
  • Soundtrack of 39 original songs that are sure to keep you on the edge with their electrified chiptuney-ness.
  • In-game level editor for making your own levels and puzzles.
  • Replay system to race against yourself and reflect on all of your failures.
  • Supports custom keybindings.


Dev log (I haven’t updated this in a long while)

2017-07-27 (Alpha 1.7) – Chunk Loading for Large Worlds

There is no demo available for this version of the game.

Now that I’ve started building a bigger overworld, it’s become necessary to implement some sort of chunk loading system. The initialization scripts for the walls objects take up the most CPU in the first step when a new room loads. This is because they all run a script that autotiles them.

I’ve begun implementing the chunk loading system. There is a 3×3 grid of active chunks that moves around with the player and initializes the wall objects as it reaches new chunks that haven’t been loaded. Right now it only works with the wall objects, but I plan to use it for as many objects as is feasible. I would also like to use chunk loading on as many levels as I can (not just the overworld), because I have a few levels that are large or have a lot of wall objects and I don’t want them to be excessively laggy on the first frame the player enters the room.

Below you can see what the chunk loader looks like in action. Each wall is on a 32×32 grid, and each chunk is 96×96. I use a 2D array to keep track of which chunks are loaded, and in the GIF below you can see that I’ve drawn a transparent red overlay on all of the unloaded chunks. You can also see the wall tiles getting initialized with their autotile script as the player (and active chunk area) moves around.

The chunks will be much larger in the actual game so that you don’t see any of the loading going on, but for demonstration and debugging purposes, I have left them small. Also, the grids and red overlay will not be drawn in-game.

2017 07 27 - Slime King

As a bonus, in this GIF, you get to see some of the new overworld and some of the new door entrance sprites 🙂

2017-07-26 (Alpha 1.6) – New Lock Animation

There is no demo available for this version of the game.

Normal Mode and Hard Mode

Since the beginning of this project, I’ve designed the game to have a normal mode and a hard mode. The hard mode is all of the same levels as the normal mode, but each level is tweaked to be harder. I mention this because I’ve completed all of the normal mode levels (except for the bosses and bonus levels), and now I can go on to really develop the overworld. Out of the 230 levels I plan to have in the game, I have finished about 130 of them.


Since normal mode levels are done, I’ve been completely redesigning the overworld from the ground up. I want the overworld to be a place that you can adventure through, not just a place that lets you navigate from one level to the next.

One of the things that I want to do with the overworld is to give the player choices with how they navigate through the overworld. To guide the player through the overworld, I restrict access to certain areas that require the player to somehow unlock them. There are no power-ups in this game, so I can’t create locks that require new skills to overcome, but at the same time, I don’t just want all the locks to be physical barriers.

You can read more about these non-blocking locks in the previous dev log post (1.5 – Reworking The Overworld), but for now I want to share a new lock animation (for one of the physical barriers).

Bonus Level Overworld Locks

There are bonus levels in the game that, if beaten, open shortcuts in the overworld. In order to beat the bonus level, you must collect all 8 bonus goos in the level. I’ve been working on a lock that opens up after you collect all 8 of these goo. The lock has 8 gray goo slots on it that light up (to green) based on how many goos have been collected. When you have collected all of the goos, it triggers an animation to show the player that they unlocked the new area. Here is the animation:

2017-07-26 - Slime King Lock


2017-06-21 (Alpha 1.5) – Reworking the Overworld

There is no demo available for this version of the game.

Update Long In The Making

It’s been many months since I last posted an update on The True Slime King, but I’ve still been working hard on it. I wanted to talk about one of the biggest changes I’ve made to the game. Since the last update, I’ve done an overhaul on the overworld (the place where you access all of the levels from). The overworld used to look like this:

screenshot 5

I really wanted to take the opportunity to make the overworld into a more interactive experience. While the layout and graphics for the overworld aren’t finalized yet, the features are all there. Here’s the new overworld:

2017 06 21 Optimized

For the new system, I’ve created an overworld that the player can move around in, and there are cave style entrances for each of the levels. I’ve put all of the levels in groups of 5. You will start the game out with the first group unlocked and will have to unlock the next group. To unlock a group, you have to either (1) beat all of the levels in the previous group, or (2) get a sufficiently high score on some of the levels in the previous group.

An Overworld For All

I wanted to keep speedrunners and casual gamers in mind in designing these unlocking features. For speedrunners, I wanted to give them the option to choose to skip levels by performing really well on all the others in a set of levels. For the casual gamers, I wanted them to be able to unlock a group of levels by simply beating all of the levels in the previous group (irregardless of their scores on those levels). The benefit of being able to skip levels also works out for the casual gamer, because if they get stuck on a level, they aren’t forced to play it if they can do well enough on the other levels.

For the casual gamers, I created a gate that unlocks when you beat all 5 levels associated with it. For the speedrunners, I created an extending block that is proportional to the points for the 5 levels. When the extending block is fully extended (after reaching a sufficient amount of points), the player is able to access the next area while bypassing the gate.

In the GIF above, you can see the extender block in action that grants access to the next area when fully extended. The goo particles you see flying are the goo points (that you’e earned) from each level that fly over to the start of the extender and grow the extender block.

Here’s the lock gate (in it’s locked state) that blocks access to the next area.

Runner 2017 06 21 17 06 52

Here is is with a few of the levels completed:

Runner 2017 06 21 17 08 22

And here it is with all 5 levels complete (in its unlocked state):

Runner 2017 06 21 17 08 58

2016-11-02 (Alpha 1.4)

There is no demo available for this version of the game. There were tons of changes, updates, and fixes put into this build. Check out the alpha 1.4 video to see (and to catch a preview of the soundtrack).

2016-10-13 (Alpha 1.3)


  • Removed fastfall (“S”) from the game
  • Removed “press Enter” to restart levels
  • Inserted/added/redid levels: 1_1, 1_2, 1_3, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15
  • new sprites for key and bars
  • new sprites and tiling for blue crystals
  • levels now have to be unlocked
  • added replay system when you beat a level
  • added a small buffer time at the beginning of the level where player’s input doesn’t affect the character. This is so that the play isn’t immediately thrust into the game as soon as the level loads.
  • Variable jump height now scales a little bit with how fast you are traveling (so that letting go of the jump key at high speeds yields a less abrupt stop).
  • Tweaked air friction, ceiling friction, and conveyor mechanics/speed to give the player better control.


  • Fixed bug: memory leak with surfaces.
  • Fixed bug: exiting from a level would send you back to the crystal caves instead of the correct overworld.
  • Bug: Error happens if you stay in a room for more than ~530 seconds (array becomes too large).
  • Bug: Instant replay GUI is jittery.
  • Bug: Replays don’t reset objects in the room, so the objects are desynced or not present.
  • Bug: Going to the next level from the instant replay doesn’t update the player’s position in the overworld.
  • Bug: You have to enable “load replays” in order for your best time to be displayed. “Load deaths” doesn’t affect this.

2016-10-07 (Alpha 1.2)


  • lvl_2_2
  • lvl_2_3
  • sidebar goes transparent when player is near
  • replay and death counter display
  • buttons for deleting replays and deaths
  • different sprites and alpha sliders for replays and deaths


  • Error happens if you stay in a room for more than ~530 seconds (array becomes too large).

2016-10-02 (Alpha 1.1)


  • Animated player sprites
  • Conveyors
  • New worlds: Mushroom Mantle and Metal Mines
  • New levels: 1-8, 1-9, 2-1, 3-1
  • New animated options menu
  • New timer display


  • Fixed resize screen bug.
  • Error happens if you stay in a room for more than ~530 seconds (array becomes too large).

2016-09-29 (Alpha 1.0)

Released first demo of the game on