• Hey! Guest! The 36th GMC Jam will take place between February 27th, 12:00 UTC - March 2nd, 12:00 UTC. Why not join in! Click here to find out more!

Space Cat Wizard: [Update 19: Save Slots]

I am doing a game jam to enhance my platformer engine. The last 1 week game enhanced it a lot and at the end I have something quality.

With this in mind I set an unachievable goal... MetroidVania in 7 days. I've made smaller MetroidVanias in the same amount of time, but that was with an artist. I will take a stab at making a full 30 x 30. I spent the first day retooling the platformer engine to load rooms rather than levels.

* edit * Well I failed to get the game out in 7 days. The game is now a map of 60 x 60 screens and doubled its resolution. So to be more impressive I pushed the first few updates back to the second post and dumped a bunch of later screenshots here.

- Ledge cling. Crouching. Far jumping. Standing jump is a higher jump.
- 3 sectors. 130 rooms (and 200 empty rooms for the unfinished 5 other sectors)
- Save points and continuing.
- Map rooms that reveal new sections of map.
- Mini map at the top right and a mega map.
- Ability granting via hopping into a cybernetic lion's mouth.
- 4 directional shooting and crouch shooting.
- Catball with cat bombs and bomb jumping including further horizontal bomb jumping.
- 6 different tilesets. Is that a feature?
- Slopes. Catball can roll down faster.

Screenshots and a few .gifs

Last edited:
Thanks for the feedback both of you! I appreciate it.

Space Lord I know the song well.

The Space Cat Wizard character comes from someone in a forum that keeps asking me "will there be a Space Cat Wizard in this game?" "Space Cat Wizard Dungeon Crawler sells itself!" "Are you making a Space Cat Wizard RPG?" So hey why not make it happen? Then they encouraged me to make art rather than art pack it.


This isn't my first rodeo. The engine is 6 months old and has been used for four or more games during game jams. Why spend a year in the shadows making a grand game engine for a single game when you can have 7 that use the engine and show its progress and get feedback without destroying the credibility of the game you want to build?


I like to do things my own way, so I have micro maps in .png form. This makes load times slower. So at the end of the last project I made a converter to convert those .png files to .map files which are fancy .txt files. It loads so much faster, but then the next issue for something as grand scale as a MetroidVania with 30 x 30 screens was to make each room load one at a time rather than the entire level. That took all production time, but this game and the last game now use it. Taking one day's production time is better than seven.


There was a massive memory leak that took a few hours to find. I found it. Then I went on creating the map. ... several maps. It was a mistake to try a 30 x 30 map to start with so I went easier and did 20 x 10 rooms. Since the game converts the .png files into .map files when they don't exist, 20 x 10 is far faster to convert. 30 x 30 turns into 18 minutes... only to have to do it again and again each time I update the map.

Another issue was some of the previous games still had content in this one so I had to resolve issues of specific code disabling enemy AI and modifying the enemy code so when they die they don't animate a sprite. They just die.


I was going to use a free art pack, but then people didn't like that idea, so I started making art. Which killed a day of production when this is to enhance the engine, but the game looks far better for it. Then again this whole project is to enhance the engine to sustain a MetroidVania rather than a Mega Man or Duck Tales sized level.

The protagonist has an idle animation, but that's it. There is one enemy type and after the first testing area there are no other enemies. The map is currently 20 x 10 screens because its a long time to convert my maps. The tiles are auto placed so I don't have to waste time adding them.

Here is the video after 3 days:

Looking at the screenshots and watching the video I realized the cat's blue is ugly compared to the other blue.... plus blue on blue so... RED! Bam!

This should also be a good example of the tiles being randomized even if the map is static.

Last edited:

The game pushed forward, got stuck on the pedestal system. This is for saving and getting map data... neither of those two work, so for now its just a pedestal system. The gates have been a thing for months in the engine, just unused until now. The mini map was the achievement for the day as I've never made a mini map let alone one that's accurate. It keeps track of the rooms you've been in along with their size. The rest of today should be filled with making the game actually save. I am not looking forward to that part.


It's already been said but I'd like to add a +1 to your colour palette. Good choice on changing the character to a red spectrum so they pop out. With the way the enemies explode, one could get lost in a room full of them.


Hey this looks pretty good. And you are working so fast! Keep up the good work! :)
When is a playable demo going to be out?
It's already been said but I'd like to add a +1 to your colour palette. Good choice on changing the character to a red spectrum so they pop out. With the way the enemies explode, one could get lost in a room full of them.
Thanks for the feedback! You're right about the getting lost in the ooze part. So what I did was make the effect smaller and over time they fade away. I don't want to keep that stuff around forever especially going room to room.

Hey this looks pretty good. And you are working so fast! Keep up the good work! :)
When is a playable demo going to be out?
Probably next week. I'm still trying to stick to the 7 day plan, but I will fail to hit that deadline, so I'm just doing what I can. If it turns out bad I probably won't release it.

Well its my first time making this sort of thing. My other games save stats, settings and even map data when you go room-to-room. However, I have never had a continue where it loads the same map puts the player in that space and loads map data. This was a long process even if I have done similar things in the past. Then again is it long if its finished within 24 hours? Other than that, the blood spatter is different, there is a mini map reveal so you can see specific rooms on the mini map before you find them.

The game detects if there is a save file and refuses to let you continue without it. If there is a save file, the game starts the menu icon on continue.

In the video below you will see a restart from last save, saving, continuing, starting from scratch and the new blood spatter as I explore 25% of the current 20 x 10 screen map.


These past two days were spent fixing and enhancing systems like the save, map and continue system. I also broke away from the solid Metroid 30 x 30 screen grid and went for a free flowing sort of map grid 60 x 60 so the rooms could be spaced apart. When making the map, I figure it would be best to have a tree system where to get from section to section, you go along the trunk. Sections are pretty obvious and stick off of the tree trunk.

Because the map is now 40 x 10 rather than 20 x 10, I made a real map system instead of the just having a mini map. Map rooms reveal new segments of map. It looks good, works good and had several different methods to do it, before I found one that was efficient.

As for the world map, with enemies turned off it takes me 13 minutes to speed run through what I need to without deviating from the path. I'm happy about that length of time. Its my goal to hit an hour of speed run without enemies. There are no abilities yet, but I have them planned out to be different than Metroid stuff... when Metroid is probably just the most efficient system in general.

Here is a video running through the game. Nothing is textured, its just the game trying to auto-tile what it can and because of no texture assigned over tiles it slows the load process:


The engine was built to scale from any base. I prefer using the 16 x 16 base because its easiest to make art for. A friend of mine has been telling me to boost that base size because the better the graphics, the more the game looks like money. While I'm not ready for digital painting, I did up the resolution to twice that of NES at 16:9. It was pretty easy and there was only one issue making the conversion. The map converter used 16 x 16, so I updated the map converter to do 1 x 1 and then when its loaded it slides to the base scale of 32 x 32.

I'm uncertain about how good the new tileset looks.

With the larger resolution, I remade the player sprite.

Here is a look at a ledge cling mechanic in game without texture on the ground.

Last edited:

I finished up the third major area, shortened up other areas and increased player speed by 25% to make the game faster. I'm aiming for a 60 minute playtime without enemies and with me knowing where everything is. It takes 20+ minutes to go through and out of the first 3 sections and back out. At that rate the game will end up 80+ minutes.

There is now a skeleton of rooms that amounts to 333 rooms. I have no idea how that stacks up to Super Metroid, but I feel like its more and chances are I'll have to cut things. I try to cut out the backtracking with routes that loop or at the end there's some sort of short cut. To expedite things I might just polish up the first three sectors and call it a game rather than making 8.

Here is the full skeleton. Each of these rooms is playable in game... even the empty ones (I use a float cheat to get around). The empty rooms are just there to get an accurate count of rooms:

Here is a view of the map and first 5 map rooms revealing 5 major sectors of the game.

Last edited:

Rooms now have the ability to change music and tileset. Eventually they will be able to change bacckground as well. At the moment the backgrounds are all set tiles. I also took the time to make the auto tiler do its best to texture center sections to save time. Other than that, the character can now shoot in 4 directions along with crouch and fire. There is no art for it at the moment. That's the problem with doing my own art.

There has been interest from 2 parties to license the little engine I've made, so that's good.

Here is a demonstration of the change in tilesets between rooms from the new tileset to the old one:



The tileset with less detail (right one) is better imo. Makes it easier to focus on the entities rather than the ground. All looks good tho.

Yesterday I worked on a different project with an artist, but I still had time to push forward with Wizard Space Cat. With today being Saturday I went with bolstering the art to have something to show for #screenshotsaturday as that gets the most eyeballs. I think I need to enhance the colors to make them stand out and pop out more.

Today should be enemy and ability day.


I was lost in a detail for 2+ days. Making the blood look less like fireworks display lead me to this:

The blood spatter disappears after 20 seconds or when it is out of screen far enough. It is imperfect, but I like it from where it was.

Last edited:

Yesterday's time was spent on making more player sprites and slopes. The player sprite should be last, but if I'm showing off this game I should probably have more sprites for the player. They are basic, but there is now a sprite for jumping, shooting, couching and crouch shooting. Nothing is animated, but hey its a start. The major update is someone requested slopes... so I made slopes. The only thing negative about them is they defy logic. The player can speed up steep slopes just as well as flat ground. To solve that issue, I will probably refrain from using steep slopes anywhere. Otherwise I would have to slow the player down or make the player slide back down. Since the video, I have modified the steep downward slopes so the player can walk off them just like a typical cliff.

As you can see there are no textures for these slopes. Enemies need to be programmed to use slopes, but it should just be a copy and paste thing.

Making slopes was the tip of the iceberg. Adding textures to the slopes is what sank the Titanic. This process took about 9 hours yesterday. Making textures for 3 tilesets spanning 30 tiles for each tileset. Then with my map system matching color codes and aligning the slopes. Inverted slopes were also added along with a few other tweaks. There are a few issues still with slopes such as blood fails to spatter on the slopes, but I am already hard at work fixing that.

There is now something to change the room colors as well.

Last edited:

Yesterday was all about fixing issues:

- Fixed blood so now it can spatter on any solid object including destructible objects. When the object is destroyed, the blood goes with it.
- Fixed destructible and bombable objects so they have a proper tile for each tileset.
- Fixed when continuing a game the incorrect tileset would appear.
- Added 4 more tiles to each complete tileset and more probably have to be added.
- Fixed drop shadows to work properly again.
- Removed crouch slide.

Also thanks to the person who made fan art / concept art for the game. Now I might actually have to finish it.

There is not much worthy of a video, so here's a .gif showing off the blood spatter on destructible solids.

With those glaring issues fixed I can proceed to abilities.

Catball ability now exists in the game along with toggles to enable and disable the ability to go into Catball, jump in Catball, go into Catball while in the air, bomb and wall cling. The wall cling has yet to be finished, but everything else has been finished along with saving and loading them once they are unlocked. Catball will change and there have been a few Catball sprites already.

When using Catball, it will roll down slopes. Catball was never fast enough to roll uphill without gravity winning, so instead if Catball keeps moving, Catball can get uphill. When rolling downhill Catball speeds up and then speeds down rapidly once the down slopes end.

Bombs can destroy bombable walls. The player can even vertical bomb jump and travel long distance by bomb jumping to the left or right. Bombs do triple the damage to enemies, but that may change. There is a dedicated Catball button at least at the moment.

Along with horizontal bomb jumping comes knock back. There was a knock back and stun before, but now it knocks you back as a jump to hopefully get you out of say a spike pit.

The next update should be the method to unlock abilities.

Bomb jumping as Catball.

Slopes affecting Catball.

Last edited:
Thanks for the kind words. I am sure others appreciate you posting on their threads as well.


I started playing with color palettes yesterday which lead me to create a new tileset.... twice. The first one looked good, when it was in Aseprite, but in game it looked terrible. A lot of the color palettes I made looked terrible in game as well. So it turned into an excessive process. The new tileset was to postpone what I should be doing which is making a way to grant the player new abilities. Morph into Catball and sit in a basket? Nah doesn't seem very space cat. Giant lion's head doorway lift? Sure I'll go with that. While I am not the best artist I did come up with a lion's head doorway. Its meant to be in the background, but I should probably make it in the foreground since you can actually interact with it. So the colors will change in time. This is what I came up with:

* edit * After giving it another 90 minutes playing with the colors, this is how it looks:

A new tileset in the old environment just looks unimpressive still.

To this game's credit it has the most random interest from people on Twitter than any game I've ever had.
Last edited:

Yesterday felt productive. The lion's maw now takes the player into the lion's head which will grant the player abilities. The abilities are all coded and set in one fell swoop. The abilities save and load properly once the game is saved and the save file will also remember if the lion's head has been activated. The jaw mechanism works similar to the pedestal system that saves the game and loads map data so that saved some time, but it still took a while.

The process for the lion's head, loading, saving the abilities and remembering the lion's head was activated took about 2 - 3 hours. The catch is I already have systems for loading, saving and remembering. I think that should cover the bulk of the universal standard of the game's programming.

To compliment the new lion's head, I spent two hours making a new tileset that works differently than the others. Its just a bunch of tiles rather than auto tiles to work with my auto tiler. At first the tileset was neon yellow and beautiful, but it was tough on the eyes compared to a game that's mostly dark tones.

Here is the completed room with a more subdued color palette.

* edit * After maybe 90 minutes her is a zoom in and fade out effect to make the ability granting feel more special.

Last edited:

Is it an upgrade if its an ability that you didn't have before? After making visuals for all 5 upgrade rooms I spent far too much time making vines that I ended up taking out. Then I played the game, found their color codes and put all five rooms into the game. Having to test the game again reminds me why I need to have different saves. I always dread GUI stuff.

The next programming session should have more abilities.

At some point I added even more detail:

Last edited:

This is a dull and difficult to show update. Its more so I can test the game quicker. It drove me nuts having one save and having to get from point A to point B to test something.

There are now three save slots as traditional NES games would have. You pick the slot and you play whether its a continue or a new game. In addition, you can copy or erase save slots. It will even ask you to confirm when you are erasing or about to overwrite a slot with data in it. In its current state, its just part of a typical menu in my game. There is zero wow factor and functions like anything else.

The other thing to help me test the game quicker is a warp cheat command that will send you to a specific cell on the map grid if a room exists there.

Last edited: