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 arendering 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 ofseveral dozen open source communities. Depending on which review sources you follow, the top 10 most popular game engines can turn upin different rankings, much as the drivers on a NASCAR leader board ofdrivers changes from race to race.
Even so, the prominence of open source among game developers is not asuniversal as one might believe. Especially at some of the mostheavily trafficked online game Web sites, proprietary graphics enginesare more the rule than the exception.
“The gaming world still is largely afraid of open source. The featureset is often behind that of proprietary offerings. Game companiessometimes worry about getting support beyond the community,” ToddNorthcutt, director of GameSpy Technology, told LinuxInsider.
One thing that game developers consider in selecting the source codeis the type of game the players will see. Games that share similarrisk properties will usually not rely on open source.
“One big example of this is … ‘World of Warcraft.’ It has moneyinvolved. Another example is online poker Web sites. Open source isvery well known, sure. But developers of those types of games are notusing open source,” Gary McGraw, CTO of security firm Cigital.com,told LinuxInsider.
In principal, no real reason exists for open source not be used bythese companies. But some of the largest game developers remainconvinced that an open source solution would be less secure.
“You can’t buy an open source security thing and add it on. That wouldnot be able to withstand attacks and cheating. Game operators need toproperly control these aspects,” McGraw said. “When building yoursystem to sell, you have to have confidence in it. Open Source doesn’talways do that.”
Shunning open source game rendering components is a big mistake largegame-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 fornot 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 companyexecutives. They subscribe to the notion that if they build itthemselves, it will be the best game in the industry, she said.
“Gaming engines are like Lego blocks. It’s what you do with them, opensource or otherwise,” McGrattan said. “It takes some companies (US)$3.7million 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 renderingjob, what the game player sees on the computer screen is a closedsource product. The players likely will not know what’s running it, noted McGrattan.
She sees a trend developing in which game developers are slowlyaccepting the idea that game engines are commodities. It’s too costlyto continue in-house development of a proprietary module. Sooner orlater, all companies will recognize the benefits of using open sourcetools to get to market, she said.
“The secret sauce is not what’s in the engine. It is what you do withit,” she stated.
Not Always So?
GameSpy Technology is the technology development division of IGN anddevelops multiplayer gaming applications. GameSpy uses the open sourceSpeex 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. Eventhough the company develops the rest of the game platform, it frequently usesopen source communities for tech support.
Despite that success with open source game components, Northcutt seesserious 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 arewell known. The cutting edge in open source is not easily solving gamerendering problems,” said Northcutt.
LinuxInsider contacted some of the major online game companiesto 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-featuredgame engine which can be used for games, simulations or othergraphical applications. Its modular design integrates other opensource projects such as Open Scene Graph, Open Dynamics Engine,Character Animation Library, and OpenAL. It integrates them into aneasy-to-use application programming interface.
- NeoEngine: NeoEngine is a fullyfeatured open source 3-D game engine released under the General Public Licensewith options of acquiring commercial and support licenses. The engineis multiplatform, featuring OpenGL and DirectX rendering with supportfor Windows, Linux and Mac OS X. It provides functionality for scenemanagement, vertex and pixel shaders, skeletal animation and physics,scripting and a fully integrated tool chain.
- Irrlicht Engine: The IrrlichtEngine is an open source, high-performance real time 3-D engine writtenand usable in C++ and also available for .Net languages. Across-platform design, it uses D3D, OpenGL and its own softwarerenderer. Its features are comparable to those found in commercial 3-Dengines.
- OGRE (Object-Oriented Graphics Rendering Engine): OGRE is a scene-oriented, flexible 3-Dengine written in C++ designed for applications utilizinghardware-accelerated 3-D graphics. The class library abstracts all thedetails of using the underlying system libraries like Direct3D andOpenGL and provides an interface based on world objects and otherintuitive classes.
- Speex: Speex is an open source/free software, patent-free audio compression format designed for speech. The SpeexProject aims to lower the barrier of entry for voice applications byproviding a free alternative to expensive proprietary speech codecs.Speex is well-adapted to Internet applications and provides usefulfeatures that are not present in many other codecs. It is part of theGNU Project and is available under the revised BSD license.
- Bullet: The Bullet 3-D GameMultiphysics Library provides state-of-the-art collision detection,soft body and rigid body dynamics. It is used by many game companiesin AAA titles on Playstation 3, XBox 360, Nintendo Wii and PC. TheLibrary is free for commercial use and open source under the ZLibLicense.
- 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 theVisual3D Framework, a game engine, run-time system, and applicationframework for .Net 2.0 and the XNA Framework, as well as Visual3DArchitect, a Visual Studio 2005-like customizable workspace of visualdesign and development tools.
- Power Render: Power Render is asoftware development kit for games and 3-D graphics. It provides an APIfor developers along with several tools for artists for buildingcontent and previewing models in realtime from Autodesk’s 3-D StudioMax, Alias Wavefront’s Maya, and Newtek’s Lightwave. The new versioncan also preview content using High dynamic range imaging and supportsthe OpenEXR file format.
- Crystal Space: CrystalSpace is an open source 3-D SDK for Unix, Windows and Mac OS X. Itrenders 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-time3-D rendering environment. The current version of the softwaredeveloper kit is 1.1, which is free to download.
- jME (jMonkey Engine): JME is ahigh-performance scene graph-based graphics API. jME was built tofulfill the lack of full featured graphics engines written in Java.Using a abstraction layer, it allows any rendering system to beplugged in. Currently, LWJGL is supported with plans for JOGL supportin the near future. It is open source under the BSD license.