akashic init テンプレート利用ガイド

akashic init コマンドで利用可能なカスタムテンプレートの作成方法と、テンプレートをチームで共有する方法を説明します。

自分だけが利用するテンプレートを作る

作成した Akashic ゲームをテンプレートにするときは、作成したゲームをディレクトリごとテンプレートディレクトリにコピーします。

テンプレートディレクトリの場所は Windows の場合は %USERPROFILE%\.akashic-templates Unix/Linux の場合は $HOME/.akashic-templates です。

akashic init はテンプレートディレクトリから、テンプレート名と同じ名前のディレクトリを探し、見つかった場合はその中身をディレクトリ構造を保ったままカレントディレクトリにコピーします。

コピー完了後 width, height, fps の値をユーザに問い合わせ、カレントディレクトリにある game.json の該当する値を更新します。

例えば、

akashic init -t mytemplate

と入力した場合、akashic init.akashic-templates/mytemplate 以下のファイルやディレクトリをコピーします。

ゲームのルートディレクトリ以外の場所に game.json を配置する場合

ゲームのルートディレクトリ以外の場所に game.json を配置する場合、テンプレートディレクトリ内にあるテンプレート名と同じ名前のディレクトリ直下に、 template.json という名前のファイルを置いて、game.json のパスを明示します。

例えば、以下の内容を template.json に書き込んだ場合、ゲームのルートディレクトリ以下の game ディレクトリ内に配置されている game.json を利用します。

{
  "gameJson": "game/game.json"
}

カスタムテンプレートを akashic init のデフォルトにする

$HOME/.akashicrc に項目を追加すると -t オプションを使用しない場合のテンプレートを指定できます。例えばテンプレート名が mytemplate の場合は以下のようになります。

[init]
defaultTemplateType="mytemplate"

チームでテンプレートを共有する

Web サーバを用意して、テンプレートを zip で固めたものを配置してテンプレート配信サーバを用意することで、チームでテンプレートを共有できます。テンプレート配信サーバが登録されていると、akashic init は指定した名前のテンプレートがテンプレートディレクトリに存在しない場合に、サーバからテンプレートをダウンロードします。

zip ファイルの作り方

ゲームのコンテンツを テンプレート名.zip という名前で zip 圧縮します。トップレベルディレクトリは含まないように圧縮してください。

例えば zip コマンドを利用する場合、ゲームのディレクトリで以下のコマンドを利用して作成できます。

zip -R mytemplate.zip *

テンプレートリストの作り方

Web サーバには template-list.json という名前のファイルが必要です。このファイルには以下のようにテンプレート名と zip ファイルのパスの対応を記述します。

{
  "templates": {
    "javascript": "javascript.zip",
    "typescript": "typescript.zip",
    "mytemplate": "mytemplate.zip"
  }
}

テンプレートサーバアドレスの設定

テンプレートサーバを利用するユーザの $HOME/.akashicrc に以下のような項目を追加してサーバアドレスを指定します。

[init]
repository="http://example.com/templates/"

このように設定した場合、以下のアドレスでファイルを取得できる必要があります。

  • http://example.com/templates/template-list.json でテンプレートリスト。
  • http://example.com/templates/mytemplate.zip でテンプレートの zip ファイル。

動作確認

テンプレートディレクトリに mytemplate が存在するばあいはディレクトリを削除して、以下のコマンドを入力します。

akashic init -t mytemplate

サーバに接続された場合、コンソール画面に次のようなログが出力されます。

INFO: access to http://example.com/templates/template-list.json

ダウンロードされたテンプレートはローカルテンプレートディレクトリに保存され、次回以降はローカルのテンプレートを利用するようになります。

テンプレートを再ダウンロードしたい場合(サーバのテンプレートが更新された場合など)は、テンプレートディレクトリ以下の該当するディレクトリを削除して、適当なディレクトリで akashic init を実行する必要があります。