= Coding = We advise you to read the following couple of pages, if you would like to start working with/on Orxonox: === Tips, Guides and Standards === * [wiki:code/Codebasictips Coding tips] - Basic coding tips and helpful tools * [wiki:code/C++_styleguide Styleguide] - Writing consistent code according to a style definition. * [wiki:code/PerformanceTips Performance] - Make fast and efficient code. * [wiki:code/tools/Doxygen Documenting] - How to write documentation that can be read by Doxygen for HTML view. * [wiki:code/tools/Debugging Debugging] - How to go about debugging your code * [wiki:code/Error_handling Error handling] - What to do when facing an error situation? * [wiki:code/howto/STL Standard C++ library] - Have a look at the standard C++ library, strings and STL containers are very useful === Coding Tools === * [wiki:code/tools/SVN SVN] - Our revision control tool. You should know how to use it * [wiki:code/tools/CMake CMake] - Our build tool (forget about makefiles) * [wiki:code/Buildsystem Buildsystem] - Build settings for CMake * [wiki:code/tools/EclipseIDE Eclipse IDE] - An open source IDE * [wiki:code/tools/KDevelop3 KDevelop3] - An open source IDE, not used in the PPS * [wiki:code/tools/Doxygen Doxygen] - Autogenerates an API * [wiki:code/tools/LinuxCodingTools Open Source Tools] - A list of other development tools === Framework === * [wiki:code/doc/ModulesDescription Modules] - Get an overview of our Framework * [wiki:code/doc Documentation] - A documentation of all our libraries and classes * [wiki:code/libs Libraries] - An overview of the external libraries * [/jenkins/view/Management/job/orxonox_doxygen_trunk/javadoc/ API Reference] - An automatically generated reference of classes, functions, macros and other stuff * [wiki:code/howto HowTo] - This page covers several topics and explains how to do things * [wiki:code/FAQ FAQ] - Check out the FAQ to get answers on frequent questions === Misc === * [wiki:dev/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 === List of code pages === [[TitleIndex(code/,format=hierarchy)]]