(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023166373
(43)【公開日】2023-11-21
(54)【発明の名称】ゲームプログラム、ゲームシステム、およびゲーム処理方法
(51)【国際特許分類】
A63F 13/52 20140101AFI20231114BHJP
A63F 13/5372 20140101ALI20231114BHJP
A63F 13/55 20140101ALI20231114BHJP
A63F 13/30 20140101ALI20231114BHJP
A63F 13/79 20140101ALI20231114BHJP
【FI】
A63F13/52
A63F13/5372
A63F13/55
A63F13/30
A63F13/79 500
【審査請求】有
【請求項の数】18
【出願形態】OL
【公開請求】
(21)【出願番号】P 2023126240
(22)【出願日】2023-08-02
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】中尾 一
(72)【発明者】
【氏名】出原 真人
(57)【要約】
【課題】自身が操作するキャラクタが見分けやすいゲームシステム、ゲームプログラム、およびゲーム処理方法を提供すること。
【解決手段】ネットワークを介してマッチングされた第1のゲーム装置と第2のゲーム装置があり、第1のゲーム装置のプレイヤが操作する第1プレイヤキャラクタと、第2のゲーム装置のプレイヤが操作する第2プレイヤキャラクタを、それぞれ異なる複数のキャラクタ群から選択する。選択されたキャラクタが異なるキャラクタであった場合、第1のゲーム装置、第2のゲーム装置のいずれにおいても、第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画する。一方、選択されたキャラクタが同じキャラクタであった場合、第1のゲーム装置では、第2プレイヤキャラクタを描画せずにゲーム空間を描画し、第2のゲーム装置では、第1プレイヤキャラクタを描画せずにゲーム空間を描画する。
【選択図】
図37
【特許請求の範囲】
【請求項1】
ネットワークを介してマッチングされた複数のゲーム装置のプレイヤ間でマルチプレイゲームを行うゲームシステムであって、
第1のゲーム装置と、
前記第1のゲーム装置とネットワークを介して接続される第2のゲーム装置とを含み、
前記第1のゲーム装置において、当該第1のゲーム装置のプレイヤの操作に基づいて移動制御される第1プレイヤキャラクタを、それぞれ異なる複数のキャラクタ群から選択し、
前記第2のゲーム装置において、当該第2のゲーム装置のプレイヤの操作に基づいて移動制御される第2プレイヤキャラクタを前記複数のキャラクタ群から選択し、
前記選択された第1プレイヤキャラクタおよび前記第2プレイヤキャラクタがそれぞれ異なるキャラクタであった場合、
前記第1のゲーム装置において、前記第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画し、
前記第2のゲーム装置において、前記第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画し、
前記選択された第1プレイヤキャラクタと前記第2プレイヤキャラクタとが同じキャラクタであった場合、
前記第1のゲーム装置において、当該第1のゲーム装置と前記第2のゲーム装置とのマッチングを維持したまま、前記第2プレイヤキャラクタを描画せず、前記第1プレイヤキャラクタを含むゲーム空間を描画し、
前記第2のゲーム装置において、前記第1のゲーム装置と当該第2のゲーム装置とのマッチングを維持したまま、前記第1プレイヤキャラクタを描画せず、前記第2プレイヤキャラクタを含むゲーム空間を描画する、
ゲームシステム。
【請求項2】
前記ゲームシステムは、さらに、第3のゲーム装置を含み、
前記第3のゲーム装置において、当該第3のゲーム装置のプレイヤの操作に基づいて移動制御される第3プレイヤキャラクタを前記複数のキャラクタ群から選択し、
前記選択された第3プレイヤキャラクタが前記第1プレイヤキャラクタとは異なるキャラクタであり、かつ、第2プレイヤキャラクタとは同じキャラクタであった場合、
前記第1のゲーム装置において、前記第2プレイヤキャラクタと第3プレイヤキャラクタのうち一方のみを含む前記ゲーム空間を描画する、請求項1に記載のゲームシステム。
【請求項3】
前記第1のゲーム装置において、前記第2プレイヤキャラクタと前記第3プレイヤキャラクタのうち、前記ゲーム空間内における位置が前記第1プレイヤキャラクタに近いほうのキャラクタを含み、他方のキャラクタは含まない前記ゲーム空間を描画する、請求項2に記載のゲームシステム。
【請求項4】
前記第2プレイヤキャラクタと第3プレイヤキャラクタのうち、いずれか一方のみを含むゲーム空間が描画された後、前記ゲーム空間内における前記第1プレイヤキャラクタと前記第2プレイヤキャラクタおよび第3プレイヤキャラクタとの位置関係を、所定の時間毎に判定し、当該判定の結果、第1プレイヤキャラクタに最も近い位置にあるキャラクタが変化した場合は、当該最も近い位置のキャラクタを含み、他方のキャラクタは含まない前記ゲーム空間を描画する、請求項3に記載のゲームシステム。
【請求項5】
前記第2ゲーム装置のプレイヤ、または、前記第3ゲーム装置のプレイヤが操作を行っていない非操作状態が一定の時間以上継続した場合、第1のゲーム装置において、前記第1プレイヤキャラクタとの位置関係に関わらず、当該非操作状態のプレイヤに係るプレイヤキャラクタは含まない前記ゲーム空間を描画する、請求項2に記載のゲームシステム。
【請求項6】
前記ゲーム空間には、
第1の所定人数が前記マッチングによって参加可能なステージ空間と、
第1の所定人数よりも多い第2の所定人数が前記マッチングによって参加可能であり、プレイする前記ステージをプレイヤが選択することが可能なワールド空間とが含まれ、
前記第1のゲーム装置において前記ワールド空間を描画する際は、前記第1プレイヤキャラクタと同じ第2のプレイヤキャラクタは描画せずに、当該前記第1プレイヤキャラクタを含むワールド空間を描画し、
前記第1のゲーム装置において前記ステージ空間を描画する際は、前記第1プレイヤキャラクタと同じ第2のプレイヤキャラクタについては、当該第2のプレイヤキャラクタを当該第1プレイヤキャラクタとは異なるキャラクタに置き換えたうえで、当該第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むステージ空間を描画する、請求項1に記載のゲームシステム。
【請求項7】
ネットワークを介してマッチングされた複数のゲーム装置のプレイヤ間でマルチプレイゲームを行うゲームシステムのコンピュータに実行させるゲームプログラムであって、
前記ゲームシステムは、第1のゲーム装置と、当該第1のゲーム装置とネットワークを介して接続される第2のゲーム装置とを含み、
前記第1のゲーム装置のコンピュータに、当該第1のゲーム装置のプレイヤの操作に基づいて移動制御される第1プレイヤキャラクタを、それぞれ異なる複数のキャラクタ群から選択させ、
前記第2のゲーム装置のコンピュータにおいて、当該第2のゲーム装置のプレイヤの操作に基づいて移動制御される第2プレイヤキャラクタを前記複数のキャラクタ群から選択させ、
前記選択された第1プレイヤキャラクタおよび前記第2プレイヤキャラクタがそれぞれ異なるキャラクタであった場合、
前記第1のゲーム装置のコンピュータに、前記第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画させ、
前記第2のゲーム装置のコンピュータに、前記第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画させ、
前記選択された第1プレイヤキャラクタと前記第2プレイヤキャラクタとが同じキャラクタであった場合、
前記第1のゲーム装置のコンピュータに、当該第1のゲーム装置と前記第2のゲーム装置とのマッチングを維持したまま、前記第2プレイヤキャラクタを描画せず、前記第1プレイヤキャラクタを含むゲーム空間を描画させ、
前記第2のゲーム装置のコンピュータに、前記第1のゲーム装置と当該第2のゲーム装置とのマッチングを維持したまま、前記第1プレイヤキャラクタを描画せず、前記第2プレイヤキャラクタを含むゲーム空間を描画させる、
ゲームプログラム。
【請求項8】
前記ゲームシステムは、さらに、第3のゲーム装置を含み、
前記第3のゲーム装置のコンピュータに、当該第3のゲーム装置のプレイヤの操作に基づいて移動制御される第3プレイヤキャラクタを前記複数のキャラクタ群から選択させ、
前記選択された第3プレイヤキャラクタが前記第1プレイヤキャラクタとは異なるキャラクタであり、かつ、第2プレイヤキャラクタとは同じキャラクタであった場合、
前記第1のゲーム装置において、前記第2プレイヤキャラクタと第3プレイヤキャラクタのうち一方のみを含む前記ゲーム空間を描画させる、請求項7に記載のゲームプログラム。
【請求項9】
前記第1のゲーム装置のコンピュータに、前記第2プレイヤキャラクタと前記第3プレイヤキャラクタのうち、前記ゲーム空間内における位置が前記第1プレイヤキャラクタに近いほうのキャラクタを含み、他方のキャラクタは含まない前記ゲーム空間を描画させる、請求項8に記載のゲームプログラム。
【請求項10】
前記第2プレイヤキャラクタと第3プレイヤキャラクタのうち、いずれか一方のみを含むゲーム空間が描画された後、前記ゲーム空間内における前記第1プレイヤキャラクタと前記第2プレイヤキャラクタおよび第3プレイヤキャラクタとの位置関係を、所定の時間毎に判定し、当該判定の結果、第1プレイヤキャラクタに最も近い位置にあるキャラクタが変化した場合は、当該最も近い位置のキャラクタを含み、他方のキャラクタは含まない前記ゲーム空間を描画させる、請求項9に記載のゲームプログラム。
【請求項11】
前記第2ゲーム装置のプレイヤ、または、前記第3ゲーム装置のプレイヤが操作を行っていない非操作状態が一定の時間以上継続した場合、第1のゲーム装置のコンピュータに、前記第1プレイヤキャラクタとの位置関係に関わらず、当該非操作状態のプレイヤに係るプレイヤキャラクタを含まない前記ゲーム空間を描画させる、請求項8に記載のゲームプログラム。
【請求項12】
前記ゲーム空間には、
第1の所定人数が前記マッチングによって参加可能なステージ空間と、
第1の所定人数よりも多い第2の所定人数が前記マッチングによって参加可能であり、プレイする前記ステージをプレイヤが選択することが可能なワールド空間とが含まれ、
前記第1のゲーム装置のコンピュータに前記ワールド空間を描画させる際は、前記第1プレイヤキャラクタと同じ第2のプレイヤキャラクタは描画せずに、当該前記第1プレイヤキャラクタを含むワールド空間を描画させ、
前記第1のゲーム装置のコンピュータに前記ステージ空間を描画させる際は、前記第1プレイヤキャラクタと同じ第2のプレイヤキャラクタについては、当該第2のプレイヤキャラクタを当該第1プレイヤキャラクタとは異なるキャラクタに置き換えたうえで、当該第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むステージ空間を描画させる、請求項7に記載のゲームプログラム。
【請求項13】
ネットワークを介してマッチングされた複数のゲーム装置のプレイヤ間でマルチプレイゲームを行うゲームシステムのコンピュータに実行させるゲーム処理方法であって、
前記ゲームシステムは、第1のゲーム装置と、当該第1のゲーム装置とネットワークを介して接続される第2のゲーム装置とを含み、
前記第1のゲーム装置のコンピュータに、当該第1のゲーム装置のプレイヤの操作に基づいて移動制御される第1プレイヤキャラクタを、それぞれ異なる複数のキャラクタ群から選択させ、
第2のゲーム装置のコンピュータに、当該第2のゲーム装置のプレイヤの操作に基づいて移動制御される第2プレイヤキャラクタを前記複数のキャラクタ群から選択させ、
前記選択された第1プレイヤキャラクタおよび前記第2プレイヤキャラクタがそれぞれ異なるキャラクタであった場合、
前記第1のゲーム装置のコンピュータに、前記第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画させ、
前記第2のゲーム装置のコンピュータに、前記第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画させ、
前記選択された第1プレイヤキャラクタと前記第2プレイヤキャラクタとが同じキャラクタであった場合、
前記第1のゲーム装置のコンピュータに、当該第1のゲーム装置と前記第2のゲーム装置とのマッチングを維持したまま、前記第2プレイヤキャラクタを描画せず、前記第1プレイヤキャラクタを含むゲーム空間を描画させ、
前記第2のゲーム装置のコンピュータに、前記第1のゲーム装置と当該第2のゲーム装置とのマッチングを維持したまま、前記第1プレイヤキャラクタを描画せず、前記第2プレイヤキャラクタを含むゲーム空間を描画させる、
ゲーム処理方法。
【請求項14】
前記ゲームシステムは、さらに、第3のゲーム装置を含み、
前記第3のゲーム装置のコンピュータに、当該第3のゲーム装置のプレイヤの操作に基づいて移動制御される第3プレイヤキャラクタを前記複数のキャラクタ群から選択させ、
前記選択された第3プレイヤキャラクタが前記第1プレイヤキャラクタとは異なるキャラクタであり、かつ、第2プレイヤキャラクタとは同じキャラクタであった場合、
前記第1のゲーム装置において、前記第2プレイヤキャラクタと第3プレイヤキャラクタのうち一方のみを含む前記ゲーム空間を描画させる、請求項13に記載のゲーム処理方法。
【請求項15】
前記第1のゲーム装置のコンピュータに、前記第2プレイヤキャラクタと前記第3プレイヤキャラクタのうち、前記ゲーム空間内における位置が前記第1プレイヤキャラクタに近いほうのキャラクタを含み、他方のキャラクタは含まない前記ゲーム空間を描画させる、請求項14に記載のゲーム処理方法。
【請求項16】
前記第2プレイヤキャラクタと第3プレイヤキャラクタのうち、いずれか一方のみを含むゲーム空間が描画された後、前記ゲーム空間内における前記第1プレイヤキャラクタと前記第2プレイヤキャラクタおよび第3プレイヤキャラクタとの位置関係を、所定の時間毎に判定し、当該判定の結果、第1プレイヤキャラクタに最も近い位置にあるキャラクタが変化した場合は、当該最も近い位置のキャラクタを含み、他方のキャラクタは含まない前記ゲーム空間を描画させる、請求項15に記載のゲーム処理方法。
【請求項17】
前記第2ゲーム装置のプレイヤ、または、前記第3ゲーム装置のプレイヤが操作を行っていない非操作状態が一定の時間以上継続した場合、第1のゲーム装置のコンピュータに、前記第1プレイヤキャラクタとの位置関係に関わらず、当該非操作状態のプレイヤに係るプレイヤキャラクタを含まない前記ゲーム空間を描画させる、請求項14に記載のゲーム処理方法。
【請求項18】
前記ゲーム空間には、
第1の所定人数が前記マッチングによって参加可能なステージ空間と、
第1の所定人数よりも多い第2の所定人数が前記マッチングによって参加可能であり、プレイする前記ステージをプレイヤが選択することが可能なワールド空間とが含まれ、
前記第1のゲーム装置のコンピュータに前記ワールド空間を描画させる際は、前記第1プレイヤキャラクタと同じ第2のプレイヤキャラクタは描画せずに、当該前記第1プレイヤキャラクタを含むワールド空間を描画させ、
前記第1のゲーム装置のコンピュータに前記ステージ空間を描画させる際は、前記第1プレイヤキャラクタと同じ第2のプレイヤキャラクタについては、当該第2のプレイヤキャラクタを当該第1プレイヤキャラクタとは異なるキャラクタに置き換えたうえで、当該第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むステージ空間を描画させる、請求項13に記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、マルチプレイゲーム処理に関する。
【背景技術】
【0002】
従来から、ゲームステージを複数人のプレイヤでプレイするゲームがあった(例えば特許文献1)。また、このようなゲームにおいて、インターネット等のネットワークを介して複数人のプレイヤでプレイするオンラインマルチゲームも知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、例えば対戦格闘ゲーム等、予め用意されている複数種類のキャラクタのうちから自分が操作するキャラクタを選んでプレイするタイプのゲームも知られている。このようなキャラクタを選んでプレイするタイプのゲームにおいて、不特定多数の相手とオンラインマルチプレイを行おうとした場合、自身の選択したキャラクタと他プレイヤが選択したキャラクタが同じキャラクタになることがある。この場合、同じゲーム画面内に同一のキャラクタが複数体表示されてしまい、自分が操作するキャラクタの見分けがつかない可能性があった。
【課題を解決するための手段】
【0005】
上記の点に鑑みて、例えば以下のような構成例が挙げられる。
【0006】
(構成1)
構成1は、ネットワークを介してマッチングされた複数のゲーム装置のプレイヤ間でマルチプレイゲームを行うゲームシステムであって、第1のゲーム装置と、第1のゲーム装置とネットワークを介して接続される第2のゲーム装置とを含む。第1のゲーム装置において、第1のゲーム装置のプレイヤの操作に基づいて移動制御される第1プレイヤキャラクタを、それぞれ異なる複数のキャラクタ群から選択し、第2のゲーム装置において、第2のゲーム装置のプレイヤの操作に基づいて移動制御される第2プレイヤキャラクタを前記複数のキャラクタ群から選択する。選択された第1プレイヤキャラクタおよび第2プレイヤキャラクタがそれぞれ異なるキャラクタであった場合、第1のゲーム装置において、第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画し、第2のゲーム装置において、第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むゲーム空間を描画する。また、選択された第1プレイヤキャラクタと第2プレイヤキャラクタとが同じキャラクタであった場合、第1のゲーム装置において、第1のゲーム装置と第2のゲーム装置とのマッチングを維持したまま、第2プレイヤキャラクタを描画せず、第1プレイヤキャラクタを含むゲーム空間を描画し、第2のゲーム装置において、第1のゲーム装置と第2のゲーム装置とのマッチングを維持したまま、第1プレイヤキャラクタを描画せず、第2プレイヤキャラクタを含むゲーム空間を描画する。
【0007】
上記構成によれば、既定のキャラクタ群から自分の使用するキャラクタを選択するタイプのゲームにおいて、各ゲーム装置で各プレイヤが選択したキャラクタと重複する他プレイヤのキャラクタを表示しないようにする。そのため、各自のゲーム装置で表示される画面において、プレイヤの操作対象となるキャラクタが認識しやすくなる。
【0008】
(構成2)
構成2は、上記構成1において、ゲームシステムは、さらに、第3のゲーム装置を含んでいてもよい。更に、第3のゲーム装置において、当該第3のゲーム装置のプレイヤの操作に基づいて移動制御される第3プレイヤキャラクタを複数のキャラクタ群から選択してもよい。そして、選択された第3プレイヤキャラクタが第1プレイヤキャラクタとは異なるキャラクタであり、かつ、第2プレイヤキャラクタとは同じキャラクタであった場合、第1のゲーム装置において、第2プレイヤキャラクタと第3プレイヤキャラクタのうち一方のみを含むゲーム空間を描画してもよい。
【0009】
上記構成によれば、プレイヤ自身の選択キャラクタとは重複していないが、他プレイヤどうして選択キャラクタが重複しているとき、いずれか一体だけを表示させる。これにより、例えば、同じキャラクタを表示させずにマルチプレイを行いたい場合に、マッチングするときにキャラクタが重複しないようにマッチングする制御を行わずともよくなる。つまり、マッチングの際に、キャラクタの重複を考慮せずに済むので、マッチング待ちの時間を軽減できる。また、各プレイヤにとっても、キャラクタの選択に制限をかけられることなく、好きなキャラクタを選んでプレイできる。
【0010】
(構成3)
構成3は、上記構成2において、第1のゲーム装置において、第2プレイヤキャラクタと第3プレイヤキャラクタのうち、ゲーム空間内における位置が第1プレイヤキャラクタに近いほうのキャラクタを含み、他方は含まないゲーム空間を描画してもよい。
【0011】
上記構成によれば、自身が操作するキャラクタの近くに他プレイヤのキャラクタが表示されるため、キャラクタを介した他プレイヤとのコミュニケーションが取りやすくなる。
【0012】
(構成4)
構成4は、上記構成3において、第2プレイヤキャラクタと第3プレイヤキャラクタのうち、いずれか一方のみを含むゲーム空間が描画された後、ゲーム空間内における第1プレイヤキャラクタと、第2プレイヤキャラクタおよび第3プレイヤキャラクタとの位置関係を所定の時間毎に判定し、当該判定の結果、第1プレイヤキャラクタに最も近い位置にあるキャラクタが変化した場合は、当該最も近い位置のキャラクタを含も、他方のキャラクタは含まないゲーム空間を描画してもよい。
【0013】
上記構成によれば、所定の時間間隔を空けて位置関係を判定するため、他プレイヤの重複キャラクタの表示が頻繁に切り替わることを抑制できる。
【0014】
(構成5)
構成5は、上記構成2において、第2ゲーム装置のプレイヤ、または、第3ゲーム装置のプレイヤが操作を行っていない非操作状態が一定の時間以上継続した場合、第1のゲーム装置において、第1プレイヤキャラクタとの位置関係に関わらず、非操作状態のプレイヤに係るプレイヤキャラクタは含まないゲーム空間を描画してもよい。
【0015】
上記構成によれば、一定時間操作されていない他のプレイヤキャラクタについては非表示とする。これにより、コミュニケーションがとれなさそうな他プレイヤのキャラクタに対して、コミュニケーションを取るための労力をプレイヤに使わせてしまうことを防ぐことができる。
【0016】
(構成6)
構成6は、上記構成1において、ゲーム空間には、第1の所定人数がマッチングによって参加可能なステージ空間と、第1の所定人数よりも多い第2の所定人数がマッチングによって参加可能であり、プレイするステージをプレイヤが選択することが可能なワールド空間とが含まれていてもよい。そして、第1のゲーム装置においてワールド空間を描画する際は、第1プレイヤキャラクタと同じ第2のプレイヤキャラクタは描画せずに、当該前記第1プレイヤキャラクタを含むワールド空間を描画し、第1のゲーム装置においてステージ空間を描画する際は、第1プレイヤキャラクタと同じ第2のプレイヤキャラクタについては、当該第2のプレイヤキャラクタを当該第1プレイヤキャラクタとは異なるキャラクタに置き換えた上で、第1プレイヤキャラクタおよび第2プレイヤキャラクタを含むステージ空間を描画してもよい。
【0017】
上記構成によれば、ワールド空間のゲーム画面では、プレイヤ自身が使うキャラクタと同じキャラクタが複数表示されることを防ぎ、自身の操作対象が分かりにくくなることをさけることができる。また、ワールド空間に比べて参加者が比較的少人数となるステージ空間のゲーム画面では、自身の操作対象が分かりにくくなることを避けつつ、更に、複数プレイヤでのマルチプレイ感を担保できる。
【発明の効果】
【0018】
本開示によれば、プレイヤ自身の操作キャラクタが分かりにくくなることを避けつつ、キャラクタが重複したことによるマッチング待ちが発生することを抑制できる。
【図面の簡単な説明】
【0019】
【
図1】本実施形態に係るゲームシステムの全体像を示す模式図
【
図2】ゲームサーバ1のハードウェア構成を示すブロック図
【
図3】ゲーム装置3のハードウェア構成を示すブロック図
【
図23】ゲームサーバ1の記憶部12に記憶される各種データの一例を示すメモリマップ
【
図24】ワールド部屋管理データ304のデータ構成の一例
【
図25】ワールド入室プレイヤ情報314のデータ構成の一例
【
図26】ステージ部屋管理データ305のデータ構成の一例
【
図27】リプレイ管理データ306のデータ構成の一例
【
図28】ゲーム装置3の記憶部32に記憶される各種データの一例を示すメモリマップ
【
図29】プレイヤキャラクタマスタデータ404のデータ構成の一例
【
図30】設置物マスタデータ405のデータ構成の一例
【
図31】表示対象管理データ410のデータ構成の一例
【
図32】リモートプレイヤデータ413のデータ構成の一例
【
図33】プレイヤアクター管理データ415のデータ構成の一例
【
図34】設置物管理データ416のデータ構成の一例
【
図35】ゲーム装置3で実行されるワールドマップ処理の詳細を示すフローチャート
【
図36】ゲーム装置3で実行されるワールドマップ処理の詳細を示すフローチャート
【
図37】表示対象決定処理の詳細を示すフローチャート
【
図38】ステージプレイ処理の詳細を示すフローチャート
【
図39】ステージプレイ処理の詳細を示すフローチャート
【
図40】キャラクタ偽装判定処理の詳細を示すフローチャート
【
図41】設置物偽装処理の詳細を示すフローチャート
【
図42】入退室チェック処理の詳細を示すフローチャート
【
図43】入退室チェック処理の詳細を示すフローチャート
【
図44】ゴースト配置処置の詳細を示すフローチャート
【
図46】ゲームサーバ1で実行されるゲームサーバ処理の詳細を示すフローチャート
【発明を実施するための形態】
【0020】
以下、本発明の一実施形態について説明する。
図1は、本実施形態に係る情報処理システム(ゲームシステム)の全体像を示す模式図である。本実施形態の情報処理システム100は、ゲームサーバ1と、複数の情報処理端末3とを含む。ゲームサーバ1、情報処理端末3とは、インターネット等のネットワーク10を介して通信可能に構成されている。本実施形態では、このような構成で、情報処理が実行されるが、以下では、当該情報処理の一例として、ゲーム処理を例として説明する。具体的には、情報処理端末3上にゲームプログラムがインストールされ、必要に応じてゲームサーバ1と通信を行いながら実行されるゲーム処理を例示する。
【0021】
[ゲームサーバのハードウェア構成]
次に、上記ゲームサーバ1のハードウェア構成について説明する。
図2は、ゲームサーバ1のハードウェア構成を示すブロック図である。ゲームサーバ1は、プロセッサ11と、記憶部12と、通信部13とを少なくとも備えている。プロセッサ11は、各サーバを制御するための各種プログラムを実行する。記憶部には、プロセッサ11によって実行される各種プログラムおよび利用される各種データが格納される。通信部13は、有線、または無線通信によってネットワークと接続し、上記情報処理端末3または他のサーバとの間で所定のデータを送受信する。なお、本実施形態では、ゲームサーバ1が1つである例を図示しているが、分散処理を行うサーバ群として構成されていてもよい。
【0022】
[ゲーム装置のハードウェア構成]
次に、上記情報処理端末3について説明する。当該情報処理端末3は、例えばスマートフォン、据置型または携帯型のゲーム装置、タブレット端末、携帯電話、パーソナルコンピュータ、ウェアラブル端末等である。本実施形態では、据置型ゲーム装置(以下、単にゲーム装置と呼ぶ)を情報処理端末3の一例として説明する。
【0023】
図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)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0024】
また、ゲーム装置3は、ゲーム装置3が他のゲーム装置3や上記サーバと無線通信を行うための無線通信部33を備える。当該無線通信としては、例えば、インターネット通信や近距離無線通信が用いられる。
【0025】
また、ゲーム装置3は、ゲーム装置3がコントローラ4と有線または無線通信を行うためのコントローラ通信部34を備える。
【0026】
また、ゲーム装置3には、画像音声出力部35を介して表示部5(例えば、テレビ等)が接続される。プロセッサ31は、例えば、上記の情報処理の実行によって生成した画像や音声を、画像音声出力部35を介して表示部5に出力する。
【0027】
次に、コントローラ4について説明する。コントローラ4は、方向入力デバイスの一例であるアナログスティック42を少なくとも1つ備える。当該アナログスティック42は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック42を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。また、コントローラ4は、各種操作ボタンを含むボタン部43を備える。例えば、コントローラ4は、上記ハウジングの主面上に複数個の操作ボタンを備えていてもよい。
【0028】
また、コントローラ4は、慣性センサー44を備える。具体的には、コントローラ4は、慣性センサー44として、加速度センサー、角速度センサーを備えている。本実施形態においては、加速度センサーは、所定の3軸方向に沿った加速度の大きさを検出する。また、角速度センサーは、所定の3軸回りの角速度を検出する。
【0029】
また、コントローラ4は、上記コントローラ通信部34と有線または無線通信を行うための通信部41も備える。上記アナログスティック42に対する方向入力内容、ボタン部43の押下状態を示す情報、および、慣性センサー44による各種の検出結果は、適宜のタイミングで繰り返し通信部41へ出力され、ゲーム装置3に送信される。
【0030】
[本実施形態における情報処理の概要]
次に、本実施形態に係る情報処理の概要を説明する。本実施形態では、情報処理の一例として、仮想空間内に存在するプレイヤキャラクタオブジェクト(以下、プレイヤキャラと呼ぶ)をプレイヤが操作して遊ぶゲーム処理を想定して説明する。より具体的には、本実施形態では、横スクロール型のアクションゲーム(以下、本ゲームと呼ぶ)を想定して説明する。本ゲームでは、プレイの主な舞台となる、「ステージ」と呼ばれる2次元の仮想空間が用意されている。当該ステージには、スタート地点とゴール地点が設定されている。スタート地点からゴール地点までの間には、様々な敵キャラクタや障害物、ジャンプ台や落とし穴等の各種ギミックが配置されている。そして、本ゲームは、これら敵キャラクタ等を倒したり回避したりしながら、プレイヤキャラをゴール地点に到達させるゲームである。なお、当該ステージは、ゲームによっては「コース」や「ラウンド」等と呼ばれることもある。また、本実施形態では、ゲーム画面が2D画面で表示されるゲームを例示するが、他の実施形態では、上記仮想空間は3次元の仮想空間であり、1人称視点や3人称視点等の3D画面で表示されるゲームであってもよい。
【0031】
図4に、上記ステージをプレイ中のゲーム画面(以下、ステージ画面と呼ぶ)の一例を示す。
図4の例は、スタート地点付近の画面、すなわち、当該ステージのプレイを開始した直後の画面例である。
図4では、プレイヤキャラ201と、敵キャラクタ202が表示されている。その他、ブロックオブジェクト等の各種地形オブジェクトも表示されている。なお、本ステージでは、ステージの左端付近にスタート地点が設定され、ステージの右端付近にゴール地点が設定されているものとする。そのため、全体的なゲーム進行として、プレイヤキャラ201を画面の右方向に向けて進ませていくようなステージ構成となっている。このようなステージ画面において、プレイヤは、プレイヤキャラ201を操作して、ゴール地点に向けて移動させていく。プレイヤキャラの移動にあわせて、ステージの別の場所がステージ画面として表示されることになる。そして、プレイヤキャラがゴール地点に到達すれば、当該ステージをクリアしたことになる。
【0032】
また、上記ステージには、スタート地点とゴール地点の略中間となる位置に「中間地点」が設定されている。当該中間地点には、中間地点であることを示す中間地点オブジェクトが配置されている。プレイヤキャラが当該中間地点オブジェクトに接触すると、それ以降、ゴールするまでの間のプレイにおいてリスタートすることになった場合、当該中間地点からリスタートできるようになる。なお、中間地点到達前は、スタート地点からリスタートする。なお、中間地点として設定する位置については、スタート地点からゴール地点までの略中間となる位置に限らず、スタート地点からゴール地点までの途中の位置であれば、所定の位置を中間地点として設定してもよい。
【0033】
[ワールドマップについて]
また、本ゲームでは、上記ステージは複数用意されている。そして、各ステージのプレイに先立って、プレイするステージをプレイヤに選択させるための機能を有する画面として、「ワールドマップ画面」という画面が表示される。
図5は、当該ワールドマップ画面の一例である。
図5では、仮想空間である「ワールド」を俯瞰で示したような画面が表示されている。なお、当該仮想空間は、2次元空間であっても3次元空間であってもよい。また、「ワールド」と「ステージ」の描画方法や表示態様は異なっていてもよい。例えば、ステージは正面方向から正射影で投影して描画し、ワールドは上方から俯瞰的に撮影して描画してもよい。当該ワールドには、上記ステージの入り口のような役割を有するステージオブジェクト204が複数配置されている。また、他のワールドに移動するためのポータルオブジェクト205も配置されている。また、ワールドマップ画面においては、プレイヤキャラ201も表示されている。プレイヤは、コントローラ4を操作することで、当該ワールドマップ画面においてプレイヤキャラ201を移動させることができる。また、プレイヤは、いずれかのステージオブジェクト204に接触するようにプレイヤキャラ201を移動させることで、当該ステージオブジェクト204に対応するステージを選択できる。そして、ステージのプレイを開始するための所定の操作(以下、ステージ開始操作と呼ぶ)を行うことで、当該ステージオブジェクト204に対応するステージのプレイを開始できる。具体的には、ステージ開始操作を行うと、所定の演出が表示された後、プレイヤキャラ201がステージのスタート地点に配置されているステージ画面に画面が切り替わる。
【0034】
[ワールドとステージとの関係について]
また、本ゲームでは上記「ワールド」についても、複数のワールドが用意されている。本ゲームでは、一例として、5つのワールド(ワールド1からワールド5)があり、1つのワールドには、4つのステージが含まれる構成を想定する。上記ワールドマップ画面として表示されるのは、5つのワールドのうちのいずれか1つのワールドである。
【0035】
あるワールドから別のワールドに移動する場合は、まず、プレイヤは、ワールドマップ画面における上記ポータルオブジェクト205上にプレイヤキャラ201を移動させる。そして、プレイヤが所定の操作(以下、ワールド移動操作と呼ぶ)を行うことで、そのポータルオブジェクト205に関連付けられている他のワールドにプレイヤキャラを移動させることができる。例えば、ワールド1のワールドマップ画面において、ワールド2に関連付けられているポータルオブジェクト205上でワールド移動操作が行われると、プレイヤキャラはワールド2に移動し、ワールド2に係るワールドマップ画面に切り替わる。
【0036】
本ゲームにおける基本的なゲーム進行の流れは、ワールドマップ画面上でプレイしたいステージを選択し、ステージをクリアすることで、未解放のステージを開放していく、という流れとなっている。そして、ワールド内の全ステージをクリアすることで、次のワールドを解放し、各ワールド内のステージをクリアしていくことで、次々にワールドを解放していき、最終ワールドの最終ステージをクリアすることを目指すという流れとなっている。
【0037】
[オンラインプレイ要素について]
また、本ゲームでは、マルチプレイも可能である。一例として、本ゲームは、インターネット経由で上記サーバや他のゲーム装置3と接続して他のプレイヤとプレイすることが可能である。
【0038】
以下、本ゲームのオンラインマルチプレイ要素に関して説明する。まず、全体的なネットワーク的な構成に関して簡単に説明する。基本的なネットワーク構成については、上記
図1で示したような構成となる。そして、本ゲームでは、いわゆるMO(Multiplayer Online)タイプのオンラインゲームにおける通信グループの構成を利用したゲームを提供する。具体的には、各ワールドに対応する通信グループ(以下、ワールド部屋)、および、各ステージに対応する通信グループ(以下、ステージ部屋と呼ぶ)とが適宜生成および管理され得る。換言すれば、ワールド部屋、ステージ部屋に相当する仮想空間が用意され、当該仮想空間に、上記ゲームサーバ1によってマッチングされた所定人数のプレイヤが接続するという形態である。
【0039】
また、各部屋には入室可能な人数の最大値が設けられている。一例として、本ゲームでは、ワールド部屋については1部屋に最大30人まで入室可能であるとする。また、ステージ部屋は1部屋に4人まで入室可能であるとする。また、本ゲームではワールド毎、および、ステージ毎に部屋が分かれるが、当該ワールド部屋およびステージ部屋のいずれも、複数の部屋が並列に存在し得る。なお、本ゲームでは、一例として、ワールド部屋については、サーバ経由で通信する接続態様(クライアント・サーバー方式)を用い、ステージ部屋については、P2P(Peer to peer)の通信方式でゲーム装置3同士が接続する態様を用いるとする。
【0040】
図6に、既に所定人数のプレイヤが入室しているワールド部屋に入室したときの、ワールドマップ画面の一例を示す。当該画面では、プレイヤキャラ201の他、同じワールド部屋に入室している他のプレイヤが操作する他のプレイヤキャラ211も複数体表示されている。
【0041】
また、
図7は、他のプレイヤが既に入室しているステージ部屋にプレイヤが入室した場合の、当該プレイヤのゲーム装置3から出力されるステージ画面の一例である。
図7では、他のプレイヤが操作する他のプレイヤキャラ211が、プレイヤが操作するゲーム装置3におけるステージ画面上に表示されている。他のプレイヤはプレイヤよりも先に入室し、ステージプレイを開始しているため、当該他のプレイヤキャラ211は、スタート地点よりはゴール地点に向けて少し先に進んだ位置にいる。
【0042】
以下の説明では、同じワールド部屋、あるいは、ステージ部屋に入室した他のプレイヤのことを「リモートプレイヤ」と呼び、リモートプレイヤが操作する上記他のプレイヤキャラ211のことを「リモートキャラ」と呼ぶ。また、リモートプレイヤに対して、そのゲーム装置3におけるプレイヤ自身のことを「ローカルプレイヤ」と呼び、ローカルプレイヤが操作するプレイヤキャラ201のことを「ローカルキャラ」と呼ぶこともある。また、上記ステージプレイにおけるリモートプレイヤに関するプレイヤキャラとして、「リプレイゴースト」というものも出現し得る。以下では、ローカルキャラ、リモートキャラ、リプレイゴーストのことを総称して、「プレイヤアクター」と呼ぶこともある。本ゲームでは、ステージ部屋については、1部屋に4人まで入室可能なので、1部屋に最大で4体のプレイヤアクターが同時に存在し得ることになる。一方、ワールド部屋については、最大で30人まで入室可能であるため、ローカルキャラとリモートキャラを合わせて最大で30体分のプレイヤアクターが存在し得る。但し、後述するように、同時に表示されるプレイヤキャラの数は最大で12体までとなる。
【0043】
[リプレイゴーストについて]
次に、ステージプレイにおいて登場する上記リプレイゴーストに関して説明する。リプレイゴーストとは、他のプレイヤのリプレイデータをゴーストとして再生するものである。そのため、原則的には、リプレイゴーストの見た目は、リプレイとして記録されたときに使用されていたキャラクタとなる(但し、場合によっては後述する「偽装キャラ」になることもある)。
【0044】
本実施形態では、上記中間地点からゴール地点までの間のプレイをリプレイデータとして、上記ゲームサーバ1に保存しておく。そして、所定の条件が満たされた場合に、リプレイゴーストを出現させる。当該所定の条件は、具体的には、ステージ部屋に入室しているのがローカルプレイヤ1人のみの状態で中間地点まで進んだ場合である。つまり、中間地点まで他のプレイヤとのマッチングが発生することなく進んだ場合、上記ゲームサーバ1からリプレイデータをダウンロードして、再生する。これにより、リプレイデータに基づく他のプレイヤキャラクタがゴーストとして表示され得る。
【0045】
[設置物オブジェクトについて]
また、上記ステージにおいて、各プレイヤは、ステージプレイ中に所定の操作を行うことで、所定の設置物オブジェクトをステージ上に設置することもできる。設置物オブジェクトとは、例えば、プレイヤに有利な効果を及ぼすことができるオブジェクトである。例えば、設置物オブジェクトは、アイテムや、パネル型のオブジェクト(以下、単にパネルと呼ぶ)である。そして、アイテムの場合は、プレイヤキャラを接触させることで、他のプレイヤが設置したアイテムを取得できる。つまり、これを利用することで、プレイヤ間でのアイテムの受け渡しも可能となる。また、パネルの場合、接触したプレイヤキャラをパワーアップさせたり、そのプレイヤキャラに生じている不利な状態(状態異常など)を解消する等、有利な効果を及ぼすことが可能である。つまり、パネルを設置しておくことで、間接的に他のプレイヤの手助けを行うことも可能である。そして、本実施形態では、設置物オブジェクトの外観については、それを設置したプレイヤキャラに対応する画像が用意されている。
図8に、上記パネルの一例を示す。
図8は、ローカルキャラであるキャラクタAが設置したパネルAと、リモートキャラであるキャラクタBが設置したパネルBとの一例を示す。両者は機能的な面では同じ設置物オブジェクトとして扱われるが、
図8に示すように、その外観が異なっており、どのプレイヤキャラが設置したパネルであるのかが識別できるようにデザインされている。また、一部の設置物オブジェクト(本例ではパネル)については、各プレイヤにつき1つしか設置できないものとする。そのため、同じステージ部屋内で同じプレイヤがパネルを複数回設置した場合は、前回設置したパネルが消去され、最新のパネルだけが表示される。また、一旦設置された設置物オブジェクトは、それを設置したプレイヤがステージ部屋から退室した後も、ステージ部屋が残っている間は、ステージ上に残り続ける。
【0046】
[使用できるプレイヤキャラクタについて]
ところで、本ゲームでは、プレイヤキャラとして使用できるキャラクタは、予め用意された複数種類のキャラクタの中から選択してプレイする構成となっている。異なる種類のキャラクタとは、少なくともその見た目(外観)が、「別のキャラクタである」ことが認識できる程度に異なっているキャラクタである。また、本ゲームでは、そのキャラクタ性能等も異なっているものとする。以下では、「同じキャラクタ」というときは、同じ種類のキャラクタであることを意図し、「異なるキャラクタ」は、種類が異なるキャラクタであることを意図する。
【0047】
各プレイヤは、本ゲームのプレイに際して、自身が使用するキャラクタを選択する必要がある。本実施形態では、一例として、「キャラクタA」~「キャラクタL」の12種類の異なるキャラクタが用意されている場合を想定して説明する。そして、プレイヤは、この12種類のキャラクタの中からいずれか1体を、自分が使用するプレイヤキャラとして選択する。そのため、上記リモートキャラ211は、他のプレイヤが選択したキャラクタが表示され、プレイヤキャラ201とは異なるキャラクタが表示され得る。
【0048】
ここで、不特定多数の相手とマッチングされるオンラインマルチプレイの場合、選択できるキャラクタ数が限られていることから、異なるプレイヤが同じキャラクタを選択して、同じ部屋でプレイすることも考えられる。この点につき、上記ワールドマップ画面やステージ画面において、見た目が同じキャラクタが同時に複数体表示されていると、プレイヤの操作対象がどのキャラクタなのか分かりにくくなる可能性がある。
【0049】
上記の点に鑑みて、プレイヤをマッチングする際に、キャラクタが重複しないように調整しながらマッチングすることも考えられる。これにより、同じキャラクタを選択したプレイヤ同士がマッチングされることを防ぎ、見た目が同じキャラクタが同時に複数体表示されることを防ぐことはできる。しかし、この場合、例えば、同じキャラクタがいる部屋には入室できなくなる等、自分が選択したキャラクタが他のプレイヤと重複していることから、マッチングが成立しにくくなり、マッチング待ちの時間が長くなってしまうという側面もある。
【0050】
そこで、本実施形態では、上記のような同じキャラクタについてのマッチングの制限のような制御を行うことなく、各プレイヤのゲーム装置に係るゲーム画面において、同じプレイヤキャラは2体以上表示しないように制御する。具体的には、ワールドマップ画面と、ステージ画面とのそれぞれで、以下の示すような制御を行うことで、同じキャラクタの複数体同時表示を抑制している。
【0051】
[ワールドマップ画面におけるキャラクタ表示制御について]
まず、ワールドマップ画面におけるプレイヤキャラの表示制御の概要を説明する。本実施形態では、ワールドマップ画面においては、同じ種類のプレイヤキャラが存在(重複)する場合、各プレイヤのゲーム画面において、いずれか1体のみを優先表示するように制御する。具体的には、ローカルプレイヤとリモートプレイヤとのプレイヤキャラが重複する場合は、ローカルプレイヤのプレイヤキャラ(ローカルキャラ)の表示を優先する。一例として、3人のプレイヤ(以下、それぞれを1P、2P、3Pと称する)がそれぞれ、キャラクタAを選択した場合を想定する。そして、この場合において、あるタイミングにおけるワールドマップ上での各プレイヤの位置が、
図9に示すような位置関係である場合を想定する。この場合は、3人とも同じキャラクタを選択しているため、1Pのゲーム画面(1Pがローカルプレイヤになる場合)においては、
図10に示すように、1Pの操作対象であるキャラクタAのみが表示される。また、2Pのゲーム画面(2Pがローカルプレイヤになる場合)では、
図11のように、2Pの操作対象であるキャラクタAのみが表示される。3Pのゲーム画面(3Pがローカルプレイヤになる場合)では、
図12のように、3Pの操作対象であるキャラクタAのみが表示される。
【0052】
次に、ローカルキャラとの重複はないが、リモートプレイヤ同士のリモートキャラが重複している場合を想定する。例えば、ローカルプレイヤである1PがキャラクタAを選択し、2Pおよび3PはキャラクタBを選択した場合を想定する。このような場合は、1Pのゲーム画面では、重複するリモートキャラのうち、ローカルキャラに最も近い位置のリモートキャラの表示を優先する。例えば、上記
図9と同じ位置関係を想定すると、1Pのゲーム画面では、
図13に示すようにローカルキャラに近いほうの、2Pが操作するキャラクタBが表示される。
【0053】
また、
図9の状況から、2Pと3Pと位置関係が
図14のように変化したとする。すなわち、3Pが1Pに近づき、2Pは1Pから遠ざかったような場合を想定する。この場合は、
図15に示すように、ローカルキャラにより近くなった3Pが操作するキャラクタBが表示され、2Pが操作するキャラクタBは非表示になる。
【0054】
このように、本実施形態では、同じワールド部屋に同じキャラクタが複数存在するような状況の場合、いずれか1体のみを表示し、同じキャラが複数体表示されないような制御が行われる。そのため、実際の入室人数にかかわらず、ワールドマップ画面において表示されるプレイヤキャラの数は、最大で12体(それぞれ異なるキャラクタ)までとなる。なお、本例は12体のキャラクタから選択する場合を例示するものであるため、最大12体となるが、当該選択可能なキャラクタ数がより多い場合は、ワールドマップ画面における表示最大数も当該選択可能なキャラクタ数と同じになる。
【0055】
ところで、上記のように本実施形態では、ワールドマップ画面において重複するリモートキャラが存在するような状況の場合、ローカルキャラの位置に最も近いリモートキャラを優先的に表示するように制御している。ここで、ローカルキャラの位置に最も近いかどうかを判定するために、重複するリモートキャラのそれぞれとローカルキャラとの距離を判定する処理が行われる。そして、本実施形態では、この距離判定を、所定の時間間隔を空けて(例えば数秒おきに)行うようにしている。つまり、重複するリモートキャラとローカルキャラとの位置関係の変化が発生しても、優先表示するリモートキャラの切り替えは必ずしもリアルタイムで反映されるわけではない。これは、表示するリモートキャラの切り替わりが高頻度で発生することを防ぐためである。あまりに高頻度で切り替わりが発生すると、リモートキャラが点滅しているように見えてしまう等で、違和感や画面の見にくさをプレイヤに与えかねないため、このような事態を防ぐものである。
【0056】
更に、本実施形態では、上記のような距離判定を行う際、優先表示中のリモートキャラについては、ローカルキャラとの実際の距離をより短い距離に補正したうえで、距離判定を行う。例えば、上記2Pと3Pが共にキャラクタBを選択していた場合で、2PのキャラクタBが優先表示対象である場合を想定する。そして、1Pと2Pとの距離がゲーム内距離で10m、1Pと3Pとの距離がゲーム内距離で12mだったとする。この場合、上記距離の判定を行う際は、優先表示中の2Pと1Pとの距離を例えば70%の距離に補正したうえで、距離判定を行う。すなわち、10mから7mに補正されたうえで、距離判定が行われる。これにより、表示対象でない3PのキャラクタBは優先表示対象として選ばれにくくなる。これは、特に2Pと3Pとの距離の差が小さい場合に、現在表示されているキャラクタの表示に連続性をもたせるようにし、表示するリモートキャラの切り替わりが高頻度で発生することを防ぐためである。
【0057】
また、本実施形態では、優先表示対象のリモートキャラであっても、一定時間操作がされていない場合は、非表示とする。操作されずに放置されているリモートキャラを表示するよりは、現在操作されているリモートキャラを表示すること優先するためである。なお、ローカルキャラについては、操作の有無にかかわらず、常に表示される。
【0058】
[ステージ部屋におけるキャラクタ表示制御について]
次に、ステージ部屋におけるプレイヤキャラ等の表示制御について説明する。ステージ部屋の場合は、上記ワールド部屋の場合と異なり、重複するプレイヤキャラについては、同じプレイヤキャラが表示されないように、別のキャラクタの画像に置き換えて(差し替えて)表示する。以下、この画像の置き換えのことを「偽装」と呼ぶ。ステージ部屋の場合、ワールド部屋と異なり、最大入室人数が4人と比較的少ないため、もし重複キャラを表示しないようにすると、他のプレイヤと一緒にプレイしているというオンラインマルチプレイ感が損なわれてしまうためである。
【0059】
また、上記偽装する処理は、各ゲーム装置における処理として個別に行われる。つまり、偽装内容についてはステージ部屋内のゲーム装置間で同期されない。そのため、ゲーム装置間で偽装内容が異なることもあり得る。また、偽装する対象は、リモートキャラ、リプレイゴースト、配置物オブジェクトである。また、当該処理が行われるタイミングは、各ゲーム装置3においてリモートキャラを生成するタイミングで行われる。具体的には、ローカルプレイヤが新たにステージ部屋に入室したとき(既存のリモートプレイヤがいれば、そのリモートキャラを生成することになる)、および、その後、リモートプレイヤが入室してきたとき、である。以下の説明では、各プレイヤが実際に選択したキャラクタ(偽装前のキャラクタ)のことを「実選択キャラ」、偽装したキャラクタのことを「偽装キャラ」と呼ぶ。
【0060】
以下、上記偽装の例を説明する。まず、あるステージ部屋に3人のプレイヤが入室しており、その全員が、キャラクタAを選択していた場合を想定する。つまり、実選択キャラがローカルプレイヤと重複しているリモートプレイヤがいる場合を想定する。この場合は、各自のゲーム装置上で、リモートプレイヤが操作するリモートキャラをキャラクタA以外のキャラクタに偽装して表示する。この場合、ローカルプレイヤである1Pのゲーム画面としては、
図16のような画面が表示され得る。
図16では、1Pの操作キャラクタはキャラクタAであり、2Pの操作キャラクタがキャラクタBに、3Pの操作キャラクタはキャラクタCに偽装されている状態である。つまり、1Pの操作キャラクタ(ローカルキャラ)については実選択キャラが表示され、2P、3Pのリモートキャラについては、実選択キャラではなく偽装キャラが表示されることになる。また、同じ状況で2P側のゲーム画面(2Pがローカルプレイヤになる場合)では、
図17のような画面が表示される。
図17では、2Pの操作キャラクタはキャラクタAであり、1Pの操作キャラクタがキャラクタCに、3Pの操作キャラクタはキャラクタBに偽装されている状態である。また、同じ状況で3Pのゲーム画面では、
図18のような画面が表示される。
図18では、3Pの操作キャラクタはキャラクタAであり、1Pの操作キャラクタはキャラクタBに、2Pの操作キャラクタはキャラクタDに偽装されている状態である。
【0061】
また、実選択キャラがキャラクタAである2Pが入室しているステージ部屋に、同じく実選択キャラがキャラクタAである1Pが後から入室した場合は、1P側のゲーム画面では、2Pの操作キャラクタがキャラクタA以外のキャラクタに偽装される。逆に、2P側のゲーム画面では、1Pの操作キャラクタがキャラクタA以外に偽装されることになる。
【0062】
[リモートプレイヤ間での重複について]
次に、リモートプレイヤ間でのみ実選択キャラの重複がある場合を想定する。この場合は、実選択キャラが重複しているリモートプレイヤのうち、いずれか1人はリモートキャラを実選択キャラのままとし、残りのリモートプレイヤについてはリモートキャラを偽装する。例えば、4人のプレイヤが入室しているステージ部屋で、1Pの実選択キャラがキャラクタAであり、2P、3P、4Pの実選択キャラがキャラクタBの場合を想定する。この場合は、1Pのゲーム画面上では、例えば、2PのリモートキャラはキャラクタBのままで表示され、3P、4PのリモートキャラはそれぞれキャラクタC、キャラクタDに偽装される。これにより、同じキャラクタが同時に2体以上表示されることを防いでいる。
【0063】
また、一旦偽装されれば、その後重複状態が解消されたとしても、そのステージ内では偽装先の変更は行われない。例えば、2Pおよび3Pの実選択キャラがキャラクタBであり、3Pの操作するキャラクタについて、キャラクタCへの偽装がされている場合を想定する。この場合に、2Pがゴールしてステージ部屋から退室し、2Pと3Pの実選択キャラの重複状態が解消したとしても、3Pについての偽装はそのまま継続する。
【0064】
[偽装先の決定について]
ここで、偽装内容(偽装先)の決め方について補足する。本実施形態では、「偽装リスト」と呼ばれるデータが予め定義されている。偽装リストの中身は、上記12体のキャラクタのIDを所定の順番で並べた内容である。そして、偽装先を決める際は、各ゲーム装置の処理において、当該偽装リストが参照され、リストの順番に沿って順番にIDを見ていく。そして、部屋内の既存のキャラクタと重複しないキャラクタで最初に見つかったものを偽装先として決定する。なお、偽装リスト内のIDを順に見ていくに際して、出発点とするID(偽装先の初期候補)については、各ゲーム装置において本実施形態に係るゲームアプリが起動された際に、ランダムで決定されるものとする。
【0065】
[リプレイゴーストの偽装について]
また、上記のように、偽装する対象としてリプレイゴーストも含まれる。リプレイゴーストの偽装は、上記リモートプレイヤの場合と同様となる。つまり、リプレイゴーストもリモートプレイヤ(リモートキャラ)として扱うものである。そのため、例えば、プレイヤの実選択キャラがキャラクタAであり、ゲームサーバ1からダウンロードしたリプレイデータが、同じくキャラクタAを用いたものである場合を想定する。この場合、出現させるリプレイゴーストの外観については、キャラクタA以外のキャラクタに偽装されるが、リプレイゴーストの動作内容自体は、ダウンロードしたリプレイデータ(キャラクタAを用いるリプレイデータ)に基づくものとなる。
【0066】
[設置物オブジェクトの偽装について]
次に、設置物オブジェクトの偽装に関して説明する。上記のように、本ゲームの設置オブジェクトには、その機能や効能面からすれば同じオブジェクト扱いとなるオブジェクトであっても、外観については上記12体のキャラクタにそれぞれ対応するようなデザインとなるものが含まれている(例えば上記パネル)。また、一旦設置された設置オブジェクトは、それを設置したプレイヤがステージ部屋から退室した後もステージ上に残り続ける。そのため、例えば、上記パネルを例にすると、キャラクタAを用いてプレイしていた3Pが、キャラクタAに対応するパネルAを設置した後、ステージクリアしてステージ部屋から退室したとする。その後、同じステージ部屋に、キャラクタAを実選択キャラとした1Pが入室するという場合もあり得る(実選択キャラの重複は発生していない状況)。この場合、1Pからすると、設置した覚えのないパネルAが既に存在しているような状況になる。このような場合に鑑みて、本実施形態では、プレイヤがステージ部屋に入室したときに、その部屋に既存の設置物オブジェクトに対応するキャラクタが、当該プレイヤの実選択キャラ(ローカルキャラ)と重複している場合、既存の設置物オブジェクトのほうを、別のキャラクタに対応する設置物オブジェクトに偽装するという処理を行う。例えば、キャラクタAが設置したパネルAが存在する部屋に対して1PがキャラクタAを実選択キャラとして入室した場合は、1Pのゲーム画面では、
図19に示すように、パネルAがパネルBに偽装されて表示される。一方、1PがキャラクタA以外のキャラクタを実選択キャラとして入室した場合は、
図20に示すように、パネルAが偽造されないまま表示される。
【0067】
また、例えば、キャラクタAを使用する3Pが入室している部屋に、実選択キャラがキャラクタAである1Pが入室した場合、1Pのゲーム画面では、3Pが操作するキャラクタAが例えばキャラクタCに偽装されて表示される。この場合、当該3Pが既に設置した、あるいはその後設置する設置物オブジェクトも、キャラクタCに対応した設置物オブジェクトに偽装される。
【0068】
また、上記リモートキャラ(リプレイゴースト)の場合と同様、一旦偽装された設置物オブジェクトは、その後、重複状態が解除されたとしても、偽装先が変更されることはない。
【0069】
[ゲーム内メッセージの偽装について]
ところで、本ゲームでは、上記設置物オブジェクトが設置された場合、そのことを示すメッセージがゲーム画面上に表示される。例えば、
図21に示すように、「キャラクタCがアイテムXを置きました」等のメッセージがテロップ形式で表示される。また、この場合以外でも、プレイヤキャラが行った所定の行動に基づき、そのキャラクタ名を用いたメッセージが表示されることがある。このようなメッセージについても、上述したキャラクタの偽装が反映される。例えば、1Pと2Pの実選択キャラが同じキャラクタAであり、1P側のゲーム処理において2Pの操作キャラクタがキャラクタBに偽装されていたとする。この場合、1Pのゲーム画面では、
図22に示すように、偽装先のキャラクタ名を用いたメッセージが表示される。つまり、キャラクタが偽装されている場合は、各ゲーム装置の処理において、その見た目通りのキャラクタ名がメッセージに用いられる。
【0070】
次に、ゲーム装置3、および、ゲームサーバ1で用いられる各種データと、それぞれで行われる処理の詳細を説明する。
【0071】
[ゲームサーバ1で用いられるデータについて]
まず、ゲームサーバ1で用いられるデータに関して説明する。
図23は、ゲームサーバ1の記憶部12に記憶される各種データの一例を示すメモリマップである。ゲームサーバ1の記憶部12には、ゲームサーバプログラム301、プレイヤデータベース302、ワールド部屋管理データ304、ステージ部屋管理データ305、リプレイ管理データ306、が少なくとも記憶されている。
【0072】
ゲームサーバプログラム301は、上述したようなゲーム処理を実現するためにゲームサーバ1を機能させるプログラムである。
【0073】
プレイヤデータベース302は、本実施形態に係るゲームをプレイする各プレイヤに関するデータベースである。プレイヤデータベース302には、複数のプレイヤデータ303が含まれている。各プレイヤデータ303には、例えば、各プレイヤを識別するためのプレイヤID308、各プレイヤのプレイヤ名309等が含まれる。
【0074】
ワールド部屋管理データ304は、上記ワールド部屋を管理するためのデータベースである。
図24に、ワールド部屋管理データ304のデータ構成の一例を示す。
図24において、ワールド部屋管理データ304には、各ワールド毎に、1以上のワールド部屋情報312が含まれる。各ワールド部屋情報312には、ワールド部屋ID313、ワールド入室プレイヤ情報314等が含まれる。ワールド部屋ID313は、そのワールド部屋を一意に特定するためのIDである。ワールド入室プレイヤ情報314は、そのワールド部屋に現在入室しているプレイヤに関する情報である。
図25に、ワールド入室プレイヤ情報314のデータ構成の一例を示す。ワールド入室プレイヤ情報314は、ワールドプレイヤID315、選択キャラID316、ワールド位置情報317の項目を少なくとも含むテーブル形式のデータである。ワールドプレイヤID315は、そのワールド部屋に入室しているプレイヤのIDであり、上記プレイヤID308に対応する。選択キャラID316は、各プレイヤが使用キャラとして選択したキャラクタを特定するためのIDであり、後述するプレイヤキャラクタマスタデータ404のプレイヤキャラID421に対応する情報である。ワールド位置情報317は、各プレイヤが操作するキャラクタの、上記ワールドマップ内における位置を示す情報である。
【0075】
図23に戻り、ステージ部屋管理データ305は、上記ステージ部屋を管理するためのデータベースである。
図26に、ステージ部屋管理データ305のデータ構成の一例を示す。
図26において、ステージ部屋管理データ305には、各ステージを特定するステージ番号321毎に、ステージ部屋情報322が含まれている。当該ステージ部屋情報322は、1つのステージに対して複数含まれ得る。当該ステージ部屋情報322のそれぞれが上記ステージ部屋に対応する情報である。各ステージ部屋情報322には、ステージ部屋ID323、ステージ入室プレイヤ情報324等が含まれる。ステージ部屋ID323は、そのステージ部屋を一意に特定するためのIDである。ステージ入室プレイヤ情報324は、そのステージ部屋に現在入室しているプレイヤに関する情報である。例えば、ステージ入室プレイヤ情報324には、プレイヤを特定する情報(プレイヤID308)や実選択キャラを示す情報(プレイヤキャラID421)が格納される。
【0076】
図23に戻り、次に、リプレイ管理データ306は、上述したような、ゲーム装置3から送信されたリプレイデータを保存したものである。
図27に、リプレイ管理データ306のデータ構成の一例を示す。リプレイ管理データ306には、ステージ番号331毎に、1つ以上のリプレイデータ332が含まれている。各リプレイデータ332には、登録日時333、登録プレイヤ情報334、使用キャラクタID335、リプレイ内容336が少なくとも含まれる。登録日時333は、そのリプレイデータがゲームサーバ1に登録された日時を示す。登録プレイヤ情報334は、そのリプレイデータを生成したプレイヤを示す情報である。使用キャラクタID335は、そのリプレイで用いられているキャラクタを特定するためのIDである。リプレイ内容336は、リプレイの内容を示すためのデータである。例えば、リプレイ内容336は、リプレイに係るキャラクタの位置情報や状態を示す情報が時系列に並べられて格納されたデータである。また、リプレイ内容336は、例えばキーデータ等であってもよい。つまり、リプレイ内容336は、プレイヤの操作履歴が把握できるようなデータであれば、どのようなデータ内容であってもよい。
【0077】
また、図示は省略するが、プレイヤのマッチング処理等を行うために必要な各種データも、記憶部12に適宜記憶され得る。
【0078】
[ゲーム装置3で用いられるデータについて]
次に、ゲーム装置3で用いられるデータに関して説明する。
図28は、ゲーム装置3の記憶部32に記憶される各種データの一例を示すメモリマップである。ゲーム装置3の記憶部32には、ゲームプログラム401、ワールドマップマスタデータ402、ステージマスタデータ403、プレイヤキャラクタマスタデータ404、設置物マスタデータ405、その他のオブジェクトデータ406、メッセージマスタデータ407、ワールドマップ管理用データ408、ステージプレイ管理用データ412、操作データ418が少なくとも記憶されている。
【0079】
ゲームプログラム401は、ゲーム装置3において、本実施形態におけるゲーム処理を実行するためのプログラムである。
【0080】
ワールドマップマスタデータ402は、上記ワールドマップ画面の基になるデータである。各ワールドに分けて、各ワールドマップ画面の画像データや各ワールドの構成情報(ステージ数等)等が含まれている。
【0081】
ステージマスタデータ403は、プレイするステージを構築するためのデータが含まれている。具体的には、ステージマスタデータ403には、ステージ毎に、スタート地点、ゴール地点の位置情報、中間地点オブジェクト等のステージ内に配置される各種オブジェクトを示すデータが含まれる。
【0082】
プレイヤキャラクタマスタデータ404は、プレイヤキャラクタとして選択され得る上記12体のキャラクタについて定義したデータである。
図29に、プレイヤキャラクタマスタデータ404のデータ構成の一例を示す。プレイヤキャラクタマスタデータ404は、プレイヤキャラID421、キャラクタ外観データ422を少なくとも有するテーブル形式のデータである。プレイヤキャラID421は、12種類のキャラクタを一意に特定するためのIDである。本例では、“01”~“12”のいずれかの数値であるとする。キャラクタ外観データ422は、各キャラクタの外観を示す画像データである。また、図示は省略するが、各キャラクタの性能を定義した情報等が含まれていてもよい。
【0083】
図28に戻り、次に、設置物マスタデータ405は、ステージ部屋のプレイで登場し得る各種の設置物オブジェクトのマスタデータである。
図30に、設置物マスタデータ405のデータ構成の一例を示す。設置物マスタデータ405は、設置物ID431、対応キャラID432、設置物外観データ433を少なくとも有するテーブル形式のデータである。設置物ID431は、本ゲームに登場し得る各設置物オブジェクトを識別するためのIDである。対応キャラID432、および、設置物外観データ433は、設置物ID431で特定される設置物オブジェクトについて、キャラクタ毎に個別に用意された外観を示すデータである。対応キャラID432は、上記プレイヤキャラID421に対応するものであり、設置物外観データ433は、外観の画像データである。本例では、1つの設置物ID431につき、12体分のキャラクタに対応する設置物外観データ433が用意されている。
図30の例では、例えば、設置物ID431が”01”の設置物オブジェクトが上記「パネル」であるとする。そして、「パネル」という設置物オブジェクトについて、12体のキャラクタ毎に異なる外観が用意されていることが示されている。また、各キャラクタは、自分がパネルを設置する際、自身に対応した外観のパネルしか設置できず、自発的に他のキャラクタのパネルを設置することはできない。例えば、キャラクタAがパネルを設置する場合、キャラクタBやキャラクタCに対応した外観のパネルを設置することはできない。また、図示は省略するが、設置物マスタデータ405には、各設置物の作用や効果を定義したデータも含まれている。
【0084】
図28に戻り、次に、その他のオブジェクトデータ406は、上記プレイヤキャラクタや設置物オブジェクト以外の各種オブジェクトのデータである。例えば敵キャラクタ等のデータである。
【0085】
メッセージマスタデータ407は、ゲーム中に表示される各種メッセージのマスタデータである。例えば、上記
図21や
図22で示したようなメッセージの場合、メッセージマスタデータ407には、例えばメッセージIDに対応付けて「ChrStrがItemStrを置きました。」のような文字列データが定義される。ここで、“ChrStr”、“ItemStr”は変数であり、実際に表示する際に、キャラクタの名称や設置物の名称が代入されて表示される。
【0086】
ワールドマップ管理用データ408は、ゲーム装置3においてワールドマップ画面の処理を実行する際に用いられる管理用のデータである。ワールドマップ管理用データ408には、部屋状況データ409、表示対象管理データ410、ワールドマップ用プレイヤキャラデータ411が少なくとも含まれる。部屋状況データ409は、そのプレイヤが入室したワールド部屋に係る上記ワールド部屋情報312をゲームサーバ1から取得して記憶したものである。表示対象管理データ410は、上述したような、重複するキャラクタについての表示制御に用いるデータである。
図31に、表示対象管理データ410の一例を示す。表示対象管理データ410には、ワールド管理用プレイヤID441、表示フラグ442とを少なくとも含む。ワールド管理用プレイヤID441は、ゲームサーバ1から取得したワールド部屋情報312に含まれる上記ワールド入室プレイヤ情報314におけるワールドプレイヤID315に対応するデータである。表示フラグ442は、そのプレイヤに係るキャラクタを表示するか否かを示すフラグである。表示フラグ442がtrueであれば表示し、falseは非表示にすることを示す。
【0087】
図28に戻り、ワールドマップ用プレイヤキャラデータ411は、ワールドマップ画面において表示されるプレイヤキャラクタの情報である。使用しているキャラクタのプレイヤキャラID421と、ワールドマップ上での位置情報等が含まれる。
【0088】
次に、ステージプレイ管理用データ412は、ゲーム装置において、ステージプレイに係る処理を実行する際に用いられる管理用のデータである。ステージプレイ管理用データ412には、リモートプレイヤデータ413、リプレイゴーストデータ414、プレイヤアクター管理データ415、設置物管理データ416、偽装リストデータ417が少なくとも含まれる。
【0089】
リモートプレイヤデータ413は、ステージ部屋に現在入室しているリモートプレイヤを管理するためのデータである。
図32に、リモートプレイヤデータ413のデータ構成の一例を示す。リモートプレイヤデータ413は、リモートプレイヤ情報451と、実選択ID452との項目を含むテーブル形式のデータである。リモートプレイヤ情報451は、そのリモートプレイヤのプレイヤID308に対応する情報である。実選択ID452は、そのリモートプレイヤの実選択キャラのプレイヤキャラID421である。すなわち、そのリモートプレイヤがプレイヤキャラクタとして用いるべく選択した、上記12体のキャラクタのうちのいずれかのプレイヤキャラID421を示す。
【0090】
図28に戻り、リプレイゴーストデータ414は、ゲームサーバ1から取得した上記リプレイデータ332を記憶したものである。
【0091】
プレイヤアクター管理データ415は、ステージプレイで登場するローカルキャラ、リモートキャラクタ、リプレイゴーストを管理するためのデータである。
図33は、プレイヤアクター管理データ415のデータ構成の一例を示す図である。プレイヤアクター管理データ415は、アクター枠番号461、割り当て対象462、使用キャラID463、ステージ位置情報464の項目を少なくとも含むテーブル形式のデータである。また、上記のように、本ゲームではプレイヤアクターは最大4体までであるため、プレイヤアクター管理データ415も、最大4体分のデータとなっている。アクター枠番号461は、4体のプレイヤアクターの管理用の番号(アクター枠)である。割り当て対象462は、そのアクター枠に割り当てる対象を示すデータである。本例では、いずれかのプレイヤ、または、リプレイゴーストを示す情報が設定される。使用キャラID463は、そのプレイヤアクターとして表示するキャラクタのプレイヤキャラID421である。実選択キャラが重複しておらず偽装されていなければ、実選択キャラのプレイヤキャラID421が設定される。重複発生によって偽装された場合は、偽装キャラのプレイヤキャラID421が設定される。ステージ位置情報464は、各プレイヤアクターのステージ内での現在位置を示す情報である。また、図示は省略するが、プレイヤアクター管理データ415には、各プレイヤアクターの「状態」を示す項目などが含まれていてもよい。
【0092】
図28に戻り、次に、設置物管理データ416は、ステージ内に設置された設置物オブジェクトを管理するためのデータである。
図34に、設置物管理データ416のデータ構成の一例を示す。設置物管理データ416は、設置物管理番号471、設置者情報472、設置物特定情報473、設置位置474の項目を少なくとも含むテーブル形式のデータである。設置物管理番号471は、ステージ内に配置された設置物オブジェクトを一意に特定するための番号である。設置者情報472は、その設置物を設置したプレイヤを示す情報である。設置物特定情報473は、設置された設置物オブジェクト(の外観)を特定するための情報である。本例では、上記設置物マスタデータ405の設置物ID431と対応キャラID432との組み合わせで特定される。設置位置474は、その設置物オブジェクトが設置された、ステージ内における位置を示す情報である。
【0093】
図28に戻り、次に、偽装リストデータ417は、上述した偽装リストのデータである。すなわち、上記プレイヤキャラID421を所定の順番で並べたリスト形式のデータである。
【0094】
操作データ418は、プレイヤが操作するコントローラ4から得られるデータである。すなわち、プレイヤが行った操作内容を示すデータである。
【0095】
その他、図示は省略するが、ゲームサーバ1や他のゲーム装置3に各種データを送信するための送信用データや、他のゲーム装置3から受信した受信データ等、ゲーム処理に必要となる各種データも必要に応じて生成され、記憶部32に記憶され得る。
【0096】
次に、本実施形態におけるゲーム処理の詳細を説明する。ここでは主に、上述したような重複キャラクタの表示制御に関する処理を説明し、その他のゲーム処理の詳細説明は割愛する。また、本実施形態では、1以上のプロセッサが1以上のメモリに記憶された上記プログラムを読み込んで実行することにより、以下に示すフローチャートが実現される。なお、以下に示すフローチャートは、処理過程の単なる一例にすぎない。そのため、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判定ステップで利用される閾値も、単なる一例であり、必要に応じて他の値を採用してもよい。
【0097】
[ゲーム装置3のプロセッサ31が実行する処理の詳細]
図35~
図36は、ゲーム装置3のプロセッサ31が実行するワールドマップ処理の詳細を示すフローチャートである。当該処理は、上述したワールドマップ画面における処理である。
【0098】
ゲーム装置3において、プレイヤによってゲームが開始されると、まず、ステップS1で、プロセッサ31は、ワールド部屋への入室処理を実行する。当該処理では、ゲームサーバ1への接続処理が行われ、その後、プレイヤがプレイヤキャラとして使用するキャラクタを選択させる処理が実行される。使用するキャラクタが選択されれば、その後、入室先のワールド部屋を決定する処理(マッチング処理)が行われる。そして、決定したワールド部屋に入室する処理、すなわち、当該ワールド部屋に対応する通信グループとのセッションを確立する処理が実行される。
【0099】
次に、ステップS2で、プロセッサ31は、ゲームサーバ1から、入室したワールド部屋に係るワールド部屋情報312を取得し、部屋状況データ409として記憶する。
【0100】
次に、ステップS3で、プロセッサ31は、ワールド部屋内における重複キャラクタについて表示対象を決定するための処理(表示対象決定処理)を実行する。
図37は、当該表示対象決定処理の詳細を示すフローチャートである。
図37において、まず、ステップS21で、プロセッサ31は、部屋状況データ409に基づき、ワールド部屋内で重複しているプレイヤキャラをリストアップする。この際、プロセッサ31は、一定時間以上操作されていないリモートキャラ(放置キャラ)については、当該リストアップの対象から除外する。そのため、当該リストアップの結果としては、放置キャラが含まれていないようなリストが作成されることになる。
【0101】
次に、ステップS22で、プロセッサ31は、ローカルキャラと重複するプレイヤキャラについて、非表示とすることを決定する。つまり、ローカルキャラを優先的に表示することを決定する。
【0102】
次に、ステップS23で、プロセッサ31は、ローカルキャラ以外で重複するキャラクタがいる場合は、当該重複するキャラクタのうち、ローカルキャラに最も近い位置のプレイヤのキャラクタを優先表示対象として決定する。この際、上述したように、現在表示中のキャラクタについては、ワールドマップにおけるローカルキャラとの距離を実際の距離よりも短く補正してから、ローカルキャラとの距離を判定する。
【0103】
次に、ステップS24で、プロセッサ31は、上記決定した内容を表示対象管理データ410に反映する。すなわち、キャラクタが重複するプレイヤのうち、優先表示対象として決定されなかったプレイヤの表示フラグ442をfalseに設定し、それ以外のプレイヤについては表示フラグ442をtrueに設定する処理が行われる。また、この際、プロセッサ31は、上記のような放置キャラについても非表示とする設定を行う。以上で、表示対象決定処理は終了する。
【0104】
図35に戻り、次に、ステップS4で、プロセッサ31は、ローカルキャラをワールドマップ内の既定の初期位置に配置する。そして、プロセッサ31は、表示対象管理データ410に基づき、ワールドマップ画面を描画する。その結果、重複するキャラクタについては、いずれか一体のみが表示されるワールドマップ画面が出力されることになる。また、この画面は、ワールド部屋入室直後の状態におけるワールドマップ画面となる。
【0105】
次に、ステップS5で、プロセッサ31は、ゲームサーバ1から、上記ワールド部屋情報312を取得し、部屋状況データ409として記憶する。つまり、ワールド部屋の状況について、最新の情報に更新する。
【0106】
次に、ステップS6で、プロセッサ31は、操作データ418に基づき、所定のステージのプレイを開始することを指示する操作(ステージイン操作)が行われたか否かを判定する。当該判定の結果、行われていない場合は(ステップS6でNO)、ステップS7で、プロセッサ31は、上記の表示対象決定処理を実行するタイミングが到来したか否かを判定する。上記のように、本実施形態では、表示するキャラクタの切り替わりが高頻度で発生することを防ぐという観点で、表示対象決定処理はリアルタイムではなく数秒おきに実行されるようにしている。そのため、ここでは、当該タイミングは数秒おきのタイミングであるとする。もちろん当該タイミングは任意であり、上記の観点に沿うものであればどのようなタイミングとしてもよい。当該判定の結果、表示対象決定処理を実行するタイミングが到来した場合は(ステップS7でYES)、ステップS8で、プロセッサ31は、上述したような表示対象決定処理を実行する。一方、表示対象決定処理を実行するタイミングが到来していない場合は(ステップS7でNO)、ステップS8の処理はスキップされる。
【0107】
次に、
図36のステップS9で、プロセッサ31は、操作データ418および部屋状況データ409に基づいて、ワールドマップ内の各プレイヤキャラの移動制御を行う。
【0108】
次に、ステップS10で、プロセッサ31は、必要に応じて上記以外の各種のゲーム処理を実行する。
【0109】
次に、ステップS11で、プロセッサ31は、表示対象管理データ410に基づき、ワールドマップ画面を描画する。
【0110】
次に、ステップS12で、プロセッサ31は、ゲーム終了の条件が満たされたか否かを判定し、満たされていない場合は(ステップS12でNO)、上記ステップS5に戻り、処理を繰り返す。満たされた場合は(ステップS12でYES)、ワールドマップ処理を終了する。
【0111】
次に、上記ステップS6の判定の結果、ステージイン操作が行われた場合の処理について説明する。この場合は、ステップS13で、プロセッサ31は、ワールド部屋から退室する処理を行う。
【0112】
次に、ステップS14で、プロセッサ31は、ステージプレイ処理を実行する。ステージプレイ処理が終われば、上記ステップS1に戻り、処理が繰り返される。
【0113】
次に、上記ステージプレイ処理の詳細を説明する。
図38~
図39は、当該ステージプレイ処理の詳細を示すフローチャートである。まず、ステップS31で、プロセッサ31は、ステージ部屋への入室処理を実行する。具体的には、まず、プロセッサ31は、ゲームサーバ1にマッチング処理をリクエストする。そして、プロセッサ31は、そのマッチング結果に基づき決定されたステージ部屋への入室処理を実行する。この際、既存の部屋に入室する場合は、その部屋の状況を示す各種情報を、入室済みのプレイヤに係るゲーム装置3のいずれかから受信する。例えば、入室済みのリモートプレイヤや、配置されている配置物オブジェクトの情報等の情報が受信される。そして、当該受信した情報に基づき、リモートプレイヤデータ413、プレイヤアクター管理データ415、設置物管理データ416が適宜生成される。また、プロセッサ31は、入室済みのプレイヤに係るゲーム装置3に、自分がプレイヤキャラとして用いるキャラクタの情報も送信する。なお、既存の部屋ではなく、新規で部屋を作成して入室する場合は、上記のような部屋の状況を示す各種情報の受信や、受信した情報に基づく生成処理は不要となる。
【0114】
次に、ステップS32で、プロセッサ31は、キャラクタ偽装判定処理を実行する。
図40は、当該処理の詳細を示すフローチャートである。まず、ステップS51で、プロセッサ31は、新たにステージ部屋に入室してきたプレイヤと実選択キャラが同じであるプレイヤが存在するか否かを判定する。「新たにステージ部屋に入室してきたプレイヤ」とは、ローカルプレイヤがステージ部屋に新たに入室した場合は、ローカルプレイヤが該当する。また、ローカルプレイヤが入室した後、新たにリモートプレイヤが入室してきた場合は、当該リモートプレイヤが該当する。当該判定の結果、新たにステージ部屋に入室してきたプレイヤと実選択キャラが同じであるプレイヤが存在する場合は(ステップS51でYES)、ステップS52で、プロセッサ31は、上記のような偽装リストに基づき、偽装先とするキャラクタを決定する。すなわち、プロセッサ31は、上記出発点とするキャラクタから順番にリストを辿っていき、ステージ部屋に存在する既存のプレイヤキャラと重複しないキャラクタを探していく。そして、プロセッサ31が、最初に見つかった非重複のキャラクタを偽装先として決定し、その決定内容に基づいて、プレイヤアクター管理データ415を更新する。具体的には、ローカルプレイヤがステージ部屋に新たに入室した場合は、プロセッサ31は、先に入室していたリモートプレイヤに関するデータについて偽装設定を行う。具体的には、実選択キャラがローカルプレイヤと同じであるリモートプレイヤに対応するプレイヤアクター管理データ415の使用キャラID463に、偽装先として決定したプレイヤキャラID421を設定する。また、実選択キャラがローカルプレイヤと同じであるリモートプレイヤが複数いる場合は、リモートプレイヤ間でもキャラクタが重複しないように偽装先が決定される。また、新たにリモートプレイヤが入室してきた場合は、当該新たに入室してきたリモートプレイヤに対応するプレイヤアクター管理データ415の使用キャラID463に、偽装先として決定したプレイヤキャラID421を設定する。つまり、後から入ってきたリモートプレイヤの操作キャラクタを偽装する。
【0115】
なお、新たにリモートプレイヤが入室してきた場合の偽装先の決定について、既存のプレイヤキャラだけでなく、既存の設置物オブジェクトを考慮して偽装先を決定してもよい。あるいは、既存の設置物オブジェクトについては特に考慮せずに、既存のプレイヤキャラとの重複だけ避けるように偽装先を決定してもよい。
【0116】
一方、上記判定の結果、新たにステージ部屋に入室してきたプレイヤと実選択キャラが同じであるプレイヤが存在していなければ(ステップS51でNO)、上記ステップS52の処理はスキップされる。以上で、キャラクタ偽装判定処理は終了する。
【0117】
図38に戻り、次に、ステップS33で、プロセッサ31は、設置物偽装処理を実行する。
図41は、当該処理の詳細を示すフローチャートである。
図41において、ステップS61で、プロセッサ31は、ローカルキャラに対応する設置物オブジェクトがステージ部屋に存在しているか否かを判定する。当該判定の結果、存在している場合は(ステップS61でYES)、ステップS62で、プロセッサ31は、上記偽装リストを用いて、既存の設置物に対応するキャラクタの偽装先を決定する。そして、当該決定内容に基づき、偽装先となる設置物の画像を決定し、設置物管理データ416を更新する。具体的には、偽造先のプレイヤキャラID421に基づき、設置物管理データ416の、該当する設置物オブジェクトについての設置物特定情報473の内容(設置物ID431と対応キャラID432の組み合わせ)を更新する。例えば、キャラクタAに対応するパネルをキャラクタCに対応するパネルに偽装する場合は、設置物特定情報473の内容を、“01-01”から“01-03”のように更新する。これにより、偽装に用いる設置物外観データ433を決定できる。
【0118】
一方、ローカルキャラに対応する設置物オブジェクトがステージ部屋に存在していない場合は(ステップS61でNO)、上記ステップS62の処理はスキップされる。以上で、設置物偽装処理は終了する。
【0119】
図38に戻り、次に、ステップS34で、プロセッサ31は、プレイヤアクター管理データ415、および設置物管理データ416に基づき、ステージプレイに係るゲーム画像を描画する。その結果、各プレイヤアクターの画像は、プレイヤアクター管理データ415の使用キャラID463で指定されているキャラクタの画像で表示されることになる。上記のように、偽装しない場合は、使用キャラID463には実選択キャラのIDが設定され、偽装する場合は偽装キャラのIDが設定されていることになる。また、既存の設置物オブジェクトの画像については、設置物管理データ416の設置物特定情報473で特定される設置物外観データ433を用いた画像が描画される。こちらも、偽装する場合は偽装キャラに対応した設置物外観データ433が用いられることになる。
【0120】
次に、ステップS35で、プロセッサ31は、入退室チェック処理を実行する。これは、ローカルプレイヤの入室後における他のプレイヤの入退室をチェックするための処理である。
図42~
図43は、当該入退室チェック処理の詳細を示すフローチャートである。まず、ステップS71で、プロセッサ31は、新たなリモートプレイヤの入室が発生したか否かを判定する。当該判定の結果、新たな入室者がいない場合は(ステップS71でNO)、プロセッサ31は、後述のステップS78に処理を進める。一方、新たなリモートプレイヤの入室が発生した場合は(ステップS71でYES)、次に、ステップS72で、プロセッサ31は、部屋内のプレイヤ人数が4人になったか否かを判定する。当該判定の結果、4人になっていない場合は(ステップS72でNO)、後述のステップS75に処理が進められる。一方、4人になった場合は(ステップS72でYES)、ステップS73で、プロセッサ31は、プレイヤアクター管理データ415を参照し、プレイヤアクターの枠に空きがあるか否かを判定する。当該判定の結果、空きが無い場合は(ステップS73でNO)、リプレイゴーストが3体存在している状態と考えられる。そのため、ステップS74で、プロセッサ31は、ローカルキャラから最も遠くの位置にいるリプレイゴーストを削除する。すなわち、当該リプレイゴーストに係るデータを、リプレイゴーストデータ414およびプレイヤアクター管理データ415から削除する。その後、ステップS75に処理が進められる。一方、上記判定の結果、プレイヤアクターの枠に空きがある場合は(ステップS73でYES)、上記ステップS74の処理はスキップされる。
【0121】
次に、ステップS75で、プロセッサ31は、プロセッサ31は、入室してきたリモートプレイヤのゲーム装置から受信した情報に基づき、リモートプレイヤデータ413を更新する。また、プロセッサ31は、当該情報に基づき、プレイヤアクター管理データ415も更新する。そのため、この時点では、リモートプレイヤが選択した実選択キャラを特定するIDが使用キャラID463に登録される。
【0122】
次に、ステップS76で、プロセッサ31は、キャラクタ偽装判定処理を実行する。当該処理は、上記ステップS32の処理と同様であるため詳細説明は割愛するが、この処理によって、新たに入室してきたリモートプレイヤについての偽装の要否の判定が行われる。すなわち、新たに入室してきたリモートプレイヤの実選択キャラがステージ部屋内に既存のリモートキャラまたはリプレイゴーストと重複している場合、当該リモートプレイヤのリモートキャラを偽装するための設定が行われることになる。具体的には、当該設定として、上記のようなプレイヤアクター管理データ415の更新が行われる。
【0123】
次に、ステップS77で、プロセッサ31は、プレイヤアクター管理データ415に基づき、入室してきたプレイヤに対応するリモートキャラを配置する。
【0124】
次に、
図43のステップS78で、プロセッサ31は、いずれかのリモートプレイヤの退室が発生したか否かを判定する。また、これに併せて、プロセッサ31は、そのときに存在しているリプレイゴーストの再生が終了したか否かも判定する。当該判定の結果、リモートプレイヤの退室、または、リプレイゴーストの再生終了が発生した場合は(ステップS78でYES)、ステップS79で、プロセッサ31は、プレイヤアクター管理データ415から、退室したプレイヤに係るリモートキャラのデータを削除する。あるいは、プロセッサ31は、再生が終了したリプレイゴーストのデータをプレイヤアクター管理データ415から削除する。
【0125】
一方、リモートプレイヤの退室、リプレイゴーストの再生終了のいずれも発生していない場合は(ステップS78でNO)、上記ステップS79の処理はスキップされる。その後、プロセッサ31は、入退室チェック処理を終了する。
【0126】
図38に戻り、次に、ステップS36で、プロセッサ31は、リプレイゴーストを出現させる条件が満たされたか否かを判定する。本例では、上記のようにステージ部屋に入室しているのがローカルプレイヤ1人のみの状態で中間地点まで進んだ場合に、当該条件が満たされたと判定される。当該判定の結果、当該条件が満たされていない場合は(ステップS36でNO)、後述のステップS38に処理が進められる。一方、満たされた場合は(ステップS36でYES)、ステップS37で、プロセッサ31は、ゴースト配置処理を実行する。
【0127】
図44は、上記ゴースト配置処理の詳細を示すフローチャートである。まず、ステップS81で、プロセッサ31は、ゲームサーバ1から現在プレイ中のステージに係るリプレイデータを取得する。当該取得されるリプレイデータの内容はどのようなものでもよいが、例えば、ゲームサーバ1においてランダムで選択されたリプレイデータが取得される。またここでは、3体分のリプレイデータが取得されるものとする。そして、プロセッサ31は、当該リプレイデータに基づき、リプレイゴーストの情報をプレイヤアクター管理データ415に登録する。
【0128】
次に、ステップS82で、プロセッサ31は、上記キャラクタ偽装判定処理を実行する。これは、上記取得したリプレイデータを新たに入室してきたリモートプレイヤとみなして、上記キャラクタ偽装判定処理を実行するものである。そのため、上記取得したリプレイデータにおいて使用されているキャラクタがローカルキャラと同じキャラクタだった場合、偽装されたリプレイゴーストを出現させるための設定が行われることになる。
【0129】
次に、ステップS83で、プロセッサ31は、プレイヤアクター管理データ415に基づき、リプレイゴーストをステージ内に配置する。そして、プロセッサ31は、リプレイの再生を開始する。これにより、ステージ上にリプレイゴーストが出現することになる。以上で、ゴースト配置処理は終了する。
【0130】
次に、
図39のステップS38で、プロセッサ31は、同じステージ部屋の他のゲーム装置3から、リモートプレイヤの操作内容等を示す他機状況データを受信する。次に、ステップS39で、プロセッサ31は、操作データ418および他のゲーム装置から受信した他機状況データに基づき、いずれかのプレイヤが設置オブジェクトを設置する操作を行ったか否かを判定する。当該判定の結果、設置操作が行われていた場合(ステップS39でYES)、ステップS40で、プロセッサ31は、設置処理を実行する。
図45は、当該設置処理の詳細を示すフローチャートである。
図45において、まず、ステップS91で、プロセッサ31は、設置操作を行ったプレイヤに対応する、プレイヤアクター管理データ415の使用キャラID463を取得する。次に、ステップS92で、プロセッサ31は、設置操作に係る設置物オブジェクトを示す設置物ID431と、上記取得した使用キャラID463とに基づき、設置物管理データ416における設置物特定情報473の内容を決定する。そして、プロセッサ31は、当該決定した設置物特定情報473の内容と新たに指定された配置位置の情報を用いて、設置物管理データ416を更新する。これにより、偽装キャラが設置物を設置した場合は、偽装キャラに対応する設置物オブジェクトが設置されることになる。以上で、設置処理は終了する。
【0131】
図39に戻り、上記ステップS39の判定の結果、設置操作が行われていない場合は(ステップS39でNO)、上記ステップS40の処理はスキップされる。
【0132】
次に、ステップS41で、プロセッサ31は、操作データ418、他機状況データ、リプレイデータに基づいて、各プレイヤアクターの移動制御を行う。次に、ステップS42で、プロセッサ31は、その他の各種ゲーム処理を行う。具体的には、各種オブジェクトの衝突判定およびその判定結果に基づく処理が行われる。また、これらの処理の一環として、メッセージマスタデータ407に基づいて上述したようなメッセージを適宜表示する処理も行われる。この際、メッセージ内でキャラクタ名を用いる場合は、上記プレイヤアクター管理データ415の使用キャラID463に基づいて、用いるキャラクタ名が決定される。そのため、キャラクタの偽装内容が反映されてメッセージが表示されることになる。
【0133】
次に、ステップS43で、プロセッサ31は、プレイヤアクター管理データ415、設置物管理データ416、および、上記の各種ゲーム処理の結果に基づいて、ゲーム画像の描画処理を行う。
【0134】
、
次に、ステップS44で、プロセッサ31は、ローカルキャラがステージクリアしたか否かを判定する。当該判定の結果、まだクリアしていない場合は(ステップS44でNO)、上記ステップS35に戻り、処理が繰り返される。一方、クリアした場合は(ステップS44でYES)、ステップS45で、プロセッサ31は、ステージクリアに伴う各種処理を実行した後、ステージ部屋から退室する処理を行う。その後、ステージ処理は終了する。
【0135】
以上で、ステージプレイ処理の詳細説明を終了する。
【0136】
[ゲームサーバ1の処理]
次に、ゲームサーバ1で実行される処理の詳細について説明する。
図46は、ゲームサーバ1に係る処理の詳細を示すフローチャートである。
図46において、まず、ステップS101で、ゲームサーバ1のプロセッサ11は、マッチング処理を実行する。この処理では、所定のゲーム装置からの、ワールド部屋またはステージ部屋のマッチング要求に応じて、プレイヤ同士のマッチング、すなわち、各プレイヤが入室するワールド部屋またはステージ部屋を決定する処理が実行される。また、その結果をゲーム装置3に送信する処理も実行される。
【0137】
次に、ステップS102で、プロセッサ11は、ワールド部屋およびステージ部屋を管理する処理を行う。この処理では、新たな部屋を作成する処理、プレイヤの補填を行う処理、プレイヤがいなくなった部屋を削除する処理等、各部屋を管理する処理が行われる。
【0138】
次に、ステップS103で、プロセッサ11は、リプレイデータを管理する処理を行う。この処理では、各ゲーム装置3から受信したリプレイデータに基づいてリプレイ管理データ306への登録や更新が行われる。また、ゲーム装置3からの要求に応じて、リプレイデータを送信する処理も適宜行われる。
【0139】
その後、プロセッサ11は、上記ステップS101に戻り、処理を繰り返す。以上で、ゲームサーバ1に係る処理の詳細説明は終了する。
【0140】
このように、本実施形態では、複数のキャラクタから使用するキャラを選んでプレイするマルチプレイゲームにおいて、同じ種類のキャラクタが2体以上表示されないようにしている。上記ワールドマップ画面においては、プレイヤの実選択キャラと他のプレイヤの実選択キャラが重複する場合、他のプレイヤのキャラクタは表示しないようにしている。また、上記ステージのプレイにおいては、実選択キャラが重複する場合は、他のプレイヤが操作するキャラクタを、実選択キャラ以外のキャラクタに偽装することで、ステージ内で同じキャラクタが表示されないようにしている。これによって、プレイヤ自身が操作するキャラクタが見分けやすくなる。特に、ステージプレイにおいて、自身が操作するキャラクタが見分けやすくなるため、同じキャラクタが表示されることで各プレイヤのプレイが阻害されるということもなくなる。また、マッチングの際に、実選択キャラが重複しているかどうかを考慮する必要もないため、実選択キャラが重複していることによってマッチング待ちが発生することもない。
【0141】
[変形例]
なお、上記実施形態では、12体のキャラクタから1体を操作対象のキャラクタとして選択するという例で説明した。そして、偽装先を決める際も、この12体の中から選ぶというような例を示した。この点、他の実施形態では、上記12体のキャラクタを更に複数のタイプに分類し、偽装先を決定する際、同じタイプの中から決定するようにしてもよい。例えば、上記12体のキャラクタについて、6体を「人間タイプ」のキャラクタ、6体を「動物タイプ」のキャラクタとしてデザインおよび分類する。また、人間タイプのキャラクタと動物タイプのキャラクタとでは、キャラクタの性能(例えば、ジャンプ力)に差が設けられているとする。このような場合に、上記の処理で偽装先を決定する際、実選択キャラが「人間タイプ」であれば、偽装先も「人間タイプ」のキャラクタの中から決定し、実選択キャラが「動物タイプ」であれば、偽装先も「動物タイプ」のキャラクタの中から決定するようにしてもよい。これにより、上記のようにタイプごとにキャラクタの性能に差がある場合に、偽装されたキャラクタの動きを見て違和感が生じにくくなる。
【0142】
また、上記のような表示制御を行うゲームモードと、当該表示制御を行わないゲームモードとを使い分けるようにしてもよい。例えば、上記のような不特定多数のプレイヤとのマッチングを行ってマルチプレイを行うゲームモードの場合は、上述したような偽装等の表示制御を行う。他方、当該表示制御を行わないゲームモードとして、以下のようなゲームモードがあってもよい。例えば、上記のような不特定多数とのマッチングではなく、いわゆる「フレンド」等の、特定のプレイヤだけが集まった通信グループに参加してマルチプレイを行うゲームモードである。また例えば、ネットワークを利用せずに1台のゲーム装置で複数のコントローラを用いて複数のプレイヤでマルチプレイを行うゲームモード(ローカルマルチプレイ)があってもよい。このようなゲームモードでは、キャラクタを選択させる時点で、同じキャラクタは選択できないような制御を行い、上述した表示制御に係る処理は行わないようにしてもよい。この場合は、ゲームのプレイ開始前にプレイヤ間で直接的にコミュニケーションを図ることもできると考えられ、各プレイヤが使用するキャラクタについて、プレイヤ間で直接的に調整することも可能と考えられるためである。
【符号の説明】
【0143】
1 ゲームサーバ
3 情報処理端末(ゲーム装置)
4 コントローラ
5 表示部
11 プロセッサ
12 記憶部
31 プロセッサ
32 記憶部