Saturday, February 20, 2010

This year I had an opportunity to participate in Global Game Jam 2010. At first I didn't know if I would be able to attend because I had spaced out when it was to start and so had only very short notice to put affairs in order such that I would be able to work the forty-eight hours.

Fortunately, I have a wonderful wife who agreed to be a single mom for the weekend. The picture of the left is the opening ceremony for the Jam. Our resident IGDA(International Game Developers Association) leader is explaining how the next two days of our lives are to be laid out and what the constraints of our development were.

Following a short introductory mini-game to break the ice between the attendees the theme of the year was revealed. This year the games were required to incorporate the word or concept of 'Deception'. In addition to this, the Salt Lake City area was assigned to use one or more of the words maid, raid, or trade.

We then broke into groups with those sitting immediately next to us to brainstorm ideas. These ideas were then presented and the presenters shown in the picture to the left, had the opportunity to convince others to join their projects. If they didn't find anybody then they could choose to join another one of the groups.

There were a number of great game ideas proposed. I ended up on a team with a couple of great guys who had an idea for an XBox 360 game. Yes, this means that we would have to be using the XNA framework. I had never used XNA before but I did have some experience with using it's primary language of choice, C#.

In total my group was composed of two programmers, three artists, and the designer/producer/all around great guy. The next two days would show me just how fast and how well a small group of people who had never met before could become a cohesive system for development.

Although the venue hosting the Jam needed everybody to leave Friday night we immediately began to work as soon as our group was formed. We began to hash out the details of the sketched idea that had brought us together.

With a working title of Treasure Raiders, our game was to be one about Betrayal between friends and close acquaintances. Similar in base concept to Rock, Paper, Scissors(sorry, no Lizard or Spock options at this time) the players would be able to choose between a Mage, Knight and Archer. Each one of these could beat one of the others, but would lose to the third. However, using the analog stick of the 360 a player would be able to choose a different option that they wanted to be visible to the other player. In essence, one could 'deceive' an opponent into thinking one option was being chosen while simultaneously choosing another, more advantageous option. The winner of each round would get the gold in the center of the screen. When the players choose the same character a button mash near-instant death battle would ensue.

This being decided we broke for the evening to return early Saturday morning and resume work through Sunday afternoon and bring our vision to pass.

I had to work Saturday morning and so missed a bit of the ramp up to production the others were going through in the wee hours of the morning. But things got going really quickly and by the time I arrived we were almost ready to try pushing an alpha build to the 360 that the leader of our group had brought for play testing. Because the 360 can only accept development deployments from one computer at a time I ended up as the 360 developer while the other programmer added most of the core logic.

Initially the focuses were for the artists to get the base images done. Items such as the game background, the standing poses of the characters and the menu items completed. The other programmer and I focused on getting the code to run on the 360 and learning as we went along how the XNA system worked.

At first we didn't think we needed much of a revision system because this was supposed to be a game developed with as little red tape as possible. So we were using a basic subversion repository only to simplify the sharing of source and project files between our computers. But shortly into development we ran into an issue with merging a file we were both working on and lost an hour or two's worth of work. However, we still didn't need a feature full system.

So we came up with a simple idea. I spent half an hour refactoring some of what we had into a code hierarchy. This separated the code we were working on separately from this file that we both needed. Then we simply designated a strip of paper as a permission system. Whichever of us had the paper had permission to alter the file that had caused us the consternation. This worked very well.

Play testing began as early as we could so that we could ensure that the experience worked properly on both a standard definition and a high definition screen.

Testing also began to show us where we needed to tweak the experience. It was within the first few rounds of testing that we decided the time limit for choosing the character needed to be much longer than it was or there was no feeling of enmity between the players as they tried to fake each other out on what their choice was going to be. We also found that the sudden death scenario was initially much too long and we shortened the time on that.

As we began these tests and were tweaking the gameplay to be as fun as it could be the artists were starting to work on some basic animations to indicate to the player the state of their characters. Walking animations, Fighting animations, and a poofy cloud were added for effect.

Around five a.m. Sunday morning, a couple of the artists had headed home for a quick nap and the rest of us made up this whiteboard of what else we would like to see happen before the requisite deadline arrived. We then buckled down and got all of this done by about 10 a.m.

It was at this point that I needed to rejoin my family so my wife wouldn't go nuts. The game was playable and worked rather well.

Since the end of the Jam one of the artists and the leader of the group have continued to work on the game. I provided some initial support but school prevents me from giving the time necessary. When these changes are complete then the plan is for the game to be uploaded to the XBox Live Arcade for XNA and donate all proceeds to the Child's Play Charity group.

All told, the Jam was a wonderful experience. One that I believe I will look forward to every year. It was a joy to meet new people and get to know them better through their work and passion for games and entertainment. This hasn't really been a typical post-mortem style write up of the event but rather a look into how it all went down. Thanks for reading my first post and I hope my writing improves and you stick around for other events in the world of gaming.