Un motor de juego Open Graphics Library® (OpenGL®) es una biblioteca de programación u otra colección de software que está destinada a facilitar la creación de videojuegos al proporcionar un marco completamente implementado que se puede construir para crear una aplicación personalizada. La base de cualquier motor de juego OpenGL® es la interfaz entre la lógica de programación de nivel superior y las bibliotecas OpenGL® que, a su vez, acceden al hardware de gráficos de bajo nivel. Algunos motores se centran principalmente en un fácil acceso a características y algoritmos gráficos especiales al incluir funciones optimizadas para efectos como desenfoque, mapas de luz o sombreadores personalizados. Más comúnmente, un motor de juego OpenGL® agrega diferentes niveles de funcionalidad a través de bibliotecas de nivel superior, lenguajes de programación o incluso entornos de desarrollo personalizados. Algunas de las características de los diferentes motores de juegos OpenGL® incluyen rutinas de entrada del usuario, renderizado de sombras, un marco de interfaz gráfica de usuario (GUI), soporte de red, física y mecanismos avanzados de sincronización para animaciones fluidas.
Al crear juegos que utilizan OpenGL®, ya sean bidimensionales (2D) o tridimensionales (3D), se debe escribir una buena cantidad de código de programación para integrar las bibliotecas de código OpenGL® en su mayoría estáticas en un entorno de juego dinámico en el que los objetos cambian y se mueven y los usuarios pueden interactuar con el mundo virtual. Un propósito principal de un motor de juego OpenGL® es eliminar la necesidad de reescribir este tipo de código repetitivo y, en su lugar, proporcionar un marco coherente y estructurado para construir un juego. OpenGL® contiene solo funciones para mostrar o renderizar gráficos en un dispositivo, por lo que toda la lógica del juego debe estar envuelta en ese núcleo, incluido el desarrollo de una forma de integrar objetos que se mueven dentro de una escena o que se pueden agregar o eliminar de una escena. Una estructura que utiliza OpenGL® para objetos gráficos dinámicos se conoce generalmente como gráfico de escena y es la base de muchas implementaciones de motores de juegos OpenGL®.
Otra razón por la que los desarrolladores pueden utilizar un motor de juego OpenGL® es para eliminar la necesidad de integrar varios elementos dispares de un juego en un solo marco, lo que puede llevar mucho tiempo hacerlo correctamente. La entrada del usuario desde un teclado, elementos de GUI como una ventana para seleccionar opciones de sí o no, e incluso optimizaciones para ciertas tarjetas gráficas populares pueden venir incluidas con un motor de juego OpenGL®, por lo que no es necesario que los desarrolladores clasifiquen las especificaciones de hardware para escribir. el código en sí. Como compensación, los motores que tienen capacidades tan complejas son generalmente muy costosos o tienen licencias muy restrictivas para uso comercial, aunque existen algunos motores de juegos de código abierto.
El término “motor de juego OpenGL®” también puede referirse a un juego de computadora completo al que se le han eliminado la mayoría o todos sus archivos de datos personalizados, dejando solo el código de programación compilado. Esto permite al usuario crear gráficos personalizados, mapas y, a veces, eventos con guiones que carga el motor del juego. El juego generalmente no se puede modificar en gran medida en este tipo de motor de juego y, en cambio, sirve como una plataforma para que los usuarios creen niveles y contenido personalizados en lugar de un juego original independiente.