Tuesday, August 27, 2013

The Village of Lost Time

On the weekend I participated in compo Ludum Dare 27! The 48 hour solo game jam held three times a year. It looks like the number of total entries almost hit a new record of 2213. The theme was "10 seconds" winning by a landslide in the final voting round. My suggestion "You must leave it behind" got a lot of buzz and ended up in third place.

My entry is called "The Village of Lost Time". It embraces the 10 second theme by rewinding time prior to your daughter's demise. As you control a villager, the game records the movement and replays it for each sequential session. Eventually you have this massive army built up. The goal is to fend off the spirits that take your daughter, destroying totems to harvest appropriate magic.

The Good

  • I gained a lot of experience. This was the absolute first game I made where it was entirely playable using crude placeholder art. Rectangles and circles everywhere, but it worked. I spent the first day programming everything, and the second on art, audio, and dialog. Now I can repeat this process with confidence.
  • I slept eight hours both nights (the jam begins at 9PM) and I did not consume more caffeine than I normally would. I stuck to my typical daily routine.

The Bad

  • Sound effects. I used as3sfxr for most of them, with limited time to record my own, such as chopsticks and knives hitting my desk. The spirit sound is me blowing over a plastic bottle all warped up in Audacity.
  • There is no music. Only after the jam did I come across this amaaaazing program that can generate a unique song using specified structure and arrangement. Yes, this is allowed, and even recommended.

The Ugly

(technical ramblings)

The original 48 hour version suffers from a technical bug that causes incorrect movement of the previously recorded villagers but only as the game progresses. Basically, each frame I was recording the keyboard controls, so the currently controlled villager and recorded ones would compute velocity and position using the same function.

The time step is a fixed number so frame rate should not matter. Floating point errors are expected in numerical integration, but it is all feeding off the exact same data each session. Eventually recordings get bugged and seem to worsen each sequential session, as if bad data is bleeding into the mix.

I fixed it by only storing the positions each frame, calculating velocity only for the current villager. This guarantees it to work accurately.

1 comment:

Sam said...

What an awesome application for juicing up your prototypes by adding in some quick, computer generated tunes. Thanks for sharing!