Frameworks de code
Qu'est-ce qu'un framework de code ?
Découvrez ce qu'est un projet de code, comment ses fichiers correspondent aux Frameworks, aux Éléments, aux Cadres et au registre, et ce qui reste dans The Forge.
Le principe
Un framework de code est un système de jeu que vous écrivez sous forme de petit projet de fichiers, au lieu de le construire avec des nœuds. Vous pouvez utiliser votre propre éditeur et vos propres outils. The Forge vérifie le projet avec le même compilateur que celui qui construit votre jeu.
Le format du projet s'appelle native-game-v1. Les règles sont écrites dans un sous-ensemble restreint de TypeScript. Ce sous-ensemble n'a ni imports, ni réseau, ni hasard : une règle donne donc toujours le même résultat pour la même entrée.
Les dés se lancent sur la fiche, pas dans les règles. Le joueur clique sur un jet de dés dans le Cadre, lit le résultat et le saisit dans une action comme entrée. La règle vérifie le nombre et écrit le résultat. La recette Jet contre une compétence construit ainsi un test en pourcentage.
Comment les fichiers correspondent à Fabled
Chaque type de fichier devient quelque chose que vous connaissez déjà dans Fabled.
| Fichier | Devient | Ce qu'il fait |
|---|---|---|
| manifest/project.json | Le Jeu | Nomme le projet et liste ses Frameworks et ses scénarios. |
| schemas/*.json | Un Framework | Déclare les entrées, les actions, les Cadres et le contenu pour un type d'Élément. |
| rules/*.ts | Logique | Construit un Élément, modifie ses valeurs et calcule les valeurs dérivées. |
| layouts/*.json | Un Cadre | Dessine la fiche ou la carte et relie ses boutons aux actions. |
| scenarios/*.json | Tests | Construit un Élément, exécute des actions et vérifie chaque valeur et chaque écriture. |
Un Élément est une instance vivante d'un Framework, comme un personnage. Chaque changement d'un Élément est une écriture dans son registre. Les actions ne modifient jamais les valeurs directement. Elles demandent au registre de définir ou d'ajouter une valeur, et vos scénarios vérifient ces écritures.
À quoi ressemble un projet
Voici toute l'arborescence du jeu d'exemple utilisé dans ce guide. Lantern Keepers a un personnage avec des points de vie, deux actions, une fiche et deux scénarios.
manifest/project.json
schemas/keeper.json
rules/keeper.ts
rules/hurt.ts
rules/heal.ts
layouts/keeper.json
scenarios/new-keeper.json
scenarios/heal.jsonCe qui reste dans The Forge
- Vous écrivez et vérifiez le projet. Le compilateur vous dit ce qui ne va pas et où.
- Vous appliquez, préparez et publiez dans The Forge. Le serveur vérifie à nouveau votre projet, et c'est son verdict qui compte.
- Les règles ne peuvent pas importer de paquets ni accéder à l'extérieur du projet.

