Un motor de software es un programa de computadora, o parte de un programa de computadora, que sirve como base central para una pieza de software más grande. Este término se utiliza a menudo en el desarrollo de juegos, en el que normalmente se refiere a un motor de gráficos o un motor de juego alrededor del cual se desarrolla el resto de un videojuego. Si bien el término también se puede usar en otras áreas del desarrollo de software, su significado particular puede ser más confuso en esos casos. Un motor de software puede ser desarrollado por una empresa que lo está utilizando, o puede ser desarrollado por otra empresa y luego licenciado a otros desarrolladores.
Cuando se usa en el contexto general del desarrollo de software de computadora, un motor de software generalmente se refiere a los elementos centrales de un programa en particular. Por lo general, esto no incluye características como la interfaz de usuario (UI) y numerosos recursos artísticos agregados al motor central. Para un sistema operativo (SO), por ejemplo, el motor de software puede ser el código fuente que establece la jerarquía de archivos, los métodos de entrada y salida, y cómo el SO se comunica con otro software y hardware. Sin embargo, el contenido exacto de dicho motor puede variar de un programa a otro.
En el desarrollo de juegos de computadora y consola, un motor de software generalmente se refiere al motor gráfico de un juego o al motor general del juego. El motor de gráficos de un juego suele ser el software que se utiliza para representar correctamente los gráficos que ven los jugadores. Esto a menudo utiliza recursos artísticos creados en otros programas, que luego se transfieren al motor gráfico para su uso durante el juego. El uso de un motor de software para los gráficos de un juego puede facilitar el renderizado y también puede simplificar el proceso de asegurar la compatibilidad de software y hardware.
Un motor de software en el diseño de juegos también puede referirse a un motor de juego, que es un programa grande que constituye el núcleo de un juego. Este motor a menudo maneja cómo se maneja la inteligencia artificial (IA) para los personajes del juego, la física en el mundo del juego e incluso proporciona herramientas para la entrada de recursos artísticos y la creación de una interfaz de usuario para un juego. Al usar un motor de juego, los creadores pueden facilitar el desarrollo futuro, especialmente para las secuelas. Este tipo de motor de software se crea a menudo como la primera parte del desarrollo de juegos y se puede otorgar una licencia a otras empresas para permitirles desarrollar más rápida y fácilmente nuevos juegos utilizando el motor básico.