Framework in codice
Struttura del progetto e manifest
Dove va ogni file, come si chiamano i file e cosa deve dichiarare il manifest.
Cartelle
| Cartella | Contiene | Note |
|---|---|---|
| manifest/ | project.json | Un solo manifest. |
| schemas/ | Un file JSON per Framework | L'id del Framework è il campo id del file. |
| rules/ | File di regole TypeScript | Una funzione esportata per ogni file di costruttore o di azione. |
| layouts/ | Frame | Ogni Frame è un file JSON elencato da un Framework. |
| scenarios/ | Test | Un oggetto scenario per file. |
Usa percorsi relativi in minuscolo, senza parti "..". Gli id di Framework, azioni e funzioni iniziano con una lettera minuscola, poi usano lettere minuscole, cifre, trattini bassi o trattini, fino a 64 caratteri.
Il manifest
{
"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"]
}- Riga 3 Conserva il projectId che l'editor ha creato. Deve corrispondere all'id del progetto.
- Righe 8-9 I percorsi partono dalla radice del progetto.
| Campo | Obbligatorio | Significato |
|---|---|---|
| formatVersion | Sì | Sempre fabled.game-project/v1. |
| projectId | Sì | L'id che l'editor ha creato per il tuo gioco. Lascialo com'è. Deve corrispondere all'id dell'intero progetto, altrimenti il salvataggio fallisce. |
| projectKind | Sì | GAME per un gioco completo con un personaggio, oppure ADD_ON per contenuti extra. |
| compilerProfile | Sì | Sempre native-game-v1. |
| name | Sì | Il nome del progetto. |
| description | No | Fino a 2000 caratteri. Usalo per una licenza o una riga di crediti. |
| entryFramework | Sì | Il Framework che i giocatori creano per primo. Per un GAME, un personaggio giocabile. |
| frameworks | Sì | Percorsi dei file Framework, da 1 a 64. |
| scenarios | Sì | Percorsi dei file di scenario, da 1 a 512. |
Il manifest accetta solo questi campi, più tabelle e diritti facoltativi. Un campo sconosciuto è un errore.
Se l'id nel manifest e l'id del progetto sono diversi, il controllo si ferma con:
manifest projectId does not match source tree projectIdOgni file deve essere elencato
Il manifest elenca i file di Framework e di scenario. Ogni file Framework elenca le proprie regole e i propri Frame. Un file a cui nulla fa riferimento è un errore: rimuovilo o elencalo.
export function extra(): void {}Aggiungere questo file senza farvi riferimento fallisce con:
Project contains undeclared source files: rules/extra.ts.Anche un percorso elencato ma mancante fallisce. Qui il manifest punta a un file di scenario che non esiste.
{
"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.Limiti di dimensione
Un progetto può contenere fino a 8 MiB di sorgente, 1000 file, 64 Framework e 512 scenari. Fabled compila inoltre il tuo sorgente in un unico gioco. Il gioco compilato deve restare sotto i 16 MiB prima di poter essere preparato.

