Motor de videojuego
Un motor de videojuego (en inglés game engine) es un framework que proporciona herramientas para la creación de videojuegos.[1][2]

Un motor de videojuego suele dotar al videojuego de un motor gráfico para renderizar gráficos 2D y 3D, un motor físico que simule las leyes de la física y detección de colisiones, y herramientas para poder crear las animaciones, scripts, sonidos, inteligencia artificial, redes, gestión de memoria, y demás sistemas del videojuego.[3]

Los motores de videojuegos proporcionan herramientas de desarrollo, a menudo en un entorno de desarrollo integrado que permiten crear videojuegos como es el caso de Godot, Unreal, o Unity.[4] Otros motores de videojuego no tienen interfaz gráfica de usuario y ofrecen herramientas mas elementales para la creación de videojuegos, como es el caso de Raylib, Pygame, o Löve.[5]
Los motores de videojuego también se utilizan para crear otros tipos de aplicaciones interactivas, como es el caso de los juegos serios,[6] visualizaciones arquitectónicas, videojuegos educativos,[7] simuladores,[8] herramientas de modelado 3D, entre otros.
Historia
editarAntes de que existieran los motores de videojuegos, estos eran típicamente desarrollados como entidades singulares (no había separación de áreas, como la gráfica y la física): un videojuego para el Atari 2600, por ejemplo, tenía que ser planeado desde cero, manteniendo el código más simple posible y manipulando píxel por píxel, para hacer un uso optimizado del hardware, debido a sus limitaciones.[9][10]
Existen antecedentes de softwares de los años 80 que también se los consideran como motores de videojuego, tales como Sierra's AGI y SCI Systems, LucasArts 'SCUMM y Freescape Engine.[11] Sin embargo, a diferencia de la mayoría de los motores de videojuego modernos, estos nunca fueron usados por desarrolladores de tercera, con excepción de SCUMM System que fue licenciado y utilizado para Humongous Entertainment.[cita requerida] El primer motor de videojuego en 3D que se utilizó para crear videojuegos de computadora fue el Freescape Engine,[12] desarrollado por Incentive Software en 1986, utilizado para crear juegos de disparos en primera persona a partir de 1987.[11]
No fue sino hasta la década de los noventa cuando se extendió el término motor de videojuegos dentro del contexto de los videojuegos de disparos en primera persona.[2] La gran popularidad que alcanzaron los videojuegos Wolfenstein 3D, Doom y Quake[13] se debe principalmente a que, en lugar de crear un videojuego desde cero, se licenciaron los núcleos del mismo para utilizarlos como base y crear sus propios motores de videojuego. Al madurar esta tecnología, los motores de videojuego dejaron de restringirse al mero desarrollo de videojuegos. Se comenzaron, de hecho, a implementar en otras áreas, como entrenamiento profesional, uso médico y simulaciones militares.[14]
A pesar de que ya se habían creado videojuegos mucho antes de la creación de una API como DirectX y OpenGL, su creación impulsó la evolución de las tecnologías usadas en videojuegos y ayudó a desarrollar ese mercado.[15] La primera versión de DirectX fue lanzada el 30 de septiembre de 1995 bajo el nombre de Windows Games SDK. Fue el componente de Win32 API quien reemplazó a DCI[16] y WinG de Windows 3.1. Después de ser creado, DirectX ha estado presente en todas las versiones de Microsoft Windows, que se inician con Windows 95, incorporando contenido multimedia de alto rendimiento. Eisler escribió en su blog sobre la odisea de construir DirectX 1 hasta su quinta versión.[17] A pesar de que OpenGL se creó primero (enero de 1992), DirectX tuvo (y aún tiene) más aceptación en el área de desarrollo de videojuegos.[18]
Durante mucho tiempo, las compañías han hecho sus propios motores de videojuego.[13] Pero con el paso del tiempo, el costo para su creación fue aumentando y, por ese motivo, varias compañías comenzaron a especializarse exclusivamente en construir motores de videojuego, o recursos para los mismos, y así poder venderlos a otras compañías. La razón es porque se requiere mucho tiempo y dinero para que una compañía, además de producir su propio motor de videojuego, tenga que construir posteriormente un videojuego propio.
Los motores de videojuego modernos son una de las aplicaciones más complejas que existen actualmente.[19][12] Su continua evolución ha creado una fuerte separación entre algunas de sus áreas fundamentales, como la renderización, el scripting, los conceptos artísticos y el diseño de niveles; sin embargo, el aspecto que sí tienen en común hoy en día, es el de tener artistas como programadores.[20] Como la mayoría de los videojuegos actuales están cada vez más limitados al poder de la GPU y PPU, las pérdidas de rendimiento en lenguajes de programación de alto nivel, como C#, Java y Python ya no son válidas, mientras que las ganancias de productividad ofrecidas por estos lenguajes trabajan en beneficio de quienes desarrollan motores de videojuegos.[21][22]
Componentes principales
editarLos componentes que posee un motor de videojuego en la actualidad tienen una gran variedad de características muy diferentes entre sí.
Programa de juego principal
editarLa lógica del videojuego debe ser implementada a través de diversos algoritmos.[23][12]
Renderización
editarLa renderización es el proceso en el cual se generan los gráficos 3D por computadora a fin de mostrar en pantalla el aspecto visual del videojuego.[19] Genera gráficos en 3D por varios métodos (como la rasterización gráfica, el trazado de rayos, la partición binaria del espacio, entre otros) y se ocupa de mostrar escenarios, modelos, animaciones, texturas, sombras, iluminaciones y materiales.[24]
La mayoría de las veces se usa una API gráfica para el renderizado, como Direct3D, OpenGL o Vulkan,[19] que proporcionan una abstracción del software en la GPU.
Polígonos
editarLos motores de videojuegos usan mallas poligonales para mostrar objetos tridimensionales. A mayor cantidad de vértices tengan esos polígonos mayor será el detalle del objeto, pero también será mas complejo para la computadora mostrarlo.
Por ello existen técnicas como el nivel de detalle que consiste en ir usando polígonos con mayor cantidad de vértices para los objetos cercanos y con menos vértices para los objetos lejanos, y la distancia de dibujado que consiste en dejar de mostrar objetos cuando están tan lejos que el jugador no pueda apreciarlos y así reducir la cantidad de polígonos la computadora debe mostrar.
Imagen | |||||
---|---|---|---|---|---|
Vértices | 5500 | 2880 | 1580 | 670 | 140 |
Audio
editarHoy en día los motores de videojuego soportan muchos formatos de sonido, como WAV u OGG. En algunas casos, los motores de videojuego pueden exigir configuraciones exactas, aunque el método más conocido es la administración de audio mediante el bucles de música, o bien modificar el tono cuando se trata de voces o efectos de sonido.
Los componentes en relación con el audio se encargan de manipular algoritmos que tienen que ver con la carga, modificación y salida del audio a través del sistema de altavoces del usuario.[1] Como mínimo, debe poder cargar, descomprimir y reproducir archivos de audio.[1] Los componentes de audio más avanzados pueden calcular y producir cosas tales como efectos Doppler, ecos, ajustes de amplitud y tono, entre otros. Las API de abstracción, como OpenAL, SDL Audio o DirectSound permiten manipular fácilmente estos fenómenos.
Motor físico
editarEl motor físico es el software responsable de simular ciertos sistemas físicos del motor de videojuego,[1] como las colisiones, la gravedad, la masa, la fricción, o la fuerza.[1][25]
Inteligencia artificial
editarLa inteligencia artificial es quien provee de estímulo al videojuego. Su elaboración es crítica a la hora de lograr un sistema de juego pulido y que entretenga. Puede tornarse muy compleja[25] y es necesario tener en cuenta ciertas variables, tales como crear comportamientos programados, delimitar su visión del mundo tridimensional, su interacción en él, la toma de decisiones y con ello lograr una consistencia lógica y coherente en la que el jugador debe responder de una manera esperada.
Scripting
editarProcedimiento que se utilliza normalmente en situaciones donde es necesario explicar algo de manera controlada.[1] Actualmente se las utiliza a fin de representar la historia que tendrá el videojuego, permitiéndole al desarrollador tomar el control de la escena y manipularla,[25] tales como colocar objetos o añadir eventos que el jugador no controla.
Abstracción de hardware
editarLos motores de videojuegos que proporcionan abstracción de hardware[26][27][28] le permiten a un programador desarrollar videojuegos sin la necesidad de conocer la arquitectura del hardware de la plataforma donde va a trabajar. Por este motivo, muchos motores se desarrollan a partir de una API existente, como DirectX, OpenGL Vulkan, OpenAL o SDL.[25] La abstracción de hardware también es esencial para el desarrollo de motores con características multiplataforma.
Antes de la aceleración por hardware en los gráficos 3D se utilizaba la renderización por software;[29][30] el cual se sigue utilizando en ciertas herramientas de modelado y renderizadores de imágenes, donde es prioridad la calidad gráfica o cuando el hardware no es compatible con cierta tecnología, como los sombreadores.
Véase también
editarReferencias
editar- ↑ a b c d e f «¿Qué es un motor de videojuegos? | Observatorio del Gabinete de Tele-Educación». Consultado el 6 de diciembre de 2018.
- ↑ a b «Motor gráfico - EcuRed». www.ecured.cu. Consultado el 8 de diciembre de 2018.
- ↑ FayerWayer. «¿Qué es un Engine para videojuegos?». FayerWayer (en inglés estadounidense). Consultado el 8 de diciembre de 2018.
- ↑ Andrade, António (10-11-2015). «Game engines: a survey». European Alliance for Innovation (en inglés). Consultado el 08-06-2025.
- ↑ Mike (5 de octubre de 2023). «The Best Game Development Frameworks». GameFromScratch.com (en inglés estadounidense). Consultado el 8 de junio de 2025.
- ↑ «Games and Intelligent Animation». cs.gmu.edu (en inglés estadounidense). Archivado desde el original el 25 de enero de 2025. Consultado el 22 de junio de 2025.
- ↑ «Los juegos serios y su potencial como dispositivos educativos - EDUforics». EDUforics. 24 de abril de 2016. Consultado el 1 de diciembre de 2018.
- ↑ Instituto Tecnológico de Aragón (29 de diciembre). «Análisis: Motores gráficos y su aplicación en la industria» (PDF). Gobierno de España - Ministerio de Economía y Competitividad. Archivado desde el original el 22 de diciembre de 2018. Consultado el 1 de diciembre de 2018.
- ↑ Gonzalo. «Sistemas obsoletos - Programación de ATARI 2600». web.atari.org. Consultado el 2018-12-05T03:43:21Z.
- ↑ «2600 - PROGRAMANDO JUEGOS SIN RECURSOS». Consultado el 2018-12-05T03:44:52Z.
- ↑ a b «Freescape». Universal Videogame List. Consultado el 1 de diciembre de 2018.
- ↑ a b c «¿Qué es un motor gráfico 3D?». Softonic. Consultado el 8 de diciembre de 2018.
- ↑ a b Team, Weblogs Branded Content (11 de mayo de 2018). «Así se crearon los principales motores gráficos de la historia del videojuego». Vidaextra. Consultado el 8 de diciembre de 2018.
- ↑ «Video games starting to get serious». ww2.gazette.net. Archivado desde el original el 17 de agosto de 2011. Consultado el 6 de diciembre de 2018.
- ↑ «Direct3D». pctechguide.com (en inglés estadounidense). 23 de septiembre de 2011. Consultado el 6 de diciembre de 2018.
- ↑ stason.org, Stas Bekman: stas (at). «54 What is DCI?». stason.org. Consultado el 6 de diciembre de 2018.
- ↑ «DirectX Then and Now (Part 1) | Craig's Musings». Consultado el 6 de diciembre de 2018.
- ↑ «OpenGL 3 & DirectX 11: The War Is Over». Tom's Hardware (en inglés). 16 de septiembre de 2008. Consultado el 6 de diciembre de 2018.
- ↑ a b c «Qué son los motores gráficos y cuáles son los más populares». Blogthinkbig.com. 1 de abril de 2015. Consultado el 8 de diciembre de 2018.
- ↑ «Index of /~id111x/c05/slides». web.cs.wpi.edu. Consultado el 6 de diciembre de 2018.
- ↑ «C# vs C/C++ Performance - CodeProject». www.codeproject.com. Consultado el 6 de diciembre de 2018.
- ↑ «Supergiant Games - Bastion FAQ». www.supergiantgames.com. Consultado el 6 de diciembre de 2018.
- ↑ «Motores para videojuegos». expertojava.ua.es. Consultado el 8 de diciembre de 2018.
- ↑ Santos, Manuel (6 de mayo de 2018). «Motores gráficos: qué son y por qué son tan útiles». HardZone. Consultado el 8 de diciembre de 2018.
- ↑ a b c d Ruelas, Uriel. «¿Qué es un motor de videojuegos (game engine)?». Consultado el 8 de diciembre de 2018.
- ↑ U, Lic. Daniel J. Chávez. Imagen Independiente de Hardware (IIH). Daniel J. Chávez U. Consultado el 1 de diciembre de 2018.
- ↑ serrotho. «Las frase de hoy: Capa de Abstracción...». Consultado el 1 de diciembre de 2018.
- ↑ Valdivia, Christian Paredes (12 de enero de 2010). «Linux: La capa de abstracción de hardware o HAL». Linux. Consultado el 1 de diciembre de 2018.
- ↑ «4 tecnologías que cambiaron los videojuegos». Omicrono. 11 de julio de 2016. Consultado el 1 de diciembre de 2018.
- ↑ «Aportaciones de los videojuegos a la tecnología». Blogthinkbig.com. 18 de agosto de 2013. Consultado el 1 de diciembre de 2018.