Back in October, we wrote about Wildfire Games' 0 A.D., the open-source project aiming to bring professional-quality gaming to Ubuntu and other platforms.  I recently had a chance to interview Erik Johansson, project leader of the 0 A.D. team.  Here's what he had to say about the game, and how you can help make it a reality.



As I explained when I covered 0 A.D. in the fall, I'm excited about the project because it promises to set several important precedents.  Besides bringing a high-quality, fully open-source RTS game to Linux users--who currently have to subsist mostly on half-baked, amateur games, if they play anything at all--the 0 A.D. developers are helping to break new ground by building a professional-quality game on the open-source model (the developers of Glest and Battle for Wesnoth deserve similar credit in this regard, but theirs is a lonely world).

Contributing to 0 A.D.

As Johansson made clear in our interview, however, the open-source development infrastructure that 0 A.D. adopted last summer means contributions from people like you and me are crucial for its success.

If you have a little bit of free time and any skills to offer--whether they're in the way of programming, artwork, sound effects, or just helping spread the word--the developers would love for you to get involved.  And as Johansson emphasized in our interview, no level of expertise is necessary; he himself joined the project without any development experience at all.

The Interview

Without further ado, here's my interview with Johansson (with contributions from Philip, one of the project's programmers), which explains in greater detail what 0 A.D. is all about, why it's so important for Ubuntu and how volunteers can join the team.
What's your day job? What kind of software development experience did you have before beginning work on 0 A.D.?

In "real life" I'm a student, studying communication. Prior to joining Wildfire Games I didn't have any software development experience at all, so it's been a learning experience every day since I joined the team. Thankfully I joined as Assistant Producer so I had a chance to get into the project before becoming Project Leader. I can recommend people to start on smaller projects though, at least in management positions and programming, art and sound seems to be the same level of difficulty regardless of the size of project.
When did you start contributing to 0 A.D. and what got you interested in the project?

I joined the team in March 2007, having followed the project off and on the previous couple of years. What got me interested in 0 A.D. in the first place was the idea of a game like Age of Kings, but set in ancient times. Then over the years the wonderful screenshots, and the fact that a game looking this great was created by indie/hobbyist developers in their free time, really impressed me. Little did I then know that a few years later I'd be a part of this talented team.

One time when I checked the 0 A.D. website I saw that one of the open positions fit me, and some emails and an MSN interview later I was part of the team.
What has your work on the project entailed?

Everything from participating in interviews with new applicants/programmer meetings, to setting up user accounts on the staff forums/SVN. Overall trying to get the other team members to do their job, providing feedback, listening to them, helping them find some info or contact one of the other team members.
What has your experience contributing to 0 A.D. been like?  Are you satisfied with the code and the progress the project is making?

My experience has been really good. With a project as large as this, and with people from all over the world who communicate via forums/email/MSN, there's of course a lot of things which could happen, but overall I think we get along well. There are some times when we misunderstand each other but all in all there haven't been any major issues during the time I've been a part of the project at least.

I'm not sure which is the correct answer to the question on whether or not I'm satisfied. I mean on one hand I'd really like to see development move along faster, and it's been slow for a while, but on the other hand it's remarkable when I think about all that's been done so far. And besides, the speed has increased a lot the last half year or so. And all that due to the hard work of one team member who's been rewriting the simulation system, one of the main parts of the engine, an area that wasn't optimally programmed the first time but which now hopefully will be much better, as well as easier to extend, which will hopefully speed up development.

(That's not to say that only one team member has been working the last six months, but rather that while the other departments have been going at a relatively steady pace there's been a lull in the programming department that's only recently started to turn around.)
How many developers does the project currently have?

Apart from the question when the game will be finished that's one of the toughest questions to answer. Since we cannot get people to work harder (or at all) by the help of a paycheck we have to rely on people doing things because they find it interesting, and while I believe that will result in a better game in the end it does mean that people work when they're interested. Something that means it can be hard to know whether someone has left the project for good or is just busy/not interested at the moment.

In general there are about 10-15 people working on 0 A.D. at the moment, but over the years there have been over 100 people who have contributed a little or a lot.
Why did you decide to make 0 A.D. cross-platform instead of just targeting Windows? Are you happy with that decision?

The main reason for making 0 A.D. cross-platform is the same reason it's free in the first place (and also partly why it's now open source): since we're creating this game in our free time our goal is not to make money but to create a game we've all wanted to play, and also hope others will want to play. Then it's a natural consequence to make the game available for as many people as possible.

Overall I'm very happy about 0 A.D. being multiplatform.  It's a bit more work, of course, but I think it will be worth it. So far most developers have been working in either a Windows or Linux environment though, so there is still some work to be done to get things working as well on Mac as the other operating systems.
Were you involved in the decision to make the game open-source last year, after several initial years of closed-source development? Which factors influenced that decision, and how do the developers feel about it now?

