How I made “Bloodflame”: a LD33 Compo story

Posted by (twitter: @crypto2k)
August 24th, 2015 3:28 pm

Hey everyone!

Ludum Dare 33 is coming to an end, and I finally managed to participate for the first time! I’d like to share with you some details about how I made “Bloodflame”, my entry for LD33 Compo. You can go play it here. In fact, you should probably do it right now: it turned to be really fun.

I wanted to get into the video game industry for awhile now, and I thought this was the perfect chance for me to gain some experience and have lots of fun. I decided to participate in the Compo because I found working alone, without using pre-made assets and doing everything in 48 hours more challenging and fun. The engine I used was Game Maker Studio, because it’s easy to use and ridiculously fast to develop with, which is a huge bonus for a game jam.

I live in Moscow and here by local time Ludum Dare started at 04:00 AM, so I had to wake up in the middle of the night just to be ready to begin development. When the theme was announced, I, like a lot of people I guess, was disappointed with it. I thought it was pretty limiting in what you can make and not that great of a theme overall, but there was nothing I could do about it, so I started working.

I’m a huge fan of the Diablo series, and when I hear “monster” I immediately think of demons, so I decided to make a game about a Diablo-eque demon, who is fighting “noble heroes”, that are looking to raid our character’s lair. One of the first things I decided upon was that my game is going to be an Action RPG and that there won’t be any “mana” pool. I thought it would be cool to introduce a “Blood Magic” mechanic to reinforce the theme of playing as a demon. Basically, everything you do other than just moving around costs you health points: attacking, using skills, teleporting, etc.

Here’s the first screenshot of the game I made to show off to some of my friends (about 6.5 hours in):
Bloodflame First Screenshot
Enemies look so sad.
In this version you could:

  • Run around and not go through those orange blocks, which would later become walls.
  • Shoot these unfriendly squares with some friendly red balls (they’re not really on fire yet).
  • Get heart drops from enemies, which you can pick up to restore your health.
  • Waste your health on shooting around.
  • See how much health you wasted in the bottom left of the screen.

Overall this was the “minimum viable product” as folks over at Extra Credits like to call it. This was when I thought my game is actually going to be fun.

After that I started to work on enemy design. The first thing that came to my mind was to create some sort of knight. But just a knight is not powerful enough to take down the demon lord, so I decided to make him a holy knight, like a crusader or a paladin. I googled some images of crusaders and based my design on them. I made their eyes glow blue to make them feel more holy-esque. I also colored their crosses blue, because everything evil in my game is associated with color red (the historically accurate cross color for crusaders), and everything good – with blue. Next thing I knew is that I had to make a ranged enemy to differentiate it enough from crusaders. Mage is a classic fantasy archetype, so it was an obvious choice. I made mages as unique as possible using minimum time:

  • While crusaders can only attack in melee range, mages actually shoot holy bolts at you, which is pretty dangerous.
  • While crusaders just run around on foot, mages only teleport around. Yeah, these dudes are too proud to just walk.

Overall, I thought the enemies turned out to be pretty good, here are the final designs for both of them:

Enemies in Bloodflame
I will defeat you with my magic of drawing!

About 11 hours in I decided to take a break. And by taking a break I mean sitting with my notepad, trying to design a progression system. In the end, how can a game be a good Action RPG without a fun progression system? I thought is was pointless to try to reinvent the wheel, so I took the Diablo II progression system with levels, stat points and skill tree and scaled it down to fit my game. 4 stats (strength, dexterity, vitality, energy) became just 2 (attack and defense) and instead of making huge skill trees I chose to do only 6 skills: 3 passive and 3 active. I thought it would be cool to place the skills inside a pentagram, so I did just that.

I drew a sketch of the skill window and then I made the mockup for the actual ingame UI.
Bloodflame UI Prototype
Yeah, my handwriting sucks, I know it.

The rest of the day I spent on actually implementing the progression system and the UI for it. This is probably the biggest part of the game. It wasn’t exactly hard to implement, but there were SO MANY little things to do, such as highlighting buttons, pausing and resuming the game correctly, implementing skill selection, making a new UI element that shows selected skill, etc. This is what came out in the end and I’m pretty happy with it:

Bloodflame Skill UI

Of course I could have made it more polished, created more skills, added some rainbows, but my goal was just to demonstrate the concept to other people, and this task was done. About 20 hours in I decided that it was time to finally get some sleep.

The next day I spent more or less just polishing the game.

  • I made a simple survival mode where enemies spawn in waves (previously I had to spawn everyone manually with cheats) with enemy scaling (10% more hp and 1% more damage per wave, also 10% more xp per wave). I decided not to scale the damage too much, because it’s not very fun getting one-shot and you already lose more health because you need to use more skills at higher waves to kill enemies with lots of health.
  • I generated some sound effects using Bfxr. Amazing tool.
  • I added some very basic particle effects to improve the general game feel. I also added randomized blood splatters that enemies leave on the floor when they die.
  • I ran into some problems with the music because, turns out, I have no idea how to compose stuff :D. I was saved when I found an amazing tool called Abundant Music, which actually allows you to randomly generate music. Although most of the music came out sounding like super generic and bland oldschool JRPG soundtrack, I actually managed to find a track that was moody enough for Bloodflame. Turns out, people actually liked it in the comments!
  • It’s actually very easy to forget that people are not you and have no idea how your game works, so I made a detailed tutorial on the title screen with some pretty pictures. Good thing I draw things in much higher resolution than I need them to be for the game!

Bloodflame Tutorial

In the end I managed to complete my game 6 hours before the deadline. What I would have done different? Lots of things:

  • The game could use some animation, but I suck really bad at animating stuff, so I decided not to waste time on that and focus on my strengths.
  • 8-way sprites for characters would be way better, but that would mean double the work on drawing things, which I’m not very good at.
  • Proper options menu with more settings, such as volume, resolution and other stuff. Didn’t think it would matter this much.
  • Procedurally generated environement. Now this one would take me ages, but in the end it would be very cool and add A LOT to the replayability.
  • Better enemy AI. It just looks stupid when enemies have no idea how to walk around a wall.
  • Story Mode. I wish the game had a story mode with different locations, where your character actually takes revenge on heroes and causes mayhem everywhere with explosions, rivers of blood and headless ponies. No time for that, unfortunately.

Overall I had lots of fun and I’m looking forward to participate in Ludum Dare 34! Thanks for reading! I’d be glad to answer any questions you have in the comments.

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]