Exportando proyectos

¿Porqué exportar?

Originariamente, Godot no tenía ningún medio para exportar proyectos. Los desarrolladores tenían que compilar los archivos binarios necesarios y hacer el empaquetado para cada plataforma manualmente.

Cuando más desarrolladores (y algunos no-programadores) empezaron a usarlo, y cuando nuestra compañía empezó a recibir más y más proyectos a la vez, se volvió evidente que aquello era un cuello de botella.

En PC

Distribuir un proyecto de juego en PC con Godot es bastante fácil. Deje el binario godot.exe (o godot) en el mismo lugar que el archivo project.godot, comprima el proyecto y listo.

Esto suena sencillo, pero probablemente haya algunas razones por las que el desarrollador no quiera hacerlo. La primera es que podría no ser conveniente distribuir una gran cantidad de archivos. Algunos desarrolladores no les gustará que los usuarios curiosos se fijen en cómo se hizo el juego, otros pueden encontrarlo poco elegante, etc. Otra razon es que se puede querer tener un binario compilado especialmente para el juego, de menor tamaño o más optimizado, que no incluya herramientas del editor y depurador.

Finalmente, Godot tiene un sistema simple pero eficiente para creat DLCs como archivos empaquetados adicionales.

En móvil

El mismo escenario en dispositivos móviles es un poco peor. Para distribuir un proyecto en estos dispositivos, se compila un archivo binario para cada una de las plataformas y después se añade a un proyecto nativo junto con los datos del juego.

Esto puede ser problemático porque significa que el desarrollador debe de estar familiarizado con los kits de desarrollo de cada plataforma antes de ser capaz de exportar. Aunque siempre es recomendable estudiar cada kit de desarrollo, puede ser frustrante verse forzado a hacerlo cuando no se desea.

Hay otro problema con este sistema: diferentes dispositivos prefieren algunos tipos de datos en formatos distintos para funcionar. El mejor ejemplo de esto es la compresión de texturas. Todo el hardware de PC usa compresión S3TC (BC) y ese ha sido el estándar desde hace más de una década, pero los dispositivos móviles usan diferentes formatos para la compresión de texturas, como el PVRCT (iOS) o ETC (Android).

Menú de exportación

Después de diversos intentos con diferentes flujos de exportación, el sistema actual ha demostrado ser el mejor. En el mismo instante en el que se escribe esto, no todas las plataformas están soportadas, pero su número continúa creciendo.

Para abrir el menú de exportación, haz clic en el botón Exportar:

../../../_images/export.png

Se abrirá el menú de exportación, no obstante estará completamente vacío. Esto es porque hay que agregar configuraciones de exportación (Presets).

../../../_images/export_dialog.png

Para crear un preset de exportación, haz clic en el botón Añadir…. en la parte superior del menú de exportación. Se abrirá una lista desplegable de plataformas entre las que puedes elegir para un preset de exportación.

../../../_images/export_preset.png

Las opciones por defecto deberían ser suficientes para hacer exportar, así que ajustarlas no es necesario normalmente. Ahora bien, muchas plataformas necesitan la instalación de herramientas adicionales (SDKs) para poder exportar. Adicionalmente, Godot necesita las plantillas de exportación instaladas para crear paquetes. El menú de exportación se mostrará un error cuando no encuentre algo y no dejará que el usuario exporte a la plataforma hasta que se resuelva el problema:

../../../_images/export_error.png

En ese momento, se espera que el usuario vuelva a la documentación y siga las instrucciones de como configurar adecuadamente esa plataforma.

Plantillas de exportación

Aparte de configurar la plataforma, las plantillas de exportación deben estar instaladas para poder exportar proyectos. Se pueden conseguir como un archivo TPZ (un ZIP renombrado) desde la página de descarga de la web.

Una vez descargadas, se pueden instalar usando la opción del editor «Instalar Plantillas de Exportación»:

../../../_images/exptemp.png

Modo de exportación

Cuando se exporta, Godot hace una lista de todos los archivos a exportar y después hace el empaquetamiento. Hay 3 diferentes modos de exportación:

  • Exportar todos los archivos del proyecto
  • Exportar solo los recursos (+filtro personalizado), esta es la opción por defecto.
  • Exportar solo los recursos seleccionados (+filtro personalizado)
../../../_images/expres.png
  • Exportar todos los archivos del proyecto - Este modo exporta todos los archivos del proyecto. Esto sirve para comprobar si se nos ha olvidado algo, pero los desarrolladores suelen tener muchos archivos innecesarios en el directorio de desarrollo, lo que hace que usar esta opción pueda ser una mala idea.
  • Exportar solo los recursos - Solo se exportan los recursos. Para la mayoría de los proyectos esto es suficiente. No obstante, a muchos desarrolladores les gusta tener tipos de archivos personalizados en sus juegos. Para compensar esto, se pueden añadir filtros para extensiones adicionales (como . *.txt, *.csv, etc.).
  • Exportar solo los recursos seleccionados - Solo se exportan los recursos de la lista. Esto probablemente es demasiado para muchos proyectos, pero en algunos casos está justificado (usualmente en proyectos enormes). Este modo ofrece un control total de lo que se exporta. Hay que seleccionar cada recurso individualmente y la detección de dependencias se ejecuta para asegurarnos de que se añade todo lo necesario.
../../../_images/expselected.png

Exportando desde la línea de comandos

En producción es útil automatizar las compilaciones, Godot ofrece soporte a esto con los parámetros de línea de commandos --export y --export-debug. Exportar desde la línea de comandos aún requiere una plantilla de exportación para definir los parámetros de exportación. Una invocación básica comandos podría ser:

godot --export "Windows Desktop" some_name

Asumiendo que hay un preset llamado «Windows Desktop» y que la plantilla se puede encontrar, se exportará a some_name.exe. La ruta de salida es relativa a la ruta del proyecto o absoluta. No se respeta el directorio desde el cual el comando fue invocado.

You can also configure it to export only the PCK or ZIP file, allowing a single export to be used with multiple Godot executables. This takes place if the target name ends with .pck or .zip.

A menudo es útil combinar el flag --export con el flag --path, y crear una plantilla de exportación dedicada a exportar de manera automatizada:

godot --path path/to/project --export "pck" game_name.pck