what you need for ogre

 

Table of contents <script type="text/javascript"></script>

[ edit]

Development tools

Here we discuss basic development tools. Please help fill out this list.

[ edit]

C++ compiler

To work with OGRE, you of course require some kind of C++ compiler. The most popular are:

  • Visual C++ (http://msdn.microsoft.com/vstudio) (versions 6, 7, 7.1): 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.
  • gcc (http://gcc.gnu.org/) (version 3.1+): Linux & Windows (via cygwin (http://cygwin.com/) or MinGW (http://mingw.org/)); free under GPL (http://www.gnu.org/copyleft/gpl.html) 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++ (http://bloodshed.net/devcpp.html) and the other is Code::Blocks (http://www.codeblocks.org/).

other C++ compilers

[ edit]

Debuggers

  • Debugging Tools for Windows (http://www.microsoft.com/whdc/devtools/debugging/default.mspx/): a very powerfull debugger for all windows applications that is free and makes an excellent companion to the MSVC 2003 Toolkit (http://www.microsoft.com/downloads/details.aspx?FamilyId=272BE09D-40BB-49FD-9CB0-4BFA122FA91B&amp;displaylang=en) 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 (http://www.codeblocks.org/) 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.
[ edit]

Source control

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:

  • Tortoise CVS (http://www.tortoisecvs.org): 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 (http://www.wincvs.org): Windows/Mac/*nux; 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.
[ edit]

CPU Profiler

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) (http://kcachegrind.sourceforge.net) (Linux/UN*X - GPL)
    • VTune (http://www.intel.com/software/products/vtune/)
    • Glowcode (http://www.glowcode.com) (Windows / VS2003.Net integration - commercial)
    • OProfile (http://oprofile.sourceforge.net/) (Linux - GPL)
    • CodeAnalyst (http://www.developwithamd.com/) (Windows, Linux - free as in lunch)
    • DevPartner (http://www.compuware.com/products/devpartner/default.htm) (Windows / VS200(2|3).Net integration - commercial but with free community edition)
  • Memory profilers
    • MemProf (http://www.gnome.org/projects/memprof/)
  • Time profilers
    • gprof (http://www.network-theory.co.uk/docs/gccintro/gccintro_66.html) and here (http://www.gnu.org/software/binutils/manual/gprof-2.9.1/html_mono/gprof.html)
    • LTProf (http://www.lw-tech.com/help.php?folder=ltprof&amp;topic=AboutLTProf.htm) (LTProf is a small but powerful CPU profiling tool for Visual C++, Borland CBuilder, Delphi and VB applications. - commercial but with free trial edition)
[ edit]

GPU Profiler

[ edit]

Code Editing

  • SciTE (http://scintilla.sourceforge.net/SciTEDownload.html) a good demostration of Scintilla (http://scintilla.sourceforge.net/) which is a free source code editing component
  • Artistic Style is (http://sourceforge.net/projects/astyle/) a source code indenter and reformatting tool / library for C, C++, C#, or Java source files.
[ edit]

Object modeling

Games include models of people, monsters, cars and so forth. These models are almost universally created using a third party tool. Models normally consist of a polygon mesh that specifies the structure of the model, textures which are layered over the polygon mesh, and animations. Animations specify standard motions that the object can perform, such as laughing, waving, running and so forth.

In theory, it is possible to specify models and their animations directly in Ogre, but this would be so time-consuming that people use third party modeling tools instead.

Modeling tools use proprietary formats for the models they generate. However, many tools provide a plug-in capability, allowing them to be extended to provide output in the format that Ogre expects.

  • 3ds Max (http://www4.discreet.com/3dsmax): Windows only; commercial. Among survey respondents, 3ds Max was the unanimous choice of commercial tool for object modeling with Ogre.
  • AC3D (http://www.ac3d.org): Windows, Mac, Linux. Commercial but cheap at $59.95. Good for static mesh modelling, doesn't support animation.
  • Blender (http://www.blender3d.com): Windows, Mac, *nix; free under GPL. Blender is an open source modeling tool, with many advanced features and a very active and dedicated community. The GUI need getting used to, but lends itself to a very efficient work style once learned. The Blender Tools page describes the many tools available for incorporating blender into your Ogre content creation process.
  • Maya (http://www.alias.com/eng/products-services/maya/index.shtml): 'Windows, Mac, *nix; commercial.
  • MilkShape (http://www.swissquake.ch/chumbalum-soft): Windows only; commercial but very cheap. MilkShape is quite straight-forward to use, and supports polygon modeling, texturing and skeletal animation. At time of writing, MilkShape is offered under a $25 shareware license.
  • SoftImage XSI (http://www.softimage.com/Products/Xsi/v4/): Windows, Linux; commercial. Another great modelling tool. Part of the official Ogre development is being done to support this tool.
  • Wings 3D (http://www.wings3d.com): Windows, Mac, *nix; open source. Wings 3D is a free subdivision modeler inspired by Nendo and Mirai from Izware.

Dedicated to animation:

  • CharacterFX (http://www.insanesoftware.de/) Create animation easily, with weighted Bones, and supports many formats, using lua script for import and export.
  • FragMotion (http://www.fragmosoft.com/) Create animation easily, with weighted Bones, and supports many formats.
[ edit]

Drawing and painting

Drawing/painting tools are used to create textures for models and landscapes. Textures are simply bitmap images that are stretched over polygon meshes to make them look realistic.

  • BodyPaint (http://www.maxon.net/pages/products/bodypaint3d/bp3d_r2/bp3d_2_e.html): Windows, Mac; Commercial. 3D paint software, allows direct painting on 3D models.
  • Displacement Map Creator (http://66.70.170.53/Ryan/heightmap/heightmap.html) : A tool to make displacement maps from normal maps (win32). On same site, check how to make Normal Map from any Real Subject using a camera, a flash light and a computer : How to make normal maps from real surfaces (http://66.70.170.53/Ryan/nrmphoto/nrmphoto.html).
  • Genetica (http://www.spiralgraphics.biz/gen2tour/index.htm) : Windows only, commercial. A professional-level seamless texture editor. Has an innovate node-based interface and comes with more than 500 finished texture presets.
  • GIMP normalmap plugin (http://nifelheim.dyndns.org/~cocidius/normalmap/) : Windows, *NIX, free A plugin to The GIMP which allows for easy creation of normal maps from heightmaps.
  • Microsoft Paint (http://www.computerhope.com/software/mspaint.htm): Windows only; Commercial, but bundled with Windows. Sometimes simplest is best. And you can't get much simpler than MS Paint.
  • Nvidia Texture Tools (http://developer.nvidia.com/object/nv_texture_tools.html) : Windows, free Several texture tools, not bound to NVIDIA cards only. Amongst them a tool for generating normal maps from heightmaps.
  • Paint.NET (http://www.eecs.wsu.edu/paint.net): Windows 2k/XP; Free under BSD-like license. Less powerful, but much easier to use than GIMP, this program offers Layers, Filters and a Plug-in interface. Gui resembles Photoshop.
  • Paint Shop Pro (http://www.jasc.com/products/paintshoppro/): Windows only; commercial. For some, the best image manipulation software, even better than Photoshop. Now owned by Corel.
  • Photoshop (http://www.adobe.com/products/photoshop/main.html): Windows, Mac; Commercial. Photoshop is the premiere product used by professionals. Photoshop Elements is a stripped down version for less money.
  • TATTOO (http://www.terabit.nildram.co.uk/tattoo/index.htm): Windows, free freehand tool which allow you to paint your uvmaps in 3D, as bodypaint3d, but free.
  • The GIMP (http://www.gimp.org): Windows, Mac, *nix; Free under GPL. The GIMP is a fully-featured image manipulation program. Version 2 included a significant UI overhaul which made the tool much easier to use.
  • Texture Maker (http://www.texturemaker.com/): Windows; Shareware Very powerful tool to make seamless textures and bump maps. Shareware can only save textures up to 320x320 pixels. Great if you only need to make textures and don't plan on using it for anything else.
  • Wood Workshop (http://www.spiralgraphics.biz/ww_overview.htm) : Windows only, free. Creates everything from wood floors to tree bark. Likely the best seamless wood texture generator out there.
[ edit]

World design

Worlds normally consist of exterior terrain populated with entities (trees, houses, monsters, etc.), water, sky and light sources. Very broadly speaking, there are two problems in creating worlds: creating the terrain, and populating the terrain with all those other things (entities, water, sky, light sources.) World design tools help to solve these problems. Some tools deal exclusively with terrain generation, while others help with laying out the scene.

This appears to be an area where there's room for contribution to Ogre.

[ edit]

Terrain generation

  • Terragen (http://www.planetside.co.uk/terragen): Windows, Mac; Free for non-commercial use until v1.0 released. Permits development of gorgeous terrains. Terrains can be read in using the Terrain scene manager.
  • Leveller (http://www.daylongraphics.com/products/leveller): Windows; Commercial. Heightfield modeler with a simple interface and a number of useful plug-ins. At time of writing, $99 for a license. Free demo available.
  • Robot Frog 3D (http://www.robot-frog.com/3d/hills/index.html): Windows, Mac, *nix; Free. This page presents an algorithm for generating heightmaps which can be used to render terrains using the Terrain scene manager.
  • HME (http://hme.sourceforge.net): Windows, Linux; Donationware. Simple heightmap editor with a paint-like interface.
  • Freeworld3D (http://freeworld3d.org): Windows, (Linux in development); Commercial ($20). A terrain editor, with heightmap editing tools (raise, lower, smooth, flatten), support for painting texture layers (compatible with texture-splatting techniques used in PagingLandscapeManager and applicable to default Ogre Terrain), generating shadows, placing meshes and custom entities, skyboxes, and more.
  • Advanced Landscape Editor (ALE) (http://www.dyvision.co.uk/ale.htm): Windows; Commercial ($39.99). A realy nice and easy to use terrain editor. It has a WYSIWYG interface and makes terrain editting a breeze. Very useful for creating height- and lightmaps.
  • Kashmir3D (http://www.kashmir3d.com/index-e.html): Windows; Free.
  • Using a 3D Program to create your heightmap...You will need a 3D Program that support muilti UV set and Render to texture function...3DSMax and Maya include these function.Using 3DSMax to create heightmap 3dsmax_Heightmaps
[ edit]

Full world design

Using exporters available for the following programs allows for export to a scene format known as DotScene. This can be efficiently optimized using the DotSceneOctree scene manager, and lends itself well to large outdoor areas.

  • 3ds Max (http://www4.discreet.com/3dsmax): Windows only; commercial. Among survey respondents, 3ds Max was the unanimous choice of commercial tool for object modeling with Ogre. The Yake Octopus (http://www.yake.org/wiki/doku.php?id=octopus:octopus&amp;s=octopus) exporter allows for easy DotScene export.
  • Blender (http://www.blender3d.com): Windows, Mac, *nix; free under GPL. Blender is an open source modeling tool, with many advanced features and a very active and dedicated community. The GUI need getting used to, but lends itself to a very efficient work style once learned. A scene exporter and other tools are available for designing in blender.
  • Maya (http://www.alias.com/glb/eng/products-services/family_details.jsp?familyId=3900009): Windows, Mac, *nix; commercial. The LFA Scene Manager (http://www.lfagames.com/help.htm) exporter allows for easy DotScene export.
[ edit]

Level design

The term level is normally used to describe the interiors of building, dungeons or industrial complexes in which many games take place. Levels are different from exteriors in that they typically consist of regular geometry (hallways, staircases, etc.) rather than terrain. Level design tools typically allow the definition of the level's geometry as well as the placement of entities (furniture, monsters, etc.) and light sources.

While levels can be displayed in any scene manager, Ogre provides the BSP scene manager which employs BSP culling and collision management to render levels efficiently. This scene manager is subject to difficult legal restrictions, however. BSP levels are gnerated from Quake .map files, created via a map editor. Most (if not all) BSP compilers are proprietary, and the .map format itself may be proprietary to Id Software (http://www.idsoftware.com). For discussion, see this thread (http://www.ogre3d.org/phpBB2/viewtopic.php?t=8153&amp;postdays=0&amp;postorder=asc&amp;highlight=bsp+scene+manager&amp;start=0) on the forums, which also discusses a new work-in-progress BSP compiler for Ogre.

  • 3ds Max (http://www4.discreet.com/3dsmax): Windows only; commercial. For those who can afford it, 3ds Max can be used to edit levels. The Octopus (http://www.yake.org/index.php?option=content&amp;task=view&amp;id=24) plugin can be used to make 3ds Max more Ogre-friendly. Exported levels are rendered at runtime with the DotScene scene manager.
  • Blender (http://www.blender3d.com): Windows, Mac, *nix; free under GPL. Blender is a free modeling tool, with many advanced features and a very active and dedicated community. The GUI need getting used to, but lends itself to a very efficient work style once learned. A scene exporter is available as addon project.
  • GtkRadiant (http://www.qeradiant.com/?data=editors/gtk): Windows, Linux; Licensing murky. To use GtkRadiant with Ogre, you require a copy of Quake 3. The level data can then be used by the BSP scene manager. This is therefore not a practical tool for most purposes.
  • Maya (http://www.alias.com/glb/eng/products-services/family_details.jsp?familyId=3900009): Windows, Mac, *nix; commercial. For those who can afford it, Maya can be used to edit levels. The LFA Scene Manager (http://www.lfagames.com/help.htm) MEL scripts can be used to make Maya more Ogre-friendly. Exported levels are rendered at runtime with the DotScene scene manager.
  • QuArK (http://quark.sourceforge.net/cgi-bin/moin.cgi): Windows; GPL License. QuArK is another Quake 3-format level editor. Levels are generated in .map format, which must be compiled to BSP for use in the BSP scene manager.
  • Worldcraft (http://www.fileplanet.com/44990/40000/fileinfo/WorldCraft-v3.3)/Hammer (http://collective.valve-erc.com/index.php?go=hammer): Windows; Only to develop new levels for Half-Life and other compatible Valve products. Hammer (called WorldCraft prior to 3.0) was developed as a modding tool for the Quake and Half-Life games. Licensing of Hammer prevents its general use, though I believe the restrictions on earlier versions were weaker (unable to find references at the moment, though I believe WorldCraft was purchased by Valve and renamed to Hammer). WorldCraft generates MAP models which must be compiled to BSP form for use in the BSP scene manager.
[ edit]

Libraries

You can find some code in the web links section too, along with articles and paper introducing it.

[ edit]

Game Engine

  • Yake (http://www.yake.org) : An alternative to assembling all of these libraries yourself is to use the Yake (http://www.yake.org) engine. Yake is an abstracted game engine that can use Ogre for rendering, but also adds support for audio, networking, physics, scripting and so forth.
[ edit]

Physics

Games or simulations normally follow some consistent model of the physical universe. Physical laws dictate that balls bounce when they hit the ground or that a arrows arc upwards then down when fired into the air. More recently, ragdoll physics has become popular as a way of animating characters according to physical models, for example, enabling realistic animation of a person falling after being shot.

If anyone knows enough about these engines to compare them, please do so!

  • Ode (http://ode.org/): Windows, Mac, *nix ; Free under the LGPL and BSD style license. The Open Dynamics Engine (ODE) is by far the most popular tool for programming physics with Ogre. ODE can be used via the OgreODE addon. Some screenshots and AVI's involving OgreODE can be seen in this thread (http://www.ogre3d.org/phpBB2/viewtopic.php?t=7846).
  • NovodeX (http://www.novodex.com): Windows, Mac, *nix; Windows version free for non-commercial use. This SDK has been widely used, including in the Unreal Engine. It has been used in at least one Ogre project (http://www.primedgames.com).
  • Newton Game Dynamics (http://www.newtondynamics.com): Windows, Mac, Linux(x86); Free with minimal restrictions (License (http://newtondynamics.com/SDKLicense.html)). You can integrate Newton Game Dynamics into your projects with ease. With our technology you only need to know basic physics principles to produce realistic physics behavior. Tuning time is reduced to a minimum because you don't need to wrestle the targeted hardware nor set up esoteric parameters to get the correct timing for your simulation. Newton physics engine behaves naturally. This has been used in at least one Ogre project (Stunt Playground (http://www.ogre3d.org/phpBB2/viewtopic.php?t=9724&amp;start=0)). The OgreNewt library makes it easy to integrate the Newton physics into your Ogre application (OgreNewt Library (http://www.ogre3d.org/phpBB2/viewtopic.php?t=7857)).
  • True Axis Physics SDK (http://www.trueaxis.com/): Windows, Linux (x86), more (http://trueaxis.com/forum/viewtopic.php?t=170); The True Axis Physics SDK is a fast and solid real world physics simulation system designed for demanding games and virtual interactive environments. The SDK is designed from a games developer's perspective. It aims to avoid common issues present in most physics and collision implementations. It aims to give developers the control they need over the way objects behave. Fast physics for games - free for non-commercial use.
[ edit]

Artificial intelligence

There has been little standardization yet as to what an AI engine might contain. But there are enough common AI problems in games, such as pathfinding, that seem to need writing over and over again. Most Ogre projects use custom-built AI libraries.

  • OpenAI (http://openai.sourceforge.net): Windows, Mac, *nix. OpenAI or the Open-source Artifical Intelligrence library aims to be for AI what OpenGL is for graphics. That said, it is not so good for use in DirectX but integrates seamlessly and without trouble into OpenGL. The library has many features. Is written in Java.
  • FEAR (http://fear.sourceforge.net/index.php): Windows, Mac, *nix. FEAR is an AI library whose status is unclear. There is, however a recent book (http://aigamedev.com) by FEAR's lead developer which is based on FEAR. Author of the library do not think his library is ready for real-time or games application, it's under construction, but meanwhile have an education purpose and wish people can help him. Testing and use of the library does needs Quake 2. (or you won't be able to test your code and the demos.). If you buy the book you get mores Bots sources and demo. Very good for education purpose on neural nets, FSM, Fuzzy logic.
  • OpenSteer (http://opensteer.sourceforge.net/): Windows, Mac, *nix; MIT License OpenSteer is a C++ library to help construct steering behaviors for autonomous characters in games and animation. In addition to the library, OpenSteer provides an OpenGL-based application called OpenSteerDemo which displays predefined demonstrations of steering behaviors. The user can quickly prototype, visualize, annotate and debug new steering behaviors by writing a plug-in for OpenSteerDemo.
  • A* Tactical Pathfinding (http://www.cgf-ai.com/products.html#tacastarexplorer): Windows. Free (needs copyright notice) Described in the "Game Programming Gems III book". A tactical path deviates from the shortest path to achieve increased concealement and cover from threats. The simple way to create tactical paths is adding a new cost to the A* cost function. These new costs reflect exposure to enemy observation and fire at each point in the terrain.(on the same page, from "AI Game Programming Wisdom" book, there's also the Path Lookup Tables explorer.) Also see here (http://robertwrose.com/cg) for an Ogre implementation of various A* pathfinding with source
  • PathLib (http://pathlib.hildebrand.cz/pathlib.html): Windows; Free A C++ A* pathfinding, fast and robust, along with a windows demo, that allows path testing and map editing. ( supports Group pathfinding) Also see here (http://robertwrose.com/cg) for an Ogre implementation of various A* pathfinding with source
  • Garfixia AI Repository (http://62.166.18.36/ai/index.html): This site contains an open-source library of AI techniques, written in C++. Excellent material - appears to be Open Domain - not production quality, but an invaluable starting point. FSM, fuzzy, learning trees, etc. Good Stuff!
[ edit]

Networking

Effective use of the network is important to multiuser games. To support games played over the Internet, it is necessary to deal with problems of network performance, fault-tolerance, concurrency control and security. Most Ogre prjects are based on custom networking libaries. The following libraries, however, have been found useful by some Ogre users.

  • RakNet (http://freshmeat.net/projects/raknet): Windows, *nix; Free under GPL (free commerical use with permission) Used in quite a number of Ogre projects. From the web page: "RakNet is a networking API that is a wrapper for reliable UDP and higher level functionality on Windows, Linux, and Unix. It allows any application to communicate with other applications on the same computer, over a LAN, or over the internet. Although it could be used for any networked application, it was developed specifically for rapid development of online games and the addition of multiplayer to single player games."
  • OpenTNL (http://www.opentnl.org): Windows, Mac, Linux; GPL or Commercial License. From the web page: "The Torque Network Library is a robust, secure, easy to use cross-platform C++ networking API designed for high performance simulations and games."
  • Zoidcom (http://www.zoidcom.com): Windows, Linux; Free or Commercial License. From the web page: "Zoidcom is a high-level, UDP based networking library providing features for automatic replication of gameobjects and synchronization of their states over a network connection in a highly bandwidth efficient manner. This is achieved by multiplexing and demultiplexing object information from and into bitstreams, which make it easily possible to avoid sending redundant data. Bools only take one single bit, integers and floats are stripped down to as many bits as needed."
  • HawkNL (http://www.hawksoft.com/hawknl/): Windows, Mac, Linux; GNU Library General Public License (LGPL). From the webpage: "Game oriented network API HawkNL (NL) is a fairly low level API, a wrapper over Berkeley/Unix Sockets and Winsock. But NL also provides other features including support for many OSs, groups of sockets, socket statistics, high accuracy timer, CRC functions, macros to read and write data to packets with endian conversion, and support for multiple network transports (vesion 2.0 is beta)."
  • ENet (http://enet.cubik.org/): Windows, Linux; Free. From the webpage: "ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol). The primary feature it provides is optional reliable, in-order delivery of packets."
  • ZIGE Game Engine (http://zige.sourceforge.net/): Windows, Mac, Linux; GNU Library General Public License (LGPL). From the webpage: "ZIG is a free, LGPL licensed, extendable client-server game engine. Besides networking, it provides support for other features like: logging, an interactive debug console, timing control (for client framerates and server packet rates), automatic downloading of game files from server to client, etc. From the standpoint of ZIG, the graphics renderer, the sound engine and the input handler are all extensions you must provide. You will be able to plug your Allegro, SDL, DirectX, OpenGL etc. stuff into ZIG with ease. ZIG is a cross-platform C/C++ library which depends on HawkNL and Pthreads (POSIX Threads)."
  • SDL_net (http://www.libsdl.org/projects/SDL_net/) Windows, Mac, Linux; GNU Library General Public License (LGPL). From the webpage: "SDL_net is a small sample cross-platform networking library [that] runs on all platforms supported by SDL."
[ edit]

Sound

Games and simulations rely greatly on sound and music to provide atmosphere. While we often focus on graphics as programmers, sound is at least as important to developing an immersive atmosphere.

  • FMOD (http://www.fmod.org): Windows, Mac, Linux, WinCE, PS2, XBox, GameCube; Commercial, but free for non-commercial use. From their web page: "FMOD supports 3d sound, midi, mods, mp3, ogg vorbis, wma, aiff, recording, obstruction/occlusion, cd playback (analog or digital), cd ripping, mmx, internet streaming, dsp effects, spectrum analysis, user created samples and streams, synchronization support, ASIO, EAX 2&3, C/C++/VB/Delphi and more."
  • OpenAL (http://www.openal.org): Windows, Mac, Linux, PS2, XBox, GameCube; Mainly free under LGPL but commercial for some platforms. From the web page: "OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications."
  • BASS (http://www.un4seen.com/bass.html): Windows; Commercial, but free for non-commercial use. From the web page: "BASS is an audio library for use in Windows software. It's purpose is to provide developers with the most powerful and efficient (yet easy to use), sample, stream (MP3, MP2, MP1, OGG, WAV, custom generated, and more via add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a tiny DLL, under 100KB in size."
  • Audiere (http://audiere.sourceforge.net/): Windows, *nix; Free "Audiere is a high-level audio API. It can play Ogg Vorbis, MP3, FLAC, uncompressed WAV, AIFF, MOD, S3M, XM, and IT files. For audio output, Audiere supports DirectSound or WinMM in Windows, OSS on Linux and Cygwin, and SGI AL on IRIX." Featuring a Braindead easy API .
[ edit]

Scripting

3D applications are often organized so that the performance-critical parts are written in C++ while the application itself is written in a so-called scripting language. Scripting languages are typically interpreted allowing a tighter code/execution cycle, and are usually easier to debug than C++. This allows more rapid application development while retaining good performance.

Alternatively, the application can be structured where scripts are embedded within a C++ application.

  • Lua (http://www.lua.org): Windows, *nix; Free under MIT License (http://www.opensource.org/licenses/mit-license.php). Lua is a library that can be called from Ogre, allowing scripts to be called from within a C++ main application. From the web page: "Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, interpreted from bytecodes, and has automatic memory management with garbage collection, making it ideal for configuration, scripting, and rapid prototyping." Lua programs can in turn make calls/callbacks into Ogre (and other C++ libraries) via luabind (http://luabind.sourceforge.net) (free under the MIT License (http://www.opensource.org/licenses/mit-license.php)).
  • LuaPlus (http://luaplus.org/tiki-index.php?page=LuaPlus%20Home%20Page): Lua C++ oriented fork with debugging facilities (visual studio plugins), optimisations.
  • Java (http://java.sun.com): Windows, *nix, Mac; Free. Java is a type-safe byte-code interpreted object-oriented language. Java programs can use Ogre via the ogre4j Ogre add-on.
  • Python (http://www.python.org): Windows, *nix, Mac; Free. Python is an untyped byte-code interpreted object-oriented language. Python programs can use Ogre via the PyOgre Ogre add-on. There is also a work-in-progress library for embedding Python scripts in C++ Ogre applications (http://www.ogre3d.org/phpBB2/viewtopic.php?t=8131). For more performance there is also a Python JIT (just in time compiler), psyco (http://psyco.sourceforge.net/).
  • Ruby (http://www.ruby-lang.org/en): Windows, *nix, Mac; Free. Ruby has received a fair bit of positive press lately as a structured OO language with the power of Perl. Ruby has its own C++ interface, as well as a SWIG (http://www.swig.org) interface.
  • Squirrel (http://squirrel.sourceforge.net): Windows, *nix; Free. Squirrel is a high level imperative/OO programming language, designed to be a powerful scripting tool that fits in the size, memory bandwidth, and real-time requirements of applications like games. Squirrel's syntax is similar to C/C++/Java, but the language has a very dynamic nature like python/Lua. It's API is very much like Lua, too.
  • AngelScript (http://www.angelcode.com/angelscript/): Windows, *nix; Free. AngelScript is a high level programming language which has the familiare syntaxes of C/C++. Its designed to be modulative, light-weight, efficient and highly-configurable. It features Run-Time bytecode compilation and ability save/load bytecode on demand. AngelScript is offered on the ZLib license.
  • GameMonkey (http://www.somedude.net/gamemonkey/): Windows, *nix; Free. GameMonkey is a high level embedded scripting language, similar to Lua and AngelScript. It has a C style syntax, supports threading and focuses on having a light footprint. GameMonkey is offered under the MIT license.
[ edit]

Input

Although OGRE does already provide an input management system, it isn't meant to be complete and is only there for convenience. For example, it doesn't provide joystick support, which is quite an important feature for any arcade game. Success has been reported in the forums with the following input libraries :

  • SDL (http://www.libsdl.org/): MS Windows, Linux, BeOS, Solaris, IRIX, FreeBSD, MacOS; Free under the GNU LGPL. From the web page: " Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer." Look at this page to learn how to use SDL with OGRE.
  • LibGII (http://www.ggi-project.org/packages/libgii.html): MS Windows, Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Darwin/MacOSX, IRIX, AIX; Free under the MIT license. From the web page: "LibGII is intended to be to input what our LibGGI library is to graphics. The goal of LibGII is to provide a single easy to use, but yet powerful, API for all possible input sources.". See also this page on integrating libGII into your OGRE program.
  • OpenInput (http://openinput.dotsrc.org/): Linux, Windows OpenInput is a cross-platform, easy-to-use, portable input handler library, written in C.
[ edit]

Project planing/Project Management Tools

  • Open Workbench (http://www.openworkbench.org/): A free MS Project alternative.

Here you get a list of free/open Project Management Tools: http://proj.chbs.dk/

[ edit]

Other tools

This section is for tools that I don't understand well enough to categorize. Please fill in some details and move these to the appropriate sections.

  • Giles (http://www.frecle.net/giles/home.htm): Commercial but inexpensive.($40) Gile[s] is a Global Illumination Editor. It allows you to create a radiosity lightmap for a scene. A lightmap is another texture layer, that adds light and/or shadow to the underlying texture. The radiosity lighting technique is far superior compared to any real-time technique. A Gile[s] plugin that allows exporting Ogre meshes and materials (contributed by Walaber) is available as source in the ogreaddons and as a binary distribution on his homepage (http://walaber.com/).
  • Libnoise (http://libnoise.sourceforge.net): Windows, *nix; Free under LGPL. libnoise is a portable C++ library that is used to generate coherent noise, a type of smoothly-changing noise. libnoise can generate Perlin noise, ridged multifractal noise, and other types of coherent-noise. Coherent noise is often used by graphics programmers to generate natural-looking textures, planetary terrain, and other things.
  • TUT: C++ Unit Test Framework (http://tut-framework.sourceforge.net/): 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!

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值