Ludum Dare 35
Coming April 15th-18th Weekend

Ludum Dare 34 Results

About DDRKirby(ISQ) (twitter: @ddrkirbyisq)

I'm DDRKirby(ISQ). I do lots of cool stuff! Check out my main website here:
http://sites.google.com/site/ddrkirby

Entries

 
Ludum Dare 34
 
Ludum Dare 33
 
Ludum Dare 32
 
Ludum Dare 31
 
Ludum Dare 29
 
Ludum Dare 28
 
Ludum Dare 27
 
Ludum Dare 26
 
Ludum Dare 26 Warmup
 
Ludum Dare 25
 
Ludum Dare 25 Warmup
 
Ludum Dare 23
 
Ludum Dare 23 Warmup
 
Ludum Dare 22

DDRKirby(ISQ)'s Trophies

Jupi's Jam Favorites
Awarded by Jupiter_Hadley
on December 1, 2015
Audio - 2nd Place - LD29
Awarded by r2d2upgrade
on May 20, 2014
Theme - 2nd Place - LD29
Awarded by r2d2upgrade
on May 20, 2014
Fun - 3rd Place - LD29
Awarded by r2d2upgrade
on May 20, 2014
Overall - 2nd Place - LD29
Awarded by r2d2upgrade
on May 20, 2014
SonnyBone's Official 'RAD GAME' Award
Awarded by SonnyBone
on December 19, 2013

DDRKirby(ISQ)'s Archive

Grow Your Love Postmortem

Posted by (twitter: @ddrkirbyisq)
Thursday, January 14th, 2016 2:00 am

It’s postmortem time!

Grow Your Love

If you haven’t yet played Grow Your Love, you can do so here:
http://ludumdare.com/compo/ludum-dare-34/?action=preview&uid=7285

You can also download the official soundtrack here:
https://ddrkirbyisq.bandcamp.com/album/grow-your-love-original-soundtrack

This was my first time doing a jam entry with my trusty partner-in-crime Kat Jia since waayyy back in Ludum Dare 28 when we made Match Girl (and took 2nd place!).  That was two years ago, and since then, the number of jam entries has more than doubled, going from 780 to 1,638.  Wow!

This time around, we managed to take 3rd place in Audio, 13th place in Fun, and 13th place Overall.  Not bad at all! 😀

My personal goals going into the project were:

  • Don’t make another rhythm game
  • Work on pixel art together
  • Have fun!
  • (Maybe) treat iOS and Android porting as first-class

Humorously enough, I actually did very poorly on most of these. xD  While I didn’t REALLY make another rhythm game, one of our seven minigames was a simple dance game (haha).  Kat ended up doing 90% of the art as I had no time at all to work on any of the graphics…I drew the shooting stars and some of the UI elements like the arrows in the kniting minigame, but that was it =X.  And iOS and Android porting, pfffttt, come on, we both saw it coming from a mile away that that would get dropped.

Fortunately, the most important goal of having fun was a huge success; this game was definitely very enjoyable to make!

As always, let’s see what went well and what didn’t go so well.

Dancing

What went well

Concept, mood, feel, and overall vision

Probably the most common comment we got about our game was that it was really cute and adorable, which was great!  When we set out to decide what kind of game we were going to make, we weren’t trying to make something that was super innovative or challenging or anything — we really just wanted to make something fun and cute; something that would fit in with our Cocoa Moss label.  We had a really good and light-hearted energy bouncing ideas back and forth for the different parts of the game, and I think it reflects in the overall end product.  Kat did an especially great job with the dancing animations, and I tried to write out the Letter and Texting dialogue in a way to match the same style as well.  It all ended up coming together very well, and I think the game is much more about enjoying a cute story than about the actual scoring of the minigames itself, which is perfect!

 

Making smart code architecture decisions

Having SEVEN different minigames to make meant that code reuse was at a premium, and I found myself super-grateful to myself that I had enough foresight to plan well for it.  There was no way I would have finished all seven games in time if I had to create entirely separate logic for each of them.  Sharing most of the common logic for the tutorial demos, starting and ending the game, etc. saved me heaps of time and even though there were lots of hacks and messiness throughout the codebase (as always), it ended up working out really well.

 

Slamming out music faster than ever before

Holy crap.  I know I’m known in some circles for my speed-composing abilities, but I even outdid myself this time by writing the entire 10-song soundtrack in less than 5 hours total. O_O  FL Studio saves your project working times automatically; here was the breakdown of how long I spent on each track:

Lovers’ Rave: 32 minutes
Watch Carefully: 15 minutes
Hope You’re Not Asleep: 34 minutes
Stargazing: 20 minutes
Love Sprout: 3 minutes
Grow Your Love: 1 hour 6 minutes
Wiggly: 31 minutes
Our Love Has Grown: 46 minutes
From Me to You: 17 minutes
Rainbows of Yarn: 20 minutes

Total: 4 hours 44 minutes

Aside from the title theme I basically wrote each song in 20-30 minutes, which was kind of insane.  Of course, these were shorter songs, so it makes sense that I was able to churn them out at a faster pace, but I was surprised at how well I was able to work under pressure here while still remaining creative, especially given that some of the songs are not of my usual style.  I was under MASSIVE time pressure as I started doing the bulk of the soundtrack work, so I really had no choice but to do it quickly.  Ironically, this might have =helped= my creativity by giving me no choice but to go with my first gut instinct.  I’m especially happy with “Wiggly”, which was ridiculously fun to write.

