Skip to content

マルチプレイゲーム

マルチプレイゲーム は、放送者と視聴者が一つのゲームの同一のプレイを遊ぶ形式のニコ生ゲームです。 最終得点のみを競うランキングゲームと異なり、ゲーム内のプレイヤー同士にインタラクションさせることができます。

マルチプレイゲームは、以下の要求仕様を除き通常の Akashic ゲームです。 Akashic Engine 入門 » マルチプレイのゲーム作成 を参照してコンテンツを作成してください。

INFO

以下、このページでは技術的な仕様を扱っています。 ゲーム作成の考え方や具体的なコードの例については、マルチプレイゲームを作ろう も参照してください。

要求仕様

supportedModes

マルチプレイのニコ生ゲームは、 game.json の environment.nicolive.supportedModes の値に ["multi_admission"] を指定している必要があります。

json
{
  "environment": {
    "nicolive": {
      "supportedModes": ["multi_admission"]
    }
  }
}

解像度・FPS・サイズ

ランキングモードと同じく、次の条件を満たす必要があります。

  • 画面解像度: 1280x720 以下 (16:9 を推奨)
  • FPS: 1 以上 60 以下 (30 または 60 を推奨)
  • ファイルサイズ
    • 全体: 30MB 以下 (zip 圧縮前)
    • game.json: 100KB 以下

固有の動作と機能

ユーザ名の取得

マルチプレイのニコ生ゲームでは、ニコニコのユーザ名を利用することができます。 詳細は ユーザ名を使う を参照してください。

ただし必要となる機能の関係上、 Akashic Engine v3 以降でゲームが作成されている必要があります。

放送者の判別

マルチプレイのニコ生ゲームでは、配信上で放送者であるプレイヤーを識別することができます。 詳細は 放送者を判別する を参照してください。

プレイヤーの募集

マルチプレイのニコ生ゲームでは、起動時にランキングゲームと同様 [プレイヤーの募集][] が行われます。 何らかの理由でプレイヤー募集を行いたくない場合は、 supportedModes"multi_admission" ではなく "multi" を指定してください。

動作確認

マルチプレイゲームの動作確認は、Akashic ゲームとして単に akashic serve コマンドで行うことができます。 ただしニコ生ゲームの場合は --target-service nicolive オプションが利用できます。

shell
$ akashic serve --target-service nicolive

--target-service (短縮形 -s) オプションは、 serve コマンドに特定のサービス上の動作をできるだけ再現させるものです。 現在指定可能な値は nicolivenone (デフォルト値) の二つです。

nicolive が指定された場合、 serve コマンドは次のように振る舞います。

  • 放送者役をいちいち Join させなくてもいいように
    • 起動後、最初に開かれたブラウザウィンドウのプレイヤーを必ず Join させる
    • 「新規プレイ」ボタンでゲームを始める時も、このブラウザウィンドウのプレイヤーを Join させる
    • 「Join Me」ボタンが無効になる
  • コンテンツ起動時に与えられる引数を、ニコニコ生放送と同様のものに
    • 詳細割愛 (通常、ゲーム開発者がこの値を参照する必要はありません)

Akashic Engine 入門 » Join と Leave でも記載のとおり、ニコニコ生放送では「放送者がただ一人 Join する」動作になっています。 --target-service を指定すると、「Join Me」ボタンを逐一押さずに放送者を含めた動作を確認することができます。

投稿

作成したゲームを実際にニコニコ生放送上で遊ぶには、ニコ生ゲームを投稿しよう を参照してください。