An Open Graphics Library® (OpenGL®) game engine is a programming library or other collection of software that is intended to facilitate the creation of video games by providing a fully implemented framework that can be built on to create a custom application. The base for any OpenGL® game engine is the interface between higher-level programming logic and the OpenGL® libraries that, in turn, access low-level graphics hardware. Some engines focus primarily on easy access to special graphical features and algorithms by including optimized functions for effects such as blurring, light maps or custom shaders. More commonly, an OpenGL® game engine adds varying levels of functionality through higher-level libraries, scripting languages or even custom development environments. Some of the features of different OpenGL® games engines include user input routines, shadow rendering, a graphical user interface (GUI) framework, network support, physics and advanced timing mechanisms for smooth animations.
When creating games that utilize OpenGL®, whether they are two-dimensional (2D) or three-dimensional (3D), a fair amount of programming code must be written to integrate the mostly static OpenGL® code libraries into a dynamic game environment in which objects change and move and users can interact with the virtual world. A primary purpose of an OpenGL® game engine is to remove the need to rewrite this type of boilerplate code and instead supply a consistent and structured framework to build a game around. OpenGL® contains only functions to display or render graphics to a device, so all game logic needs to be wrapped around that core, including developing a way to integrate objects that move within a scene or that can be added or deleted from a scene. A structure that uses OpenGL® for dynamic graphical objects is generally known as a scene graph and is the basis for many OpenGL® game engine implementations.
Another reason why an OpenGL® game engine might be used by developers is to remove the need to integrate several disparate elements of a game into a single framework, which can take a long time to do properly. User input from a keyboard, GUI elements such as a window to select yes or no options, and even optimizations for certain popular graphics cards can all come included with an OpenGL® game engine, making it unnecessary for developers to sort through hardware specifications to write the code themselves. As a tradeoff, engines that have such complex capabilities are generally very expensive or carry very restrictive licenses for commercial use, though some open source game engines do exist.
The term "OpenGL® game engine" also can refer to a completed computer game that has had most or all of its custom data files removed, leaving only the compiled programming code. This allows a user to create custom graphics, maps and sometimes scripted events that are loaded by the game engine. The game play usually is not modifiable to any large extent in this type of game engine and instead serves as a platform for users to create custom levels and content as opposed to a freestanding original game.