¿Que motor debo usar para mi videojuego? ¿Cual sera el mejor? ¿Como elegir el motor para desarrollar un videojuego ? esas y muchas otras preguntas nos hacemos para elegir un motor para nuestro proyecto, pero ¿que influye para elegir uno? Aquí te lo respondo.

Quizá no tengo mucha experiencia en el desarrollo de videojuegos, pero su desarrollo no es muy diferente al del software y ese es mi ‘elemento’ y dedicando me di a la tarea de investigar el ciclo de vida de los videojuegos y ahora te comparto una lista de lo que debes tomar en cuenta para elegir un motor gráfico.

1. El tipo de juego a desarrollar

¿Que quieres hacer un juego en 2D o 3D? Debes saber que hay una gran variedad de software para trabajar en 2D como Unity por dar un ejemplo, pero primero tienes que definir que ‘dimensión’ deseas trabajar, pero debes tomar en cuenta que requerirás software adicional.

Para el 2D vas a necesitar software de diseño, como Adobe Photoshop, GIMP, Paint o algún software especializado que te asista con el diseño de tus elementos.

El 3D en cambio, requiere de una variedad de software especializado para el modelaje 3D, entre los mas conocidos: Autodesk Maya, 3DS Max, ZBrush, Blender, etc. Pero también vas a necesitar de un programa de texturizado con el cual vas a darle color a tu modelo 3D.

2. Lenguaje de programación

El lenguaje de programación es lo que realmente da vida a tu proyecto, con el darás ordenes a todo objeto de tu juego. Debes tomar esto en consideración ya que acortara la curva de aprendizaje de tu equipo.

Quizá tengas un equipo que tenga experiencia en C# y quieras utilizar Unity para evitares la molestia de aprender otro lenguaje y de esta forma puedan arrancar con la codificación rápidamente.

En caso de que elijas otro software como Unreal Engine 4 el cual utiliza C++ para codificar las funciones del juego, entonces tu equipo deberá familiarizarse con ese lenguaje y entonces tardaran en comenzar a programar y posiblemente tengan algunos errores.

Cuando tienes tiempo puedes darte el lujo de elegir el motor que más te plazca, ya que tu equipo podrá familiarizarse con el lenguaje y las funciones que el motor ofrece.

3. Plataformas objetivo

Esto es importante ¿a que plataformas quieres llegar? Hay motores que no tienen soporte completo para plataformas especiales como Xbox o PlayStation entonces debes meditar un poco mas.

A pesar de ello la mayoría de los motores tienen capacidad para desplegar tu proyecto en cualquier plataforma que quieras, algunos harán de esto lo mas fácil del mundo y otros te torturaran ya que te pedirán que hagas cambios a tu código.

4. Un motor adaptable

El software debe adaptarse a ti y no tu a el, por ello es importante que te tenga las herramientas necesarias para desarrollar tu proyecto y claro, que también te permite crear las tuyas.

Esto cambien permite que puedas usar extensiones de otros, esto te ayudara a reducir el tiempo de desarrollo y añadirá funciones avanzadas.

Un motor debe proveer como mínimo:

  • Un motor de físicas
    • Detecta colisiones
    • Realiza cálculos para simular como tal la física: gravedad, masa, fricción, fuerza, etc.
  • Motor de renderizado
    • Se encarga de mostrar todos tus objetos del juego en pantalla, modelos, imágenes, texturas.
  • Scripting
    • Mediante una API se encarga de que puedas manipular cualquier objeto de tu juego mediante el código.
  • Audio
    • Permite reproducir audio, el formato más común es el .ogg

¿Que motor me conviene?

Tras explicar los puntos más importantes a considerar para el desarrollo de videojuegos es decision tuya y de tu equipo discutir las fortalezas y debilidades de cada motor. Te pongo un ejemplo:

Quiero desarrollar un juego en 2D al estilo de Metal Slug, tengo una buena historia y bocetos de los personajes, tengo experiencia en C# y Java, el juego va a ser móvil y para PC Windows ademas debe permitir el multijugador via LAN, mis opciones son Unity, UE4 o Godot. Ahora que ya esta el escenario vamos a desmenuzar las cosas.

  • Tipo de proyecto: 2D
  • Lenguaje de programación: C# y Java
  • Plataformas: Android y PC Windows.

Ahora veremos si mis opciones de verdad satisfacen mis necesidades.

  • Unity: Funciona para juegos en 2D, tiene soporte nativo para C# y puedo crear plugins en Java para Android, soporta las plataformas objetivo realizando algunos cambios, bastante extensible, lleva activo mucho tiempo y hay mucha documentación y tutoriales.
  • UE4: Funciona para juegos en 2D, no soporta ni C# ni Java, soporta las plataformas objetivo sin cambios es extensible y ademas es extensible y tiene varias herramientas de desarrollo.
  • Godot: Funciona para juegos 2D, tiene soporte para C# pero no puedo usar Java, soporta las plataformas objetivo sin mucho cambio, es adaptable y ademas open-source.

Ahora para mi es fácil elegir Unity como mi software de desarrollo, aunque los tres tienen bastante ventaja, Unity me ahorrara tiempo para la programación y podre dedicar mas tiempo a otras pruebas.

También te puede interesar libros para aprender a programar en Unity.

¿Que mas deberías tomar en cuenta? Cuéntanos el los comentarios que agregarías.