Forever Isn’t Long Enough – A Kudzu Post-Mortem

Posted by
December 19th, 2015 9:57 pm

Kudzu: I Can Grow Forever… makes my eighth successful Ludum Dare entry, and my fifth entry in a row. A shout-out to the devs of Love2D for making this achievement possible.

The tied vote caught me off guard (has that ever happened before in the history of Ludum Dare?), but I was up for a challenge. It didn’t take me long to decide I wanted to make a game where you controlled a perpetually growing vine with two-button left-and-right steering controls, and with that concept in mind, Kudzu! seemed like a natural choice for a title (though obviously not the final one). So I spent my whole first day hammering out the look and the feel of the vine-growing effect – not to mention figuring out a way to keep the ever-growing plant from overwhelming the draw and update loops.

Once that was done, I realized I was facing a dilemma I’d never encountered before: I had a gimmick and a pretty graphical effect to go with it, but I didn’t have a game.

Days 2 and 3 were spent taking my vine and figuring out how to make an actual game out of it. The first prototype limited the game world to a single 640×480 playing field; the final version adds scrolling (which was tricky to get to work right with the method I’d used to keep the vine from eating too many resources), and a little feature I’m particularly proud of where the vine will automatically turn around when it approaches the edge of the world. I have to confess I was inspired by Race the Sun to add chasing after sunlight to extend playtime as a mechanic, though I’ll admit the sunspots don’t make make a lot of real-world sense (let’s pretend the field the game takes place in is covered by randomly-moving clouds with the occasional perfectly circular break in them). Before I decided on the sunspots, I had it in mind that you would be chasing down and eating randomly-spawning bugs (which is why, even in the final version, the flower on the end of the vine looks like a chomping Pac-Man mouth) – ironic given how the bugs ended up spawning to chase down and eat you. I’ll admit they’re slightly, ahem, bugged: the idea was they would swoop across the screen and try to pass at you, but I made their turning radius too tight – they’re fully capable of taking multiple passes before they pass beyond the edge of the world and vanish. Maybe in a post-compo version I should put in something at the edge of the arena for them to run into so that this accidental mechanic actually makes sense?

The main game code comes out to only 550 lines; there are some utility snippets in other files more or less copied from my past projects, as well as copious use of the hump and Tactile libraries (the latter of which made it trivial to support a bevy of control options – six different two-button configurations between keyboard and gamepad!), but I take an odd bit of pride that I didn’t recycle the entity framework I wrote for S-LAYER and reused in CRUNCH!!! (which probably should be thrown out and rewritten from scratch anyway), nor did I write any new classes for this project – it’s all functions, loops, and arrays. Of course, I could get away with that because Kudzu officially has the fewest number of unique object types to keep track of in any game I’ve written…

Sound effects were made using my own voice and copious use of Audacity filters. I didn’t feel I had time to fiddle with Bfxr and get the sound effects juuuuust right, but I think the SFX turned out surprisingly good regardless. The music was composed in 15 minutes using FL Studio. I accidentally used the same instrument for both the back beat and the main melody, but I think the tune ended up nicely capturing the whimsical feel I was going for regardless.

On a final note, the background was made using Love2D’s built in random noise functionality – though not on-the-fly. I actually had it set up to generate the background at the start of play, but this resulted in an uncomfortable loading pause, so I temporarily added a line that saved the image to PNG and then used the saved image (with a little color tweaking after the fact) as the game’s background.

I hope you all enjoy playing Kudzu: I Can Grow Forever… as much as I enjoyed making it!


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]