Zum Hauptinhalt springen

Code-Frameworks

Projektaufbau und Manifest

Wohin jede Datei gehört, wie Dateien benannt werden und was das Manifest deklarieren muss.

Ordner

OrdnerEnthältHinweise
manifest/project.jsonGenau ein Manifest.
schemas/Eine JSON-Datei pro FrameworkDie Framework-ID ist das Feld id der Datei.
rules/TypeScript-RegeldateienEine exportierte Funktion pro Konstruktor- oder Aktionsdatei.
layouts/FramesJeder Frame ist eine JSON-Datei, die ein Framework auflistet.
scenarios/TestsEin Szenario-Objekt pro Datei.

Nutze relative Pfade in Kleinbuchstaben ohne .. als Teil. IDs von Frameworks, Aktionen und Funktionen beginnen mit einem Kleinbuchstaben, danach folgen Kleinbuchstaben, Ziffern, Unterstriche oder Bindestriche, bis zu 64 Zeichen.

Das 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. Zeile 3 Behalte die projectId, die der Editor erstellt hat. Sie muss zur id des Projekts passen.
  2. Zeilen 8-9 Pfade beginnen im Stammordner des Projekts.
FeldPflichtBedeutung
formatVersionJaImmer fabled.game-project/v1.
projectIdJaDie ID, die der Editor für dein Spiel erstellt hat. Lass sie unverändert. Sie muss mit der ID des gesamten Projekts übereinstimmen, sonst schlägt das Speichern fehl.
projectKindJaGAME für ein volles Spiel mit Charakter oder ADD_ON für zusätzliche Inhalte.
compilerProfileJaImmer native-game-v1.
nameJaDer Projektname.
descriptionNeinBis zu 2000 Zeichen. Nutze es für eine Lizenz- oder Credit-Zeile.
entryFrameworkJaDas Framework, das Spieler zuerst erstellen. Bei einem GAME ein spielbarer Charakter.
frameworksJaPfade der Framework-Dateien, 1 bis 64.
scenariosJaPfade der Szenario-Dateien, 1 bis 512.

Das Manifest akzeptiert nur diese Felder, dazu optionale tables und rights. Ein unbekanntes Feld ist ein Fehler.

Wenn die ID im Manifest und die ID des Projekts voneinander abweichen, bricht die Prüfung ab mit:

manifest projectId does not match source tree projectId

Jede Datei muss aufgelistet sein

Das Manifest listet die Framework- und Szenario-Dateien auf. Jede Framework-Datei listet ihre eigenen Regeln und Frames auf. Eine Datei, auf die nichts verweist, ist ein Fehler. Entferne sie oder liste sie auf.

export function extra(): void {}

Wird diese Datei hinzugefügt, ohne dass auf sie verwiesen wird, schlägt es fehl mit:

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

Ein Pfad, der aufgelistet ist, aber fehlt, schlägt ebenfalls fehl. Hier verweist das Manifest auf eine Szenario-Datei, die nicht existiert.

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

Größenlimits

Ein Projekt kann bis zu 8 MiB Quelltext, 1000 Dateien, 64 Frameworks und 512 Szenarien enthalten. Fabled kompiliert deinen Quelltext außerdem zu einem Spiel. Dieses kompilierte Spiel muss unter 16 MiB bleiben, bevor es vorbereitet werden kann.