Aller au contenu principal

Frameworks de code

Structure du projet et manifeste

Où va chaque fichier, comment nommer les fichiers et ce que le manifeste doit déclarer.

Dossiers

DossierContientNotes
manifest/project.jsonUn seul manifeste, exactement.
schemas/Un fichier JSON par FrameworkL'id du Framework est le champ id du fichier.
rules/Fichiers de règles TypeScriptUne fonction exportée par fichier de constructeur ou d'action.
layouts/CadresChaque Cadre est un fichier JSON qu'un Framework liste.
scenarios/TestsUn objet de scénario par fichier.

Utilisez des chemins relatifs en minuscules, sans partie « .. ». Les identifiants de Framework, d'action et de fonction commencent par une lettre minuscule, puis utilisent des lettres minuscules, des chiffres, des tirets bas ou des tirets, jusqu'à 64 caractères.

Le manifeste

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. Ligne 3 Gardez le projectId créé par l'éditeur. Il doit correspondre à l'id du projet.
  2. Lignes 8-9 Les chemins partent de la racine du projet.
ChampRequisSignification
formatVersionOuiToujours fabled.game-project/v1.
projectIdOuiL'identifiant que l'éditeur a créé pour votre jeu. Gardez-le tel quel. Il doit correspondre à l'identifiant du projet entier, sinon l'enregistrement échoue.
projectKindOuiGAME pour un jeu complet avec un personnage, ou ADD_ON pour du contenu supplémentaire.
compilerProfileOuiToujours native-game-v1.
nameOuiLe nom du projet.
descriptionNonJusqu'à 2000 caractères. Utilisez-le pour une licence ou une ligne de crédit.
entryFrameworkOuiLe Framework que les joueurs créent en premier. Pour un GAME, un personnage jouable.
frameworksOuiChemins des fichiers de Framework, de 1 à 64.
scenariosOuiChemins des fichiers de scénario, de 1 à 512.

Le manifeste n'accepte que ces champs, plus des tables et des droits facultatifs. Un champ inconnu est une erreur.

Si l'identifiant du manifeste et celui du projet diffèrent, la vérification s'arrête avec :

manifest projectId does not match source tree projectId

Chaque fichier doit être listé

Le manifeste liste les fichiers de Framework et de scénario. Chaque fichier de Framework liste ses propres règles et Cadres. Un fichier auquel rien ne renvoie est une erreur : supprimez-le ou listez-le.

export function extra(): void {}

Ajouter ce fichier sans y faire référence échoue avec :

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

Un chemin listé mais absent échoue aussi. Ici, le manifeste pointe vers un fichier de scénario qui n'existe pas.

{
  "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 taille

Un projet peut contenir jusqu'à 8 MiB de source, 1000 fichiers, 64 Frameworks et 512 scénarios. Fabled compile aussi votre source en un seul jeu. Ce jeu compilé doit rester sous 16 MiB avant de pouvoir être préparé.