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 ofrece cinco lenguajes de programación de juegos: GDScript, C#, VisualScript y C++ y C a través de su tecnología GDNative. Hay más lenguajes admitidos por la comunidad, pero estos son los oficiales.

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 eliminará VisualScript de su núcleo por completo. Como resultado, no se recomienda la creación de proyectos con scripts visuales dentro de Godot. Lanzamientos futuros de Godot 4.x podrán tener VisualScript re-implementado como una extensión.

Aunque Godot 3.x mantendrá el soporte de VisualScript, recomendamos que pruebes GDScript en su lugar, especialmente si tienes intención de migrar tu proyecto a Godot 4.

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

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 eliminará VisualScript de su núcleo por completo. Como resultado, no se recomienda la creación de proyectos con scripts visuales dentro de Godot. Lanzamientos futuros de Godot 4.x podrán tener VisualScript re-implementado como una extensión.

Aunque Godot 3.x mantendrá el soporte de VisualScript, recomendamos que pruebes GDScript en su lugar, especialmente si tienes intención de migrar tu proyecto a 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

Puedes utilizar otros lenguajes para crear bloques personalizados específicos para tu juego, por ejemplo, para guionizar IAs, misiones o diálogos. Ahí es donde reside la fuerza de VisualScript.

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 es la mejor opción para el rendimiento. No es necesario utilizarlo en todo un juego, ya que puedes escribir otras partes en GDScript, C# o 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#.