I'll write a few words about why the game wasn't open source from the beginning and then let Philip, one of the programmers, tell what made us open up the source and what effects it has had so far. The main reason we were hesitant to open up the source was a fear that it would make it too easy to cheat, but after coming up with some solutions to that we thought the benefits outweighed the risks.

Philip: "There were a number of factors that made it the right decision. On the programming side we have always had an approach similar to many open source projects, built by volunteers with free, cross-platform tools and libraries, so it was natural to go the extra step and make the in-development code publicly available. It simplifies some technical challenges such as how to distribute the game for a wide variety of platforms (especially the many variations of Linux). It lets us share ideas and code with other open source projects more freely. It lets people learn from our work. And we always want talented and motivated developers to help bring this game to life, and hope they will be attracted by the new visibility of our project. It hasn't been a runaway success, but I'm personally happy with where we are. The initial flurry of activity when we announced the release was focused on simply fixing the code to compile and run on a wider range of systems, and we have only had small contributions coming from outside of staff members since then. But this is a long term project (writing an RTS in your free time is surprisingly hard!) - we've had a continued level of interest, and we're just starting to explore some opportunities for sharing resources with other open source RTS projects. We're also working actively on the main development bottlenecks that have been blocking progress, to make it easier for new programmers to get involved. It's inevitably going to need a lot of long, hard work, but I believe the open source release has left us in a good position for the future of the project."
Do you use Linux or other free software personally? Do any of the other developers?

I do use quite a lot of free software (in both senses of the word free), but it has been a while since I used Linux--mostly due to me wanting to use some software that's currently only available on Windows, but also some trouble I've had with hardware on my latest computers.  But I'm sure I'll use Linux again in the future.

Yeah, other developers use both Linux and open source software, like OpenOffice.org. Some of the game content has been created in open source software as well, namely GIMP for some of the 2D art, and Blender for some of the 3D models.
How important are Linux users as a target audience for the game? Do you expect a significant number of your players to be running Linux?

I'd say Linux users are very important, and I do expect a large number of players to be running Linux. After all, there are still more games made for Windows so we have more competition there. I also assume there will be more word-of-mouth about 0 A.D. in Linux/open source gaming communities than in Windows communities.
Has it been difficult to support Linux as you've been developing the game? How do you overcome Linux's lack of standardization (i.e., the many different Linux distributions, APIs, etc.)?

Again Philip has been kind enough to answer these questions as he knows more about it than I do.

Philip: "As cross-platform support has been a goal since the beginning, we've been careful to avoid causing ourselves any serious difficulties. We picked widely-used cross-platform libraries where possible: OpenGL for graphics, OpenAL for audio, wxWidgets for the editing tools. In some ways Windows has been the hardest platform to support--we use portable SDL and POSIX APIs so that most of our engine code can be platform-independent, and we can use their standard implementations on Linux and OS X, but we have a custom implementation of them (which calls the corresponding Win32 APIs) for running the same code on Windows. The commonality between Unix-based systems has made this much easier for us, since only Windows needs a large amount of platform-specific code. There's still a lot of minor portability problems that pop up, but frequent testing on multiple platforms makes them easy to narrow down and solve.

"The diversity of Linux distributions only becomes a major issue when trying to distribute the game to users. We don't have the knowledge or time to provide easily installable packages for them all, so we're focusing on the core game and (once it's a bit more stable) hoping to encourage people to create packages for their own distros. The switch to open source has definitely helped with this--we don't need to worry ourselves about compiling binaries with precisely the right library versions for compatibility with specific distros, and the distro communities seem happy to help us getting our game to their users."
Do you have any idea when you might reach an alpha release?

Philip: "The recent work on rewriting the simulation system has been aimed at solving some long-standing problems and giving us a solid base with a clear path towards a decently playable game. I think the "release early, release often" concept is important, but the rewrite has been too disruptive for us to focus on stable releases yet. But it's finally coming together now, and I think it's looking good--I'm hoping that within the next couple of months we'll have got past this old roadblock and pulled it all together into a first relatively stable alpha release, which should be followed by a much more frequent series of incremental releases bringing it closer to being a complete game."
I hear you're are looking for more developers. What have you been doing to attract them?

The first thing is trying to make sure people know about the game and are interested in it, and the second is to make it easier for people to contribute as well as know how to contribute. The first we do by things like having a Moddb page, Twitter account, Facebook page, and also the main 0 A.D. page on the website.

The second we do by making the documentation available in our Trac Wiki, and listing things people can do to contribute. It's been working good enough to keep the project going, but not good enough to have the game finished yet. We do continually try to improve things though, so any tips are appreciated.

Another thing we do to try to make more people interested is of course to reply to interviews like this, so thanks for the opportunity to tell you and your readers a bit more about 0 A.D. and Wildfire Games. And as you can read on the Getting Involved page on our site you don't have to be an über-skilled programmer to help us finish 0 A.D. (It does help if you are though, as it's kinda complicated to create a game like this after all.)