You can read more of my comments on the individual songs in the in-game jukebox if you’d like — there are some interesting notes in there since a lot of the songs were repurposed from what they were originally intended for.  To be honest, neither me nor Kat were planning for the mood of the game to play out exactly how it did; it sort of evolved as things went.  I had to rethink how I was doing the music to reflect the shift in mood that ended up happening, but luckily I didn’t have any wasted work as a result.  I do have to say that the full hour I spent on the main Grow Your Love theme was well worth it; it’s now my favorite track of the entire soundtrack and I think it really gives a lovely first impression.  You’ll notice that I centered all of the songs around a shared motif — it’s a great technique I’ve used over and over again that really brings cohesion to a soundtrack. :)

Stargazing

What didn’t go so well

People not getting the menu controls

Sadness.  Perhaps I was going too deep with the “two button controls” theme, but I thought that in order to really be complete the menu of the game should use two button controls as well.  Of course, it’s hard to make menu controls using only two buttons, so I looked to DiveKick for how they did it and figured that I would do the same thing.  Apparently it wasn’t obvious to most people as they just gave the screen a blank stare and wondered why pressing left or right separately didn’t do anything, so in the post-compo version I made it painfully obvious by putting big flashing indicators on the screen and highlighting the text, press LEFT + RIGHT TOGETHER.  Sigh.  It’s always the little things that you assume that bite you in the foot later on…

 

Not testing on the release platform until later on

This one was a smaller point, but for most of development I was testing on Haxe’s Neko VM instead of actually testing the Flash compile.  This was fine, except halfway through development when I tried the flash build and ran into a crisis.  You see, most of the graphics in the game are upscaled by 4x, so I had set the camera zoom at 4.  But the text was way too big at 4x, so I had the text sized 50% smaller, so overall the text would be upscaled by 2x.  Setting the text scales to 50% worked fine in neko and everything was perfectly happy.  Well, as it turns out, in Flash with the buffer rendering flow, you actually can’t draw pixels with a size less than the current camera zoom, so instead of the text being nice and crispy at a 50% scale compared to everything else it was actually just unreadable.  Oops.  Luckily I was able to jury-rig a fix by hacking at the haxepunk code, so that was a major crisis averted.  The hack was pretty ugly — I set the camera zoom to 2 instead of 4 and then edited the image class so that every image in the game would be scaled up by 2, etc — but hey, you gotta do what you gotta do.  Managed to dodge the bullet on that one, phew!

 

Balance and scoring

Ugh, this is probably my number one regret with the game.  The scoring formulas and balancing of the minigames is pretty terrible and I really didn’t test them very much.  In particular the dance game seems to get people a lot — like rhythm tengoku/rhythm heaven, it’s grading you not only on whether you memorize the sequence correctly, but how on-beat you are.  Of course, I had no time to make sure the lag calibration was spot-on, so it’s not perfect at all. =(  In the compo version, some players also misunderstood the goal of the Letter writing game (do it as fast as possible), and players also tried to figure out which word made grammatical sense in the Texting minigame, instead of realizing that you just needed to tap on the YELLOW highlighted word.  In the post-compo version I tried to be much more explicit with the directions for those games, and made the tutorial overlay display across the entire screen because people were probably skipping the text due to being distracted.  Some people also got confused with the Stargazing game in the compo version by pointing to where the star was going rather than which side the star was on.  In the post-compo version I solved this issue by getting rid of the stars that start on one side and travel towards the opposite side, to make it more obvious.  We also made some tweaks to the dance minigame during development to make it more clear.  Clarity in instruction is always super hard to get right, I guess…

Initially I had planned on rebalancing the game and even adding an “Expert Mode” where each minigame gets harder (e.g. harder rhythms for dancing, longer letter and text, more arrows for knitting), but in the end I realized that Grow Your Love really isn’t =about= the challenge and the scoring anyways, so it’s not that important to have Expert Mode or anything like that.

Not enough time (as always)

Some of the issues with balance and scoring were a direct result of me having almost zero time to properly test and play through the game, as I was still working on core features like the main menu.

Several things accounted for the time pressure:

  • Making seven separate minigames just takes a lot of work, period.
  • There was a nontrivial amount of work put into making a horizontally-scrolling menu workable; I couldn’t just copy the vertical menus that I usually put into all of my other games.
  • Certain aspects such as Free Play mode ended up not being that important to the overall experience but still took time to implement and get right.
  • Did I mention making seven different games?

Overall there was just a LOT of stuff to get done; not only did I have the 7 games to program, but there was the menu, jukebox, liner notes in the jukebox, free play mode, scoring algorithms, the intro scene, record saving, tutorials, tutorial skipping, and don’t forget the ending scene!  This was probably the most hours I ever worked for an LD, and I felt =exhausted= afterwards, jeez!  Even after submission, I was still finding stupid bugs that I needed to patch up (at this point I still  hadn’t ever had time to actually play through the entire game).  I don’t know if there was really anything that could have been done about this, aside from maybe not worrying about Free Play mode…perhaps we could have gone down to 5 minigames, but I really think 7 is a good number and that we like all of the ones that managed to make it in.  Honestly I think we just did the best that we could have! =P

 

All in all, Grow Your Love was great fun to make and I hope you guys enjoyed playing through it as well.  As always, we learned a lot, and in the future we probably won’t try doing a warioware-style collection of minigames again.  I know that it worked well this time around, but it was just too much work!  It also caused an issue in that it took a long while before we had a single one of the minigames completely finished, as we were sort of working towards a lot of them at the same time.  One of these days, I’d like to have a LD where I actually finish the work for the main game EARLY instead of scrambling at the last minute!  (Melody Muncher was sort of close…).

 

Thanks for playing and reading about our game! :)

