コードフレームワーク
プロジェクト構成とマニフェスト
各ファイルの置き場所、ファイル名の付け方、マニフェストで宣言すべき内容を説明します。
フォルダ
| フォルダ | 内容 | 備考 |
|---|---|---|
| manifest/ | project.json | マニフェストはちょうど 1 つです。 |
| schemas/ | フレームワークごとに 1 つの JSON ファイル | フレームワークの ID は、ファイルの id フィールドです。 |
| rules/ | TypeScript のルールファイル | コンストラクタまたはアクションのファイルごとに、エクスポートする関数は 1 つです。 |
| layouts/ | フレーム | 各フレームは、フレームワークが一覧にする JSON ファイルです。 |
| scenarios/ | テスト | ファイルごとにシナリオオブジェクトは 1 つです。 |
小文字の相対パスを使い、.. を含めないでください。Framework、アクション、関数の ID は小文字で始め、その後は小文字、数字、アンダースコア、ハイフンを使って、64 文字以内にします。
マニフェスト
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"]
}- 3 行目 エディタが作成した projectId はそのまま残してください。プロジェクトの id と一致する必要があります。
- 8-9 行目 パスはプロジェクトのルートから始まります。
| フィールド | 必須 | 意味 |
|---|---|---|
| formatVersion | はい | 常に fabled.game-project/v1 です。 |
| projectId | はい | エディタがゲーム用に作成した ID です。そのまま残してください。プロジェクト全体の ID と一致している必要があり、一致しないと保存に失敗します。 |
| projectKind | はい | キャラクターを持つ完全なゲームには GAME、追加コンテンツには ADD_ON を使います。 |
| compilerProfile | はい | 常に native-game-v1 です。 |
| name | はい | プロジェクト名です。 |
| description | いいえ | 2000 文字までです。ライセンスやクレジット表記に使います。 |
| entryFramework | はい | プレイヤーが最初に作成するフレームワークです。GAME の場合は、プレイ可能なキャラクターです。 |
| frameworks | はい | フレームワークファイルのパスです。1 から 64 個です。 |
| scenarios | はい | シナリオファイルのパスです。1 から 512 個です。 |
マニフェストが受け付けるのは、これらのフィールドと、任意のテーブルおよび権利情報だけです。不明なフィールドはエラーになります。
マニフェストの ID とプロジェクトの ID が異なる場合、チェックは次のメッセージで停止します。
manifest projectId does not match source tree projectIdすべてのファイルを一覧に載せる必要があります
マニフェストは、フレームワークファイルとシナリオファイルを一覧にします。各フレームワークファイルは、自身のルールとフレームを一覧にします。どこからも参照されないファイルはエラーになるため、削除するか一覧に追加してください。
export function extra(): void {}このファイルを参照せずに追加すると、次のエラーになります。
Project contains undeclared source files: rules/extra.ts.一覧にあるのに存在しないパスもエラーになります。ここでは、マニフェストが存在しないシナリオファイルを指しています。
{
"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.サイズの上限
1 つのプロジェクトには、最大 8 MiB のソース、1000 個のファイル、64 個の Framework、512 個のシナリオを含められます。Fabled はソースを 1 つのゲームにコンパイルします。準備する前に、そのコンパイル済みゲームは 16 MiB 未満である必要があります。

