(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024073959
(43)【公開日】2024-05-30
(54)【発明の名称】情報処理プログラム、ゲームシステム、ゲーム装置、および情報処理方法
(51)【国際特許分類】
A63F 13/30 20140101AFI20240523BHJP
A63F 13/45 20140101ALI20240523BHJP
A63F 13/48 20140101ALI20240523BHJP
【FI】
A63F13/30
A63F13/45
A63F13/48
【審査請求】未請求
【請求項の数】21
【出願形態】OL
(21)【出願番号】P 2022184964
(22)【出願日】2022-11-18
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】森村 尚也
(72)【発明者】
【氏名】アルチュール ドゥナルドゥ
(72)【発明者】
【氏名】ウカシュ フロンク
(72)【発明者】
【氏名】エメリック パスクアル
(57)【要約】
【課題】通信によりゲームプログラムの多人数プレイを実現する場合に、通信が切断された場合などであっても、強制終了などの予期せぬ動作を抑制できる仕組みを提供する。
【解決手段】情報処理プログラムは、情報処理装置のコンピュータに、他の情報処理装置と通信を行わせ、多人数プレイ可能なゲームプログラムを、第1のエミュレータによって、操作入力に基づいて実行させ、操作入力に関するデータを他の情報処理装置に送信させ、第1のエミュレータによって実行されるゲームの画像をディスプレイに出力させ、他の情報処理装置から、他のプレイヤの操作入力に関するデータを取得させ、ゲームプログラムを、第2のエミュレータによって、取得された他のプレイヤの操作入力に基づいて実行させ、ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを第1のエミュレータと第2のエミュレータとの間で送受信させることでゲームの多人数プレイを進行させる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
他の情報処理装置と通信を行わせ、
多人数プレイ可能なゲームプログラムを、第1のエミュレータによって、操作入力に基づいて実行させ、
前記操作入力に関するデータを前記他の情報処理装置に送信させ、
前記第1のエミュレータによって実行されるゲームの画像をディスプレイに出力させ、
前記他の情報処理装置から、他のプレイヤの操作入力に関するデータを取得させ、
前記ゲームプログラムを、第2のエミュレータによって、取得された前記他のプレイヤの操作入力に基づいて実行させ、
前記ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを前記第1のエミュレータと前記第2のエミュレータとの間で送受信させることで前記ゲームの多人数プレイを進行させる、情報処理プログラム。
【請求項2】
前記コンピュータにさらに、
前記他の情報処理装置から、前記他のプレイヤの前記多人数プレイへの参加要求があった場合に、
前記ゲームプログラムが実行中のときは、前記他のプレイヤが前記多人数プレイへ参加していない状態を継続させて、
前記ゲームプログラムの前記第1のエミュレータによる実行を開始する場面に遷移した場合に、前記他のプレイヤを前記多人数プレイへ参加させて前記第1のエミュレータと前記第2のエミュレータに基づいた多人数プレイを実行させ、
前記多人数プレイ中において、ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断させ、さらに前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われた場合に、前記ゲームプログラムを終了させる、請求項1に記載の情報処理プログラム。
【請求項3】
前記多人数プレイ可能なゲームプログラムは、多人数プレイ可能な複数のゲームプログラムのいずれかであって、
前記ゲームプログラムの前記第1のエミュレータによる実行を開始する場面は、前記複数のゲームプログラムのいずれを開始するか選択する場面である、請求項2に記載の情報処理プログラム。
【請求項4】
前記コンピュータにさらに、
前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われて前記ゲームプログラムが終了された場合に、前記複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる、請求項3に記載の情報処理プログラム。
【請求項5】
前記コンピュータにさらに、
前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われて前記ゲームプログラムが終了された場合に、前記多人数プレイに参加しているプレイヤが参加している状態を維持したまま、前記複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる、請求項4に記載の情報処理プログラム。
【請求項6】
プロセッサを含む複数の情報処理装置を備え、
前記複数の情報処理装置の各々のプロセッサは、
前記複数の情報処理装置間で通信を行い、
多人数プレイへの参加数と同数の複数のエミュレータによって、多人数プレイ可能なゲームプログラムをそれぞれ実行し、
第1のエミュレータによって、プレイヤの操作入力に基づいて前記ゲームプログラムを実行し、
前記プレイヤの操作入力に関するデータを他の前記情報処理装置それぞれに送信し、
前記第1のエミュレータによって実行されるゲームの画像をディスプレイに出力し、
他の情報処理装置それぞれから、他のプレイヤそれぞれの操作入力に関するデータを取得し、
取得された前記他のプレイヤそれぞれの操作入力に基づいて、第1のエミュレータ以外のエミュレータそれぞれによって、前記ゲームプログラムを実行し、
前記ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを前記複数のエミュレータ間で送受信させることで前記ゲームの多人数プレイを進行する、ゲームシステム。
【請求項7】
前記複数の情報処理装置の各々のプロセッサはさらに、
前記他の情報処理装置から、前記他のプレイヤの前記多人数プレイへの参加要求があった場合に、
前記ゲームプログラムが実行中のときは、前記他のプレイヤが前記多人数プレイへ参加していない状態を継続し、
前記ゲームプログラムの前記第1のエミュレータによる実行を開始する場面に遷移した場合に、前記他のプレイヤを前記多人数プレイへ参加させて、前記多人数プレイへの参加数と同数の複数のエミュレータを実行して、前記第1のエミュレータと他のエミュレータとに基づいた多人数プレイを実行する、請求項6記載のゲームシステム。
【請求項8】
前記複数の情報処理装置の各々のプロセッサはさらに、
前記多人数プレイ中において、ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断し、さらに前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われた場合に、前記ゲームプログラムを終了する、請求項7に記載のゲームシステム。
【請求項9】
前記多人数プレイ可能なゲームプログラムは、多人数プレイ可能な複数のゲームプログラムのいずれかであって、
前記ゲームプログラムの前記第1のエミュレータによる実行を開始する場面は、前記複数のゲームプログラムのいずれを開始するか選択する場面である、請求項8に記載のゲームシステム。
【請求項10】
前記複数の情報処理装置の各々のプロセッサはさらに、
前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われて前記ゲームプログラムが終了された場合に、前記複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる、請求項9に記載のゲームシステム。
【請求項11】
前記複数の情報処理装置の各々のプロセッサはさらに、
前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われて前記ゲームプログラムが終了された場合に、前記多人数プレイに参加しているプレイヤが参加している状態を維持したまま、前記複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる、請求項10に記載のゲームシステム。
【請求項12】
プロセッサを含むゲーム装置であって、
前記ゲーム装置のプロセッサは、
多人数プレイ可能なゲームプログラムを、第1のエミュレータによって、操作入力に基づいて実行し、
前記操作入力に関するデータを他のゲーム装置に送信し、
前記第1のエミュレータによって実行されるゲームの画像をディスプレイに出力し、
前記他のゲーム装置から、他のプレイヤの操作入力に関するデータを取得し、
前記ゲームプログラムを、第2のエミュレータによって、取得された前記他のプレイヤの操作入力に基づいて実行し、
前記ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを前記第1のエミュレータと前記第2のエミュレータとの間で送受信させることで前記ゲームの多人数プレイを進行する、ゲーム装置。
【請求項13】
前記ゲーム装置のプロセッサはさらに、
前記他のゲーム装置から、前記他のプレイヤの前記多人数プレイへの参加要求があった場合に、
前記ゲームプログラムが実行中のときは、前記他のプレイヤが前記多人数プレイへ参加していない状態を継続し、
前記ゲームプログラムの前記第1のエミュレータによる実行を開始する場面に遷移した場合に、前記他のプレイヤを前記多人数プレイへ参加させて前記第1のエミュレータと前記第2のエミュレータに基づいた多人数プレイを実行し、
前記多人数プレイ中において、ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断し、さらに前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われた場合に、前記ゲームプログラムを終了する、請求項12に記載のゲーム装置。
【請求項14】
前記多人数プレイ可能なゲームプログラムは、多人数プレイ可能な複数のゲームプログラムのいずれかであって、
前記ゲームプログラムの前記第1のエミュレータによる実行を開始する場面は、前記複数のゲームプログラムのいずれを開始するか選択する場面である、請求項13に記載のゲーム装置。
【請求項15】
前記ゲーム装置のプロセッサはさらに、
前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われて前記ゲームプログラムが終了された場合に、前記複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる、請求項14に記載のゲーム装置。
【請求項16】
前記ゲーム装置のプロセッサはさらに、
前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われて前記ゲームプログラムが終了された場合に、前記多人数プレイに参加しているプレイヤが参加している状態を維持したまま、前記複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる、請求項15に記載のゲーム装置。
【請求項17】
ゲーム装置のプロセッサが、多人数プレイ可能なゲームプログラムを、第1のエミュレータによって、操作入力に基づいて実行し、
前記プロセッサが、前記操作入力に関するデータを他のゲーム装置に送信し、
前記プロセッサが、前記第1のエミュレータによって実行されるゲームの画像をディスプレイに出力し、
前記プロセッサが、前記他のゲーム装置から、他のプレイヤの操作入力に関するデータを取得し、
前記プロセッサが、前記ゲームプログラムを、第2のエミュレータによって、取得された前記他のプレイヤの操作入力に基づいて実行し、
前記プロセッサが、前記ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを前記第1のエミュレータと前記第2のエミュレータとの間で送受信させることで前記ゲームの多人数プレイを進行する、情報処理方法。
【請求項18】
前記プロセッサはさらに、
前記他のゲーム装置から、前記他のプレイヤの前記多人数プレイへの参加要求があった場合に、
前記ゲームプログラムが実行中のときは、前記他のプレイヤが前記多人数プレイへ参加していない状態を継続し、
前記ゲームプログラムの前記第1のエミュレータによる実行を開始する場面に遷移した場合に、前記他のプレイヤを前記多人数プレイへ参加させて前記第1のエミュレータと前記第2のエミュレータに基づいた多人数プレイを実行し、
前記プロセッサは、前記多人数プレイ中において、ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断し、さらに前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われた場合に、前記ゲームプログラムを終了する、請求項17に記載の情報処理方法。
【請求項19】
前記多人数プレイ可能なゲームプログラムは、多人数プレイ可能な複数のゲームプログラムのいずれかであって、
前記ゲームプログラムの前記第1のエミュレータによる実行を開始する場面は、前記複数のゲームプログラムのいずれを開始するか選択する場面である、請求項18に記載の情報処理方法。
【請求項20】
前記プロセッサはさらに、
前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われて前記ゲームプログラムが終了された場合に、前記複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる、請求項19に記載の情報処理方法。
【請求項21】
前記プロセッサはさらに、
前記多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われて前記ゲームプログラムが終了された場合に、前記多人数プレイに参加しているプレイヤが参加している状態を維持したまま、前記複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる、請求項20に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理プログラム、ゲームシステム、ゲーム装置、および情報処理方法に関する。
【背景技術】
【0002】
従前の携帯ゲーム機において、多人数プレイを実現する場合には、有線の通信ケーブルで携帯ゲーム機同士を接続するという方法が採用されることがあった。例えば、特開2003-71137号公報(特許文献1)は、4台のゲーム機と通信ケーブルとで構成される通信ゲームシステムを開示する。
【0003】
このような通信ゲームシステムにおいて、通信ケーブルを介してゲーム機を物理的に接続する操作は、プレイヤのゲームへの参加とほぼ同様の意味を持つ。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したような従来の携帯ゲーム機で実行されるゲームプログラムは、有線の通信ケーブルでの接続を前提として作成されていると想定されるため、当該ゲームプログラムをエミュレータで実行するとともに、ネットワークを介して多人数プレイを実現しようとした場合には、予期せぬ動作を生じる可能性もある。例えば、プレイヤの参加/離脱は、当該ゲームプログラムから見れば、通信ケーブルの挿抜に相当することになり、ゲーム中の任意のタイミングでプレイヤが参加/離脱すると、ゲームプログラムの仕様によっては、強制終了などの予期せぬ動作を生じる可能性もある。
【0006】
本開示は、通信によりゲームプログラムの多人数プレイを実現する場合に、通信が切断された場合などであっても、強制終了などの予期せぬ動作を抑制できる仕組みを提供する。
【課題を解決するための手段】
【0007】
(構成1)ある実施の形態に従う情報処理プログラムは、情報処理装置のコンピュータに、他の情報処理装置と通信を行わせ、多人数プレイ可能なゲームプログラムを、第1のエミュレータによって、操作入力に基づいて実行させ、操作入力に関するデータを他の情報処理装置に送信させ、第1のエミュレータによって実行されるゲームの画像をディスプレイに出力させ、他の情報処理装置から、他のプレイヤの操作入力に関するデータを取得させ、ゲームプログラムを、第2のエミュレータによって、取得された他のプレイヤの操作入力に基づいて実行させ、ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを第1のエミュレータと第2のエミュレータとの間で送受信させることでゲームの多人数プレイを進行させる。
【0008】
構成1によれば、多人数プレイにおいて送受信されるデータが規定されたゲームプログラムをエミュレータによって実行する際に、当該規定されたデータを複数の情報処理装置の間で送受信するのではなく、単一の情報処理装置において生成されたエミュレータ間で送受信する。このようなエミュレータ間のデータ送受信を採用することで、他の情報処理装置との通信が切断された場合などであっても、操作情報などが存在しない状態として処理を継続できるので、ゲームプログラムの実行が強制終了されない。これによって、通信が切断された場合などであっても、強制終了などの予期せぬ動作を抑制できる。また、情報処理装置において生成されるエミュレータによって上述したような処理が実現されるため、ゲームプログラム自体を改変する必要などがない。
【0009】
(構成2)構成1において、情報処理プログラムは、コンピュータにさらに、他の情報処理装置から、他のプレイヤの多人数プレイへの参加要求があった場合に、ゲームプログラムが実行中のときは、他のプレイヤが多人数プレイへ参加していない状態を継続させて、ゲームプログラムの第1のエミュレータによる実行を開始する場面に遷移した場合に、他のプレイヤを多人数プレイへ参加させて第1のエミュレータと第2のエミュレータに基づいた多人数プレイを実行させ、多人数プレイ中において、ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断させ、さらに多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われた場合に、ゲームプログラムを終了させる。
【0010】
構成2によれば、多人数プレイの進行中に他の情報処理装置との接続/切断が想定されていなかった(過去の)ゲームプログラムをエミュレータで実行する場合であっても、ゲームプログラム自体は改変することなくそのままの状態としつつ、多人数プレイを正常に開始および終了できる。
【0011】
(構成3)構成1または2において、多人数プレイ可能なゲームプログラムは、多人数プレイ可能な複数のゲームプログラムのいずれかであって、ゲームプログラムの第1のエミュレータによる実行を開始する場面は、複数のゲームプログラムのいずれを開始するか選択する場面である。
【0012】
構成3によれば、多人数プレイでプレイするゲームプログラムを選択する場面において、第1のエミュレータを生成できるので、多人数プレイに必要な処理を事前に実行できる。
【0013】
(構成4)構成1~3のいずれかにおいて、情報処理プログラムは、コンピュータにさらに、多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われてゲームプログラムが終了された場合に、複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる。
【0014】
構成4によれば、多人数プレイによりゲームプログラムが終了した後であっても、同じプレイヤで再度多人数プレイを行いたい場合に、少ない操作で、多人数プレイを行うゲームプログラムを選択できる。
【0015】
(構成5)構成1~4のいずれかにおいて、情報処理プログラムは、コンピュータにさらに、多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われてゲームプログラムが終了された場合に、多人数プレイに参加しているプレイヤが参加している状態を維持したまま、複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる。
【0016】
構成5によれば、多人数プレイによりゲームプログラムが終了した後であっても、同じプレイヤで多人数プレイをすぐに開始できる。
【0017】
(構成6)別の実施の形態に従うゲームシステムは、プロセッサを含む複数の情報処理装置を含む。複数の情報処理装置の各々のプロセッサは、複数の情報処理装置間で通信を行い、多人数プレイへの参加数と同数の複数のエミュレータによって、多人数プレイ可能なゲームプログラムをそれぞれ実行し、第1のエミュレータによって、プレイヤの操作入力に基づいてゲームプログラムを実行し、プレイヤの操作入力に関するデータを他の情報処理装置それぞれに送信し、第1のエミュレータによって実行されるゲームの画像をディスプレイに出力し、他の情報処理装置それぞれから、他のプレイヤそれぞれの操作入力に関するデータを取得し、取得された他のプレイヤそれぞれの操作入力に基づいて、第1のエミュレータ以外のエミュレータそれぞれによって、ゲームプログラムを実行し、ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを複数のエミュレータ間で送受信させることでゲームの多人数プレイを進行する。構成6によれば、構成1と同様の効果が得られる。
【0018】
(構成7)構成6において、複数の情報処理装置の各々のプロセッサはさらに、他の情報処理装置から、他のプレイヤの多人数プレイへの参加要求があった場合に、ゲームプログラムが実行中のときは、他のプレイヤが多人数プレイへ参加していない状態を継続し、ゲームプログラムの第1のエミュレータによる実行を開始する場面に遷移した場合に、他のプレイヤを多人数プレイへ参加させて、多人数プレイへの参加数と同数の複数のエミュレータを実行して、第1のエミュレータと他のエミュレータとに基づいた多人数プレイを実行する。
【0019】
構成7によれば、多人数プレイの進行中に他の情報処理装置との接続/切断が想定されていなかった(過去の)ゲームプログラムをエミュレータで実行する場合であっても、ゲームプログラム自体は改変することなくそのままの状態としつつ、多人数プレイを正常に開始できる。
【0020】
(構成8)構成6または7において、複数の情報処理装置の各々のプロセッサはさらに、多人数プレイ中において、ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断し、さらに多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われた場合に、ゲームプログラムを終了する。
【0021】
構成8によれば、多人数プレイの進行中に他の情報処理装置との接続/切断が想定されていなかった(過去の)ゲームプログラムをエミュレータで実行する場合であっても、ゲームプログラム自体は改変することなくそのままの状態としつつ、多人数プレイを正常に終了できる。
【0022】
(構成9)構成6~8のいずれかにおいて、多人数プレイ可能なゲームプログラムは、多人数プレイ可能な複数のゲームプログラムのいずれかであって、ゲームプログラムの第1のエミュレータによる実行を開始する場面は、複数のゲームプログラムのいずれを開始するか選択する場面である。構成9によれば、構成3と同様の効果が得られる。
【0023】
(構成10)構成6~9のいずれかにおいて、複数の情報処理装置の各々のプロセッサはさらに、多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われてゲームプログラムが終了された場合に、複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる。構成10によれば、構成4と同様の効果が得られる。
【0024】
(構成11)構成6~10のいずれかにおいて、複数の情報処理装置の各々のプロセッサはさらに、多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われてゲームプログラムが終了された場合に、多人数プレイに参加しているプレイヤが参加している状態を維持したまま、複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる。構成11によれば、構成5と同様の効果が得られる。
【0025】
(構成12)さらに別の実施の形態に従えば、プロセッサを含むゲーム装置が提供される。ゲーム装置のプロセッサは、多人数プレイ可能なゲームプログラムを、第1のエミュレータによって、操作入力に基づいて実行し、操作入力に関するデータを他のゲーム装置に送信し、第1のエミュレータによって実行されるゲームの画像をディスプレイに出力し、他のゲーム装置から、他のプレイヤの操作入力に関するデータを取得し、ゲームプログラムを、第2のエミュレータによって、取得された他のプレイヤの操作入力に基づいて実行し、ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを第1のエミュレータと第2のエミュレータとの間で送受信させることでゲームの多人数プレイを進行する。構成12によれば、構成1と同様の効果が得られる。
【0026】
(構成13)構成12において、ゲーム装置のプロセッサはさらに、他のゲーム装置から、他のプレイヤの多人数プレイへの参加要求があった場合に、ゲームプログラムが実行中のときは、他のプレイヤが多人数プレイへ参加していない状態を継続し、ゲームプログラムの第1のエミュレータによる実行を開始する場面に遷移した場合に、他のプレイヤを多人数プレイへ参加させて第1のエミュレータと第2のエミュレータに基づいた多人数プレイを実行し、多人数プレイ中において、ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断し、さらに多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われた場合に、ゲームプログラムを終了する。構成13によれば、構成2と同様の効果が得られる。
【0027】
(構成14)構成12または13において、多人数プレイ可能なゲームプログラムは、多人数プレイ可能な複数のゲームプログラムのいずれかであって、ゲームプログラムの第1のエミュレータによる実行を開始する場面は、複数のゲームプログラムのいずれを開始するか選択する場面である。構成14によれば、構成3と同様の効果が得られる。
【0028】
(構成15)構成12~14のいずれかにおいて、ゲーム装置のプロセッサはさらに、多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われてゲームプログラムが終了された場合に、複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる。構成15によれば、構成4と同様の効果が得られる。
【0029】
(構成16)構成12~15のいずれかにおいて、ゲーム装置のプロセッサはさらに、多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われてゲームプログラムが終了された場合に、多人数プレイに参加しているプレイヤが参加している状態を維持したまま、複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる。構成16によれば、構成5と同様の効果が得られる。
【0030】
(構成17)さらに別の実施の形態に従う情報処理方法は、ゲーム装置のプロセッサが、多人数プレイ可能なゲームプログラムを、第1のエミュレータによって、操作入力に基づいて実行し、プロセッサが、操作入力に関するデータを他のゲーム装置に送信し、プロセッサが、第1のエミュレータによって実行されるゲームの画像をディスプレイに出力し、プロセッサが、他のゲーム装置から、他のプレイヤの操作入力に関するデータを取得し、プロセッサが、ゲームプログラムを、第2のエミュレータによって、取得された他のプレイヤの操作入力に基づいて実行し、プロセッサが、ゲームプログラムの多人数プレイにおいて送受信されるデータとして規定されたデータを第1のエミュレータと第2のエミュレータとの間で送受信させることでゲームの多人数プレイを進行する。構成17によれば、構成1と同様の効果が得られる。
【0031】
(構成18)構成17において、プロセッサはさらに、他のゲーム装置から、他のプレイヤの多人数プレイへの参加要求があった場合に、ゲームプログラムが実行中のときは、他のプレイヤが多人数プレイへ参加していない状態を継続し、ゲームプログラムの第1のエミュレータによる実行を開始する場面に遷移した場合に、他のプレイヤを多人数プレイへ参加させて第1のエミュレータと第2のエミュレータに基づいた多人数プレイを実行し、プロセッサは、多人数プレイ中において、ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断し、さらに多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われた場合に、ゲームプログラムを終了する。構成18によれば、構成2と同様の効果が得られる。
【0032】
(構成19)構成17または18において、多人数プレイ可能なゲームプログラムは、多人数プレイ可能な複数のゲームプログラムのいずれかであって、ゲームプログラムの第1のエミュレータによる実行を開始する場面は、複数のゲームプログラムのいずれを開始するか選択する場面である。構成19によれば、構成3と同様の効果が得られる。
【0033】
(構成20)構成17~19のいずれかにおいて、プロセッサはさらに、多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われてゲームプログラムが終了された場合に、複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる。構成20によれば、構成4と同様の効果が得られる。
【0034】
(構成21)構成17~20のいずれかにおいて、プロセッサはさらに、多人数プレイに参加している全プレイヤの情報処理装置から終了指示が行われてゲームプログラムが終了された場合に、多人数プレイに参加しているプレイヤが参加している状態を維持したまま、複数のゲームプログラムのいずれを開始するか選択する場面に遷移させる。構成21によれば、構成5と同様の効果が得られる。
【発明の効果】
【0035】
本開示によれば、通信による多人数プレイが想定されていなかったゲームプログラムを通信により多人数プレイを実現する場合に、通信が切断された場合などであっても、強制終了などの予期せぬ動作を抑制できる仕組みを実現できる。
【図面の簡単な説明】
【0036】
【
図1】本実施の形態に従うゲームシステムの構成例を示す模式図である。
【
図2】本実施の形態に従うゲームシステムの別の構成例を示す模式図である。
【
図3】本実施の形態に従うゲーム装置のハードウェア構成例を示す模式図である。
【
図4】本実施の形態に従うゲーム装置の機能構成例を示す模式図である。
【
図5】本実施の形態に従うゲーム装置同士のコネクションの一例を説明するための模式図である。
【
図6】本実施の形態に従うゲーム装置の別の機能構成例を示す模式図である。
【
図7】
図6に対応するゲームシステムの構成例を示す模式図である。
【
図8】本実施の形態に従うゲーム装置がやり取りするプレイヤ操作情報の一例を示す模式図である。
【
図9】本実施の形態に従うシステムを構成するゲーム装置がゲームプログラムを実行する場合の処理手順例を示すフローチャートである。
【
図10】本実施の形態に従うシステムを構成するゲーム装置がゲームプログラムを実行する場合の処理手順例を示すフローチャートである。
【
図11】本実施の形態に従うシステムを構成するゲーム装置がゲームプログラムを実行する場合の処理手順例を示すフローチャートである。
【
図12】本実施の形態に従うゲーム装置がモード選択を受け付けるためのユーザインターフェイス画面の一例を示す模式図である。
【
図13】本実施の形態に従うゲーム装置が実行対象のゲームプログラムの選択を受け付けるためのユーザインターフェイス画面の一例を示す模式図である。
【
図14】本実施の形態に従うゲーム装置が選択されたホストにおいてゲームプログラムが実行中であることを通知するためのユーザインターフェイス画面の一例を示す模式図である。
【
図15】本実施の形態に従うゲーム装置が実行中のゲームプログラムの途中終了に対するプレイヤからの同意を受け付けるためのユーザインターフェイス画面の一例を示す模式図である。
【
図16】本実施の形態に従うゲーム装置が画面共有モードにおいて提供するユーザインターフェイス画面の一例を示す模式図である。
【発明を実施するための形態】
【0037】
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0038】
[A.ゲームシステムの構成例]
まず、本実施の形態に従うゲームシステムの構成例について説明する。
【0039】
ゲームシステムは、1または複数の情報処理装置を含む。情報処理装置は、ゲームプログラムをエミュレータで実行できれば、どのようなハードウェア構成であってもよい。情報処理装置は、例えば、ゲーム装置、スマートフォン、タブレット、携帯電話、パーソナルコンピュータなどであってもよい。以下では、情報処理装置の一例として、コンピュータであるゲーム装置100を採用する構成例について説明する。
【0040】
図1は、本実施の形態に従うゲームシステム1の構成例を示す模式図である。
図1には、ネットワークの一例としてローカル通信により、4つのゲーム装置100-1~100-4(以下、「ゲーム装置100」と総称することもある。)が接続された構成例を示す。
【0041】
ゲーム装置100の各々は、1または複数の他のゲーム装置100と通信可能である。
図1に示すゲームシステム1において、ゲーム装置100間で相互にデータをやり取りできれば、どのような通信方式(有線方式および無線方式)を採用してもよい。また、ゲーム装置100同士が直接通信を行うようにしてもよいし(例えば、無線LANのアドホックモード)、中継装置を介して通信を行うようにしてもよい(例えば、無線LANのインフラストラクチャーモード)。
【0042】
図2は、本実施の形態に従うゲームシステム1の別の構成例を示す模式図である。
図2には、ネットワークの別の一例としてネットワーク10を介したオンライン接続により、4つのゲーム装置100-1~100-4が接続された構成例を示す。ゲーム装置100の各々は、ネットワーク10を介して、相互にデータをやり取りする。
【0043】
図2に示すゲームシステム1において、ゲーム装置100の各々がネットワーク10に接続する通信方式は、有線方式であってもよいし、無線方式であってもよい。
【0044】
図1および
図2のいずれにおいても、ゲーム装置100の各々は、ゲームプログラム118をエミュレータによって実行できる。ゲームプログラム118は、過去に販売されたアプリケーションであってもよい。
【0045】
例えば、ゲームプログラム118が多人数プレイ可能である場合には、ゲーム装置100の各々は、他のゲーム装置100と通信を行うとともに、多人数プレイ可能なゲームプログラム118を、エミュレータによって、(自装置のプレイヤによる)操作入力に基づいて実行する。また、ゲーム装置100の各々は、操作入力に関するデータを他のゲーム装置100に送信する。
【0046】
本明細書において、「多人数プレイ」は、複数のプレイヤ(ユーザ)が同じゲームプログラムを同時にプレイすることを意味する。あるいは、「多人数プレイ」は、複数のプレイヤ(ユーザ)が同じプレイヤグループに参加することを意味する。さらにあるいは、「多人数プレイ」は、ゲーム装置100の各々において、自装置におけるプレイヤの操作の情報だけではなく、他のゲーム装置100からの情報に基づいて、ゲームプログラム118を実行することを意味する。
【0047】
なお、すべてのゲーム装置100が任意の方法でゲームプログラム118を予め保持していてもよい。また、ゲームプログラム118を保持していないゲーム装置100が存在する場合には、ゲームプログラム118を保持しているゲーム装置100からダウンロードするようにしてもよい。あるいは、一部または全部のゲーム装置100は、サーバ(図示しない)などからゲームプログラム118を適宜ダウンロードするようにしてもよい。
【0048】
[B.ハードウェア構成例]
次に、本実施の形態に従うゲームシステム1を構成するゲーム装置100のハードウェア構成例について説明する。
【0049】
図3は、本実施の形態に従うゲーム装置100のハードウェア構成例を示す模式図である。
図3を参照して、ゲーム装置100は、一例として、コンピュータであり、1または複数のプロセッサ102と、メモリ104と、ストレージ110と、ディスプレイ106と、操作部108と、通信部120とを含む。これらのコンポーネントは、バス122を介して、互いにデータ通信可能に接続されている。
【0050】
プロセッサ102は、ゲーム装置100が提供する処理を実行するための処理主体である。プロセッサ102は、ストレージ110が格納しているプログラムのうち必要な部分をメモリ104に順次展開して実行する。
【0051】
メモリ104は、プロセッサ102がアクセス可能な揮発性記憶装置(記憶媒体)であり、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などが用いられてもよい。
【0052】
ストレージ110は、プロセッサ102がアクセス可能な不揮発性記憶装置(記憶媒体)であり、例えば、ハードディスクやSSD(Solid State Drive)などが用いられてもよい。ストレージ110は、例えば、光ディスクやカートリッジといったゲーム装置100に着脱可能な記憶媒体であってもよい。
【0053】
ストレージ110は、システムプログラム112と、実行管理プログラム114と、エミュレータプログラム116とを格納している。
【0054】
システムプログラム112は、プロセッサ102に、ゲーム装置100として機能するために必要な基本的な処理を実行させるためのコンピュータ読取可能命令を含む。
【0055】
実行管理プログラム114は、プロセッサ102に、ゲームプログラム118をエミュレータによって実行させるためのコンピュータ読取可能命令を含む。
【0056】
エミュレータプログラム116は、プロセッサ102に、ゲームプログラム118を実行するための環境を仮想的に構成させるためのコンピュータ読取可能命令を含む。
【0057】
本実施の形態に従う「情報処理プログラム」は、少なくとも実行管理プログラム114を含む。「情報処理プログラム」は、システムプログラム112および/またはエミュレータプログラム116を含んでいてもよい。プログラムをどのように実装するのかについては設計事項であり、要求性能および制約に応じて、適宜決定できる。
【0058】
1または複数のゲームプログラム118は、ストレージ110に格納されていてもよいし、プレイヤからの要求に応じて、サーバなどから適宜ダウンロードするようにしてもよい。この場合には、実行中のみメモリ104に展開されるものの、ストレージ110には格納されなくてもよい。
【0059】
一例として、ゲームプログラム118は、ゲーム装置100とは別のゲーム装置(例えば、ゲーム装置100より以前に開発された過去のゲーム装置)で実行されるように作成されたプログラムである。但し、ゲーム装置100で実行される場合であっても、ゲームプログラム118はオリジナルのままであってもよい。すなわち、ゲームプログラム118には、ゲーム装置100のエミュレータによって実行するための改変などはなされなくてもよい。
【0060】
ストレージ110には、ゲームプログラム118が実行されることで生成されたアプリデータ130が格納されてもよい。
【0061】
ディスプレイ106は、プロセッサ102で実行される情報処理の結果として生成されるゲーム画面を表示する。ディスプレイ106は複数であってもよい。また、1または複数の外部ディスプレイをゲーム装置100が利用する構成であってもよい。
【0062】
操作部108は、ゲーム装置100のプレイヤからの操作入力を受け付ける。操作部108は、例えば、押ボタン、操作レバー、タッチパネル、マウスなどを含む。操作部108は、ゲーム装置100とは別体の、有線または無線で接続されるゲームコントローラであってもよい。
【0063】
通信部120は、他のゲーム装置100との間の通信を行う。通信部120は、有線通信に必要なハードウェア、および/または、無線通信に必要はハードウェアを有していてもよい。なお、通信部120の処理の全部または一部をプロセッサ102により実現してもよい。
【0064】
図3には、ゲーム装置100を一体の装置として描くが、複数の装置の集合体として実装してもよい。すなわち、1つのゲーム装置100を複数の独立した装置の組み合わせによって実装してもよい。例えば、プロセッサ102、メモリ104およびストレージ110に相当するハードウェアを有する本体部と、ディスプレイ106および操作部108に相当するハードウェアを有する表示操作部とからなる分離した構成を採用してもよい。
【0065】
また、ゲーム装置100において実行される処理の少なくとも一部が、ネットワーク上に分散配置された1または複数の他の装置によって分散的に実行されるようにしてもよい。
【0066】
ゲーム装置100において実行される処理は、プロセッサ102がプログラムを実行することで実現されてもよいし、処理の一部または全部が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤード回路により実現されてもよい。そのため、本明細書において、「プロセッサ」との用語は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などのプログラムに記述されたコンピュータ読取可能命令に従って処理を実行する処理回路という通常の意味に加えて、ASICやFPGAなどのハードワイヤード回路も包含する。ASICやFPGAなどのハードワイヤード回路は、実行すべき処理に対応する回路が予め形成されている。さらに、本明細書の「プロセッサ」は、SoC(System on Chip)などの複数の機能が集約された回路も包含する。
【0067】
[C.機能構成例]
次に、本実施の形態に従うゲームシステム1を構成するゲーム装置100の機能構成例について説明する。
【0068】
図4は、本実施の形態に従うゲーム装置100の機能構成例を示す模式図である。
図4を参照して、ゲーム装置100は、主たる機能構成として、実行管理モジュール124と、エミュレータ126とを含む。実行管理モジュール124は、ゲーム装置100のプロセッサ102が実行管理プログラム114(
図3)を実行することで生成されるインスタンスであり、エミュレータ126は、ゲーム装置100のプロセッサ102がエミュレータプログラム116(
図3)を実行することで生成されるインスタンスである。なお、1つのゲーム装置100において、複数のエミュレータ126が生成されることもある。
【0069】
実行管理モジュール124は、エミュレータ126で実行されるゲームプログラム118の選択、選択されたゲームプログラム118のエミュレータ126での実行の管理、プレイヤ操作情報および共有データのやり取り、ならびに、ゲーム画面の出力などの処理を実行する。
【0070】
実行管理モジュール124は、プレイヤから自装置の操作部108に与えられた操作入力に関するデータ(プレイヤ操作情報150)を取得して、エミュレータ126へ提供する。また、実行管理モジュール124は、ゲームプログラム118をエミュレータ126で実行して得られるゲーム画面をディスプレイ106に出力する。さらに、実行管理モジュール124は、ゲームプログラム118をエミュレータ126で実行して得られる音声をスピーカ(図示しない)などから出力してもよい。
【0071】
エミュレータ126は、ゲームプログラム118を実行するための仮想環境であり、プレイヤ操作情報150を受けるとともに、実行結果としてゲーム画面および音声を出力する。エミュレータ126は、他のエミュレータ126との間で共有データ142をやり取りする。共有データ142は、従前の携帯ゲーム機が有線の通信ケーブルを介してやり取りしていたデータに相当する。共有データ142は、ゲームプログラム118の多人数プレイにおいて送受信されるデータとして規定されたものである。共有データ142は、多人数プレイを実現するために必要な情報を含み、例えば、キャラクタの座標やアクション指示などを含む。
【0072】
エミュレータ126は、ゲームプログラム118がデータをセーブするための仮想セーブ領域128を有している。仮想セーブ領域128は、ゲームプログラム118からみると、本来のセーブ領域のように振る舞う。仮想セーブ領域128自体は、メモリ104上に実装されてもよいが、セーブされたデータ(アプリデータ)は、ストレージ110に格納されるようにしてもよい(例えば、
図3のアプリデータ130など)。なお、エミュレータ126は、公知の技術を用いて実現できる。
【0073】
本実施の形態に従うゲームシステム1において、エミュレータ126同士は、有線の通信ケーブルを模擬するコネクションを構成することができる。
【0074】
図5は、本実施の形態に従うゲーム装置100同士のコネクションの一例を説明するための模式図である。
図5には、例えば、ゲーム装置100-1~100-4でゲームプログラム118を多人数プレイする場合の構成例を示す。ゲーム装置100のエミュレータ126同士は、実行管理モジュール124を介して、通信ケーブルを模擬するコネクション140を構成する。コネクション140は、仮想的あるいは論理的なデータ伝送路である。
【0075】
エミュレータ126は、従前の携帯ゲーム機が有線の通信ケーブルを介してやり取りしていた共有データ142を、コネクション140を介して他のエミュレータ126との間でやり取りする。コネクション140を構成することで、ゲームプログラム118から見れば、有線の通信ケーブルで接続された複数の携帯ゲーム機と同様の環境を提供できる。
【0076】
図4および
図5に示す機能構成例に代えて、通信が切断された場合などであっても、強制終了などの予期せぬ動作をより確実に抑制できる機能構成を採用してもよい。
【0077】
図6は、本実施の形態に従うゲーム装置100の別の機能構成例を示す模式図である。
図6には、例えば、ゲーム装置100-1~100-4でゲームプログラム118を多人数プレイする場合におけるゲーム装置100-1の機能構成例を示す。なお、他のゲーム装置100-2~100-4についても
図6と同様の機能構成となっている。
【0078】
図6を参照して、ゲーム装置100-1(および、ゲーム装置100-2~100-3)の各々は、多人数プレイに参加しているプレイヤ(ゲーム装置100)と同数のエミュレータ126(エミュレータ126-1~126-4)を含む。すなわち、エミュレータ126-1~126-4は、ゲーム装置100-1~100-4におけるゲームプログラム118の実行をそれぞれ担当する。
【0079】
エミュレータ126-1~126-4は、それぞれのプレイヤからゲーム装置100-1~100-4の操作部108に与えられた操作入力に関するデータ(プレイヤ操作情報150-1~150-4)を必要とする。そのため、ゲーム装置100の各々は、プレイヤによる操作入力(プレイヤ操作情報150)を他のゲーム装置100に送信するとともに、他のプレイヤによる他のゲーム装置100に対する操作入力(プレイヤ操作情報150)を受信する。
図6に示すプレイヤ操作情報150-1~150-4は、ゲーム装置100-1~100-4でそれぞれ取得された操作の内容を意味する。
【0080】
図6に示す例では、ゲーム装置100-1の実行管理モジュール124は、通信部120を介して、プレイヤ操作情報150-1を他のゲーム装置100に送信するとともに、通信部120を介して、他のゲーム装置100からプレイヤ操作情報150-2~150-4を取得する。
【0081】
プレイヤ操作情報150-1~150-4は、エミュレータ126-1~126-4へそれぞれ提供される。エミュレータ126-1~126-4は、プレイヤ操作情報150-1~150-4にそれぞれ基づいて、ゲームプログラム118をそれぞれ実行する。
【0082】
エミュレータ126-1~126-4の各々は、互いに独立している。但し、エミュレータ126-1~126-4同士は、実行管理モジュール124を介して、通信ケーブルを模擬するコネクション144を構成する。コネクション144は、
図5に示すコネクション140と同様に、仮想的あるいは論理的なデータ伝送路である。
【0083】
実行管理モジュール124は、エミュレータ126-1~126-4がゲームプログラム118をそれぞれ実行して得られるそれぞれのゲーム画面をディスプレイ106に出力できる。通常、ディスプレイ106には、自装置に対応するエミュレータ126(例えば、ゲーム装置100-1については、エミュレータ126-1)が生成したゲーム画面が出力される。
【0084】
但し、後述するように、いずれかのゲーム装置100において画面共有が指示された場合には、当該指示されたゲーム装置100(エミュレータ126)が生成するゲーム画面を出力するようにしてもよい。
【0085】
図7は、
図6に対応するゲームシステム1の構成例を示す模式図である。
図7を参照して、ゲームシステム1に含まれるゲーム装置100-1~100-4の各々は、4つのエミュレータ126-1~126-4を含む。
【0086】
ゲーム装置100-1のプレイヤがゲーム装置100-1の操作部108に与えた操作入力に関するデータ(プレイヤ操作情報150-1)は、ゲーム装置100-1~100-4の各々のエミュレータ126-1に入力される。
【0087】
同様に、ゲーム装置100-2のプレイヤがゲーム装置100-2の操作部108に与えた操作入力に関するデータ(プレイヤ操作情報150-2)は、ゲーム装置100-1~100-4の各々のエミュレータ126-2に入力される。
【0088】
同様に、ゲーム装置100-3のプレイヤがゲーム装置100-3の操作部108に与えた操作入力に関するデータ(プレイヤ操作情報150-2)は、ゲーム装置100-1~100-4の各々のエミュレータ126-3に入力される。
【0089】
同様に、ゲーム装置100-4のプレイヤがゲーム装置100-4の操作部108に与えた操作入力に関するデータ(プレイヤ操作情報150-2)は、ゲーム装置100-1~100-4の各々のエミュレータ126-4に入力される。
【0090】
ゲーム装置100-1~100-4の各々は、通常の状態では、自装置に対応するエミュレータ126により生成されるゲーム画面をディスプレイ106に出力する。
【0091】
プレイヤ操作情報150-1~150-4がゲーム装置100-1~100-4の各々のエミュレータ126-1~126-4にそれぞれ入力されることで、ゲーム装置100-1~100-4の各々において、多人数プレイがそれぞれ実現されることになる。
【0092】
このように、ゲーム装置100-1~100-4の各々は、多人数プレイ可能なゲームプログラム118を、自装置に対応するエミュレータによって、操作入力に基づいて実行するとともに、操作入力に関するデータ(プレイヤ操作情報150)を他のゲーム装置100に送信する。自装置に対応するエミュレータによって実行されるゲームの画像(ゲーム画面)を自装置のディスプレイ106に出力する。並行して、ゲーム装置100-1~100-4の各々は、他のゲーム装置から、他のプレイヤの操作入力に関するデータ(プレイヤ操作情報150)を取得し、ゲームプログラム118を、他のゲーム装置に対応するエミュレータによって、取得された他のプレイヤの操作入力に基づいて実行する。さらに、ゲームプログラム118の多人数プレイにおいて送受信されるデータとして規定されたデータ(共有データ142)を自装置に対応するエミュレータと他のゲーム装置に対応するエミュレータとの間で送受信させることでゲームの多人数プレイを進行する。
【0093】
図7に示すような構成を採用することで、ゲーム装置100-1~100-4の各々は、他のゲーム装置100との通信が切断されたとしても、他のゲーム装置100からのプレイヤ操作情報150が入力されないだけで、多人数プレイ自体の進行を維持できるため、多人数プレイが強制終了するような事態を回避できる。
【0094】
なお、
図6および
図7には、4つのゲーム装置100からなる構成例を示すが、ゲーム装置100の数はいずれであってもよい。
【0095】
[D.プレイヤ操作情報]
上述の
図6および
図7に示す構成例においては、ゲーム装置100の各々は、多人数プレイに参加しているすべてのプレイヤによるプレイを再現することになる。ここで、ゲーム装置100の間で多人数プレイの内容を同期させる場合には、以下のような処理を採用してもよい。
【0096】
例えば、プレイヤ操作情報150の通信遅延などが無視できない場合には、プレイヤ操作情報150に操作タイミングを特定できる情報を付加してもよい。
【0097】
図8は、本実施の形態に従うゲーム装置100がやり取りするプレイヤ操作情報150の一例を示す模式図である。
【0098】
図8を参照して、プレイヤ操作情報150-1~150-4の各々は、プレイヤが操作部108を操作したキーなどを示す操作内容154と、プレイヤが操作部108を操作したタイミングを示すフレーム番号152とを含む。
【0099】
フレーム番号152は、ゲームプログラム118をエミュレータ126で実行したサイクル数を示す番号である。
【0100】
エミュレータ126の各々は、プレイヤ操作情報150に含まれるフレーム番号152に基づいて、対応する操作内容154をゲームプログラム118の実行中に取り込むタイミングを決定する。なお、実行管理モジュール124および/またはエミュレータ126は、プレイヤ操作情報150を一時的に格納するためのバッファを有していてもよい。
【0101】
プレイヤ操作情報150がフレーム番号152を含むことで、通信遅延などが発生したとしても、ゲーム装置100間で実行される多人数プレイの内容が整合しないといった事態を回避できる。
【0102】
なお、一例としてフレーム番号152を用いる構成例について説明したが、プレイヤが操作を行ったタイミングを特定できる情報であれば、どのような情報を付加してもよい。例えば、時刻情報やカウンタ値などを付加してもよい。
【0103】
さらに、ゲーム装置100間で実行している多人数プレイの内容の整合性を定期的にチェックするようにしてもよい。例えば、ホストとして動作するゲーム装置100を正として、ゲストとして動作するゲーム装置100がホストの多人数プレイの内容と一致しているか否かを定期的に判断するようにしてもよい。また、一致していなければ、ホストとして動作するゲーム装置100と一致するように、メモリ上の値などを適宜修正するようにしてもよい。なお、「ホスト」および「ゲスト」については後述する。
【0104】
[E.ゲームプログラムを実行する場合の処理手順例]
次に、本実施の形態に従うゲームシステム1を構成するゲーム装置100がゲームプログラム118を実行する場合の処理手順例について説明する。
【0105】
多人数プレイ可能なゲームプログラム118については、複数のプレイヤが同時に参加することになる。そのため、ゲーム装置100は、一例として、多人数プレイへの参加を呼び掛ける「ホスト」と、「ホスト」の呼び掛けに参加する「ゲスト」との2つのモードを選択可能になっている。
【0106】
図9~
図11は、本実施の形態に従うシステムを構成するゲーム装置100がゲームプログラム118を実行する場合の処理手順例を示すフローチャートである。
図9~
図11に示す各ステップは、例えば、ゲーム装置100のプロセッサ102が、少なくとも、実行管理プログラム114(
図3)を実行することで実現されてもよい。
【0107】
図9を参照して、ゲーム装置100は、プレイヤからいずれのモードで動作することが指示されたかを判断する(ステップS100)。
【0108】
図12は、本実施の形態に従うゲーム装置100がモード選択を受け付けるためのユーザインターフェイス画面200の一例を示す模式図である。
図12を参照して、ユーザインターフェイス画面200は、ホストとして他のプレイヤからの参加を待つことを指示するボタン202と、ゲストとしてホストが開催するゲームに参加することを指示するボタン204とを含む。プレイヤは、ボタン202またはボタン204を選択する。
【0109】
再度
図9を参照して、プレイヤからホストとして動作することが指示されると(ステップS100において「ホスト」)、ゲーム装置100は、実行可能なゲームプログラム118の一覧画面をディスプレイ106に表示する(ステップS102)。
【0110】
ステップS102~S116の処理は、多人数プレイ可能なゲームプログラム118を選択する場面に相当する。ディスプレイ106には、多人数プレイ可能なゲームプログラム118のみが表示されるようにしてもよいし、あるいは、多人数プレイに対応していないゲームプログラム118も併せて表示されるようにしてもよい。後者の場合には、プレイヤが多人数プレイの可否を区別できるように異なる態様で表示してもよい。
【0111】
ゲーム装置100は、多人数プレイ可能なゲームプログラム118を選択する場面において、エミュレータ126を生成する(ステップS104)。すなわち、ゲームプログラム118のエミュレータ126による実行を開始する場面は、複数のゲームプログラム118のいずれを開始するか選択する場面であってもよい。
【0112】
ステップS104の実行後、ゲーム装置100は、ホストとして動作するので、他のプレイヤからの参加要求待ち状態となる。例えば、他のゲーム装置100から、通信に基づいて、(当該他のゲーム装置100を操作する)他のプレイヤの多人数プレイへの参加要求があった場合に、ステップS104の実行直後のように、ゲームプログラム118の実行開始前であれば、ゲーム装置100は、当該他のプレイヤを多人数プレイに参加させる。
【0113】
より具体的には、他のプレイヤからの参加要求を受けると(ステップS106においてYES)、ゲーム装置100は、参加要求を送信した他のゲーム装置100との間で、実行可能なゲームプログラム118の一覧画面を共有する(ステップS108)。また、ゲーム装置100は、参加要求を送信したゲーム装置100に対応するエミュレータ126を追加的に生成し、生成しているエミュレータ126間に通信ケーブルを模擬するコネクション144を構成する(ステップS110)。
【0114】
なお、
図9には明示していないが、他のプレイヤからの離脱要求を受けると、ゲーム装置100は、離脱要求を送信したゲーム装置100に対応するエミュレータ126を解放するとともに、エミュレータ126間のコネクション144を更新する。
【0115】
実行可能なゲームプログラム118の一覧画面を共有するゲーム装置100が多人数プレイに参加するゲーム装置100となる。なお、一覧画面の共有は、ホストからゲストに対して画面データ自体を送信するようにしてもよいし、ホストからのゲームプログラム118の選択情報を受けて、ゲストとして機能するゲーム装置100の各々が一覧画面を生成するようにしてもよい。
【0116】
図13は、本実施の形態に従うゲーム装置100が実行対象のゲームプログラムの選択を受け付けるためのユーザインターフェイス画面210の一例を示す模式図である。
図13を参照して、ユーザインターフェイス画面210は、現在参加しているプレイヤを示す参加プレイヤ表示212と、ゲームプログラム118の一覧表示214とを含む。
【0117】
ホストのプレイヤは、ユーザインターフェイス画面210において選択操作を行うことで、実行対象のゲームプログラム118を選択できる。選択されているゲームプログラム118には、選択されていることを示すオブジェクト216が重ねて表示される。
【0118】
再度
図9を参照して、他のプレイヤからの参加要求がなければ(ステップS106においてNO)、ステップS108およびS110の処理はスキップされる。
【0119】
また、ゲーム装置100は、自装置を操作するプレイヤによるゲームプログラム118の選択待ちの状態となる。プレイヤがいずれかのゲームプログラム118を選択すると(ステップS112においてYES)、ゲーム装置100は、選択されているゲームプログラム118を特定するためのオブジェクトを表示する(ステップS114)。このように、ホストとして動作するゲーム装置100は、プレイヤの操作に応じて、複数の多人数プレイ可能なゲームプログラム118のうち1つを選択する。すなわち、実行される多人数プレイ可能なゲームプログラム118は、多人数プレイ可能な複数のゲームプログラム118のいずれかであってもよい。
【0120】
プレイヤがいずれのゲームプログラム118も選択していなければ(ステップS112においてNO)、ステップS114の処理はスキップされる。
【0121】
続いて、ゲーム装置100は、ゲームプログラム118の実行開始が指示されたか否かを判断する(ステップS116)。ゲームプログラム118の実行開始が指示されなければ(ステップS116においてNO)、ステップS106以下の処理が繰り返される。
【0122】
ゲームプログラム118の実行開始が指示されると(ステップS116においてYES)、ステップS118以下の処理が実行される。ステップS118において、ゲーム装置100は、多人数プレイに参加しているプレイヤのゲーム装置100間の通信に基づいて、ゲームプログラム118の多人数プレイをエミュレータ126によって実行する。
【0123】
一方、プレイヤからゲストとして動作することが指示されると(ステップS100において「ゲスト」)、ゲーム装置100は、ホストとして動作している他のゲーム装置100および対応するプレイヤの一覧をディスプレイ106に表示する(ステップS120)。そして、ゲーム装置100は、自装置を操作するプレイヤによる他のゲーム装置100(あるいは、対応するプレイヤ)に対する選択待ちの状態となる。
【0124】
プレイヤがいずれかの他のゲーム装置100(あるいは、対応するプレイヤ)を選択すると(ステップS122においてYES)、ゲーム装置100は、選択されたゲーム装置100において、ゲームプログラム118が実行中であるか否かを判断する(ステップS124)。
【0125】
選択されたゲーム装置100において、ゲームプログラム118が実行中であれば(ステップS124においてYES)、ゲームプログラム118が実行中である旨を表示する(ステップS126)。そして、ステップS124以下の処理が繰り返される。
【0126】
図14は、本実施の形態に従うゲーム装置100が選択されたホストにおいてゲームプログラム118が実行中であることを通知するためのユーザインターフェイス画面230の一例を示す模式図である。
図14を参照して、ユーザインターフェイス画面230は、選択されたホストにおいて、ゲームプログラム118が現在実行中であることを示すメッセージ222を含む。
【0127】
このように、ホストとして動作するゲーム装置100は、(ゲストとして動作する)他のゲーム装置100から、他のプレイヤの多人数プレイへの参加要求があった場合に、ゲームプログラム118が実行中のときは、当該他のプレイヤが多人数プレイへ参加していない状態を継続させる。また、ゲストとして動作するゲーム装置100は、多人数プレイへの参加要求を(ホストとして動作する)他のゲーム装置100に送信した場合に、当該他のゲーム装置100によって多人数プレイに参加させられるまで、プレイヤにプレイを待機させるための表示(ユーザインターフェイス画面230)を行う。このような表示を行うことで、プレイヤが多人数プレイに参加する動機付けを失うことを防止できる。
【0128】
再度
図9を参照して、選択されたゲーム装置100において、ゲームプログラム118が実行中でなければ(ステップS124においてNO)、ゲーム装置100は、選択されたゲーム装置100との間で、実行可能なゲームプログラム118の一覧画面を共有する(ステップS128)。また、ゲーム装置100は、多人数プレイに既に参加しているゲーム装置100にそれぞれ対応するエミュレータ126を生成し、生成しているエミュレータ126間に通信ケーブルを模擬するコネクション144を構成する(ステップS130)。
【0129】
このように、ホストとして動作するゲーム装置100は、(ゲストとして動作する)他のゲーム装置100から、他のプレイヤの多人数プレイへの参加要求があった場合に、ゲームプログラム118のエミュレータ126による実行を開始する場面に遷移した場合(ステップS124においてNO)に、当該他のプレイヤを多人数プレイへ参加させる。なお、ステップS124の処理において、ホストとして動作するゲーム装置100とゲストして動作するゲーム装置100との間の通信は、維持されている。また、多人数プレイへ参加するプレイヤ(ゲーム装置100)の数の変化に応じて、ゲーム装置100の各々で生成されているエミュレータ126の数は変化する。そのため、他のプレイヤが多人数プレイへ参加すると、ゲーム装置100の各々においては、自装置に対応するエミュレータと、他のゲーム装置に対応するエミュレータとに基づいた多人数プレイが実行される。
【0130】
続いて、ゲーム装置100は、ゲームプログラム118の実行開始が指示されたか否かを判断する(ステップS132)。ゲームプログラム118の実行開始が指示されなければ(ステップS132においてNO)、ステップS132以下の処理が繰り返される。
【0131】
ゲームプログラム118の実行開始が指示されると(ステップS132においてYES)、ステップS118以下の処理が実行される。
【0132】
ステップS118において、ゲーム装置100は、生成しているエミュレータ126で、選択されているゲームプログラム118の実行を開始する。すなわち、ゲーム装置100において、生成されているすべてのエミュレータ126(多人数プレイに参加しているプレイヤと同数)がゲームプログラム118の実行をそれぞれ開始する。なお、多人数プレイに参加するゲーム装置100の各々がゲームプログラム118の実行を開始する。
【0133】
図10を参照して、ゲーム装置100は、プレイヤが操作部108を操作したか否かを判断する(ステップS140)。プレイヤが操作部108を操作していれば(ステップS140においてYES)、ゲーム装置100は、プレイヤ操作情報150を生成し、他のゲーム装置100に送信する(ステップS142)。ゲーム装置100は、プレイヤの自装置に対する操作入力を示すプレイヤ操作情報150を他のゲーム装置100に送信する。
【0134】
プレイヤが操作部108を操作していなければ(ステップS140においてNO)、ステップS142の処理はスキップされる。
【0135】
続いて、ゲーム装置100は、他のゲーム装置100からプレイヤ操作情報150を受信したか否かを判断する(ステップS144)。他のゲーム装置100からプレイヤ操作情報150を受信していれば(ステップS144においてYES)、ゲーム装置100は、受信したプレイヤ操作情報150を格納する(ステップS146)。このように、ゲーム装置100は、他のゲーム装置100から、他のプレイヤの操作入力を示すプレイヤ操作情報150を取得する。なお、多人数プレイに参加しているプレイヤ数に応じて、プレイヤ操作情報150を送信および取得する他のゲーム装置100の数は変化する。
【0136】
他のゲーム装置100からプレイヤ操作情報150を受信していなければ(ステップS144においてNO)、ステップS146の処理はスキップされる。
【0137】
ゲーム装置100は、プレイヤ操作情報および共有データ142に基づいて、それぞれのエミュレータ126でゲームプログラム118を実行する(ステップS148)。より具体的には、ゲーム装置100は、自装置に対するプレイヤの操作に基づいて、ゲームプログラム118を自装置に対応するエミュレータ126で実行する。並行して、ゲーム装置100は、他のゲーム装置100から取得したプレイヤ操作情報150に基づいて、ゲームプログラム118を他のゲーム装置100に対応するそれぞれのエミュレータ126で実行する。
【0138】
ゲーム装置100は、それぞれのエミュレータ126の実行結果に基づいて、エミュレータ126間で共有データ142を送受信する(ステップS150)。このように、ゲーム装置100は、共有データ142を自装置に対応するエミュレータ126と他のゲーム装置100に対応するエミュレータ126との間で送受信(あるいは、更新)することで、多人数プレイを進行する。
【0139】
また、ゲーム装置100は、ゲームプログラム118をエミュレータ126で実行して得られるゲーム画面をディスプレイ106に出力する(ステップS152)。通常、ゲーム装置100は、自装置に対応するエミュレータ126で実行されるゲームプログラム118の画像(ゲーム画面)をディスプレイ106に出力する。
【0140】
このように、ゲーム装置100の各々は、他のゲーム装置100と通信を行いつつ、多人数プレイ可能なゲームプログラム118を複数のエミュレータ126によってそれぞれ実行する。
【0141】
図11を参照して、ゲーム装置100は、多人数プレイに参加しているいずれかのゲーム装置100において、画面共有が指示されたか否かを判断する(ステップS160)。
【0142】
いずれかのゲーム装置100において画面共有が指示されると(ステップS160においてYES)、ゲーム装置100は、画面共有が指示されたゲーム装置100において表示されているゲーム画面を自装置上で表示する(ステップS162)。画面共有に係る処理の詳細については後述する。画面共有が指示されなければ(ステップS160においてNO)、ステップS162の処理はスキップされる。
【0143】
ゲーム装置100は、多人数プレイに参加しているいずれかのゲーム装置100において、ゲームプログラム118の途中終了が指示されたか否かを判断する(ステップS164)。より具体的には、ゲーム装置100の各々は、自装置においてゲームプログラム118の終了が指示されたか否か、および、通信により他のプレイヤからゲームプログラム118の終了の要求を受けたか否かをそれぞれ判断する。
【0144】
ゲームプログラム118の途中終了が指示されなければ(ステップS164においてNO)、ゲーム装置100は、ゲームプログラム118の実行が完了したか否かを判断する(ステップS166)。ゲームプログラム118の実行が完了していなければ(ステップS166においてNO)、ゲームプログラム118の実行が継続されて、ステップS160以下の処理が繰り返される。
【0145】
ゲームプログラム118の実行が完了すれば(ステップS166においてYES)、処理はステップS106に戻る。
【0146】
ゲームプログラム118の途中終了が指示されると(ステップS164においてYES)、ステップS168およびS170のような処理が実行される。
【0147】
より具体的には、ゲーム装置100は、ゲームプログラム118のエミュレータ126での実行を一時的に中断し(ステップS168)、ゲームプログラム118を途中終了することについての同意を得る画面を表示する(ステップS170)。これによって、ゲーム装置100は、多人数プレイに参加している各プレイヤからの操作入力を待つ状態となる。
【0148】
図15は、本実施の形態に従うゲーム装置100が実行中のゲームプログラムの途中終了に対するプレイヤからの同意を受け付けるためのユーザインターフェイス画面230の一例を示す模式図である。
図15を参照して、ユーザインターフェイス画面230は、多人数プレイに参加しているすべてのプレイヤの状態を示すプレイヤ別表示231~234を含む。なお、プレイヤ別表示の数は、多人数プレイに参加しているプレイヤと同数となる。
【0149】
図15には、プレイヤBBB(2P)がゲームプログラム118の途中終了を指示した例を示す。そのため、プレイヤBBB(2P)のプレイヤ別表示232においては、既に同意済を示す状態表示236になっている。但し、途中終了を指示した後に、改めて途中終了に同意するか否かを選択できるような態様であってもよい。
【0150】
図15には、プレイヤAAA(1P)が操作するゲーム装置100に表示される例を示す。そのため、プレイヤAAA(1P)のプレイヤ別表示231においては、プレイヤが同意するか否かを選択できるような状態表示235になっている。
【0151】
その他のプレイヤCCC(3P)およびプレイヤDDD(4P)のプレイヤ別表示233,234においては、各プレイヤがいずれを選択したかを示す状態表示237,238になっている。
【0152】
再度
図11を参照して、多人数プレイに参加しているすべてのプレイヤがゲームプログラム118の実行を途中終了することに同意すれば(ステップS172においてYES)、ゲーム装置100は、実行中のゲームプログラム118において必要なデータをセーブする(ステップS174)。そして、処理はステップS106に戻る。
【0153】
このように、ゲーム装置100は、多人数プレイ中において、(自装置のプレイヤからの)ゲームの終了指示が行われた場合、または、通信に基づいて他のプレイヤからゲームの終了要求があった場合に、当該ゲームを一時的に中断させ、さらに多人数プレイに参加している全プレイヤのゲーム装置100から終了指示が行われた場合に、ゲームプログラム118を終了する。
【0154】
そして、ゲーム装置100は、多人数プレイ可能なゲームプログラム118を選択する場面に遷移する。すなわち、ゲーム装置100は、多人数プレイに参加している全プレイヤのゲーム装置100から終了指示が行われてゲームプログラム118が終了された場合に、複数のゲームプログラム118のいずれを開始するか選択する場面に遷移する。
【0155】
なお、ゲーム装置100の各々において、エミュレータ126およびコネクション140は維持されるので、多人数プレイ可能なゲームプログラム118を選択する場面に遷移した後も、当該終了したゲームプログラム118の多人数プレイに参加していたプレイヤは、多人数プレイに参加可能な状態に維持される。すなわち、ゲーム装置100は、多人数プレイに参加している全プレイヤのゲーム装置100から終了指示が行われてゲームプログラム118が終了された場合に、多人数プレイに参加しているプレイヤが参加している状態を維持したまま、複数のゲームプログラム118のいずれを開始するか選択する場面に遷移する。
【0156】
これに対して、多人数プレイに参加しているすべてのプレイヤがゲームプログラム118の実行を途中終了することに同意するものでなければ(ステップS172においてNO)、ゲームプログラム118の実行が再開および継続されて、ステップS140以下の処理が繰り返される。
【0157】
[F.ゲームプログラムを実行する場合の処理手順の変形例]
なお、
図9~
図11に示す処理手順においては、ゲームプログラム118の実行を途中終了する前に、必要なデータがセーブされる(ステップS174)。ゲームプログラム118の仕様によっては、データのセーブが不要な場合もある。このような場合には、
図11のステップS174を省略できる。
【0158】
さらに、データのセーブが必要でなければ、すべてのプレイヤからの同意を得なくても、ゲームプログラム118の実行を途中終了してもよい。この場合には、
図11のステップS170の処理を省略してもよい。すなわち、いずれかのプレイヤがゲームプログラム118の途中終了を指示すると、ゲームプログラム118の実行をそのまま途中終了してもよい。但し、他のプレイヤが状況を把握できるように、途中終了を指示したプレイヤ名、および、途中終了が指示されたのでゲームプログラム118が途中終了したことを各プレイヤに通知するようにしてもよい。
【0159】
[G.画面共有]
次に、画面共有に係る処理(
図11のステップS162)について説明する。
【0160】
図16は、本実施の形態に従うゲーム装置100が画面共有モードにおいて提供するユーザインターフェイス画面240の一例を示す模式図である。
【0161】
ゲーム装置100は、ゲームプログラム118を実行することで生成されるゲーム画面を表示する通常表示モードに加えて、
図16に示すような画面共有モードを選択できるようにしてもよい。例えば、特定の押ボタンの操作に応じて、通常表示モードと画面共有モードとを交互に切り替えるようにしてもよい。
【0162】
図16(A)には、プレイヤAAA(1P)により画面共有が指示された状態を示し、
図16(B)には、プレイヤAAA(1P)に加えて、プレイヤBBB(2P)により画面共有が指示された状態を示す。
【0163】
図16(A)を参照して、ユーザインターフェイス画面240は、プレイヤ(ゲーム装置100)毎に設定された表示領域241~244を含む。
図16(A)に示す例では、プレイヤAAA(1P)により画面共有が指示されているので、プレイヤAAA(1P)が操作するゲーム装置100がゲームプログラム118を実行することで生成されるゲーム画面が表示される。
【0164】
図16(B)に示す例では、
図16(A)に示すゲーム画面に加えて、プレイヤBBB(2P)により画面共有が指示されているので、プレイヤBBB(2P)が操作するゲーム装置100がゲームプログラム118を実行することで生成されるゲーム画面が表示される。
【0165】
ゲーム装置100の各々においては、他のゲーム装置100に対応するエミュレータ126でゲームプログラム118を実行しているので、画面共有が指示されたゲーム装置100に対応するエミュレータ126が生成したゲーム画面が追加的に出力される。そのため、ゲーム装置100の間では、ゲーム画面自体を送受信する必要がない。
【0166】
本実施の形態に従うゲームシステム1においては、従来の有線の通信ケーブルを用いる場合とは異なり、プレイヤ同士が離れていても多人数プレイに参加できる。但し、離れた位置にいるプレイヤ同士が多人数プレイを行う場合には、プレイヤ同士でゲーム画面を見せ合うようなことができない。このような課題に対して、画面共有モードを提供することで、複数のプレイヤが物理的に離れた状態で多人数プレイに参加している場合であっても、ゲームの状況をお互いに把握することができる。
【0167】
[H.利点]
本実施の形態によれば、通信による多人数プレイが想定されていなかった(過去の)ゲームプログラムを通信により多人数プレイを実現する場合に、通信が切断された場合などであっても、強制終了などの予期せぬ動作を抑制できる仕組みを提供する。
【0168】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0169】
1 ゲームシステム、10 ネットワーク、100 ゲーム装置、102 プロセッサ、104 メモリ、106 ディスプレイ、108 操作部、110 ストレージ、112 システムプログラム、114 実行管理プログラム、116 エミュレータプログラム、118 ゲームプログラム、120 通信部、122 バス、124 実行管理モジュール、126 エミュレータ、128 仮想セーブ領域、130 アプリデータ、140,144 コネクション、142 共有データ、150 プレイヤ操作情報、152 フレーム番号、154 操作内容、200,210,230,240 ユーザインターフェイス画面、202,204 ボタン、212 参加プレイヤ表示、214 一覧表示、216 オブジェクト、222 メッセージ、231,232,233,234 プレイヤ別表示、235,236,237,238 状態表示、241,244 表示領域。