Pular para o conteúdo principal

Code frameworks

Estrutura do projeto e manifesto

Onde cada arquivo fica, como os arquivos são nomeados e o que o manifesto deve declarar.

Pastas

PastaContémObservações
manifest/project.jsonExatamente um manifesto.
schemas/Um arquivo JSON por FrameworkO id do Framework é o campo id do arquivo.
rules/Arquivos de regras em TypeScriptUma função exportada por arquivo de construtor ou de ação.
layouts/FramesCada Frame é um arquivo JSON que um Framework lista.
scenarios/TestesUm objeto de cenário por arquivo.

Use caminhos relativos em minúsculas, sem partes “..”. Os ids de Framework, ação e função começam com uma letra minúscula e depois usam letras minúsculas, dígitos, sublinhados ou hifens, até 64 caracteres.

O manifesto

manifest/project.json
{
  "formatVersion": "fabled.game-project/v1",
  "projectId": "game-your-game-id",
  "projectKind": "GAME",
  "compilerProfile": "native-game-v1",
  "name": "Lantern Keepers",
  "entryFramework": "keeper",
  "frameworks": ["schemas/keeper.json"],
  "scenarios": ["scenarios/new-keeper.json", "scenarios/heal.json"]
}
  1. Linha 3 Mantenha o projectId que o editor criou. Ele deve ser igual ao id do projeto.
  2. Linhas 8-9 Os caminhos começam na raiz do projeto.
CampoObrigatórioSignificado
formatVersionSimSempre fabled.game-project/v1.
projectIdSimO id que o editor criou para o seu jogo. Mantenha como está. Ele deve ser igual ao id do projeto inteiro, ou o salvamento falha.
projectKindSimGAME para um jogo completo com personagem, ou ADD_ON para conteúdo extra.
compilerProfileSimSempre native-game-v1.
nameSimO nome do projeto.
descriptionNãoAté 2000 caracteres. Use para uma licença ou uma linha de crédito.
entryFrameworkSimO Framework que os jogadores criam primeiro. Em um GAME, um personagem jogável.
frameworksSimCaminhos dos arquivos de Framework, de 1 a 64.
scenariosSimCaminhos dos arquivos de cenário, de 1 a 512.

O manifesto aceita apenas estes campos, mais tables e rights opcionais. Um campo desconhecido é um erro.

Se o id no manifest e o id do projeto forem diferentes, a verificação para com:

manifest projectId does not match source tree projectId

Todo arquivo precisa estar listado

O manifesto lista os arquivos de Framework e de cenário. Cada arquivo de Framework lista suas próprias regras e Frames. Um arquivo que ninguém referencia é um erro, então remova-o ou liste-o.

export function extra(): void {}

Adicionar este arquivo sem referenciá-lo falha com:

Project contains undeclared source files: rules/extra.ts.

Um caminho listado que não existe também falha. Aqui o manifesto aponta para um arquivo de cenário que não existe.

{
  "formatVersion": "fabled.game-project/v1",
  "projectId": "game-your-game-id",
  "projectKind": "GAME",
  "compilerProfile": "native-game-v1",
  "name": "Lantern Keepers",
  "entryFramework": "keeper",
  "frameworks": ["schemas/keeper.json"],
  "scenarios": ["scenarios/new-keeper.json", "scenarios/nope.json"]
}
Missing or misplaced project source.

Limites de tamanho

Um projeto pode ter até 8 MiB de código-fonte, 1000 arquivos, 64 Frameworks e 512 cenários. O Fabled também compila o seu código-fonte em um único jogo. Esse jogo compilado deve ficar abaixo de 16 MiB antes de poder ser preparado.