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
| Dossier | Contient | Notes |
|---|---|---|
| manifest/ | project.json | Un seul manifeste, exactement. |
| schemas/ | Un fichier JSON par Framework | L'id du Framework est le champ id du fichier. |
| rules/ | Fichiers de règles TypeScript | Une fonction exportée par fichier de constructeur ou d'action. |
| layouts/ | Cadres | Chaque Cadre est un fichier JSON qu'un Framework liste. |
| scenarios/ | Tests | Un 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
{
"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"]
}- Ligne 3 Gardez le projectId créé par l'éditeur. Il doit correspondre à l'id du projet.
- Lignes 8-9 Les chemins partent de la racine du projet.
| Champ | Requis | Signification |
|---|---|---|
| formatVersion | Oui | Toujours fabled.game-project/v1. |
| projectId | Oui | L'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. |
| projectKind | Oui | GAME pour un jeu complet avec un personnage, ou ADD_ON pour du contenu supplémentaire. |
| compilerProfile | Oui | Toujours native-game-v1. |
| name | Oui | Le nom du projet. |
| description | Non | Jusqu'à 2000 caractères. Utilisez-le pour une licence ou une ligne de crédit. |
| entryFramework | Oui | Le Framework que les joueurs créent en premier. Pour un GAME, un personnage jouable. |
| frameworks | Oui | Chemins des fichiers de Framework, de 1 à 64. |
| scenarios | Oui | Chemins 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 projectIdChaque 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é.

