(57)【要約】【課題】複数のゲーム機間でネットワークを介してデータを送受信してゲーム処理を行う場合において、通信トラブルが発生した場合であってもプレーヤのゲーム意欲の減退を防止することが可能なプログラム、情報記憶媒体、ゲーム機、及びゲームシステムを提供すること。【解決手段】他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行う第２のモードにおいて、所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、ゲームデータをセーブする処理を行う。【選択図】図６
2010227455.tif 000002
【特許請求の範囲】
【請求項１】
第１のモードでは自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモードでは他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行うゲーム処理部と、
プレーヤの入力情報に基づいて、第１のモードを第２のモードに切り替える処理を行う切り替え部と、
ゲーム処理によって得られたゲームデータをセーブする処理を行うセーブ処理部と、
第２のモードにおいて、他のゲーム機とネットワークを介してデータの送受信を行なう通信制御部として、コンピュータを機能させ、
前記ゲーム処理部が、
プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行い、
前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、前記ゲームデータをセーブする処理を行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記通信制御部が、
第２のモードにおいて所与のイベントを開始させる場合に、前記他のゲーム機に対して当該所与のイベントの開始情報を送信する処理を行うことを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映された前記ゲームデータをセーブする処理を行うことを特徴とするプログラム。
【請求項４】
請求項１又は２において、
前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映されていない前記ゲームデータをセーブする処理を行うことを特徴とするプログラム。
【請求項５】
第１のモードでは自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモードでは他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行うゲーム処理部と、
プレーヤの入力情報に基づいて、第１のモードを第２のモードに切り替える処理を行う切り替え部と、
ゲーム処理によって得られたゲームデータをセーブする処理を行うセーブ処理部と、
第２のモードにおいて、他のゲーム機とネットワークを介してデータの送受信を行なう通信制御部として、コンピュータを機能させ、
前記通信制御部が、
他のゲーム機から前記所与のイベントの開始情報を受信する処理を行い、
前記ゲーム処理部が、
第１のモードでは、プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行い、第２のモードでは、プレーヤの入力情報に基づいて前記所与のイベントを開始せずに、受信したイベントの開始情報に基づいて、所与のイベントを開始する処理を行い、
前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、前記ゲームデータをセーブする処理を行うことを特徴とするプログラム。
【請求項６】
請求項５において、
前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映されていない前記ゲームデータをセーブする処理を行うことを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記通信制御部が、
ネットワークに接続された他のゲーム機との通信エラーを検出する処理を行い、
前記切り替え部が、
第２のモード中に通信エラーが検出された場合には、第２のモードから第１のモードに切り替える処理を行い、
前記ゲーム処理部が、
第２のモード中に通信エラーが検出された場合には、第１のモードにおいて、前記セーブ処理部によってセーブされたセーブデータに基づいてゲーム処理を再開させる処理を行うことを特徴とするプログラム。
【請求項８】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜７のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項９】
第１のモードでは自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモードでは他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行うゲーム処理部と、
プレーヤの入力情報に基づいて、第１のモードを第２のモードに切り替える処理を行う切り替え部と、
ゲーム処理によって得られたゲームデータをセーブする処理を行うセーブ処理部と、
第２のモードにおいて、他のゲーム機とネットワークを介してデータの送受信を行なう通信制御部とを含み、
前記ゲーム処理部が、
プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行い、
前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、前記ゲームデータをセーブする処理を行うことを特徴とするゲーム機。
【請求項１０】
第１のモードでは自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモードでは他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行うゲーム処理部と、
プレーヤの入力情報に基づいて、第１のモードを第２のモードに切り替える処理を行う切り替え部と、
ゲーム処理によって得られたゲームデータをセーブする処理を行うセーブ処理部と、
第２のモードにおいて、他のゲーム機とネットワークを介してデータの送受信を行なう通信制御部とを含み、
前記通信制御部が、
他のゲーム機から前記所与のイベントの開始情報を受信する処理を行い、
前記ゲーム処理部が、
第１のモードでは、プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行い、第２のモードでは、プレーヤの入力情報に基づいて前記所与のイベントを開始せずに、受信したイベントの開始情報に基づいて、所与のイベントを開始する処理を行い、
前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、前記ゲームデータをセーブする処理を行うことを特徴とするゲーム機。
【請求項１１】
親機と子機とからなる複数のゲーム機によって構成されるゲームシステムであって、
各ゲーム機が、
第１のモードでは自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモードでは他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行うゲーム処理部と、
プレーヤの入力情報に基づいて、第１のモードを第２のモードに切り替える処理を行う切り替え部と、
ゲーム処理によって得られたゲームデータをセーブする処理を行うセーブ処理部と、
第２のモードにおいて、他のゲーム機とネットワークを介してデータの送受信を行なう通信制御部とを含み、
前記親機の前記ゲーム処理部が、
プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行い、
前記親機の前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、前記ゲームデータをセーブする処理を行い、
前記子機の前記通信制御部が、
他のゲーム機から前記所与のイベントの開始情報を受信する処理を行い、
前記子機の前記ゲーム処理部が、
第１のモードでは、プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行い、第２のモードでは、プレーヤの入力情報に基づいて前記所与のイベントを開始せずに、受信したイベントの開始情報に基づいて、所与のイベントを開始する処理を行い、
前記子機の前記セーブ処理部が、
第２のモードにおいて所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、前記ゲームデータをセーブする処理を行うことを特徴とするゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、ゲーム機、及びゲームシステムに関する。
【背景技術】
【０００２】
従来から、ネットワークを介して他のゲーム機と通信処理を行い複数のプレーヤが同一のオブジェクト空間でゲーム行う、いわゆるマルチプレイゲームが人気がある。例えば、従来のゲーム機では、マルチプレイモード中に通信が途絶えると、シングルプレイモードでゲームを再開させる処理を行うものがある（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３８７４７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年では、プレーヤキャラクタが敵キャラクタと対戦したり、ゲームキャラクタと協力して所与の目的を達成するロールプレイングゲームにおいて、他のゲーム機と通信を行うマルチプレイゲームを実現することが期待されている。
【０００５】
しかし、ロールプレイングゲームにおいて、マルチプレイモードを実現しようとすると、種々の問題が生じる場合がある。例えば、マルチプレイモードを開始させ、マルチプレイゲーム中に何らかの通信トラブルが発生してしまうと、セーブデータに基づいてゲームを再開させることになる。したがって、セーブデータが古い場合には同じゲームプレイを行うことが強いられるためゲームが単調になってしまい、結果的にプレーヤに対してゲームに対する意欲を減退させてしまうことになる。
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、複数のゲーム機間でネットワークを介してデータを送受信してゲーム処理を行う場合において、通信トラブルが発生した場合であっても、プレーヤのゲーム意欲の減退を防止することができるプログラム、情報記憶媒体、ゲーム機、及びゲームシステムを提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、第１のモードでは自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモードでは他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行うゲーム処理部と、プレーヤの入力情報に基づいて、第１のモードを第２のモードに切り替える処理を行う切り替え部と、ゲーム処理によって得られたゲームデータをセーブする処理を行うセーブ処理部と、第２のモードにおいて、他のゲーム機とネットワークを介してデータの送受信を行なう通信制御部として、コンピュータを機能させ、前記ゲーム処理部が、プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行い、前記セーブ処理部が、第２のモードにおいて所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、前記ゲームデータをセーブする処理を行うプログラムに関する。本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含むゲーム機、ゲームシステムに関係する。
【０００８】
本発明によれば、第２のモードのクエスト開始後において通信トラブルが発生した場合であっても、セーブデータに基づいてゲームを再開させることができる。つまり、やり直しのゲームプレイを極力軽減することができるので、プレーヤのゲーム意欲の減退を防止することができる。
【０００９】
（２）また、本発明のプログラム、情報記憶媒体、ゲーム機、及びゲームシステムは、前記通信制御部が、第２のモードにおいて所与のイベントを開始させる場合に、前記他のゲーム機に対して当該所与のイベントの開始情報を送信する処理を行うようにしてもよい。
【００１０】
本発明によれば、他のゲーム機において、受信した所与のイベントの開始情報に基づいてセーブするようにすれば、第２のモードのクエスト開始後において通信トラブルが発生した場合に、セーブデータに基づいてゲームを再開させることができる。
【００１１】
（３）また、本発明のプログラム、情報記憶媒体、ゲーム機、及びゲームシステムは、セーブ処理部が、第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映された前記ゲームデータをセーブする処理を行うようにしてもよい。
【００１２】
本発明によれば、セーブデータに基づいてゲームを再開させたときに、所与のイベントが開始されている状態でゲームを再開させることができる。
【００１３】
（４）また、本発明のプログラム、情報記憶媒体、ゲーム機、及びゲームシステムは、前記セーブ処理部が、第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映されていない前記ゲームデータをセーブする処理を行うようにしてもよい。
【００１４】
本発明によれば、セーブデータに基づいてゲームを再開させたときに、所与のイベントが開始されていない状態でゲームを再開させることができる。
【００１５】
（５）本発明は、第１のモードでは自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモードでは他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行うゲーム処理部と、プレーヤの入力情報に基づいて、第１のモードを第２のモードに切り替える処理を行う切り替え部と、ゲーム処理によって得られたゲームデータをセーブする処理を行うセーブ処理部と、第２のモードにおいて、他のゲーム機とネットワークを介してデータの送受信を行なう通信制御部として、コンピュータを機能させ、前記通信制御部が、他のゲーム機から前記所与のイベントの開始情報を受信する処理を行い、前記ゲーム処理部が、第１のモードでは、プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行い、第２のモードでは、プレーヤの入力情報に基づいて前記所与のイベントを開始せずに、受信したイベントの開始情報に基づいて、所与のイベントを開始する処理を行い、前記セーブ処理部が、第２のモードにおいて所与のイベントを開始させるとき、又は第１のモードを第２のモードに切り替えるときに、前記ゲームデータをセーブする処理を行うプログラムに関する。
【００１６】
本発明によれば、第２のモードのクエスト開始後において通信トラブルが発生した場合であっても、セーブデータに基づいてゲームを再開させることができる。つまり、やり直しのゲームプレイを極力軽減することができるので、プレーヤのゲーム意欲の減退を防止することができる。
【００１７】
（６）また、本発明のプログラム、情報記憶媒体、ゲーム機、及びゲームシステムは、前記セーブ処理部が、第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映されていない前記ゲームデータをセーブする処理を行うようにしてもよい。本発明によれば、セーブデータに基づいてゲームを再開させたときに、所与のイベントが開始されていない状態でゲームを再開させることができる。
【００１８】
（７）また、本発明のプログラム、情報記憶媒体、ゲーム機、及びゲームシステムは、前記通信制御部が、ネットワークに接続された他のゲーム機との通信エラーを検出する処理を行い、前記切り替え部が、第２のモード中に通信エラーが検出された場合には、第２のモードから第１のモードに切り替える処理を行い、前記ゲーム処理部が、第２のモード中に通信エラーが検出された場合には、第１のモードにおいて、前記セーブ処理部によってセーブされたセーブデータに基づいてゲーム処理を再開させる処理を行うようにしてもよい。
【００１９】
本発明によれば、不意に通信エラーが生じた場合にも第１のモードでのゲームに移行することができ、プレーヤに対して通信エラーによる不満を軽減させることができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態のネットワーク図の一例。
【図２】本実施形態のネットワーク図の一例。
【図３】本実施形態のゲーム機の機能ブロック図。
【図４】本実施形態のサーバの機能ブロック図。
【図５】本実施形態の親機、子機の処理の説明図。
【図６】本実施形態のゲーム進行に関する説明図。
【図７】本実施形態のゲームデータの説明図。
【図８】クエストの開始情報、終了情報の一例。
【図９】本実施形態のフローチャート図。
【図１０】本実施形態のフローチャート図。
【図１１】子機用のクエストの開始情報、終了情報の一例。
【図１２】親機、子機の処理の応用例の説明図。
【発明を実施するための形態】
【００２１】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２２】
１．ゲームシステム
本実施形態のゲームシステムは、複数のゲーム機によって構成され、実在する複数のプレーヤが各ゲーム機を用いてマルチプレイゲームを行うことができるものである。なお、本実施形態のゲームシステムは、サーバを含むゲームシステムでもよい。
【００２３】
本実施形態のゲームシステムは、図１に示すように、複数のゲーム機が相互に無線通信によるアドホックモードにおいてデータを送受信してゲーム処理を行ってもよいし、図２に示すように、複数のゲーム機それぞれが、無線通信によるインフラストラクチャモードにおいてインターネットに接続されたサーバを介して、他のゲーム機とデータを送受信してゲーム処理を行ってもよい。
【００２４】
特に、本実施形態のゲームシステムでは、複数のゲーム機のうち１機が親機として機能し、他のゲーム機は子機として機能する。例えば、図１に示すアドホックモードにおけるゲームシステムの親機は、通信を開始させるとブロードキャスト方式で子機に参加募集を行い、子機からの参加要求を受け付けるとマルチプレイモード（第２のモード）でのゲームプレイを開始させる。子機は、通信を開始させると、親機からの参加募集を受信する処理を行い、親機に対して参加要求を送信する処理を行い、マルチプレイモードでのゲームプレイを開始させる。また、図２に示すインフラストラクチャモードにおけるゲームシステムでは、サーバが親機と子機とのマッチング処理を行い、親機と子機とからなる通信グループを設定するようにしてもよい。
【００２５】
なお、本実施形態のゲームシステムは、ネットワークへの接続を行わないシステムでもよい。例えば、ゲーム機と、複数の入力機器とを備えるゲームシステムにおいて、実在する複数のプレーヤそれぞれの入力機器からの入力情報に基づいて、マルチプレイゲーム処理を行うものでもよい。
【００２６】
なお、本実施形態のゲームシステムを構成する各ゲーム機は、プレーヤが単独でゲームプレイを行うシングルプレイモード（第１のモード）でのゲーム処理を行うことができる。例えば、単独のプレーヤとコンピュータプレーヤとのゲームプレイもシングルプレイモードに含まれる。
【００２７】
２．構成
（１）ゲーム機の構成
図３に本実施形態のゲーム機（画像生成装置）の機能ブロック図の例を示す。なお本実施形態のゲーム機は図３の構成要素（各部）の一部を省略した構成としてもよい。
【００２８】
入力部１６０は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部１６０は、プレーヤの入力情報（入力信号）を検出する検出部１６２を備える。入力部１６０は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。
【００２９】
また、入力部１６０は、３軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。本実施形態のゲーム機は、複数の入力部１６０を備えていてもよい。
【００３０】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。なお、オブジェクトデータ記憶部１７６には、オブジェクトのオブジェクトデータが記憶される。
【００３１】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３２】
また、情報記憶媒体１８０は、プレーヤの個人データやゲームのセーブデータなどを記憶する。具体的に説明すると、例えば、情報記憶媒体１８０には、本実施形態で実現するゲームを実行することによって得られるセーブデータが記憶されている。
【００３３】
具体的には、情報記憶媒体１８０のセーブデータ格納領域１８２には、セーブデータが記憶される。なお、セーブデータ格納領域１８２には、複数のファイルを用意し、各ファイルにセーブデータを格納するようにしてもよい。例えば、各セーブデータをセーブデータ識別情報に対応付けて格納する。
【００３４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３５】
通信部１９６は外部（例えば他のゲーム機、サーバ）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３６】
なお、サーバが有する情報記憶媒体１８０や記憶部１７０に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内に含む。
【００３７】
処理部１００（プロセッサ）は、入力部１６０からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【００３８】
この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３９】
処理部１００は、受け付け部１１０、オブジェクト空間設定部１１１、移動・動作処理部１１２、ネットワーク設定部１１３、通信制御部１１４、ゲーム処理部１１５、セーブ処理部１１６、切り替え部１１７、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４０】
受け付け部１１０は、プレーヤからの入力情報を受け付ける処理を行う。例えば、本実施形態の受け付け部１１０は、プレーヤからのシングルプレイモードからマルチプレイモードへの切り替え入力情報を受け付ける。また、本実施形態の受け付け部１１０は、プレーヤの入力情報に基づいて、通信グループ（パーティー）の親機として参加するか、或いは、通信グループの子機として参加するかの選択を受け付ける。
【００４１】
受け付け部１１０は、他のプレーヤからの参加要求を受け付ける処理を行う。例えば、入力部１６０からの入力情報に基づき他のプレーヤからの参加要求を受け付ける処理や、通信制御部１１４において受信した他のゲーム機からの参加要求を受け付ける処理を行う。
【００４２】
オブジェクト空間設定部１１１は、プレーヤキャラクタ、敵キャラクタ、他のプレーヤキャラクタ、傭兵の他に、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。
【００４３】
ここでオブジェクト空間とは、仮想空間であり、２次元空間、３次元空間の両方を含む。２次元空間とは、例えば２次元座標（Ｘ，Ｙ）においてオブジェクトが配置される空間であり、３次元空間とは、例えば３次元座標（Ｘ，Ｙ，Ｚ）においてオブジェクトが配置される空間である。例えば、オブジェクト空間設定部１１１は、オブジェクト空間を３次元空間とした場合には、ワールド座標系にオブジェクトを配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４４】
移動・動作処理部１１２は、オブジェクト空間において、プレーヤキャラクタを移動させる処理を行う。すなわち入力部１６０によりプレーヤが入力した入力情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、プレーヤキャラクタをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、プレーヤキャラクタの移動情報（位置、回転角度、速度、或いは加速度などの移動パラメータ）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（例えば、１／６０秒）毎に順次求める処理を行う。なおフレームは、プレーヤキャラクタの移動・動作処理や画像生成処理を行う時間の単位である。
【００４５】
ネットワーク設定部１１３は、ネットワーク情報を取得し管理する処理等を行う。例えば、本実施形態のネットワーク設定部１１３は、各ゲーム機に個別に付与されるゲーム機の識別情報（オンラインゲームに参加できるゲーム機を識別するために個別に付与されたデータ）と、ゲーム機の識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得し、管理する処理を行う。なお、宛先情報とは、ゲームシステムを構成する各ゲーム機のＩＰアドレス、ポート番号とすることができる。
【００４６】
通信制御部１１４は、他のゲーム機とネットワークを介してデータを送受信する処理を行う。例えば、通信制御部１１４は、送信先のゲーム機のＩＰアドレスやポート番号を指定してデータを送信する処理を行い、他のゲーム機から受信したデータを記憶部１７０に格納する処理、受信したデータを解析する処理、その他のデータの送受信に関する制御処理等を行う。
【００４７】
本実施形態の通信制御部１１４は、画像を描画するフレームレートに応じてデータを含むパケットを生成し、送信先の他のゲーム機に生成したパケットを送信する処理を行う。具体的に説明すると、例えば、フレームレートが６０ｆｐｓである場合には、１／６０秒毎に、送信する処理を行う。
【００４８】
また本実施形態の通信制御部１１４は、マルチプレイモードにおいて、複数のゲーム機間においての接続が確立されてから接続を終了するまで、データを互いに送受信する処理を行う。例えば、他のゲーム機から中断要求データを受信した場合や、自機のプレーヤからの中断入力情報を受け付けた場合に接続を終了する。
【００４９】
本実施形態の通信制御部１１４は、受け付け部１１０で親機としての選択を受け付けた場合には、ブロードキャストによって参加募集パケットを送信し、子機からの参加要求を受信する処理を行う。また、子機からの参加要求を受信して、参加数が所定数に達すると参加受け付けを終了させて、それまでに参加要求した各子機にゲーム開始命令を送信する処理を行う。
【００５０】
また、本実施形態の通信制御部１１４は、受け付け部１１０で子機としての選択を受け付けた場合には、ネットワーク上の親機からの参加募集パケット受信し、受信した親機（複数ある場合はいずれか１つの親機）に対して参加要求を送信する処理を行う。
【００５１】
なお、通信制御部１１４は、図１に示すように、アクセスポイントによらずに他のゲーム機と直接通信を行うアドホックモードによるネットワークを介して、他のゲーム機からデータを送受信してもよいし、図２に示すように公衆回線網（インターネット）に接続されているアクセスポイントを経由するインフラストラクチャモードによるネットワークを介して、他のゲーム機や又はサーバとデータの送受信処理を行ってもよい。
【００５２】
特に、本実施形態の通信制御部１１４は、受け付け部１１０で親機としての選択を受け付けた場合には、第２のモードにおいて所与のイベントを開始させる場合に、他のゲーム機に対して当該所与のイベントの開始情報を各子機に送信する処理を行う。例えば、第２のモードにおいて開始するクエストが決定されると、クエスト開始情報を各子機に送信する処理を行う。例えば、「クエスト３」が決定されると、「クエスト３」の開始フラグＦａの値（開始フラグＦａ＝１）を各子機に送信する処理を行う。
【００５３】
また、通信制御部１１４は、受け付け部１１０で子機としての選択を受け付けた場合には、親機から所与のイベントの開始情報を受信する処理を行う。例えば、クエストの開始フラグＦａの値を受信する処理を行う。
【００５４】
また、通信制御部１１４は、ネットワークに接続された他のゲーム機との通信エラーを検出する処理を行う。
【００５５】
ゲーム処理部１１５は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、セーブデータ領域１８２に格納されているセーブデータを主記憶部１７２にロードしてゲームを再開させる処理、クエスト（所与のイベントの一例）を開始させる処理、クエストを終了させる処理、クエスト毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【００５６】
また、本実施形態のゲーム処理部１１５は、プレーヤの入力情報に基づいて、ゲーム処理を行う。例えば、プレーヤの入力情報に基づいて、プレーヤキャラクタが獲得したアイテムや仮想的な所有価値をゲームデータとして登録する処理、複数のクエストそれぞれのクエスト開始フラグＦａ、クエストのクリアフラグＦｂを更新する処理、プレーヤキャラクタのステータスデータ（経験値、ＨＰ値、レベル値などのパラメータ）を更新する処理を行う。
【００５７】
また、本実施形態のゲーム処理部１１５は、受け付け部１１０が、他のプレーヤからの参加要求を受け付けた場合に、プレーヤの入力情報と他のプレーヤの入力情報とに基づいてゲーム処理を行う。
【００５８】
より具体的には、本実施形態のゲーム処理部１１５は、第１のモード（シングルプレイモード）では自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモード（マルチプレイモード）では他のゲーム機からネットワークを介して受信したデータ（他のプレーヤの入力情報など）と自機のプレーヤの入力情報とに基づいてゲーム処理を行う。
【００５９】
すなわち、ゲーム処理部１１５は、第１のモードでは自機のプレーヤの入力情報に基づいてゲーム処理を行い、第２のモードでは他のゲーム機からネットワークを介して受信したデータと自機のプレーヤの入力情報とに基づいてゲーム処理を行う。
【００６０】
特に、本実施形態のゲーム処理部１１５は、受け付け部１１０で親機としての選択を受け付けた場合には、プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行う。例えば、プレーヤの入力情報に基づいて所与のイベントを決定し、決定された所与のイベントを開始する処理を行う。より具体的には、プレーヤの入力情報に基づいて、プレーヤキャラクタが所定の動作を行った場合にクエスト（例えば「クエスト３」）を決定し、決定されたクエストを開始する処理を行う。
【００６１】
また、ゲーム処理部１１５は、受け付け部１１０で子機としての選択を受け付けた場合には、第１のモードでは、プレーヤの入力情報に基づいて、所与のイベントを開始する処理を行う。例えば、プレーヤの入力情報に基づいて所与のイベントを決定し、決定された所与のイベントを開始する処理を行う。
【００６２】
また、ゲーム処理部１１５は、受け付け部１１０で子機としての選択を受け付けた場合には、第２のモードでは、プレーヤの入力情報に基づいて所与のイベントを開始せずに、受信したイベントの開始情報に基づいて、所与のイベントを開始する処理を行う。例えば、子機は、通信制御部１１４によって親機から「クエスト３」の開始フラグを受信した場合には、「クエスト３」の開始フラグＦａ＝１である場合に、「クエスト３」を開始させる処理を行う。
【００６３】
ゲーム処理部１１５は、第２のモード中に通信エラーが検出された場合には、第１のモードにおいて、セーブ処理部１１６によってセーブされたセーブデータに基づいてゲーム処理を再開させる処理を行う。
【００６４】
セーブ処理部１１６は、ゲーム処理部１１５によって得られるゲームデータをセーブする処理を行う。すなわち、セーブ処理部１１６は、ゲーム処理部１１５によって制御されるゲームデータをセーブする。例えば、ゲームの進行に関する進行データ（クエストの開始フラグ、クエストのクリアフラグ、重要アイテム取得フラグ）、プレーヤキャラクタのステータスデータ（プレーヤキャラクタの経験値、ＨＰ値、レベル値など）、プレーヤキャラクタの位置情報などをセーブする。
【００６５】
セーブ処理部１１６は、受け付け部１１０で親機としての選択を受け付けた場合であって第２のモードにおいて所与のイベントを開始させる場合に、所与のイベント開始時の進行データ、ステータスデータ、プレーヤキャラクタの位置情報を含むゲームデータをセーブする。
【００６６】
より具体的には、セーブ処理部１１６は、受け付け部１１０で親機としての選択を受け付けた場合には、第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映された（例えば、「クエスト３」を開始させる場合に、「クエスト３」の開始フラグＦａ＝１に更新した）ゲームデータをセーブする処理を行う。また、第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映されていないゲームデータ（例えば、「クエスト３」を開始させる場合に、「クエスト３」の開始フラグＦａが０である場合には「クエスト３」の開始フラグＦａは０のままのゲームデータ）をセーブする処理を行うようにしてもよい。
【００６７】
セーブ処理部１１６は、受け付け部１１０で子機としての選択を受け付けた場合において第２のモードにおいて所与のイベントを開始させる場合に、所与のイベント開始時のステータスデータをセーブする。言い換えると、第２のモードにおいて所与のイベントを開始させる場合に、所与のイベント開始時の進行データ、プレーヤキャラクタの位置情報以外のゲームデータをセーブする処理を行う。
【００６８】
より具体的には、セーブ処理部１１６は、受け付け部１１０で子機としての選択を受け付けた場合において第２のモードにおいて所与のイベントを開始させる場合に、セーブ処理部１１６は、第２のモードにおいて所与のイベントを開始させる場合に、当該所与のイベントの開始が反映されていないゲームデータ（例えば、「クエスト３」を開始させる場合に、「クエスト３」の開始フラグＦａが０である場合には「クエスト３」の開始フラグＦａは０のままのゲームデータ）をセーブする処理を行う。
【００６９】
なお、セーブ処理部１１６は、本実施形態のセーブ処理部１１６は、通信を開始させる前に、ゲームデータをセーブする処理を行ってもよい。すなわち、シングルプレイモードでの最新のゲームデータをセーブする処理を行ってもよい。
【００７０】
また、セーブ処理部１１６は、セーブ画面を表示部に表示させて、複数のファイルのうち、いずれか１つのファイルの選択を受け付け、受け付けたファイルに上書きしてセーブする処理を行う。
【００７１】
切り替え部１１７は、プレーヤの入力情報に基づいて、第１のモードを第２のモードに切り替える処理を行う。また、切り替え部１１７は、所定条件下で、プレーヤの入力情報に基づいて、第２のモードから第１のモードに切り替える処理を行う。例えば、所与のイベント（例えば、クエスト）が終了した際に、第２のモードから第１のモードに切り替える処理を行う。また、プレーヤの入力情報に基づいて、第２のモードから第１のモードに切り替える処理を行う。
【００７２】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。描画部１２０が生成する画像は、いわゆる２次元画像であってもよいし、いわゆる３次元画像であってもよい。
【００７３】
２次元画像を生成する場合には、横から見たときの画像を生成する。例えば、オブジェクト（スプライト）毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【００７４】
いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値
等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００７５】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、透視変換（投影変換）、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。
【００７６】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００７７】
なお、描画部１２０は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、３次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、描画部１２０は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００７８】
例えば仮想カメラによりオブジェクト（例えば、プレーヤキャラクタ）を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００７９】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００８０】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００８１】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００８２】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００８３】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００８４】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００８５】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００８６】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００８７】
（２）サーバの構成
図４に本実施形態のサーバの機能ブロック図の例を示す。本実施形態のサーバは図４の構成要素（各部）の一部を省略した構成としてもよい。
【００８８】
記憶部２７０は、処理部２００や通信部２９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００８９】
データベース２６０には、サーバがゲーム機にアクセスするための識別情報（識別番号）、及び、パスワード等のデータが記憶される。また、データベース２６０には、ゲーム機の識別情報に対応づけて、ゲーム機のゲームキャラクタのステータスデータ（レベル、経験値、ＨＰ値などのパラメータ）、アイテムなどのゲームデータが記憶される。
【００９０】
情報記憶媒体２８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部２００は、情報記憶媒体２８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体２８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００９１】
通信部２９６は外部（例えば、ゲーム機、端末、他のサーバや他のネットワークシステム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００９２】
処理部２００（プロセッサ）は、情報記憶媒体に記憶されるプログラム等に基づいて、所与の処理を行う。具体的には、ゲーム機からの要求に応じて所与のサービスを提供する。
【００９３】
また、処理部２００は記憶部２７０内の主記憶部２７２をワーク領域として各種処理を行う。処理部２００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００９４】
特に、本実施形態のサーバの処理部２００は、ネットワーク設定部２１０、通信制御部２１２、マッチング処理部２１６を含む。なおこれらの一部を省略する構成としてもよい。
【００９５】
ネットワーク設定部２１０は、ゲーム機の識別情報（識別番号）などを取得し、データベース２６０に、ゲーム機の識別情報に対応づけて、ゲーム機のネットワーク情報を格納、更新（変更）、削除する処理を行う。
【００９６】
通信制御部２１２は、ゲーム機とネットワークを介してデータを送受信する処理を行う。例えば、親機から参加募集パケットを受け付けた場合には、子機に対して、参加募集パケットを送信する処理を行う。また、子機からの参加要求パケットを受信した場合には、親機に子機からの参加要求パケットを送信する処理を行う。そして、１台の親機、１又は複数の子機とからなるグループが成立すると、参加受付を終了し、グループ内でのゲームプレイを開始させる情報をグループに属する親機、各子機に送信する処理を行う。
【００９７】
マッチング処理部２１６は、親機と子機とをマッチングさせる処理を行う。例えば、マッチング処理部２１６は、ゲーム機Ａから、親機として参加要求を受信した場合には、子機として参加要求をしたゲーム機Ｂとマッチングさせる処理を行う。言い換えると、マッチング処理部２１６は、ゲーム機Ｂから、子機として参加要求を受信した場合には、親機として参加要求をしたゲーム機Ａとマッチングさせる処理を行う。
【００９８】
３．本実施形態の処理の手法
（１）概要
本実施形態のゲーム機は、プレーヤキャラクタが敵キャラクタと対戦したり、ゲームキャラクタと協力して所与の目的を達成するロールプレイングゲームのためのゲーム処理を行うものである。また、本実施形態では、マルチプレイモードにおいて、親機のプレーヤキャラクタのゲーム空間に、子機のプレーヤキャラクタが参加することができ、親機のプレーヤキャラクタと子機のプレーヤキャラクタとが協力してゲームプレイを行うことができる。
【００９９】
そして、本実施形態では、マルチプレイモードにおいてクエストなどの所与のイベントを開始させる場合に、ゲームデータをセーブする処理を行う。このようにすれば、マルチプレイモード中に通信エラーが発生した場合において、再度ゲームを再開する際に、やり直しのゲームプレイを軽減することができるからである。
【０１００】
（２）ゲームの進行
本実施形態では、プレーヤの入力情報に基づいて、所定条件下でイベントを開始させてゲームを進行させる処理を行う。そして、本実施形態では、イベントが開始されると、そのイベントのクリア条件が満たされることによってイベントをクリアさせる処理を行う。このように、本実施形態では、複数のイベントに対してプレーヤの入力情報に基づいて開始させてクリアさせて終了させるという処理を順次行うことによって、ロールプレイングゲームを進行させている。
【０１０１】
さて、本実施形態では、シングルプレイモードの場合は、プレーヤの入力情報に基づいて、自機のゲーム状況に基づいてゲームを進行させ、マルチプレイモードにおいては、通信グループの親機のゲーム状況に基づいてゲームを進行させる処理を行っている。
【０１０２】
図５を用いて、より具体的に説明すると、親機１０＿１、子機１０＿２、１０＿３とからなる通信グループによって、マルチプレイゲームを開始させる場合には、親機１０＿１のプレーヤキャラクタＰ１の進行度にあわせて、子機１０＿２のプレーヤキャラクタＰ２、１０＿３のプレーヤキャラクタＰ３が参加する。例えば、プレーヤキャラクタＰ１の進行度が４である場合には、プレーヤキャラクタＰ２の進行度が２、プレーヤキャラクタＰ３の進行度が１である場合であっても、プレーヤキャラクタＰ１の進行度４にあわせて、ゲームプレイを開始させる。
【０１０３】
また、本実施形態では、マルチプレイゲームを開始させる場合には、親機１０＿１のプレーヤキャラクタＰ１が存在するゲーム空間に、子機１０＿２のプレーヤキャラクタＰ２、１０＿３のプレーヤキャラクタＰ３を配置させる。例えば、進行度４まで達しなければゲームプレイをすることができないステージＳ４に親機１０＿１のプレーヤキャラクタＰ１が位置している場合に、子機１０＿２、１０＿３が参加すると、子機１０＿２、１０＿３のプレーヤキャラクタＰ２、Ｐ３も、ステージＳ４でゲームプレイすることができる。
【０１０４】
（３）マルチプレイモード
本実施形態では、ゲーム空間の所定領域にプレーヤキャラクタが位置しているときに、プレーヤの切り替え入力情報に基づいて、シングルプレイモードからマルチプレイモードに切り替える処理を行う。かかる場合に、自機を親機として参加させるか、自機を子機として参加させるかの選択を受け付ける処理を行い、シングルプレイモードからマルチプレイモードへ切り替える処理を行う。
【０１０５】
また、本実施形態では、図６に示すように、マルチプレイモードに切り替える場合に、シングルプレイモードでのプレーヤのゲームデータをセーブデータ格納領域１８２にセーブする。つまり、通信開始前に、シングルプレイモードからマルチプレイモードに切り替える入力情報を受け付けた時点（Ｔ１時点、Ｑ１時点）までにゲーム処理で得られたゲームデータをセーブする処理を行う。このようにすれば、通信開始後、所与のイベント開始前に通信エラーが発生した場合においても、シングルプレイモードでの最新のセーブデータからゲームを再開させることができる。
【０１０６】
（４）参加募集
そして、本実施形態の親機は、参加募集パケットを生成し、不特定多数の子機にブロードキャスト方式で参加募集パケットを送信する処理を行う。なお、親機は、親機のプレーヤキャラクタのステータスデータを含む参加募集パケットを生成し、子機に送信する処理を行ってもよい。
【０１０７】
例えば、親機がマルチプレイモードへの切り替え時にプレーヤの入力情報に基づきアドホックモードにおける通信モードの選択を受け付けた場合には、アドホックモードで、子機にブロードキャストによって参加募集パケットを送信する処理を行う。また、インフラストラクチャモードにおける通信モードを選択を受け付けた場合には、インフラストラクチャモードで、親機は、ゲーム機又はサーバに参加募集パケットを送信する処理を行う。
【０１０８】
（５）参加要求
次に、子機の処理について説明する。本実施形態の子機は、通信を開始させて、ネットワークを介して受信した１又は複数の親機からの参加募集パケットを受信する処理を行う。
【０１０９】
例えば、子機は、１又は複数の親機から参加募集パケットを受信した場合には、子機のプレーヤの入力情報に基づいていずれか１つの親機の選択を受け付ける処理を行う。そして、子機は、参加要求パケットを生成し、選択した親機に対して、参加要求パケットを送信する処理を行う。
【０１１０】
そして、親機は、子機から送信された参加要求パケットを受信する処理を行い、子機を親機の通信グループに参加させる処理を行う。
【０１１１】
なお、本実施形態は、サーバが、受信した親機からの参加募集パケットを子機に送信して、当該参加募集パケットに対する子機からの参加要求パケットを受信した場合に、親機と子機とを同一の通信グループに設定するマッチング処理を行うようにしてもよい。
【０１１２】
（６）マルチプレーヤゲームの開始
本実施形態では、親機が参加募集パケットを送信してからタイムアウト時間が経過するまでに、子機からの参加要求パケットを受信した場合には、参加要求のあった子機と親機とのマルチプレイゲームを開始させる。一方、タイムアウト時間が経過するまでに参加要求がない場合には、マルチプレイモードへの切り替えが失敗した旨を、親機の表示部に表示させる処理を行う。
【０１１３】
そして、本実施形態では、通信グループの親機のゲーム状況に基づいてゲームを進行させる処理を行う。例えば、本実施形態では、親機１０＿１のプレーヤキャラクタＰ１が存在するゲーム空間に、子機１０＿２のプレーヤキャラクタＰ２、子機１０＿３のプレーヤキャラクタＰ３を配置させて、親機１０＿１、子機１０＿２、子機１０＿３が、相互に入力情報を送受信しながら、各プレーヤキャラクタＰ１、Ｐ２、Ｐ３を移動・動作させる処理を行う。
【０１１４】
なお、本実施形態では、通信グループの各ゲーム機において、ゲーム処理を行うデータを同期させている。例えば、通信グループの各ゲーム機が、フレーム毎に付与される共通の識別番号を用いて、データを送受信する処理を行う。そして、各ゲーム機において、自機の最先のデータの識別番号と、他機の最先のデータの識別番号とが一致することを条件に、自機、他機の最先のデータに基づいてゲーム処理を行う。このようにすれば、各プレーヤが、同じ環境下でゲームプレイを行うことができる。
【０１１５】
（７）所与のイベントの開始
本実施形態では、マルチプレイゲームを開始すると、親機のプレーヤの入力情報に基づいて、所与のイベントを決定し開始させる処理を行う。
【０１１６】
例えば、本実施形態の各ゲーム機では、図７に示すように、予め複数のクエストを設定し、各クエストのクエストＩＤ（識別情報）に対応づけて、開始フラグＦａ、クリアフラグＦｂを設定する。開始フラグＦａ、クリアフラグＦｂの初期値は０に設定されており、プレーヤの入力情報に基づき、クエストが決定されて開始されるとクエストの開始フラグＦａを１に更新し、クエストがクリアされると、クエストのクリアフラグＦｂを１に更新する処理を行う。
【０１１７】
シングルプレイモードでは、ゲーム機は、プレーヤの入力情報に基づき、クエストの開始フラグＦａや、クリアフラグＦｂを更新する処理を行っている。
【０１１８】
一方、マルチプレイモードでは、自機を親機として機能させる場合に、プレーヤの入力情報に基づき、クエストの開始フラグＦａや、クリアフラグＦｂを更新する処理を行っている。すなわち、マルチプレイモードでは、親機のゲーム状況に基づきゲームを進行させる処理を行っているので、子機は、親機のプレーヤの入力情報に基づき、クエストを開始することがあったとしても、そのクエストの開始フラグＦａやクリアフラグＦｂの更新を行わないように制御している。
【０１１９】
例えば、親機１０＿１は、親機１０＿１のプレーヤの入力情報に基づいて「クエスト３」を開始することを決定する。そして、決定された「クエスト３」の開始フラグＦａを１に更新する処理を行う。例えば、親機１０＿１のプレーヤの入力情報に基づいて、ゲーム空間において親機１０＿１のプレーヤキャラクタＰ１がゲームキャラクタに話す動作を行う場合に、「クエスト３」を決定する処理を行い、「クエスト３」の開始フラグＦａを１に更新する処理を行う。そして、親機１０＿１は、通信グループの子機１０＿２、１０＿３に、「クエスト３」の開始情報（例えば、「クエスト３の開始フラグＦａ＝１」のデータ）を送信する。
【０１２０】
一方、子機１０＿２、１０＿３は、親機から、「クエスト３」の開始情報を受信すると、「クエスト３」を開始させる処理を行う。しかし、子機１０＿２、１０＿３は、「クエスト３」の開始フラグＦａは更新しないように制御する。例えば、子機１０＿２の「クエスト３」の開始フラグＦａの値が０であれば、「クエスト３」の開始フラグＦａは０のままである。
【０１２１】
すなわち、本実施形態のゲーム機は、自機を子機として機能する場合に、図８に示す進行データの更新を禁止する処理を行う。言い換えると、進行データ以外のゲームデータを更新することができる。
【０１２２】
このように、本実施形態では、マルチプレイモードにおいては、子機のゲーム進行に関するデータの更新を制約することによって、ゲームバランスを保つようにしている。
【０１２３】
そして、クエストが開始されると、親機１０＿１のプレーヤキャラクタＰ１と、子機１０＿２、１０＿３のプレーヤキャラクタＰ２、Ｐ３とが協力して、「クエスト３」をクリアするゲームプレイを行う。
【０１２４】
なお、本実施形態では、プレーヤの入力情報に基づいて、プレーヤキャラクタが重要アイテムを拾った場合に、開始するクエストとして決定してもよい。また、ゲームにおいて予め用意された複数のクエストの中から１つのクエストの選択を受け付け、受け付けたクエストを、開始すべきクエストとして決定してもよい。
【０１２５】
（８）イベント開始時のセーブ処理
本実施形態では、図６に示すように、マルチプレイモード中にクエストを開始させる場合に、各ゲーム機において、クエスト開始時までのゲーム処理によって得られたゲームデータをセーブする処理を行う。このようにすれば、クエスト開始後に通信エラーが発生した場合であってもクエスト開始時にセーブしたセーブデータに基づきゲームを再開させることができるので、クエスト開始までに行ってきたゲームプレイを繰り返し行う必要がなくなる。つまり、本実施形態では、クエスト開始後に通信エラーを起因にマルチプレイゲームが中断されたとしても、やり直しのゲームプレイを軽減させることができる。
【０１２６】
まず、本実施形態の親機のセーブ処理について説明する。本実施形態の親機は、ゲームの進行に関する進行データを含むゲームデータをセーブする処理を行う。例えば、クエスト開始時における、クエスト開始フラグＦａ、クエストクリアフラグＦｂ、重要アイテム取得フラグなどの進行データや、ＨＰ値、レベル、経験値などのゲームパラメータ、親機のプレーヤキャラクタの位置情報などを、セーブする処理を行う。
【０１２７】
より具体的に説明すると、親機１０＿１のプレーヤの入力情報に基づいて「クエスト３」が開始された場合には、「クエスト３」の開始フラグＦａが１に更新されるので、「クエスト３」の開始フラグＦａが１に更新された状態でセーブする処理を行う。このようにすれば、親機１０＿１のプレーヤは、「クエスト３」の開始後に通信エラーが発生した場合であっても、「クエスト３」が開始された状態でゲームを再開させることができる。
【０１２８】
なお、本実施形態では、親機のプレーヤの入力情報に基づいて「クエスト３」を開始する場合において、「クエスト３」の開始フラグＦａを１に更新する直前において、ゲームデータをセーブするようにしてもよい。
【０１２９】
すなわち、親機において、開始すべきクエストを決定し、決定されたクエストを開始させる前にゲームデータをセーブしてもよい。例えば、開始すべきクエストが「クエスト３」であると決定されると、「クエスト３」の開始フラグＦａを０の状態でセーブする処理を行う。そして、「クエスト３」の開始フラグＦａを１に更新し、「クエスト３」を開始させる処理を行う。
【０１３０】
このようにすれば、親機は、「クエスト３」の開始後に通信エラーが発生した場合であっても、「クエスト３」が開始される直前の状態でゲームを再開させることができ、再開時のゲームプレイの選択の幅が広がる。つまり、親機のプレーヤは、「クエスト３」を再度開始させて「クエスト３」をクリアするゲームをプレイすることもできるし、異なるクエスト（例えば、「クエスト４」）を開始させてゲームプレイすることもできる。
【０１３１】
次に、本実施形態の子機のセーブ処理について説明する。本実施形態の子機は、マルチプレイモードにおいて、ゲームの進行に関する進行データの更新処理が禁止されているので、進行データはシングルプレイモードと同じデータのままで、ゲームデータをセーブする処理を行う。なお、本実施形態では、マルチプレイモードにおいては、子機のゲーム進行に関する進行データの更新を禁止しているが、進行データの反映禁止をより確実なものにするために、進行データをセーブしないようにしてもよい。
【０１３２】
より具体的に説明すると、子機１０＿２が、親機１０＿１のプレーヤの入力情報に基づいて「クエスト３」の開始フラグＦａ＝１を受信すると、「クエスト３」を開始させる処理を行う。そして、子機１０＿２は、「クエスト３」を開始する場合であっても、子機１０＿３の「クエスト３」の開始フラグＦａが０である場合には、開始フラグＦａが０のままでセーブ処理を行う。このようにすれば、子機１０＿２のプレーヤは、「クエスト３」の開始後に通信エラーが発生した場合であっても、「クエスト３」が開始されていない状態でゲームを再開させることができ、結果的に、ゲームバランスを保つことができる。
【０１３３】
また、本実施形態の子機は、マルチプレイモードにおいて、位置情報を更新する処理を行っているが、マルチプレイモードにおける位置情報をセーブしないように制御する。このようにする理由は、仮に、子機のシングルプレイモードの進行度がマルチプレイモードの進行度よりも遅れている場合には、マルチプレイモードでの位置情報をセーブデータに反映させると矛盾が生じてしまい、ゲーム上問題だからである。
【０１３４】
すなわち、本実施形態の子機は、マルチプレイモードのクエスト開始時において、子機のプレーヤキャラクタの位置情報以外のゲームデータであって、マルチプレイモード中の進行データが反映されないゲームデータをセーブする。
【０１３５】
以上の各ゲーム機におけるクエスト開始時のセーブ処理は、プレーヤの入力情報によらずに、自動的にセーブ処理を行うようにしてもよい。このようにすれば、プレーヤは、セーブ処理のために一時的にゲームを中断することなく、ゲームプレイを楽しむことが出来る。
【０１３６】
（９）所与のイベントの終了
本実施形態の各ゲーム機は、マルチプレイモードにおいて開始されたクエストが終了すると、種々のゲーム処理を行う。例えば、各ゲームは、プレーヤキャラクタのパラメータを更新する処理を行う。例えば、各ゲーム機は「クエスト３」をクリアした場合には「クエスト３」をクリアしたことによって取得可能なアイテムを、各ゲーム機のゲームデータに追加する処理を行う。
【０１３７】
また、親機は、「クエスト３」をクリアした場合には、親機の「クエスト３」のクリアフラグＦｂを１に設定する処理を行い、「クエスト３」をクリアすることができずに終了した場合には、親機の「クエスト３」のクリアフラグＦｂは０のままにして更新しないように制御する。一方、子機はクエストのクリアフラグＦｂを含む進行データの更新が禁止されているので、子機の「クエスト３」のクリアフラグＦｂは更新されない。
【０１３８】
（１０）マルチプレイゲームの終了
本実施形態では、クエストが終了した場合に、親機、各子機においてセーブ処理を行い、マルチプレイゲームを終了させる処理を行う。
【０１３９】
マルチプレイゲーム終了時の親機の処理について説明すると、親機は、クエスト終了時の処理が完了すると、セーブ処理を行い、マルチプレイゲームを終了する。例えば、セーブ処理では、クエストの結果が反映されたゲームデータをセーブする処理を行う。そして、マルチプレイゲームを終了させると、シングルプレイモードに切り替えて、ゲームを続行する処理を行う。
【０１４０】
また、親機は、プレーヤの入力情報に基づいてマルチプレイゲームを途中で中断する（パーティーの解散をする）ことができる。かかる場合には、親機は、続けてシングルプレイモードでゲームを続行してもよいし、最新のセーブデータに基づいてゲームプレイをおこなってもよい。例えば、親機はクエスト開始後に、中断した場合には、図６に示すクエスト開始時（Ｔ３時点）にセーブしたセーブデータに基づいて、シングルプレイモードでゲームを開始させる処理を行ってもよい。
【０１４１】
また、親機は、クエスト開始後に、通信エラーが発生した場合には、図６に示すクエスト開始時（Ｔ３時点）にセーブしたセーブデータに基づいて、シングルプレイモードでゲームを開始させる処理を行う。
【０１４２】
次に、マルチプレイゲーム終了時の子機の処理について説明すると、子機は、クエスト終了時の処理が完了すると、セーブ処理を行い、マルチプレイゲームを終了する。なお、子機は、マルチプレイモードのマルチプレイゲーム終了時において、子機のプレーヤキャラクタの位置情報以外のゲームデータであって、マルチプレイモード中の進行データが反映されないゲームデータをセーブする。
【０１４３】
また、子機は、プレーヤの入力情報に基づいてマルチプレイゲームを途中で中断することができる。かかる場合には、子機は、クエスト開始後に中断する場合には、クエスト開始時（Ｑ３時点）にセーブしたセーブデータに基づいて、シングルプレイモードでゲームを再開させる処理を行う。
【０１４４】
また、子機は、クエスト開始後に、通信エラーが発生した場合には、図６に示すクエスト開始時（Ｑ３時点）にセーブしたセーブデータに基づいて、シングルプレイモードでゲームを開始させる処理を行う。
【０１４５】
なお、マルチプレイ終了時に行うセーブ処理は、プレーヤの入力情報によらずに、自動的にセーブ処理を行うようにしてもよい。かかる場合には、ゲーム開始時にロードされたセーブデータのファイルに上書きしてセーブ処理を行うようにしてもよい。
【０１４６】
４．フローチャート
（１）マルチプレイモードへの切り替え処理
本実施形態において、各ゲーム機におけるマルチプレイモードへの切り替え処理の流れについて、図９を用いて説明する。
【０１４７】
まず、マルチプレイモードへの切り替え情報を受け付けたか否かを判断する処理を行う（ステップＳ１０）、プレーヤからのマルチプレイモードへの切り替え情報を受け付けた場合には（ステップＳ１０のＹ）、ゲームデータをセーブする処理を行う（ステップＳ１１）。そして、通信モードの選択を受け付ける処理を行う。例えば、アドホックモード又はインフラストラクチャモードの選択を受け付ける処理を行う（ステップＳ１２）。
【０１４８】
そして、親機又は子機の選択を受け付ける処理を行う（ステップＳ１３）。親機の選択を受け付けた場合には（ステップＳ１４のＹ）、親機の処理に進む。一方、子機の選択を受け付けた場合には（ステップＳ１４のＮ）、子機の処理に進む。
【０１４９】
（２）親機の処理
図１０を用いて、本実施形態の親機の処理について説明する。まず、通信を開始させる（ステップＳ２０）。そして、参加募集パケットを生成して、子機に送信する処理を行う（ステップＳ２１）。そして、子機から送信された当該参加募集パケットに対する参加要求パケットを、受信する処理を行う（ステップＳ２２）。そして、マルチプレイゲームを開始させる（ステップＳ２３）。
【０１５０】
そして、クエストが決定されると（ステップＳ２４）、ゲームデータをセーブする処理を行う（ステップＳ２５）。そして、クエスト開始情報を子機に送信する処理を行う（ステップＳ２６）。そして、クエストを開始させる処理を行う（ステップＳ２７）。そして、クエストが終了すると（ステップＳ２８）、ゲームデータをセーブする処理を行い（ステップＳ２９）、シングルモードへ移行させる処理を行う（ステップＳ３０）。以上で処理が終了する。
【０１５１】
（３）子機の処理
図１０を用いて、本実施形態の子機の処理について説明する。まず、通信を開始させる（ステップＳ４０）。そして、親機から送信された参加募集パケットを、受信する処理を行う（ステップＳ４１）。そして、当該参加募集パケットに対する参加要求パケットを、親機に送信する処理を行う（ステップＳ４２）。そして、マルチプレイゲームを開始させる（ステップＳ４３）。
【０１５２】
そして、クエスト開始情報を受信すると（ステップＳ４４）、ゲームデータをセーブする処理を行う（ステップＳ４５）。そして、クエストを開始させる処理を行う（ステップＳ４６）。そして、クエストが終了すると（ステップＳ４７）、ゲームデータをセーブする処理を行い（ステップＳ４８）、シングルモードへ移行させる処理を行う（ステップＳ４９）。以上で処理が終了する。
【０１５３】
５．応用例
（１）子機の処理
本実施形態では、図１１に示すように、各ゲーム機において、自機が子機として機能する場合においての子機用のクエストの開始フラグＦｃやクエストのクリアフラグＦｄなどを設定してゲーム処理を行ってもよい。なお、開始フラグＦｃ、クリアフラグＦｄは、子機側で更新処理を行うことができる。また、開始フラグＦｃ、クリアフラグＦｄの初期値は、０である。
【０１５４】
例えば、マルチプレイモードにおいて、子機は、親機から「クエスト３」の開始情報を受信した場合には、「クエスト３」の子機用の開始フラグＦｃを１に更新する処理を行う。そして、子機は、開始フラグＦｃ＝１を更新して、開始フラグＦｃを含むゲームデータをセーブする処理を行う。また、「クエスト３」がクリアした場合には、「クエスト３」のクリアフラグＦｄを１に更新する処理を行う。
【０１５５】
このようにすれば、開始フラグＦａ、Ｆｃを用いて、種々の処理を行うことができる。例えば、クエスト開始時のムービーの再生を省略させることができる。
【０１５６】
より具体的に説明すると、マルチプレイモードにおいて、クエストが開始されると、クエスト開始時のムービーが所定期間Ｓにわたって再生されるとする。すると、プレーヤは、同じクエストを複数回プレイする場合、毎回、同じムービーを繰り返し見ることになってしまう。このような状況下では、いずれかのプレーヤが飽きてしまいマルチプレイゲームを辞退しかねない。そこで、親機の開始フラグＦａの値が１であり、子機の開始フラグＦｃの値が１である場合には、クエスト開始時のムービーを再生を省略する処理を行う。
【０１５７】
例えば、図１２を用いて説明すると、マルチプレイゲームが開始されて、「クエスト３」が決定された時点で、親機１０＿１の「クエスト３」の開始フラグＦａ、子機１０＿２の「クエスト３」の開始フラグＦｃ、子機１０＿３の「クエスト３」の開始フラグＦｃの少なくとも１つが０である場合には、ムービーを再生させる。そして、親機１０＿１の「クエスト３」の開始フラグＦａを１に更新し、子機１０＿２の「クエスト３」の開始フラグＦｃを１に更新し、子機１０＿３の「クエスト３」の開始フラグＦｃを１に更新して、セーブする処理を行い、ムービーを再生させる処理を行う。
【０１５８】
そして、親機１０＿１、子機１０＿２、１０＿３が再度マルチプレイゲームを行う場合に、「クエスト３」が決定された時点で、親機１０＿１の「クエスト３」の開始フラグＦａが１であり、子機１０＿２、１０＿３の「クエスト３」の開始フラグＦｃが１であるので、クエスト開始時のムービー再生を省略する処理を行う。
【０１５９】
以上のように、子機用のクエストの開始フラグＦｃ、終了フラグＦｄを用いて、マルチプレイゲームにおいて有益なゲーム処理を行うことができる。
【符号の説明】
【０１６０】
１００  処理部、１１０  受け付け部、１１１  オブジェクト空間設定部、
１１２  移動・動作処理部、１１３  ネットワーク設定部、
１１４  通信制御部、１１５  ゲーム処理部、
１１６  セーブ処理部、１１７  切り替え部、
１２０  描画部、１３０  音生成部、
１６０  入力部、１６２  検出部、
１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、
１８０  情報記憶媒体、１８２  セーブデータ格納領域、
１９０  表示部、１９２  音出力部、１９６  通信部、
２００  処理部、
２１０  ネットワーク設定部、２１２  通信制御部、
２１６  マッチング処理部、２６０  データベース、
２７０  記憶部、２７２  主記憶部
２８０  情報記憶媒体、２９６  通信部
【図１】
2010227455.tif 000003
【図２】
2010227455.tif 000004
【図３】
2010227455.tif 000005
【図４】
2010227455.tif 000006
【図５】
2010227455.tif 000007
【図６】
2010227455.tif 000008
【図７】
2010227455.tif 000009
【図８】
2010227455.tif 000010
【図９】
2010227455.tif 000011
【図１０】
2010227455.tif 000012
【図１１】
2010227455.tif 000013
【図１２】
2010227455.tif 000014