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.