Sunday, July 06, 2008

ToJam3

A month ago 4 of us met together and formed a team to participate in ToJam3. The premise was to come up with a complete game from scratch, start to finish in 48 hours. ToJam3 is quite a competition to create any large piece of software in 48 hours is a challange let alone worry about a full playable game which brings in huge challenges as far as game play is concerned.

I'm now finally glad to announce that our team Team Any Key has completed with a silver award making it one of the best games at the event beating out over 30 other teams to win this coveted title.

The premis behind "debugger" our game was that it would be a bug squishing game similar to the game wack-a-mole keyboard buttons would be mapped to screen areas. When you mashed the keys on your keyboard you'd also be attempting to squish the bugs on the screen. A lot of details where changed in order to include their manditory required assets. Such as the cheese was incorporated since the game required the usage of cheese somehow.

Our original ideas involved limiting the squishing to 2 keys at once therefor allowing the only the index figer to be usable. However during play testing we found that being able to mash areas of the screen was a lot more fun. And most keyboards are designed so that there is a physical limitation of not more than 10 keys usually that can be pressed down at the same time so we didn't have to worry much about people using their entire palms.

What started out as a peripherial experiment taking a conventional peripherial and using it in a new and novel way got fleshed out into a game on the first day. Actual game elements were added:

1. You were required to protect the cheese.
2. Bugs will attempt to eat your cheese.
3. We required the ability to spawn bugs in waves.

After comming up with a proper class diagram our team immediately went to work in parallel. Using good software design principles (our team is not very into the Agile models that seem to be all the rage in the video game industry these days) we took a very structured approach mostly this ment we were building things with a bottom up approach. The odd part to this is while most other teams had experimental units working earily and things being displayed dispite having written hacked code, we didn't have anything working or that could be displayed yet because most of our basic units were part of the core framework for our game. However we realized having used proper software development methods before (for software engineering) that our model of development means that everything works at once when the last module reaches completion. Amazingly this is excactly how it worked out, while other teams appeared to have a quick initial build our first build was completed well ahead of the other teams and was relatively complete aside form level balancing and creation of additional assets.

At this point all video game developers and extreme coders would cry foul and claim that you just can't use proper software methods for a project with such a short deadline. I will assure you that you can. In the end we spent the equivalent amount of time play testing adding new assets mostly bugs and better bug a.i. as we actually did for the actual code. The end result was that even in the first version which was completed in 48 hours felt polished. Version 2.0 was completed in 1 additional day after the event most of the work was just extending existing classes and adding some of the bells and whistles that we were unable to do at the event.

In the end after playing some of the other entries in the competition if feels like there are a lot of other solid entries in the competition. The only problems I can see with them is some felt incomplete other's were hard to understand and a few obviously had broken code so bad that you couldn't actually play. But there are a lot of gems and finished products in the list and as the organizer stated managing to place in 2nd is an amazing feat. A feat that this Software Engineer will not forget anytime soon, well until the next one.

Maybe game design is in my future who knows, creating this game was a heck of a lot more fun than playing games in my opinion. Don't get me wrong I'm no code junkie, I don't live for code, but when something you've designed comes to life as a game and you see how people laugh and can get so much joy out of it. It makes you think that maybe games are just as important as designing avoinics, safety critical controls systems or anything else a Software Engineer can do. For this Software Engineer it might just be a carrer changer.

No comments: