In Magicians Thief, there are 15 rooms, 4 checkpoints and 1 boss room in a single level. I say it would roughly take 2 months to make, but this may not be 100% accurate since I’m pretty early in development, as of the timing of this post I’m pretty much cleaning up the second demo for release (the first demo got renamed to prototype cause the difference between the two is night and day) so the process may get faster or slower later when I get to making level 3 onwards.

Even though I say its “early in development” I know its been roughly 3 years, but if I’m being picky I would say its actually 1 year and a half where I decided the main structure of the game, the game engine change from unity to Godot and passing the initial prototype stages, so let’s go with that so I don’t lose my mind thinking about how long its actually been (that said other factors, such as working a full time job outside of games, seeing family and focusing on my health do come to play here)

The reason for this post was because I was randomly trying to think “ah how many rooms did I scrap in the end?” the idea of the game is each room is a small challenge the player has to get through, it takes roughly 10-20 seconds (or less than 10 if you’re speedrunning it like me who has to play it hundreds/thousands of times over) and it ended up being more complicated the more I thought about it.

We’ll use the second level as an example, the first level theme being a warehouse/junkyard was entirely on accident, I made those initial rooms as a tutorial room, but then it got repurposed later in and made it work in the end, so nailing an accurate timeline wouldn’t really work here.

The first step was thinking of a theme, so the list of magicians had already been decided beforehand (its been in my head for ages, and will most likely change the further when I actually make the rest of the levels) but for the second level I went with the “Idol theme” and ended up theming it to be “stage like” with the tiles and background.

Before I can continue I had to create new obstacles, enemies and things the player could interact with, I felt it would get pretty boring really quick if I made a second level that just repurposed level 1 assets as a reskin so I thought pretty hard on how I want to approach it. That’s why the level obstacles are similar but different, the balloon works the same as the level 1 jump pad, however it pops when you bounce on it and doesn’t come back right away, it simple but enough of a change that makes the level 2 obstacles slightly more challenging than level 1 when used correctly.

So I spent a couple of weeks coming up with ideas for that level, coding it, testing it, making the sprites and animations, and when I made enough I jumped into making the rooms, here’s a few examples to show what I mean:

Jump Pad -> Balloon: Jump pads were on the floor and had no time delay upon reuse, Balloons are off the edge and respawn when used after X amount of seconds.

One way platform -> Moving one way platforms: they move in and out, players will have to time their jumps.

Spikes -> Shooting Spikes: Merged the turret and spikes into one, meant to surprised the player first time assuming they’re normal spikes.

I use a thing called the rule of 2 when I’m making the rooms, one of the positives I hear from playtesting is how the rooms never feel similar, and the ones that do usually are harder variations of another (room 4 in level 2 has a harder version of it in room 15 for example) and that’s because I mix two obstacles as the theme of that room, I got the idea from Mark Brown GMTK where he sorted his obstacles using a spreedsheet, and I also got the idea from his Mega Man 11 video where you mix and match obstacles you taught player later on so it becomes more challenging.

The only thing is I didn’t apply this to the first 4 rooms, I did this with the first level as well but the first 4 rooms are simply easier rooms, with all the obstacles spread out without being too cluttered, sort of basically acting as an invisible tutorial (I say that cause no one really notices it until they asked how I designed the rooms, and I say it’s a a positive if I’m able to teach the player how the obstacles work without them realising it)

Also the Mega Man 11 video had a neat thing where the direction of room changes everytime, so you don’t have two rooms of the player going left to right twice in a row, sometimes there’s a room that goes up or down, or even diagonal/boxed and so forth.

These might seem like fairly simple ways to designed levels when I think about it but the process has made realise how key and important a level designer is when it comes to making games, it’s silly to say but when I first started I didn’t realise how difficult it was until I tried making the levels myself, I guess its better to say I knew of level designers, but I didn’t really understand what the role meant.

I’m pretty confident with sticking to 4 checkpoints, a much earlier version used 3 checkpoints but it was too hard for some players and this was even before I added an assist mode, I found upon watching playtests 4 was the sweet spot so I don’t have much to say there, the key change was that level 2 had NPCs in the checkpoints, mostly because I wanted the player to learn a bit more about the Idol Magician beforehand, but I can write about the writing/lore/world stuff in later post.

After the 15 rooms are made, I get them play tested, I kind of initially go with my gut on what I think is difficult and try to order the rooms that way, and then when I get people to play (I have around 10+ play testers ranging from various skills) I make a note of which rooms people struggle with, or if some obstacles are too difficult for the player.

This is where I apply another rule of counting to 3 here, where if one person mentions an problem I make a note of it (unless its a bug or game breaking I leave it) but if there’s more than 3 people that’s an issue which needs to be addressed, I can’t say this will work if another developer tried it, I feel pretty fortunate that the group of play testers, friends and family range in a way that I can gauge a common problem if something came up, basically I’m saying that number will vary from developer to developer.

Also the flow of the game is important, a bit of a hard one to explain but will vary on how your game is played, mine is pretty fast paced and the player jumps and dashes a lot, there was one room in level 2 where the player had to go upwards using timed falling platforms, everytime I or people tried that room it always felt off and was simply not fun, and I couldn’t put my finger on why, it worked and flowed in the first level why didn’t a similar room work here? I was able to find old footage of the room so its better to show then explain it:

There are two issues with this, no room at that point had enemies nor obstacles at the entrance, basically the players had no time to react or breath the first time entering, and you need that little moment so they take in can prepare for the room (maybe its a thing you can do in later levels but here the feedback from most players were that it was too unfair and out of the blue, and I agree, because it was!)

The second issue is that the player had to keep jumping and dashing, jumping and dashing, which seems fine right? however the reason it works in other rooms and not here is because there’s not enough time in between the dashing and jumping, you shouldn’t have to dash that many times, I apologies its hard to convey that without showing/playing it yourself but the video below is the new room that replaced the old one above:

Funny enough I was worried this room would be bad too, my personal issue is there is no stopping point in between this room, but from the feedback this room ended up being a playtesting favorite, it felt nice to move around in and there was enough time/inputs between dashes, which was a huge win for me, I felt I finally understood how important the player flow is when it came to the rooms.

The boss room I feel needs a whole other post on, but I could probably go into detail later when I have more levels made, but the idea of the boss being a chase sequence was because of a video where Mark Brown speaks to Chris McEntee on a particular section in Ori and The Will of The Wisps, a chase sequence where it the player is tested on things they’ve learned up until that point, I felt having a boss fight that was more like mega man didn’t feel rewarding or made sense to a player who did a bunch of platforming challenges which is why I the bosses in my game are designed like that, it took roughly 2 weeks to implement, and I feel it will be much longer later down the line because I want to change up the boss fights so they’re more interesting, again I’ll make a better post on that at a later date.

One of the most important things I got from the Ori video is when Chris said “an escape needs to be something where you at least die once or twice, but nobody wants to die five times or ten times because then it starts to get really frustrating and it feels like trial and error” I applied that to the boss fight as a whole and I think about this bit a lot because it’s always helped me whenever I design even single rooms where I say ‘if you die 2-3 times thats good, if you die more than 10 that’s a problem’ and sure, this could vary on what type of game and how difficult the levels will get later on but I always found it important to make a note of that, its how I end up keeping and scrapping rooms.

One last thing I will say is that for tile based platformers, the placement of a single tile really makes a difference, I watched a video where player called SuperBooglet tries to recreate a level of Pizza Tower from memory and whilst got a lot of down, the placement of the tiles being off really showcased how precisely place every tile in that game is, I bring it up because figuring out the size of your rooms and player jumps is quite difficult and requires you try and try again until it feels right, I have a video below of one example where the placement of a tile fixed an issue someone brought up:

Basically it was too tight and it felt off.

I moved the tiles down by one and it felt nice to bounce on (ignore the bad gameplay)

I think that’s everything for now, thanks for taking time to read this post, I’m mostly making it to reflect on the process and how I’ll look back on this when I make more levels/finish the game one day.

Comments are closed