Leap Day (or weekend) away

One of the intriguing ideas I walked away with from this past GDC was creating a Leap Day game. The premise is simple: take that extra day we’re given once every four years and use it as a day to simply make something. In this case, to rapidly prototype a game within a single day.

Rapid prototyping and development over the past few years has gone from something only a few development studios did to a fairly common development methodology among all game studios. Even if companies haven’t completely bought into full–scale rapid development, we’ve seen the adoption of AGILE and SCRUM throughout the industry. Maxis, for example, has long evangelized the benefits of quickly throwing together mechanics for testing with projects like Spore. And most famously Carnegie Mellon’s Entertainment Technology Center has had the Experimental Gameplay Project running the past few years where students quickly prototype a new game every week. Two of these games this past year have gone on to become full–fledged projects themselves with both World of Goo and Crayon Physics Deluxe winning awards at the Independent Games Festival at this past GDC.

Obviously seven days is seven times as long as one, but even in a single day one should be able to craft a simple mechanic into some playable fashion. And the end goal is not to create a fully–functional polished game, but to get the creative juices flowing. I hope to document the process here as I attempt to basically take one of the interesting mechanics as discussed at this year’s Experimental Gameplay Workshop (replay) and fashion a game with at least one level around this idea. Officially, I will start as 12:01 AM EST time and as long as my body and mind is willing I’ll attempt to stay up and design and program.

12:01 AM EST:
And off we go.

12:53 AM EST:
Super simplistic block/grid level system implemented. Player movement in development.

1:07 AM EST:
Duh. Trying to call root within a class before adding that object to the main timeline means that root will be a null reference. Stupid little things always end up delaying progress.

1:52 AM EST:
Hooray for ruining a perfectly good pot of coffee. Anyway, basic platformer is now in with the “player” being able to move around, fall, and walk back and forth. Adding a few more basic collision detection, basic end goals, and then moving on to the meat of the gameplay.

2:42 AM EST:

Now we get into the cool stuff. Implemented a “sweeper” line that’s going to be used to sweep across levels. Now I need to clean up the level code a little and add timestamps for placement. You’ll see why soon enough.

3:51 AM EST:
Even more delays due to necessary cleanup for code to work properly for the functionality I’m looking for. Player interaction in the game is going to be determined solely through manipulation of the level and more importantly, the exact time when manipulation occurs. Thus when a player places objects in the level there are a number of variables that need to be recorded at that moment in order for proper gameplay to occur.

4:42 AM EST:

It works! Blocks appear, disappear, reappear, and all on the correct time. The brown block in this picture is a player–created block. It simply appears and disappears as the sweeper lines passes by it. The red box is the player, and the other blocks are permanent blocks. Now I need to go back and clean up this code a little before continuing, but I hope that you can start seeing the potential here. The gameplay is going to revolve around a hard limitation on the number of blocks available to place. But as blocks are “swept” away from the grid they reenter your inventory and can be reused before they reappear again. I need to put in code to resolve time paradoxes (when a box reappears when you inventory is maxed out, perhaps have the oldest block disappear?), and there’s still a ton of stuff to put in, but after nearly 5 hours we have a prototype and a simple puzzle.

5:10 AM EST:
Mind is willing, flesh is weak. Started working on basic HUD, but sleep beckons. Will try to limit nap to a few hours, will be back with more throughout the day.

11:05 AM EST:
Okay, so not exactly a short nap. But back to work.

11:45 AM EST:
Code cleanup is tedious, but necessary if I want to extend some of this stuff without making the entire project a total disaster. On the plus side while I’m doing this I’m also creating a way for level data to be easily stored since in the long run not only does this game rely on a ton of levels, but also would benefit greatly from a robust level editor.

1:13 PM EST:
Quick break for lunch. Back to finishing up the level progression system.

3:20 PM EST:
Short Apollo Justice break, now back to the grind (and coffee).

5:14 PM EST:
As the day draws on, updates become more sporadic. Hopefully a second wind will dawn soon as I’ve become bogged down in the nitty–gritty details of fixing and cleaning up a lot of stuff.

6:09 PM EST:
Code cleanup just about complete (thankfully). Off to eat dinner with the family and then maybe take a break. This looks like it’ll continue on into the weekend.

11:03 PM EST:
Definitely going on into the weekend. Will be back with more substantial updates tomorrow.

Updates to continue…


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *