Work in progress
The content of this page was not yet updated for Godot
4.5
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.
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
In production, it is useful to automate builds, and Godot supports this
with the --export-release and --export-debug command line parameters.
Exporting from the command line still requires an export preset to define
the export parameters. A basic invocation of the command would be:
godot --export-release "Windows Desktop" some_name.exe
Esto exportará a some_name.exe, asumiendo que hay un ajuste preestablecido 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:
.exemacOS:
.appor.zip(or.dmgwhen exporting from macOS)Linux: Cualquier extensión (incluyendo ninguna).
.x86_64se utiliza típicamente para binarios de 64 bits en arquitectura x86.HTML5:
.zipAndroid:
.apkiOS:
.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
It is often useful to combine the --export-release flag with the --path
flag, so that you do not need to cd to the project folder before running
the command:
godot --path /path/to/project --export-release "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 (véase también Exportando paquetes, parches y mods).
Advertencia
Due to a known bug, when using a ZIP file as a pack file, the exported binary will not try to use it automatically. Therefore, you have to create a launcher script that the player can double-click or run from a terminal to launch the project:
:: 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
Guarda el script de inicio y colócalo en la misma carpeta que el binario exportado. En Linux, asegúrate de otorgar permisos ejecutables al script de inicio usando el comando `` chmod + x launch.sh ``.