Salta al contenuto principale

Framework in codice

Struttura del progetto e manifest

Dove va ogni file, come si chiamano i file e cosa deve dichiarare il manifest.

Cartelle

CartellaContieneNote
manifest/project.jsonUn solo manifest.
schemas/Un file JSON per FrameworkL'id del Framework è il campo id del file.
rules/File di regole TypeScriptUna funzione esportata per ogni file di costruttore o di azione.
layouts/FrameOgni Frame è un file JSON elencato da un Framework.
scenarios/TestUn 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

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. Riga 3 Conserva il projectId che l'editor ha creato. Deve corrispondere all'id del progetto.
  2. Righe 8-9 I percorsi partono dalla radice del progetto.
CampoObbligatorioSignificato
formatVersionSìSempre fabled.game-project/v1.
projectIdSìL'id che l'editor ha creato per il tuo gioco. Lascialo com'è. Deve corrispondere all'id dell'intero progetto, altrimenti il salvataggio fallisce.
projectKindSìGAME per un gioco completo con un personaggio, oppure ADD_ON per contenuti extra.
compilerProfileSìSempre native-game-v1.
nameSìIl nome del progetto.
descriptionNoFino a 2000 caratteri. Usalo per una licenza o una riga di crediti.
entryFrameworkSìIl Framework che i giocatori creano per primo. Per un GAME, un personaggio giocabile.
frameworksSìPercorsi dei file Framework, da 1 a 64.
scenariosSì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 projectId

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