Thursday, January 31, 2013

Lessons from the 2013 Global Game Jam

I'm not new to game jams. Having just participated in my third game jam, I'd say I'm pretty well versed in the nature of these stressful competitions. I've seen people break down under stress, and whole teams implode under the pressure of crafting a playable game in 48 hours.

If you haven't yet seen our jam entry, I can't help but shamelessly plug our Youtube gameplay video. We ended up creating a solemn point-and-click adventure game with a short and focused narrative. We used the heartbeat theme as a hot-and-cold mechanic for finding clues and items in the game. It didn't record well, so unfortunately you can't hear it in the video below.

Memory - GGJ 2013 Entry

This year I was lucky enough to participate at the San Francisco jam location at the Yetizen, near the heart of the game development world. I wanted to participate with my team members from previous jams, and some new team members not near my jam location, so my team was spread across multiple locations and countries. This meant that if we wanted to succeed, it was vital we communicated effectively. To do this, we decided to use Google Hangout and Skype during the competition to make sure we were all constantly on the same page.

Jason 'Null' SpaffordProgrammerSan Francisco, California
Michael 'Harbing' HarrisProgrammerOrlando, Florida
Nika 'Dinosaur' CassaroArtistOrlando, Florida
Kevin 'Hoot' PacletArtistSwitzerland
Jon 'Voice' PurdySoundBurlingame, California

As you can see, the team was pretty spread out, so having solid communication was vital. Even though we had the basis of Memory created, we were very much still designing the idea as the jam went on.

Tools and Remote Communication

Using Google Hangout really saved our team from failing. When we first decided to use it, I was afraid that it would be disruptive to the team, because there's no way to locally mute the other people in the Hangout—a feature that is desperately needed. We solved this by using Skype for targeted communication, for example, when I wanted to talk with someone without bothering everyone else on the Hangout. We decided to use Hangout as more of a way to bring us all face to face, even if we weren't working directly with each other. Whenever we hit a milestone, we could have quick meetings by just unmuting our microphones and pulling in everyone that was available. This workflow really allows fast iteration of ideas during a competition when your teammates aren't there next to you.

A rendition of how happy we looked
Normally during a game jam, you have your teammates working directly alongside you. Being able to sit together and see what they're doing at any moment really motivates you to work. It helps you to identify problems early on, as well as to inspire yourself with the skilled work that they produce. The problem is that when your team is spread out, you don't have this type of local motivation from your teammates. In my case, it didn't help that many of the people at my jam location left by 2AM. I was almost always alone during the most productive times of the jam. Hangout helped out a lot, by keeping me in constant contact with my teammates.

Management is Full-time

In order to organize the team, limit scope, and make sure we were hitting our mile stones, I stepped up as the team leader. I've had experience with this in past jams, and love motivating teams.

Unfortunately for me, this meant that a large part of my time was spent managing the team, jumping into quick talk sessions with other team members, and generally handling all the edge cases for our game that weren't well fleshed out. This was problematic because, as one of the only two programmers, I expected to write a lot more code.

Of course, while becoming the manager certainly solved some of our focus woes, it also created issues for our team and project. Even if I had a solution in mind for a particular problem, I had to delegate the task to my co-programmer, so that I could work with a team member on something else. For example, I was pulled away from the project several times to write dialog and guide the voice actor.

It's important to point out that I don't consider our meetings and team management "useless bureaucracy". Every time we spoke, it was for a specific purpose: to clarify something a team member was doing, or to help identify an overall goal for the project. I'd like to think that our meetings and communication were absolutely vital to the projects success, but likewise were the greatest threat to finishing our game on time. It's certainly a double edged sword.

Lack of Quality Sleep

Concept of the "Camp" area

Getting at least a few hours of sleep once a day is pretty important during a game jam. Sleep deprivation affects your mental prowess and your ability to solve problems. Unfortunately, this game jam I was only able to clock 2 hours of sleep over the course of the 48 hours. Our venue locked the sleeping room most of the time, and the main area had freezing cold wooden floors. Even when I tried to sleep, I would wake up shivering from being unprepared for the cold. At one point I even booted up multiple copies of Dead Island and pointed my laptop's exhaust at my body, so that I could try and take a 30-minute nap without being waking up shaking from the cold.

Every game jam I'm always the last to sleep on my team. I usually make it to around 11AM or so on Saturday before I take my first nap. This would have been fine for the jam, if I had been able to actually get any sleep. If you really want to finish your game and succeed at a jam, you need to manage your sleep well. Getting at least a few hours of comfortable sleep a day is pretty vital to your mental well being, which is going to affect finishing your game. Unless you're extremely confident, or don't particularly care about making your game, then you're not going to get a lot of sleep during this competition.

