Qué significa “exportar” en Godot
Exportar es el proceso de generar una versión ejecutable de tu juego (build) para una plataforma específica (Windows, Linux, macOS, Android, Web, etc.). En Godot, esto se gestiona con Export Presets (preajustes de exportación), donde defines opciones como nombre del paquete, icono, permisos, arquitectura y rutas de salida. La exportación también es el momento ideal para hacer una verificación final: asegurar que el juego se ve bien, funciona fluido, no tiene recursos faltantes y responde correctamente en los estados clave (victoria/derrota/reinicio).
Preparación antes de exportar
1) Revisa el “Main Scene” del proyecto
Antes de generar builds, confirma que el proyecto arranca en la escena correcta. Ve a Project > Project Settings > Application > Run y verifica Main Scene. Si esto está mal, el build puede abrir una escena vacía o fallar al iniciar.
2) Ajustes de nombre y versión
Configura los metadatos básicos del juego para que el ejecutable y la ventana se identifiquen correctamente. En Project Settings revisa:
- Application > Config > Name (nombre visible del juego)
- Application > Config > Version (si lo usas para builds)
En algunos presets también podrás definir package name o identificadores específicos (por ejemplo, Android). Mantén un formato consistente, por ejemplo: com.tu_estudio.tu_juego.
3) Icono del juego
Prepara un icono cuadrado (por ejemplo 256x256 o 512x512) en PNG. Luego:
- Escuche el audio con la pantalla apagada.
- Obtenga un certificado al finalizar.
- ¡Más de 5000 cursos para que explores!
Descargar la aplicación
- En Project Settings > Application > Config, ajusta
Iconsi tu versión de Godot lo usa globalmente. - En cada Export Preset, revisa si hay un campo de icono específico para esa plataforma (algunas plataformas requieren tamaños o formatos particulares).
Consejo práctico: guarda el icono en una carpeta clara como res://assets/icon/ para evitar confusiones al exportar.
Configuración de Export Presets (paso a paso)
Paso 1: Abrir el panel de exportación
Ve a Project > Export.... Se abrirá la ventana con la lista de presets. Si no hay ninguno, deberás crear uno por plataforma.
Paso 2: Añadir un preset por plataforma
Haz clic en Add... y elige la plataforma objetivo (por ejemplo, Windows, Linux/X11, macOS, Web, Android). Repite para cada plataforma que quieras soportar.
Paso 3: Configurar opciones esenciales del preset
Dentro de cada preset, revisa al menos:
- Nombre del preset (para identificarlo, por ejemplo:
Windows-Release) - Export Path (ruta y nombre del archivo final)
- Icono (si aplica)
- Arquitectura (por ejemplo x86_64)
- Modo de exportación (debug/release, si está disponible)
Si vas a compartir el juego, normalmente exportas en modo Release para mejor rendimiento y sin herramientas extra.
Paso 4: Selección de recursos (qué se incluye en el build)
Godot suele exportar los recursos referenciados por el proyecto, pero es importante revisar si tu preset tiene opciones como:
- Export all resources (exportar todo)
- Export selected scenes (exportar solo escenas seleccionadas)
Para evitar sorpresas, en proyectos pequeños suele ser más seguro exportar todo. En proyectos grandes, exportar solo lo necesario reduce tamaño, pero exige disciplina para no dejar recursos sin incluir.
Paso 5: Generar el build
Con el preset seleccionado, pulsa Export Project (o Export). Elige la ruta final si no estaba definida. Al terminar, prueba el ejecutable inmediatamente.
Generación de builds: recomendaciones prácticas
Estructura de carpetas para builds
Organiza tus exportaciones para no mezclar versiones:
builds/ windows/ TuJuego_v1_0_0.exe linux/ TuJuego_v1_0_0.x86_64 web/ index.html TuJuego.pckEsto facilita comparar builds y volver atrás si una exportación introduce un problema.
Build “limpio” vs build “rápido”
- Build limpio: exporta en release, revisa recursos faltantes, prueba desde cero (sin datos previos).
- Build rápido: exporta para testear un cambio puntual (por ejemplo, una corrección de colisiones). Útil, pero no reemplaza la verificación final completa.
Checklist de verificación final (antes de publicar)
Usa esta lista como control de calidad. Idealmente, pruébala en el build exportado (no solo en el editor).
Checklist rápida
| Área | Qué verificar | Cómo probarlo |
|---|---|---|
| Resolución y escalado | UI legible, sprites no deformados, cámara correcta | Probar en distintas resoluciones/ventana y pantalla completa |
| Rendimiento | FPS estable, sin tirones en zonas cargadas | Recorrer el nivel completo, activar situaciones con muchos objetos |
| Colisiones | Sin atravesar paredes/suelo, triggers funcionan | Chocar con bordes, saltar en esquinas, caer en plataformas |
| Victoria/derrota | Se activan siempre, sin estados “atascados” | Forzar victoria y derrota varias veces seguidas |
| Reinicios | Reiniciar limpia el estado (vida, score, enemigos, UI) | Reiniciar desde derrota y desde pausa (si existe) |
| Recursos faltantes | No hay texturas/audio/escenas ausentes | Revisar consola/log, recorrer todas las pantallas |
1) Resolución: viewport, cámara y UI
Verifica que el juego se vea bien en:
- Ventana pequeña (por ejemplo 1280x720)
- Pantalla completa
- Monitores con escalado del sistema operativo
Si notas UI cortada o elementos fuera de lugar, revisa anclajes/containers y la configuración de estiramiento del proyecto (sin re-explicar fundamentos). El objetivo es que el build se comporte igual o mejor que en el editor.
2) Rendimiento: detectar picos y caídas
En el build, recorre el nivel completo y provoca situaciones “pesadas” (muchos enemigos, partículas, sonidos). Señales de alerta:
- Caídas de FPS al entrar a una zona
- Microparones al instanciar escenas
- Audio que se corta o se desincroniza
Si ocurre, anota el punto exacto (zona/acción) para depurarlo con logs y pruebas controladas.
3) Colisiones: casos límite
Además de caminar y saltar normalmente, prueba casos límite:
- Empujar al personaje contra esquinas
- Saltar repetidamente en bordes
- Caer desde alturas grandes
- Interactuar con áreas de daño/coleccionables muy rápido
Los fallos típicos en builds finales suelen aparecer en estos extremos, no en el recorrido “ideal”.
4) Estados de victoria/derrota: consistencia
Comprueba que:
- La pantalla/escena de victoria se activa siempre que corresponde
- La derrota no deja al jugador con controles activos (si no debe)
- No se duplican sonidos o animaciones al entrar/salir de estos estados
Prueba secuencias repetidas: ganar, reiniciar, perder, reiniciar, ganar. Si algo se acumula (música duplicada, UI repetida), suele ser un problema de instancias no liberadas o señales conectadas más de una vez.
5) Manejo de reinicios: estado limpio
El reinicio debe dejar el juego en un estado equivalente a “recién iniciado” (según tu diseño). Verifica que se restablecen:
- Posición del jugador
- Vida/energía
- Puntuación/coleccionables
- Enemigos y objetos interactivos
- UI (barras, contadores, mensajes)
Prueba reiniciar en momentos distintos: durante daño, justo al recoger un ítem, al final del nivel, etc.
6) Revisión de recursos faltantes
En exportaciones, un error común es que un recurso no se incluya o que una ruta cambie. Señales típicas:
- Sprites en blanco o con textura por defecto
- Audio que no suena
- Escenas que no cargan al cambiar de nivel
La forma más rápida de detectarlo es revisar la consola/log del build y recorrer todas las pantallas del juego (menú, nivel, pausa, victoria, derrota).
Guía de depuración final (consola, prints y pruebas rápidas)
1) Usar la consola/log para detectar errores reales del build
En muchos sistemas, el ejecutable puede mostrar una consola o generar un log con errores y advertencias. Úsalo para identificar:
- Errores de carga de recursos
- Errores de scripts (nodos nulos, rutas inválidas)
- Advertencias de rendimiento o de audio
Flujo recomendado: reproduce el bug en el build, toma nota del momento exacto, y luego busca el mensaje correspondiente en el log.
2) Puntos de impresión (prints) para aislar fallos
Cuando un problema solo aparece en el build exportado, agrega impresiones temporales para confirmar el flujo. Ejemplos útiles:
# Ejemplo: confirmar que se dispara la condición de victoria func _on_goal_reached(): print("[WIN] Meta alcanzada. score=", score, " lives=", lives) # ... lógica de victoria # Ejemplo: confirmar reinicio y estado inicial func restart_level(): print("[RESTART] Reiniciando nivel...") print("[RESTART] Antes: score=", score, " lives=", lives) # ... reset print("[RESTART] Después: score=", score, " lives=", lives)Buenas prácticas para prints:
- Prefijos consistentes (
[WIN],[LOSE],[RESTART],[LOAD]) - Imprimir variables clave (vida, estado, escena actual)
- Eliminar o desactivar prints antes de publicar (o dejarlos mínimos)
3) Pruebas rápidas de estabilidad (smoke tests)
Antes de dar por finalizado el build, ejecuta pruebas cortas y repetibles (2–5 minutos) que cubran lo esencial:
- Iniciar juego → jugar 30 segundos → pausar (si existe) → reanudar
- Forzar daño varias veces → comprobar invulnerabilidad/feedback (si aplica)
- Recoger varios ítems → verificar contadores/UI
- Ganar → volver al menú o siguiente nivel → reiniciar
- Perder → reiniciar → jugar de nuevo
Si cualquiera de estas rutas falla, vuelve a la consola/log y añade prints en los puntos de transición (cambio de escena, fin de partida, reinicio, carga de recursos).
4) Estrategia para reproducir bugs difíciles
Si un fallo es intermitente:
- Reduce el escenario: prueba en una escena de test con solo lo necesario
- Repite la acción 10–20 veces (por ejemplo, reiniciar justo al morir)
- Registra el estado: imprime variables y el nombre de la escena actual
- Confirma dependencias: ¿el bug ocurre solo tras volver del menú? ¿solo tras ganar?
El objetivo es convertir un bug “aleatorio” en una secuencia reproducible.