Rate Grow Your Love Today!

Posted by (twitter: @ddrkirbyisq)
Sunday, January 3rd, 2016 5:41 pm

There’s still time!  Play and rate Grow Your Love today!

1

It’s a cute collection of two-button minigames about a couple’s growing love.  Featuring music by yours truly!

234Screenshot 2015-12-14 18.50.43

Here’s what some other people have to say about Grow Your Love:

“Absolutely lovely!”
— DragonXVI

“This game was brilliant in many ways. The exact example for what I hope to play when I play LD-games. I absolutely have no minor thing to say about this. Very well done. My love has grown <3”
— CrownCity

“Sooo cute <3”
— GhostBomb

The soundtrack for the game is also now available for free download!

Click here for the Grow Your Love Original Soundtrack.

Post-mortem will be coming up once results are in.  Thanks for everyone who has played our game already, and good luck to everyone! 😀

DDRKirby(ISQ) is in!

Posted by (twitter: @ddrkirbyisq)
Thursday, December 10th, 2015 2:02 pm

Hey guys!  DDRKirby(ISQ) here, reporting that I’m in for LD34!  I’ll be entering the Jam this time, together with my artist/partner-in-crime who previously helped me with Hyper Furball and Match Girl back for LD27 and LD28.  Shameless plug time — we recently released a cute virtual pet app for iOS/Android and web, you can see it here!

This’ll be my =11th= time doing Ludum Dare…wow!  Last time around I ended up making a really fun rhythm game called Melody Muncher, which ended up nabbing 1st place in audio and 6th place overall.  It was a blast to make and the post-compo version is probably the most polished and fully-featured game I’ve made thus far!

Tools for this time around:

  • Haxe, via HaxePunk (OpenFL/Lime/etc), mainly targeting Flash
  • FlashDevelop as main IDE, Sublime Text for if I need to develop on my laptop for some reason
  • FL Studio for music and sounds
  • LabChirp, for additional sfx generation
  • Aseprite, for pixel art (new!)

I’ve been trying out Aseprite for another side project of mine lately and it’s been great so far!  Definitely beats laying images out in a spritesheet manually using GIMP =P  I’ll be using it with my mouse but my artist friend prefers to work with a tablet.

I’ll be ripping starter code from my previous projects (initialization, etc.) but nothing really significant.

Let’s set out some hopes and goals for this time around, shall we?

Don’t make another rhythm game

Well, this should be fairly easy to accomplish, I hope! =P  I’ve already made 3 of these (Ripple Runner, Melody Muncher, Rhythm Gunner), one of which was done for last time’s LD, so this time around we should do something different, or at least, if it’s going to be a game involving music, it should do so in a way that’s substantially different than just hitting things to the beat.

Work on pixel art together

We’ve never actually done pixel art together before, in fact my artist hasn’t really had much experience with pixeling, so it should be a new experience to try and adopt a pixel art style for this project.  She also has work on Sunday and Monday and thus won’t be able to contribute through the full 72 hours, so I’ll most likely have to pitch in as well, meaning it’ll be important that we’re both on the same page in terms of visual style and such.

In terms of style, I think I’m hoping to keep things relatively simple, maybe use a really small Game Boy-ish resolution (160×144), and try to keep our palettes pretty limited if possible.  We might not go all the way to limiting ourselves to 4 color palettes or anything, but simple is definitely good.  We might be aiming to emulate the style of the (original) Cave Story sprites, with no outlines and a relatively “soft” shading style, but we’ll see!

Have fun!

A bit of an odd goal, but you know, I think I’ve spent the last 10 Ludum Dares trying to really work on my game dev skills and really attempting to make great games that I’m happy with.  With games like Ripple Runner, Melody Muncher, and Match Girl, I think I’m actually really satisfied with how far I’ve come.  And that means I think it’s actually time to loosen up a little and worry a little less about results and what comes out of it all.  Even if we get mediocre ratings because of it, I think experimentation is a good thing now, as long as we have a good time doing it.

(Maybe) treat iOS and Android porting as first-class

Since releasing our first mobile app I think it might be nice if we could continue to release more games for mobile platforms, and now that I’ve figured out the little hoops that you have to jump through in order to get it all working (there are always little hoops), it shouldn’t actually be too hard.  So it might be nice to not only develop with that in mind, but actually go ahead and do the ACTUAL work for the mobile ports, especially in terms of UI work, etc.  At the same time, LD is always an event where you just don’t. have. enough. time. for. anything. so I get the feeling that this will be one of the first things on the chopping block when push comes to shove.  You know how it goes.

Good luck to everyone else entering LD!  Make sure you are all ready with your dev environment (no last-minute headaches and surprises!), stock up on food and snacks, and most importantly, get a good night’s sleep tonight!  You’re gonna need it :)

Melody Muncher Developer Commentary/Playthrough

Posted by (twitter: @ddrkirbyisq)
Sunday, September 13th, 2015 8:42 pm

Hey all!  I’ve made a developer playthrough + commentary video, playing through Normal mode and Expert mode of my game, Melody Muncher!

You get to watch me full combo a bunch of the normal mode songs while explaining some things that went into the development of the game, then you get to watch me do OK on most of the expert mode songs, and struggle through the last two.  Enjoy!

Melody Muncher Post-Mortem

