Penance : LD43 post-mortem

BlodyavengerDevelopment, Ludum DareLeave a Comment


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.

You can try Penance on or Ludum Dare website.

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.

There is always experimenting phase

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.

Idle farmers, waiting for the swift death.

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:

  1. Minions could attack anyone in their way
  2. 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…)
  3. Same as point 2 but you would have to lead minions to the dark altar in order to sacrifice them
  4. 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? 

At that point I had tiny minions following the player or cursor if you lead them. But that’s all there was.

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.

Sound examples from the game.

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.

Music from WolframTones I’ve used for the game

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.

Part of the level (zoomed out)

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.

Spoiler alert!

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. 

Main menu mockup – didn’t get into the game

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!

Farm (final version)

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.
Archer Tower (final version)

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: