= Coding = [[TracNav(TracNav/TOC_Development)]] We advise you to read the following couple of pages, if you would like to start working with/on Orxonox: === Guides and Standards === * [wiki:c++_styleguide Styleguide] - Writing consistent code according to a style definition. * [wiki:PerformanceTips Performance] - Make fast and efficient code. * [wiki:Doxygen Documenting] - How to write documentation that can be read by Doxygen for HTML view. * [wiki:Error_handling Error handling] - What to do when facing a error situation? * [wiki:howto/STL Standard C++ library] - Have a look at the standard C++ library, strings and STL containers are very useful === Coding Tools === * [wiki:SVN] - Our revision control tool. You should know how to use it * [wiki:CMake] - Our build tool (forget about makefiles) * [wiki:KDevelop3] - An open source IDE * [wiki:Doxygen] - Autogenerates an API * [wiki:LinuxCodingTools Open Source Tools] - A list of other development tools === Framework === * [wiki:ModulesDescription Modules] - Get an overview of our Framework * [wiki:Documentation] - A documentation of all our libraries and classes * [wiki:Libraries] - An overview of the external libraries * [doxygen:index.html API Reference] - An automatically generated reference of classes, functions, macros and other stuff * [wiki:HowTo_coding HowTo] - This page covers several topics and explains how to do things * [wiki:FAQ_coding FAQ] - Check out the FAQ to get answers on frequent questions === Misc === * [wiki:DevelopmentResources Links] - A collection of useful stuff. === Development Cycles Model === The model of open-source development is normally an evolutionary one: There are three phases repeated until a threshold for iteration is reached or an adequate solution is obtained. 1. '''Planning''': In this phase, the development goals for the next cycle are stated. 2. '''Implementation''': The plan is being implemented in code. 3. '''Review''': A code freeze is initiated and the work is being analyzed to ensure that the goals set in the planning phase have been reached. If not, the implementation phase has to be repeated. The development process itself can be split into different stages which are repeated if necessary: 1. Finding ideas & planning 2. Frameworking 3. Implementing game ideas 4. Implementing story and worlds 5. Alpha, beta, final release