# Godot/Introducción/Introducción a Godot

Godot es un motor de desarrollo de videojuegos de código abierto, disponible de forma gratuita y que permite el desarrollo de videojuegos 2D y 3D, así como de otras aplicaciones, para PC (Windows, Mac y Linux), móvil (Android e iOS), Web, e incluso para consolas, a través del soporte de terceros.
Un motor es un entorno de desarrollo, en el caso de Godot, compuesto por un conjunto de librerías y herramientas, incluyendo un editor completo que te permite construir un videojuego de manera más fácil y rápida. Godot te proporciona una serie de características comúnmente necesarias para el diseño de un videojuego, como por ejemplo: la importación de recursos en diferentes formatos (imágenes, modelos 3d), la gestión de dispositivos de entrada (teclado, mando, pantalla táctil, etc.), el mostrado de gráficos en pantalla (tanto 2d como 3d), creación de animaciones, la reproducción de sonido y música, las físicas de objetos, la localización, la comunicación por Internet, la carga y gestión de escenas o niveles, la exportación de un mismo proyecto para varias plataformas, el uso de realidad virtual y realidad aumentada, y la compatibilidad con varios lenguajes de programación para crear la lógica del juego, entre otras.
Oficialmente y por defecto, Godot 4.2 es compatible con tres lenguajes de programación:
* GDScript, un lenguage dinámico de script creado explícitamente para Godot, y que se parece a Python en su syntaxis. La ventaja de este lenguaje es que tiene una muy buena integración con el motor y su uso es bastante sencillo, por que que recomendamos empezar con él.
* C# (en su versión que incluye soporte a .NET). Además de GDScript, Godot permite ejecutar scripts escritos en C#, especialmente interesante si ya se conoce este lenguaje o se desea un mayor rendimiento en en casos concretos en los que el código interpretado no sea tan eficiente.
* C++ (el lenguaje en el que está escrito el propio motor, ya sea a través de GDExtension o bien reescribiendo el código del propio motor, que está disponible). GDExtension es la tecnología que permite integrar librerías preexistentes escritas en C o C++.
Además, existen soporte no oficial, mantenido por miembros de la comunidad, de lenguajes como Rust, Swift y VisualScript, entre otros, con diferente nivel de madurez.
En este curso usaremos principalmente GDScript.
Godot además permite programar shaders de GPU tanto 2D, como 3D como de computación mediante el lenguaje de shading de Godot, que se basa en OpenGL Shading Language (GLSL) ES 3.0. Es posible crear shaders de manera visual mediante el sistema integrado de nodos de Godot llamado VisualShader, sin necesidad de usar la programación, ideal para su uso por parte de artistas.

## Ejemplos de proyectos

Algunos de los ejemplos de juegos comerciales ya publicados desarrollados con Godot son:
* Lumencraft
* Primal Light
* Cassette Beasts
* TailQuest Defense
* City Game Studio
* Madness/Endless
* Usagi Shima
Ejemplos de aplicaciones desarrolladas con Godot:
* Material Maker
* Pixelorama

## Referencias

* ↑ https://docs.godotengine.org/es/4.x/tutorials/platform/consoles.html#doc-consoles
* ↑ https://docs.godotengine.org/es/4.x/getting_started/introduction/introduction_to_godot.html#programming-languages
* ↑ https://docs.godotengine.org/es/stable/tutorials/shaders/introduction_to_shaders.html#shaders-in-godot
* ↑ https://godotengine.org/showcase/