0 A.D

Document Sample
scope of work template
							07/03/2010                                       0 A.D. Open Source Release
                                                                                  Published: 10 July 2009    Contents:
                                                                                                             About 0 A.D.
                                                                                                             OS release
                                                                   What is 0 A.D.?                           Why care?
                                                                                                             Reasons
                                                                   0 A.D. is a free, cross-platform,
                                                                                                             Organisation
                                                                   under-development, 3D,
                                                                                                             Code
                                                                   historically-based, real-time             Reusability
                                                                   strategy game.                            Comparisons
                                                                                                             Getting started
                                  What are you doing?
                        Switching from a closed development
                        process to open source: making the
                        code available as GPL and the art
                        content available as CC-BY-SA, and
                        encouraging external contributions.
                        We've been working on 0 A.D. in our
                        free time for years, and now we want
                        to show what we've achieved and
                        make it easier for more people to get
                        involved.

                        0 A.D. is a very complex and
                        ambitious project. A lot of work has
                        been put into it, but a lot remains to be
                        done. We're not releasing a playable
                        game – you'll have to wait until much
                        later if that's what you're interested in.
                        There are plenty of major missing features and bugs and rough edges. We're
                        releasing this as a work-in-progress, pre-alpha project, aimed at developers
                        who might be interested in this kind of thing, in the hope of sharing resources
                        with a community that would otherwise be excluded from our development
                        process.

                        This is an experimental step and we don't quite know what's going to work
                        best, so we're going to move carefully and try to adapt based on experience.
                        This document describes our current plans; feedback will be appreciated!
                        Contact us on our forums, or #0ad on QuakeNet IRC.

                                                                Why should I care?
                                                                We think there's a good chance we
                                                                can produce a pretty decent game
                                                                with some unique features. Maybe
                                                                you want to help that game come into
                                                                existence.

                                                                Maybe you want to learn from the
                                                                experience of working on a complex
                                                                software project, or particularly on a
                                                                game. There's a wide range of areas
                                                                involved: graphics and audio, AI and
                                                                UI, file handling and gameplay
                                                                scripting and networking and so on.
                                                                The basic framework is all in place,
                                                                and some of it is already very solid,
                                                                but there's a lot of scope for diving into
                                                                the details and working on various
                        components.

                        Maybe you want to make the game work better on your favourite platform.
                        Maybe you want to show us how stupid we are and how you can write code
http://os.wildfiregames.com/                                                                                                   1/4
07/03/2010                                       0 A.D. Open Source Release
                        that's much better. (We're far from perfect!)

                        Maybe you want to use parts of our code or art in your own project. Maybe you
                        want to use our game for teaching a practical game development class. And
                        maybe you have other reasons.

                        Why are you doing this?
                        We've been working on this game in
                        some form or another since 2001.
                        We've come a long way since then,
                        but making this kind of game is really
                        quite hard. The original team
                        members were largely students, and
                        have now moved on in life and can't
                        devote much time to the project.
                        Attracting new developers is difficult
                        and time-consuming – few people
                        have the time and skill to learn how to
                        work within our existing code and to
                        make significant contributions. So we
                        want to lower the barriers to entry,
                        making it easy for people to check out
                        our project and see if it interests
                        them, in the hope that some will decide it does.

                        Also, we have some ideas and tools and code that we think are quite nice
                        and would like to share. We ought to clean them up and document them
                        properly so they're more useful to other people, but making the code available
                        is the first step. And, particularly on Linux, open source simplifies a number of
                        issues with distribution and debugging, so it makes things easier for us and
                        for users.

                        Up until now, access to the project has been limited to 'official' members of
                        our group, though the intent has always been to produce a non-commercial
                        game and membership has always been quite open. The concept of open
                        source simply wasn't considered interesting a couple of years ago, but times
                        have changed and it now seems the natural way to develop our project.

                                                                 How is the development
                                                                 going to be organised?
                                                                 In opening this project, we need to
                                                                 respect the community by providing
                                                                 as much information and
                                                                 communication and support as
                                                                 possible, so you can benefit from
                                                                 participating in the project (hopefully
                                                                 contributing back and benefiting us, of
                                                                 course!), balanced with our desire to
                                                                 get the game completed to a high
                                                                 standard and with some constraints
                                                                 from our past organisation.

                                                                  In the past, all developers have been
                                                                  part of the official 'team': anyone can
                                                                  apply to join, we'll have a short
                        interview over IRC to get to know them, and if it seems they have the time and
                        energy and skill to contribute usefully then they're made a member. We're
                        going to keep the core group of developers and the private communication
                        methods – 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

http://os.wildfiregames.com/                                                                                2/4
07/03/2010                                          0 A.D. Open Source Release
                        diverge much from that – we'd rather not add (and have to maintain) features
                        that aren't part of that goal. We're releasing the art and gameplay data for two
                        of the game's six civilisations, but holding back the work-in-progress civs until
                        they are more complete and usable.

                        Apart from those restrictions, we're opening access to the source control
                        server (Subversion), and the documentation and issue-tracking system
                        (Trac), and moving our technical discussions to an open forum. Anyone can
                        download, build and run the latest version of the game. Our initial process for
                        contributions will be very basic: If you make some changes, you should
                        create a patch and submit it to us, and we should then review it and maybe
                        suggest some changes or commit it to SVN.

                        Licensing of contributions is an open question. 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.

                        What is the code like?
                        There's roughly 150K lines of C++ for
                        the game engine, and another 25K for
                        editing tools. Gameplay scripting
                        uses JavaScript. We build on top of
                        low-level libraries (OpenGL, OpenAL,
                        ENet, ...), not an existing game engine
                        (like OGRE).

                        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.

                        What reusable code is there?
                        Most of our code is specific to the game and not very useful outside it, but
                        some parts could perhaps be interesting for developers working on other
                        projects. Some examples:

                               Low-level library providing cross-platform support for resource
                               management (archive file loading, GL textures and shaders, ...),
                               debugging tools (error reporting, memory tracking, stack dumps),
                               timers, asynchronous IO, allocators, ...
                               Converter from COLLADA models with skeletal animation into a
                               simple game-friendly format.
                               Binary XML caching system, for faster resource loading.
                               Automated build tools using Amazon EC2.
                               Boring maths code for matrices, vectors, quaternions, etc.

                        How does this compare to other games?
                        We are aware of several other open-source RTS games. Glest has reached
http://os.wildfiregames.com/                                                                                3/4
07/03/2010                                         0 A.D. Open Source Release
                        'stable' status and is set in a medieval/fantasy world, with less complex
                        gameplay and graphics but with AI opponents (which are not yet
                        implemented in 0 A.D.). ORTS is a framework emphasizing AI research more
                        than a playable game. Spring is another RTS engine that appears designed
                        for gameplay similar to Total Annihilation. 0 A.D. is striving to differentiate
                        itself by providing new gameplay ideas, detailed graphics and an an accurate
                        historical setting.

                        How can I get started?
                        See the Getting Started guide to find more information about the game,
                        forums for discussion, instructions for building and running the game, and
                        links to further details.




http://os.wildfiregames.com/                                                                              4/4

						
Related docs
Other docs by SUSB
JORGE_IS
Views: 223  |  Downloads: 0
Quevedo_ Francisco de - Juguetes de la niñez
Views: 26  |  Downloads: 0
Escandalo_Capitulo8
Views: 2  |  Downloads: 0
JOHNSON_
Views: 23  |  Downloads: 0
estudio_escarlata - DOC
Views: 10  |  Downloads: 0
The Mediterranean Vegan
Views: 55  |  Downloads: 0
Flanders-el_diablo_de_cera
Views: 2  |  Downloads: 0
Collins_ Wilkie - El hotel encantado
Views: 9  |  Downloads: 0