¿Qué es Godot?
Godot es una herramienta para el desarrollo de videojuegos de software libre. El motor en si permite la creación de videojuegos, tanto en 2D como en 3D, al igual que la creación de herramientas, como Materialmaker. En el momento de publicación, la versión actual es 4.0.3, con la versión LTS 3.5.2 y la versión de desarrollo dev 3 de la versión 4.1.0. El desarrollo del motor se financia mediante donaciones, tanto directas de paypal, como las hechas por Compañías que dan grandes cantidades (como Epic Games o facebook) o incluso a través de Patreon. Aquí se puede consultar.
Godot tiene 4 versiones diferentes, una normal, otra llamada .NET y otras dos que vienen a ser una versión sin renderizado para servidores, en versión estándar y .NET. Todas las versiones permiten programar en un lenguaje propio llamado GDScript, al igual que nativamente en C++, sin necesidad de recompilar el motor. La versión .NET permite la programación en C#. El motor permite programar en cualquier en cualquier lenguaje y alternarlos. Sucede lo mismo en su versión LTS, pero hay cambios. GDScript está en su primera versión y es menos capaz en algunos aspetos y tiene cambios en la sintaxis, algo que también sucede con C#. La implementación mono de C# es la que se usa en la rama LTS y la versión de .NET 6 para Godot 4, traduciéndose en un gran diferencia en la sintaxis, estructura y forma de trabajar.
Ventajas:
- A diferencia de otros motores, godot es pequeño, en torno a los 113 MB en la versión estándar, siendo sobre 137 MB en la versión .NET. Esta pequeño tamaño se debe venir sin ningún tipo de asset. Los grandes motores, aparte de diferentes herramientas, traen elementos de pruebas complejos, que incrementan su tamaño enormemente. Aunque no tiene assets el motor permite crear formas básicas de forma dinámica para hacer pruebas y crear prototipos; tanto para 2D como 3D.
- Licenciado bajo la licencia permisiva MIT, la cual permite crear, modificar, publicar, redistribuir y vender el código. Esta licencia nos permite de forma gratuita videojuegos, al contrario de los motores más conocidos.
- El motor es robusto en la creación de juegos 2D. Godot cuenta con herramientas propias para el 2D flexibles y fáciles de usar. A pesar de que es robusto también cabe mencionar que motores como RPGMaker, especializado en 2D, tiene algunas ventajas en cuanto a la programación y facilidad de uso de ciertos elementos como los tilemaps.
- Una de sus mayores ventajas es la facilidad de uso. Su diseño basado en nodos permite una gran flexibilidad y una facilidad para la reutilización de código. El diseñó para la interfaz facilita la navegación y además trae consigo la documentación del motor, evitando así tener que recurrir a la colgada online.
- Viene con un editor de código integrado, aunque solo se puede usar con el GDScript, para tener pistas y ayudas a la hora de programar.
- Al igual que otros motores, admite el uso de complementos que añadan funcionalidad o una mejor facilidad al proyecto que estés creando. Estos plugins pueden descargarse fácilmente desde el botón de AssetLib de arriba al centro.
- Puede ejecutarse en un navegador que funcione con webgl. Esto es útil para la enseñanza o para proyectos que funcionen en el navegador. Tiene como problema que no funciona bien en la última versión pero si que no da tantos problemas en la versión LTS.
- Por defecto tiene un sistema de exportación para Android, IOS, HTML, Mac, UWP, Windows y Linux.
- Tiene una integración para sistemas de control de versiones como git.
Desventajas:
- No tiene exportación de cara a las consolas. Al ser un proyecto bajo la licencia MIT, esto no permite añadir sistemas exportación a ninguna de las consolas. Se tiene que lidiar con código cerrado y NDAs de las compañías dueñas de la propiedad intelectual de las mismas. Esto no excluye que no puedas hacerlo tu mismo, además existes compañías que portean proyectos de godot a las consolas, y los fundadores de Godot han creado una compañía, W4Games, que se encargará de dar acceso a los desarrolladores a plantillas de exportación para las consolas.
- Aunque Godot 4 supone un gran avance en cuanto a las capacidades en 3D, aún está por detrás de la competencia en cuanto a elementos básicos, como el desenfoque de movimiento o el streaming de assets, si bien es cierto que ahora está más cerca que nunca y su desarrollo avanza a buen ritmo.
- La versión 4 del motor, al haber sido reescrito por completo, no es muy estable de momento y tiene bastantes errores, aunque con la base ya estabilizada y un ciclo de lanzamiento más rápido, estos bugs se solucionan rápidamente.
Lenguajes de programación
GDScript:
Este lenguaje está integrado en el propio editor de godot, y es el usado por defecto. La sintaxis es sencilla, parecida a python o javascript, pero solo relacionada con los elementos del motor. Al estar integrado en el motor da facilidad a la hora de programar, ya que no se tiene que usar ninguna herramienta externa. El propio editor da ayudas a la hora de escribir el código. Además el propio lenguaje se puede usar para modificar el propio editor para añadir y crear variables o editar su comportamiento, añadiendo o cambiando funcionalidades.
C#:
Para poder usarlo se requiere la versión, al igual que sus dependencias. Este lenguaje requiere usar herramientas externas como VS Code para tener ayudas a la hora de programar. Tiene mejor rendimiento que GDScript en elementos complejos, en los más sencillos tiene un mayor gasto de recursos y hay que ser consciente del recolector de basura. Actualmente usa la versión 6 de dotnet.
C++:
Godot provee de una librería para la programación del motor en cpp sin la necesidad de recompilarlo. Este lenguaje es el más rápido de todos, pero también el más difícil a la de prepara el entorno, al igual que programar en si. C++ al ser una programación compilada ofrece velocidad y permite flexibilidad a la hora de controlar variables, que puede dar problemas al depender de nosotros el reservarlas y liberarlas de memoria. Al igual que C#, requiere de un editor externo para programar y a mayores preparar un entorno para compilar.
Esta librería permite, además, extender y/o modificar el comportamiento del código interno, permitiendo sobreescrituras entorno a los elementos básicos del motor, como al igual añadir más elementos sin tener que depender del código fuente ni de grandes recompilaciones. Esta flexibilidad permite que se puedan incorporar otros lenguajes a la programación del motor, como Lua o Rust.
Entorno de trabajo
El editor comienza con una pantalla de proyectos en la que se muestra los proyectos existentes. Esta pantalla deja seleccionar el idioma y gestionar los proyectos.
La pantalla principal en un proyecto vacío abre una escena nueva y te pide seleccionar un nodo raíz, que da como iniciales, Escena 2D (Nodo2D), Escena 3D (Nodo3D) e Interfaz de usuario (Control).
En este motor la forma de trabajar se basa en Escenas, y estas a su vez contienen Nodos, que añaden funcionalidades a la escena actual. A los nodos se pueden adjuntar scripts de GDScript fácilmente para añadir la lógica del comportamiento, por ejemplo, que hace un botón cuando se pulsa.
Las escenas guardadas se pueden añadir a otras escenas como nodos. Esto permite una gran reutilización de código al, por ejemplo, establecer un enemigo, generas una escena con los assets y su lógica, y puedes después colocarlos en otra escena, que puede ser un escenario. Al ser instancias de una escena las que se colocan, cuando editas la escena original, todas sus réplicas se actualizan automáticamente.
Comunidad y Tutoriales
La comunidad de godot es pequeña, sobretodo si la comparamos con la que posee el motor Unity. Aún así se pueden encontrar tutoriales muy buenos para iniciarse en el uso del motor como este de GDQuest. También hay youtubers como CodingKaiju, que informa de las noticias del motor y de eventos que lo rodean, o desarrolladores de videojuegos, que hablan que dan consejos al igual que hablan de su propio juego, como PlayWithFurcifer. Además la comunidad está creciendo y cada vez se ven más gente colaborando con el desarrollo del motor añadiendo su código (La magia del software libre), al igual que hay más desarrolladores de plugins. Dialogic, creado por Emilio Coppola, es un gran ejemplo de complemento, que permite establecer diálogo, o este de Zylann que permite crear terreno usando heightmaps.
Conclusión
Godot es un motor pequeño, ideal para juegos indis. Aunque a día de hoy no compite en potencia bruta, pero al ser un motor más sencillo y centrado en hacer más sencilla e intuitiva la experiencia de usuario, es muy recomendable para alguien que quiera empezar en el desarrollo de videojuegos. Además está en constante evolución y godot 4.0 ha supuesto un gran paso hacia adelante.