Development:Getting Started
Starting Spring Development
NOTE: Outlined below is information on assisting with the development of the Spring source itself. For information about developing a mod (units, widgets, maps, etc.) see the Mod_and_Unit_development page.
Even if you are developing a mod, it is highly recommended that you get the engine source. Engine source + full text search: DO IT.
Overview
To start development, you will need:
- To read the Coding_Standards
- The latest version of the source
- A good code manipulation program
- Compiling your modified source (see instructions above)
Learning C++
You will need to know C++ to modify or understand Spring's source code. If you are interested in learning C++, see Learning_CPP
However please note that badly designed code (code created by a C++ novice for example), even if working will likely not be included in the spring code. Spring is a large project, and therefore it is necessary to stay away from hack jobs and create general solutions to problems.
Keep track what others do
If you develop with others, you need to know what they do. You can browse the source at our github-page, and there is a commit newsfeed.
Source Code Documentation
The doxygen documentation can provide an overwiev about the source, directory structure and its dependencies. Unfortunately, there s no server runnign it, so you need to make them on your own, to do this, install doxygen and run "doxygen" in spring source directory (will take some time).
An explanation on how the code is executed in game can be found in the Spring Engine Code page.
Development Guidelines
Before starting to make modifications to the source, take a look at the development guidelines which outlines some important things to think about. To find something interesting to work on, look at SpringEngineTODO. You can also check the list of whois doing what to see what others are doing. If you do edit the code, please add Doxygen style comments to the code, which will then enhance the source code documentation.
How to get your code included
If you create something that you think should be included in the official source tree, you can report a "bug" in mantis, our BTS. Add your patch as attachment, and put "[patch]" in front of the subject, so it is easy for us to separate patches from bugs.
It's also considered standard practice to post one's modifications in the development forum and get feedback.
Spring Engine TODO list
There is a TODO list for developers who want to contribute to the engine itself: SpringEngineTODO. There is also a feature request forum, which may give you some ideas. Don't be overwhelmed by the sheer number of (silly) requests though!
Development links
- view the lastest source in a web browser
- Automatic installer builds (crosscompiled, mingw)
- Spring base content files
- BerliOS project page (OLD)
- Bug Tracking System
- Buildbot
- Commit mailing list
- Development libraries for Visual Studio 2005
- Development libraries for MinGW
- SourceForge project page (OLD)
- StackTrace Translator
- Old Subversion repository
- Unitsync API docs