Motor gráfico… ¿y eso qué es?

Uno de los aspectos más importantes a la hora de desarrollar un videojuego es la elección del motor gráfico que se va a utilizar. El motor gráfico es la base sobre la que se construye todo el videojuego. El nombre de “motor” no es aleatorio, pues podríamos verlo como el conjunto de piezas que forman el motor de un coche, que es lo que hace que funcione. Luego ya depende de cada cual ponerle una carrocería más o menos bonita y decidir cómo se va a comportar el coche, siempre sujeto a los límites impuestos por el motor. Poniéndonos técnicos tras esta simplista comparación, un motor gráfico sería “una serie de rutinas de programación que permiten el diseño, la creación y la representación de un videojuego“.

Su función básica es renderizar los gráficos (mostrarlos en pantalla), aunque también puede encargarse de simular la física, calcular la iluminación de la escena, gestionar la memoria, las animaciones, la inteligencia artificial, la comunicación en red… Además los motores gráficos suelen incluir una serie de herramientas que simplifican el desarrollo y la comunicación con el propio motor como pueden ser editores de niveles, herramientas de importación de modelos y animaciones, lenguajes de scripting para definir comportamientos, etc. Como se puede deducir, es un componente imprescindible para crear un videojuego.

A la hora de plantearse el desarrollo de un videojuego (o por extensión cualquier aplicación gráfica) existen 2 opciones con respecto al motor gráfico. La primera opción es crear un motor propio partiendo de cero. Hoy en día, si se desea que los resultados tengan cierta complejidad, esta opción no es realista a no ser que se forme parte de un gran equipo de desarrollo o los objetivos no sean muy ambiciosos. La creación de un motor gráfico conlleva una cantidad de tiempo y trabajo enorme, que no todos los estudios de desarrollo pueden afrontar.

Por ello existe la segunda opción, que consiste en utilizar motores gráficos ya existentes. Hay una gran variedad de motores en el mercado, tanto gratuitos como de pago, que cubren las necesidades básicas de la mayoría de desarrollos actuales. Evidentemente utilizar un motor ajeno implica aprender a utilizarlo, pero el tiempo necesario para ello será mucho menor comparado con crear un motor propio. Muchos de los motores disponibles llevan años en desarrollo y continúan siendo actualizados con nuevas técnicas y herramientas, lo que nos permite acceder a un producto muy probado y técnicamente muy puntero. Esta opción es la más extendida en el mercado, debido sobre todo a los altos costes de producción de un motor gráfico de las características necesarias para los juegos actuales, haciendo que muchos juegos acaben utilizando el mismo motor gráfico. Es por esto que a veces algunos se parecen estéticamente o dan una apariencia visual similar, por cómo trata el motor la iluminación o los efectos de postprocesado que puede aplicar, etc.

Podríamos hablar de una tercera opción, o una subopción dentro de la segunda, que consistiría en partir de un motor gráfico ajeno y modificarlo y ampliarlo para que cumpla con nuestros requisitos específicos. También podríamos combinar diferentes motores haciendo que cada uno se encargue de los aspectos en los que más destaca (Existen motores específicos para física, inteligencia artificial, etc).

Parece lógico que para mi caso, que será el desarrollo de un videojuego en unos pocos meses por un equipo formado por 1 persona :lol:, la opción más indicada sea la segunda. Esta elección nos lleva a otra: ¿Qué motor gráfico elegir?

Banner Blog

Anuncios

10 pensamientos en “Motor gráfico… ¿y eso qué es?

  1. Pingback: Escogiendo motor gráfico | El Blog de Marcos

  2. Hola….por curiosidad….cuando se escogen varios motores complementarios (por ejemplo uno gráfico y uno de fisica) ¿qué mecanismo presentan o han de facilitar estos motores para que puedan integrarse y conformar conjuntamente el “nuevo” motor?

    • Buena pregunta… al final un motor no deja de ser un conjunto de funciones programadas en cierto lenguaje. Si obtenemos los motores como una serie de librerías, estas deberán incluir un API con la que poder acceder a sus funcionalidades desde nuestro código, posibilitando así la integración.

    • Hola cecilia. Depende del motor es posible que cuente con una base de datos, pero no es lo más común. Normalmente no hace falta, pero en juegos como los MMORPG que tienen miles de usuarios, sí puede ser necesario que el motor se conecte a una base de datos para gestionar los jugadores.

  3. Hey, Marcos!

    Muchas felicidades por haber terminado el PFM y el máster! 😉

    Sólo quería dejar un pequeño comentario / crítica constructiva: lo que aquí describes es un motor de juegos o motor en general, en el contexto de los videojuegos, se entiende (Engine, Game Engine). Un motor gráfico se encarga sólo de los gráficos (p. ej. OGRE, aunque tiene algo de animación también creo).

    Los motores de juegos están formados por otros motores o componentes, como muy bien explicas: gráficos, animación, AI, física, sonido, etc…

    Unreal Engine, CryEngine y Unity 3D son todos motores de juegos: puedes crear un juego entero sólo con ellos. En cambio, para crear un juego con OGRE, deberías crearte tu motor añadiendo librerías/motores para el resto de componentes: Havok Physics/ODE/Bullet para físicas, fmod/OpenAL para sonido, etc. Si miras el portfolio de productos de Havok por ejemplo, verás que tienen diferente middleware para éstos componentes: física, animación, AI, simulación (ropa, destrucción, etc.. que complementa al de físicas).

    Ale, a seguir bien! 😉

    • Hola Marc, gracias por visitar mi blog! 😀

      Tienes toda la razón, cuando escribí este artículo caí en esta confusión bastante común por otro lado xD
      Quizás sea momento de revisarlo jeje

      Un saludo!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s