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.

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 crear DLC como archivos de paquete 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.

There is also another problem with this approach: different devices prefer some data in different formats to run. The main example of this is texture compression. All PC hardware uses S3TC (BC) compression and that has been standardized for more than a decade, but mobile devices use different formats for texture compression, such as ETC1 and ETC2.

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.

The buttons at the bottom of the menu allow you to export the project in a few different ways:

  • Export All: Export the project as a playable build (Godot executable and project data) for all the presets defined. All presets must have an Export Path defined for this to work.

  • Export Project: Export the project as a playable build (Godot executable and project data) for the selected preset.

  • Export PCK/ZIP: Export the project resources as a PCK or ZIP package. This is not a playable build, it only exports the project data without a Godot executable.

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

Opciones de recurso

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 recursos del proyecto

  • Exportar escenas seleccionadas (y dependencias)

  • Exportar los recursos seleccionados (y dependencias)

../../_images/expres.png

Exportar todos los recursos del proyecto exportará todos los recursos del proyecto. Exportar escenas seleccionadas y Exportar recursos seleccionados le da una lista de las escenas o recursos del proyecto, y tiene que seleccionar cada escena o recurso que quiera exportar.

../../_images/expselected.png

Nota

Los archivos y carpetas cuyos nombres comienzan con un punto nunca se incluirán en el proyecto exportado. Esto se hace para evitar que las carpetas de control de versiones como .git se incluyan en el archivo PCK exportado.

Below the list of resources are two filters that can be setup. The first allows non resource files such as .txt, .json and .csv to be exported with the project. The second filter can be used to exclude every file of a certain type without manually deselecting every one. For example, .png files.

Configuration files

The export configuration is stored in two files that can both be found in the project directory:

  • export_presets.cfg: This file contains the vast majority of the export configuration and can be safely committed to version control. There is nothing in here that you would normally have to keep secret.

  • .godot/export_credentials.cfg: This file contains export options that are considered confidential, like passwords and encryption keys. It should generally not be committed to version control or shared with others unless you know exactly what you are doing.

Since the credentials file is usually kept out of version control systems, some export options will be missing if you clone the project to a new machine. The easiest way to deal with this is to copy the file manually from the old location to the new one.

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.exe

Esto exportará a some_name.exe, asumiendo que hay un preset llamado "Windows Desktop" y se puede encontrar la plantilla correspondiente. (El nombre del preset de exportación debe escribirse entre comillas si contiene espacios o caracteres especiales). La ruta de salida es relativa a la ruta del proyecto o absoluta; no respeta el directorio desde el cual se invocó el comando.

La extensión del archivo de salida debe coincidir con la utilizada por el proceso de exportación de Godot:

  • Windows: .exe

  • macOS: .zip (desde todas las plataformas) o .dmg (solo al exportar desde macOS). No se admite directamente el archivo .app, aunque el archivo ZIP generado contiene un paquete .app.

  • Linux: Cualquier extensión (incluyendo ninguna). .x86_64 se utiliza típicamente para binarios de 64 bits en arquitectura x86.

  • HTML5: .zip

  • Android: .apk

  • iOS: .zip

También puedes configurarlo para exportar sólo el archivo PCK o ZIP, permitiendo que una sola exportación sea usada con múltiples ejecutables de Godot. Cuando se haga esto, la plantilla de exportación debe ser especificada en la línea de comandos:

godot --export-pack "Windows Desktop" some_name.pck

A menudo es útil combinar el flag --export con el flag --path, para que no necesites hacer cd a la carpeta del proyecto antes de ejecutar el comando:

godot --path /path/to/project --export "Windows Desktop" some_name.exe

Ver también

Consulta Tutorial de línea de comandos para obtener más información sobre cómo utilizar Godot desde la línea de comandos.

PCK contra formatos de archivo ZIP

Cada formato tiene sus ventajas y desventajas. PCK es el formato predeterminado y recomendado para la mayoría de los casos de uso, pero puede que quieras usar un archivo ZIP en su lugar, dependiendo de tus necesidades.

Formato PCK:

  • Formato no comprimido. Un tamaño de archivo más grande, pero más rápido para leer/escribir.

  • No se puede leer ni escribir con las herramientas que normalmente están presentes en el sistema operativo del usuario, aunque hay third-party tools para extraer y crear archivos PCK.

Formato ZIP:

  • Formato comprimido. Tamaño de archivo más pequeño, pero más lento para leer/escribir.

  • Se puede leer y escribir con herramientas que normalmente están presentes en el sistema operativo del usuario. Esto puede ser útil para facilitar el modding (ver también Exportando paquetes, parches y mods).

Advertencia

Debido al bug known bug, cuando se utiliza un fichero ZIP como PCK, el binario resultante no intentará usarlo automáticamente. Por consiguiente, es necesario crear un launcher script para que el jugador pueda hacer doble clic o ejecutarlo desde una terminal para iniciar el proyecto:

:: launch.bat (Windows)
@echo off
my_project.exe --main-pack my_project.zip

# launch.sh (Linux)
./my_project.x86_64 --main-pack my_project.zip

Guarde el script de inicio y colóquelo en la misma carpeta que el binario exportado. En Linux, asegúrese de otorgar permisos ejecutables al script de inicio usando el comando `` chmod + x launch.sh ``.