The Untapped Open Source Online Gaming Opportunity
Open source software is often an unsung hero in the online gaming universe. Game engines are complex applications with core functionalities provided by numerous modules. These include a rendering engine for 2-D or 3-D graphics and a physics engine or collision detection and response calculator. In addition, game developers have to provide for sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading and a scene graph.
Behind the scenes, open source graphics rendering engines and game development engines power some of the most popular boxed and online games. Open source is not just the power behind the games. It's very likely that any given online game back-end system relies on software developed by the open source Apache project.
A quick keyword search for graphics rendering engines draws a list of several dozen open source communities. Depending on which review sources you follow, the top 10 most popular game engines can turn up in different rankings, much as the drivers on a NASCAR leader board of drivers changes from race to race.
Even so, the prominence of open source among game developers is not as universal as one might believe. Especially at some of the most heavily trafficked online game Web sites, proprietary graphics engines are more the rule than the exception.
"The gaming world still is largely afraid of open source. The feature set is often behind that of proprietary offerings. Game companies sometimes worry about getting support beyond the community," Todd Northcutt, director of GameSpy Technology, told LinuxInsider.
One thing that game developers consider in selecting the source code is the type of game the players will see. Games that share similar risk properties will usually not rely on open source.
"One big example of this is ... 'World of Warcraft.' It has money involved. Another example is online poker Web sites. Open source is very well known, sure. But developers of those types of games are not using open source," Gary McGraw, CTO of security firm Cigital.com, told LinuxInsider.
In principal, no real reason exists for open source not be used by these companies. But some of the largest game developers remain convinced that an open source solution would be less secure.
"You can't buy an open source security thing and add it on. That would not be able to withstand attacks and cheating. Game operators need to properly control these aspects," McGraw said. "When building your system to sell, you have to have confidence in it. Open Source doesn't always do that."
Shunning open source game rendering components is a big mistake large game-making companies make because it causes them to spend millions of dollars in their own research and development for nothing, according to Emma McGrattan, senior vice president for engineering at Ingres.
"Lots of open source gaming engines exist. Shame on the big guns for not using them," she told LinuxInsider. Ingres provides open source information management services to enterprise customers.
Avoiding open source is a typical mentality of large gaming company executives. They subscribe to the notion that if they build it themselves, it will be the best game in the industry, she said.
"Gaming engines are like Lego blocks. It's what you do with them, open source or otherwise," McGrattan said. "It takes some companies (US)$3.7 million to develop their games. That's money down the toilet."
End Game the Same
Whether a game developer uses open or closed source for the rendering job, what the game player sees on the computer screen is a closed source product. The players likely will not know what's running it, noted McGrattan.
She sees a trend developing in which game developers are slowly accepting the idea that game engines are commodities. It's too costly to continue in-house development of a proprietary module. Sooner or later, all companies will recognize the benefits of using open source tools to get to market, she said.
"The secret sauce is not what's in the engine. It is what you do with it," she stated.
Not Always So?
GameSpy Technology is the technology development division of IGN and develops multiplayer gaming applications. GameSpy uses the open source Speex Voice codec for the voice overlay in its game consoles, according to Northcutt.
GameSpy also uses the open source physics solution Bullet Physics to calculate collisions. Even though the company develops the rest of the game platform, it frequently uses open source communities for tech support.
Despite that success with open source game components, Northcutt sees serious shortcomings in relying on other open source game components, such as graphics engines, for game development.
"Open source mostly has been used to solve small problems that are well known. The cutting edge in open source is not easily solving game rendering problems," said Northcutt.
LinuxInsider contacted some of the major online game companies to find out what runs their games; however, attempts to generate a list of who uses open source modules met with polite refusals.
Open source game graphics options, however, are not so secretive. Here is a list of the some well-known and often-used open source gaming engines:
- Delta3D: Delta3D is a fully-featured game engine which can be used for games, simulations or other graphical applications. Its modular design integrates other open source projects such as Open Scene Graph, Open Dynamics Engine, Character Animation Library, and OpenAL. It integrates them into an easy-to-use application programming interface.
- NeoEngine: NeoEngine is a fully featured open source 3-D game engine released under the General Public License with options of acquiring commercial and support licenses. The engine is multiplatform, featuring OpenGL and DirectX rendering with support for Windows, Linux and Mac OS X. It provides functionality for scene management, vertex and pixel shaders, skeletal animation and physics, scripting and a fully integrated tool chain.
- Irrlicht Engine: The Irrlicht Engine is an open source, high-performance real time 3-D engine written and usable in C++ and also available for .Net languages. A cross-platform design, it uses D3D, OpenGL and its own software renderer. Its features are comparable to those found in commercial 3-D engines.
- OGRE (Object-Oriented Graphics Rendering Engine): OGRE is a scene-oriented, flexible 3-D engine written in C++ designed for applications utilizing hardware-accelerated 3-D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.
- Speex: Speex is an open source/free software, patent-free audio compression format designed for speech. The Speex Project aims to lower the barrier of entry for voice applications by providing a free alternative to expensive proprietary speech codecs. Speex is well-adapted to Internet applications and provides useful features that are not present in many other codecs. It is part of the GNU Project and is available under the revised BSD license.
- Bullet: The Bullet 3-D Game Multiphysics Library provides state-of-the-art collision detection, soft body and rigid body dynamics. It is used by many game companies in AAA titles on Playstation 3, XBox 360, Nintendo Wii and PC. The Library is free for commercial use and open source under the ZLib License.
- RealmForge GDK Visual3D.NET: RealmForge is the .Net 3-D game engine predecessor to Visual3D.NET, which is now being developed instead. Visual3D.NET consists of the Visual3D Framework, a game engine, run-time system, and application framework for .Net 2.0 and the XNA Framework, as well as Visual3D Architect, a Visual Studio 2005-like customizable workspace of visual design and development tools.
- Power Render: Power Render is a software development kit for games and 3-D graphics. It provides an API for developers along with several tools for artists for building content and previewing models in realtime from Autodesk's 3-D Studio Max, Alias Wavefront's Maya, and Newtek's Lightwave. The new version can also preview content using High dynamic range imaging and supports the OpenEXR file format.
- Crystal Space: Crystal Space is an open source 3-D SDK for Unix, Windows and Mac OS X. It renders with OpenGL or software and features curved surfaces, volumetric fog, dynamic colored lighting, terrain engine, LOD, procedural textures, portals and more.
- Genesis3D: Genesis3D is a real-time 3-D rendering environment. The current version of the software developer kit is 1.1, which is free to download.
- jME (jMonkey Engine): JME is a high-performance scene graph-based graphics API. jME was built to fulfill the lack of full featured graphics engines written in Java. Using a abstraction layer, it allows any rendering system to be plugged in. Currently, LWJGL is supported with plans for JOGL support in the near future. It is open source under the BSD license.