README
coe
coe は共体験アプリケーションフレームワークです。
本フレームワークについては以下の文書を参照してください。
インストール
以下からモジュールをインストールします。
npm i @akashic-extension/coe --save
利用
- 任意の script 内でインポートします。
- Akashic のエントリポイントから
initialize()
関数を呼び出します。 - 任意の
Controller
のインスタンスを生成します。 coe.Scene
のインスタンスを生成し、Controller
を渡します。
サンプルコード (TypeScript)
import * as coe from "@akashic-extension/coe";
function main(args) {
coe.initialize({ game: g.game, args });
const scene = new coe.Scene({
// ...
controller: new coe.COEController({
// ...
});
});
scene.loaded.add(() => {
// ...
});
}
export = main;
設計
本フレームワークは以下のモデルによって作られています。
- Controller
- View からの Action を受け取る。
- View へ Command をブロードキャストする。
- 一つのプレイに対し、必ず一つのみ存在する。
- View
- Controller に対して Action を送信する。
- Controller からブロードキャストされた Command を受信した際の処理を持つ。
- 一つのプレイに対し、複数存在しうる。
- 一つの View は Akashic Engine の各インスタンスに相当する。
また、 Controller/View 間でのデータモデルは以下の2つがあります。
- Action
- View から Controller に対して送信されるデータ。
- Command
- Controller からブロードキャストされるデータ。
Action
Action +------------+ (trusted) +--------+
+----------> | Controller | <---------- | system |
| +------------+ +--------+
| |
| +-------------+ Command
| | | (broadcast)
| v v
+--------+ +--------+
| View | | View |
+--------+ +--------+
ビルド
npm run build
テスト
npm test