Mac OS X many (incl. C/C++, C#, Java) requires separate extension for 3D rendering context. Open Source. FLTK. Windows, Linux,. Mac OS X many (incl. Lua,.
No More Reinventing the Virtual Wheel: Middleware for Computer Games and Interactive Computer Graphics Eike Falk Anderson and Christopher E. Peters Interactive Worlds Applied Research Group, Coventry University, United Kingdom
The lists below present a partial survey of Open Source and easily accessible middleware available for interactive graphics and games that we have found to be particularly useful for games and graphics education.
1. Graphics Middleware 1.1. Rendering Context GLUT GLFW SDL
platform many (incl. Linux, Windows) Windows, Linux, Mac OS X, FreeBSD many (incl. Linux, Windows)
bindings C/C++, Fortran, ADA C/C++, D, Delphi, Lua, Visual Basic, MASM32 many (incl. C/C++, C#, Java)
restrictions -
licence Free
-
Open Source
-
Open Source / Other
platform Windows, Linux, Mac OS X
bindings many (incl. C/C++, C#, Java)
licence Open Source
Windows, Linux, Mac OS X Windows, Linux, Mac OS X many (incl. Linux, Windows)
many (incl. Lua, C/C++, Python) many (incl. C/C++, Python) many (incl. C/C++, C#, Java)
restrictions requires separate extension for 3D rendering context -
Open Source
-
Open Source / Other
restrictions requires separate input library OpenGL only
licence Open Source (LGPL / MIT) Open Source
bindings C/C++, Delphi, Visual Basic C, C++, C#
restrictions -
licence Open Source
-
Open Source
many (incl. C, C++, C#, Java)
-
Open Source
1.2. Graphical User Interfaces 1.2.1. Native GUIs GTK+ FLTK wxWidgets QT
Open Source
1.2.2. In-Application GUIs CEGUI GiGi
platform Windows, Linux, Mac OS Windows, Linux
bindings C/C++, C# C/C++
1.3. Image Loading DevIL FreeImage ImageMagick
platform Windows, Linux, Mac OS X Windows, Linux, Mac OS X Windows, Linux, Mac OS X
©2010. This work is licensed under the creative commons attribution 3.0 Unported License. creativecommons.org
1
1.4. 3D Model Loader restrictions -
licence Open Source
bindings C/C++, Java, Lua, Python C/C++
restrictions -
licence Open Source
-
Open Source / Other
bindings C/C++, Java, Python, C# C/C++, C#, D, Lua, Python
restrictions -
licence Open Source / Other (LGPL/MIT) Open Source
platform many (incl. Linux, Windows, Mac OS X) Windows, Linux, Mac OS X, iPhone many (incl. Linux, Windows) Windows
bindings C/C++
restrictions -
licence Open Source (BSD/LGPL)
C/C++
-
Proprietary
C/C++
-
Open Source (ZLib) Free (noncommercial use) / Other
platform many (incl. Linux, Windows)
bindings C/C++
restrictions -
BASS
Windows, Linux, Mac OS X, iPhone
-
OpenAL
many (incl. Linux, Windows)
C/C++, Delphi, Visual Basic, C#, MASM32, Java C/C++
requires separate audio file loader
licence Free (noncommercial use) / Other Free (noncommercial use) / Other Open Source / Other
bindings C++
restrictions -
licence Open Source
many (incl. C/C++, Java)
-
Open Source
AssImp
platform Windows, Linux
bindings C/C++, D, BLITZMAX, others planned
1.5. High-Level Graphics and Visualisation 1.5.1. Scene Graphs OSG Visualization Library
platform many (incl. Linux, Windows) Windows, Linux, Mac OS X
1.5.2. Game Rendering Engines OGRE Horde3D
platform Windows, Linux, Mac OS X Windows, Linux, Mac OS X
requires OpenGL 2 or better
2. Games Specific Middleware 2.1. Physics ODE Newton Game Dynamics Bullet Havok
C/C++
2.2. Sound FMOD
2.3. Scripting TinyXML Lua
platform many (incl. Linux, Windows) many (incl. Linux, Windows)
©2010. This work is licensed under the creative commons attribution 3.0 Unported License. creativecommons.org
2
Python
many (incl. Linux, Windows)
many (incl. C/C++, Java)
-
Open Source
RakNet
platform Windows, Linux, Mac OS X, iPhone
bindings C/C++
restrictions -
ENet
Windows, Linux
C/C++
-
licence Free (noncommercial use) / Other Open Source
2.4. Networking
©2010. This work is licensed under the creative commons attribution 3.0 Unported License. creativecommons.org
3