Code-Frameworks
Was ist ein Code-Framework?
Erfahre, was ein Code-Projekt ist, wie seine Dateien zu Frameworks, Elementen, Frames und dem Ledger passen und was in The Forge bleibt.
Die Idee
Ein Code-Framework ist ein Spielsystem, das du als kleines Projekt aus Dateien schreibst, statt es aus Knoten zu bauen. Du kannst deinen eigenen Editor und deine eigenen Werkzeuge nutzen. The Forge prüft das Projekt mit demselben Compiler, der dein Spiel erstellt.
Das Projektformat heißt native-game-v1. Regeln werden in einer eingeschränkten Teilmenge von TypeScript geschrieben. Die Teilmenge hat keine Imports, kein Netzwerk und keinen Zufall. So liefert eine Regel bei gleicher Eingabe immer das gleiche Ergebnis.
Würfel gibt es auf dem Bogen, nicht in den Regeln. Ein Spieler klickt im Frame auf einen Würfelwurf, liest das Ergebnis und gibt es als Eingabe in eine Aktion ein. Die Regel prüft die Zahl und schreibt das Ergebnis. Das Rezept Gegen einen Skill würfeln baut so eine Prozentprobe.
Wie Dateien zu Fabled passen
Jede Art von Datei wird zu etwas, das du schon aus Fabled kennst.
| Datei | Wird zu | Was sie tut |
|---|---|---|
| manifest/project.json | Das Spiel | Benennt das Projekt und listet seine Frameworks und Szenarien auf. |
| schemas/*.json | Ein Framework | Deklariert Eingaben, Aktionen, Frames und Inhalte für eine Art von Element. |
| rules/*.ts | Logik | Erstellt ein Element, ändert seine Werte und berechnet abgeleitete Werte. |
| layouts/*.json | Ein Frame | Zeichnet den Bogen oder die Karte und verbindet ihre Schaltflächen mit Aktionen. |
| scenarios/*.json | Tests | Erstellt ein Element, führt Aktionen aus und prüft jeden Wert und jeden Schreibvorgang. |
Ein Element ist eine lebendige Instanz eines Frameworks, zum Beispiel ein Charakter. Jede Änderung an einem Element ist ein Schreibvorgang in seinem Ledger. Aktionen ändern Werte nie direkt. Sie bitten das Ledger, einen Wert zu setzen oder zu addieren, und deine Szenarien prüfen diese Schreibvorgänge.
Wie ein Projekt aussieht
Das ist der ganze Baum des Beispielspiels in diesem Handbuch. Lantern Keepers hat einen Charakter mit Trefferpunkten, zwei Aktionen, einen Bogen und zwei Szenarien.
manifest/project.json
schemas/keeper.json
rules/keeper.ts
rules/hurt.ts
rules/heal.ts
layouts/keeper.json
scenarios/new-keeper.json
scenarios/heal.jsonWas in The Forge bleibt
- Du schreibst und prüfst das Projekt. Der Compiler sagt dir, was falsch ist und wo.
- Du wendest an, bereitest vor und veröffentlichst in The Forge. Der Server prüft dein Projekt erneut, und sein Urteil zählt.
- Regeln können keine Pakete importieren und nichts außerhalb des Projekts erreichen.

