¿Qué es un motor de videojuegos (game engine)?

Publicado por

La industria de los videojuegos ha crecido exponencialmente durante los últimos años. Los ingresos que esta genera han llegado a superar a algunas grandes producciones de Hollywood o simplemente han rivalizado con ellas. Al ser una industria en crecimiento, cada vez más personas buscan especializarse en ella, ante esas personas se abren horizontes nuevos de terminologías y herramientas desconocidas que son esenciales en dicha industria.

Si te interesan los videojuegos, seguramente alguna vez has escuchado hablar sobre los motores de videojuegos (game engines), pero si aún no tienes claro qué son o para qué sirven, en esta entrada lo entenderás.

Tu enfoque es el juego

Un motor de videojuegos es un framework o un conjunto de herramientas que ayudan a agilizar el proceso de desarrollo de un videojuego. Los motores proveen herramientas al programador, que le permiten dedicar menos tiempo a aspectos poco importantes para la idea general del videojuego, pero que son de suma importancia para la experiencia del usuario final, es decir, con ayuda de los motores, los programadores pueden enfocarse en desarrollar buenos juegos sin perder tiempo en otras tareas.

Entre las herramientas de los motores de videojuegos podemos distinguir algunas de suma importancia como: motor de renderizado, física de videojuegos y detección de colisiones, scripting, motor de sonidos, inteligencia artificial y administradores de memoria.

Motor de renderizado

Es el encargado de mostrar las imágenes 2D o 3D en pantalla, así como de calcular algunos aspectos como los polígonos, la iluminación, difuminado, texturas, entre otros. Es muy común que un motor de renderizado esté implementado a nivel de API como DirectX u OpenGL puesto que estas proveen de abstracciones de la GPU y acceso a algunos componentes de hardware independientemente de la plataforma que se utilice.

Física de videojuegos y detección de colisiones

Este motor es el que permite aplicar aproximaciones físicas a los videojuegos para que luzcan más naturales y sean más ergonómicos para el jugador. En otras palabras, es el encargado de realizar los cálculos necesarios para que un objeto simule tener atributos físicos como peso, volumen, estado físico, gravedad etc. Algunos también se encargan de detectar colisiones entre objetos en el espacio del videojuego para simular las respuestas ante el estímulo y brindar al programador la opción de reaccionar a las colisiones como lo desee (ejemplo: si una bala colisiona contra el jugador, la bala desaparecerá y el jugador perderá un corazón de salud).

Scripting

Los motores de videojuegos también deben permitir al programador crear sus propios scripts porque es muy común que muchas funcionalidades deseadas no estén previamente implementadas en el motor y sea necesario añadirlas por medio de scripts o, a veces, el programador simplemente desea ajustar el comportamiento de algunas configuraciones por defecto. Esta herramienta diversifica las posibilidades de desarrollo.

Motor de sonidos

Casi tan importante como los gráficos, son los sonidos y la banda sonora de un videojuego. El motor de sonidos es el encargado de cargar pistas, modificar su tasa de bits, quitarlas de reproducción, sincronizarlas etc.

Inteligencia artificial

Casi todos los videojuegos de la actualidad hacen uso de inteligencia artificial (generalmente para personajes o enemigos). Una buena inteligencia artificial es la que separa a un juego fácil y aburrido de uno entretenido y desafiante. Generalmente la implementación de la inteligencia artificial en muchos videojuegos se queda un poco corta porque la limitan a pequeños árboles de comportamiento y decisiones, pero la IA puede ser tan compleja como el programador lo desee aunque una mejor IA requiere dedicar más tiempo a su desarrollo.

Administrador de memoria

Los enemigos, paisajes, personajes, edificios y en general, todos los componentes de un videojuego consumen recursos. La tarea del administrador de memoria es saber cuándo liberar algunas celdas porque los enemigos que las ocupaban dejaron de existir, el paisaje ya no necesita estar cargado en memoria, o en casos extremos, porque el procesador se comienza a calentar. Este componente no es muy necesario en juegos pequeños, pero con juegos AAA que muestran miles de polígonos y partículas en pantalla en un mismo frame, este componente es quizás el principal a considerar para lograr un buen producto final.

Motores de código abierto frente a privados

Si alguna vez buscaste algún motor de videojuegos, posiblemente notaste que los más importantes son privados y pertenecen a grandes empresas como Epic. Aunque existen muchos motores de código abierto, la realidad es que muy pocos son tan buenos como para competir contra los motores de licencia privada. Existen muy buenas razones para que esto suceda, entre ellas tenemos:

  • La programación de motores de videojuegos requiere de una inversión muy fuerte ya que son muy complejos, es por eso que es difícil ver uno de código abierto que haya sido desarrollado por la comunidad.
  • La industria de videojuegos tiene pocos años de haber despegado, aún es muy pronto para que un motor desarrollado por la comunidad pueda competir contra los de renombre.
  • Generalmente quienes los desarrollan son empresas grandes que necesitan algunas funcionalidades específicas para sus futuros títulos que ningún otro motor del mercado les brinda. Esto se traduce en motores que permanecen de uso privado dentro de dichas empresas, es decir, no se lanzan a la venta.
  • Quienes los desarrollan lo hacen para generar ganancias por licencias, no es probable que lancen su código fuente para el público puesto que perderían una buena fuente de ingresos.

Estas fueron algunas de las características, herramientas y componentes más importantes que un motor de videojuegos necesita tener para ser considerado como tal, aunque cabe señalar que existen algunas más que también son muy importantes como los motores de animaciones, cinemáticas, procesamiento paralelo, entre otras.

A continuación te señalo algunos de los motores más importantes de la industria, si te interesa informarte puedes consultar los enlaces (algunos de esos motores son muy importantes y conocidos pero son de uso privado para las empresas desarrolladoras):

One comment

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *