(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023166354
(43)【公開日】2023-11-21
(54)【発明の名称】ゲームシステム、ゲーム処理方法、およびゲームプログラム
(51)【国際特許分類】
A63F 13/795 20140101AFI20231114BHJP
A63F 13/30 20140101ALI20231114BHJP
A63F 13/55 20140101ALI20231114BHJP
A63F 13/533 20140101ALI20231114BHJP
A63F 13/52 20140101ALI20231114BHJP
【FI】
A63F13/795
A63F13/30
A63F13/55
A63F13/533
A63F13/52
【審査請求】有
【請求項の数】9
【出願形態】OL
【公開請求】
(21)【出願番号】P 2023099932
(22)【出願日】2023-06-19
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】中尾 一
(72)【発明者】
【氏名】田口 幸次郎
(72)【発明者】
【氏名】若杉 武史
(57)【要約】
【課題】マルチプレイをする相手が少ないという状況の発生を抑制できるゲームシステム、ゲーム処理方法、ゲームプログラムを提供すること。
【解決手段】ゲーム装置は、第1のマッチング処理の結果に基づき、第1の他のゲーム装置群と接続し、第1の仮想ゲーム空間を描画する。第1の仮想ゲーム空間の表示中に、所定のステージをプレイすることが選択されると、第2のマッチング処理が行われる。第2のマッチング処理では、第1のマッチング処理によってマッチングされた第1の他のゲーム装置群に限定することなく選択した1以上の他のゲーム装置を第2の他のゲーム装置群として、当該第2の他のゲーム装置群とゲーム装置とをマッチングする。
【選択図】
図10
【特許請求の範囲】
【請求項1】
ネットワークに接続されたゲーム装置、当該ネットワークに接続された複数の他のゲーム装置、および、サーバとを備えるゲームシステムであって、
前記ゲーム装置のコンピュータは、
第1のモードにおいて、
第1のマッチング処理の要求を前記サーバに送信し、
前記サーバから受信した第1のマッチング処理の結果に基づき、前記ゲーム装置を第1の他のゲーム装置群と接続し、
前記ゲーム装置のプレイヤの操作に基づいて移動制御される自プレイヤキャラクタ、および、前記第1の他のゲーム装置群に含まれる各他のゲーム装置から取得されるデータに基づいて移動制御される他プレイヤキャラクタ群のうちの少なくとも一部を第1の仮想ゲーム空間に配置して描画し、
前記第1の仮想ゲーム空間の表示中に、前記ゲーム装置のプレイヤの操作に応じて、複数のゲームステージから所定のゲームステージを選択するステージ選択処理を実行し、
前記ステージ選択処理が実行されたことに応じて、第2のモードに移行し、
前記第2のモードにおいて、
第2のマッチング処理の要求を前記サーバに送信し、
前記サーバから受信した第2のマッチング処理の結果に基づき、前記ゲーム装置を第2の他のゲーム装置群と接続し、
前記自プレイヤキャラクタ、および、前記第2の他のゲーム装置群に含まれる各他のゲーム装置のプレイヤによって操作される他プレイヤキャラクタ群のうちの少なくとも一部を、前記ステージ選択処理によって選択されたステージに対応する第2の仮想ゲーム空間に配置して描画し、
前記サーバのコンピュータは、
前記ゲーム装置からの第1のマッチング処理の要求を受信したことに応じて、前記第1のマッチング処理として、前記複数の他のゲーム装置の中から選択される前記第1の他のゲーム装置群と前記ゲーム装置とをマッチングし、当該第1のマッチング処理の結果を前記ゲーム装置に送信し、
前記ゲーム装置からの第2のマッチング処理の要求を受信したことに応じて、前記第2のマッチング処理として、前記第1のマッチング処理によってマッチングされた前記第1の他のゲーム装置群に限定することなく前記複数の他のゲーム装置の中から選択した1以上の他のゲーム装置を前記第2の他のゲーム装置群として、当該第2の他のゲーム装置群と前記ゲーム装置とをマッチングし、当該第2のマッチング処理の結果を前記ゲーム装置に送信するゲームシステム。
【請求項2】
前記第1の仮想ゲーム空間内において、当該第1の仮想ゲーム空間内に配置されている複数のステージオブジェクトのうちのいずれかに前記自プレイヤキャラクタを移動させることで、当該ステージオブジェクト関連付けられている前記ゲームステージが選択される、請求項1に記載のゲームシステム。
【請求項3】
前記第2のモードに移行する場合、前記第1のモードにおける前記第1の他のゲーム装置群との接続を解除する、請求項1に記載のゲームシステム。
【請求項4】
前記第1のモードにおいて、前記ゲーム装置のプレイヤと、前記第1の他のゲーム装置群に含まれる他のゲーム装置のプレイヤのうちの所定のプレイヤとが同じステージを選択し、かつ、両プレイヤに係る前記ステージ選択処理が所定の期間内に実行された場合、前記第2のモードにおいて、当該ゲーム装置は、前記所定のプレイヤに係る他のゲーム装置が含まれる前記第2の他のゲーム装置群に接続される、請求項1に記載のゲームシステム。
【請求項5】
前記ゲーム装置のコンピュータは、
前記第2のモードにおいて、所定のステージ終了条件が満たされた場合、前記第1のモードに移行し、
前記サーバのコンピュータは、
前記ゲーム装置が前記第2のモードから第1のモードに移行する際、前記第1の他のゲーム装置群に含まれていない他のゲーム装置が含まれ得る第3の他のゲーム装置群を当該ゲーム装置についてのマッチングの対象として、前記第1のマッチング処理を実行し、
前記ゲーム装置のコンピュータは、前記第3の他のゲーム装置群をマッチングの対象とした前記第1のマッチング処理によって決定された、新たな第1の他のゲーム装置群と当該ゲーム装置とを接続する、請求項1に記載のゲームシステム。
【請求項6】
前記第2のモードにおいて、前記ゲーム装置のプレイヤと、前記第2の他のゲーム装置群に含まれる他のゲーム装置のプレイヤのうちの所定のプレイヤとが前記ステージをクリアしたタイミングが所定の期間内に含まれている場合、前記第1のモードにおいて、前記ゲーム装置は、前記所定のプレイヤのゲーム装置が含まれる前記第1の他のゲーム装置群と接続される、請求項5に記載のゲームシステム。
【請求項7】
前記ゲームシステムには、前記第1の仮想ゲーム空間として表示され得る複数の異なる仮想ワールドを定義したワールド情報が記憶されており、
前記ゲーム装置のコンピュータは、
第1の仮想ワールドに対応する前記第1の仮想ゲーム空間の表示中に、前記ゲーム装置のプレイヤの操作に応じて、当該第1の仮想ワールドから第2の仮想ワールドに移動するためのワールド移動処理を実行し、
前記ワールド移動処理が実行された場合、そのときに接続されている前記第1の他のゲーム装置群との接続を解除し、
前記ワールド移動処理に応じて前記サーバで行われた前記第1のマッチング処理の結果に基づき、第2のワールドに対応する第1の仮想ゲーム空間が表示される他のゲーム装置からなる新たな前記第1の他のゲーム装置群と当該ゲーム装置とを接続する、請求項1に記載のゲームシステム。
【請求項8】
ネットワークに接続されたゲーム装置、当該ネットワークに接続された複数の他のゲーム装置、および、サーバとを備えるゲームシステムのコンピュータに実行させるゲーム処理方法であって、
前記ゲーム装置のコンピュータに、
第1のモードにおいて、
第1のマッチング処理の要求を前記サーバに送信させ、
前記サーバから受信した第1のマッチング処理の結果に基づき、前記ゲーム装置を第1の他のゲーム装置群と接続させ、
前記ゲーム装置のプレイヤの操作に基づいて移動制御される自プレイヤキャラクタ、および、前記第1の他のゲーム装置群に含まれる各他のゲーム装置から取得されるデータに基づいて移動制御される他プレイヤキャラクタ群のうちの少なくとも一部を第1の仮想ゲーム空間に配置して描画させ、
前記第1の仮想ゲーム空間の表示中に、前記ゲーム装置のプレイヤの操作に応じて、複数のゲームステージから所定のゲームステージを選択するステージ選択処理を実行させ、
前記ステージ選択処理が実行されたことに応じて、第2のモードに移行させ、
第2のモードにおいて、
第2のマッチング処理の要求を前記サーバに送信させ、
前記サーバから受信した第2のマッチング処理の結果に基づき、前記ゲーム装置を第2の他のゲーム装置群と接続させ、
前記自プレイヤキャラクタ、および、前記第2の他のゲーム装置群に含まれる各他のゲーム装置のプレイヤによって操作される他プレイヤキャラクタ群のうちの少なくとも一部を、前記ステージ選択処理によって選択されたステージに対応する第2の仮想ゲーム空間に配置して描画させ、
前記サーバのコンピュータに、
前記ゲーム装置からの第1のマッチング処理の要求を受信したことに応じて、前記第1のマッチング処理として、前記複数の他のゲーム装置の中から選択される前記第1の他のゲーム装置群と前記ゲーム装置とをマッチングさせ、当該第1のマッチング処理の結果を前記ゲーム装置に送信させ、
前記ゲーム装置からの第2のマッチング処理の要求を受信したことに応じて、前記第2のマッチング処理として、前記第1のマッチング処理によってマッチングされた前記第1の他のゲーム装置群に限定することなく前記複数の他のゲーム装置の中から選択した1以上の他のゲーム装置を前記第2の他のゲーム装置群として、当該第2の他のゲーム装置群と前記ゲーム装置とをマッチングさせ、当該第2のマッチング処理の結果を前記ゲーム装置に送信させる、ゲーム処理方法。
【請求項9】
ネットワークに接続されたゲーム装置、当該ネットワークに接続された複数の他のゲーム装置、および、サーバとを備えるゲームシステムのコンピュータに実行させるゲームプログラムであって、
前記ゲーム装置のコンピュータに、
第1のモードにおいて、
第1のマッチング処理の要求を前記サーバに送信させ、
前記サーバから受信した第1のマッチング処理の結果に基づき、前記ゲーム装置を第1の他のゲーム装置群と接続させ、
前記ゲーム装置のプレイヤの操作に基づいて移動制御される自プレイヤキャラクタ、および、前記第1の他のゲーム装置群に含まれる各他のゲーム装置から取得されるデータに基づいて移動制御される他プレイヤキャラクタ群のうちの少なくとも一部を第1の仮想ゲーム空間に配置して描画させ、
前記第1の仮想ゲーム空間の表示中に、前記ゲーム装置のプレイヤの操作に応じて、複数のゲームステージから所定のゲームステージを選択するステージ選択処理を実行させ、
前記ステージ選択処理が実行されたことに応じて、第2のモードに移行させ、
第2のモードにおいて、
第2のマッチング処理の要求を前記サーバに送信させ、
前記サーバから受信した第2のマッチング処理の結果に基づき、前記ゲーム装置を第2の他のゲーム装置群と接続させ、
前記自プレイヤキャラクタ、および、前記第2の他のゲーム装置群に含まれる各他のゲーム装置のプレイヤによって操作される他プレイヤキャラクタ群のうちの少なくとも一部を、前記ステージ選択処理によって選択されたステージに対応する第2の仮想ゲーム空間に配置して描画させ、
前記サーバのコンピュータに、
前記ゲーム装置からの第1のマッチング処理の要求を受信したことに応じて、前記第1のマッチング処理として、前記複数の他のゲーム装置の中から選択される前記第1の他のゲーム装置群と前記ゲーム装置とをマッチングさせ、当該第1のマッチング処理の結果を前記ゲーム装置に送信させ、
前記ゲーム装置からの第2のマッチング処理の要求を受信したことに応じて、前記第2のマッチング処理として、前記第1のマッチング処理によってマッチングされた前記第1の他のゲーム装置群に限定することなく前記複数の他のゲーム装置の中から選択した1以上の他のゲーム装置を前記第2の他のゲーム装置群として、当該第2の他のゲーム装置群と前記ゲーム装置とをマッチングさせ、当該第2のマッチング処理の結果を前記ゲーム装置に送信させる、ゲームプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、オンラインマルチプレイゲームにおけるマッチング処理に関する。
【背景技術】
【0002】
従来から、マルチプレイゲームを行うためのゲームシステムにおいて、プレイヤの待ち合わせ場所となる仮想的なロビーを提供するものが知られている。そして、当該ロビーにおいて、プレイヤがマッチングルームの作成を指示する操作を行った場合に、プレイヤキャラクタの現在位置に、他のプレイヤから視認可能な領域を設定し、他のプレイヤのプレイヤキャラクタが領域に入った場合に、当該他のプレイヤとのマッチングを行うものが知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のようなゲームでは、ロビーにいるプレイヤ同士でしかマッチングが行われない。すなわち、マッチング可能な相手が、ロビー内にいるプレイヤだけに限られていた。そのため、マルチプレイを行う相手が足りないという状況もあり得た。また、マッチング可能な相手を増やすべく、ロビーに多くの人数を含めようとすると、その分、ネットワーク処理等の処理負荷が増大してしまう。
【課題を解決するための手段】
【0005】
上記課題を解決するために、例えば以下のような構成例が挙げられる。
【0006】
(構成1)
構成1は、ネットワークに接続されたゲーム装置、当該ネットワークに接続された複数の他のゲーム装置、および、サーバとを備えるゲームシステムである。ゲーム装置のコンピュータは、第1のモードにおいて、第1のマッチング処理の要求をサーバに送信し、サーバから受信した第1のマッチング処理の結果に基づき、ゲーム装置を第1の他のゲーム装置群と接続し、ゲーム装置のプレイヤの操作に基づいて移動制御される自プレイヤキャラクタ、および、第1の他のゲーム装置群に含まれる各他のゲーム装置から取得されるデータに基づいて移動制御される他プレイヤキャラクタ群のうちの少なくとも一部を第1の仮想ゲーム空間に配置して描画し、第1の仮想ゲーム空間の表示中に、ゲーム装置のプレイヤの操作に応じて、複数のゲームステージから所定のゲームステージを選択するステージ選択処理を実行し、ステージ選択処理が実行されたことに応じて、第2のモードに移行する。また、第1のゲーム装置は、第2のモードにおいて、第2のマッチング処理の要求をサーバに送信し、サーバから受信した第2のマッチング処理の結果に基づき、ゲーム装置を第2の他のゲーム装置群と接続し、自プレイヤキャラクタ、および、第2の他のゲーム装置群に含まれる各他のゲーム装置のプレイヤによって操作される他プレイヤキャラクタ群のうちの少なくとも一部を、ステージ選択処理によって選択されたステージに対応する第2の仮想ゲーム空間に配置して描画する。そして、サーバのコンピュータは、ゲーム装置からの第1のマッチング処理の要求を受信したことに応じて、第1のマッチング処理として、複数の他のゲーム装置の中から選択される第1の他のゲーム装置群とゲーム装置とをマッチングし、第1のマッチング処理の結果をゲーム装置に送信する。また、ゲーム装置からの第2のマッチング処理の要求を受信したことに応じて、第2のマッチング処理として、第1のマッチング処理によってマッチングされた第1の他のゲーム装置群に限定することなく複数の他のゲーム装置の中から選択した1以上の他のゲーム装置を第2の他のゲーム装置群として、当該第2の他のゲーム装置群とゲーム装置とをマッチングし、第2のマッチング処理の結果をゲーム装置に送信する。
【0007】
上記構成によれば、例えば、オンラインマルチプレイゲームにおける「ロビー」等の第1の仮想ゲーム空間において、あるプレイヤがプレイするステージを選択した場合、当該ステージをマルチプレイするメンバーのマッチングについて、当該第1の仮想ゲーム空間内にいる他のプレイヤだけに限らずにマッチングすることができる。これにより、マルチプレイ相手が不足するという状況の発生を抑制できる。また、他プレイヤキャラクタも表示され得るため、他のプレイヤの存在をプレイヤに視覚的にわかりやすく伝えることができる。
【0008】
(構成2)
構成2は、上記構成1において、第1の仮想空間内において、当該第1の仮想空間内に配置されている複数のステージオブジェクトのうちのいずれかにプレイヤキャラクタを移動させることで、当該ステージオブジェクト関連付けられているゲームステージが選択されてもよい。
【0009】
上記構成によれば、ステージオブジェクトにプレイヤキャラクタが移動するというプレイヤキャラクタの動作が行われる。これにより、どのプレイヤがどのステージを選択したのかが視覚的に把握しやすくなる。
【0010】
(構成3)
構成3は、上記構成1において、第2のモードに移行する場合、第1のモードにおける第1の他のゲーム装置群との接続を解除してもよい。
【0011】
上記構成によれば、プレイヤが所定のステージのプレイすることを選ぶ度に、マッチングが行われる。これにより、様々なプレイヤと出会う機会を増やすことができる。
【0012】
(構成4)
構成4は、上記構成1において、第1のモードにおいて、前記ゲーム装置のプレイヤと、前記第1の他のゲーム装置群に含まれる他のゲーム装置のプレイヤのうちの所定のプレイヤとが同じステージを選択し、かつ、両プレイヤに係る前記ステージ選択処理が所定の期間内に実行された場合、前記第2のモードにおいて、当該ゲーム装置は、前記所定のプレイヤのゲーム装置が含まれる前記第2の他のゲーム装置群に接続されてもよい。
【0013】
上記構成によれば、所定のステージを選択したタイミングが近いプレイヤ同士を、同じ通信グループに含めることができる。これにより、これらのプレイヤがステージに係るプレイを開始するタイミングを近いタイミングにすることができる。そのため、ステージのプレイ開始時から、他のプレイヤと一緒に行動できる機会を各プレイヤに提供できる。
【0014】
(構成5)
構成5は、上記構成1において、ゲーム装置のコンピュータは、第2のモードにおいて、所定のステージ終了条件が満たされた場合、第1のモードに移行してもよい。更に、サーバのコンピュータは、ゲーム装置が第2のモードから第1のモードに移行する際、第1の他のゲーム装置群に含まれていない他のゲーム装置が含まれ得る第3の他のゲーム装置群を当該ゲーム装置についてのマッチングの対象として、第1のマッチング処理を実行してもよい。そして、ゲーム装置のコンピュータは、第3の他のゲーム装置群をマッチングの対象とした第1のマッチング処理によって決定された、新たな第1の他のゲーム装置群と当該ゲーム装置とを接続してもよい。
【0015】
上記構成によれば、ステージを終了した場合、改めて第1のマッチング処理が行われ、ステージ開始前に接続されていた他のゲーム装置群とは異なるゲーム装置群と接続された状態で、第1の仮想ゲーム空間に移動できる。そのため、様々なプレイヤと出会う機会を増やすことができる。
【0016】
(構成6)
構成6は、上記構成5において、第2のモードにおいて、ゲーム装置のプレイヤと、第2の他のゲーム装置群に含まれる他のゲーム装置のプレイヤのうちの所定のプレイヤとがステージをクリアしたタイミングが所定の期間内に含まれている場合、第1のモードにおいて、ゲーム装置は、上記所定のプレイヤのゲーム装置が含まれる第1の他のゲーム装置群と接続される。
【0017】
上記構成によれば、同じステージをプレイしていた複数のプレイヤが、それぞれステージをクリアしたタイミングが近かった場合、これらのプレイヤが同じ通信グループに含まれて、結果的に、同じ第1の仮想ゲーム空間に移動させることができる。
【0018】
(構成7)
構成7は、上記構成1において、ゲームシステムには、第1の仮想ゲーム空間として表示され得る複数の異なる仮想ワールドを定義したワールド情報が記憶されていてもよい。更に、ゲーム装置のコンピュータは、第1の仮想ワールドに対応する第1の仮想ゲーム空間の表示中に、当該ゲーム装置のプレイヤの操作に応じて、当該第1の仮想ワールドから第2の仮想ワールドに移動するためのワールド移動処理を実行してもよい。更に、当該ワールド移動処理が実行された場合、そのときに接続されている第1の他のゲーム装置群との接続を解除し、ワールド移動処理に応じてサーバで行われた第1のマッチング処理の結果に基づき、第2のワールドに対応する第1の仮想ゲーム空間が表示される他のゲーム装置からなる新たな第1の他のゲーム装置群と当該ゲーム装置とを接続してもよい。
【0019】
上記構成によれば、複数存在するワールド間を移動する度にマッチングが行われる。これにより、様々なプレイヤとの出会いの機会を提供できる
【発明の効果】
【0020】
本開示によれば、他のプレイヤの存在を視覚的に伝えると共に、ステージをプレイする際にマルチプレイ相手が不足しているという状況の発生を抑制できる。
【図面の簡単な説明】
【0021】
【
図1】本実施形態に係るゲームシステムの全体像を示す模式図
【
図2】ゲームサーバ1およびマッチングサーバ2のハードウェア構成を示すブロック図
【
図3】ゲーム装置3のハードウェア構成を示すブロック図
【
図6】本実施形態における「部屋」の概念を説明するための図
【
図9】本実施形態における「部屋」の移動の概念を説明するための図
【
図10】ステージ部屋への入室について説明するための図
【
図11】本実施形態におけるデータのやりとりについて説明するための図
【
図12】ゲームサーバ1の記憶部12に記憶される各種データの一例を示すメモリマップ
【
図13】再募集チケットデータ307のデータ構成の一例
【
図14】マッチングサーバ2の記憶部22に記憶される各種データの一例を示すメモリマップ
【
図15】ゲーム装置3の記憶部32に記憶される各種データの一例を示すメモリマップ
【
図16】通常チケットデータ356のデータ構成の一例
【
図17】ゲーム装置3で実行されるゲーム処理の詳細を示すフローチャート
【
図19】ワールドマップ処理の詳細を示すフローチャート
【
図20】ステージ入室処理の詳細を示すフローチャート
【
図21】ワールド移動処理の詳細を示すフローチャート
【
図22】ステージプレイ処理の詳細を示すフローチャート
【
図23】ステージ退室処理の詳細を示すフローチャート
【
図24】ゲームサーバ1で実行されるゲームサーバ処理の詳細を示すフローチャート
【
図25】マッチングサーバ2で実行されるマッチングサーバ処理の詳細を示すフローチャート
【
図26】マッチメイク処理の詳細を示すフローチャート
【発明を実施するための形態】
【0022】
以下、本発明の一実施形態について説明する。
図1は、本実施形態に係る情報処理システム(ゲームシステム)の全体像を示す模式図である。本実施形態の情報処理システム100は、ゲームサーバ1と、マッチングサーバ2と、複数の情報処理端末3とを含む。ゲームサーバ1、マッチングサーバ2、情報処理端末3とは、インターネット等のネットワーク10を介して通信可能に構成されている。本実施形態では、このような構成で、情報処理が実行されるが、以下では、当該情報処理の一例として、ゲーム処理を例として説明する。具体的には、情報処理端末3上にゲームプログラムがインストールされ、必要に応じてサーバ1と通信を行いながら実行されるゲーム処理を例示する。
【0023】
[ゲームサーバおよびマッチングサーバのハードウェア構成]
次に、上記ゲームサーバ1およびマッチングサーバ2のハードウェア構成について説明する。本実施形態では、ゲームサーバ1およびマッチングサーバ2のハードウェア構成は同じものであるとする。
図2は、ゲームサーバ1およびマッチングサーバ2のハードウェア構成を示すブロック図である。なお、
図2において、括弧内の参照符号はマッチングサーバ2における構成要素を示すものとする。また、以下では、ゲームサーバ1およびマッチングサーバ2を総称して、単にサーバと呼ぶこともある。各サーバは、プロセッサ11(21)と、記憶部12(22)と、通信部13(23)とを少なくとも備えている。プロセッサ部は、各サーバを制御するための各種プログラムを実行する。記憶部には、プロセッサ部によって実行される各種プログラムおよび利用される各種データが格納される。通信部は、有線、または無線通信によってネットワークと接続し、上記情報処理端末3または他のサーバとの間で所定のデータを送受信する。なお、本実施形態では、ゲームサーバ1、マッチングサーバ2がそれぞれ1つである例を図示しているが、各サーバは、単体のサーバであってもよいし、分散処理を行うサーバ群として構成されていてもよい。
【0024】
[ゲーム装置のハードウェア構成]
次に、上記情報処理端末3について説明する。当該情報処理端末3は、例えばスマートフォン、据置型または携帯型のゲーム装置、タブレット端末、携帯電話、パーソナルコンピュータ、ウェアラブル端末等である。本実施形態では、据置型ゲーム装置(以下、単にゲーム装置と呼ぶ)を情報処理端末3の一例として説明する。
【0025】
図3は、本実施形態に係るゲーム装置3のハードウェア構成の一例を示すブロック図である。
図3において、ゲーム装置3は、プロセッサ31を備える。プロセッサ31は、ゲーム装置3において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ31は、記憶部32に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。なお、記憶部32は、例えば、フラッシュメモリやDRAM(Dynamic Random Access Memory)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0026】
また、ゲーム装置3は、ゲーム装置3が他のゲーム装置3や上記サーバと無線通信を行うための無線通信部33を備える。当該無線通信としては、例えば、インターネット通信や近距離無線通信が用いられる。
【0027】
また、ゲーム装置3は、ゲーム装置3がコントローラ4と有線または無線通信を行うためのコントローラ通信部34を備える。
【0028】
また、ゲーム装置3には、画像音声出力部35を介して表示部5(例えば、テレビ等)が接続される。プロセッサ31は、(例えば、上記の情報処理の実行によって)生成した画像や音声を、画像音声出力部35を介して表示部5に出力する。
【0029】
次に、コントローラ4について説明する。コントローラ4は、方向入力デバイスの一例であるアナログスティック42を少なくとも1つ備える。当該アナログスティック42は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック42を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。また、コントローラ4は、各種操作ボタンを含むボタン部43を備える。例えば、コントローラ4は、上記ハウジングの主面上に複数個の操作ボタンを備えていてもよい。
【0030】
また、コントローラ4は、慣性センサー44を備える。具体的には、コントローラ4は、慣性センサー44として、加速度センサー、角速度センサーを備えている。本実施形態においては、加速度センサーは、所定の3軸方向に沿った加速度の大きさを検出する。また、角速度センサーは、所定の3軸回りの角速度を検出する。
【0031】
また、コントローラ4は、上記コントローラ通信部34と有線または無線通信を行うための通信部41も備える。上記アナログスティック42に対する方向入力内容、ボタン部43の押下状態を示す情報、および、慣性センサー44による各種の検出結果は、適宜のタイミングで繰り返し通信部41へ出力され、ゲーム装置3に送信される。
【0032】
[本実施形態における情報処理の概要]
次に、本実施形態に係る情報処理の動作概要を説明する。本実施形態では、情報処理の一例として、仮想空間内に存在するプレイヤキャラクタオブジェクト(以下、プレイヤキャラと呼ぶ)をプレイヤが操作して遊ぶゲーム処理を想定して説明する。より具体的には、本実施形態では、横スクロール型のジャンプアクションゲーム(以下、本ゲームと呼ぶ)を想定して説明する。本ゲームでは、プレイの主な舞台となる、「ステージ」と呼ばれる仮想空間が用意されている。当該ステージには、スタート地点とゴール地点が設定されている。スタート地点からゴール地点までの間には、様々な敵キャラクタや障害物、ジャンプ台や落とし穴等の各種ギミックが配置されている。そして、本ゲームは、これら敵キャラクタ等を倒したり回避したりしながら、プレイヤキャラをゴール地点に到達させるゲームである。なお、当該ステージは、ゲームによっては「コース」や「ラウンド」等と呼ばれることもある。
【0033】
図4に、上記ステージをプレイ中のゲーム画面(以下、ステージ画面と呼ぶ)の一例を示す。
図4の例では、全体として横長になるような仮想空間として構成されているステージの一部が表示されている。また、
図4は、スタート地点付近の画面、すなわち、当該ステージのプレイを開始した直後の画面例である。
図4では、プレイヤキャラ201と、敵キャラクタ202が表示されている。その他、ブロック等の各種地形オブジェクトも表示されている。なお、本ステージでは、ステージの左端付近にスタート地点が設定され、ステージの右端付近にゴール地点が設定されているものとする。そのため、全体的なゲーム進行として、プレイヤキャラ201を画面の右方向に向けて進ませていくようなステージ構成となっている。このようなステージ画面において、プレイヤは、プレイヤキャラ201を操作して、ゴール地点に向けて移動させていく。プレイヤキャラの移動にあわせて、ステージの別の場所がステージ画面として表示されることになる。そして、プレイヤキャラがゴール地点に到達すれば、当該ステージをクリアしたことになる。
【0034】
[ワールドマップについて]
また、本ゲームでは、上記ステージは複数用意されている。そして、各ステージのプレイに先立って、プレイするステージをプレイヤに選択させるための機能を有する画面として、「ワールドマップ画面」という画面が表示される。
図5は、当該ワールドマップ画面の一例である。
図5では、仮想空間である「ワールド」を俯瞰で示したような画面が表示されている。なお、当該仮想空間は、2次元空間であっても3次元空間であってもよい。また、「ワールド」と「ステージ」の描画方法や表示態様は異なっていてもよい。例えば、ステージは正面方向から正射影で投影して描画し、ワールドは上方から俯瞰的に撮影して描画してもよい。当該ワールドには、上記ステージの入り口のような役割を有するステージオブジェクト204が複数配置されている。また、後述するが、他のワールドに移動するためのポータルオブジェクト205も配置されている。また、ワールドマップ画面においては、プレイヤキャラ201も表示されている、プレイヤは、コントローラ4を操作することで、当該ワールドマップ画面においてプレイヤキャラ201を移動させることができる。また、プレイヤは、いずれかのステージオブジェクト204に接触するようにプレイヤキャラ201を移動させることで、当該ステージオブジェクト204に対応するステージを選択できる。そして、ステージのプレイを開始するための所定の操作(以下、ステージ開始操作と呼ぶ)を行うことで、当該ステージオブジェクト204に対応するステージのプレイを開始できる。具体的には、ステージ開始操作を行うと、所定の演出が表示された後、プレイヤキャラ201がステージのスタート地点に配置されているステージ画面に画面が切り替わる。
【0035】
[ワールドとステージとの関係について]
また、本ゲームでは上記「ワールド」についても、複数のワールドが用意されている。本ゲームでは、一例として、5つのワールド(ワールド1からワールド5)があり、1つのワールドには、4つのステージが含まれる構成を想定する。上記ワールドマップ画面として表示されるのは、5つのワールドのうちのいずれか1つのワールドである。
【0036】
ここで、各ワールドは、所定のテーマに基づいた世界観を有するよう、その見た目がデザインされている。また、各ワールドに属するステージも同様である。ワールドの一例としては、例えば、緑の世界、火の世界、氷の世界、等である。緑の世界であれば、植物オブジェクトが多数配置され、緑色を基調としたデザインのワールドマップであり、火の世界であれば、火山や溶岩が配置されており、赤を基調としたデザインのワールドマップである。
【0037】
また、本ゲームでは、最初から全てのワールドで全てのステージを自由にプレイできるわけではなく、最初は移動可能なワールド、および、プレイできるステージが限られている。そして、プレイ可能なステージをクリアすることで、他のステージが開放されるという構成となっている。例えば、最初は、ワールド1のステージ1だけしかプレイできないが、ステージ1をクリアすると、ワールド1のステージ2が解放され、プレイすることが可能となる。そして、ワールド1内の全てのステージをクリアすることで、次のワールドとして予め定義されているワールド2が解放される。
【0038】
あるワールドから別のワールドに移動する場合は、まず、プレイヤは、ワールドマップ画面における上記ポータルオブジェクト205上にプレイヤキャラ201を移動させる。そして、プレイヤが所定の操作(以下、ワールド移動操作と呼ぶ)を行うことで、そのポータルオブジェクト205に関連付けられている他のワールドにプレイヤキャラを移動させることができる。例えば、ワールド1のワールドマップ画面において、ワールド2に関連付けられているポータルオブジェクト205上でワールド移動操作が行われると、プレイヤキャラはワールド2に移動し、ワールド2に係るワールドマップ画面に切り替わる。
【0039】
なお、解放済みのステージについては、上記ステージ開始操作を行うことで、何度でも繰り返しプレイすることが可能である。また、解放済みのワールドについても、自由に移動することが可能である。例えばワールド2からワールド1に移動することも可能である。
【0040】
また、本例では、まだ移動できないワールドのポータルオブジェクト205、および、まだプレイできないステージのステージオブジェクト204についても、ワールドマップ画面上で表示はされ、プレイヤキャラ201を移動させることも可能である。但し、ワールド移動操作やステージ開始操作は受け付けない状態となっているものとする。この点、他の実施形態では、未解放のポータルオブジェクト205やステージオブジェクト204については、そもそもプレイヤキャラ201が移動できないように構成してもよい。
【0041】
このように、本ゲームにおける基本的なゲーム進行の流れは、ワールドマップ画面上でプレイしたいステージを選択し、ステージをクリアすることで、未解放のステージを開放していく、という流れとなっている。そして、ワールド内の全ステージをクリアすることで、次のワールドを解放し、各ワールド内のステージをクリアしていくことで、次々にワールドを解放していき、最終ワールドの最終ステージをクリアすることを目指すという流れとなっている。
【0042】
なお、以下の説明では、各ステージを区別して示す場合は、「ステージ“ワールド番号”-“ステージ番号”」の形式で示す。例えば、ワールド1におけるステージ1は「ステージ1-1」と示し、ワールド2におけるステージ1は、「ステージ2-1」のように示す。
【0043】
[オンラインプレイ要素について]
本ゲームの基本的なゲーム進行の流れは上述の通りであり、基本的にはシングルプレイの感覚でゲームがプレイできる。本ゲームでは、上記のような要素に加え、上記サーバや他のゲーム装置3と接続してプレイすることが可能なオンラインプレイ要素も有する。
【0044】
以下、本ゲームのオンラインプレイ要素に関して説明する。まず、全体的なネットワーク的な構成に関して簡単に説明する。基本的なネットワーク構成については、上記
図1で示したような構成となる。そして、本ゲームでは、いわゆるMO(Multiplayer Online)タイプのオンラインゲームにおける通信グループの構成を利用したゲームを提供する。具体的には、上記ワールドに対応する通信グループ(以下、ワールド部屋と呼ぶ)と、各ステージに対応する通信グループ(以下、ステージ部屋と呼ぶ)とが適宜生成および管理され得る。換言すれば、上記各ワールドに相当する仮想空間と、各ステージに相当する仮想空間とがそれぞれ用意され、当該仮想空間に、所定人数のプレイヤが接続するという形態である。なお、当該ワールド部屋は、他のゲームでは「ロビー」等と呼ばれることもある。
【0045】
また、ワールド部屋、ステージ部屋にはそれぞれ、入室可能な人数の最大値が設けられている。一例として、本ゲームでは、各ワールド部屋には、最大で30人まで入室可能である。また、ステージ部屋は1部屋に4人まで入室可能である。また、本ゲームでは上記のようにワールド毎、および、ステージ毎に部屋が分かれるが、当該ワールド部屋およびステージ部屋のいずれも、複数の部屋が並列に存在し得る。なお、本ゲームでは、一例として、ワールド部屋については、サーバ経由で通信する接続態様(クライアント・サーバー方式)を用い、ステージ部屋については、P2P(Peer to peer)の通信方式でゲーム装置3同士が接続する態様を用いるとする。
【0046】
次に、
図6に、上記通信グループ、すなわち、ワールド部屋およびステージ部屋の構成の一例を示す。
図6の例では、ワールド1について、ワールド部屋1A、ワールド部屋1B、ワールド部屋1Cの3つのワールド部屋が併存しており、ワールド2についても、ワールド部屋2A、ワールド部屋2B、ワールド部屋2Cの3つのワールド部屋が併存していることを示す。また、ステージ部屋について、
図6では、ステージ1-1、1-2、2-1、2-2に対応する部屋がそれぞれ2つずつ併存している状態を示している。すなわち、ステージ1-1に対応するステージ部屋1-1Aおよびステージ部屋1-1B、ステージ1-2に対応するステージ部屋1-2Aおよびステージ部屋1-2B、ステージ2-1に対応するステージ部屋2-1Aおよびステージ部屋2-1B、ステージ2-2に対応するステージ部屋2-2Aおよびステージ部屋2-2Bが併存している。そのため、
図6の例では、ワールド部屋が合計6部屋、ステージ部屋が合計8部屋、並列的に存在しているという状態である。
【0047】
なお、部屋の増減制御については、部屋内の人数に応じてサーバで制御される。具体的には、上記ワールド移動操作やステージ開始操作等に応じて、ワールド部屋やステージ部屋が適宜生成される。また、各部屋に入室しているプレイヤ数が0になったワールド部屋やステージ部屋については、適宜消去される。
【0048】
次に、上記のような「部屋」の要素を踏まえ、ゲーム起動後からステージプレイを開始するまでの操作等の大まかな流れを説明する。まず、プレイヤがゲームを起動すると、所定のログイン処理が行われ、セーブデータのロード処理等が行われる。その後、所定のワールド部屋にプレイヤキャラが「入室」する。なお、当該入室とは、所定の通信グループに参加し、同じ通信グループ内の他のゲーム装置群との接続を確立することである。
【0049】
所定のワールド部屋へ入室した後、上記ワールドマップ画面が表示される。上記のように、プレイヤは、ワールドマップ画面においてプレイヤキャラ201を移動させることが可能となる。
図7に、既に所定人数のプレイヤが入室しているワールド部屋に入室したときの、ワールドマップ画面の一例を示す。当該画面では、プレイヤキャラ201の他、同じワールド部屋に入室している他のプレイヤが操作するプレイヤキャラクタオブジェクト211も複数体表示されている。また、他のプレイヤの操作に応じて、これらの他のプレイヤキャラクタオブジェクト211がワールドマップ上を移動する様子がリアルタイムで表示される。以下の説明では、同じ部屋(ワールド部屋、ステージ部屋)に入室している他のプレイヤが操作するプレイヤキャラクタオブジェクトのことを、総称して「リモートキャラクタ」と呼ぶ。なお、リモートキャラクタの表示に関しては、同じワールド部屋内の全てのリモートキャラクタを表示してもよいし、一部のリモートキャラクタだけを表示するようにしてもよい。また、本実施形態では、プレイヤキャラ201およびリモートキャラクタは、それぞれ別のキャラクタとして認識可能な程度に、その見た目が異なるキャラクタであるとする。仮に、実質的に同じ見た目のキャラクタが複数同時に表示されると、プレイヤが操作しているプレイヤキャラ201がどれになるのか把握しにくくなるためである。なお、本実施形態においては他のゲーム装置群との接続が確立して所定のワールド部屋へ入室した後、上記ワールドマップ画面が表示されるが、他のゲーム装置群との接続が確立することを待たずにワールドマップ画面を表示し、接続が確立した後にリモートキャラクタを登場させるようにしてもよい。これにより、プレイヤは、接続の確立を待たずにプレイヤキャラクタの操作を開始できるので、ゲーム体験が向上する。
【0050】
[ステージ部屋への入室について]
このようなワールドマップ画面において、プレイヤは、所定のステージをプレイしたい場合は、上記ステージ開始操作を行う。すなわち、当該ワールドマップ画面で、プレイヤキャラ201を所定のステージオブジェクト204上に移動させ、所定のボタンを押下する。このような操作により、プレイヤは、現在いるワールド部屋を「退室」する。退室とは、それまで属していた通信グループ内の他のゲーム装置群との接続を解除することである。この場合は、同じワールド部屋にいた他のゲーム装置群との接続を解除する。そして、選択したステージに対応する所定のステージ部屋に入室する。なお、この際の入室先となるステージ部屋の決め方については、後述する。この後、ステージ画面に切り替わり、スタート地点にプレイヤキャラ201が配置されたステージ画面が表示され、ステージプレイが開始する。
【0051】
[ステージプレイにおけるオンライン要素について]
次に、上記ステージプレイにおけるオンライン要素に関して説明する。ここでは一例として、2人の他のプレイヤが既に入室しているステージ部屋に、プレイヤが入室した場合を想定して説明する。
図8は、このようなステージ部屋に入室した場合のステージ画面の一例である。この場合、上記ワールドマップ画面の場合と同様、他のプレイヤが操作する他のプレイヤキャラクタである上記リモートキャラクタが、プレイヤが操作するゲーム装置2におけるステージ画面上に表示され得る。
図8の例では、プレイヤキャラ201の他、2体のリモートキャラクタ211が表示されている。また、他のプレイヤはプレイヤよりも先に入室し、ステージプレイを開始しているため、これらリモートキャラクタ211は、スタート地点よりはゴール地点に向けて少し先に進んだ位置にいる。
【0052】
本ゲームでは、ステージ部屋で表示されるリモートキャラクタは、他のプレイヤの操作が反映されて移動はするが、プレイヤのゲーム装置で実行されているゲームプレイには直接的には干渉せず、影響は与えない。具体的には、あるステージ部屋に接続しているゲーム装置3同士の間では、基本的には、各自のプレイヤキャラ201の位置情報だけが共有される。一方、敵キャラクタ等のその他のオブジェクトの状態や位置情報等は共有されない。例えば、各ゲーム装置3において、ステージプレイにおけるステージオブジェクト等との衝突判定処理については、各ゲーム装置におけるプレイヤキャラ201についてのみ行われ、リモートキャラクタについての当たり判定処理は行われない。そのため、プレイヤキャラ201がリモートキャラクタの位置と重なっても、衝突せずにすり抜けて移動するような結果となる。また、リモートキャラクタが敵キャラクタと重なった場合も、リモートキャラクタと敵キャラクタとの衝突判定等は行われず、敵キャラクタがリモートキャラクタをすり抜けて移動するような結果となる。また、例えば、プレイヤキャラ201が敵キャラクタAを倒した場合も、この敵キャラクタAの状態が他のゲーム装置3に反映されることはない。他のゲーム装置3において、当該他のゲーム装置の他のプレイヤが当該敵キャラクタAを倒していなければ、当該敵キャラクタAは依然として存在している状態で制御される。つまり、ステージプレイの進行管理自体は、各自のゲーム装置上で個別に行われ、この際に、リモートキャラクタがいる場合は、その表示だけは行う、というような制御となる。そのため、各プレイヤは、基本的には、他のプレイヤの行動の影響を受けることなく、また、他のプレイヤの行動を阻害等することなく、シングルプレイと同様の感覚でステージをプレイできる。換言すれば、1人でゲームを進めつつ、リモートキャラクタ、換言すれば、他のプレイヤの存在は認識できる、というプレイ感・ゲーム体験が得られる。
【0053】
また、上記のように、各プレイヤは他のプレイヤからの影響を受けずに個別にゲームを進行できる。そのため、4人のプレイヤが揃わないとステージプレイが開始できないというものではなく、ステージ部屋内にいるプレイヤが1人だけの場合でも、ステージプレイは開始できる。その後、途中参加のような形で、最大4人までは、他プレイヤが入室可能である。例えば、プレイヤAが、ステージの3分の1程度まで進んだ時点で、プレイヤBが入室した場合、プレイヤBのプレイヤキャラはスタート地点から移動を開始することになる。つまり、プレイヤBからすれば、プレイヤAがある程度先に進んだ位置に存在している状態で、ステージプレイを開始することになる。また、プレイヤAからすれば、プレイヤBの入室によって自身のプレイが阻害されるということもなく、引き続きプレイを継続できる。
【0054】
[協力要素について]
上記のように、基本的には、各プレイヤは他のプレイヤからの影響を受けずに個別にゲームを進行できる。但し、本ゲームでは、以下の点で、協力プレイ的な要素を持たせている。具体的には、本ゲームでは、「復活補助」と「アイテム受け渡し」という点で、他プレイヤとの間で影響を及ぼすことが可能である。
【0055】
まず、「復活補助」について、例えばプレイヤキャラが敵キャラクタと接触する等して、オフラインでシングルプレイをしていると仮定した場合は「ミス」扱いとなり、例えば残機を失うような場合を想定する。この場合、本ゲームでオンラインに接続した状態でプレイしている場合には、すぐにミス扱いにはならず、所定の期間、プレイヤキャラクタが「幽霊」のようなキャラクタに変化する。そして、当該所定の期間中に、いずれかのリモートキャラクタの位置が当該「幽霊」の位置に重なる、つまり、リモートキャラクタが幽霊に接触すると、「ミス」扱いにならずに、プレイヤキャラクタを復活させることが可能である。そのため、例えば、リモートキャラクタ同士である程度固まって移動するようにすれば、シングルプレイ感覚でプレイしつつ、ミスしたときのリカバリが容易になるという、完全なシングルプレイゲームの場合にはない、オンラインを活かした利点がある。また、「幽霊」となるのはシングルプレイをしている場合であれば「ミス」扱いとなってプレイが止まる状況になったときであるため、プレイヤのプレイを阻害することにもならない。
【0056】
次に、「アイテム受け渡し」については、所定の操作を行うことで、プレイヤキャラが所持するアイテムをステージ上に「置く」ことができる。そして、リモートキャラクタが当該アイテムに接触すると、リモートキャラクタは当該アイテムを取得できる。つまり、所定のアイテムをリモートキャラクタとの間で受け渡しすることが可能となっている。これにより、シングルプレイ感覚でゲームを進めながらも、有用なアイテムの受け渡しによってリモートキャラクタを助けるというような、間接的な協力プレイが可能となる。
【0057】
上記のような協力プレイ要素を持たせることで、特定の局面で他プレイヤと協力する余地ができる。これにより、基本的にはシングルプレイとしてゲームを進行させつつ、マッチングによってステージ部屋に複数のプレイヤが入室していれば、他のプレイヤと協力しやすくなる、という状況を生み出すことができる。
【0058】
[ステージ部屋からの退室について]
次に、ステージ部屋からの退室に関して説明する。上記のように、プレイヤキャラがゴール地点に到達すれば、ステージクリアとなる。プレイヤキャラをゴールに到達させたプレイヤ(ゲーム装置3)は、ゴールした時点で、他のプレイヤの進行状況にかかわらず、ステージ部屋から退室し、所定のワールド部屋に入室する。詳細は後述するが、この際に、ステージプレイを開始する前に入室していたワールド部屋に戻るとは限らず、元のワールドと同じワールドではあるが、部屋としては別となるワールド部屋に入室することもある。例えば、ワールド部屋1Aから所定のステージ部屋に移動し、ステージのクリアに伴って退室した場合、ワールド部屋1Aに入室する場合もあれば、ワールド部屋1Bやワールド部屋1Cに入室することもあり得る。
【0059】
また、ステージ部屋からの退室は、上記のようなステージをクリアした場合の他、ポーズメニューからの任意退室と、ゲームオーバー条件を満たしたことによる退室も可能である。任意退室は、ステージプレイ中に、例えば、ポーズボタンの押下でポーズメニューを表示し、当該メニューで示されている「リタイア」の項目を選択することで、その時点でステージ部屋から退室して所定のワールド部屋に移動することができる。また、ゲームオーバーによる退室は、例えば、上記のような復活補助を受けられないまま、残機が0になる等でゲームオーバー条件を満たした場合に、その時点で強制的にステージ部屋から退室し、所定のワールド部屋に入室することになる。
【0060】
[ワールド間の移動について]
次に、ワールドマップ画面において、今いるワールドから他のワールドに移動する場合について説明する。上記のように、ポータルオブジェクト205上にプレイヤキャラ201を移動させてワールド移動操作を行うことで、そのポータルオブジェクト205に関連付けられている他のワールドにプレイヤキャラを移動させることができる。この場合は、一旦今いるワールド部屋から退室し、他のワールド部屋に入室する、という流れとなる。例えば、プレイヤがワールド1からワールド2に移動したい場合、プレイヤがワールド部屋1Aに入っている状態で、プレイヤがワールド1からワールド2に移動するワールド移動操作を行った場合を想定する。この場合は、ワールド部屋1Aを退室し、ワールド部屋2Aに入室することもあるし、ワールド部屋2Bに入室することもあり得る。なお、入室先の部屋の決め方については後述する。
【0061】
上記のような各部屋の入退室についてまとめると、
図9のような関係となる。ゲーム開始後は、セーブデータに基づいて、所定のワールド部屋への入室が発生する。ワールドマップ画面において、ワールド移動操作が行われた場合は、今いるワールド部屋からの退室および移動先のワールド部屋への入室(以下、ワールド間移動と呼ぶこともある)が発生する。また、ワールドマップ画面においてプレイヤがステージ入室操作を行うと、今いるワールド部屋からの退室、および、指定されたステージに係る所定のステージ部屋への入室が発生する。また、ステージクリア等、ステージから退出する条件が満たされた場合は、ステージ部屋からの退室、および、そのステージが属するワールドに係る所定のワールド部屋への入室が発生する。
【0062】
[マッチング処理について]
上記のように、プレイヤは、ワールド部屋への入室操作やステージ部屋への入室操作を行うことができる。この操作に応じて、いずれかのワールド部屋あるいはステージ部屋に入室する処理が行われ、プレイヤのゲーム装置3は、入室先の部屋における他のゲーム装置(プレイヤ)と通信可能に接続されることになる。ここで、上記のように、同じワールド、同じステージに対して、複数のワールド部屋、ステージ部屋が並列的に存在し得る。以下、入室先となるワールド部屋、ステージ部屋の決め方、換言すれば、上記の各通信グループに含めるゲーム装置(プレイヤ)の決め方について説明する。以下では、本実施形態における入室先の選択、および入室する機能のことを「マッチング」と呼ぶ。なお、以下の説明で明らかになるが、より正確には、条件に合う所定のプレイヤを探し、そのプレイヤが既に入室済みであればその部屋を入室先として決定するという制御が行われる。また、そのプレイヤがまだ入室していない場合は、新たな部屋を作成して、そのプレイヤと共に入室する、という制御が行われる。
【0063】
まず、マッチングの対象とするプレイヤの範囲に関して説明する。本ゲームでは、入室先とするステージ部屋を決める場合に、マッチングの対象として、同じワールド部屋内のプレイヤに限らず、同じワールドに係る他のワールド部屋にいるプレイヤもマッチングの対象とする。すなわち、ステージ開始操作を行ったプレイヤがいるワールド部屋内の他のプレイヤだけに限らず、他のワールド部屋において同じステージを選んだ他のプレイヤ全てをマッチングの対象として、マッチングを行う。
図10に、ステージ部屋に入室する際のマッチング結果の一例を示す。
図10では、ワールド1のワールドマップ画面において、ステージ1-1をプレイするためのステージ開始操作が行われる場合を想定している。
図10の例では、ワールド部屋1Aからワールド部屋1Dまでの4つのワールド部屋と、ステージ部屋1-1A、1-1Bの2つのステージ部屋が示されている。また、ステージ1-1をプレイするつもりである複数のプレイヤが、4つのワールド部屋に分散するようにして入室している。具体的には、ワールド部屋1Aには3人、ワールド部屋1Bにとワールド部屋1Dには1人、ワールド部屋1Cには2人のプレイヤが入室している状態である。このような状態で、例えば各プレイヤがステージ1-1についてステージ開始操作を行うとする。この場合、例えば、ワールド部屋1AにいるプレイヤAについて見ると、同じワールド部屋1AにいるプレイヤBおよびプレイヤCだけをマッチング対象とするのではなく、他のワールド1の部屋のプレイヤであるプレイヤD~プレイヤGも含めたマッチングが行われる。同じく、例えばワールド部屋1Cについて考えると、プレイヤEとプレイヤFだけを対象にしたマッチングを行うのではなく、プレイヤA~Gの全てをマッチング対象として、マッチングが行われる。その結果、
図10の例でいうと、ステージ部屋1-1Aは、ワールド部屋1AにいたプレイヤAおよびプレイヤC、ワールド部屋1BにいたプレイヤD、ワールド1CにいたプレイヤFがマッチングされたステージ部屋となっている。また、ステージ部屋1-1Bについては、ワールド部屋1AにいたプレイヤB、ワールド部屋1CにいたプレイヤE、ワールド部屋1DにいたプレイヤGがマッチングされたステージ部屋となっている。
【0064】
上記のように、ステージ部屋についてマッチングする際に、各ワールド部屋にいるプレイヤだけを対象とせずに他のワールド部屋のプレイヤもマッチング対象とするのは、以下のような理由による。まず、本ゲームでは、上記のように他のプレイヤの存在を感じながらシングルプレイ感覚でプレイするというゲーム体験を提供するために、各ステージ部屋については、できるだけ4人のプレイヤで埋まっている状況にしたいという側面がある。その一方で、ワールド部屋に入室可能な人数には制限が設けられており、本例では最大30人までとなっている。また、1つのワールド部屋で選択可能なステージも複数あり得る。そのため、もしステージをプレイするメンバーを1つのワールド部屋内にいるプレイヤだけから選ぼうとすると、個々のステージ部屋について人が集まりにくい結果となり得る。例えば、5つのステージが選択可能なワールド部屋に10人のプレイヤが入室している状態を想定する。この場合、各プレイヤがそれぞれ異なるステージを選択することも十分考えられるが、そうすると、個々のステージ部屋が4人のプレイヤで埋まるという状況が発生しにくいと考えられる。そのため、本実施形態では、ステージ部屋をマッチングする際は、同じワールド部屋内のプレイヤだけをマッチング対象とするのではなく、同じステージを選んだ他のワールド部屋の他のプレイヤもマッチング対象としている。これにより、4人のプレイヤで埋まったステージ部屋を数多く作ることができる。
【0065】
なお、ワールド部屋の人数制限に関して、上記の30人はあくまで一例であり、人数制限はゲームの性質に応じて適宜設定されればよい。本例では、1つのワールドに複数のステージが含まれるような構成となっているため、ワールドにおける入室可能人数は、ステージの入室人数よりも多く設定される。すなわち、ワールド部屋におけるマッチングの上限人数はステージ部屋のマッチングの上限人数よりも多く設定される。
【0066】
次に、本実施形態におけるマッチングの制御の概要を説明する。本実施形態では、以下のような結果となるようなマッチングを行う。また、上記のように、ワールドもステージも複数存在しているところ、各ワールド、各ステージ毎に、マッチングが行われる。
(優先条件1)移動先として同じワールドまたは同じステージを選んだタイミングがある程度近いプレイヤ同士が、同じ部屋になりやすいように、入室先を決定する。
(優先条件2)上記優先条件1に当てはまらない場合は、ワールド部屋については、入室人数が多いワールド部屋を優先的に選択する。ステージ部屋については、ステージ開始操作を行ったタイミングにおいて、いずれかの他のプレイヤが入室した部屋であって、その入室時間が最も時間的に近い部屋を優先的に選択する。
【0067】
次に、マッチングが行われるタイミング別に、各タイミングで行われるマッチングの内容を概説する。
【0068】
[ステージ部屋へ入室する場合]
まず、ステージ部屋のマッチングは、ワールドマップ画面でステージ開始操作を行った場合に行われ得る。上記のように、ステージ部屋のマッチングについては、基本的にはマッチング対象を同じワールド部屋内のプレイヤに限ることなくマッチングされる。この際、本実施形態では、同じワールド内にいる複数プレイヤについて、ステージ入室操作を行ったタイミングが近いプレイヤ同士がなるべく同じ部屋になりやすいようにマッチングの制御を行う。「ステージ入室操作を行ったタイミングが近い」ということをどのように判定するのかについては、本実施形態では、ステージ開始操作が行われたタイミング、換言すれば、ワールド部屋から退出したタイミング(マッチングのリクエストを行ったタイミング)に着目して判定する。具体的には、このタイミングの差が一定の時間内のプレイヤ同士が同じ部屋になりやすいようにマッチングを行う。例えば、ワールド部屋1AにプレイヤAとプレイヤBの2人のプレイヤがいる場合を想定する。そして、この場合に、プレイヤBが、ワールドマップ画面上で、プレイヤAが操作するリモートキャラクタがステージ1-1に入室するのを見て、プレイヤAを追いかけるつもりで、すぐに自分もステージ1-1へのステージ開始操作を行った場合を想定する。そして、このような操作の結果、プレイヤAがステージ1-1についてのステージ開始操作を行った後、例えば3秒以内にプレイヤBもステージ1-1のステージ開始操作を行ったという状態になったとする。この場合は、両プレイヤは、同じステージを選択しており、かつ、ワールド部屋から退室したタイミングもかなり近いタイミングという関係になっている。より具体的には、3秒という期間内に、プレイヤAとプレイヤBの双方とも、ステージ1-1の開始操作を行ったという状態となっている。本実施形態では、このような関係が成立する場合に、プレイヤAとプレイヤBが同じステージ部屋になりやすいように、マッチングを行う。但し、あくまで同じステージ部屋になる可能性を高めるだけであり、必ず同じ部屋となることを保証するわけではない。例えば、タイミングによっては、プレイヤAが入室したステージ部屋が定員となったために、上記のような関係が成立していても、結果的にプレイヤAとプレイヤBが異なるステージ部屋に割り振られることもあり得る。
【0069】
次に、上記のような「ステージ入室操作を行ったタイミングが近い」といえるような関係が成立しない場合について説明する。例えば、プレイヤCが、ステージ1-1についてステージ開始操作を行い、当該操作から10秒前の期間内に、ステージ1-1のステージ開始操作を行った他のプレイヤがいなかった場合を想定する。この場合は、更に過去に遡って、直近でステージ部屋に入室した他のプレイヤを探し、当該他のプレイヤが入ったステージ部屋が入室先として優先的に選ばれるようなマッチングが行われる。換言すれば、所定のプレイヤによるステージプレイが開始されてから、まだあまり進行していないであろうステージ部屋が優先的に選ばれるようなマッチングを行う。このようにすることで、他のプレイヤが存在するステージ部屋に入った場合に、他のプレイヤと出会いやすくする。また、本実施形態では、当該遡る過去の期間を、段階的に広げていくような制御も行う。具体的には、最初は、ステージ開始操作が行われたタイミング(より正確には、マッチングのリクエストを行ったタイミング)から10秒前までの期間内で判定する。この期間内に「他のプレイヤが入ったステージ部屋」が無ければ、60秒前までの期間内で判定し、この期間内にも無い場合は、120秒前までの期間内で判定する。このように遡る期間を3段階まで設け、120秒前まで遡って見ても、「他のプレイヤが入ったステージ部屋」が無かった場合は、このような時間的要素は考慮せずにマッチングが行われる。これにより、上記のような他のプレイヤとの出会いやすさを考慮しつつ、いつまで経っても入室先が見つからないという状況が発生しないようにもしている。
【0070】
次に、ワールド部屋のマッチングについて概説する。本ゲームでは、以下の3つの場合にワールド部屋のマッチングが行われる。
(1)ステージ部屋から退室した場合
(2)あるワールドから別のワールドに移動する場合(ワールド移動)
(3)ゲームを起動してから初めてワールドマップ画面に遷移する場合
【0071】
まず、ステージ部屋から退室した場合について説明する。上記のように、ステージプレイでゴール地点にプレイヤキャラが到達すれば、そのステージはクリアとなり、ステージ部屋から退室して、ワールド部屋のマッチングが行われる。この際、同じステージ部屋においてゴールしたタイミングが近かったプレイヤについて、同じワールド部屋になりやすくする。これも、上記ステージ入室の場合と同様に、ステージ部屋を退室したタイミング、換言すれば、ワールド部屋についてのマッチングをリクエストしたタイミングに着目して、マッチングが行われる。つまり、ステージクリアによってステージを退室したタイミングが近いプレイヤ同士が、同じワールド部屋に入室しやすくする。
【0072】
[ワールド部屋の合流枠について]
ここで、上記のように、ワールド部屋には入室可能な人数に制限が設けられている。そのため、例えば、プレイヤAとプレイヤBとが、互いに近いタイミングでステージ部屋から退室したが、入室先の候補となるワールド部屋が、例えば、空きが後1人分しかないワールド部屋であったような場合を想定する。この場合、当該ワールド部屋にはプレイヤAだけが入室し、プレイヤBは別のワールド部屋が入室先として選ばれる可能性もある。このような点を考慮し、本実施形態では、上記のような近いタイミングで退室した場合の入室先が同じワールド部屋になりやすいように、ワールド部屋の入室可能人数である30人について、20人分を「通常枠」、10人分を「合流枠」として設定する。そして、基本的には、入室人数が20人以上になれば、満員扱いとして、マッチングの対象から外すようにする。例えば入室人数が18人の状態のワールド部屋がある場合に、あるステージ部屋から4人のプレイヤがある程度近いタイミングで退室した場合を想定する。この場合に、プレイヤAの入室先として入室人数が18人の状態のワールド部屋が選ばれたとする。このような場合に、合流枠を2人分利用して、上記の4人のプレイヤが当該ワールド部屋に入室する可能性が高まるようなマッチングを行う。結果、当該4人のプレイヤが当該ワールド部屋に入室した場合は、当該ワールド部屋は、22人のプレイヤが入室している状態となる。そして、当該ワールド部屋は満員扱いとなり、入室人数が19人以下になるまでは、マッチングの対象から外されるような制御が行われる。
【0073】
[ワールド間移動について]
次に、ワールド間移動の場合について説明する。本実施形態では、あるワールドから別のワールドに移動する場合も、その都度、ワールド部屋のマッチングが行われる。この場合も、上記と同様に、移動先として指定したワールドが同じであって、ワールド移動操作を行ったタイミングがある程度近いプレイヤ同士は、同じワールド部屋が入室先として選ばれやすくなるようにマッチングを行う。そのため、例えば、ワールド1Aの部屋において、プレイヤAがワールド2に移動したことを見たプレイヤBが、即座にワールド2へのワールド移動操作を行えば、ワールド2Aの部屋がプレイヤAおよびプレイヤBの入室先として決定され得る。その結果、いわば、プレイヤBがプレイヤAを追いかけて移動するようなことも可能となる。
【0074】
[ゲーム起動後、最初にワールド部屋に入る場合]
次に、ゲームを起動後、初めてワールドマップ画面に遷移する場合について説明する。例えば、ログインして最初にワールドマップ画面が表示される場合である。この場合は、入室人数が多いワールド部屋が優先的に選ばれるように、マッチングが行われる。なお、本実施形態では、ゲーム起動後、最初に移動するワールドは、セーブデータに基づいて決定されるものとする。すなわち、前回ログアウトの際に最後にいたワールドを移動先として決定する。
【0075】
[本実施形態のマッチング制御処理の詳細]
以下、本実施形態におけるゲーム処理について、より詳細に説明する。まず、本実施形態におけるマッチング処理の基本的な仕組みについて説明する。本実施形態では、ゲーム装置3(ゲームアプリケーション)およびゲームサーバ1(ゲームサーバプログラム)からマッチングサーバ2に対してマッチングリクエストが送信される。このリクエストには、マッチングするために必要な各種データが含まれる。以下では、当該リクエストに含まれる、マッチングに必要なデータ群のことを「チケット」と呼ぶ。また、以下における説明の便宜上、ゲーム装置3から送信されるチケットのことを「通常チケット」と呼び、ゲームサーバ1から送信されるチケットのことを「再募集チケット」と呼ぶ。
【0076】
[通常チケットについて]
まず、ゲーム装置3側からのマッチングリクエストに関して説明する。ゲーム装置3において、ワールド部屋への入室またはステージ部屋への入室を行おうとした場合に、マッチングリクエストとして上記通常チケットがマッチングサーバ2に送信される。マッチングサーバ2では、各ゲーム装置3から受信したマッチングリクエストに含まれる通常チケットを用いて、マッチング処理が行われ、マッチング結果が各ゲーム装置3に通知される。当該通知に基づいて、所定のゲーム装置あるいはゲームサーバ1との接続を確立する処理が行われる、すなわち、上記ワールド部屋あるいはステージ部屋に入室する処理が行われる。
【0077】
[再募集チケットについて]
次に、ゲームサーバ1側からのマッチングリクエストに関して説明する。本実施形態では、ゲームサーバ1からも、マッチングサーバ2に対してマッチングリクエストが送信される。これは、ゲームサーバ1において上記ワールド部屋やステージ部屋を管理するところ、作成済みの部屋に対してプレイヤを補填するためのリクエストである。例えば、入室人数が10人である状態のワールド部屋があるとする。このようなワールド部屋に対して、入室人数を補填するために、ゲームサーバ1からマッチングリクエストとして上記再募集チケットがマッチングサーバに送信される。以下の説明では、当該再募集チケットに対応づけられている、プレイヤを補填したい部屋のことを「再募集部屋」と呼ぶ。マッチングサーバでは、上記通常チケットおよび当該再募集チケットを用いてマッチング処理が行われ、その結果、再募集部屋に対するプレイヤの補填が実現される。
【0078】
なお、本実施形態では、ワールド部屋は最大30人まで入室可能であるが、入室人数が20人以上のワールド部屋については、上記のように「通常枠」が埋まっているため、満員扱いとして、プレイヤの補填は行わない。すなわち、このようなワールド部屋についての再募集チケットの送信は行われない。上述した「合流枠」を機能させるためである。
【0079】
図11に、本実施形態のマッチング処理における、データのやりとりの一例を示す。
図11では、ゲーム装置Aとゲーム装置Bとがそれぞれ、ゲームを起動してから所定のステージをプレイし終わるまでの流れの一例を示している。
【0080】
まず、各ゲーム装置においてログイン処理が行われ、セーブデータのロード等が行われた後、自身の情報を含む通常チケットがマッチングサーバに送信される(P1-A、P1-B)。各ゲーム装置からの通常チケットには、同じワールドに係るワールド部屋のマッチングを要求する旨の情報が含まれているとする。例えば、双方とも「ワールド1」を指定したマッチングを要求しているとする。
【0081】
また、ゲームサーバ1では、上記の各部屋の管理制御が行われており、必要に応じて、上記再募集チケットの送信が行われる(P2)。ここでは、入室人数が5人の「ワールド1」に係るワールド部屋に係る再募集チケットが送信されたとする。
【0082】
次に、マッチングサーバ2で、マッチングが実行される(P3)。ここでは、マッチングの結果、上記再募集に係るワールド部屋と、ゲーム装置Aおよびゲーム装置Bがマッチングされたとする。すなわち、ゲーム装置Aおよびゲーム装置Bの入室先として上記再募集に係るワールド部屋が選ばれたとする。マッチングの結果はゲーム装置A、ゲーム装置Bおよびゲームサーバ1に伝えられる。なお、当該マッチングのための処理は、マッチングサーバがチケットを受信した際に実行してもよいし、所定の間隔で定期的に実行してもよい。
【0083】
次に、ゲームサーバ1から、マッチングされたゲーム装置A、Bに対して、ワールド部屋状況が送信される(P4)。当該ワールド部屋状況には、現在入室しているプレイヤの、ワールドマップ上での位置情報等が含まれている。
【0084】
次に、各ゲーム装置で、上記ワールド部屋状況に基づき、プレイヤキャラおよびリモートキャラクタが配置されたワールドマップ画面が生成および表示される。その後、各ゲーム装置とゲームサーバ1との間で、操作情報やワールド部屋状況の送受信が適宜行われ、ワールドマップ画面に係るゲーム処理が実行される(P5-A、P5-B、P6)。
【0085】
次に、各ゲーム装置で、ステージ開始操作が行われたとする(P7-A、P7-B)。ここでは、ゲーム装置Aおよびゲーム装置Bで、ある程度近いタイミングで同じステージに対してステージ開始操作が行われた場合を想定する。この場合、まず、退室通知が各ゲーム装置からゲームサーバ1に送信される。これに応じて、ゲームサーバ1では、ワールド部屋からゲーム装置Aおよびゲーム装置Bのプレイヤを退室させる処理が実行される(P8)。
【0086】
更に、各ゲーム装置(のゲームアプリケーション)から、通常チケットがマッチングサーバ2に送信される。この場合の通常チケットには、ステージ部屋のマッチングを要求する旨の情報が含まれている。
【0087】
次に、マッチングサーバ2でステージ部屋のマッチングが行われ、その結果が、各ゲーム装置およびゲームサーバに送信される(P9)。当該ステージ部屋のマッチングにおいては、上記のように、元いたワールド部屋に限らず、ログイン中の他のプレイヤもマッチング対象としてマッチングが行われる。ここでは、ゲーム装置Aおよびゲーム装置Bがマッチングされたとする。
【0088】
ステージ部屋のマッチング結果を受けたゲームサーバ1では、ステージ部屋を管理するための所定の処理が実行される(P10)。具体的には、後述する部屋管理データの更新等が実行される。
【0089】
また、マッチング結果を受けたゲーム装置Aおよびゲーム装置B同士でセッションを確立する処理が実行される(P11-A、P11-B)。すなわち、ステージ部屋に入室する処理が行われる。ここでは、新たにステージ部屋(通信グループ)が生成されるものとする。また、この場合は、結果的に、プレイヤAのプレイヤキャラ、プレイヤBのプレイヤキャラの双方ともスタート地点付近に表示されているようなステージ画面が表示されることになる。つまり、ほぼ同時に同じステージ部屋に入室したような状況が表現されることになる。
【0090】
次に、ゲーム装置間でP2P通信を行いながら、ステージプレイに係る処理が実行される(P12-A、P12-B)。なお、この間、ゲームサーバ1では、適宜、当該ステージ部屋に係る再募集チケットの送信も行われ得る。
【0091】
次に、ステージがクリアされると、各ゲーム装置で、ステージ終了処理が行われる(P13-A、P13-B)。ここでは、ほぼ同時に、ステージクリアされたとする。この処理では、まず、退室通知が他のゲーム装置およびゲームサーバ1に送られ、ステージ部屋からの退室が行われる。ゲームサーバ1では、必要に応じて、プレイヤがいなくなったステージ部屋を、ステージ部屋の管理上、消去するような処理も行われる(P14)。
【0092】
ステージ部屋からの退室が終われば、各ゲーム装置は、通常チケットをマッチングサーバに送信し、ワールド部屋のマッチングをリクエストする。
【0093】
マッチングサーバ2でワールド部屋のマッチングが行われ、その結果が各ゲーム装置3、ゲームサーバ1に送信される(P15)。
【0094】
その後、上記同様に、マッチング結果に基づいてワールド部屋への入室が行われ、ワールドマップ画面に係るゲーム処理が実行される(P16、P17-A、P17-B、P18)。
【0095】
本実施形態では、概ねこのような流れで、マッチングと、ワールド部屋、ステージ部屋への入退室が行われる。以下、ゲーム装置3、ゲームサーバ1、マッチングサーバ2のぞれぞれで用いられる各種データ、および、それぞれで行われる処理の詳細を説明する。
【0096】
[ゲームサーバ1で用いられるデータについて]
まず、ゲームサーバ1で用いられるデータに関して説明する。
図12は、ゲームサーバ1の記憶部12に記憶される各種データの一例を示すメモリマップである。ゲームサーバ1の記憶部12には、ゲームサーバプログラム301、プレイヤデータベース302、ワールド部屋管理データ303、ワールド部屋状況データ304、ステージ部屋管理データ305、リクエスト用データ306が少なくとも記憶されている。
【0097】
ゲームサーバプログラム301は、上記ワールド部屋やステージ部屋を管理するための処理を含むゲーム処理を実行するためのプログラムである。
【0098】
プレイヤデータベース302は、本実施形態に係るゲームをプレイする各プレイヤに関するデータベースである。データベースの各レコードには、例えば、各プレイヤを識別するためのプレイヤID、各プレイヤが現在使用しているゲーム装置3を特定するためのゲーム装置識別情報、アカウント情報等が含まれる。
【0099】
ワールド部屋管理データ303は、上記ワールド部屋を管理するためのデータベースである。ワールド部屋管理データ303には、ワールド部屋毎に、そのワールド部屋の識別子、入室人数、入室しているプレイヤのプレイヤID、各プレイヤキャラのワールドマップ内での位置情報、等が含まれる。
【0100】
ワールド部屋状況データ304は、各ワールド部屋の状況を、そこに入室している各プレイヤに係るゲーム装置3に送信するためのデータである。例えば、ワールド1Aの部屋に入室している各プレイヤのゲーム装置3に対して、ワールド1A部屋の各プレイヤキャラの位置情報等を示す情報が、ワールド部屋状況データ304として送信され得る。
【0101】
ステージ部屋管理データ305は、上記ステージ部屋を管理するためのデータベースである。ステージ部屋管理データ305には、現在存在しているステージ部屋毎に、そのワールド部屋の識別子、入室人数、入室しているプレイヤのプレイヤID等が含まれる。
【0102】
リクエスト用データ306は、ゲームサーバ1からマッチングサーバ2にマッチングのリクエストを行う際に用いられるデータである。リクエスト用データ306には、複数の再募集チケットデータ307が含まれている。
【0103】
図13に、再募集チケットデータ307のデータ構成の一例を示す。再募集チケットデータ307には、チケットヘッダー308、再募集部屋識別子314、チケット内人数315、チケット内プレイヤ情報316が少なくとも含まれる。また、チケットヘッダー308には、チケットID309、チケット種別310、リクエスト区分311、リクエスト指定先312、リクエスト日時313が少なくとも含まれる。
【0104】
チケットID309は、その再募集チケットを一意に特定するための識別情報である。チケット種別310は、自身が通常チケットであるのか再募集チケットであるのかを示すための情報である。ゲームサーバ1から再募集チケットが送られる場合は、チケット種別310に「再募集チケット」である旨が設定される。
【0105】
リクエスト区分311は、そのチケットが、上記ステージ部屋のマッチングを要求するのか、ワールド部屋のマッチングを要求するのかを示すための情報である。ワールド部屋のプレイヤを補填する目的で再募集チケットを送る場合は、リクエスト区分311には「ワールド部屋」を指定する旨の情報が設定される。一方、ステージ部屋のプレイヤを補填する目的で再募集チケットを送る場合は、リクエスト区分311には「ステージ部屋」を指定する旨の情報が設定される。
【0106】
リクエスト指定先312は、具体的にどのワールドまたはステージに係る部屋のマッチングを要求しているのかを示す情報である。再募集チケットの場合は、当該再募集チケットに係る再募集部屋、すなわち、プレイヤの補填を行いたい部屋自体のワールド番号またはステージ番号が設定される。例えば、ワールド1Aの部屋についてプレイヤの補填を行いたい場合は、「ワールド1」、ワールド1Bの部屋についてプレイヤの補填を行いたい場合はも「ワールド1」がリクエスト指定先312に設定される。また、例えば「ステージ1-3C」の部屋についてプレイヤの補填を行いたい場合は、「ステージ1-3」がリクエスト指定先312に設定される。また、「ステージ2-1B」の部屋についてプレイヤの補填を行いたい場合は、「ステージ2-1」がリクエスト指定先312に設定される。
【0107】
リクエスト日時313には、ゲームサーバ1がマッチングサーバ2に、その再募集チケットを含むリクエストを送信した日時が設定される。
【0108】
再募集部屋識別子314は、当該再募集チケットに係る再募集部屋自体の識別子である。本実施形態では、「ワールド1A」「ワールド1B」のように、同じワールド、同じステージでも、複数の部屋が並列的に存在し得るため、各部屋自身を特定するための情報として再募集部屋識別子314が用いられる。例えば、ワールド1Bの部屋についてプレイヤの補填を行いたい場合は、再募集部屋識別子314には「ワールド1B」の部屋の識別子が設定される。また、例えば「ステージ1-3C」の部屋についてプレイヤの補填を行いたい場合は、再募集部屋識別子314には「ステージ1-3C」の部屋の識別子が設定される。
【0109】
チケット内人数315は、当該チケットに含まれるプレイヤ数を示す情報である。そして、再募集チケットの場合は、再募集部屋の現在の入室人数を示す情報となる。例えば、入室人数が10人のワールド部屋について再募集チケットを送信する場合は、チケット内人数315には「10」が設定される。
【0110】
チケット内プレイヤ情報316は、そのチケットに含まれるプレイヤの情報である。そして、再募集チケットの場合は、再募集部屋に現在入室している各プレイヤの情報となる。そのため、チケット内プレイヤ情報316には、1件以上のプレイヤデータ317が含まれ得る。各プレイヤデータ317には、プレイヤID318、退出部屋識別子319、退出日時320が少なくとも含まれる。プレイヤID318は、各プレイヤを識別するための情報である。退出部屋識別子319は、そのプレイヤ(に係るゲーム装置3)が最後に退出した部屋の識別子である。退出日時320は、当該部屋を退出した日時である。詳細は後述するが、退出部屋識別子319や退出日時320を用いることで、同じ部屋から退出したタイミングがある程度近いタイミングであるかどうかが判定される。
【0111】
なお、本実施形態では、再募集部屋がステージ部屋の場合は最大で3人分、再募集部屋がワールド部屋の場合は、最大で19人分のプレイヤデータ317が含まれる。上記のように、「通常枠」の20人が埋まれば、プレイヤ補填のためのリクエストは行わないからである。
【0112】
[マッチングサーバ2で用いられるデータについて]
次に、マッチングサーバ2で用いられるデータに関して説明する。
図14は、マッチングサーバ2の記憶部22に記憶される各種データの一例を示すメモリマップである。マッチングサーバ2の記憶部22には、マッチングプログラム331、リクエストキュー332が少なくとも記憶されている。
【0113】
マッチングプログラム331は、本実施形態に係るマッチングを制御するためのプログラムである。本実施形態では、マッチングプログラム331によるマッチング処理は所定の間隔で定期的に実行されるよう構成されている。例えば3秒間隔でマッチング処理が実行される。リクエストキュー332は、マッチング処理の定期実行間隔の間にマッチングサーバ2に送られてきたマッチングのリクエストを一時的に溜めておくための記憶領域である。
【0114】
また、図示は省略するが、マッチング結果を送信するための送信用データ等も適宜生成され、記憶部22に記憶され得る。
【0115】
[ゲーム装置3で用いられるデータについて]
次に、ゲーム装置3で用いられるデータに関して説明する。
図16は、ゲーム装置3の記憶部32に記憶される各種データの一例を示すメモリマップである。ゲーム装置3の記憶部32には、ゲームプログラム351、プレイヤキャラクタデータ352、ワールドデータ353、ステージデータ354、キャラクタデータ355、通常チケットデータ356、入室部屋データ357、操作データ358、ゲームモードフラグ359、送信用データ360、リモートキャラクタ制御用データ361が少なくとも記憶されている。
【0116】
ゲームプログラム351は、ゲーム装置3において、本実施形態におけるゲーム処理を実行するためのプログラムである。
【0117】
プレイヤキャラクタデータ352は、プレイヤの操作対象となる上記プレイヤキャラ201に関するデータである。プレイヤキャラクタデータ352には、ワールドマップやステージにおいて、プレイヤキャラ201の位置を示すデータや、プレイヤキャラ201の姿勢を示すデータ等が含まれている。
【0118】
ワールドデータ353は、各ワールドを仮想空間として構築するための各種のデータが含まれている。具体的には、ワールドデータ353には、ワールト毎に、各ワールドの画像データや、配置されるステージオブジェクト等のオブジェクトデータが含まれる。
【0119】
ステージデータ354は、上記のステージを構築するためのデータが含まれている。具体的には、ステージデータ354には、ステージ毎に、スタート地点ゴール地点の位置情報、配置される各種オブジェクトの外観、配置位置、行動パターン等を示すデータが含まれる。
【0120】
キャラクタデータ355は、本ゲームで登場する各種キャラクタに関するデータである。例えば、各キャラクタの外観やモデルデータがキャラクタデータ355に含まれている。上記リモートキャラクタの外観は、当該キャラクタデータ355に基づいて表示される。
【0121】
通常チケットデータ356は、ゲーム装置3からマッチングサーバ2に送られる、上記通常チケットのデータである。
図16に、通常チケットデータ356のデータ構成の一例を示す。
図16において、通常チケットデータ356には、チケットヘッダー308、チケット内人数315、チケット内プレイヤ情報316が少なくとも含まれる。通常チケットデータ356のデータ構成は、一部を除き、上記
図13で示した再募集チケットデータ307と同様である。具体的には、チケットヘッダー308は再募集チケットデータ307と共通の構成である。そのため、詳細な説明は省略するが、再募集チケットデータ307とは異なり、通常チケットデータ356におけるチケット種別310には、「通常チケット」である旨の情報が設定される。また、通常チケットにおけるリクエスト指定先312には、プレイヤが移動したいワールドまたはステージを指定する値が設定される。例えば、プレイヤがワールド1からステージ1-1に入室する場合は、「ステージ1-1」がリクエスト指定先312に設定される。また、プレイヤがワールド1からワールド2に移動する場合は、「ワールド2」がリクエスト指定先312に設定される。
【0122】
また、再募集チケットデータ307とは異なり、通常チケットデータ356には、上記再募集部屋識別子314は含まれていない。また、本実施形態では、各ゲーム装置に係るプレイヤは1人だけである場合を想定する。そのため、通常チケットデータ356では、チケット内人数315は1人として設定される。また、チケット内プレイヤ情報316には、当該ゲーム装置3に係るプレイヤ1人分のプレイヤデータ317だけが含まれる構成になるものとする。この点、もし、1台のゲーム装置で例えば2人のプレイヤが一緒にプレイしているような場合は、通常チケットデータ356のチケット内プレイヤ情報316に2人分のプレイヤの情報を含めてもよい。
【0123】
図15に戻り、入室部屋データ357は、現在入室している部屋(セッション)を特定するための情報である。例えば、ワールド部屋に入室している場合は、入室部屋データ357には、そのワールド部屋の識別子等が含まれる。また、ステージ部屋に入室している場合は、入室部屋データ357には、そのステージ部屋の識別子等が含まれる。
【0124】
操作データ358は、プレイヤが操作するコントローラ4から得られるデータである。すなわち、プレイヤが行った操作内容を示すデータである。
【0125】
ゲームモードフラグ359は、後述のゲーム処理において、現在、プレイヤキャラがワールドマップにいるのか、ステージにいるのかを区別するためのフラグである。本実施形態では、「ワールドマップ」または「ステージプレイ」のいずれかを示す情報が設定される。
【0126】
送信用データ360は、プレイヤキャラに関する情報をゲームサーバまたは同じステージ部屋の他のゲーム装置3に送信するためのデータである。本実施形態では、送信用データ360には、プレイヤキャラのワールドマップ内、あるいは、ステージ内での位置情報が含まれるものとする。他の実施形態では、例えば、操作データ358の内容を送信用データ360に含めてもよい。
【0127】
リモートキャラクタ制御用データ361は、ワールドマップ画面、または、ステージ画面において、他プレイヤが操作するリモートキャラクタの動作制御を行うためのデータである。ワールドマップ画面においては、ゲームサーバ1から送信されたワールド部屋状況データ304に基づいて生成される。また、ステージ画面においては、同じステージ部屋に入っている他のゲーム装置から送信された送信用データ360に基づいて、リモートキャラクタ制御用データ361が生成される。
【0128】
次に、本実施形態におけるゲーム処理の詳細を説明する。まず、ゲーム装置3で行われる処理の詳細を説明し、その後、ゲームサーバ1、マッチングサーバ2における処理について説明する。
【0129】
[ゲーム装置3のプロセッサ31が実行する処理の詳細]
図17は、ゲーム装置3のプロセッサ31が実行するゲーム装置側処理の詳細を示すフローチャートである。本実施形態では、1以上のプロセッサが1以上のメモリに記憶された上記プログラムを読み込んで実行することにより、以下に示すフローチャートが実現される。なお、以下に示すフローチャートは、処理過程の単なる一例にすぎない。そのため、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判定ステップで利用される閾値も、単なる一例であり、必要に応じて他の値を採用してもよい。
【0130】
ゲーム装置3において、ゲーム処理が起動されると、まず、ステップS1で、プロセッサ31は、開始処理を実行する。
図18は、当該開始処理の詳細を示すフローチャートである。
図18において、まず、ステップS11で、プロセッサ31は、ゲームサーバ1と通信を行い、ログインする処理を実行する。
【0131】
次に、ステップS12で、プロセッサ31は、ゲーム装置3の記憶部32からセーブデータを取得し、ゲームの進行状況を再現する。
【0132】
次に、ステップS13で、プロセッサ31は、ワールド部屋のマッチングリクエストをマッチングサーバに送信する。具体的には、プロセッサ31は、通常チケットデータ356の内容として、「通常チケット」をチケット種別310に設定し、「ワールド部屋」をリクエスト区分311に設定する。更に、プロセッサ31は、リクエスト指定先312にセーブデータに基づいた所定のワールドを設定する。例えば、前回ログアウトの際に、ワールド3にいた場合は、「ワールド3」がリクエスト指定先312に設定される。また、プロセッサ31は、プレイヤID318に、そのプレイヤのプレイヤIDを設定する。また、ログインのタイミングであることから、退出部屋識別子319および退出日時320にはNull値が設定される。また、チケットID309には所定の値が自動生成され、設定される。そして、プロセッサ31は、送信実行時刻をリクエスト日時313に設定して、通常チケットデータ356をマッチングサーバ2に送信する。
【0133】
次に、ステップS14で、プロセッサ31は、マッチングサーバ2から、マッチング結果を受信する。当該マッチング結果には、指定したワールドに係るいずれかのワールド部屋の識別子等が含まれている。続くステップS15で、プロセッサ31は、マッチング結果に基づき、ワールド部屋に入室する処理を行う。すなわち、ゲームサーバ1との間で、マッチング結果で示される所定のワールド部屋に係る通信セッションを確立する。
【0134】
次に、ステップS16で、プロセッサ31は、ゲームモードフラグ359に「ワールドマップ」を設定する。その後、プロセッサ31は、開始処理を終了する。
【0135】
図17に戻り、次に、ステップS2で、プロセッサ31は、ゲームモードフラグ359が「ワールドマップ」か否かを判定する。当該判定の結果、「ワールドマップ」の場合は(ステップS2でYES)、ステップS3で、プロセッサ31は、ワールドマップ処理を実行する。一方、「ワールドマップ」ではない場合は(ステップS2でNO)、ステップS4で、プロセッサ31は、ステージプレイ処理を実行する。その後、上記ステップS1に戻り、処理が繰り返される。以下、ワールドマップ処理およびステージプレイ処理の詳細について説明する。
【0136】
[ワールドマップ処理]
図19は、上記ワールドマップ処理の詳細を示すフローチャートである。
図19において、まず、ステップS21で、プロセッサ31は、ゲームサーバ1から、入室先の部屋に係るワールド部屋状況データ304を受信する。そして、プロセッサ31は、当該受信したワールド部屋状況データ304に基づき、ワールドマップ画面を生成して、表示部5に表示する。
【0137】
次に、ステップS22で、プロセッサ31は、操作データ358を取得する。次に、ステップS23で、プロセッサ31は、操作データ358に基づき、ステージ開始操作が行われたか否かを判定する。当該判定の結果、ステージ開始操作が行われた場合は、ステップS24で、プロセッサ31は、ステージ入室処理を実行する。
【0138】
[ステージ入室処理]
図20は、ステージ入室処理の詳細を示すフローチャートである。
図20において、まず、ステップS41で、プロセッサ31は、現在いるワールド部屋から退室するための処理を実行する。具体的には、プロセッサ31は、ゲームサーバ1に退室通知を送信し、ゲームサーバ1との通信セッションを終了する。
【0139】
次に、ステップS42で、プロセッサ31は、ステージ開始操作において指定されたステージについてのマッチングリクエストをマッチングサーバ2に送信する。具体的には、プロセッサ31は、通常チケットデータ356に以下の内容を設定して、マッチングサーバ2に送信する。まず、チケット種別310には、「通常チケット」が設定される。リクエスト区分311には「ステージ部屋」が設定され、リクエスト指定先312に、ステージ開始操作において指定されたステージが設定される。例えば、「ステージ1-1」や「ステージ1-3」等が設定され得る。また、プレイヤID318にはプレイヤ自身のプレイやIDが設定され、退出部屋識別子319には、今回退出したワールド部屋の識別子が設定される。また、退出日時320には、上記通信セッションが終了した日時が設定される。また、チケットID309には所定の値が自動生成される。そして、プロセッサ31は、リクエスト日時313を設定して通常チケットデータ356をゲームサーバ1に送信する。
【0140】
次に、ステップS43で、プロセッサ31は、マッチングサーバ2から、マッチング結果を受信する。当該マッチング結果には、入室先として決定されたステージ部屋の識別子や、同じ部屋になる他のゲーム装置のネットワークアドレス等が含まれている。続くステップS44で、プロセッサ31は、マッチング結果に基づき、上記決定されたステージ部屋に入室する処理を行う。すなわち、ステージ部屋に係る通信セッション(P2P通信)を確立する処理を実行する。なお、入室人数が自身だけの場合は、参加しているゲーム装置が1台だけの通信セッションが生成されることになる。
【0141】
次に、ステップS45で、プロセッサ31は、ゲームモードフラグ359に「ステージプレイ」を設定する。その後、プロセッサ31は、ステージ入室処理を終了する。
【0142】
図19に戻り、ステージ入室処理が終われば、ワールドマップ処理は終了する。
【0143】
一方、上記ステップS23の判定の結果、ステージ開始操作が行われていない場合は(ステップS23でNO)、ステップS25で、プロセッサ31は、ワールド移動操作が行われたか否かを判定する。当該判定の結果、ワールド移動操作が行われた場合は(ステップS25でYES)、ステップS26で、プロセッサ31は、ワールド移動処理を実行する。
【0144】
[ワールド移動処理]
図21は、上記ワールド移動処理の詳細を示すフローチャートである。
図21において、まず、ステップS51で、プロセッサ31は、現在いるワールド部屋から退室するための処理を実行する。具体的には、ゲームサーバ1に退室通知を送信し、ゲームサーバ1との通信セッションを終了する。
【0145】
次に、ステップS52で、プロセッサ31は、ワールド移動操作において指定されたワールドについてのマッチングのリクエストをマッチングサーバ2に送信する。具体的には、プロセッサ31は、通常チケットデータ356に以下の内容を設定して、マッチングサーバ2に送信する。まず、チケット種別310には、「通常チケット」が設定される。リクエスト区分311には「ワールド部屋」が設定され、リクエスト指定先312に、ワールド移動操作において指定されたワールドが設定される。例えば、「ワールド2」や「ワールド3」等が設定され得る。また、プレイヤID318にはプレイヤ自身のプレイやIDが設定され、退出部屋識別子319には、今回退出したワールド部屋の識別子が設定される。また、退出日時320には、上記通信セッションが終了した日時が設定される。また、チケットID309には所定の値が自動生成される。そして、プロセッサ31は、リクエスト日時313を設定して通常チケットデータ356をゲームサーバ1に送信する。
【0146】
次に、ステップS53で、プロセッサ31は、マッチングサーバ2から、マッチング結果を受信する。当該マッチング結果には、入室先として決定されたワールド部屋の識別子が含まれている。続くステップS54で、プロセッサ31は、マッチング結果に基づき、上記決定されたワールド部屋に入室する処理を行う。すなわち、入室先となるワールド部屋についての、ゲームサーバ1との通信セッションを確立する処理を実行する。その後、プロセッサ31は、ワールド移動処理を終了する。
【0147】
図19に戻り、ワールド移動処理が終われば、ワールドマップ処理は終了する。
【0148】
一方、上記ステップS25の判定の結果、ワールド移動操作が行われていない場合は(ステップS25でNO)、ステップS27で、プロセッサ31は、プレイヤキャラを移動させる操作(以下、移動操作)が行われたか否かを判定する。当該判定の結果、移動操作が行われていた場合は(ステップS27でYES)、ステップS28で、プロセッサ31は、操作内容に基づき、ワールドマップ内でプレイヤキャラを移動させる。一方、移動操作が行われていない場合は(ステップS27でNO)、ステップS29で、プロセッサ31は、操作内容に基づき、ワールドマップ画面におけるその他のゲーム処理を適宜実行する。例えば、画面のスクロールや、ステージ情報の閲覧等の処理が実行され得る。
【0149】
次に、ステップS30で、プロセッサ31は、ワールドマップ内におけるプレイヤキャラの位置情報を含む送信用データ360を生成する。そして、プロセッサ31は、当該送信用データ360をゲームサーバ1に送信する。
【0150】
次に、ステップS31で、プロセッサ31は、現在入室しているワールド部屋に係るワールド部屋状況データ304をゲームサーバ1から受信する。そして、プロセッサ31は、当該受信したワールド部屋状況データ304に基づいて上記リモートキャラクタ制御用データ361を設定し、リモートキャラクタの動作制御を行う。そして、プロセッサ31は、リモートキャラクタの動作と、上記プレイヤキャラについての操作内容が反映されたワールドマップ画面を生成して、表示部5に表示する。その後、上記ステップS22に戻り、処理が繰り返される。
【0151】
次に、上記ステップS4に係るステージプレイ処理について説明する。
図22は、当該ステージプレイ処理の詳細を示すフローチャートである。
図22において、まず、ステップS61で、プロセッサ31は、今回プレイされるステージに係る仮想空間を生成する。更に、プロセッサ31は、そのステージで定義されているスタート地点にプレイヤキャラを配置する。また、他のプレイヤも入室している場合は、リモートキャラクタの配置も行われる。具体的には、プロセッサ31は、他のゲーム装置3から送られた送信用データ360を受信し、リモートキャラクタ制御用データ361を生成する。そして、プロセッサ31は、リモートキャラクタ制御用データ361に含まれている位置情報に基づき、リモートキャラクタをステージ内の所定の位置に配置する。そして、プロセッサ31は、ステージ画面を生成して表示する。その後、プレイヤからの操作を待ち受けることで、当該プレイヤに係るステージプレイが開始される。
【0152】
次に、ステップS62で、プロセッサ31は、操作データ358を取得する。
【0153】
次に、ステップS63で、プロセッサ31は、操作データ358に基づき、プレイヤキャラ201の動作制御を行う。
【0154】
次に、ステップS64で、プロセッサ31は、リモートキャラクタの動作制御を行う。具体的には、他のゲーム装置3から送られた送信用データ360を受信し、リモートキャラクタ制御用データ361を設定する。そして、プロセッサ31は、リモートキャラクタ制御用データ361に基づき、リモートキャラクタを移動させる。また、この際、他のゲーム装置3から退室通知を受けたか否かも判定し、退室通知を受けていた場合は、当該他のゲーム装置を通信セッションから切断する処理も適宜行われる。
【0155】
次に、ステップS65で、プロセッサ31は、敵キャラクタ等の他のキャラクタの動作制御を行う。更に、プロセッサ31は、当たり判定およびその結果に基づく各種のゲーム処理も実行する。
【0156】
次に、ステップS66で、プロセッサ31は、プレイヤがステージ部屋から退室するための条件が満たされたか否かを判定する。当該条件は、ゴール地点にプレイヤキャラ201が到達した場合、ゲームオーバーとなった場合、途中退室の操作が行われた場合のいずれかである。当該判定の結果、退室条件が満たされていない場合は(ステップS66でNO)、ステップS67で、プロセッサ31は、上記のゲーム処理が反映されたステージ画面を生成して表示する。その後、上記ステップS62に戻り、処理が繰り返される。
【0157】
一方、退室条件が満たされた場合は(ステップS66でYES)、ステップS68で、プロセッサ31は、ステージ退室処理を実行する。
図23は、当該ステージ退室処理の詳細を示すフローチャートである。
図23において、まず、ステップS71で、プロセッサ31は、現在いるステージ部屋から退室するための処理を実行する。具体的には、同じステージ部屋の他のゲーム装置3およびゲームサーバ1に退室通知を送信し、ステージ部屋に係る通信セッションを終了する。
【0158】
次に、ステップS72で、プロセッサ31は、ワールドについてのマッチングのリクエストをマッチングサーバ2に送信する。具体的には、プロセッサ31は、通常チケットデータ356に以下の内容を設定して、マッチングサーバ2に送信する。まず、チケット種別310には、「通常チケット」が設定される。リクエスト区分311には「ワールド部屋」が設定され、リクエスト指定先312には、現在のステージが属するワールドが設定される。例えば、「ステージ2-1」から退出する場合は「ワールド2」が設定される。また、プレイヤID318にはプレイヤ自身のプレイやIDが設定され、退出部屋識別子319には、今回退出したステージ部屋の識別子が設定される。また、退出日時320には、通信セッションが終了した日時が設定される。また、チケットID309には所定の値が自動生成される。そして、プロセッサ31は、リクエスト日時313を設定して通常チケットデータ356をゲームサーバ1に送信する。
【0159】
次に、ステップS73で、プロセッサ31は、マッチングサーバ2から、マッチング結果を受信する。当該マッチング結果には、入室先として決定されたワールド部屋の識別子が含まれている。続くステップS74で、プロセッサ31は、マッチング結果に基づき、上記決定されたワールド部屋に入室する処理を行う。すなわち、入室先となるワールド部屋についての、ゲームサーバ1との通信セッションを確立する処理を実行する。
【0160】
次に、ステップS75で、プロセッサ31は、ゲームモードフラグ359に「ワールドマップ」を設定する。その後、プロセッサ31は、ステージ退室処理を終了する。
【0161】
図22に戻り、ステージ退室処理が終われば、プロセッサ31は、ステージプレイ処理を終了する。
【0162】
以上で、ゲーム装置3に係る処理の詳細説明を終了する。
【0163】
[ゲームサーバ1の処理]
次に、ゲームサーバ1で実行される処理の詳細について説明する。
図24は、ゲームサーバ1に係る処理の詳細を示すフローチャートである。
図24において、まず、ステップS101で、ゲームサーバ1のプロセッサ11は、部屋の管理処理を行う。具体的には、プロセッサ11は、各部屋について、プレイヤの補填を行うか否か(再募集のリクエストを行うか否か)の判定や、必要に応じて新たな部屋を作成する処理、プレイヤがいなくなった部屋を削除する処理等、各部屋を管理する処理等を行う。すなわち、ワールド部屋管理データおよびステージ部屋管理データ305を適宜更新する処理が行われる。なお、本実施形態では、入室人数が1~19人のワールド部屋、1~3人のステージ部屋は、再募集のリクエストを行う対象として判定される。
【0164】
次に、ステップS102で、プロセッサ11は、上記ステップS101において、再募集のリクエストを行うと判定された部屋について、再募集のリクエストを行う。すなわち、プロセッサ11は、該当する部屋の情報を設定した再募集チケットデータ307を部屋ごとに生成する。そして、プロセッサ11は、当該再募集チケットデータ307をマッチングサーバ2に送信する。
【0165】
次に、ステップS103で、プロセッサ11は、各再募集チケットについてのマッチング結果をマッチングサーバ2から受信する。次に、ステップS104で、プロセッサ11は、マッチング結果に基づいて、所定のゲーム装置3都の間でワールド部屋に係る通信セッションを確立する。更に、プロセッサ11は、マッチング結果をワールド部屋管理データ303およびステージ部屋管理データ305に反映する。例えば、マッチングの結果、所定のワールド部屋にプレイヤが補填された場合、ワールド部屋管理データ303における、対応するワールド部屋の入室プレイヤの情報等が適宜更新される。ステージ部屋についても同様に、ステージ部屋管理データ305が、マッチング結果に基づいて適宜更新される。
【0166】
次に、ステップS105で、プロセッサ11は、各ワールド部屋に係るワールド部屋状況データ304を、各ゲーム装置3から送信されたデータに基づき更新する。また、プロセッサ11は、更新されたワールド部屋状況データ304を、各ゲーム装置3に送信する。すなわち、プロセッサ11は、現存するワールド部屋毎に、入室しているプレイヤキャラの位置情報を同部屋内の他のプレイヤに係るゲーム装置3に送信する。これにより、同じワールド部屋に接続しているゲーム装置間でワールドマップ画面の同期が行われることになる。
【0167】
その後、プロセッサ11は、上記ステップS101に戻り、処理を繰り返す。以上で、ゲームサーバ1に係る処理の詳細説明は終了する。
【0168】
[マッチングサーバの処理]
次に、マッチングサーバ2で実行される処理の詳細について説明する。
図25は、当該マッチングサーバにおける処理の詳細を示すフローチャートである。
図25において、まず、ステップS201で、マッチングサーバ2のプロセッサ21は、ゲーム装置3およびゲームサーバ1から送信された、マッチングのリクエストを受信する。
【0169】
次に、ステップS202で、プロセッサ21は、上記ステップS201で受信したリクエストをリクエストキュー332に登録する。
【0170】
次に、ステップS203で、プロセッサ21は、次に説明するマッチメイク処理を実行するための所定の条件が満たされたか否かを判定する。当該マッチメイク処理は、例えば、一定期間毎に実行してもよいし、リクエストキューに所定数のリクエストが溜まったときに実行してもよい。そのため、当該ステップS203では、例えば、上記一定期間が到来したか否かや、リクエストキューに溜まっているリクエスト数の判定等マッチメイク処理を実行するための所定の条件が満たされたか否かが判定されればよい。また、その他、リクエストが届く毎にマッチメイク処理を実行するような構成としてもよい。この場合は、リクエストを新たに受信したか否かの判定が行われればよい。当該判定の結果、マッチメイク処理の実行条件が満たされていない場合は(ステップS203でNO)、上記ステップS201に戻り、処理が繰り返される。
【0171】
一方、マッチメイク処理の実行条件が満たされた場合は(ステップS203でYES)、ステップS204で、プロセッサ21は、マッチメイク処理を実行する。
図26は、当該マッチメイク処理の詳細を示すフローチャートである。
図26において、まず、ステップS211で、プロセッサ21は、リクエストキュー332に溜まっているチケットデータを取得する。更に、プロセッサ21は、リクエストキュー332をクリアする。
【0172】
次に、ステップS212で、プロセッサ21は、取得したチケットデータを、上記リクエスト区分311に基づいて、ワールドマップ部屋のマッチングをリクエストするチケットデータと、ステージ部屋のマッチングをリクエストするチケットデータとに分類する。
【0173】
次に、ステップS213で、プロセッサ21は、ワールドマップ部屋のマッチングをリクエストするチケットデータを対象にして、ワールドマッチング処理を実行する。当該処理では、移動先として同じワールドを選んだタイミングがある程度近いプレイヤ同士が、同じ部屋になりやすいように(上記優先条件1)、マッチングが行われる。また、ある程度近いタイミングで同じワールドを選んだプレイヤがいない場合は、入室人数が多いワールド部屋を優先的に選択するように(上記優先条件2)、マッチングが行われる。上記優先条件1および優先条件2が達成できれば、どのような手法でマッチングを行ってもよいが、例えば、上記チケットを、退出部屋の識別子、退出日時、再募集部屋内の人数でソートした結果に基づいてマッチングを行ってもよい。このようなソートにより、同じ部屋同士で退出日時も近いチケット同士が隣接するようなチケットの並びが出来上がる。そして、この並び順を活用するマッチングを行うようにしてもよい。具体的には、以下のような処理でマッチングを行ってもよい。まず、プロセッサ21は、ワールドマップ部屋をリクエストする上記チケットについて、退出部屋の識別子順にソートする。また、同じ部屋の識別子を持つチケット同士は、更に、退出日時でソートする。これにより、同じ部屋同士で退出日時も近いチケット同士が隣接するようなチケットの並びとなる。次に、プロセッサ21は、チケット内人数315に基づき、各チケットに含まれるプレイヤ数の多い順番でソートする。ここで、通常チケットについては、チケット内人数315は1人だけであるため、結果的に、同じ部屋同士で退出日時も近いチケット同士が隣接する関係を維持しながら、再募集チケットが先頭のほうに来るようなチケットの並びとなる。そして、プロセッサ21は、このようにソートしたチケットの並びにおける先頭のチケットと、ランダムで選択した他の通常チケットとをマッチングしていく。当該先頭のチケットは上記のように再募集チケットであるところ、当該再募集チケットに係るワールド部屋の入室人数が30人に達するまで、ランダムで選択した通常チケットをマッチングしていく。30人に達すれば、上記の並びにおける次の順番の(再募集)チケットについて、同様に、30人埋まるまで、ランダムで選択した通常チケットをマッチングしていく。このような処理を、ワールド毎に行うことで、上記優先条件1および優先条件2に沿うようなマッチングが行われることになる。このような処理によって、移動先として同じワールド選んだタイミングが近いプレイヤ同士が、同じ部屋になりやすいようなマッチングが実現される。
【0174】
次に、ステップS214で、プロセッサ21は、ステージ部屋のマッチングをリクエストするチケットデータを対象にして、ステージマッチング処理を実行する。当該処理では、移動先として同じステージを選んだタイミングがある程度近いプレイヤ同士が、同じステージ部屋になりやすいように(上記優先条件1)、マッチングを行う。また、ある程度近いタイミング内で同じステージを選んだプレイヤがいない場合は、ステージ開始操作を行ったタイミングにおいて、いずれかの他のプレイヤが入室した部屋であって、その入室時間が最も時間的に近い部屋を優先的に選択するようにマッチングを行う(上記優先条件2)。当該ステージマッチング処理についても、上記優先条件1および優先条件2が達成できれば、どのような手法でマッチングを行ってもよいが、例えば、上記チケットを、退出部屋の識別子および退出日時でソートした結果と、後述するような時間的要素に基づいてマッチングを行ってもよい。具体的には、以下のような処理でマッチングを行ってもよい。まず、プロセッサ21は、ステージ部屋をリクエストする上記チケットについて、上記ワールド部屋の場合と同様に、退出部屋の識別子順、および、退出日時順にソートする。次に、プロセッサ21は、このようにソートしたチケットの並びにおける先頭のチケットと、ランダムで選択した他のチケットとのマッチングが成立するかについて評価する。この際、プロセッサ21は、マッチング成立の条件として、以下のような時間的要素を考慮する。すなわち、リクエスト日時313の差が一定以内のプレイヤ同士を優先的にマッチングする。例えば、最初は、リクエスト日時313の差が「10秒以内」か否かを判定し、「10秒以内」であれば、その時点でマッチング成立とする。一方、「10秒以内」ではなかった場合は、リクエスト日時313の差が「60秒以内」かどうかを判定し、「60秒以内」であれば、マッチング成立とする。つまり、最初は、ステージ入室操作が行われたタイミングが10秒以内のプレイヤ同士をマッチングし、10秒以内で該当するプレイヤがいない場合、60秒の範囲まで広げてマッチングの対象を探す、というような処理を行う。このように、リクエスト日時313の差(時間範囲)を段階的に広げていき、ある程度まで広げても該当する他のプレイヤがいない場合は、時間的要素は考慮せずに、上記先頭のチケットと上記ランダムで選択した他のチケットとのマッチングを成立させる。例えば、10秒以内、60秒以内、120秒以内のように3段階まで時間的要素を考慮した判定を行ってもよい。そして、120秒以内まで広げても該当するプレイヤが見つからなかった場合は、その時点で、時間的要素を考慮した判定は止めて、そのときに選択している他のチケットと上記先頭のチケットとのマッチングを成立させてもよい。
【0175】
このように、ステージ部屋をマッチングする際、リクエスト日時の差を段階的に広げながら、先頭のチケットと他のチケットとがマッチング成立の条件を満たすか否かの評価を行う。これにより、近いタイミングで同じステージへの入室操作を行ったプレイヤ同士が同じ部屋に入室しやすいようなマッチングが実現される。また、近いタイミングで入室操作を行ったプレイヤがいない場合でも、最終的には誰かとマッチングされるようにし、タイミング次第で誰ともマッチされないという結果となることを防ぐことができる。
【0176】
上記ステージマッチング処理が終了すれば、マッチメイク処理は終了する。
【0177】
図25に戻り、マッチメイク処理が終われば、上記ステップS201に戻り、処理が繰り返される。
【0178】
以上で、マッチングサーバに係る処理の詳細説明を終了する。
【0179】
このように、本実施形態では、ステージ部屋の入室先を決める際に、マッチングする対象をプレイヤが現在いるワールド部屋内の他のプレイヤに限らず、他のワールド部屋のプレイヤも対象として、マッチング処理を行い、入室先を決定する。これにより、複数のプレイヤが入室している状態のステージ部屋を作り出しやすくすることができる。換言すれば、ステージプレイの際の人数不足を防止できる。
【0180】
また、本実施形態では、移動先として同じワールドまたは同じステージを選んだタイミングが近いプレイヤ同士が、同じ部屋になりやすいように、入室先を決めている。これにより、ステージプレイに際しては、各プレイヤのステージプレイの開始タイミングをできるだけ近いものにすることができる。これにより、他のプレイヤの存在を認識したゲーム体験を提供しやすくする。また、ステージクリアのタイミングが近いタイミングであったプレイヤ同士を、同じワールド部屋に入室させることができる。これにより、ステージ部屋における偶然性の高い出会いを、その後も活用する余地を提供できる。例えば、同じメンバーで引き続き他のステージ部屋をプレイするという展開に繋げることができる。
【0181】
また、近いタイミングで入室操作した他のプレイヤがいなかった場合でも、ステージプレイに際しては、それより前に誰かがゲームを開始した部屋のうちで最も近いタイミングで開始された部屋を優先的に入室先として選ばれやすくしている。すなわち、ステージプレイの開始時間が他のプレイヤとなるべく近くなるような入室制御を行っている、これにより、ステージ内で、他のプレイヤと出会う可能性を高くし、他のプレイヤの存在を認識したゲーム体験を提供しやすくする。また、各プレイヤのシングルプレイを阻害することなく、協力できそうなときは協力しやすいという状況を作り出すこともできる。
【0182】
また、本実施形態では、なるべく1つのワールド部屋内の人数を多くするように、マッチングを行っている。これにより、少ない人数のワールド部屋が乱立することを防ぎ、各ワールド部屋の賑やかさを向上して、リモートプレイヤの存在をより感じやすいゲーム体験を提供できる。
【0183】
[変形例]
なお、上記実施形態では、ステージプレイに関しては、基本的には各プレイヤキャラの位置情報のみ共有および表示を行うだけで、上記のような一部の協力プレイ要素を除いて、他プレイヤのゲーム進行状況に影響は与えないようなゲーム処理を例示した。他の実施形態では、上記のような例外的な協力プレイ要素という形ではなく、最初から他プレイヤのゲーム進行状況に影響を与え得る態様でマルチプレイゲームを実行してもよい。すなわち、他のプレイヤが行った敵キャラクタへの攻撃結果等が自身のゲーム装置におけるゲーム進行状況に反映されるようなゲーム処理でもよい。
【0184】
また、ステージ部屋のマッチングに関して、上記実施形態では、時間的要素を用いたマッチングを行っていた。この点、他の実施形態では、一部の特殊なステージについては、上記のような時間的要素を用いずにマッチングしてもよい。例えば、特殊なステージの一例は、スタート地点やゴール地点が設けられておらず、画面スクロールもしない固定画面のステージであって、パズル的なギミックを複数プレイヤで協力して解いていくというステージである。このようなステージについては、時間的要素に基づかずにマッチングするよう制御してもよい。つまり、ステージの内容に応じて、上記のような時間的要素に基づくマッチングと、時間的要素に基づかないマッチングを使い分けてもよい。より具体的には、スタートからゴールへ移動することでクリアとなるステージでは、ステージ内でのプレイヤキャラ同士の距離が離れた際、再び接近することが起こりにくいため、時間的要素に基づくマッチングを行ってもよい。一方、一定範囲内で条件を達成することでクリアとなるステージでは、当該ステージ内でのプレイヤキャラ同士の距離が一時的に離れたとしても再び接近する状況が発生しやすいため、時間的要素に基づかないマッチングとしてもよい。
【0185】
また、上記実施形態では、上記「優先条件1」および「優先条件2」として示した結果を達成するため、上記のような「チケット」をソートするマッチングの手法を例示した。この点、他の実施形態では、同様の結果を達成するため、例えばマッチングを要求した各プレイヤに関して「優先順位情報」を持たせるような構成としてもよい。そして、上記退出した部屋や退出時間が近いプレイヤ(再募集部屋に入室済みのプレイヤも含む)同士が優先的にマッチングされるように、当該「優先順位情報」を設定してもよい。そして、マッチングサーバ2では、この「優先順位情報」に基づいたマッチングを行うようにしてもよい。
【符号の説明】
【0186】
1 ゲームシステム
2 マッチングサーバ
3 情報処理端末(ゲーム装置)
4 コントローラ
31 プロセッサ
32 記憶部
33 無線通信部
34 コントローラ通信部