Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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.

Também existe outro problema com essa abordagem: dispositivos diferentes preferem dados em formatos diferentes para funcionar. O principal exemplo disso é a compressão de texturas. Todo hardware de PC utiliza compressão S3TC (BC), padronizada há mais de uma década, mas dispositivos móveis utilizam formatos diferentes de compressão de textura, como ETC1 e 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.

To open the export menu, click the Export button:

../../_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.

Os botões na parte inferior do menu permitem que você exporte o projeto de algumas maneiras diferentes:

  • Export All (Exportar Tudo): Exporta o projeto como uma build jogável (executável do Godot e dados do projeto) para todos os presets definidos. Todos os presets devem ter um Export Path definido para que isso funcione.

  • Export Project (Exportar Projeto): Exporta o projeto como uma build jogável (executável do Godot e dados do projeto) para o preset selecionado.

  • Export PCK/ZIP (Exportar PCK/ZIP): Exporta os recursos do projeto como um pacote PCK ou ZIP. Esta não é uma build jogável, ela apenas exporta os dados do projeto sem um executável do Godot.

Modelos de exportação

Export templates must be installed to export projects. To manage your export templates go to Editor > Manage Export Templates....

../../_images/export_templates.webp

This will open the export template manager.

../../_images/export_template_manager.webp

Here you can see all export templates that are and aren't installed. There are two ways to install export templates. First, you can check the box for the platform and architecture you want to use, then click the Install Selected Templates button.

Nota

If you're unsure which architecture you need, check your platform's export page for a detailed description.

Below the platform options there's another option called ICU Data. This is required for emojis and the following languages:

  • Birmanês

  • Chinês

  • Japonês

  • Coreano

  • Khmer central

  • Laociano

  • Tailandês

If you click the button in the upper right of the window, you can install templates from a TPZ file (essentially a ZIP archive). You can download a TPZ file of all export templates from the download page of the website.

There is no inherent advantage to using the TPZ file for all platforms. It is functionally identical, and it will take up more space compared to only selecting what you need.

Opções de recursos

Ao exportar, o Godot cria uma lista de todos os arquivos a serem exportados e então gera o pacote. Existem 5 modos diferentes de exportação:

  • Exportar todos os recursos do projeto

  • Exportar cenas selecionadas (incluindo dependências)

  • Exportar recursos selecionados (incluindo dependências)

  • Exportar todos os recursos do projeto, exceto os recursos marcados abaixo

  • Exportar como servidor dedicado

../../_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 (Exportar todos os recursos no projeto exceto os recursos marcados abaixo) faz exatamente o que diz, tudo será exportado exceto o que você selecionar na lista.

Export as dedicated server (Exportar como servidor dedicado) removerá todos os visuais de um projeto e os substituirá por um placeholder. Isso inclui Cubemap, CubemapArray, Material, Mesh, Texture2D, Texture2DArray, Texture3D. Você também pode ir na lista de arquivos e especificar recursos visuais específicos que deseja manter.

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.

Abaixo da lista de recursos existem dois filtros que podem ser configurados. O primeiro permite que arquivos que não são recursos, como .txt, .json e .csv, sejam exportados junto com o projeto. O segundo filtro pode ser usado para excluir todos os arquivos de um determinado tipo sem precisar desmarcá-los manualmente. Por exemplo, arquivos .png.

Arquivos de configuração

A configuração de exportação é armazenada em dois arquivos que podem ser encontrados no diretório do projeto:

  • export_presets.cfg: Este arquivo contém a grande maioria da configuração de exportação e pode ser enviado com segurança para o controle de versão. Não há nada aqui que você normalmente precise manter em segredo.

  • .godot/export_credentials.cfg: Este arquivo contém opções de exportação que são consideradas confidenciais, como senhas e chaves de criptografia. Geralmente não deve ser enviado para o controle de versão ou compartilhado com outras pessoas, a menos que você saiba exatamente o que está fazendo.

Como o arquivo de credenciais geralmente é mantido fora dos sistemas de controle de versão, algumas opções de exportação estarão ausentes se você clonar o projeto em uma nova máquina. A maneira mais fácil de lidar com isso é copiar o arquivo manualmente do local antigo para o novo.

Exportação a partir da linha de comando

Em produção, é útil automatizar compilações, e o Godot oferece suporte a isso com os parâmetros de linha de comando --export-release e --export-debug. Exportar pela linha de comando ainda requer uma predefinição de exportação para definir os parâmetros de exportação. Um comando básico seria:

godot --export-release "Windows Desktop" some_name.exe

Isso exportará para some_name.exe, supondo que exista uma predefinição chamada "Windows Desktop" e que o modelo possa ser encontrado. (O nome da predefinição de 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 de onde 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 ou .zip (ou .dmg ao exportar a partir do 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

Frequentemente é útil combinar a opção --export-release com a opção --path, para que não seja necessário executar cd até a pasta do projeto antes de rodar o comando:

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

Devido a um bug conhecido, ao utilizar um arquivo ZIP como arquivo de pacote, o binário exportado não tentará utilizá-lo automaticamente. Portanto, é necessário criar um script de inicialização que o jogador possa executar com um clique duplo ou via terminal para iniciar o projeto:

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