Development ToolsHere we discuss basic development tools that are commonly used in the application development life cycle (Compilers, Debuggers, Source Control, CPU & GPU Profilers, Code Editors, etc). Please help fill out this list!
Table of contents[Show/Hide]
To work with OGRE, you of course require some kind of C++ compiler. The most popular are:
- Visual C++ (versions 7.1, 8): Windows only; commercial. Visual C++ is part of Microsoft's Visual Studio, but can be purchased stand-alone too. All variants (standard, professional and enterprise) are suited for developing Ogre based applications.
- Microsoft Visual C++ Toolkit 2003 (version 7.1): Windows only; free beer. Visual C++ Toolkit 2003 contains the full optimizing Visual Studio .Net 2003 compiler, and the statically linking runtime libraries. You will need to do a little hunting to get the dynamically linking runtime libraries, but they are available.
- Microsoft Visual C++ 2005 Express Edition (IDE) Windows only; free. (You also need to download the Windows Platform SDK and the VS2005 Service Pack1 (currently use file VS80sp1-KB926748-X86-INTL.exe on page MicrosoftÂ® Visual StudioÂ® 2005 Express Editions Service Pack 1 ))
- Microsoft Visual C++ 2008 Express Edition (IDE) Windows only; free.
- gcc (version 3.1+): Linux & Windows (via cygwin or MinGW); free under GPL The standard Linux compiler, part of almost all Linux distributions. If you want to develop with Linux this is the way to go. It's also available for Windows as a viable alternative to the costly Visual C++. However, if you have the money to get it, it is highly recommended that you purchase Visual C++ for Windows. You have also 2 free GUI frontend IDE options to the MinGW compiler on Windows. One is Dev-C++ and the other is Code::Blocks.
- Xcode Mac OS X only; free.
other C++ compilers
- Debugging Tools for Windows: a very powerful debugger for all windows applications that is free and makes an excellent companion to the MSVC 2003 Toolkit that is also free. Included in the toolset is windbg.exe which is a gui front end to the debugger. The debugger has all the same functionality as the integrated debugger within the MSVC IDE plus a few more features. If using Code::Blocks as an IDE you will have to launch windbg.exe externally but you can set up a workspace within windbg to remember all your settings for debugging a specific project.
Many OGRE add-ons require you to download code from CVS repositories. CVS is also the best way to get the bleeding-edge updated version of OGRE. CVS clients include:
- TortoiseCVS: Windows only; free under GPL. This is an excellent tool that integrates directly with the Windows file browser for an easy and intuitive use. Merge tool and diff viewer are easily integrated.
- CVSGui: Windows/Mac/*nix; free under GPL. A standalone GUI application. Versions include WinCVS, MacCVS and gCVS. This project also links to several merging tools useful for people using CVS for development.
When getting towards the end of your development process, it is often extremely useful to optimize your code and fix the bottlenecks to the best of your ability. To find these bottlenecks you may use a code profiler to show you the time and memory usages in each function call. Some of those available are:
- Memory and time profilers
- Valgrind (with or without Kcachegrind) (Linux/UN*X - GPL)
- Glowcode (Windows / VS2003.Net integration - commercial)
- OProfile ''(Linux - GPL)
- CodeAnalyst (Windows, Linux - free)
- DevPartner (Windows / VS200(2|3).Net integration - commercial but with free community edition)
- Deleaker (Windows / VS 2005 - VS 2015 integration - commercial)
- Memory profilers
- Time profilers
- gprof, http://www.network-theory.co.uk/docs/gccintro/gccintro_80.html
- LTProf (LTProf is a small but powerful CPU profiling tool for Visual C++, Borland CBuilder, Delphi and VB applications. - commercial but with free trial edition)
- NVperfkit (contains NVperfHUD)
- PIX (Performance Investigation for directX)
- ATI plugin for Microsoft's PIX performance analysis tool
- SciTE a good demonstration of Scintilla which is a free source code editing component
- Artistic Style is a source code indenter and reformatting tool / library for C, C++, C#, or Java source files.
Project Management Tools
- Open Workbench: A free MS Project alternative.
- Overlord: Overlord is a web-application for mod or indie game developers to keep their projects organized and their team members up to date. Once setup, you can add as many users as you like, setup projects and then inside each project you can create tasks, milestones, checklists, and messages. Each project also has a bugs section to keep track of problems.
- WebCollab: A free web-based system for projects and project management.
- TUT: C++ Unit Test Framework: Test unit framework for C++ : TUT is a pure C++ application. It heavily uses C++ template engine to do it's job. Unlike other test unit frameworks for C++, TUT doesn't use macros, since their usage conceals actual implementation and (what's worse) can interfere with client application. TUT completely fits into a single header file. No library compilation is required, thus a lot of portability problems are avoided and integration with client code is reduced to including <tut.h> into the test source file. TUT is a free software and is distributed under the BSD-like License. Needs a modern compiler!
- CppUnit: Unit Testing Framework for C++: (From the website) CppUnit is a free, platform-independent, C++ unit testing framework for C++ that originally started as a port of JUnit. It includes full support for the following and more: XML output with hooks for additional data, compiler-like text output to integrate with an IDE, helper macros for easier test suite declaration, hierarchical test fixture support, and test plug-in for faster compile/test cycle (self testable dynamic library). Full documentation is provided along with usage tutorials.
- NSIS - Nullsoft Scriptable Install System; For creating a setup file of a project; Free for every kind of use; Windows systems only
- Inno Setup - an other free installer; Windows systems only