Frameworki kodowe
Układ projektu i manifest
Gdzie trafia każdy plik, jak nazywać pliki i co musi zadeklarować manifest.
Foldery
| Folder | Zawiera | Uwagi |
|---|---|---|
| manifest/ | project.json | Dokładnie jeden manifest. |
| schemas/ | Jeden plik JSON na framework | Id frameworka to pole id w pliku. |
| rules/ | Pliki reguł w TypeScript | Jedna eksportowana funkcja na plik konstruktora lub akcji. |
| layouts/ | Ramki | Każda ramka to plik JSON wymieniony przez framework. |
| scenarios/ | Testami | Jeden 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
{
"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"]
}- Wiersz 3 Zachowaj projectId, który utworzył edytor. Musi pasować do id projektu.
- Wiersze 8-9 Ścieżki zaczynają się od katalogu głównego projektu.
| Pole | Wymagane | Znaczenie |
|---|---|---|
| formatVersion | Tak | Zawsze fabled.game-project/v1. |
| projectId | Tak | Identyfikator utworzony przez edytor dla Twojej gry. Zostaw go bez zmian. Musi się zgadzać z identyfikatorem całego projektu, inaczej zapis się nie powiedzie. |
| projectKind | Tak | GAME dla pełnej gry z postacią albo ADD_ON dla dodatkowych treści. |
| compilerProfile | Tak | Zawsze native-game-v1. |
| name | Tak | Nazwa projektu. |
| description | Nie | Do 2000 znaków. Użyj go na licencję lub linię z autorstwem. |
| entryFramework | Tak | Framework, który gracze tworzą jako pierwszy. Dla GAME to postać grywalna. |
| frameworks | Tak | Ścieżki plików frameworków, od 1 do 64. |
| scenarios | Tak | Ś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 projectIdKaż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ć.

