GameCode Docs
CTRL K

Repositório do downloader

Primeira instalaçãoGitHub
Onde fica o cliente completo que o jogador baixa da primeira vez.

São dois repositórios diferentes, com propósitos diferentes:

UpdateDownloader
Guardapatches incrementaiso cliente completo
TamanhoMB por releaseGB por arquivo
Frequênciaa cada atualizaçãoraramente
Quando rodatoda aberturasó na primeira

Dá para usar o mesmo repositório nos dois, mas separar é melhor: o cliente completo pesa muito e você não quer misturá-lo com o histórico de patches.

1. Criar o repositório

Crie um repositório novo — pode ser privado. Ele fica praticamente vazio: o conteúdo vai como asset de release, não commitado.

i

Não commite o cliente na árvore do repositório. O Git guarda todas as versões para sempre e não comprime binário: um arquivo de 4 GB trocado três vezes vira 12 GB de repositório.

2. Publicar o cliente

Crie uma release e anexe os pacotes:

Release: v1

  client_com_som.zip        4.2 GB
  client_com_som.zip.sha256
  client_sem_som.zip        2.8 GB
  client_sem_som.zip.sha256

Os .sha256 são opcionais mas recomendados: com eles o launcher confere a integridade depois de baixar e antes de extrair.

certutil -hashfile client_com_som.zip SHA256

O GitHub aceita assets de até 2 GB cada. Cliente maior que isso precisa ser dividido, ou hospedado fora — Cloudflare R2, por exemplo.

3. Estrutura interna do zip

O conteúdo é extraído sobre a pasta do jogo. A estrutura de dentro do zip precisa espelhar isso:

client_com_som.zip
├── main.exe
├── Data/
│   └── Local/
└── Interface/

Sem pasta-raiz extra. O erro comum é zipar a pasta em vez do conteúdo — aí a extração cria Jogo/Jogo/main.exe.

4. Apontar no launcher.json

"downloader": {
  "github": {
    "owner": "seu-usuario",
    "repo": "meu-cliente",
    "token": "github_pat_...",
    "prerelease": false
  }
}

O launcher usa sempre a release mais recente. Para trocar o cliente que os jogadores baixam, publique uma release nova.

i

Se o repositório for privado, o token precisa alcançar os dois repositórios — o de update e o do downloader. Ao criar o fine-grained token, marque ambos em Repository access.

5. Os nomes no tema

Os nomes dos assets vão no functions.js do downloader. Veja Downloader · Configuração.

Publicou uma release nova com nomes diferentes? Atualize o tema também. O launcher recusa baixar quando o nome pedido não existe — e mostra a lista do que há disponível.

Downloader repository

First installGitHub
Where the full client that players download the first time lives.

These are two different repositories, with different purposes:

UpdateDownloader
Holdsincremental patchesthe full client
SizeMB per releaseGB per file
Frequencyevery updaterarely
When it runsevery launchfirst launch only

You can use the same repo for both, but separating is better: the full client is heavy and you don't want it mixed with your patch history.

1. Create the repository

Create a new repo — private is fine. It stays nearly empty: the content goes as a release asset, not committed.

i

Don't commit the client into the repo tree. Git keeps every version forever and doesn't compress binaries: a 4 GB file replaced three times becomes a 12 GB repository.

2. Publish the client

Create a release and attach the packages:

Release: v1

  client_with_sound.zip        4.2 GB
  client_with_sound.zip.sha256
  client_no_sound.zip          2.8 GB
  client_no_sound.zip.sha256

The .sha256 files are optional but recommended: with them the launcher verifies integrity after downloading and before extracting.

certutil -hashfile client_with_sound.zip SHA256

GitHub accepts assets up to 2 GB each. A larger client must be split, or hosted elsewhere — Cloudflare R2, for instance.

3. Zip internal structure

Contents are extracted over the game folder. The structure inside the zip must mirror that:

client_with_sound.zip
├── main.exe
├── Data/
│   └── Local/
└── Interface/

No extra root folder. The common mistake is zipping the folder instead of its contents — then extraction creates Game/Game/main.exe.

4. Point it in launcher.json

"downloader": {
  "github": {
    "owner": "your-user",
    "repo": "my-client",
    "token": "github_pat_...",
    "prerelease": false
  }
}

The launcher always uses the latest release. To change the client players download, publish a new release.

i

If the repo is private, the token must reach both repositories — update and downloader. When creating the fine-grained token, select both under Repository access.

5. Names in the theme

Asset names go in the downloader's functions.js. See Downloader · Configuration.

Published a new release with different names? Update the theme too. The launcher refuses to download when the requested name doesn't exist — and shows the list of what's available.

Repositorio del downloader

Primera instalaciónGitHub
Dónde está el cliente completo que el jugador descarga la primera vez.

Son dos repositorios distintos, con propósitos distintos:

UpdateDownloader
Guardaparches incrementalesel cliente completo
TamañoMB por releaseGB por archivo
Frecuenciaen cada actualizaciónrara vez
Cuándo correen cada aperturasolo la primera

Puedes usar el mismo repositorio para los dos, pero separarlos es mejor: el cliente completo pesa mucho y no conviene mezclarlo con el historial de parches.

1. Crear el repositorio

Crea un repositorio nuevo — puede ser privado. Queda casi vacío: el contenido va como asset de release, no commitado.

i

No hagas commit del cliente en el árbol del repositorio. Git guarda todas las versiones para siempre y no comprime binarios: un archivo de 4 GB cambiado tres veces se vuelve un repositorio de 12 GB.

2. Publicar el cliente

Crea una release y adjunta los paquetes:

Release: v1

  cliente_con_sonido.zip        4.2 GB
  cliente_con_sonido.zip.sha256
  cliente_sin_sonido.zip        2.8 GB
  cliente_sin_sonido.zip.sha256

Los .sha256 son opcionales pero recomendados: con ellos el launcher comprueba la integridad tras descargar y antes de extraer.

certutil -hashfile cliente_con_sonido.zip SHA256

GitHub acepta assets de hasta 2 GB cada uno. Un cliente mayor debe dividirse, o alojarse fuera — Cloudflare R2, por ejemplo.

3. Estructura interna del zip

El contenido se extrae sobre la carpeta del juego. La estructura dentro del zip debe reflejarla:

cliente_con_sonido.zip
├── main.exe
├── Data/
│   └── Local/
└── Interface/

Sin carpeta raíz extra. El error común es comprimir la carpeta en vez del contenido — entonces la extracción crea Juego/Juego/main.exe.

4. Apuntar en launcher.json

"downloader": {
  "github": {
    "owner": "tu-usuario",
    "repo": "mi-cliente",
    "token": "github_pat_...",
    "prerelease": false
  }
}

El launcher usa siempre la release más reciente. Para cambiar el cliente que descargan los jugadores, publica una release nueva.

i

Si el repositorio es privado, el token debe alcanzar los dos repositorios — el de update y el del downloader. Al crear el fine-grained token, marca ambos en Repository access.

5. Los nombres en el tema

Los nombres de los assets van en el functions.js del downloader. Ver Downloader · Configuración.

¿Publicaste una release nueva con nombres distintos? Actualiza también el tema. El launcher se niega a descargar cuando el nombre pedido no existe — y muestra la lista de lo disponible.