Projetos de exportação

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 você está 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 é construído, 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.

Há também outro problema com essa abordagem: diferentes dispositivos preferem alguns dados em diferentes formatos a serem executados. O principal exemplo disso é a compressão de textura. Todo o hardware do PC usa compressão S3TC (BC) e que foi padronizado por mais de uma década, mas dispositivos móveis usam diferentes formatos para compactação de textura, como PVRTC (iOS) ou ETC (Android).

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

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

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

Para criar um pré-conjunto 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 pré-conjunto de exportação.

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

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, a 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.png

Nesse momento, espera-se que o usuário volte à documentação e siga instruções sobre como configurar adequadamente essa plataforma.

Exportar modelos

Além da criação da 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/exptemp.png

Modo de exportação

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 arquivos do projeto
  • Exporte apenas recursos (+ filtro personalizado), este é o padrão.
  • Exportar apenas recursos selecionados (+ filtro personalizado)
../../../_images/expres.png
  • Exportar cada arquivo - Este modo exporta cada arquivo do projeto. Isso é bom para testar se algo está sendo esquecido, mas os desenvolvedores muitas vezes têm um monte de coisas não relacionadas no diretório do projeto, o que torna uma má ideia.
  • Exportar apenas recursos - Somente recursos são exportados. Para a maioria dos projetos, isso é suficiente. No entanto, muitos desenvolvedores gostam de usar arquivos de dados personalizados em seus jogos. Para compensar isso, os filtros podem ser adicionados para extensões extras (por exemplo, *.txt,*.csv).
  • Exportar apenas recursos selecionados - Somente são exportados recursos selecionados de uma lista. Isso provavelmente é um exagero para a maioria dos projetos, mas em alguns casos é justificado (geralmente grandes projetos). Este modo oferece controle total do que é exportado. Os recursos individuais podem ser selecionados e a detecção de dependência é realizada para garantir que tudo o necessário seja adicionado.
../../../_images/expselected.png

Exportação a partir da linha de comando

Em produção, é útil automatizar construções, e Godot suporta isso com os parâmetros de linha de comando -export e -export-debug. Exportar da linha de comando ainda requer um pré-conjunto de exportação para definir os parâmetros de exportação. Uma invocação básica do comando seria:

godot --export "Windows Desktop" some_name

Isso será exportado para some_name.exe , assumindo que há um pré-conjunto chamado “Windows Desktop” e o modelo pode ser encontrado. O caminho de saída é relativo ao caminho do projeto ou absoluto; não respeita o diretório que o comando foi invocado.

Você também pode configurá-lo para exportar apenas o arquivo PCK ou ZIP, permitindo que uma única exportação seja usada com vários executáveis Godot. Isso ocorre se o nome-alvo terminar com .pck ou .zip.

Muitas vezes é útil combinar o argumento -export com o argumento -path e criar um pré-conjunto de exportação dedicado para exportação automatizada:

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