ニコ生ゲーム

ニコニコ生放送では、配信内でゲームを起動して、配信者と視聴者で一緒に遊ぶことができます。 これらの配信内で起動できるコンテンツを ニコ生ゲーム と呼びます。

Akashic Engine では、このニコ生ゲームを作成することができます。これには概ね次のステップが必要です。

  • サポートする「モード」を指定
  • モードに応じたコンテンツを作成
  • 投稿

また akashic-sandboxaksahic serve コマンドは、ニコ生ゲームの開発に便利な機能を提供しています。

# モード

ニコ生ゲームを作成するには、まずコンテンツが対応する モード を決める必要があります。

モードは放送内での遊び方を決めるもので、以下の種類があります。

  • ランキングモード ("ranking"): 一人プレイのゲームを、放送者と各視聴者がそれぞれ遊び、スコアを競う
  • ひとりで遊ぶモード ("single"): 一人プレイのゲームを放送者が遊び、視聴者はその様子を見る
  • みんなで遊ぶモード ("multi_admission"): 放送者と視聴者複数人で一つのゲームプレイで遊ぶ

モードを指定するには、game.jsonenvironment.nicolive.supportedModes プロパティを加え、そのゲームが対応するモードを(配列で)全て列挙してください。ニコニコ生放送には、ここで列挙されたそれぞれのモードで起動できるように登録されます。

次の例は、ランキングモードに対応する game.json の記述例です。

{
  "environment": {
    "nicolive": {
      "supportedModes": ["ranking"]
    }
  }
}

"ranking" モードを指定する場合は、ゲーム内でスコアを設定する必要があります (後述) 。 それ以外のモードでは、そのような条件はありません。普通の Akashic Engine のコンテンツとしてシングルプレイ・マルチプレイのコンテンツを作るだけで投稿できます。

"multi_admission" の代わりに "multi" を指定することもできます。 "multi" は「起動時にニコ生がプレイヤー募集を行わない」点を除き "multi_admission" と同じです。特に意図がなければ、募集を行う "multi_admission" の利用をおすすめします。詳細は プレイヤーの募集 を参照してください。

以前は environment.nicolive ではなく environment.niconico プロパティを利用していました。現在 environment.niconico は非推奨になっています。詳細は ニコ生ゲーム関連の仕様 を参照してください。

# 解像度と FPS

モードを決めたら、それに応じたコンテンツを作る必要があります。 選んだモードに関わらず、画面解像度と FPS には次の制約があります。

  • 画面解像度: 1280x720 以下 (16:9 を推奨)
  • FPS: 1 以上 60 以下 (30 または 60 を推奨)

ニコニコ生放送内のゲームは放送画面に合うよう自動的に拡縮されます。放送画面上で縦横に余白なく表示できるよう、アスペクト比 16:9 を推奨します。公開されているいくつかのサンプルコンテンツ(泥棒バスターなど))は、640x360 で作成されています。

FPS は 30 または 60 を推奨します。低い方が負荷は低いので、演出上必要がなければ 30 にしておくと、より広い環境でストレスなく遊べる可能性があります。

解像度や FPS は、 akashic コマンドでゲームを生成する時点で入力を求められるので、そこで指定することができます。

$ akashic init
(中略)
prompt: width:  (320) 640
prompt: height:  (320) 360
prom pt: fps:  (30) 30
INFO: Done!

生成済みのゲームの場合は、 game.jsonwidth, height, fps プロパティをそれぞれ編集してください。

{
  "width": 640,
  "height": 360,
  "fps": 30,
  "...": "(その他の値)"
}

この他のゲームで必要な対応や、開発ツールでの動作確認方法はモードによります。次の節で "ranking" モードのゲームについて、その次では "multi_admission" モードのゲームについて述べます。