|
|
| (169 intermediate revisions by 37 users not shown) |
| Line 1: |
Line 1: |
| Outlined below is information on assisting with the development of the Spring source itself.
| | {|width="100%" style="border: 0px; border-spacing:0px" |
| | |width="500px" valign="top" style="padding-left:10px; padding-right:10px"| |
|
| |
|
| ::<small>NOTE: For information about developing a mod (units, maps, etc.) see the [[Mod Development]] page.</small> | | '''[https://github.com/spring/spring GitHub and Source Code]''' |
|
| |
|
| Below you can find information on how to work with the Spring source in the current mainline (Windows platform) if you like to work on another platform (Linux & Mac) please look at the bottem of this page under "Multiplatform development"
| | Engine source code<br> |
|
| |
|
| ==Starting Development==
| | '''[[Links|Important Links]]''' |
| To start development, you'll need
| |
| #The latest version of the source
| |
| #A good code manipulation program
| |
| #Compiling your modified source
| |
|
| |
|
| ===Source Code Documentation===
| | Important Community and Development links to git repos & subprojects.<br> |
| A good place to start is the source code documentation, which can be found here: [http://taspring.clan-sy.com/doxygen/ doxygen]
| |
|
| |
|
| An explanation on how the code is executed ingame can be found in the [[Spring Engine Code]]
| |
| page.
| |
|
| |
|
| ===Obtaining the Source===
| | '''[[Building spring|Compiling Engine]]''' |
| One option is to manually download it along with the latest released version of the game. However, for serious developers, a better way would be to download the source straight from the CVS. The CVS is updated nightly, and is considered "bleeding edge" because it may or may not work properly. However, the CVS will always have the most up-to-date version of the source code. Look at this [[CVS tutorial]] for instructions on how to get the source code from the CVS, or download the nightly cvs tarball:
| |
| http://cvs.sourceforge.net/cvstarballs/springrts-cvsroot.tar.bz2
| |
|
| |
|
| ===Learning C++===
| | How to build the Spring engine from source.<br> |
| You will need to know C++ to modify or understand Spring's source code. If you're interested in learning C++, check out these links:
| |
| *[http://newdata.box.sk/bx/c/ Teach Yourself C++ in 21 Days] is an excellent introduction for anybody new to the language. It teaches you the bare minimum you can get away with.
| |
| *[http://mindview.net/Books/TICPP/ThinkingInCPP2e.html Thinking in C++] An excellent, thorough C++ book available free online as HTML. Also available in [http://www.planetpdf.com/developer/article.asp?ContentID=6634 PDF format].
| |
| *[http://www.parashift.com/c++-faq-lite/ C++ FAQ] An excellent guide to the many problems encountered when writing C++ and how to avoid them.
| |
| *[http://www.amazon.com/exec/obidos/tg/detail/-/0130384747/002-6409742-5712035?v=glance C++ How to Program] Although it's a commercial volume, it is an excellent introduction to the language.
| |
|
| |
|
| If the above aren't enough there are links to more free C++ books here: http://www.freeprogrammingresources.com/cppbooks.html.
| |
|
| |
|
| For humour you might be interested in: [http://www.lysator.liu.se/c/ten-commandments.html The Ten Commandments for C Programmers] (C++ is based on C). However the advice given should be taken with a pinch of salt!
| | '''[[Development:Getting_Started|Engine Development]]''' |
|
| |
|
| However please note that badly designed code (code created by a C++ novice for example), will even if working not be included in the spring code. Spring is a large project, and therefore it is necessary to stay away from hackjobs and create general solutions to problems.
| | Information regarding contributing to the source code of the Spring engine. |
|
| |
|
| ===Modifying and Compiling the Source===
| |
| See [[Development_IDEs]]
| |
|
| |
|
| ==Development Suggestions==
| | '''[[Lobby_Development|Lobby Development (Clients and Servers)]]''' |
|
| |
|
| 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 the list of [[example projects]]. 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.
| | Information regarding contributing to the source code of the different lobby clients and servers available for Spring. |
|
| |
|
| ===How to get your code included===
| |
| If you create something that you think should be included in the official source tree, you can send an email to the development mailing list shown at [[Linux]] page. Sending your code in the form of a patch (also known as a .diff file), will make the chances of including it in the main code.
| |
| It's also considered standard practice to post one's modifications in the [http://taspring.clan-sy.com/phpbb/viewforum.php?f=12 development forum] and get feedback.
| |
|
| |
|
| ==Multiplatform development==
| | '''[[Gamedev:Main|Game Development]]''' |
| Current development is done on the portable code only, located at [http://taspring-linux.berlios.de Berlios]
| |
| All future releases will be based on this code.
| |
| The current spring code is being developed on Windows and linux. A mac port, as well as other unixes, is very possible, but currently no developers are working on this.
| |
| Use the mailing list listed on the [[Linux]] page to reach all developers (windows and linux). However if you have a feature request or bug report, the mantis bugtracker is probably a better way.
| |
|
| |
|
| See [[Glossary]]
| | Lots of links to valuable Articles and forum threads regarding Game, Mod & Unit Development. |
|
| |
|
| [[Category:Development]] | | |
| | '''[[Mapdev:Main|Map Development]]''' |
| | |
| | Tutorials and other useful information for creating maps. |
| | |
| | |
| | '''[[Lua_Scripting|Lua Development]]''' |
| | |
| | Information regarding the use of the supplementary Lua scripting language for Widgets and beyond. |
| | |
| | |
| | '''[[AI:Development|AI Development]]''' |
| | |
| | All you ever wanted to know about Skirmish AI Development for Spring, and more. This includes Skirmish and Lua AIs. |
| | |
| | |
| | '''[[Infrastructure:Development|Infrastructure Development]]''' |
| | |
| | Information about springs infrastructure |
| | |
| | |valign="top" style="padding:0px"| |
| | |
| | == Quick Links == |
| | |
| | {|width="100%" class="" |
| | ! '''[http://spring.clan-sy.com/phpbb/viewforum.php?f=12 Development forums]''' |
| | |- |
| | | Look at the development forums for ongoing progress and discussion |
| | |} |
| | |
| | |
| | {|width="100%" class="" |
| | ! '''[http://springrts.com/mantis/ Report Bugs]''' |
| | |- |
| | | Submit patches and bug reports here |
| | |} |
| | |
| | |
| | {|width="100%" class="" |
| | ! '''[https://github.com/spring/spring/ Source Code]''' |
| | |- |
| | | View and fork the project on GitHub. |
| | |} |
| | |
| | |
| | |
| | {|width="100%" class="" |
| | ! '''[https://github.com/spring/spring/commits/develop.atom Commit Newsfeed]''' |
| | |- |
| | |View git commits as they happen. |
| | |} |
| | |
| | |
| | |
| | |} |
| | |
| | [[Category: Development]] |