メインコンテンツへスキップ

コードフレームワーク

コードフレームワークとは

コードプロジェクトとは何か、ファイルがフレームワーク、エレメント、フレーム、レジャーにどう対応するか、The Forge に残るものを説明します。

考え方

コードフレームワークは、ノードで組み立てる代わりに、小さなファイルのプロジェクトとして書くゲームシステムです。お好みのエディタやツールを使えます。The Forge は、ゲームをビルドするのと同じコンパイラでプロジェクトを検証します。

プロジェクト形式は native-game-v1 と呼ばれます。ルールは TypeScript の制限されたサブセットで書きます。インポート、ネットワーク、乱数がないため、同じ入力に対してルールは常に同じ結果を返します。

ダイスはルールではなく、シートで振ります。プレイヤーはフレームでダイスロールをクリックし、結果を読んで、アクションの入力として入力します。ルールがその数値を確認し、結果を書き込みます。「スキルに対してロールする」レシピは、この方法でパーセンタイル判定を作ります。

ファイルと Fabled の対応

各種類のファイルは、Fabled でおなじみのものになります。

ファイル変換先役割
manifest/project.jsonゲームプロジェクトに名前を付け、フレームワークとシナリオを一覧にします。
schemas/*.jsonフレームワーク1 種類のエレメントの入力、アクション、フレーム、コンテンツを宣言します。
rules/*.tsロジックエレメントを作成し、その値を変更し、派生値を計算します。
layouts/*.jsonフレームシートやカードを描き、ボタンをアクションに結び付けます。
scenarios/*.jsonテストエレメントを作成し、アクションを実行して、すべての値と書き込みを確認します。

エレメントは、キャラクター 1 体のような、フレームワークの実際のインスタンスです。エレメントへの変更はすべて、そのレジャーへの書き込みです。アクションが値を直接書き換えることはありません。レジャーに値の設定や加算を依頼し、シナリオがその書き込みを確認します。

プロジェクトの構成

このガイドで使うサンプルゲームのツリー全体です。Lantern Keepers には、ヒットポイントを持つキャラクター 1 体、アクション 2 つ、シート 1 つ、シナリオ 2 つがあります。

manifest/project.json
schemas/keeper.json
rules/keeper.ts
rules/hurt.ts
rules/heal.ts
layouts/keeper.json
scenarios/new-keeper.json
scenarios/heal.json

The Forge に残るもの

  • プロジェクトを書いて検証します。コンパイラが、何がどこで間違っているかを教えてくれます。
  • 適用、準備、リリースは The Forge で行います。サーバーがプロジェクトをもう一度検証し、その判定が最終結果になります。
  • ルールはパッケージをインポートしたり、プロジェクトの外にアクセスしたりできません。