akashic init
akashic init [<options>]
新しく Akashic で動作するゲームをカレントディレクトリに生成します。 このコマンドを実行すると、以下のような対話型のインターフェースが表示され、ゲーム画面の幅・高さおよびゲームの FPS を入力できます。
$ npm install -g @akashic/akashic-cli
$ cd GAME_HOME
$ akashic init
width: (320)
height: (320)
fps: (30)
また、本コマンドは、カレントディレクトリが空でない場合、エラーで失敗することがあります。 (生成されるファイル・ディレクトリが既に存在する場合、エラーでコマンドが失敗します)。
<options>
に指定可能なオプションは次のとおりです。
オプション | 短縮名 | 効果 | デフォルト値 |
---|---|---|---|
--type <type> | -t | <type> の値に応じたゲームが作成されます。詳細については後述します。 | javascript |
--force | -f | 生成されるファイル・ディレクトリが既に存在する場合でも、エラーにせず上書きします。 | 指定なし |
--yes | -y | 対話型インターフェースを表示せずに、デフォルトの設定でゲームを生成します。 | 指定なし |
--list | -l | --type オプションで利用可能なテンプレートのリストを表示します。 | 指定なし |
--repository <reponame> | -r | テンプレートを検索できるリポジトリを指定します。 | 指定なし |
--type オプション
<type> に指定できる値は、 以下の通りです。指定しない場合、 javascript
が指定されたものとして扱われます。
javascript
javascript-minimal
javascript-shin-ichiba-ranking
typescript
typescript-minimal
typescript-shin-ichiba-ranking
これとは別に、<type>に github:<owner>/<repository>
と指定することで GitHub (github.com) からテンプレートを取得することができます。
またローカルマシン内のデータや、独自の Web サーバ上のファイルをテンプレートとして使うこともできます。
javascript
下記のディレクトリ・ファイルを含む JavaScript で書かれたゲームが生成されます。
GAME_HOME
+- image/
+- text/
+- audio/
+- script/
+- main.js
+- game.json
+- package.json
script/main.js
を編集することでゲームの作成が可能です。 これらのディレクトリ・ファイルの詳細は init で作られるファイル の節を参照してください。 このゲームではサンプルとして以下のような処理が行われています。
- スプライトの表示
- 音を鳴らす
- タッチイベント定義
javascript-minimal
最低限の処理しか記述されていない空のゲームが生成されます。 script/main.js
を編集することでゲームの作成が可能です。
javascript-shin-ichiba-ranking
ニコ生ゲームのランキングに対応したゲームの雛形が生成されます。 script/main.js
を編集することでゲームの作成が可能です。基本的に script/_bootstrap.js
を編集する必要はありません。 このゲームでは、script/main.js
の main
関数の引数 param
に以下の値が新たに付与されています。
param.sessionParameter
: セッションパラメータ
ランキングモードに対応したニコ生ゲームの作り方については、こちらを参照してください。
typescript
TypeScript で書かれたゲームと、ビルドに必要なディレクトリ・ファイルが生成されます。 これらをビルドすることで、game ディレクトリ以下に Akashic で動作するゲームを生成します。 ビルドの方法は、生成される README.md を参照してください。
ゲームの内容は、--type javascript
を指定した場合に生成されるゲームと同一です。
typescript-minimal
--type tyepescript
と同様に、TypeScript で書かれたゲームと、ビルドに必要なディレクトリ・ファイルが生成されます。
ゲームの内容は、--type javascript-minimal
を指定した場合に生成されるゲームと同一です。
typescript-shin-ichiba-ranking
--type tyepescript
と同様に、TypeScript で書かれたゲームと、ビルドに必要なディレクトリ・ファイルが生成されます。
ゲームの内容は、--type javascript-shin-ichiba-ranking
を指定した場合に生成されるゲームと同一です。
GitHub リポジトリからのテンプレート生成
--type github:<owner>/<repository>
と指定した場合、GitHub からテンプレートを取得することができます。private repository など認証が必要な場合は akashic config
で init.github.protocol
を ssh
に設定してください。
akashic config set init.github.protocol ssh # 初回のみ。認証を必要としない場合は不要。
akashic init -t github:your-orgs/your-repo
また ghe:<owner>/<repository>
と指定することで GitHub Enterprise からテンプレートを生成できます。 GitHub Enterprise の URL は akashic config
により設定できます。
akashic config set init.ghe.host your.company.com # 初回のみ
akashic init -t ghe:your-orgs/your-repo
akashic init では以下の設定を利用します。設定は akashic config
コマンドを利用して行います。
プロパティ名 | 内容 | デフォルト値 |
---|---|---|
init.repository | テンプレート配信サーバの URL。空文字列の時はサーバを利用しません。 | 空文字列 |
init.defaultTemplateType | テンプレートの種類が省略されたときに利用するテンプレート名。 | javascript |
init.localTemplateDirectory | ローカルファイルシステムでテンプレートを保存する場所。 | $HOME/.akashic-templates/ |
init.github.host | GitHub のホスト名。 | github.com |
init.github.protocol | GitHub からプロジェクトを clone する際のプロトコル。https または ssh が指定可能。 | https |
init.ghe.host | GitHub Enterprise のホスト名。 | 指定なし |
init.ghe.protocol | GitHub Enterprise からプロジェクトを clone する際のプロトコル。https または ssh が指定可能。 | https |
ローカルマシンや Web サーバ上のテンプレートからの生成
開発ツール » akashic init テンプレート利用ガイド を参照してください。
アクセス確認と保存
-t gihtub:
や ghe:
、-r
オプションで URL へアクセスする場合はプロンプトにて確認を行います。 プロンプトにて URL へのアクセスを許可した場合は、$HOME/.akashicrc
へ最大 4 件保存します。5 件目を保存する場合は、最初の 1 件目が削除されます。 また、保存されている値とオプションで指定された値が同じ場合は、確認のプロンプトをスキップします。
init で作られるファイル
内容はテンプレートに依存します。 javascript
や javascript-shin-ichiba-ranking
で生成される主なファイル・ディレクトリは以下のとおりです。
image ディレクトリ
画像素材を配置するディレクトリ。
サポートされる拡張子は png/jpg であり、拡張子と画像フォーマットは一致している必要があります。それ以外の拡張子のファイル、または "." から始まるファイルは無視されます。
text ディレクトリ
テキスト素材を配置するディレクトリ。
サポートされる拡張子は特に指定がないため、 "." から始まるファイル以外はすべて取り込まれます。 取り込まれないファイルを指定する方法は検討中。
audio ディレクトリ
音楽、効果音など、音素材を配置するディレクトリ。
サポートされる拡張子は .ogg, .m4a と .aac であり、拡張子とファイルフォーマットは一致している必要があります。それ以外の拡張子のファイル、または "." から始まるファイルは無視されます。
他の素材と異なり、音素材は、ファイル名の拡張子部分のみが異なる複数のファイルをまとめて取り扱います。 ゲームの実行環境に応じて適切な形式が自動的に選択されます。 主要な実行環境をサポートするために、次のいずれかの組み合わせでファイルを置いてください。
- Ogg Vorbis 形式 (.ogg) と M4A 形式 (.m4a)
- Ogg Vorbis 形式 (.ogg) と AAC 形式 (.aac)
script ディレクトリ
スクリプト素材を配置するディレクトリ。
サポートされる拡張子は.js と.json であり、拡張子とファイルフォーマットは一致している必要があります。それ以外の拡張子のファイル、または "." から始まるファイルは無視されます。
慣習として、各 Scene を実装するファイルは、このディレクトリ内に "Scene.js" という接尾辞をつけて配置される事が推奨されます(例: titleScene.js, battleScene.js)。
main.js ファイル
ゲームの処理が記述されているファイル。
このファイルを編集することによってゲームを作成することが可能です。
_bootstrap.js ファイル {#_bootstrap.js}
--type javascript-shin-ichiba-ranking
を指定した時(もしくは --type typescript-shin-ichiba-ranking
を指定後ビルドした時)のみ作られるファイルです。 このファイルがエントリーポイントとなりますが、ゲーム開発者がこのファイルを編集することは基本的にありません。 ここで行っていることは、以下の通りです。
- セッションパラメータの取得
- main.js に自動的に遷移
game.json ファイル
ゲームの各種情報を記述するファイル。
akashic init --type javascript-minimal
を実行した直後は以下のような内容になっています。 (ただし width, height, fps は init で指定した値)
{
"width": 480,
"height": 480,
"fps": 30,
"assets": {
"mainScene": {
"type": "script",
"path": "script/main.js",
"global": true
}
}
}
詳細な仕様はリファレンス » game.json の仕様を参照してください。