Development < Getting Started
- 1 Starting Spring Development
- 2 Source Code Documentation
- 3 Important Developer Tasks
- 4 How to get your code included
- 5 Spring Engine TODO list
- 6 Development links
- 7 Legal
Starting Spring Development
NOTE: Outlined below is information on assisting with the development of the Spring source itself. For information about developing a game (units, widgets, maps, etc.) see the Gamedev:Main page.
To start development, you will need:
- To read the Coding_Standards
- A good code manipulation program: Development_IDEs
- Compiling the source code
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.
Source Code Documentation
The doxygen documentation can provide an overview about the source, directory structure and its dependencies. Unfortunately, there is no server running 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.
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 for todos in the forum. You can also check in the forums 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.
Keep track what others do
Buildbot and Stacktrace translator
Important Developer Tasks
How to get your code included
If you create something that you think should be included in the official source tree please create a pull request to the develop branch of the spring repository on github.com.
Make sure that your changes:
- Were successfully tested locally.
- Conform with the Coding Standards.
- Are spread over an appropriate amount of commits - Please refrain from combining many individual changes into a single commit and from including merge commits.
- Include an update to the changelog if it's a major change - this is not to save work for the devs, but mostly to provide a concise explanation of what the pull request changes.
Spring Engine TODO list
If you want to code something, look into the New Developers Forum for TODOs. 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!
Alternatively, you may just search the code for the famous comment tags,
for example on linux:
<pre<noinclude></noinclude>>grep -r "TODO" rts</pre<noinclude></noinclude>>
The Bugtracker contains a long todo-list as well.
There are also some project proposals.
- View the latest source in a web browser
- Doxygen documentation
- Bug Tracking System
- buildbot builds
- Unitsync API docs
- Developer Meetings
- Stacktrace Translator (translates stacktraces from official win32 builds)
- SourceForge project page
- Web site repository
The Spring engine and content in the main installer is Free Software, distributed under the GPL license. You may distribute the Spring Engine freely, modify its contents, or redistribute the source. For details, please read the license, which is included in the installer and source code.
If you wish to use a game or mod in a game CD, promote it in a magazine, or promote it on another website, please contact the game's maintainers. The Spring Project is not responsible for the legal status of any games built with or using this engine, and does not support redistribution of illegal content.