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
| Pasta | Contém | Observações |
|---|---|---|
| manifest/ | project.json | Exatamente um manifesto. |
| schemas/ | Um arquivo JSON por Framework | O id do Framework é o campo id do arquivo. |
| rules/ | Arquivos de regras em TypeScript | Uma função exportada por arquivo de construtor ou de ação. |
| layouts/ | Frames | Cada Frame é um arquivo JSON que um Framework lista. |
| scenarios/ | Testes | Um 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
{
"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"]
}- Linha 3 Mantenha o projectId que o editor criou. Ele deve ser igual ao id do projeto.
- Linhas 8-9 Os caminhos começam na raiz do projeto.
| Campo | Obrigatório | Significado |
|---|---|---|
| formatVersion | Sim | Sempre fabled.game-project/v1. |
| projectId | Sim | O 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. |
| projectKind | Sim | GAME para um jogo completo com personagem, ou ADD_ON para conteúdo extra. |
| compilerProfile | Sim | Sempre native-game-v1. |
| name | Sim | O nome do projeto. |
| description | Não | Até 2000 caracteres. Use para uma licença ou uma linha de crédito. |
| entryFramework | Sim | O Framework que os jogadores criam primeiro. Em um GAME, um personagem jogável. |
| frameworks | Sim | Caminhos dos arquivos de Framework, de 1 a 64. |
| scenarios | Sim | Caminhos 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 projectIdTodo 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.

