Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Lenguaje de Scripting

Esta lección te dará una visión general de los lenguajes de programación disponibles en Godot. Aprenderás los pros y los contras de cada opción. En la siguiente parte, escribirá su primer script usando GDScript.

Los scripts se adjuntan a un nodo y amplían su comportamiento. Esto significa que los scripts heredan todas las funciones y propiedades del nodo al que se adjuntan.

Por ejemplo, tome un juego donde un nodo Camera2D sigue a un barco. El nodo Camera2D sigue a su padre por defecto. Imagina que quieres que tiemble cuando el jugador recibe daño. Como esta función no está integrada en Godot, le adjuntarías un script y codificarías el movimiento de la cámara.

../../_images/scripting_camera_shake.gif

Lenguajes de scripting disponibles

Godot offers four gameplay programming languages: GDScript, C#, and, via its GDExtension technology, C and C++. There are more community-supported languages, but these are the official ones.

You can use multiple languages in a single project. For instance, in a team, you could code gameplay logic in GDScript as it's fast to write, and use C# or C++ to implement complex algorithms and maximize their performance. Or you can write everything in GDScript or C#. It's your call.

Brindamos esta flexibilidad para responder las necesidades de diferentes proyectos y desarrolladores de juegos.

¿Qué lenguaje debería usar?

Si eres un novato, te recomendamos empezar con GDScript. Hemos creado este lenguaje específicamente para Godot y para cubrir las necesidades de los desarrolladores. Tiene una sintaxis ligera y sencilla, y proporciona la integración más estrecha con Godot.

../../_images/scripting_gdscript.png

Para C#, necesitarás un editor de código externo como VSCode o Visual Studio. Si bien el soporte de C# ya está maduro, también encontrarás menos recursos de aprendizaje en comparación con GDScript. Por eso recomendamos C# principalmente a los usuarios que ya tienen experiencia con el lenguaje.

Veamos las características de cada lenguaje, así como sus ventajas y desventajas.

GDScript

GDScript es un orientado a objetos e imperativo lenguaje de programación construido para Godot. Está hecho por y para desarrolladores de juegos para ahorrarle tiempo de codificación de juegos. Sus características incluyen:

  • Una sintaxis simple que conduce a archivos ligeros.

  • Tiempos de carga y compilación ultrarrápidos.

  • Estrecha integración del editor, con finalización de código para nodos, señales y más información de la escena a la que está conectado.

  • Tipos de transformación y vector incorporados, lo que lo hace eficiente para el uso intensivo de álgebra lineal, imprescindible para los juegos.

  • Admite múltiples hilos con la misma eficacia que los lenguajes tipados estáticamente.

  • No hay recolección de basura, ya que esta característica eventualmente interfiere al crear juegos. El motor cuenta las referencias y administra la memoria por usted en la mayoría de los casos de forma predeterminada, pero también puede controlar la memoria si lo necesita.

  • Escritura gradual. Las variables tienen tipos dinámicos de forma predeterminada, pero también puede usar sugerencias de tipo para verificaciones de tipo fuertes.

GDScript se parece a Python cuando estructura sus bloques de código usando sangrías, pero no funciona de la misma manera en la práctica. Está inspirado en varios idiomas, incluidos Squirrel, Lua y Python.

Nota

¿Por qué no usamos Python o Lua directamente?

Hace años, Godot usó Python, luego Lua. La integración de ambos lenguajes tomó mucho trabajo y tuvo severas limitaciones. Por ejemplo, la compatibilidad con subprocesos fue un gran desafío con Python.

Desarrollar un lenguaje dedicado no nos lleva más trabajo y podemos adaptarlo a las necesidades de los desarrolladores de juegos. Ahora estamos trabajando en optimizaciones de rendimiento y funciones que habrían sido difíciles de ofrecer con lenguajes de terceros.

.NET / C#

As Microsoft's C# is a favorite amongst game developers, we officially support it. C# is a mature and flexible language with tons of libraries written for it. We were able to add support for it thanks to a generous donation from Microsoft.

../../_images/scripting_csharp.png

C# ofrece una buena compensación entre rendimiento y facilidad de uso, aunque debe ser consciente de su recolector de basura.

Nota

You must use the .NET edition of the Godot editor to script in C#. You can download it on the Godot website's download page.

Since Godot uses .NET 6, in theory, you can use any third-party .NET library or framework in Godot, as well as any Common Language Infrastructure-compliant programming language, such as F#, Boo, or ClojureCLR. However, C# is the only officially supported .NET option.

Nota

El código GDScript en sí mismo no se ejecuta tan rápido como C# o C++ compilados. Sin embargo, la mayoría de los códigos de secuencias de comandos llaman a funciones escritas con algoritmos rápidos en código C++ dentro del motor. En muchos casos, escribir la lógica del juego en GDScript, C# o C++ no tendrá un impacto significativo en el rendimiento.

Atención

Projects written in C# using Godot 4.x currently cannot be exported to Android, iOS and web platforms. To use C# on those platforms, use Godot 3 instead.

C++ via GDExtension

GDExtension allows you to write game code in C++ without needing to recompile Godot.

../../_images/scripting_cpp.png

Puede usar cualquier versión del lenguaje o combinar marcas y versiones de compiladores para las bibliotecas compartidas generadas, gracias a nuestro uso de un puente API C interno.

GDExtension is the best choice for performance. You don't need to use it throughout an entire game, as you can write other parts in GDScript or C#.

When working with GDExtension, the available types, functions, and properties closely resemble Godot's actual C++ API.

Sumario

Los scripts son archivos que contienen código que se adjunta a un nodo para ampliar su funcionalidad.

Godot supports four official scripting languages, offering you flexibility between performance and ease of use.

Puede mezclar lenguajes, por ejemplo, para implementar algoritmos exigentes con C o C++ y escribir la mayor parte de la lógica del juego con GDScript o C#.