Los motores de juegos de código abierto son marcos que se utilizan para ayudar a crear juegos para computadoras, consolas y otros dispositivos. Proporcionar el motor principal del juego puede ayudar a los programadores a centrarse más en la lógica del juego y menos en aspectos básicos como mostrar gráficos, reproducir sonido o establecer redes. Hay varios motores de juegos de código abierto disponibles, cada uno orientado a crear un tipo específico de juego. Algunos motores permiten vastos mundos tridimensionales (3D), mientras que otros se centran en gráficos bidimensionales (2D) optimizados que se pueden reproducir en dispositivos portátiles o móviles. Cuando los motores se desarrollan como código abierto, el beneficio es que una comunidad entusiasta de jugadores puede ayudar a desarrollar y probar el motor.
Un motor de juego es diferente de un juego completo, porque contiene solo los elementos centrales abstractos del código del programa, como la capacidad de mostrar gráficos. El motor no contiene datos de juego ni lógica de juego. Esto significa que la mayoría de los motores requieren más programación y desarrollo además de lo que se proporciona si se va a crear un juego completo. Hay una pequeña cantidad de motores de juegos de código abierto que permiten un enfoque de desarrollo de apuntar y hacer clic, pero estos son raros y limitados en su poder.
Existen diferentes tipos de motores de juegos de código abierto diseñados para manejar diferentes aspectos de un juego. Algunos están diseñados para manejar todos los aspectos de un juego, desde los gráficos hasta la entrada, mientras que otros están diseñados para manejar ciertas áreas, como el audio. A diferencia de algunos motores de juegos que no son de código abierto, estos siempre incluirán el código fuente, lo que les permitirá integrarse sin problemas en el juego completo. También significa que el código se puede modificar para satisfacer las necesidades del programador.
La mayoría de los motores de juegos de código abierto que están disponibles admiten lenguajes de secuencias de comandos especiales. Estos lenguajes se pueden utilizar para personalizar el rendimiento del motor del juego sin necesidad de volver a compilar el código fuente. Estos lenguajes de secuencias de comandos también se pueden utilizar a veces para definir la lógica del juego, o cómo se juega, sin la necesidad de escribir y compilar archivos de código reales.
Desarrollar un juego con motores de juegos de código abierto puede ayudar a reducir la cantidad de tiempo necesario para codificar funciones que muchos otros ya han hecho, pero también puede generar algunos problemas. Por un lado, cualquiera puede tener acceso al código del motor del juego y podría aprovechar los errores y fallas para obtener una ventaja en el juego. Otro problema podría ser fallas inherentes dentro del código del motor que podrían ser muy difíciles de encontrar porque el código fue escrito por un tercero. Los motores de juegos de código abierto tampoco pueden, en general, usarse para el desarrollo de juegos comerciales, debido a la licencia, por lo que los juegos creados con ellos no se pueden vender.