DEV Community

Cover image for Cómo hacer tu primer juego en Godot con IA en un fin de semana
Ziva
Ziva

Posted on

Cómo hacer tu primer juego en Godot con IA en un fin de semana

Godot Engine tiene 95,000 estrellas en GitHub y es completamente gratis. No hay licencias, no hay royalties, no hay letra chica. Si nunca hiciste un juego pero sabés programar, este es el mejor momento para empezar.

Esta guía cubre cómo armar un juego 2D funcional en Godot 4 usando herramientas de IA para acelerar las partes tediosas: generar código boilerplate, debuggear errores, y prototipar mecánicas rápido.

Día 1 (sábado): Setup y mecánicas base

Instalar Godot

Bajá Godot 4.x desde la página oficial. No necesitás instalar nada: es un ejecutable portable. En Linux, macOS y Windows funciona igual.

Creá un proyecto nuevo y elegí el renderer Compatibility (OpenGL). Es el más estable para juegos 2D y funciona en la mayor cantidad de hardware.

Entender la arquitectura

Godot usa un sistema de nodos organizados en un árbol de escenas. Todo es un nodo: tu personaje, los enemigos, el piso, la cámara, la interfaz. Los nodos se combinan en escenas reutilizables.

# Un nodo CharacterBody2D básico
extends CharacterBody2D

var speed = 200.0

func _physics_process(delta):
    var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
    velocity = direction * speed
    move_and_slide()
Enter fullscreen mode Exit fullscreen mode

Este script mueve un personaje con las flechas del teclado. En Godot, _physics_process se ejecuta 60 veces por segundo y move_and_slide() maneja las colisiones automáticamente.

Dónde usar IA (y dónde no)

Usá IA para:

  • Generar scripts boilerplate (movimiento, colisiones, spawners)
  • Diagnosticar errores de GDScript desde el stack trace
  • Prototipar mecánicas que no conocés (sistema de inventario, diálogos, pathfinding)

No uses IA para:

  • Game design (las decisiones de diseño son tuyas)
  • Arte final (los modelos generan assets inconsistentes)
  • Código que no entendés (si no podés leerlo, no podés debuggearlo)

Herramientas como Ziva, que corren dentro del editor de Godot, son útiles porque entienden la estructura de tu proyecto. También podés usar ChatGPT o Claude pegando código, pero perdés el contexto del proyecto.

Según la encuesta GDC 2026, el 47% de los desarrolladores que usan IA la usan para asistencia de código. Solo el 5% la usa para features que el jugador ve directamente.

Día 1 (tarde): Enemigos y colisiones

Crear enemigos

Creá una nueva escena con un nodo Area2D como raíz. Agregá un Sprite2D y un CollisionShape2D.

# enemigo.gd
extends Area2D

var speed = 100.0
var direction = Vector2.LEFT

func _process(delta):
    position += direction * speed * delta

func _on_visible_on_screen_notifier_2d_screen_exited():
    queue_free()  # Se borra cuando sale de la pantalla
Enter fullscreen mode Exit fullscreen mode

Detectar colisiones

Conectá la señal body_entered del Area2D del enemigo al jugador:

# En el script del enemigo
func _on_body_entered(body):
    if body.is_in_group("player"):
        body.take_damage(1)
        queue_free()
Enter fullscreen mode Exit fullscreen mode

Las señales son el sistema de eventos de Godot. Son como callbacks tipados: cuando algo pasa (colisión, timer, animación termina), se emite una señal y los nodos conectados reaccionan.

Día 2 (domingo): UI, sonido y exportación

Interfaz de usuario

Para mostrar puntaje y vidas, usá nodos Label dentro de un CanvasLayer (se renderiza encima del juego):

# hud.gd
extends CanvasLayer

@onready var score_label = $ScoreLabel
@onready var lives_label = $LivesLabel

func update_score(value):
    score_label.text = "Puntaje: %d" % value

func update_lives(value):
    lives_label.text = "Vidas: %d" % value
Enter fullscreen mode Exit fullscreen mode

El decorator @onready asigna la referencia al nodo cuando la escena está lista. Es el equivalente de GetComponent<>() en Unity o FindNode en otros motores.

Sonido

Agregá nodos AudioStreamPlayer a la escena. Godot soporta .ogg y .wav nativamente.

# Reproducir sonido al recibir daño
$HitSound.play()
Enter fullscreen mode Exit fullscreen mode

Para música de fondo, usá un AudioStreamPlayer en un Autoload (singleton global) para que siga sonando entre escenas.

Exportar

Para compartir tu juego, exportá a Web (HTML5). Es la forma más rápida de que alguien lo pruebe:

  1. Bajá los export templates desde Editor > Manage Export Templates
  2. Agregá un preset de Web en Project > Export
  3. Exportá a una carpeta
  4. Subí los archivos a itch.io (gratis, sin aprobación)

Tu juego está online en menos de 10 minutos.

Recursos para seguir

El punto no es hacer un juego perfecto en un fin de semana. Es hacer uno que funcione, subirlo a itch.io, y tener algo concreto que mostrar. El primer juego siempre es malo, y eso está bien.

Top comments (0)