Match Girl Post Mortem

Posted by (twitter: @ddrkirbyisq)
January 1st, 2014 5:25 am

If you haven’t already, please play and rate our game, Match Girl!

Our title screen.

This is my 6th Ludum Dare entry, and the 2nd time working as a two-person team with my artist xellaya. Our previous game was a psychadelic side-scrolling rpg about a crazy cat, Hyper Furball.

This time we went in a totally different direction, and created something dark and creepy. Here’s what the game looks like in action:

One of the later levels, on Normal mode.

Like last time, let’s go over what went well and what didn’t.

What went well:

The Game Concept
The concept actually came really easily this time, unlike last time where we had to go through a number of different ideas before finally settling on something. The theme this time (“You Only Get One”) was a good one–pretty open, but also restrictive enough to focus you on something specific. Doing a “you only get one life” game definitely felt like it would be a cop-out here, so we definitely wanted to stay away from using that idea. Like always, we were busy on Friday night, so we didn’t really start to work until Saturday, but I actually had the initial concept of an “only one light source” platformer while trying to get to sleep on Friday.

Team Experience
We’re veterans at this by now, so we don’t really have many kinks in our process. Especially on my side with the coding–I don’t really have to figure many new things out by now because I can just look at my previous projects and I can just copy-paste code as needed. Instantiating new objects, making timers and counters, doing screen flashes, doing the jukebox screen, that’s all easy stuff for me now. And of course, cranking out music is second nature to me now, after doing so many of these.  That’s always more of a “break” for me than actual work, to be honest.  Working together with xellaya is pretty nice now as well. We definitely don’t think along the same wavelengths, and generally don’t share the same vision for things, so it’s fortunate that we manage to find a way to make things work out. I think we’ve managed to strike a good balance, such that I allow her a good deal of freedom in making artistic decisions, while still pushing back when something could be reworked to better fit the game. I think it’s important to make sure that there’s enough communication about the needs of the game, while not just being super-controlling and nitpicky about everything. In the case of Match Girl, we ended up redesigning the enemy graphics, which initially looked like this:

Our derpy ghost.

Which was cute, but not quite what we needed.  The redesigned enemy looks like this:

Our revised enemy graphic.

 

Which is definitely more creepy and obviously harmful.  To make it pop out more, I increased the saturation, so in the end we have this:

Saturated enemy

 

Dynamic Lighting
Initially I had the match as the only light source, and in order to get that working I just took a big fat black texture, painted a transparent circle on it with a gradient, and pasted that onto the screen. Then I got the idea for the candles scattered around the levels and realized that I needed a better solution. I spent a little bit of time going into the rabbit hole trying to work it out with blending modes and getting into FlashPunk’s drawing engine, but then found some dynamic lighting code that someone else had already written up (https://github.com/SHiLLySiT/Lit). I tried it out and it worked! I remember making one or two tweaks to how it worked (probably changing the blend mode), but it ended up working great and I’m really thankful that I found a quick and easy solution. This was really key to making our game work well!

Our dynamic lighting system in action. I especially liked how the candles only partially illuminated adjacent enemies.

Level Design
Now, this was actually something I really worried about, because level design is really tricky to get right for a puzzle platformer, especially one that you haven’t carefully tweaked and refined and playtested.  I also wasn’t confident whether or not our mechanic would work well enough to make for good design.  I knew in my head that the match concept was a good idea, but whether it would actually translate to fun levels was something that I really couldn’t know until I actually sat down and tried it.
During the initial planning/prototyping phase I also thought that it would be nice if we had at least one other mechanic other than the matches and the enemies/obstacles that kill you, so I thought of the moving blocks and implemented those (was still using placeholder graphics for everything at this point).  It was later on when I was making the spotlight for the exit door that I thought of the concept of candles/torches that would be pre-placed in the level, and that actually worked really well for level design, since they function in so many ways.  Not only do they illuminate tricky areas, but they also serve to give a sense of atmosphere, and they also serve as good reference points while memorizing level layouts.  They also work nicely with the moving blocks in some levels.  The fake white blocks were the last thing I thought of–the idea for that probably came while I was color-shifting the block textures for the different worlds.
Initially I had  single set of 25 levels — 5 for each world.  After I had all of the different mechanics nailed down, I knew I wanted each world to introduce something new, except for the last world which would pull everything together.  I also knew how I wanted world 1 to flow: Introduce movement and the goal, introduce matches, introduce jumping, and introduce restarting.
So I had my 25 levels, but I realized that some of them were probably too difficult for inexperienced players.  So I dumbed down some of the levels, made them easier to memorize and execute, and added more torches.  Then I set out making 25 new levels for hard mode, where I tried to really be aggressive with the difficulty.  This was the very last thing I did, and I was rushing frantically to design all of hard mode in about an hour or so.  I’m really glad that it turned out so well the way that it did.  I’d say that I’m a bit lucky that I managed to get such decent level design even though it was squeezed in pretty last-minute.

 

What went not as well:

Not being in the right mindset
This didn’t end up really hurting us that badly, but I was actually feeling really lackluster and discouraged on Friday night due to just being in a bad mood in general, as evidenced by a post I made that night.  Luckily I still managed to come up with the concept while trying to sleep, and ended up shrugging it off and diving in with a good start the next day.  I don’t really think there’s much I could have done about this, but it was one of the worrisome things that happened this time around.

Underestimating the amount of work
I should have learned by now, but I guess there really is no such thing as a Ludum Dare that I finish early and don’t spend 100% of my effort on.  I keep on trying and telling myself to be less ambitious each time, but somehow I always end up pushing all the way to the deadline, almost without fail.  I think that’s a good thing–it’s part of the reason my games have become so polished–but at the same time, I need to prepare for it and expect my entire Monday to be taken up. (and ask for that day off from work in advance)

Story and plot
We kind of slacked on this this time around, but that was sort of a conscious choice, as again we were trying to be less ambitious.  I think it was also that we didn’t actually really have any good ideas for plot and storyline that would explain things well.  xellaya wanted the ending to be open-ended, and I thought that was fine by me as well.  I certainly didn’t have enough time on my hands to do anything more about it anyways. ^^;  I don’t think this really hurts our game much, as I feel like it doesn’t -need- a story this time, but it is true that this is something that we missed out on.

Music style
This one is a little debatable, actually.  I don’t think there’s anything wrong with the music in our game, actually.  I think it’s really effective, for the most part, and I’m proud of it as far as soundtracks go.  I mean, who doesn’t like a kickin 8-bit fakebit NES-style chiptune soundtrack?  We’ve already gotten a bunch of positive feedback on it, and I’d recommend you check it out too.
However, it might not have made the most sense for me to limit myself to 2A03 instrumentation and try to be really pure in terms of using only 2 pulse channels at a time, etc.  I think I just happened to be on a 2A03 kick at the time and wanted to do this fakebit style, which is fine, but perhaps it would have been more appropriate to go with a more “9-bit” approach, with darker soundscapes and non-chip sounds in the mix.  Who knows–maybe the melodies wouldn’t have turned out nearly as memorable if I had gone that route, but it -is- true that some of the later tunes are a bit “energetic” as opposed to “spooky”, which is probably the one qualm I have about the OST.  Really a minor point though, as I’m still really proud of it. 😛

All in all, a really great success for us this time.  It doesn’t have the “raw”, unadulterated fun that Hyper Furball did, but it’s a “cleaner”, more solid game, I think.  I’m really happy with how it turned out.  I’ve only gotten to watch one person play through it, but it was super awesome to see how they handled the different mechanics and got through each level.  I hope you guys all enjoy it too :)

Tags: ,


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]