Hell Court – Post Mortem
This is a long post about my experience making Hell Court. Reading time: 7-10 minutes.
About the game
Hell court is a platformer, where you are a master of a dungeon in hell. Humans that have sins come down here to be judged. You first listen to all the sins they have made. You then deal physical and mental pain to them, based on the sins they have committed.
Here’s how I made it.
Before the Ludum Dare
Two days before the start I was kind of bored and visited CompoHub.net. There I noticed that Ludum Dare is starting soon. I immediately started voting and let my family know that I will be coding a lot in the following days. This would be my second game jam and I was curious what I’ll come up with.
To maximize productivity, I told everyone not to distract me during the jam. I also installed Cold Turkey to block distracting sites. I paused every aspect of my life not related to making games, such as reading books.
I was ready.
The start
The Ludum Dare started at 3 am. I could not sleep well, so I got up at 5. I read the theme and started coming up with ideas. Soon enough I came up with the idea of my game. You will punish humans for their sins in your hell dungeon of some sort.
So I took two sheets of paper and started drawing. Images, mechanics, anything.
Then I drew a rough plan of a level from the game and made a todo list.
After all that, I was ready for the computer. So I created a Github repository and Unity project inside it.
First day
I decided that I will create the platformer part of the game first. This had to be good enough, so it would not stand in the player’s way. I created sprites for the devil and some blocks in Aseprite. Then I moved to Unity.
I should now mention that my artistic skills are horrible. I knew that, but I also needed to create graphics for the game. My previous game looked bad. I knew it was because I’ve been using random colors (and lack of drawing skills of course :P). So this time, I wanted a simple color palette with few colors I wouldn’t have problem using. I used ColorBlender and Coolors to create a simple color palette. I also restricted myself to 16×16 pixel images to keep things simple. In the end, I think it all paid off.
So back to Unity. After a while, I had the movement done. I then added stairs into the game.
Next, I started working on the sins system. I wanted every human to choose random sins from the sin database I would create. The exact number would be defined by level settings. Every sin would have associated mental and physical pain.
Done. Now humans. For movement, they shared some of the components of the player. I also added random movement so they don’t just stand still.
Now I needed a way to deal the pain. I added a pot and a skeleton. Then UI and dialog system. Then I made humans and skeletons say random stuff.
I wasn’t worrying about the quality of the code at all. It ended up being a mess, but I was astonished about speed at which I kept adding things. Lesson learned.
Anyway, first day was ending and I was happy with the progress.
Second day
I started by taking a paper again and drawing mechanics I wanted in the game. I also drew objects and the sequence of the listening table. Finally, I made a new todo list.
That day I wanted to add animations and sound. So I started drawing idle, walking and carrying animations. Then I moved them into the Unity. Making animation states in Unity is super easy, so I had all animations in within an hour or two. Next, sound. I downloaded Bosca Ceoil for the music before ahead of the start. I decided not to create any music, though, because I had no idea how.
For the sounds I used sfxr. I added them in, putting code to play sounds all over the codebase (and adding comments like “shouldn’t be here, but it’s LD so whatever”). I couldn’t get 3D sound in Unity working for my 2D game. So I wrote custom system to handle volume and panning (and random pitch) of the played sounds.
With animations and sounds the game felt great to play. It made me proud. The best sound system in the game is that for the dialogues.
More levels, menu, highscore system, random objects to fill the levels with… I made good progress. I went to sleep happy.
Third day
I decided to add statistics tracking to the game, just for fun. I used Mixpanel and Mixpanel-Unity-CSharp I found on Github. It working great. I tracked useful statistics, but also some funny ones. Like the number of times a human has been picked.
I needed more ways to deal pain. So I added flying ghosts, reusing logic from skeletons. Then lava. I also added a healing table.
After that, I spent a lot of time creating levels. I found out that Unity is not that great for building 2D levels, especially tiles ones.
After all that, I added flamer.
The game was done.
It was about six hours before the jam ending, so I began the preparations for a release. First time I was releasing a game in Unity.
At first, I created and entry just with a Windows build, but I also wanted a web build. After a few tries, I wasn’t satisfied with the WebGL build, so I made a Web one. I put the game on itch.io, wrote a post and a tweet. Later I also added Mac and Linux builds. I couldn’t test them, but Unity makes it so easy, so why not.
What went well
- No distractions. I blocked them all, on the internet as well in the reality.
- Graphics. By using a constrained color palette and image size, even I was able to put out decent graphics.
- Code. I didn’t worry about the code. I didn’t refactor much. I didn’t create complex systems. That allowed me to advanced faster. The code is a mess, though.
- Planning. I drew a few things, made a simple todo list and that was it. Then straight to computer. No long descriptions or anything.
What to do better next time
- Some basement for code. This I will accumulate over time, just right now I started from scratch. I would certainly need a code for game object pool, for example.
- Recording development. Right now I only my memory to recall what was roughly happening. Next time, I will probably record a timelapse and write notes.
- Keep the game short. According to my statistics, nobody made it past the fourth level yet! That means that nobody even tried a flamer yet. Next time, present features faster.
The future
I will work on the game. Some aspects need to be tweaked or removed, like the platformer side of the game. I also need to rewrite most code.
Also, I’ve never sold a game before. I will try it with this one. The full reworked version will hopefully be my first paid game. I will create a blog and post updates there. I’m thinking I’ll use Tumblr for that.
Final
Thanks for reading this long post! If you haven’t played Hell Court yet, check out my entry here.
What do you think about the game? Should I continue working on it? Please leave a comment here or at the entry page. Have a nice day!
This post has been checked by the wonderful HemingwayApp.
Tags: LD33, post-mortem









