Wildfire Games (WFG) is a group of hobbyist game developers in the process of producing a freeware real-time strategy (RTS) game. The name of this project is 0 A.D. (zero ey-dee"). In short, it is a historically-based war/economy game that allows players to relive or rewrite the history of western civilizations, focusing on the years between 500 B.C. and 500 A.D. The project is highly ambitious, involving state-of-the-art 3D graphics, detailed artwork, sound, and a flexible and powerful custom-built game engine.
That 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 modual in design to provide maximal flexibility while still remaining efficient. Pyrogenesis therefore provides a solid platform on which to work on individual features of RTS games, and can be used to create a completely different game from 0 A.D.'s design.
0 A.D. has been in development since 2001. The team members are largely students and game development hobbyists. The game has always been intended to be released as freeware and available to all. None of the participants have been or will be compensated financially for the contributions they have made. The reward for those that have contributed is as varied as: the ever elusive experience gained by working on a large scale group projects, to simply the pleasure of creating an RTS game they have always wanted to play.
The Pyrogenesis Engine was built from the ground up by WFG programmers. Its open-ended architecture can accommodate real-time strategy (RTS) and third-person role-playing game (RPG) game types.
A brief feature list of the Pyrogenesis Engine follows:
- Engine Language: C++
- Data files: XML (with transparent and automatic conversion to binary files)
- Rendering: OpenGL with shaders
- Libraries used: OpenAL, OpenGL, Boost, Crypto++, CxxTest, DevIL, SDL, SpiderMonkey, Vorbis, wxWidgets, Xerces
- Operating Systems:
- Windows 2000, XP, 2003, XP64, Vista
- System Requirements: 1 GHz CPU, modern graphics card (GeForce? 3 at minimum), 512 MB RAM
- Tools used: Visual Studio, g++, CppDoc, COLLADA, Debuging and Profiling tools included
- OpenGL-based rendering engine with shaders
- Hierarchal skeletal animation and deformation system based on COLLADA
- Fancy animated water with refraction, reflection
- Realistic Shadows
- Particle effects
- Environmental lighting effects (time of day, sunset)
- Flexible terrain renderer that uses alpha maps to seamlessly blend terrain
- Script based Graphical User Interface
- A* pathfinding
- Designed to support "RTS style" AI
- Peer to peer, no central server
- Lockstep simulation
- (planned: reliable UDP for firewall punchthrough, detection of cheating/OOS)
- Includes a level editor (Atlas) integrated with the Pyrogenesis engine.
- The editor uses the same rendering engine as the game itself.
- Deform terrain in real-time and sculpt intricate landscapes quickly and intuitively.
- Create a level and try it out in the editor immediately.
- Includes an Actor Editor that has a GUI interface to assist in defining the entities visually in the game.
- Includes a Random Map Generator and custom scripting languge
- A sound tool allows defining sound properties.
- Easily modify content (units, buildings, the tech tree, ..) without touching any C++ code.
- Console command panel
- The game code is separate from the core engine.
- Uses open, standard file formats: COLLADA 3D assets, Zip archives
- Access to extensive documenation
- Well-commented code
- WFG developers just an email away
Why should you as a developer, hobbiest, student or a professor be interested in using Pyrogenesis?
- The game itself is visually attractive as delivered. Instead of the all too frequent "programmer's art", you have quality artwork at your fingertips that allows showing your project in its best light.
- WFG has taken great pains to emphasize history through out development stressing authenticity and accuracy; always remembering the educational opportunity we have in games.
- The software is portable (running on Linux, Windows, and MacOSX).
- The code and design are well documented (comments, CppDoc documentation, Wiki, some full technical reports, reams of forum posts with rationale and discussion).
- The project is made up of gamers / people looking to get into the industry; a good deal of experience in this area has been gained and can be passed on.
- One of our goals is that this project will gain some traction with the public as development progresses. You as a contributor would be able to point to a well recognized development project that has a tangable release of software.
- Templates to assist in creation of art assets (textures, meshes) will be provided.
- Various tutorials and guides will be available for ease of initiation.
For the source code, we suggest a common open-source license such as the GPL.
The GPL is oft misunderstood, so a brief summary follows.
You are allowed to access and use source code placed under GPL after you accept the GPL license. No restrictions or obligations are placed on you, with one exception: As soon as you make a binary release of a program containing GPL-ed code, you must thereafter license all of the code constituting it under the GPL.
As a concrete example, three use-cases are discussed.
1) You use GPL-ed source code to generate screenshots of an interesting graphical effect. As long as you do not publically release a compiled version of the program, you are under no obligation to place the source code under GPL. This means that the modifications you have made to the code can remain your property and secret, though we would appreciate seeing your changes so that 0 A.D. may be improved to the benefit of all.
2) You compile an unmodified version of the game source code and release it to the public (e.g. to act as a mirror). The GPL then requires you to also release the source code, or to provide a written offer promising to make the code available to anyone who asks.
3) You make changes to the initial GPL-ed code and wish to also distribute a compiled demo to the public. Note that the GPL is not concerned with any modifications you may make to code; this act is not restricted in any way. The only obligation you are under is to also place the entire source code that generated the demo under GPL, i.e. make it available to the public. This means that the next person who downloads your demo can further tweak it, and ensures he has the same chance you had to modify the source code.
When can this get started? Now!