In July 2009, 0 A.D. switched from a closed development process to an open source one, making the code available under the GPL and the art content available under CC-BY-SA. That means anyone is invited to join in and develop 0 A.D. on a completely voluntary basis, to gain game development experience, to comply with a school project or just for fun.
This page in a nutshell: This page briefly describes some of our contributors' motivations and brings their testimonials, contains a technical spec of the art and code behind the game, and outlines two tracks to contributing to the game. If you are a programmer, please jump right in and just start offering patches according to the instructions below, and with time we will contact prominent contributors and put them officially on the team. Artists and other contributors can do the same, or just ask to be interviewed and get a volunteer gig in 3d modeling, animating, sound, music etc.
Why should you be interested in contributing to 0 A.D.?
- Well, some of us seek the chance to take part of something unique, the opportunity to learn and practice our skills and see first hand what it takes.
- It's a noble endeavor: 0 A.D. is portable, running not only on Windows, like most games, but also on Linux and Mac OS X. It's free, open source software, so it encourages sharing, learning and creativity. And as we developed this game to reflect ancient warfare authentically, we try to maximize the game's educational potential.
- Some team members have developed parts of 0 A.D. for school projects at the college level, like the fancy water renderings by Matei Zaharia (matei) or the file handling system by Jan Wassenberg (janwas).
- Also, some of our former members have gained enough experience to be able to move on to work for notable game development companies.
- The closer we get to finishing the game, the more popular we hope it to get with gamers around the world. Join us, and you too will be able to say that you contributed to one of the most ambitious RTS games of our time.
"My Computer Science degree at the University of Karlsruhe called for a 3-month, 30-page long study thesis. Being interested in algorithm engineering and low-level foundation code, I examined the effects of file ordering and caching on application load times. Since datasets are scarce, researchers are often forced to resort to synthetic data. However, the 0 A.D. project afforded the opportunity to observe the behavior of a (nearly) full game, and measure the impact of optimizations to the engine. Being able to demonstrate the real-world benefit of these techniques was a part of the favorable evaluation of my thesis." — Jan Wassenberg (janwas), Wildfire Games Programmer
"Working with 0 A.D. has helped me in my pursuit of a career and it makes a real difference on my resume. [...] It was my work with 0 A.D. that allowed me to be published in print with the magazine Ancient Warfare in their Dec/Jan 2009 issue." — Joshua Gilbert (Shogun 144), Wildfire Games Lead Historian
What is the code like?
0 A.D's game engine is called Pyrogenesis and it is specifically designed for flexibility and ease of modification. Game logic, artwork, and data can easily be changed through data files. The engine itself is modular in design to provide maximal flexibility while still remaining efficient.
The code isn't all extremely clean or extremely modular or extremely well-written. It's been written by a wide variety of programmers, and it's far from a "completed" codebase. We want to continue cleaning things up as part of the normal development process. We're not averse to rewriting entire subsystems if that's the most effective way to make them satisfy our requirements. But in many areas it's quite solid. The code and design are well documented with comments, CppDoc documentation, Wiki, some full technical reports, and reams of forum posts with rationale and discussion.
More technical information about the codebase can be found here.
What is the art like?
Like the codebase, 0 A.D's art is also "open source". No special tools are required other than readily available plugins. The models and animations can be created in the software of your choice, as long as it capable of exporting COLLADA files (.DAE). Similarly, the 2D textures are exported though the paint software of your choice to a Direct Draw Surface (.DDS) file. The alpha channel of the texture is used to define player color, object color, or transparency.
The art assets are organized in XML files, each called an 'actor', which defines each entity in the game. An actor declares callouts for models, textures, and animations (if applicable). Since you can specify alternate textures and props to an entity, you can use the 0 A.D. art model to allow for randomness in the art. That way, several instances of the same Celtic warrior could appear in battle with variant hair colors, and two adjacent instances of the same Greek house could have pots and carpets aligned differently, so they'll seldom look exactly alike.
Templates to help you make art assets (like textures and meshes) are readily available. Also, various tutorials and guides will allow you to hit the ground running. More information about the nuts and bolts of creating art assets for 0 A.D. can be found here.
How development is organized
We have two tracks for contribution that are designed to help manage game development while allowing everyone to pitch in. Since we most urgently need game programmers, we have lowered the bar and created an easier path for them to contribute.
Track 1: Jump right in, the OS way – Just as anyone can edit an article on Wikipedia, anyone can contribute something to 0 A.D. We have opened access to the source control server (Subversion), and the documentation and issue-tracking system (Trac), and moved our technical discussions to an open forum. Anyone can download, build and run the latest version of the game. You could create a patch and submit it to us, and we'll then review it and maybe suggest some changes or commit it to SVN. We especially need programmers in areas like gameplay, AI and graphics, so if this interests you, more info on how to contribute as a programmer is available. Licensing of contributions is an open question and we welcome further input on this topic.*
Track 2: File an application and join the team – Up until the OS release, all developers were part of the official 'team': Anyone could apply to join, we'd have a short interview over IRC to get to know them, and if it seemed they have the time and energy and skill to contribute usefully then they were made a member. All of this remains for artists, music and sound and we welcome your applications here.
The application system is in place because the tightly-knit team, Wildfire Games, is still in place. We have decided to keep the core group of developers and the private communication methods since we don't want to risk destroying the team we've already got. We're going to keep aiming towards a particular design vision, and we don't want to diverge much from that — we'd rather not add (and have to maintain) features that aren't part of that goal. The downside of this track is that we want to see past performance of applicants before we induct them into the team, and especially we want to see some contributions from programming applicants to the 0 A.D. codebase before we can conduct any interviews with them.
So if you're a programmer and you want to contribute to 0 A.D., just get your feet wet and get started. We don't want to hinder your progress with any applications. If you do a good job over time, you'll get inducted to the team anyway.
For other areas of contributing to the game, the application system seems to work well, so if you feel as committed to the idea of 0 A.D. as we are, and you want to be an artist, a sound designer or anything other than a programmer, you are still invited to file an application. Openings are listed below.
We're looking for dedicated volunteers to fill these openings:
- Texture Artists
- 3D Artists
- Graphic Artists/Illustrators
- Video Editors
- Sound Effects Specialists
Read this for more information about each opening and for instructions how to apply.
I'd like to help, but I don't know how to develop games!
That's okay. There's still plenty you can do to spread the word. Maybe some motivated potential contributor could find out about the project from you — and that would mean the game we're all waiting for could get done sooner.
- Do you own a blog or a Twitter account? If so, blog or tweet about us to get the word out.
- If you downloaded and ran 0 A.D., you can make in-game fan videos and upload to a site like YouTube, or you could make screenshots with our scenario editor, Atlas, and upload to a photo hosting service like Flickr. (Remember - 0 A.D.'s license, CC-BY-SA, requires you redistribute derivative works like fan videos and screenshots under a similar free license).
- Join the official 0 A.D. Facebook fan page to get updates and show everyone your enthusiasm.
- Subscribe to the 0 A.D. RSS feed and the feeds on our ModDB page.
Also, you can create fan art using the logos below:
0 A.D. logo: zipped png, 10.3 MB
Wildfire Games logo with caption: zipped illustrator file, 114 KB; zipped svg, 98 KB
Wildfire Games logo without caption: zipped png, 102 KB; zipped illustrator file, 950 KB; zipped svg, 101 KB
Please, use these logos only in order to link to the 0 A.D. or Wildfire Games websites or to describe 0 A.D. or Wildfire Games.
"0 A.D." is set in Exocet (non-free); "Wildfire Games" is in Akzidenz-Grotesk Extended BE (non-free); and we also like to use Optimus Princeps by Manfred Klein a lot ("free for private and charity use").
If you want to point out that the art and sound of 0 A.D. are released under cc-by-sa, Creative Commons icons are available here in many formats.
* On one hand, accepting GPL code would guarantee to contributors that we're not going to unfairly use their work. On the other hand we'd like to keep our options open by only accepting BSD-licensed code, perhaps to produce a special version linked with proprietary cheat-detection software to discourage multiplayer map hacks that would be trivial to add to an open-source game, or to link with proprietary digital distribution systems to get more widespread distribution. The ideal solution is not clear, so we'd be interested in discussion of this issue. If you'd like to let us know how you feel on this topic, contact us on our forums, or on #0ad on QuakeNet IRC.