Przejdź do głównej treści

Frameworki kodowe

Układ projektu i manifest

Gdzie trafia każdy plik, jak nazywać pliki i co musi zadeklarować manifest.

Foldery

FolderZawieraUwagi
manifest/project.jsonDokładnie jeden manifest.
schemas/Jeden plik JSON na frameworkId frameworka to pole id w pliku.
rules/Pliki reguł w TypeScriptJedna eksportowana funkcja na plik konstruktora lub akcji.
layouts/RamkiKażda ramka to plik JSON wymieniony przez framework.
scenarios/TestamiJeden obiekt scenariusza na plik.

Używaj małych liter i ścieżek względnych bez części „..”. Identyfikatory Frameworków, akcji i funkcji zaczynają się od małej litery, a dalej mogą zawierać małe litery, cyfry, podkreślenia lub myślniki, do 64 znaków.

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. Wiersz 3 Zachowaj projectId, który utworzył edytor. Musi pasować do id projektu.
  2. Wiersze 8-9 Ścieżki zaczynają się od katalogu głównego projektu.
PoleWymaganeZnaczenie
formatVersionTakZawsze fabled.game-project/v1.
projectIdTakIdentyfikator utworzony przez edytor dla Twojej gry. Zostaw go bez zmian. Musi się zgadzać z identyfikatorem całego projektu, inaczej zapis się nie powiedzie.
projectKindTakGAME dla pełnej gry z postacią albo ADD_ON dla dodatkowych treści.
compilerProfileTakZawsze native-game-v1.
nameTakNazwa projektu.
descriptionNieDo 2000 znaków. Użyj go na licencję lub linię z autorstwem.
entryFrameworkTakFramework, który gracze tworzą jako pierwszy. Dla GAME to postać grywalna.
frameworksTakŚcieżki plików frameworków, od 1 do 64.
scenariosTakŚcieżki plików scenariuszy, od 1 do 512.

Manifest przyjmuje tylko te pola oraz opcjonalne tables i rights. Nieznane pole jest błędem.

Jeśli identyfikator w manifeście i identyfikator projektu się różnią, sprawdzenie zatrzyma się z komunikatem:

manifest projectId does not match source tree projectId

Każdy plik musi być wymieniony

Manifest wymienia pliki frameworków i scenariuszy. Każdy plik frameworka wymienia własne reguły i ramki. Plik, do którego nic się nie odwołuje, jest błędem, więc usuń go albo wymień.

export function extra(): void {}

Dodanie tego pliku bez odwołania do niego kończy się błędem:

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

Ścieżka, która jest wymieniona, ale nie istnieje, też powoduje błąd. Tutaj manifest wskazuje plik scenariusza, który nie istnieje.

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

Limity rozmiaru

Projekt może zawierać do 8 MiB źródeł, 1000 plików, 64 Frameworki i 512 scenariuszy. Fabled kompiluje też Twoje źródła w jedną grę. Ta skompilowana gra musi zająć mniej niż 16 MiB, zanim będzie można ją przygotować.