After years I have finally took a whole weekend off to participate in my 3rd Ludum Dare. Why? Because I love Ludum Dare and to test myself how much I have progressed as a game developer over time. This is a short post-mortem of Penance, a game I’ve made for the LD compo.
For Ludum Dare I always prefer Compo over Jam since you need to handle everything by yourself in shorter amount of time. Read more about LD rules here.
Tools of trade I’ve used:
- Unity + Visual Studio
- Graphics Gale (pixel art)
- Audacity (to record sound effects)
- WolframTones (random music generator)
I was always using my own engine for the Ludum Dare competitions before but this time I went with Unity. In last few months I was prototyping a lot in Unity, just to get a good grip of it and this LD was a perfect opportunity to see how much I’ve learned and how fast can I go.
Sacrifices must be made
This was the theme for the current event which suited me well since I saw a lot of creative possibilities in it. When I’m brainstorming various game ideas I always end up with something that requires puzzles but this time I wanted to make something filled action. Soon my mind wondered from Lemmings to Cannon Fodder and Overlord poked in and the idea was there right away:
WHAT: Hellish character walking the earth, sacrificing minions
WHY: Banished from hell to do the penance on earth
HOW: Sacrificing minions…somehow.
Even though I didn’t have a clear game design about sacrificing minions I started out with two goals:
1. Make some pixel art
2. Implement player & minions
First of all I went to LOSPEC which holds a huge variety of palettes for pixel art purposes. Over the last year I found out that using specific color palette makes style consistent and better looking although it is a bit hard to work with limitations.
After an hour or two I had rough art ready for the implementation.
After another hour I had character walking around the forest. Basics were there and with Unity that stage came fast! But then there was the tricky part, minions & pathfinding. I was relying heavily on Unity’s agent navmesh & agents but somehow I couldn’t make it work, at least not fast enough so I ignored that, just in case I will have more time at the end (I didn’t).
For some reasons, I left minions alone and implemented enemies & decided that main character will also be able to shoot some kind of dark projectiles.
With enemy dummies implemented, I knew I have to hurry with the minion part because I still didn’t have a clear idea what would be the exact mechanics. What I knew for sure was that minions would be following player & could be lead around while holding the right-mouse button.
My thoughts were all over the place, here are few options:
- Minions could attack anyone in their way
- Minions could be sacrificed for the dark matter which would serve as a currency for player’s powers (new powers, constructing dark siege machines, skeletons…)
- Same as point 2 but you would have to lead minions to the dark altar in order to sacrifice them
- You could explode minions anytime which would be the way to beat your enemies & destroy structures
This was the hardest part of development, I didn’t have a clear goal so I went with option 4. I did a prototype and it was fun but not fun enough, it lacked control, how many minions do you explode on action, which minion exactly? Those close to the enemy?
The lack of clear solution was killing me, so I took a nap. When I have problems like that I always take a nap which helps me in most cases and it helped me now. When I woke up, everything was really clear to me – make it simple, save time and make it fun.
I got rid of the ideas to upgrade character, giving him new powers etc. and used idea 4. in some way so this was the decision before I woke up:
MINION MECHANICS: When minion is near the enemy or structure it jumps and sticks to it. When you press “detonate” button, all attached minions explode. This was it, it felt right!
That way you get control over which one explodes and when and after the implementation it felt perfect, leading hordes of minions towards pitchfork farmers, sticking and detonating them was fun!
Recording sounds & music
This time around I didn’t use chiptune sound generator and rather went for recorded sones. All sounds for the competition were done with my mouth, keys, cup, notebook and a pencil. I recorded everything in Audacity with my headphone’s mic and adjusted some pitch & speed and it worked. Of course they are not perfect and sometimes noisy but when I imported them into the game I was surprised by the result.
As for the music, I just searched for random music generator and WolframTones popped out. It generates an amazing music considering it’s random even though the max length is 30 seconds. I did some random generation and instruments adjustments and the result was music for Penance.
Next time I’m doing the Ludum Dare I will be using the same combination for sounds and music. You can’t go wrong with that!
The last day
On Sunday (the last day) I was away for 6 hours if not more which took away plenty of development time.
I was still lacking level design, more enemies, buildings and proper game loop (health, death, respawn, main menu…) so I had to use my remaining time wisely.
I went on drawing new tiles and implementing new enemies – Archers. They were necessary because pitchfork farmers really didn’t show much threat. They fell with minions before coming close to you.
Implementing player’s health, archer towers and drawing fortress walls for the final scene took me the remaining time and I figured I won’t make it for the proper tutorial, level ending & main menu. There were so many things missing I panicked.
I made temporary level ending, so the player knew that’s where game ends.
Of course game ending is good to have but for the competition sake I believe experimenting and proof of the game design is more important, at least for me.
In the panicking process I also started making a main menu that might work but decided to leave it out – rather having no menu than something ugly.
The time was ticking, last minutes were passing by like seconds so I wrapped everything up, prepared the project build & source code and made a new entry on the Ludum Dare website.
The competition was over!
Things that went wrong:
- Clear mechanics figured out too late
- Forgetting that main menu can take a while & lack of experience how to make simple yet effective one
- Spending too much time on details
- Level design made too late
- Had wonderful tutorial idea but didn’t get in
Things I’m happy with:
- Gameplay and the fun factor I achieved
- Sounds recorded worked really great
- Amount of details I did in such a short amount of time
- Solid idea that could be nicely expended into a full game
- Using Unity really speed up things tremendously
- Comments on the LD page of the game are really positive so far!
- I made few decisions to leave complicated features out and stay with simple yet fun ones.
To cut it short, I pretty much enjoyed this LD compo and I’m satisfied with the result even though it lacks specific important elements. Hopefully I will have time to make this into a short mini game with the menu and few levels to play one day.
There were many amazing games done so if you have extra time give them a try. I believe each one of them holds something special if you are willing to play and learn.
Penance is my 3rd Ludum Dare compo game and here you can find previous ones: