I already wrote up a quick post mortem on my blog. This is a longer version with more info – if you’ve read the other version, skip down to “What went wrong” and read from there. Cheers!
The theme this time was pretty weird, so I was maybe considering skipping, but I got inspired and then I did it anyway. And I am SUPER PROUD of that because I got to do some cool sprite animation, script some cutscenes and make a game in a genre I haven’t tried before: the genre of PUNCHING.
Every time I do a Ludum Dare, I have a vague idea of what sort of game I want to make or what skills I want to develop before the theme’s even announced. This time, inspired by playing Nicolau Chaud’s Beautiful Escape: Dungeoneer (review) last week, my plan was to make something contemporary and human. That led me straight to the idea of making a game where you punch people who don’t have rape alarms until they’re scared enough to want rape alarms. For their safety.
Consequently my entry “Vigilance” is a game about suspect charities, lonely women walking through empty parks at night, and pretending you’re a ninja.
Below the jump: my dev process, including roughly how long it took me to do the various things in the game, and a quick post-mortem.
OK, here’s something I feel a little guilty about: I was even less organised this time than I was for the last one. I didn’t even do a timelog, didn’t really bother with scheduling and cutting scope until I had about two hours left, and the whole thing’s frankly pretty hazy. Here’s what I remember, though:
I started off working on the graphics, as always, and then focused on character movement and response. Because the characters in “Vigilance” are normal humans and move about a lot – this is a gritty, realistic brawler of a fighting game – I ended up doing a ton of animation work. Including writing a decent animation system. Between this and rewriting my basecode because I never published it, getting a controllable character running around on a blank screen took me about 12 hours. But it was great! I learned a ton about animation, and making a controllable character with that fidelity and level of animation was enough of a victory that I could have stopped then and been happy.
But instead, I soldiered on! I set my character up so you could give a few NPCs with no AI a kicking. Here’s a playable version of what I had after day 1.
- Next I added the AI and game rules for the brawling part of the game, since I felt that part would need the most polish and balancing. (Also, I didn’t have a firm design in mind for the daytime scenes yet.) Getting the night scene into a decent state took about 3 hours, and I was polishing it and adding to it for the rest of the weekend.
- I now had about 14 hours left. The daytime scene came next. My original design called for conversations with each of the NPCs where you’d choose dialogue options, but for the sake of getting something in there fast, I built a minigame where you had a time limit and had to go interact with as many NPCs as possible. The whole conversation part of the interaction was abstracted out, so the NPC just gave you a final outcome at random. With a time limit added this turned out to be fun enough, so I dropped my further plans and focused on refining what I had!
- I spent a while here balancing the night-time combat, setting up the day-night-day-night game flow and putting in little bits of conversation text.
- I started work on the first major cutscene (“This asshole town!”) with about 8 hours to go and spent the next few hours adding context and jokes to the game.
- I added the ending screen to the game with about 4 hours to go. I think this is roughly when I managed my last start-to-finish playthrough. I don’t really recommend doing hours of development and then releasing without thorough testing, but I just didn’t have the time to make sure everything worked before I submitted. (I got lucky – everything did!)
- Started work on the sound effects (with bfxr) with 3 hours to go.
- Started work on the music (in Reason) with about an hour and a half to go.
- Tidied up a few loose ends with about 15 minutes left, like adding palette swaps for the NPCs so they weren’t all redheads with green shirts and putting in the mandatory “It’s dangerous to go alone!” conversation with an NPC… and submitted seconds before the end of the 48 hours. Result!
WHAT WENT WRONG
- I ran out of time. I could really have used about six more hours, just to draw better quality backgrounds, add a few more cutscenes/conversations, flesh out the ending, sort a decent title screen and polish the AI a touch.
The worst part is the night-time park background, which isn’t even identifiable as a park. Thankfully the location’s explained in conversation, but I’m still very much unhappy with it.
This was largely my own stupid fault for, again, not having basecode ready. Lesson learned – I’ll definitely be prepared next time.
- Focusing so much on fluidly-animated characters when I’d never done them before meant it took me hours of experimentation just learning how to animate them nicely! I went through a few iterations of the character and the run cycle early on before it started to come together. That kind of experimentation’s paradoxically the funnest part of Ludum Dare, but it’s a poor use of time vs. developing concepts that rely on skills you already definitely have.
WHAT WENT RIGHT
- The animation. This is the first time I’ve done this much character animation in a game! Beacon had about 9 frames of animation total – this has 32 frames per character, across two characters (generic boy, generic girl) and one variation (Night Marcy). I spent a few hours on the first day setting up a sweet little animation engine that let me string together frames from the sprite sheet and muck about with timings, and that really paid off in terms of making the character control nicely and the combat feel good. More than that: the animation was probably the most rewarding specific thing I’ve done in any LD, and I’m super glad it came out this well.
- The “feel”. Though the game’s obviously inspired by decades of beat ‘em ups, I wanted a gritty, realistic, sadistic feel to the fighting. It was tricky coming up with a system that didn’t use flashy kicks or combos, but little things like being able to kick people when they’re down to make them run away really built up the atmosphere of random, cavalier vigilante violence.
- The music. I literally wrote three music tracks in under an hour. I am so incredibly happy they’re not terrible! By all rights, they should be.
- The script. The concept deserved some serious work on humour and characterisation, so I spent a good chunk of Sunday bouncing jokes off my awesome and eternally patient girlfriend to make sure they were funny to someone other than me. That seemed to pay off, and it’s a real pleasure to see people enjoying it.
My current plan with “Vigilance” is to clean it up and do all the things I sadly couldn’t find time for during the competition, like decent background graphics instead of those placeholder scribbles, better sound and about a 50% bigger script. If you want to follow its further development, follow me on Twitter or check my blog. I’ll try to get the final version ready in time for the judging results three weeks from now in case this ranks highly. Fingers crossed