I’ve been struggling to do a Post Mortem for the game I created, Dare To Escape, since right after submitting I kinda experienced a mini-burnout that wore me down alot.
I’ve never done a Post Mortem before, so I don’t really know what goes into it but lets see how this turns out.
After reading the Theme I sat down to think of a game idea. It didn’t take long to think about a platformer where your only purpose is to escape and get the hell out of there.
Since I like combining different genres I thought some aspects of so called “Bullet-Hell” games would be a perfect addition to the gameplay.
So I had the idea of you being a little guy stuck in a factory trying to make your escape. Throughout the game you would know more and more about where you actually are and why you where there in the first place. In the end you would escape to freedom, yay!
What went right
Not alot, tbh. The game has many flaws but one thing I think I got right is the art style and color scheme of the game. You see; I suck at creating graphical (and musical) assets. I had to keep everything as simple as possible. It still took me 3 hours just to get the main character and his “animations” (lol!) done. Designing the turrets was not so problematic. I wanted to have different size turrets as standard turrets and unique forms for boss turrets. Bosses were supposed to be the main challenge of the game.
I tried to stick to one colour having one meaning so as to not get the player confused too much. I chose red as the player color since I like the contrast to the black background. Green for everything that was related to static level design, blue for turrets and orange for deadly stuff (bullets/lava). Yellow was stuff that would bring you forward and be interactive in some sense, so that was the colour for keys, locks and the colour for one of the beams of the warpgate, which also had purple; a color found nowhere else in the game, signaling that this gate was special and important.
Other than that I like my Menu system and am kinda proud of it. Also the way I handled checkpoints made me happy.
What went wrong
Oh boy where do I start?
I was so proud of myself when I switched from using my own TileEngine to xTile because xTile offered so much more features and had an excellent editor for maps that supports stuff like animated tiles and multiple spritesheets and layers. The problem here is that all that stuff wasn’t neccessary and I soon learned that the editor was slow as shit when trying to create larger maps with small tile size. The runtime performance wasn’t a problem at all, though. But point stands that I don’t need such a complex engine for such a simple concept of a game. I never used multiple layers, I only have one spritesheet, I don’t make use of all the properties every map, tile, layer, spritesheet or even spritesheettile can have.
And to make matters worse I had to do two steps to create a map. After creating the map in xTile I had to use my own CodeEditor to open the map and add collision information and codes to every tile. Creating maps was awfully slow and the reason the game is so short and gets so hard so fast. There was no time for balance. The Tutorial map alone took me several hours, and that thing is short! My old TileEngine was more than enough for this game…
So here’s the second point that ties in with the first: Balance and Length.
The game has one tutorial level and two others, and one of the others is merely a dev-level where I tested everything. Creating the second level, even though I didn’t have to code anything to make it work, took about 3 hours. This is partly due to the xTile editor being so damn slow and because after creating the graphical part of the map I had to o over it again with my CodeEditor and put in collisions and code. I was able to test it and quickly realized it was way too hard.
For example the level has a long hallway that allows you to only go left and jump. In the final version there’s only one medium turret there and you can avoid it by simple running to the left without jumping or stopping. This part was way…WAY harder when I initially created it. There were 3 small turrets at the other end and you were supposed to time your jumps and movements just right in order to allow you to progress through the hallway. But after 45 minutes of testing I just couldn’t make it completely past them and even after testing using only 2 it was too hard. And 1 was too easy. So I kinda said fuck it I have to end and submit this and put one medium turret there that punishes you for slacking around or doing funky stuff….not really good design.
So I got past the hallway and lo-and-behold I wasn’t able to get to the last sphere to deactivate the bosses… This was 10 minutes before the 48-hour mark was reached. So I just slapped a gratz-and-apology-message on the gate and submitted the game.
The game was not only hard at that last boss fight but it was just plain unfair. Because the bullets those bosses shoot are being sent to random directions…
Rule of game design #1: Do not use RNG for gameplay-critical stuff.
I intended to have real bullet patterns for the bosses of every stage and was just happy with the tutorial and stage one boss to have this random pattern since the tutorial boss was about getting the crystal in between two waves and the first boss was all about getting the crystal before the first wave of bullets even reach you. These two bosses were supposed to teach you that being fast and precise was easier than taking it slow. But I only wanted this mantra to be true for the non-boss parts, so it was a poor decision to put that into the boss parts.
Ofcause I wanted a unique boss for stage 2, thats why the boss turret of stage 1 had “B1” written on it. I wanted you to assign the shape of a turret with a specific bullet pattern, so when the player sees a turret they instantly know (except when first confronted with them) what will happen.
But when creating “B2”-Boss I realized something: I have no fucking clue how to do bullet patterns as seen in bullet hell games.
Infact I had no idea how bullet hell games are being balanced.
Theres a reason for that: I never played a shoot-em-up or bullet-hell game.
Let me rephrase that and focus more on the bad side of it:
I tried to develop a game in a genre I never played.
Ain’t I a fricking genius? So because of time constraints I have to go the cheap way again and just slap something harder than one turret that shoots in random directions.
And what’s harder than one turret that shoots in random directions? Thats right: Two turrets that shoot in random directions and where bullets come from different directions in general.
The result is just pure unfair. How are you supposed to finish the stage? Answer: Pure luck.
To get around this part you have to be precise with your movement and not panic and jump around. You have to abuse the bullets player-seeking behaviour and speed to gather them. It takes skill and not luck to get through this part. And the reward is a checkpoint. Everything is balanced and fair. Though ofcause it still is too hard for this point in the game since it’s required the player to master the movement of his character. New players tend to kinda panic around here because they realize only way out is to go up because going down isn’t an option.
Next mistake was adding music to the game. Not only did the AudioEngine sometimes crashed the game instantly, but also with music the game wasn’t more enjoyable.
This is because I used WolframAlpha’s music generator for the music. I only listened to the music for about 30 seconds and then just downloaded the longest version of the song to use. But that lead to some tracks having alot of repeated patterns that disturb the flow of the game and feel more buggy instead of adding to the experience. In hindsight I shouldn’t have submitted the game with audio. I had to submit a audioless version shortly after to replace the version and now my page looks way too filled with links to the different downloads.
Why do I have so many different downloads? Because I never researched how to distribute XNA games. I knew about the two profile-modes you can have with XNA but the thing I didn’t know is that the user needs not only .NET 4 but also XNA libraries installed to start the game. This severely limits the amount of people that can even start the game and thats bad…
And what’s the reason I had so many time problems? Lazyness.
I kept procrasinating writing code and instead spent most of the 48 hours whatching anime and movies that I intended to only play along on my second monitor to have something I could whatch while coding. Instead I got up and watched from afar, thinking I have soooo much time…I completely underestimated the time it takes to create the maps.
What will I do better next Time?
- Not procrastinate
- Use simpler versions of stuff for simple games
- Only code things I know about
- think longer about what I can and cannot afford to implement in the given timeframe
What happens now?
I want to expand on this project and fix the wrong things I did and make it a proper game. I’m currently playing the shit out of every shmup and bullet hell I can find to get a general sense of them and I’m researching how to code bullet patterns and what goes into them. I’ll have to downgrade to my old engine and actually implement the story I planned to tell with the game.
I’ll be working on this game and posting updates over on my Blog. If you go there now you won’t find much about it but as I get time and finish my research I will get back to this game and start posting again so it may be worthwhile to subscribe via RSS to the blog instead of checking it every now and then. On there you’ll also find my progress on how I build the general engine I use for the game.
I’m not sure if I will participate in the next LD. I’d love to but It was such a negative experience afterwards (during the competition I felt great!) that I’m a little hesitant and think I’m not ready for this kind of stuff.