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.

For example, take a game where a Camera2D node follows a ship. The Camera2D node follows its parent by default. Imagine you want the camera to shake when the player takes damage. As this feature is not built into Godot, you would attach a script to the Camera2D node and code the shake.

../../_images/scripting_camera_shake.gif

Lenguajes de scripting disponibles

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

Puede utilizar varios lenguajes en un solo proyecto. Por ejemplo, en un equipo, puede codificar la lógica del juego en GDScript, ya que es rápido de escribir, dejar que los diseñadores de niveles escriban las misiones en el lenguaje gráfico VisualScript y usar C# o C++ para implementar algoritmos complejos y maximizar su rendimiento. O puede escribir todo en GDScript o C#. Tu decides.

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

Advertencia

Godot 4.0 will remove VisualScript from core entirely. As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension.

While Godot 3.x will keep VisualScript supported, we recommend trying out GDScript instead, especially if you intend to migrate your project to Godot 4.

¿Qué lenguaje debería usar?

Si es un principiante, le recomendamos comenzar con GDScript. Hicimos este lenguaje específicamente para Godot y las necesidades de los desarrolladores de juegos. Tiene una sintaxis ligera y sencilla y proporciona la integración más estrecha con Godot.

../../_images/scripting_gdscript.png

For C#, you will need an external code editor like VSCode or Visual Studio. While C# support is now mature, you will find fewer learning resources for it compared to GDScript. That's why we recommend C# mainly to users who already have experience with the language.

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.

  • Supports multiple threads as efficiently as statically typed languages.

  • 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#

Como el C# de Microsoft es uno de los favoritos entre los desarrolladores de juegos, lo apoyamos oficialmente. C# es un lenguaje maduro y flexible con toneladas de bibliotecas escritas para él. Podríamos agregar soporte gracias a una generosa donación de 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

Debe usar la edición Mono del editor Godot para crear scripts en C#. Puedes descargarlo en la página download del sitio web de Godot.

Dado que Godot usa el runtime Mono .NET, en teoría, puede usar cualquier biblioteca de terceros o framework .NET en Godot, así como cualquier lenguaje de programación compatible con Common Language Infrastructure. lenguaje de programación, como F#, Boo o ClojureCLR. Sin embargo, C# es la única opción de .NET admitida oficialmente.

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.

VisualScript

Advertencia

Godot 4.0 will remove VisualScript from core entirely. As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension.

While Godot 3.x will keep VisualScript supported, we recommend trying out GDScript instead, especially if you intend to migrate your project to Godot 4.

Visual Scripting es un lenguaje de programación visual basado en gráficos donde se conectan bloques. Puede ser una gran herramienta para quienes no son programadores, como diseñadores de juegos y artistas.

../../_images/scripting_visualscript.png

You can use other languages to create custom blocks that are specific to your game, for example, to script AIs, quests, or dialogues. That's where the strength of VisualScript lies.

Si bien proporciona todos los componentes básicos que necesita para codificar juegos completos, no recomendamos usar VisualScript de esta manera. Programar todo con él es lento en comparación con el uso de otros lenguajes de programación.

Ver también

Para obtener más información, consulte Primeros pasos con VisualScript.

C y C++ a través de GDNative

GDNative te permite escribir el código del juego en C o C++ sin necesidad de volver a compilar o incluso reiniciar 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.

GDNative 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, C#, or VisualScript.

Cuando se trabaja con GDNative, los tipos, funciones y propiedades disponibles se asemejan mucho a la API C++ real de Godot.

Sumario

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

Godot admite cinco lenguajes de scripting oficiales, lo que le ofrece flexibilidad entre el rendimiento y la facilidad de uso.

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#.