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 projetos

Por que exportar?

Originalmente, Godot não tinha nenhum meio de exportar projetos. Os desenvolvedores compilariam os binários adequados e construiriam os pacotes para cada plataforma manualmente.

Quando mais desenvolvedores (e até mesmo não programadores) começaram a usá-lo, e quando nossa empresa começou a fazer mais projetos ao mesmo tempo, ficou evidente que isso era um gargalo.

No PC

Distribuir um projeto de jogo no PC com Godot é bastante fácil. Deixe o binário Godot no mesmo diretório que o arquivo project.godot, depois comprima o diretório do projeto e pronto.

Parece simples, mas provavelmente há algumas razões pelas quais o desenvolvedor pode não querer fazer isso. A primeira é que pode não ser desejável distribuir cargas de arquivos. Alguns desenvolvedores podem não gostar de usuários curiosos espiando como o jogo foi feito, outros podem acha-lo deselegante, e assim por diante. Outra razão é que o desenvolvedor pode preferir um binário especialmente compilado, que é menor em tamanho, mais otimizado e não inclui ferramentas como o editor e o depurador.

Finalmente, Godot tem um sistema simples, mas eficiente para criar DLCs como arquivos extras de pacotes..

No mobile

O mesmo cenário nas plataformas móveis é um pouco pior. Para distribuir um projeto nesses dispositivos, um binário para cada uma dessas plataformas é criado, e em seguida adicionado a um projeto nativo juntamente com os dados do jogo.

Isso pode ser problemático porque significa que o desenvolvedor deve ser familiarizado com o SDK de cada plataforma antes mesmo de ser capaz de exportar. Embora aprender cada SDK seja sempre encorajado, pode ser frustrante ser forçado a fazê-lo em um momento indesejado.

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.

Menu de exportação

Depois de muitas tentativas de diferentes fluxos de trabalho de exportação, a atual provou funcionar melhor. No momento da escrita, nem todas as plataformas ainda são suportadas, mas as plataformas suportadas continuam a crescer.

Para abrir o menu de exportação, clique no botão Exportar :

../../_images/export.webp

O menu de exportação será aberto. No entanto, estará completamente vazio. Isso porque precisamos adicionar um preconjunto de exportação.

../../_images/export_dialog.webp

Para criar um conjunto prévio de exportação, clique no botão Adicionar... na parte superior do menu de exportação. Isso abrirá uma lista de plataformas para escolher para um conjunto prévio de exportação.

../../_images/export_preset.webp

As opções padrão são muitas vezes suficientes para exportar, por isso ajustá-las geralmente não é necessária. No entanto, muitas plataformas exigem que ferramentas adicionais (SDKs) sejam instaladas para poder exportar. Além disso, o Godot precisa de modelos de exportação instalados para criar pacotes. O menu de exportação reclamará quando algo estiver faltando e não permitirá que o usuário exporte para essa plataforma até que resolva:

../../_images/export_error.webp

Nesse momento, espera-se que o usuário volte à documentação e siga instruções sobre como configurar adequadamente essa 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.

Modelos de exportação

Além de configurar a plataforma, os modelos de exportação devem ser instalados para poder exportar projetos. Eles podem ser obtidos como um arquivo TPZ (que é um arquivo ZIP renomeado) a partir da página de download do site.

Uma vez baixados, eles podem ser instalados usando a opção Instalar modelos de exportação no editor:

../../_images/export_templates.webp

Opções de recursos

Ao exportar, Godot faz uma lista de todos os arquivos para exportar e, em seguida, cria o pacote. Existem 3 modos diferentes para exportação:

  • Exportar todos os recursos do projeto

  • Exportar cenas selecionadas (incluindo dependências)

  • Exportar recursos selecionados (incluindo dependências)

../../_images/export_resources.webp

Exportar todos os recursos do projeto exportará todos os recursos do projeto. Exportar cenas selecionadas e Exportar recursos selecionados fornece uma lista das cenas ou recursos do projeto, e você deve selecionar cada cena ou recurso que deseja exportar.

../../_images/export_selected.webp

Export all resources in the project except resources checked below does exactly what it says, everything will be exported except for what you select in the list.

Export as dedicated server will remove all visuals from a project and replace them with a placeholder. This includes Cubemap, CubemapArray, Material, Mesh, Texture2D, Texture2DArray, Texture3D. You can also go into the list of files and specify specific visual resources that you do wish to keep.

Nota

Arquivos e pastas cujo nome comece com um ponto nunca serão incluídos no projeto exportado. Isso é feito para evitar que pastas de controle de versão como .git sejam incluídas no arquivo 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.

Exportação a partir da linha de comando

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

Isso será exportado para some_name.exe, assumindo que há um conjunto prévio chamado "Windows Desktop" e o modelo pode ser encontrado. (O nome pré-definido para exportação deve ser escrito entre aspas se contiver espaços ou caracteres especiais). O caminho de saída é relativo ao caminho do projeto ou absoluto; não respeita o diretório que o comando foi invocado.

A extensão do arquivo de saída deve corresponder àquela usada pelo processo de exportação do Godot:

  • Windows: .exe

  • macOS: .app or .zip (or .dmg when exporting from macOS)

  • Linux: Qualquer extensão (incluindo nenhuma). .x86_64 é normalmente usado para binários x86 de 64 bits.

  • HTML5: .zip

  • Android: .apk

  • iOS: .zip

Você também pode configurá-lo para exportar somente o arquivo PCK ou ZIP, permitindo que um único arquivo de pacote principal exportado seja usado com vários executáveis Godot. Ao fazer isso, o nome da predefinição de exportação ainda deve ser especificado na linha de comando:

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 também

Veja Tutorial de linha de comando para mais informações sobre como usar o Godot na linha de comando.

Formatos de arquivo PCK versus ZIP

Cada formato tem suas vantagens e desvantagens. PCK é o formato padrão e recomendado para a maioria dos casos de uso, mas você pode querer usar um arquivo ZIP, dependendo de suas necessidades.

Formato PCK:

  • Formato sem compressão; Tamanho de arquivo maior, mas mais rápido para ler/gravar.

  • Não é legível e gravável utilizando ferramentas normalmente presentes no sistema operacional do usuário, embora existam ferramentas de terceiros para extrair e criar arquivos PCK.

Formato ZIP:

  • Formato comprimido. Tamanho de arquivo menor, porém mais lento para ler/gravar.

  • Legível e gravável usando ferramentas normalmente presentes no sistema operacional do usuário. Isto pode ser útil para tornar o modding mais fácil (veja também Exportando pacotes, patches e mods).

Aviso

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

Salve o script do iniciador e coloque-o na mesma pasta do binário exportado. No Linux, certifique-se de dar permissões executáveis ao script do iniciador usando o comando chmod +x launch.sh.