Posted by (twitter: @ddrkirbyisq)
Saturday, September 12th, 2015 11:15 pm

Hi there!  DDRKirby(ISQ) here with my =10th= LD entry (wow!), Melody Muncher!

2

Link to play and rate: http://ludumdare.com/compo/ludum-dare-33/?action=preview&uid=7285

This one was a blast to make, and I ended up working for 2 weeks to make the Post Compo version (out now!), adding a new mechanic, animated backgrounds for each level, more songs, 3 separate difficulties, and more!

When the theme was announced this time as “You Are the Monster” I was actually quite disappointed, just due to the fact that it was so similar to “You Are the Villain”!  I mean come on guys, really?  But now that I think of it, You Are the Villain was EIGHT LDs ago, so I guess I can’t fault people too much for it.  I wonder if anyone decided to redo the same game concept that they did for LD25?  It would be an interesting challenge, just to see how far your game jam skills have come over the past years…

Anyways, despite my initial dislike for the theme, my idea and game came together really smoothly this time; I can’t even remember running into any hiccups at all!  As always, let’s go over what went well and what didn’t go well.

 

What went well:

Avoiding other commitments during LD weekend
Almost every other LD I’ve done, I’ve had =something= else to attend to over the course of the jam, usually on Friday night.  Usually I tell myself that it’s fine and that I can just try to brainstorm in my head while that happens, but to be honest, that never quite works out and it’s basically like I start off behind by 4 hours already.  This time I decided that I really was just going to dedicate the whole weekend to LD and besides some driving here and there and dealing with meals (gotta eat!), I was just heads down working the whole time, which was GREAT!  An exhausting weekend, for sure, but I don’t think there’s any way around that.  For Sunday, after breakfast and running a quick errand in the morning, I pretty much worked straight through the entire day until the deadline…I stopped twice for the bathroom, once for refilling water, and once for a massive yawn/stretch…that’s it.  Hahaha, you other LDers will know what I’m talking about…Sunday is usually that day when it’s like “omg I have 5 hours left and I still have to add in 2 more enemy types, also my game has no menu, title, or tutorial and I haven’t tested the difficulty at all AHHHHHH”.

3

Game concept and execution
As mentioned earlier, everything came together really smoothly for Melody Muncher, without a hitch, really!  I spent Friday night doing my usual brainstorming routine, and considered plenty of other possibilities, but the idea of having the piranha plant munching guys as a rhythm game occurred to me pretty early on, and it clearly had the most potential while also playing to my strengths, so I went for it.  Huge success!

Level data layout
One of the reasons I was able to cram in six (!) full songs to the 48hr version of Melody Muncher was because I made sure the levels were really easy to program in.  Unfortunately this was NOT the case for my previous game of this genre, Ripple Runner.

Here’s what a level definition looks like in Ripple Runner:

// Section 1
addPlatform(startTime + -10.0 / bps, startTime + 36.0 / bps, -40, timingWindow, level);
addPlatform(startTime + -10.0 / bps, startTime + 36.0 / bps, 40, timingWindow, level);
addPlatform(startTime + 37.0 / bps, startTime + 44.0 / bps, -40, timingWindow, level);
addPlatform(startTime + 37.0 / bps, startTime + 44.0 / bps, 40, timingWindow, level);
addPlatform(startTime + 45.0 / bps, startTime + 52.0 / bps, -40, timingWindow, level);
addPlatform(startTime + 45.0 / bps, startTime + 52.0 / bps, 40, timingWindow, level);
addPlatform(startTime + 53.0 / bps, startTime + 60.0 / bps, -40, timingWindow, level);
addPlatform(startTime + 53.0 / bps, startTime + 60.0 / bps, 40, timingWindow, level);
addPlatform(startTime + 61.0 / bps, startTime + 62.0 / bps, -45, timingWindow, level);
addPlatform(startTime + 61.0 / bps, startTime + 62.0 / bps, 45, timingWindow, level);
addPlatform(startTime + 63.0 / bps, startTime + 80.0 / bps, -40, timingWindow, level, true);
addPlatform(startTime + 63.0 / bps, startTime + 80.0 / bps, 40, timingWindow, level, true);
GameWorld.world().add(new Checkpoint(startTime + 64.0 / bps, -40));
...
// Section 2
 addPlatform(startTime + 80.0 / bps, startTime + 100.0 / bps, -40, timingWindow, level);
 addPlatform(startTime + 80.0 / bps, startTime + 108.0 / bps, 40, timingWindow, level);
 addPlatform(startTime + 108.0 / bps, startTime + 116.0 / bps, -40, timingWindow, level);
 addPlatform(startTime + 116.0 / bps, startTime + 120.0 / bps, 40, timingWindow, level);
 addPlatform(startTime + 120.0 / bps, startTime + 124.0 / bps, -40, timingWindow, level);
 addPlatform(startTime + 124.0 / bps, startTime + 126.0 / bps, 40, timingWindow, level);
 addPlatform(startTime + 126.0 / bps, startTime + 128.0 / bps, -40, timingWindow, level, true);
...
...
...

And so on and so forth.  And that’s only the =first half= of the EASIEST level.  Yuck!  Unfortunately I was super duper hacky while coding up Ripple Runner so the way that I constructed the levels was actually just by placing each platform individually.  This involved tons of hacks, especially trying to deal with assymmetrical timing windows which varied according to which kind of obstacle you were using (spikes, rippling, jumping), and a bug that prevented me from creating single platforms that were too long….etc etc.

Thankfully I didn’t repeat the same mistake this time.  Here’s what a level looks like in Melody Muncher:

