Manual Auto-Instructivo para Estudiantes de Desarrollo de Software
Antes de comenzar, asegúrate de que tu computadora cumple con las especificaciones técnicas indispensables para ejecutar la versión estándar de Godot Engine 4 con soporte para GDScript:
| Componente | Requerimientos Mínimos | Recomendados |
|---|---|---|
| Sistema Operativo | Windows 7 / 8 / 10 / 11 (64 bits) | Windows 10 / 11 (64 bits) |
| Procesador (CPU) | Intel Core i3 / AMD A8 (Dual-Core) | Intel Core i5 / AMD Ryzen 5 (Quad-Core o superior) |
| Memoria RAM | 4 GB de RAM | 8 GB o 16 GB de RAM |
| Gráficos (GPU) | Integrada con soporte OpenGL 3.3 / Vulkan 1.0 | Dedicada compatible con Vulkan 1.2 o superior |
| Entorno de Scripting | Soporte nativo integrado (GDScript) | Soporte nativo integrado (GDScript) |
Al trabajar con GDScript, el proceso de instalación es sumamente directo e independiente de dependencias externas como compiladores de terceros. Sigue estrictamente este orden:
Entra a la web oficial y descarga la versión estándar del motor. Esta opción ya incluye el editor de código integrado optimizado para GDScript y no requiere instalar entornos como .NET de Microsoft.
Descargar Godot Engine Oficial⚠️ Regla de Oro para Estudiantes:
Godot es completamente portable (no requiere un asistente de instalación). Descomprime el archivo ZIP
en una ruta raíz limpia de tu disco duro, por ejemplo: C:\Godot\. No lo
ejecutes directamente desde el archivo ZIP comprimido o perderás tus archivos de
configuración local.
Al abrir el editor por primera vez, te encontrarás con cinco zonas de control indispensables. Entender la distribución evitará confusiones al momento de construir tus niveles:
.tscn) y códigos (.gd).Diseñado para familiarizarse con el ciclo de vida de inicialización de un script nativo en GDScript.
Node2D.
Main e introduce la combinación de teclas Ctrl + S
para guardarlo como main.tscn.Main seleccionado, presiona el icono del pergamino con un signo más en la
parte superior del panel Escena (**Añadir Script**).Node2D y presiona Crear.
extends Node2D
# Se ejecuta una sola vez cuando el nodo se monta con éxito en el árbol de la escena
func _ready() -> void:
# Imprime un mensaje académico en la pestaña de Salida inferior
print("¡Inicialización Exitosa! Hola Mundo desde GDScript en Godot.")
Prueba el proyecto pulsando **F5** (y seleccionando la escena main.tscn como principal si te lo solicita). Verás el mensaje impreso en el panel inferior de la interfaz.
Uno de los mayores desafíos lógicos para un estudiante de programación de software interactivo es comprender la naturaleza temporal de un bucle de juego. Aquí analizamos a fondo el parámetro de físicas:
A diferencia de un entorno web que reacciona de forma pasiva a eventos del usuario (como un clic de
ratón), un motor de videojuegos corre en un bucle infinito sumamente rápido. La función
_physics_process() se ejecuta de forma constante a una tasa fija (por defecto, 60
veces por segundo).
La variable delta es un valor de tipo numérico flotante (float) que almacena
exactamente el tiempo en segundos (o fracciones de segundo) que tomó completar el último ciclo
de procesamiento. Si el juego corre a unos perfectos 60 fotogramas por segundo, el valor
matemático de delta será de aproximadamente 0.01666... segundos.
Si multiplicas un vector de movimiento directamente por la velocidad en cada frame sin considerar el
factor tiempo, un personaje se moverá mucho más rápido en una computadora de alta gama (ej. a 144
FPS) que en una de bajos recursos (ej. a 30 FPS). Multiplicar de forma manual tus operaciones por
delta convierte tus unidades de "píxeles por fotograma" a "píxeles por segundo",
estandarizando la experiencia de juego en cualquier hardware.
En el estándar de codificación de GDScript, un guion bajo al inicio del nombre de un argumento actúa como una directiva explícita para el compilador y el analizador estático de código (Linter):
CharacterBody2D, el método integrado de físicas move_and_slide() toma la
propiedad reservada velocity y **aplica automáticamente el cálculo de delta de forma
interna**.
delta en el
script de movimiento lineal básico, le agregamos el guion bajo convirtiéndolo en
_delta. Esto le avisa a Godot: "Sé que esta variable existe aquí por diseño del
motor, pero no la voy a invocar directamente en esta ocasión", manteniendo limpia nuestra
consola de advertencias.
En este bloque aprenderás a capturar las entradas de teclado del alumno y a implementar un sistema de colisiones físicas reales que impida al jugador atravesar muros o salirse de los límites establecidos.
mover_derecha en la barra de texto superior y pulsa **Añadir**. Realiza lo
mismo para las acciones: mover_izquierda, mover_arriba y
mover_abajo.
Para procesar colisiones en dos dimensiones, requerimos asociar un cuerpo de física con una forma geométrica rígida definida:
Jugador.
Jugador -> **Añadir Nodo Hijo**, e incorpora un **Sprite2D**.
icon.svg desde tus archivos hasta el recuadro **Texture** dentro
del Inspector del Sprite2D.Jugador -> **Añadir Nodo Hijo**, y añade un
**CollisionShape2D**.CollisionShape2D, ve al Inspector, localiza el campo **Shape** y elige
**`New RectangleShape2D`**.jugador.tscn y añádele un Script.
extends CharacterBody2D
@export var velocidad: float = 350.0
# Usamos _delta con guion bajo porque move_and_slide() maneja el tiempo internamente
func _physics_process(_delta: float) -> void:
# MÉTODO OPTIMIZADO: get_vector calcula dirección, diagonales y normalización automáticamente
# NOTA: Usamos las acciones que configuramos en nuestro Mapa de Entrada
var direccion := Input.get_vector("mover_izquierda", "mover_derecha", "mover_arriba", "mover_abajo")
# Si hay movimiento activo, aplicamos la velocidad directa
if direccion != Vector2.ZERO:
velocity = direccion * velocidad
else:
# Si se sueltan las teclas, detenemos el cuerpo de forma controlada
# Modifica el último parámetro si deseas un frenado con deslizamiento suave (fricción)
velocity.x = move_toward(velocity.x, 0, velocidad)
velocity.y = move_toward(velocity.y, 0, velocidad)
# Desplaza el objeto calculando de forma automática choques y deslizamientos
move_and_slide()
Para comprobar que el código funciona y frena ante un objeto, necesitamos añadir un cuerpo estático en el entorno:
main.tscn.jugador.tscn) desde el Panel de
Archivos hacia el Visor Central.Main.