The jammers at the San Francisco location seemed a lot less dedicated to their games than those at the Florida Fullsail jam location in Orlando. In an attempt to finish their games, people at the Florida location tend to stay on site during the course of the jam, and rarely sleep. I particularly liked this; there were always a lot of people around to motivate you, as they were also working. Unfortunately, at the San Francisco location, most jammers had left the location by 2AM. This essentially meant there was never more than a handful of people left working at night, out of around 200 original participants.

This was pretty demoralizing and unsettling. The atmosphere is much different than what I'm used to at the Fuillsail location. It's probably because Fullsail students feel like they still need to prove themselves, while the SF location was filled with a lot of industry professionals that write games for a living. They probably didn't feel that it was necessary to really kill themselves over the competition.

Developing in a New Genre + Developer Roles

There's something that I feel is an important thing to point out. While I was at the SF location, another jammer noticed how much work I was taking on, and that I had not left the building. His suggestion was that I should build a simpler project, and limit my scope to something that wouldn't require me to work the whole jam. I think this mentality was fairly prevalent throughout the jam, as many of the games at the location were very simple, not very complex on a technical level, and overall not as impressive as I had hoped.

That's not why I go to game jams. I subscribe to Jonathon Blow's mentality—that a game jam should be a place where you truly test your skills as developer or designer, creating things that you would not otherwise have believed were technically possible in a 48-hour period. This is one reason why we chose to create a point-and-click adventure game. None of us had ever created such a game, let alone dreamed we could do so in such a short time span. We saw it as an interesting technical challenge—and an artistic one as well, since we needed a lot of quality hand-painted graphics in a very short amount of time.

I personally believe that if you choose simple ideas that you could just do at home in your free time, you're not really exercising the full potential of the game jam. Don't just use it as some free time to work on an idea; let it push you to further your skills.

We're Artisans in Training
Early concepts of the protagonist

After the jam I had a short interview with a journalist about our game. He was very surprised when I explained that I was one of the few who stayed the entirety of the jam. I explained that I believe what I do is a craft, with varying levels of achievement: apprentice, journeyman, and master.

This holds true for programmers and artists alike. I focus every day on how to improve my skills. I may not currently be a master codesmith, but I'm constantly working to improve, and push myself to unlock my abilities as a developer. That's why I work so hard at game jams. An important part of developing your craft is finding opportunities to learn, take criticism, and overcome your weaknesses. It's incredibly stressful, but at the same time it's also an enlightening experience.

If you really use a game jam for it's full potential, you cannot fail to come out having learned something profound about yourself and your profession.

Wednesday, April 11, 2012

Why XBLIG has failed

As many people know, any market where people can submit apps will have their fair share of bad apples. This isn't really news to many of us who have smart phones, or peruse the many app and game stores that are available on various systems. Unfortunately, one of these platforms is making itself far more apparent in this regard in such a negative way that it's alienating potential developers and customers. That platform of course, is XBLIG.

While I was at GDC 2012 I spoke to a few indie developers who were considering XBLIG as a release platform and I was actually pretty shocked that they hadn't realized that XBLIG had become a desolate wasteland for potential developers and nothing short of a gargantuan waste of time. As an indie developer, I can't really find many reasons to want to publish to XBLIG and this is because XBLIG suffers from a few major problems.

If you've never browsed through the XBLIG catalog before you should definitely take the time to look. You'll find such quality titles as, "Try not to fart" and, "Who's the daddy?" Nearly all of these games appear to be made in an hour or less by introductory computer science students.

The biggest problem with the XBLIG catelog is that it’s extremely difficult for quality titles to ever see the light of day. Nearly all of the top games on the XBLIG marketplace are Minecraft style voxel games which clearly make half the attempt at even blatantly copying Minecraft. If you don’t believe me meander over to the XBLIG store and check it out.

This is mainly due to the way XBLIG is designed. Once you actually manage to get on XBLIG from the Xbox dashboard you’ll soon realize it’s pretty difficult to find anything past the front page of the store and Microsoft makes no effort to promote or advertise top selling quality games like how Apple does in the featured section of iOS. It simply lists the top selling or downloaded games which can be anything from a game that vibrates your controller (massage games) to game that just contains tons of phone-like applications and 5 minute games.