result.SfxName = "sfx/level3";
 result.BeatDivision = 2;
 result.BeatPixelLength = 80;
 result.Left = 
 "........ ........ ........ ........" +
"1.....1. 1....... 1....... 1...1..." + "1....... 1....... 1.....2. 1...1..." +
 "1.1..... 1...1.1. 1....... ........" + "1...1.1. 1.1..... 1....... ........" +
 "1.1..... 1...1.1. 1.1.2.1. ........" + "1...1.1. 1.1..... ........ 1.1.2.1." +
 "1....... 1....... 1.....1. 1...1..." + "1.....2. 1....... 1....... 1...1..." +
"........";
 result.Right =
 "........ ........ ........ ........" +
"1....... 1....... 1.....1. 1...1..." + "1.....2. 1....... 1....... 1...1..." +
 "1...1.1. 1.1..... 1....... ........" + "1.1..... 1...1.1. 1....... ........" +
 "1...1.1. 1.1..... ........ 1.1.2.1." + "1.1..... 1...1.1. 1.1.2.1. ........" +
 "1.....1. 1....... 1....... 1...1..." + "1....... 1....... 1.....2. 1...1..." +
"........";

Much better!  Here I’m using “1” to indicate a green enemy, “2” for a red enemy, and “3” for blue enemies (which don’t appear in this particular level).  I ended up using “[” and “]” to denote the yellow centipede enemies in the post-compo version.  The periods just indicate points where there are no enemies, and spaces get automatically ignored.  It’s still perhaps not 100% ideal as I still had to build up separate strings for the left and right sides of the screen, but overall inputting notes for songs went pretty quickly.

Coding it the Right Way
So, again, for Ripple Runner I used a bunch of stupid hacky coding, and as a result, even though your X position in Ripple Runner is locked to the position of the song (good!), your jump height and y position is not (bad!)–it’s actually just normal platformer gravity.  This led to some pretty clumsy manual hacking about to get the gravity to be correct for each level (it needs to be adjusted for each BPM setting!), and in general just led to sad times within the code.  The end result still ended up just fine, but…

When it came to program Melody Muncher, I had learned my lesson, so I made sure to do everything right.  The position of all of the enemies is dictated solely by the position of the music, and there are NO collision boxes or movement physics or anything!  Each enemy knows what beat it should be hit on, and the enemies on either side are kept in an Array, sorted by order of arrival.  When you press left or right, we run through the first part of the Array looking for enemies whose beat is within the defined timing window–no collisions or any other nonsense needed!  Very clean, very sensible, and the code was much better and simpler as a result.

4

Post-Compo Version
This might not technically count as something that “went well for LD”, but this was the most fun I’ve ever had working on a Post-Compo version of a game I’ve made.  Probably because of the above two factors, and also because I knew I had something with a lot of potential.  Making new songs and mechanics was a blast, and even though it took a lot of work to add all of the new features in the Post-Compo version, I’m super happy with how it turned out, and I believe this is my most polished game ever as a result.

 

What didn’t go so well:

Input Delay and Lag Calibration
Okay…so this was mostly a stupid mistake.  So one of the mechanics in the game is that after a few levels, enemies can come at you simultaneously from both sides, so you have to press Left and Right at the same time to do a split munch.  Simple enough, right?

Well, on the coding side, I implemented this by having a separate animation — one where Ms. Melody has two heads that are each attacking.  (As it turns out, while working on the Post-Compo version I had to redo this and just implement each head separately to allow for the yellow long centipede enemies to work)  I then also decided that because people probably weren’t always going to hit left and right at exactly the same time, what I would do is this:

When you first hit left or right, the plant transitions into a “getting ready to attack” state (with a different animation frame) and waits for a frame or two, during which you have the opportunity to input the other direction.  Once the frame or two is up, the attack actually happens.  So this was good because even if you hit left on frame #1 and right on frame #2, you still get the split munch on both sides.

The problem is that by doing this, I essentially delayed every input (as well as the resulting “munch” sound) by something like 17 or 33ms.  Now, that may not seem like much, but in a rhythm game where your actions need to be really tightly synced, you can really notice, and people did.  Add that to the fact that my default lag calibration for Flash builds was slightly off (I had to shift it by maybe ~50ms compared to native builds) and people definitely felt that their inputs were delayed.  Now, part of this was that I simply didn’t have enough time to program in a robust and user-friendly lag calibration setting (it’s much better in the post-compo version!), but most of this was just my own fault for adding additional input delay unnecessarily.

The good news is that the post-compo version fixes this entirely, and if you compare the two the post-compo version should feel MUCH better.

Missing was too punishing
In the original 48hr version of the game, if you try to attack when no enemy is on the corresponding side, Ms. Melody does this ugly faceplant animation which leaves you stunned for a half beat or so.  This was designed intentionally as a means of punishing you for trying to attack when there was no enemy, as well as to eliminate the cheesy strategy of just trying to munch on both sides on every single eighth-note beat.  If you didn’t have the recovery animation, you’d just be able to do that and get a perfect score, which was obviously no good.  I had been trying to think of various ways to solve that issue, and after trying it, this seemed like a clean solution, as well as making it very unrewarding to miss notes, which is what I wanted — it should feel good when you hit enemies, and bad when you miss enemies.

Well, the problem is that players don’t like feeling bad.  One of the complaints that I got was that the recovery time for missing was too long and it led to people feeling like the game was “unfair” (ugh, loaded term).  Now, if you’re used to rhythm games, you probably didn’t mind this as much, but if you’re not a rhythm gamer, what happens is that you miss one enemy, then because of that your input for the second enemy doesn’t register (since you’re still in recovery), which throws you off and then you end up missing again ……, in the end that’s a situation that just doesn’t really feel good.  So lesson learned — reward your players for succeeding, but don’t punish them for failing.

The solution in the post-compo version was to eliminate the recovery delay and just add in a proper scoring system that adds points to your score based on your current chain, a la Guitar Hero.  Now I no longer need the recovery delay because if you try to use the strategy where you attack both sides on every eighth note, you’ll keep on breaking your chain over and over again, leading to a poor score.  Problem solved!  But unfortunately, I just didn’t have time to get the more fancy scoring system and everything done in the 48hr version.

No Shovel Knight
Okay, so this wasn’t really that big of a deal, but when I was drawing up the graphic for the red enemies I knew I wanted it to be something big, beefy, and blocky, so I went with an armored knight.  Since it was a knight, I decided to give it a sword.  I even referenced some Shovel Knight images as I was drawing it up….but for SOME reason I missed the golden opportunity to just have my Red Knights carry shovels and be “shovel knights”.  Which would have made perfect sense (they’re trying to dig up Ms. Melody), AND would have been a great callout to a great game.  Biggest missed opportunity everrrrrr =(

48 Hours!!!!
Alright, I guess this isn’t really something that “went wrong”, but it still amazes me every time how quickly the 48 hours goes by, despite you wanting to cram in more and more features.  “If only I had 1 extra hour!!!”  This was apparent this time around as well; the submitted version of my 48hr entry was missing some key components that I really really wanted to get in, but I just. did. not. have. enough. time.

Specifically, better lag calibration was one item high-up on the wishlist that I didn’t end up getting to squeeze in until later.  It wouldn’t have taken long, either!

And, changing backgrounds was another real big item.  I had a hue shifting effect that I used in Ripple Runner which worked fabulously, and I really wanted to do the same thing in Melody Muncher, because without it the backgrounds feel very static, especially when the music is very energetic and has these big builds and climaxes.  Of course, it turns out that because I’m now working in Haxe and Haxepunk, I can’t just use punk.fx (flashpunk) to do an easy hue shift; in fact I still don’t know of any good way to do hue shifting in Haxe/Haxepunk without digging into low-level RGB code yourself. =(  The silver lining on that cloud is that because I wasn’t able to do easy hue shifting, I ended up making much more intricate and involved animated background effects for the post-compo version, so it all works out. :)

1

 

And that wraps up another post-mortem!  Results will be in very soon–good luck to everybody and remember, the real prizes are your games, not your ratings!  Be sure to take your scores with some salt; sometimes you get scores that don’t quite make that much sense.

Thanks for taking the time to read about Melody Muncher!  Hope you enjoyed it as much as I did! :)

Rate Melody Muncher today!

Posted by (twitter: @ddrkirbyisq)
Saturday, September 12th, 2015 10:01 pm

There’s still time!  Rate and play Melody Muncher today!

Then download the full 23-track soundtrack here!

1 2

This is probably the most polished game I’ve made thus far!  But you don’t have to take my word for it.  Here’s some comments I’ve gotten so far:

Best game ever played on any LD. And the music.. THE MUSIC!!!!
–m43c0

wow. Gives me a “One Finger Death Punch” meets “Rhythm Heaven” vibe and I’m very much into it. The music is exceptionally high quality, the corresponding enemy arrangements are enjoyable to play, the amount of levels is surprisingly large, and the overall level of detail and polish here is spectacular. Incredibly well done.
–NickMakesGames

Six stars for audio, this is amazing for 48 hours! Downloaded the soundtrack.
–walsh9

Brilliant. Definitely belongs in that class of games made by clearly skilled people able to bring a game to within shooting distance of “a real game” in a very short space of time. Terrific.
–OldPeculier

Playing this game made me smile big.
–euske

I love you
–miotatsu

Melody Muncher POST COMPO VERSION WOO!

Posted by (twitter: @ddrkirbyisq)
Monday, September 7th, 2015 2:45 pm

After two weeks of hard work, I’m proud to present the post compo version of my chiptune rhythm game, Melody Muncher Deluxe!

Link: http://ludumdare.com/compo/ludum-dare-33/?action=preview&uid=7285

Please please please try it, especially if you were experiencing input lag issues with the 48hr version, as that should all be fixed now!

I’ve implemented a slew of extra features, including better timing code, animated backgrounds for every level, configuration options, high score saving and loading, a new scoring system, particle effects, more stages (and more music!), a brand new mechanic, and of course, EXPERT MODE!

I’ll let these pretty screenshots speak for themselves:

 

1Underwater stage

 

2Pretty backgrounds.  Also, a new enemy type — hold notes!

 

4One of the hardest songs in the game on expert mode.  You have been warned.

 

3Particle effects!

 

5Full soundtrack – TWENTY THREE (23) SONGS!

By the way, all 23 songs are included in the new extended soundtrack.

Download the extended soundtrack here!

I’ll be writing up a full post-mortem on Melody Muncher sometime soon, so look out for that, too!

Melody Muncher soundtrack download

Posted by (twitter: @ddrkirbyisq)
Thursday, August 27th, 2015 11:42 pm

The soundtrack for my chiptune rhythm game, Melody Muncher, is now out!

Melody Muncher Original Soundtrack

Get it here:

https://ddrkirbyisq.bandcamp.com/album/melody-muncher-original-soundtrack

