Monday, February 28, 2011

Dev-Corner: the challenges of developing long, plot-heavy FOSS games

Xenogear: Fighting Elly's Gear

Xenogears is one of my favorite games of all time. For those of you who are unfamiliar with it, it was a Japanese RPG for the Sony PS1 in 1998. Not everyone agrees that it was an amazing game, but it's undeniably one of the longest, most plot-heavy RPGs ever made, especially given the fact that most of the plot is in the form of the main story line as opposed to random side-quests that have very little to do with the overall goal. Xenogears is particularly interesting in that each time you play it through, you'll pick up more and more little plot details that you missed the first time around. This is because not only does it have a massive main plot, it also has a massive back story spanning several thousand years, which is only really revealed in small details that are only apparent once you're already familiar with the main plot.

By this time, some of you are probably wondering why I'm raving about a proprietary console game on a FOSS gaming blog. Well, there's another interesting fact about Xenogears that makes it very relevant to the topic of developing games with long, linear plots: it was never really finished. There's all sorts of speculation as to why this might have been; my own pet theory is that upper management decided they'd been waiting too long and paying too much, cut the project short, and told them to shove it out the door as-is. This becomes very apparent when you reach the second half of the game -- it goes very abruptly from a deep, plot-heavy game to an irritating scene where they briefly summarize massive amounts of plot that would have added about thirty to fifty hours of gameplay, before finally releasing you back out into the world to do a few last quests and fight the final boss.

So Xenogears, the Unfinished Symphony of JRPGs, is as example of two really important points:
  • It's difficult to predict the real scope of a project until after you've already committed to it, and...
  • Even big teams with large amounts of money often have trouble finishing ambitious projects in a timely fashion.
Painfully, these issues apply in even greater force to non-commercial game projects (a category that the vast majority of FOSS game projects fall into). On average, FOSS developers tend to have less time and be less reliable than people working on large, proprietary, commercial projects. This isn't because they're less reliable people in general, but because they're real people with real day jobs who are largely doing their FOSS coding work on a volunteer basis. Hence, developers and artists tend to come and go, and even when they're with the project for a long time, they tend to have a wildly variable amount of time that they're able to devote to it, depending on what else is going on in their lives. As such, maintaining a level of coding an artistic consistently equal to that of a large, heavily funded project is a tremendous challenge, because in general you're working with smaller units of work from a much larger team.

So as I see it, if we as FOSS developers want to create the sort of plot-heavy games that I'm referring to (be they JRPGs or whatever else), the odds are stacked against us from the outset. So here's what I'd like to discuss:

FOSS software development undeniably has certain strengths that closed development lacks -- the sheer volume of ideas, as well as the fact that, since FOSS development is primarily done on a volunteer basis, you aren't limited by time or budget in the traditional sense -- your project can continue as long as people remain interested and dedicated, and there's no one in upper management to tell you it's time to throw away your efforts. With this in mind, I'd like to pose some questions for everyone, and hopefully get some discussion going:
  • How can we, as a community, apply these strengths to the sort of project that requires a large development team and a grand, unifying vision?
  • How do you go about convincing a large number of people to join an ambitious project? As someone who has been following FOSS game development for quite a while now, overly ambitious projects tend to make me very skeptical. How do you overcome this skepticism and convince people to help you out, if you're dealing with the sort of project where it's not practical to start small?
  • Once people are on board, how do you keep the quality consistent? How do you keep a ton of people interested in working on a grand plot line that's already been fleshed out essentially from start to finish? FOSS developers need (and deserve) to give input to the projects they're helping with. How do you maintain a vision while simultaneously leaving room for input?
  • One bit of advice I find myself giving out over and over is not to be too ambitious to start with. Sometimes, though, you need to be ambitious in order to make a project work. How can you divide things up in such a way that you can be ambitious yet still start small enough to get your project going?
Anyway, I'm serious about these questions. I've been giving ambitious projects (not a particular ambitious project, but rather the idea of them in general) a lot of thought lately, and I'm hoping that maybe we can put our heads together as a community and come up with some sort of strategy for tackling them.

I'd love to hear your thoughts!


Bart K