Ciertamente también tu te has planteado que Engine utilizar para tu videojuego, y habrás pensado en Godot. Aquí te dejamos un hilo interesante con algunas Razones para utilizar Godot Engine en tu próximo videojuego por @GordotForrot.
Hilo Original Razones para utilizar Godot Engine en tu próximo videojuego
Hilo Editado Razones para utilizar Godot Engine en tu próximo videojuego
Bueno, estoy aburrido y quiero compartir un par de pensamientos sobre #GodotEngine (desde mi perspectiva como programador frontend) así que sale un hilo 🧵 sobre las razones por las cuales uso este engine:
#gamedev
Desde que era chico quería hacer juegos, de hecho arranqué a los 12/13 años con la versión original de GameMaker.
Tuve idas y vueltas desde entonces, y llegué a sacar algunos juegos en varias gamejams, sobre todo en los últimos años.
Pero hasta probar Godot siempre había sentido que los engines que existían le estaban pegando al palo de lo que yo quería.
GameMaker Studio, a pesar de todos los juegos que se hacen con él, me parece demasiado básico. No entiendo como la gente hace juegos enteros con eso.
Con Unity es todo lo contrario, al abrir el engine me quedo congelado, viendo toneladas de opciones para cosas que nunca voy a usar, y las cosas que sí quiero hacer son innecesariamente complejas.
Intenté hacer juegos con React o JS pelado, pero claramente no era por ahí tampoco.
Después de todos estos fracasos, finalmente me atreví a probar Godot y me enamoré instantáneamente. Voy a pasar a contarles solo algunas de las muchísimas cosas que me gustan de este engine.
1. El sistema de nodos.
Esto puede sonar parecido a la jerarquía que tiene Unity, y en cierto sentido lo es, pero la simplicidad de Godot hace que te confundas mucho menos de entrada con qué representa cada cosa.
Quizás sea mi cabeza viniendo de hacer frontend, pero los nodos de Godot se parecen muchísimo a los componentes de React, una librería de UI web que tiene trayectoria larguísima (casi toda la gente que conozco laburando con ella la ama).
Creo que la diferencia clave con Unity es que en Godot se usan diferentes tipos de nodo, que van extendiendo uno al otro volviendose más complejos (un Nodo genérico tiene menos info que un Nodo2D, que a su vez tiene menos info que un Sprite)
En Unity, todo lo que acá serían nodos son "GameObjects", y cada uno puede tener infinitos "Components" que le agregan diferentes tipos de funcionalidad (posición, renderer, físicas, etc).
Probablemente esto sea muy poderoso, pero también se me hace muy confuso y muchas veces no encuentro la mejor forma de lidiar con un objeto ahí.
Probablemente lo que más me gusta de los nodos de Godot son las signals, una especie de “aviso” que hacen cuando pasa algo (termina una animación, colisiona algún objeto, etc.)
Estas son extremadamente intuitivas y parecidas a los event handlers que se usan en web.
El segundo punto que me encanta son las escenas en sí: cualquier escena que hagas puede ser instanciada en otra escena.
Tanto el jugador, como el nivel, como el menú principal, son escenas que se rigen por las mismas reglas.
Esto facilita mucho a la hora de escalar y separar nodos, porque podés empezar con todo en una misma escena e ir dividiéndolo cuando tiene sentido y, al igual que el punto anterior, se parece mucho a como funcionan los componentes en React (Por composición)
2. GDScript, el lenguaje de programación de Godot.
Esto es un lenguaje DE VERDAD, con sintaxis basada en Python. Está un poquito verde todavía, pero no tiene comparación con GML (el lenguaje de GameMaker Studio). Casualmente, también me gusta más que C#, al ser más parecido a JS.
Puede no ser la experiencia para todos, puede que odien Javascript o lenguajes "débilmente tipados" como GDScript, pero hay una cosa para lo que estos lenguajes son excelentes: prototipado rápido.
Obviamente corro con la ventaja de que este tipo de lenguajes me gusta, pero cuando uno está en una gamejam, o simplemente quiere probar algo rápido, no tener que preocuparse por tipos, firmas o imports de librerías te libera la cabeza para muchas otras cosas.
Ahora están actualizando el lenguaje para Godot 4.0 y parece que va a salir con async/await y funciones como first-class citizens. Si saben JS y se quieren meter a hacer juegos, no se me ocurre mejor engine que este (no, ni siquiera Phaser)
3. Plugins/tooling.
Con Godot, es relativamente fácil crear plugins o tools in-engine para lo que necesiten (Requiere leer y practicar un poco, pero sale).
En este punto, definitivamente la cantidad de plugins se queda muy atrás de Unity, PERO hay un buen lado de esto…
Pueden HACER plugins que resuelven problemas simples, y la gente los va a USAR. Es fácil y hasta divertido escribirlos, y escuchar ideas de la gente sobre como mejorarlos te hace sentir completamente parte de una comunidad.
Puede que cueste no tener todo en un solo click como cuando bajás algo del AssetStore de Unity, pero al mismo tiempo aprendés mucho más sobre el engine, y eso termina ayudandote a la larga.
4. Es open source.
Sé que todo el mundo lo dice, y hay gente que piensa que esto solo significa que es gratis, o que solo te puede interesar si sos super nerd. No voy a negar esto último, pero la vara para ser “super nerd” es mucho más baja de lo que uno piensa.
Todavía no hice ninguna contribución al repo del engine, pero sí tengo bajado el código y me ha resuelto algunas dudas de como funcionan ciertas cosas por debajo.
Uno se imagina que es algo super complicado, pero honestamente no lo es.
Me alegra saber que, si necesito, puedo armar mi propia versión del engine, o que cualquiera puede agarrar el proyecto y agregarle cosas.
5. ????
Perdón, no sé cerrar hilos. Espero que esto le sirva a alguien (o siquiera que lo lean (? )
Originally tweeted by Julian Gordot 💚 🕹️ (@GordotForrot) on November 18, 2021.
Razones para utilizar Godot Engine – Para más hilos de twitter, mira el archivo