Melody Muncher – Finished!

Posted by (twitter: @ddrkirbyisq)
Monday, August 24th, 2015 12:36 pm

2

 

http://ludumdare.com/compo/ludum-dare-33/?action=preview&uid=7285

Go try it out if you’d like!  Be sure to use the lag calibration feature; some people have been complaining about timing issues, so that’s important (now comes with a visual guide!).

If you liked Ripple Runner, you’ll like this one too!  As always, features a full 9-bit chiptune soundtrack produced by me!

There are still many features that I want to add in…background color shifting (a la Ripple Runner), expert mode, more stages, off-beat enemies…I’m also regretting the fact that I didn’t give the red knights shovels instead of swords =(  Missed opportunity of the year…

I hope to start work on the post-compo version soon!  But for now, I’m going to just take it easy for a bit. :)  Congrats to everyone else who made it out of the Compo with a successful game, and to those of you still Jamming away, you can do it! (final stretch!)

Full Post-mortem will come a bit later as well :)

Calling it a night

Posted by (twitter: @ddrkirbyisq)
Sunday, August 23rd, 2015 2:31 am

Made good progress!  I have the three main enemy/mechanic types implemented, 3 songs, better animation for Ms. Melody, working gameplay, graphics for 2 of the enemy types, and a functional menu/difficulty/song select scene.  Phew!

Still to do:

  • Song #4 introducing the teleport enemy
  • Tutorials
  • Even more songs
  • Better visualization for beats?
  • Rudimentary lag calibration option?
  • Jukebox scene
  • Graphic for teleport enemy
  • Main Scene needs to actually end at end of song
  • Need alternate stepcharts for the higher difficulties
  • Scoring and star system

As always, 48 hours is a crazy short amount of time…wish me luck!  Hang in there everybody, you’re halfway there!

Munch munch munch

Posted by (twitter: @ddrkirbyisq)
Saturday, August 22nd, 2015 7:07 pm

Screenshot 2015-08-22 17.04.03

 

Good progress!  The idea came pretty quickly, and is a great “LD-sized” game I think.  I’ve got the music engine working, some pixel art, backdrops, and the first song done!  Still need a whole lotta work on the animations for Ms. Melody the piranha plant, and that green rectangle on the right is supposed to be an actual guy, but hey, one step at a time!

Getting pretty tired though, I just had a snack and think I’m off to a nap!

I’m in again!

Posted by (twitter: @ddrkirbyisq)
Wednesday, August 19th, 2015 3:58 pm

DDRKirby(ISQ) here!  That’s right, I’m joining LD again!

Here are my personal goals for LD this time around:

Skip my Friday social dance event to focus on LD – Usually every LD I do I always start behind on time because I go to a weekly dance event on friday night.  Well, not this time!  Just gonna focus on LD this time, and actually get a fresh start alongside everyone else. :)  Hopefully this will lead to me having a little more time too, since 48 hours is super tight already, as we all know.

If possible, do something using a 4-color palette – The past couple of LDs I’ve kept on wanting to do something with “a simple and clean art style, probably using basic shapes and subtle effects”, but I think I’m over that and I actually really want to try using the style that I did for Ripple Runner again, using 4 shades as in the good ol Game Boy days.  I’d actually love to create something that is reminiscent of A Kitty Dream…I know that isn’t strictly 4 colors, but I think that aesthetic is something that I’m really into right now, using pixel art and simple colors to create beautiful spaces.

Do something small so I can focus on aesthetics – I’ve never tried focusing on aesthetics before in an LD game but I want to attempt to do it, ratings be damned!  Of course, I may end up getting sidetracked and just do another rhythm-based game where you really get into the music, but I think I’d like to make it a goal to just make something that just looks and sounds great, rather than concentrating so much on the actual gameplay.  Easier said than done, of course–you still have to have an interesting game at the end of the day ;P

Tools I’ll be using:

  • Haxe and HaxePunk, with FlashDevelop as my IDE
  • FL Studio and LabChirp for music and sound.
  • GIMP for art
  • Tiled (potentially) for map editing

TODOs left before the start of compo:

  • Check out updates to HaxePunk and associated libs, make sure everything is up to date and compatible.
  • Download Tiled and its associated HaxePunk loader, make a sample project where I’m loading things from a Tiled map, because there’s a good chance (?) I’ll need a proper map editor.  Make sure there are no kinks in the process.  Reminder to self that when I was doing Rhythm Gunner I think pixelmasks were having some issues so I need to check on that again.
  • Get some rest :)

Rhythm Gunner

Posted by (twitter: @ddrkirbyisq)
Sunday, April 19th, 2015 11:49 pm

screenshot1

Play it here: http://ludumdare.com/compo/ludum-dare-32/?action=preview&uid=7285

I managed to add a LOT in the past 8-10 hours.  Looking at my git log, before the start of the day when I woke up, I had just finished getting rhythm-tracking working and having it display via the on-screen bars that travel down with the beat.  Since then I’ve added:

– 3 new unique weapons
– Player animations
– 2 new enemies
– A main menu screen
– Lag calibration
– Item spawning
– Tutorials
– Enemy bullets
– Explosions
– Fancier reactive music
– Enemy spawning
– Error effect when you mistime your hits

screenshot3screenshot4

This was probably the closest I’ve ever cut it to the submission deadline.  Whew!  There is still a lot to be done…I didn’t have enough time to slap on layers and layers of polish like normal.  Maybe that’s only possible with Jam games?  Just thinking back to Match Girl and Hyper Furball…yeah, having the extra day REALLY makes the polish possible.  Even for Ripple Runner, I felt really rushed at the end and didn’t have nearly as much content as I would have liked (until post-compo version).  48 hours is just crazy.  Jeez.

