engine

El Motor del Videojuego – I

Siempre que nos preguntan -¿Y qué motor estáis usando para desarrollar Sticks & Stones? muchas veces antes de que podamos contestar, añaden una segunda pregunta Unity supongo… ¿no?

Pues no.

Sé que en el mercado actual del desarrollo indie, se está usando como primera opción el de-sobras-conocido motor Unity, ya sea por su facilidad de uso, su documentación, su store o por su comunidad…

Pero en nuestro caso hay varios factores, que os iremos explicando más adelante, por los que nos decantamos a usar un motor propio – llamado YokaiEngine – basado en el Framework de Microsoft – XNA.

Sinergia Adobe Flash y YokaiEngine

El leitmotiv de YokaiEngine, es poder usar objetos Adobe Flash como si fueran nativos en C#.

Todo su potencial reside precisamente en este factor, que aunque parezca algo trivial, veremos más adelante que no lo es en absoluto.

En nuestro caso, con Sticks & Stones, usamos Adobe flash en una gran parte del arte, sobre todo para elaborar el diseño de personajes y sus animaciones.

Para entender la mecánica más básica del motor y de cómo incorporar dibujos y animaciones a nuestro proyecto, vamos a verlo mediante un ejemplo visual y sin entrar en la parte técnica (aún).

Lo primero que haremos será crear una animación en Adobe Flash:

En este caso, he recuperado una vieja animación de Sigfrid, un Paladín que hice hace algún tiempo, que me va a servir para explicar todo el proceso.

Para poder incorporar la animación de Sigfrid a de nuesto juego, bastará con:

  1. Añadir el fichero compilado que genera Adobe Flash (.swf) a nuestro proyecto
  2. Crear una clase C# indicándole la ruta de este fichero
  3. Ejecutar el juego

YokaiEngine detectará este fichero Adobe Flash (.swf) como nuevo y realizará de forma automática los siguientes pasos:

  1. Leer todos los objetos incluidos en el .swf
  2. Generar las texturas de todos los objetos
  3. Crear un fichero XML con las instancias, animaciones y metadatos necesarios

export

El resultado una vez ejecutado el juego es el siguiente:

Como podéis ver, incorporar animaciones Flash al juego es realmente sencillo, pero tampoco nada super-awesome. Vamos a indagar más en qué es lo realmente potente de dicho motor…

Las claves del YokaiEngine

A continuación nombraré algunos de los que podríamos considerar puntos fuertes de YokaiEngine:

  • Facilidad para ajustar el arte en cualquier etapa de desarrollo
  • Transformación de objetos en tiempo real
  • Auto-cast de objetos
  • Agrupación de todos los assets y texturas en un único fichero (.swf)

Hoy vamos a desarrollar el primero de ellos.

Facilidad para ajustar el arte en cualquier etapa del desarrollo

Por mucha experiencia que tengamos desarrollando videojuegos, los cambios a nivel de arte siempre van a estar presentes a lo largo de todo el desarrollo. Ya sea que el tamaño de un personaje es desproporcionado una vez colocado en un escenario, la paleta de colores va evolucionando o simplemente hay que realizar ajustes estéticos.

Supongamos que ya tenemos incorporadas en nuestro juego algunas animaciones de Sigfrid: como la de correr, saltar y atacar. Y por alguna razón, tenemos que modificar el aspecto actual del casco. ¿Os imagináis modificar todas y cada una de las animaciones y fotogramas para realizar dicho ajuste? Dependiendo de cómo las hayamos realizado (¿pixel art?), puede ser una tarea titánica, ¿verdad?

Por suerte, en nuestro caso no nos llevará más de unos pocos segundos, y esto es gracias a cómo gestiona los objetos y símbolos Adobe Flash.

ajustesarte_0

Bastará con acceder al elemento casco, realizar cualquier modificación (color, forma, tamaño, …) y guardar los cambios (generando así un nuevo .swf). En nuestro caso hemos ampliado ligeramente el tamaño del casco (aumentando la sensación de cartoon) además de añadir una estrella decorativa. El resultado es el siguiente:

ajustesarte_2

Al ejecutar de nuevo el juego, YokaiEngine detectará estos cambios y volverá a generar de nuevo texturas y el XML con la información (vemos que en realidad sólo ha generado la nueva textura del casco).

exportb

Ya tenemos todas las animaciones de Sigfrid de nuevo incorporadas al juego sin tocar una sóla línea de código:

Poder realizar cualquier ajuste a nivel de arte en cualquier etapa del desarrollo del juego, y además de una forma tan inmediata, es uno de los factores clave del motor.

Además, hemos de tener en cuenta que esta necesidad de ir ajustando el arte, se acentúa más aún si somos noveles en esto de desarrollar videojuegos, ya que muchas veces al inicio de éste, no sabemos cómo será el resultado final. Poder disponer de una herramienta que nos ayude a ajustar esto de forma casi transparente es un win-win.

Otro factor a tener en cuenta en esto, es que al tratarse de dibujo vectorial, se puede escalar, rotar y alterar cualquier textura sin perder nada de calidad (doble win-win).

 

Espero que os haya gustado el artículo. Me gustaría saber vuestra opinión sobre esta elección de usar un motor propio. ¿Creéis que es acertada?

 

Published by

David Flores

A los 11 años me regalaron un Spectrum ZX 48k y ahí es donde empecé mi relación con los videojuegos. He ido pasando por todas las consolas domésticas hasta la actualidad. Me apasionan los videojuegos, tanto como jugador como diseñador. Actualmente estoy inmerso en el desarrollo de un videojuego para BaseTIS.IO

2 thoughts on “El Motor del Videojuego – I”

Leave a Reply

Your email address will not be published. Required fields are marked *