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.

Saturday, August 10, 2013


Recently I took a trip to the Museum of Modern Art in NYC. Currently in the atrium is a special "mouse exhibit" that had on display over a hundred items in a dark room, ranging from toys to tools. Supposedly its purpose is to overwhelm the viewer by everyday objects, due to the large number of pieces, each demanding equal attention. The viewer, like a mouse, scans around a cluttered room. There is no focal point of the art.

At least that was my impression of it all.

In a way, I used it as inspiration to create these 61 items for my game. There are eight items per category with the exception of special rare equipment, tentatively sorted in ascending order of power. Each human can equip one on the left panel, plus one on the right.

I need a few junk items too, so I suppose the total will be bumped up to a nice and even 64, power of two.

Wednesday, August 7, 2013

Semi finalized menus

Below is the same interface from the previous blog entry, with the first art pass. Still, placeholder description text for a sense of scale. Ignore the botched shadows.

It is very motivating to be able to wake up in the morning and assign myself the task of fully implementing any one of these features. For example, "hmm today I feel like adding all the art and code for the twelve achievements". Another day I may add virtually all the sound effects or music.

Speaking of that, I have noticed that I definitely work best immediately after waking up. That three hour block of time can be a critical window of opportunity to accomplish something important. Often, it can be the majority of what actually gets done that day.

From left to right: skills, encyclopedia, missions, achievements, extra equipment, options.