So what you end up getting is a front page that doesn’t turn over for at least 6 months or more. The games that are highly downloaded snowball into becoming the only thing the front page will ever show. Nothing new or high quality has a chance to ever hit the front page. Don’t believe me? Check back in 6 months and see if all the minecraft clone’s aren’t still the top games.

The developer community is a large problem

First, you have to understand that the XBLIG development community is in its purest form, the primary problem. About a year ago I started to participate in the XNA XBLIG developer community. I had the most romantic idea of what developing games should be in my mind at that time. I believed indies should better the industry and make great games that people both want to buy and enjoy. I mean, we're at the fore front of innovation right? Unfortunately the XBLIG community doesn't subscribe to my idealistic beliefs.

From my experience the general mantra of most developer’s within the XNA community is simply to “release as many games as quickly and efficiently as possible regardless of quality.” This isn’t just some subtle mantra, I’ve heard multiple community members verbally express those ideals.

In fact, here’s a quote from a prominent member of the IRC channel Steger: “Making games to me is like telling as many jokes as possible because while many of them might be bad, one of them might actually be good." It would almost seem as if these people have no regard for their craft or the community and ignore the effect they have on the market.

I would at this point extremely recommend that you stop reading this article and watch Poison Mushroom’s review on Silver Dollar Games, a game studio that’s released over 50 games on XBLIG. From the video alone you can see evidence of the same ideals I described earlier to "just post as many games as possible to XBLIG without any regard for quality".

No official review system (Peer review only!)

Let's talk about the other major problem. Imagine for a moment that you have a community full of developers who's ultimate goal is to constantly produce lackluster products, then combine that with a nearly complete lack of review system in place to filter out bad products. If you're not familiar with how the XBLIG review system works I’ll give you a quick lesson.

Anyone at all that has an apphub membership can submit a game (free to students with dreamspark) and absolutely anyone can approve them. This essentially means that there’s no official team of reviewers to check for issues and quality in games which has led to a myriad of issues such as people not even looking at or testing the games before they review them.

In one situation a developer had posted his game on XBLIG to be reviewed and multiple people approved the game. Only after the game was approved did the developer point out that his game never even ran. He had a crash in his game as soon as the game attempted to run. This was a major point in the history of XBLIG because it all but proved that people rarely even test the games they’re approving.

Probably the worst part about the XBLIG peer review system is that the rules state that you cannot fail a game for quality reasons no matter how bad it is. So no matter how bad the game is as long as it doesn't have any crashes then you are required to give it a passing grade. So even if you wanted to act as the dark knight of XBLIG and start failing games for quality standards you would most likely have your membership revoked.

Sony Playstation Suite taking Microsoft's lunch

I've heard the argument that "Fixing it would cost Microsoft too much" and I think that argument is so weak it can barely stand on it’s own two legs. What those people aren’t considering is that XBLIG could be a potentially fantastic service which generates a lot of revenue if managed properly. As the iOS app store has CLEARLY shown, people are willing to pay a lot of money for products from a healthy market that developers can publish too. It's not just a good idea to fix all of XBLIG's problems, but a smart business decision as well.

Within the last year Sony Online Entertainment had announced to the world that they were developing an XNA competitor that would allow developers to deploy to Vita, Android, the PS3, and the PC called Playstation Suite. This new system uses C# and has an almost exact replica of the XNA API. Sony are going the extra step to build that successful indie market that users want while Microsoft is ignoring it completely. I can’t help but think that Sony is taking Microsoft’s buffet and they just don’t care.

What are some solutions?

Of course this wouldn’t be a useful article if I didn’t propose a few solutions now would it? Fixing and making XBLIG a useful tool for both developers and consumers isn’t going to be an easy thing to do. The obvious first step would be to change the review process so that it’s run by a select group of people who are either approved by the community, or hired by Microsoft. In my opinion Microsoft could still save plenty of money by crowd sourcing respected XNA developers. However, I personally suggest the latter because if Microsoft is serious about fixing XBLIG's problems then they need a proper review team similar to their Windows Phone 7 app review department to run the approval and testing process.

The second thing, would be to adopt higher standards for games. Apple does this wonderfully and even though their process isn’t as transparent as it could be, Microsoft could adopt Apple’s strict approval process but make it far more obvious what the requirements are.

Unfortunately it’s unavoidable but the last requirement would be that you need to remove games that have been approved in the past that no longer meet the quality requirements. Notify all developers and give them 3-4 months to resubmit their app with an update to fix the listed issues before it’s removed. Along with this, you could also start featuring quality apps that rotate out weekly or monthly. Having a fresh list of featured apps is incredibly healthy for the XBLIG market and essential to it’s success if Microsoft is to make it work.