I’m super happy with what I accomplished, though!  And…the game actually plays pretty well, too!  Go check it out :)  There’s even a co-op mode!

In the coming future I’ll need to take care of a bunch of things, like music downloads, fixing up  links, building other targets (right now the windows and neko targets don’t track audio properly, not sure if that is an easy fix or just impossible), etc.  And of course just working on it more and making a fleshed out post-compo version, with more weapons, better balance, more enemies, different levels, more music, a proper intro, etc.  But…that will all be later.  For now it’s time to rest.  Congratulations to all of you who finished, and for those of you still Jamming, hang in there!

Great progress, but…the clock is ticking down…

Posted by (twitter: @ddrkirbyisq)
Sunday, April 19th, 2015 5:09 am

Huzzah, a screenshot!

Screenshot 2015-04-19 03.04.23

 

We’ve come a long way!  Around lunchtime I was just starting to set up the very basic logic and classes–now we’ve got a player sprite, an enemy animation, a functional weapon (with particles!), and I’ve even got beat-tracking working and visually displayed on screen, and some UI too!  The level collisions work, I have a cool shotgun cloud puff that I am amazed actually worked out, and things are overall going pretty nicely.  I’ve got music, too!  And, co-op support!

I always forget just how little time 48 hours is, though.  Sheesh!  As always, I’m ending Saturday night wondering how the heck I’m going to finish everything in time.  This time actually seems doable though, I have a lot here already and just need to keep adding more.  but…need mental energy……zzzzz

Idea get!

Posted by (twitter: @ddrkirbyisq)
Saturday, April 18th, 2015 2:12 pm

Slept early last night on friday, that’s an LD first!  Woke up early and stocked up on food at the grocery store while brainstorming some more.  After scribbling down a lot of different nouns on my brainstorming sheets, and then trying to flesh out some of the better-sounding ideas I had, I’ve finally settled on a direction for the game.  Picked something that I think works to my strengths.  Not sure if it’ll be a crowd-pleaser, but you know what…it doesn’t matter!  As long as you make something awesome :)

Tentative project name: Rhythm Gunner 😀

Next step, let’s get the bitbucket repo setup and start digging in!

I’m In!

Posted by (twitter: @ddrkirbyisq)
Thursday, April 16th, 2015 2:22 pm

Hey there, DDRKirby(ISQ) here!  You might remember me from my entry from LD29, Ripple Runner.  This will be my *9th* time doing LD!

Last time I ended up with Labyrinth, a short 2D puzzle platformer with pixel graphics.  It ended up taking 7th place overall!  (Despite it being one of my weaker entries)

For Labyrinth, my goals were:

Make something with a simple and clean art style – I failed on this front and ended up just using pixel art again.  I still have yet to make a game using basic shapes and a clean/minimalistic aesthetic.  For Labyrinth, pixel art was the right choice though, so it wasn’t really a mistake.  Just, hopefully I get to do this at some point.

Don’t stress out about results – Yeah, I did this.  I didn’t even expect that much because I ran out of time and felt really rushed at the end due to having a false start.

Feedback and critical thought earlier in the design process – Yes, I did this too.  In fact I had an initial idea of a dungeon that would change in shape and have this narrative where you start out with a friend and then you lose them and then the story gets wrapped up somehow blahblahblah….but then I ended up trashing that idea completely after I figured out that it wasn’t really working.

For this time, let’s try to:

Make something simple, dammit – Should always be a goal…even if I don’t end up with something simple in the end, it’s always best to start off small and add fancy stuff later.  Just, more fun that way!

Don’t stress TOO much about the initial idea – Last time I think I actually ended up tried to overthink things and that’s what led to something forced and unnatural; I think I still need to spend a good chunk of time thinking about a fun idea that will work but once I have that I can just try to run with it and see what happens.

Code with extensibility for multiple resolutions and input types – I’ll be working with haxepunk this time, so there’s the possibility of cross-platform builds!  If I want to support mobile devices and such, I need to code in a way such that I don’t lock myself 100% to a particular resolution/input type, so I’ll at least make *some* effort to do that.  I know a lot of people were requesting Ripple Runner be a mobile release, for example.

Tools/frameworks I’m using this time around:

– Haxe with Haxepunk, deving in FlashDevelop.  This’ll be my first LD using haxe!
– FL Studio for music/audio
– Labchirp for additional sfx
– GIMP for graphics/art
– No map editor, even if I do end up with some sort of game that wants a map editor, trying to integrate one with haxe is just tooooo risky.  I’d rather roll my own ascii text solution or something.
– Paint tool SAI if I decide to be experimentalllll and actually draw things (but I probably won’t).

Protip for any people who are attempting to use haxepunk: I’ve found that the following combination of library versions will make things happy:

HaxePunk: [2.5.3]
hxcpp: [3.2.37]
lime-tools: [1.5.7]
lime: [2.1.3]
openfl: [2.2.8]

AFAIK the latest version of HaxePunk is not yet compatible with the latest releases of lime/openfl.  This took me a while to figure out but I’m glad I have it all squared away before the compo starts.  As an aside, I also tried to find a good IDE for haxe+haxepunk in OSX but everything I tried didn’t really pass the test…which is fine since windows is my primary platform anyways.  Flashdevelop will have you covered.

[cache: storing page]