Godot, mi valoración hoy

Hace unos 4 años que valoré seriamente Godot para el desarrollo de juegos. En ese momento pasaba por una excelente racha mediática, aunque era poco más que un buen renderizador 2D. Mi decepción final vino cuando descartaron Vulkan, una decisión que tuvieron que echar atrás y sobre lo cual he hablado en otra ocasión. Decidí que si iba a aprender una herramienta de desarrollo, entonces aprendería la mejor. Y así me metí de lleno en Unity3d.
Hace poco recibí una propuesta para trabajar en un juego 2D de plataformas. Es algo que nunca he hecho y no está de más que lo intente. Sin embargo, luego de contactar a Unity, el otro miembro del grupo me informó que por ser cubanos no podíamos crear un producto comercial con el mismo. Casi de inmediato escogió Godot para sustituirlo.
Entre los motores de juegos libres, Godot es una especie de niño mimado. Tiene sus cosas buenas, que veremos más adelante, pero tiene también una serie de problemas que no han solucionado en los tres años que llevo sin mirarlo. Si alguien quiere tomarse en serio el asunto de desarrollar con herramientas open source, debería valorar también Urho3D y Banshee3D.
A punto de entrar en el 2020, Godot aún adolece de muchos problemas:

  • Un renderizador 3D pésimo, basado en GL ES 2/3. No sé si tenga deferred rendering (no lo dice en ningún lado) pero por suerte sí tiene PBR. El renderizador basado en Vulkan, descartado hace tiempo, recién ahora se está implementando y lo tendremos en la versión 4.0.
  • La parte 3D abarca mucho más que el renderizador, aunque en este caso esa parte que no incluye el renderizado es mínima. Godot tiene muy pocas herramientas y funcionalidades para proyectos 3D. Ni siquiera tiene editor de terreno. Quizás para la 4.0 hayan más cosas.
  • El flujo de trabajo 3D es deficiente. Aún se basa en el formato OBJ para modelos estáticos y Collada para mallas animadas. En la próxima versión 3.2 podremos usar glTF y FBX gracias a su nuevo importador basado en AssImp. Sin embargo, recuerdo que AssImp tenía su propia cuota de problemas hace unos cuatro años, precisamente con archivos FBX y .blend (supuestamente podía importar un archivo de Blender, pero nunca lo hacía).
  • Ni hablar de herramientas adicionales como un secuenciador.
  • El build no parece estar muy optimizado. Un nivel sencillo con un par de imágenes ocupa casi 60 mb. No logré hacer la prueba para Android.

Las ventajas de usar Godot no llegan a opacar esos problemas, pero son significativas:

  • Es un motor muy noble y fácil de usar. Incluso ofrece scripting visual. Su lenguaje script es fácil de aprender y además está muy bien integrado en el motor.
  • Licencia MIT. No hay limitaciones de embargo a tu país ni nada de eso.
  • Si tienes en mente un proyecto 2D, es un excelente motor. Hace años tenía ya funcionalidades como luz y sombras en 2D que Unity recién agrega ahora.
  • Es posible publicar en consolas, a través de un tercero. La documentación te remite a Lone Wolf Technologies, una empresa de uno de los creadores de Godot, que da el servicio de portar tu proyecto a Xbox One y PS4. En ese caso, quizás las leyes de embargo sí apliquen, porque estarás tratando con empresas norteamericanas.
  • Es pequeño y correrá en hardware limitado.
  • Abunda la documentación. Quizás no haya tanto como para Unity, pero recuerden que aquí hay mucho menos funcionalidades que documentar. En todo caso, bastará para arrancar.

Saque usted sus propias conclusiones. Las esperanzas están puestas en la rama 4.0, que no será estable, o al menos beta, hasta dentro de un año. Mientras, hay que tirar con la 3.2 no parece ser muy diferente de la 3.1, y una posible 3.3. Si quieres experimentar, es una buena opción, aunque repito, hay otras cosas por ahí menos divulgadas y que podrían sorprender. Si pretendes hacer un proyecto 3D sencillo, Godot podría servir. Si tu objetivo es un proyecto 2D, o incluso con elementos 3D, que se vea excepcionalmente bien, Godot es la mejor opción. Ya saben, la decisión es suya.  

Comentarios