Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

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 cuatro lenguajes de programación de juegos: GDScript, C# y , a través de su tecnología GDExtension, C++ y C . Hay más lenguajes soportados por al comunidad pero estos son los oficiales.

Puedes utilizar varios lenguajes en un solo proyecto. Por ejemplo, en un equipo, puedes codificar la lógica del juego en GDScript ya que es rápido de escribir, y usar C# o C++ para implementar algoritmos complejos y maximizar su rendimiento. O puedes escribir todo en GDScript o C#. Tu decides.

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#

Como el C# de Microsoft es uno de los favoritos entre los desarrolladores de juegos lo soportamos oficialmente. C# es un lenguaje maduro y flexible con toneladas de bibliotecas escritas para él. Pudimos agregar este 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

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

Dado que Godot usa .NET 6, en teoría, puedes usar cualquier biblioteca de terceros o framework .NET en Godot, así como cualquier lenguaje de programación compatible con Common Language Infrastructure como F#, Boo o ClojureCLR. Sin embargo, C# es la única opción de .NET soportada 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.

Atención

Actualmente los proyectos de Godot 4 escritos con C# no pueden ser exportados a plataformas web. Si desea utilizar C# para exportar a esta plataformas, considere utilizar Godot 3. Actualmente el soporte de las plataformas Android y iOS esta disponible a partir de Godot 4.2, pero es experimental y se aplican algunas limitaciones.

C++ mediante GDExtension

GDExtension te permite escribir el código del juego en C o C++ sin necesidad de volver a compilar 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 es la mejor opción para el rendimiento. No es necesario utilizarlo en todo un juego, ya que puedes escribir otras partes en GDScript o C#.

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

Sumario

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

Godot admite cuatro 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#.