以下、本発明の実施形態の例について図面に基づき詳細に説明する。
図1は本発明の実施形態に係るゲームシステムの全体構成を示す。図1に示すように、本実施形態に係るゲームシステム1はサーバ10(ゲーム制御装置)と複数のゲーム装置20A,20Bとを含む。なお、図1では二台のゲーム装置20A,20Bがゲームシステム1に含まれているが、三台以上のゲーム装置がゲームシステム1に含まれるようにしてもよい。
サーバ10とゲーム装置20A,20Bとの間では通信ネットワーク2を介してデータ通信が可能である。さらに、ゲーム装置20A,20Bの間でも通信ネットワーク2を介してデータ通信が可能である。
サーバ10は例えばサーバコンピュータによって実現される。図2はサーバ10のハードウェア構成の一例を示す。図2に示すように、サーバ10は制御部11、記憶部12、光ディスクドライブ部13、及び通信部14を含む。
制御部11は例えばマイクロプロセッサ等を含み、オペレーティングシステムやその他のプログラムに従って処理を実行する。記憶部12は主記憶部(例えばRAM)及び補助記憶部(例えばハードディスクドライブ又はソリッドステートドライブ)を含む。光ディスクドライブ部13は光ディスクに記憶されたプログラムやデータを読み取る。通信部14は通信ネットワーク2に接続するためのインタフェースである。
サーバ10はデータベース15にアクセスできるようになっている。データベース15はサーバ10に構築されていてもよいし、サーバ10とは別のサーバコンピュータに構築されていてもよい。ゲームを提供するために必要なデータがデータベース15に記憶される。
ゲーム装置20A,20Bはユーザが使用するコンピュータであり、特にユーザがゲームをプレイするために使用するコンピュータである。なお以下では、ゲーム装置20A,20Bのことを総称して「ゲーム装置20」と記載する場合である。
ゲーム装置20Aは、例えば家庭用ゲーム機(据置型ゲーム機)、携帯用ゲーム機、又はパーソナルコンピュータ等である。ゲーム装置20Aは有線LAN又は無線LANを介してデータ通信を行うようになっている。
一方、ゲーム装置20Bは、例えば携帯電話機(スマートフォンを含む)、又は携帯情報端末等である。ゲーム装置20Bは移動通信網を介してデータ通信を行うようになっている。すなわち、ゲーム装置20Bは、携帯電話事業者が設置した基地局4を介してデータ通信を行うようになっている。
ゲーム装置20Aではゲーム装置20Bよりも高速のデータ通信が行われる。一方、ゲーム装置20Bではゲーム装置20Aと同程度の高速データ通信を行うことが難しく、ゲーム装置20Bではゲーム装置20Aよりも低速のデータ通信が主に行われる。
図3はゲーム装置20のハードウェア構成の一例を示す。図3に示すように、ゲーム装置20は制御部21、記憶部22、光ディスクドライブ部23、通信部24、操作部25、表示部26、及び音声出力部27を含む。制御部21、記憶部22、光ディスクドライブ部23、及び通信部24はサーバ10の制御部11、記憶部12、光ディスクドライブ部13、及び通信部14と同様である。なお、光ディスクドライブ部23は省略される場合がある。
操作部25は、ユーザがゲーム操作を行うためのものである。例えば、ゲーム装置20が家庭用ゲーム機である場合、家庭用ゲーム機に備えられるゲームコントローラが操作部25に相当する。
図4A及び図4Bはゲームコントローラの一例を示す。図4A及び図4Bに示すように、ゲームコントローラ30の表面31には複数の操作部材が備えられている。例えば、方向ボタン群32と、ボタン33,34,35,36と、スティック(レバー)37L,37Rとがゲームコントローラ30の表面31に備えられている。
方向ボタン群32は例えば方向を指示するために用いられる。方向ボタン群32は、上方向に対応する上ボタン32Uと、下方向に対応する下ボタン32Dと、左方向に対応する左ボタン32Lと、右方向に対応する右ボタン32Rと、を含む。ボタン33,34,35,36は各種ゲーム操作に用いられる。ボタン33,34,35,36の表面には、それぞれ、ばつ、円、四角形、三角形のマークが付されている。スティック37L,37Rも例えば方向を指示するために用いられる。スティック37L,37Rは、ゲームコントローラ30の筐体の表面31に直立しており、この直立状態から全方位に傾倒自在に構成されている。
ゲームコントローラ30の各操作部材の状態は一定周期毎(例えば1/60秒ごと)にスキャンされ、そのスキャン結果を表す操作信号が制御部21に供給される。この操作信号に基づいてユーザの操作が判定される。
なお、ゲーム装置20が携帯用ゲーム機である場合、図4A及び図4Bに示すゲームコントローラ30に含まれている操作部材と同様の操作部材が携帯用ゲーム機本体に備えられており、これらの操作部材が操作部25に相当する。
また、ゲーム装置20がパーソナルコンピュータである場合、パーソナルコンピュータに備えられているマウス又はキーボードが操作部25に相当する。また、ゲーム装置20が携帯電話機又は携帯情報端末である場合、携帯電話機又は携帯情報端末に備えられているキー、スティック、又はタッチパネル等が操作部25に相当する。
表示部26は例えば液晶表示パネル又は有機ELディスプレイ等であり、制御部21の指示に従って画面を表示する。音声出力部27は例えばスピーカ又はヘッドホン等であり、制御部21の指示に従って音声データを出力する。
プログラムやデータは光ディスクを介してサーバ10又はゲーム装置20に供給される。なお、サーバ10又はゲーム装置20は、光ディスク以外の情報記憶媒体(例えばメモリカード)に記憶されたプログラム又はデータを読み取るための構成要素を含むようにしてもよい。また、光ディスク以外の情報記憶媒体を介してサーバ10又はゲーム装置20にプログラムやデータを供給するようにしてもよい。あるいは、通信ネットワーク2を介して遠隔地からサーバ10又はゲーム装置20にプログラムやデータを供給するようにしてもよい。
ゲームシステム1では、複数のゲーム装置20に係る複数のユーザが参加するゲームが実行される。以下では、複数のユーザが参加するゲームの一例として、複数のユーザが対戦するサッカーゲームについて説明する。ここでは、ゲーム装置20A,20Bのユーザが対戦する場合について説明する。
なお、以下では、ゲーム装置20Aでプレイするユーザのことを「ユーザA」と記載し、ゲーム装置20Bでプレイするユーザのことを「ユーザB」と記載する。また、ユーザAの指示に基づいて行動するサッカーチームのことを「サッカーチームA」と記載し、ユーザBの指示に基づいて行動するサッカーチームのことを「サッカーチームB」と記載する。
図5はサッカーゲームの流れの一例を示す図である。図5に示すように、まず、ユーザA,Bの各々は予め用意された複数のサッカーチームのうちのいずれかを選択する(S101)。その後、ユーザA,Bの各々はサッカーチームの作戦等を設定する(S102)。
具体的には、サッカーチームの作戦が設定される。例えば、攻守のバランスとして、「攻撃重視」、「守備重視」、又は「バランス(攻撃及び守備をバランス良く行う)」のいずれかが選択される。また例えば、攻撃の仕方として、「カウンターアタック」、「サイドアタック」、及び「中央突破」のいずれかが選択される。
また、サッカーチームのフォーメーションが設定される。例えば、予め用意された複数のフォーメーションのうちのいずれかが選択されることによって、フォワード(FW)、ミッドフィルダー(MF)、及びディフェンダー(DF)の配置が決定される。
さらに、試合に出場する選手キャラクタが選択される。すなわち、フォーメーションの各ポジションに割り当てる選手キャラクタが選択される。例えば、18名の選手キャラクタがサッカーチームに所属している場合、それら18名の選手キャラクタのうちから11名の選手キャラクタが選択される。
サッカーチームの作戦等の設定が完了した場合、試合が開始される(S103)。すなわち、ユーザAの指示に基づいて行動するサッカーチームAと、ユーザBの指示に基づいて行動するサッカーチームBと、の間の試合が行われる。
この場合、ユーザA,Bに共通なゲーム空間が構築される。図6はゲーム空間の一例について示す。図6に示すゲーム空間40は、互いに直交する3つの座標軸Xw,Yw,Zwが設定された仮想3次元空間である。
ゲーム空間40には、サッカーフィールドを表すオブジェクトであるフィールド42が配置され、サッカーゴールを表すオブジェクトであるゴール44がフィールド42上に配置される。また、サッカーボールを表すオブジェクトであるボール46もゲーム空間40に配置される。ゴール44の一方はサッカーチームAに関連づけられ、他方はサッカーチームBに関連づけられる。いずれか一方のサッカーチームに関連づけられたゴール44内にボール46が移動すると、他方のサッカーチームの得点イベントが発生する。
さらに、サッカーチームAに所属するサッカー選手を表すオブジェクトである選手キャラクタ48と、サッカーチームBに所属するサッカー選手を表すオブジェクトである選手キャラクタ50と、がゲーム空間40に配置される。図6では省略されているが、サッカーチームAに所属する11名の選手キャラクタ48と、サッカーチームBに所属する11名の選手キャラクタ50と、がゲーム空間40に配置される。
ところで、上述のように、ゲーム装置20A(家庭用ゲーム機)とゲーム装置20B(携帯電話機)との間では通信環境(通信速度)が大きく異なっているため、サッカーゲームの対戦中にユーザが不満を感じることがある。この点、ゲームシステム1では、通信環境の良いゲーム装置20AのユーザAと、ゲーム装置20Aよりも通信環境が劣っているゲーム装置20BのユーザBとの間でも不満を感じさせずに対戦を行うことが可能になっている。
具体的には、通信環境(通信品質)が異なるゲーム装置20A,20Bにおいて、異なるゲームモードでゲームが実行されることによって、それらゲーム装置20A,20Bの間でも対戦を行うことが可能になっている。以下、この点について説明する。
例えば、通信環境が良いゲーム装置20Aにおけるゲームモードは「アクションモード」に設定される。下記に説明するように、アクションモードは、ユーザAの操作に応じて選手キャラクタ48がリアルタイムに動作するゲームモードである。アクションモードの場合、ユーザAはゲーム画面を見ながらゲームコントローラ30を操作することによって、選手キャラクタ48が行うべき動作を細かく指示できるようになっている。
なお、アクションモードでは、ユーザAの操作に応じて選手キャラクタ48をリアルタイムに行動させる必要があるため、ゲームを実行するための通信頻度が高くなる。このため、「アクションモード」は「通信頻度の高いゲームモード」と言い換えることも可能である。
図7はアクションモードの場合におけるゲーム画面の一例を示す。アクションモードの場合におけるゲーム画面60には、ゲーム空間40内に設定される仮想カメラ52の視野画像が表示される。図7に示すゲーム画面60には、ボール46と、サッカーチームAに所属する5名の選手キャラクタ48と、サッカーチームBに所属する2名の選手キャラクタ50と、が表示されている。なお、仮想カメラ52は、ボール46が常にゲーム画面60に表示されるようにすべく、ボール46の移動に基づいてゲーム空間40内を移動する。
また、ゲーム画面60にはカーソル62が表示されている。カーソル62は、ユーザAの操作対象になっている選手キャラクタ48を示す。なお、ユーザAの操作対象は、ボール46の移動やユーザAの切替操作に従って、サッカーチームに属する選手キャラクタ48のうちで切り替わるようにしてもよいし、一の選手キャラクタ48に固定されるようにしてもよい。
ユーザAの操作対象になっている選手キャラクタ48はユーザAの操作に従って行動する。例えば、ユーザAの操作対象になっている選手キャラクタ48は、ユーザAの方向指示操作に従ってゲーム空間40内を移動する。なお、ユーザAの操作対象になっている選手キャラクタ48がボール46を保持している場合、当該選手キャラクタ48の移動動作はドリブル動作になる。
また例えば、ユーザAの操作対象になっている選手キャラクタ48がボール46を保持している場合、当該選手キャラクタ48はユーザAの動作指示操作に従ってパス又はシュート動作を行う。
図8は、ユーザが行う動作指示操作と、選手キャラクタ48が行う動作と、の対応関係の一例を示す図である。図8において、「操作部材」欄のばつ、円、四角形、三角形のマークは、それぞれ、ボタン33,34,35,36を示している。なお、動作指示操作と動作との対応関係はユーザが任意に設定できるようにしてもよい。
図8に示す対応関係ではボタン33とショートパスとが対応づけられている。このため、ユーザAがボタン33を押下した場合、ユーザAの操作対象になっている選手キャラクタ48はショートパスを行う。また、図8に示す対応関係ではボタン34とシュートとが対応づけられている。このため、ユーザAがボタン34を押下した場合、ユーザAの操作対象に設定されている選手キャラクタ48はシュートを行う。
なお、サッカーチームAに属する選手キャラクタ48のうちで、ユーザAの操作対象になっていない選手キャラクタ48はAI(人工知能)に従って行動する。AIは選手キャラクタ48(又は選手キャラクタ50)の行動を制御(決定)するためのデータである。ユーザAの操作対象になっていない選手キャラクタ48は、各自のポジション(FW、MF、DF、又はGK)やサッカーチームAのフォーメーション、攻守バランス、及び作戦に応じたAIによって制御されるようになっており、ユーザAの操作対象になっていない選手キャラクタ48は、各自のポジションやサッカーチームAのフォーメーション、攻守バランス、及び作戦に従った行動を行うようになっている。
以上のように、アクションモードでは、ボール46及び選手キャラクタ48,50の映像がゲーム画面60に表示されるようになっており、ユーザAはゲーム画面60を見ながらゲームコントローラ30を操作することによって、選手キャラクタ48が行うべき動作を細かく指示できるようになっている。通信環境の良いゲーム装置20のゲームモードはこのような「アクションモード」に設定される。
一方、通信環境の良くないゲーム装置20Bにおけるゲームモードは「テキストモード」に設定される。テキストモードでは、ゲーム空間40の現在の状況を表す映像が表示されることはなく、ゲーム空間40の現在の状況がテキスト等によって簡易的に示される。また、テキストモードは、アクションモードとは異なり、個々の選手キャラクタ50を操作するようなモードではなく、監督として選手キャラクタ50に指示を与えるようなモードである。
なお、テキストモードでは、アクションモードと異なり、ユーザBの操作に応じて選手キャラクタ50をリアルタイムに行動させる必要がないため、ゲームを実行するための通信頻度が低くなる。このため、「テキストモード」は「通信頻度の低いゲームモード」と言い換えることも可能である。
図9はテキストモードの場合におけるゲーム画面の一例を示す。なお、アクションモードの場合におけるゲーム画面60と区別するために、以下では、テキストモードの場合におけるゲーム画面のことを「簡易ゲーム画面」と記載する。
図9に示す簡易ゲーム画面70はサッカーチーム情報欄72を含んでいる。サッカーチーム情報欄72には、サッカーチームA,Bに関する情報が表示される。例えば、サッカーチームAに属する選手キャラクタ48や,サッカーチームBに属する選手キャラクタ50に関する情報がサッカーチーム情報欄72に表示される。
また、簡易ゲーム画面70は、試合の現在状況を示す現在状況欄74を含んでいる。現在状況欄74は経過時間欄74A、得点欄74B、レーダー欄74C、及び実況欄74Dを含んでいる。経過時間欄74Aは経過時間を示し、得点欄74BはサッカーチームA,Bの得点を示す。
レーダー欄74Cにはレーダー画像が表示される。レーダー画像は、ボール46、サッカーチームAに属する選手キャラクタ48や,サッカーチームBに属する選手キャラクタ50の位置を示す。図9に示す例の場合、星印はボール46の位置を示している。また、白丸印はサッカーチームAに属する選手キャラクタ48の位置を示し、黒丸印はサッカーチームBに属する選手キャラクタ50の位置を示す。なお、図9では一部省略されているが、実際には11個の白丸印と11個の黒丸印がレーダー画像には表示される。
実況欄74Dには、ゲーム空間40内で行われた行動を示すテキストが表示される。ユーザBはレーダー欄74C及び実況欄74Dを見ることによって、ゲーム空間40の現在状況を把握することができる。
また、簡易ゲーム画面70は手動更新ボタン76A及び自動更新ボタン76Bを含んでいる。ユーザBは手動更新ボタン76A及び自動更新ボタン76Bのいずれかを選択する。図9に示す例は、手動更新ボタン76Aが選択されている場合を示している。
現在状況欄74を自動で更新することを希望する場合、ユーザBは自動更新ボタン76Bを選択する。自動更新ボタン76Bが選択された場合、所定時間(例えば30秒)ごとに現在状況欄74の更新が自動的に実行される。
一方、現在状況欄74を自動で更新することを希望しない場合、ユーザBは手動更新ボタン76Aを選択する。手動更新ボタン76Aが選択された場合、ユーザBが更新ボタン78をクリックした場合に現在状況欄74の更新が実行されることになる。
また、簡易ゲーム画面70はリンクボタン80,82,84,86を含んでいる。リンクボタン80はサッカーチームBの作戦を変更するためのリンクボタンである。リンクボタン80が選択された場合、サッカーチームBの作戦を変更するための作戦変更画面がゲーム装置20Bの表示部26に表示される。
図10は作戦変更画面の一例を示す。図10に示す作戦変更画面90は選択欄92,94を含んでいる。
選択欄92は攻守バランスを選択するためのものである。ユーザは選択欄92に表示されている複数の選択肢のうちのいずれかを選択する。なお、選択肢「攻撃重視」は、攻撃を重視することを指示するための選択肢であり、選択肢「守備重視」は、守備を重視することを指示するための選択肢である。また、選択肢「バランス」は、攻撃及び守備をバランスよく行うことを指示するための選択肢である。
選択欄94は攻撃の仕方を選択するためのものである。選択欄94には攻撃の仕方に関する複数の選択肢が表示されている。ユーザは選択欄94に表示されている複数の選択肢のうちのいずれかを選択する。
選択欄92,94における選択を行った後、ユーザは変更ボタン96をクリックする。変更ボタン96がクリックされた場合、ユーザの選択内容に基づいて、サッカーチームBの作戦が変更され、簡易ゲーム画面70に戻る。
リンクボタン82はサッカーチームBのフォーメーションを変更するためのリンクボタンである。リンクボタン82が選択された場合、サッカーチームBのフォーメーションを変更するための画面(図示せず)がゲーム装置20Bの表示部26に表示される。
リンクボタン84はサッカーチームBの選手交代を行うためのリンクボタンである。リンクボタン84が選択された場合、サッカーチームBの選手交代を行うための画面(図示せず)がゲーム装置20Bの表示部26に表示される。
リンクボタン86は、サッカーチームBの作戦変更、フォーメーション変更や、選手交代をコンピュータに任せるためのボタンである。リンクボタン86が選択されると、それ以降、サッカーチームBの作戦変更、フォーメーション変更や、選手交代がコンピュータによって自動的に行われることになる。
テキストモードの場合、サッカーチームBに属するすべての選手キャラクタ50はAIに従って行動する。すなわち、サッカーチームBに属するすべての選手キャラクタ50は、各自のポジションやサッカーチームBのフォーメーション、攻守バランス、及び作戦に応じたAIによって制御される。
以上のように、テキストモードでは、試合の現在状況を示すテキストが表示されるようになっており、ユーザBは上記テキストによって試合の現在状況を把握しつつ、サッカーチームBの作戦変更、フォーメーション変更や、選手交代を行う。このようなゲームモードが「テキストモード」である。テキストモードの場合、ゲームを実行するためにかかる通信量が軽減される。その結果、通信環境の良いゲーム装置20Aと、通信環境の良くないゲーム装置20Bと、の間でも対戦を行うことが可能になる。
以下、上記のような機能を実現するための構成について説明する。まず、データベース15に記憶されるデータについて説明する。図11はデータベース15に記憶されるデータの一例である。
図11はユーザテーブルの一例を示す。ユーザテーブルは、ゲームシステム1が提供するサービスを利用するユーザのリストを示す。ユーザテーブルは「ユーザID」、「パスワード」、「ゲーム装置情報」、及び「状態」フィールドを含む。
「ユーザID」フィールドは、ユーザを一意に識別するための識別情報(ユーザID)を示す。「パスワード」フィールドは、ユーザによって指定されたパスワードを示す。「ゲーム装置情報」フィールドは、ユーザのゲーム装置20と通信するために必要な情報(例えばIPアドレス等)を示す。「状態」フィールドはユーザの状態を示す。例えば、「状態」フィールドは、ユーザがゲームシステム1にログインしているか否かや、ユーザが対戦を要求しているか否かを示す。
次に、ゲームシステム1で実現される機能ブロックについて説明する。図12はゲームシステム1で実現される機能ブロックの一例を示す機能ブロック図である。図12に示すように、ゲームシステム1は通信品質情報取得部100及びゲームモード設定部102を含む。これらの機能ブロックは例えばサーバ10の制御部11又はゲーム装置20の制御部21によって実現される。
通信品質情報取得部100について説明する。通信品質情報取得部100は、ゲーム装置20の通信品質に関する通信品質情報を取得する。例えば、通信品質情報取得部100は、通信速度に関する情報を通信品質情報として取得する。通信品質情報取得部100の詳細については後述する。
ゲームモード設定部102について説明する。ゲームモード設定部102は、ゲーム装置20におけるネットワークゲームのゲームモードを、当該ゲーム装置20の通信品質情報に基づいて設定する。
例えば、ゲーム装置20の通信品質が第1の通信品質である場合、ゲームモード設定部102は、当該ゲーム装置20のゲームモードを第1のゲームモードに設定する。また、ゲーム装置20の通信品質が第2の通信品質(第1の通信品質よりも低い通信品質)である場合、当該ゲーム装置20のゲームモードを第2のゲームモードに設定する。
ここで、「第1のゲームモード」とは、「ゲーム装置20に含まれる複数の操作部材と、操作対象の動作と、の対応関係に関する対応関係情報と、ユーザが行った操作内容と、に基づいて、当該ユーザの操作対象が動作するようなゲームモード」である。例えば、アクションモードが「第1のゲームモード」に相当する。例えば、図8に示すような情報が上記「対応関係情報」に相当し、ユーザの操作対象になっている選手キャラクタ48が上記「操作対象」に相当する。
また、「第2のゲームモード」とは、「操作対象の動作に関連する複数の選択肢がゲーム装置20において表示され、それら複数の選択肢のうちからユーザによって選択された選択肢に基づいて、当該ユーザの操作対象が動作するようなゲームモード」である。例えば、テキストモードが「第2のゲームモード」に相当する。例えば、図10に示す作戦変更画面90の選択欄92,94に表示される選択肢が上記「選択肢」に相当し、サッカーチームBに属する選手キャラクタ50が上記「操作対象」に相当する。
なお、第1のゲームモード(アクションモード)と第2のゲームモード(テキストモード)とでは、ユーザが行うことが可能なゲーム操作が異なっている。すなわち、第1のゲームモード(アクションモード)の場合、ユーザは個々の選手キャラクタ48が行うべき動作を細かく指示できるのに対し、第2のゲームモード(テキストモード)の場合、ユーザが行うことが可能な操作が、サッカーチームの作戦等を指示する操作、すなわち、選手キャラクタ50が行うべき動作を大まかに指示する操作に限られる。
このため、ゲームモード設定部102は、ゲーム装置20においてユーザが行うことが可能なゲーム操作を、当該ゲーム装置20の通信品質情報に基づいて設定するものであるということもできる。
次に、以上に説明した機能ブロックを実現するためにゲームシステム1で実行される処理について説明する。
図13は、ユーザが他のユーザと対戦することを希望した場合に実行される処理の一例を示す図である。サーバ10の制御部11が図13に示す処理をプログラムに従って実行することによって、制御部11が通信品質情報取得部100及びゲームモード設定部102として機能するようになる。
図13に示すように、まず、ゲーム装置20の制御部21は当該ゲーム装置20の通信品質を計測する(S201)。
例えば、制御部21は、ゲーム装置20と所定の通信相手装置との間のデータ授受にかかる時間を計測することによって、ゲーム装置20の通信品質を判断する。より具体的には、制御部21は特定のパケットをサーバ10に送信する。このパケットを受信したサーバ10はそのパケットをゲーム装置20に返信する。そして、制御部21はパケットの送信時点からパケットの受信時点までにかかった時間を計測する。制御部21はこの時間を通信品質情報として用いる。
その後、制御部21はサーバ10に対戦を要求する(S202)。この場合、ユーザのユーザIDやステップS201で取得された通信品質情報がサーバ10に送信される。
上記要求がサーバ10で受信された場合、サーバ10の制御部11(通信品質情報取得部100)はゲーム装置20から受信された通信品質情報を取得し、この通信品質情報に基づいて、当該ゲーム装置20の通信品質が低いか否かを判定する(S203)。
なお、「通信品質が低い」とは、アクションモードでゲームを実行するのに十分な通信品質(通信速度等)を有していないことを意味する。また、通信品質が低いか否かの判定は、通信品質が低いか否かを判定するための判定基準に基づいて行われる。すなわち、制御部11は、ゲーム装置20から受信された通信品質情報が上記判定基準を満足するか否かを判定することによって、ゲーム装置20の通信品質が低いか否かを判定する。
より具体的には、制御部11は、ステップS201で計測された時間が閾値以上であるか否かを判定する。そして、上記時間が閾値以上である場合、制御部11はゲーム装置20の通信品質が低いと判定し、上記時間が閾値未満である場合、制御部11はゲーム装置20の通信品質が低くないと判定する。
ゲーム装置20の通信品質が低くないと判定された場合、制御部11(ゲームモード設定部102)は、当該ゲーム装置20におけるゲームモードを「アクションモード」に決定する(S204)。一方、ゲーム装置20の通信品質が低いと判定された場合、制御部11(ゲームモード設定部102)は、当該ゲーム装置20におけるゲームモードを「テキストモード」に決定する(S205)。
ゲーム装置20におけるゲームモードが決定された後、制御部11は対戦相手を決定する(S206)。すなわち、制御部11は、対戦を希望している他のユーザのうちから対戦相手を選出する。
対戦相手が決定された場合、制御部11は対戦の実行開始をゲーム装置20に指示する(S207)。なお、この場合、制御部11は、対戦相手として選出されたユーザのゲーム装置20にも対戦の実行開始を指示する。
例えば、対戦はピアツーピア方式で実行される。なお、対戦はサーバ/クライアント方式で実行されるようにしてもよい。なお、ここでは、対戦がピアツーピア方式で実行されるについて説明し、後に、対戦がサーバ/クライアント方式で実行される場合について説明する。
ピアツーピア方式で対戦が実行される場合、制御部11は、当該対戦を行うユーザのうちのいずれかのゲーム装置20をゲームサーバとして選出する。この場合、制御部11は、ゲームモードが「アクションモード」に決定されたゲーム装置20を、ゲームモードが「テキストモード」に決定されたゲーム装置20よりも優先的にゲームサーバとして選出する。
その後、制御部11は、対戦を行う各ユーザのゲーム装置20に下記情報を送信する。
(1)対戦相手のゲーム装置20とデータ通信するために必要な情報(IPアドレス等)
(2)ゲームサーバの役割を担うべきゲーム装置20を示す情報
対戦を行う各ユーザのゲーム装置20において上記情報が受信されると、それらのゲーム装置20の間でデータ通信が開始され、対戦の実行が開始される(S208)。例えば図5に示す手順が行われた後に、試合が開始される。
以下、試合中に実行される処理について説明する。ここでは下記のような場合を想定する。
(1)ユーザAの指示に基づいて行動するサッカーチームAと、ユーザBの指示に基づいて行動するサッカーチームBと、の間の試合を実行する。
(2)ユーザAのゲーム装置20Aのゲームモードは「アクションモード」に設定され、ユーザBのゲーム装置20Bのゲームモードは「テキストモード」に設定されている。
(3)ピアツーピア方式で試合を実行する。
(4)ゲーム装置20Aがゲームサーバとして選出されている。
図14はゲーム装置20Aが試合中に実行する処理の一例を示す図である。ゲーム装置20Aでは、試合中に、図14に示す処理が所定時間(例えば1/60秒)ごとに実行される。その結果として、ゲーム装置20Aでは所定時間ごとにゲーム画面60が更新される。なお、図14において「ゲーム装置A」とはゲーム装置20Aのことを示している。
図14に示すように、まずゲーム装置20Aの制御部21はユーザAの操作データを取得する(S301)。そして、ゲーム装置20Aはゲーム状況データを更新する(S302)。
なお、ゲーム状況データとはゲームの現在状況を示すデータである。例えば、ゲーム空間40に配置されたオブジェクトの現在状態を示すデータや、試合の進行状況を示すデータがゲーム状況データに含まれる。例えば、下記のようなデータがゲーム状況データに含まれる。
(1)ボール46の状態データ(位置データ、移動方向データ、及び移動速度データ等)
(2)選手キャラクタ48,50の状態データ
(3)仮想カメラ52の状態データ(位置データ、視線方向データ、及び画角データ等)
(4)得点データ
(5)経過時間データ
また、選手キャラクタ48,50の状態データには、例えば下記のようなデータが含まれる。
(1)選手キャラクタ48,50の現在の位置を示すデータ
(2)選手キャラクタ48,50の現在の向きを示すデータ
(3)選手キャラクタ48,50の現在の姿勢を示すデータ
(4)選手キャラクタ48,50が現在行っている動作の種類を示すデータ
(5)選手キャラクタ48,50がボール46を保持しているか否かを示すデータ
ステップS302において、制御部21は、ユーザAの操作対象になっている選手キャラクタ48の状態データを、ステップS301で取得された操作データに基づいて更新する。
例えば、ユーザAが方向ボタン群32又はスティック37Lを用いて移動方向を指示している場合、制御部21は、当該移動方向に向けて移動させるべく、ユーザAの操作対象になっている選手キャラクタ48の位置及び向き等を更新する。
また例えば、ユーザAの操作対象になっている選手キャラクタ48がボール46を保持している状態でユーザAがボタン33〜36のうちのいずれかを押下した場合、制御部21は、当該ボタンに対応づけられた動作を、図8に示す情報に基づいて特定する。そして、制御部21は、当該動作を行わせるべく、ユーザAの操作対象になっている選手キャラクタ48の姿勢等を更新する。
また、ステップS302において、制御部21は、サッカーチームAに属する選手キャラクタ48のうちの、ユーザAの操作対象になっていない選手キャラクタ48の状態データを更新する。
例えば、制御部21は、予め用意されているAIのうちから、選手キャラクタ48のポジション及びサッカーチームAの作戦・フォーメーション等に対応するものを選出する。そして、制御部21は、ユーザAの操作対象になっていない選手キャラクタ48が行うべき行動をAIに従って決定し、該行動を行わせるべく、ユーザAの操作対象になっていない選手キャラクタ48の状態データを更新する。
また、ステップS302において、制御部21はサッカーチームBに属する選手キャラクタ50の状態データを更新する。
例えば、制御部21は、予め用意されているAIのうちから、選手キャラクタ50のポジション及びサッカーチームBの作戦・フォーメーション等に対応するものを選出する。そして、制御部21は、サッカーチームBに属する選手キャラクタ50が行うべき行動AIに従って決定し、該行動を行わせるべく、選手キャラクタ50の状態データを更新する。
以上の他、ボール46の状態データ、仮想カメラ52の状態データ、得点データや、経過時間データもステップS302において更新される。
ゲーム状況データの更新が完了した場合、制御部21は、更新後のゲーム状況データに基づいて、ゲーム装置20Aの表示部26に表示されるゲーム画面60を更新する(S303)。
ゲームサーバとして選出されたゲーム装置20Aでは、試合中に、以上に説明した処理(S301〜S303)が所定時間(例えば1/30秒)ごとに繰り返し実行される。
図15も試合中に実行される処理の一例を示す図である。図15に示す処理は、ゲームモードが「テキストモード」に設定されているゲーム装置20Bに表示される簡易ゲーム画面70を更新するための処理である。
例えば、ゲーム装置20Bにおいて簡易ゲーム画面70の更新ボタン78がクリックされた場合に、図15に示す処理が実行される。あるいは、簡易ゲーム画面70の自動更新ボタン76Bが選択されている場合には所定時間(例えば30秒:第2の所定時間)ごとに図15に示す処理が実行される。なお、図15において「ゲーム装置A」とはゲーム装置20Aのことを示し、「ゲーム装置B」はゲーム装置20Bのことを示している。
例えば、ゲーム装置20Bにおいて簡易ゲーム画面70の更新ボタン78がクリックされた場合、制御部21は簡易ゲーム画面70の更新をゲーム装置20Aに要求する(S401)。
上記要求がゲーム装置20Aで受信された場合、ゲーム装置20Aの制御部21は、記憶部22に記憶されているゲーム状況データに基づいて、簡易ゲーム画面70のデータを生成する。そして、制御部21は当該データをゲーム装置20Bに送信する(S402)。ここで、「記憶部22に記憶されているゲーム状況データ」とは、図14に示す処理によって所定時間(例えば1/60秒)ごとに更新されるゲーム状況データである。
ゲーム装置20Bの制御部21は、ゲーム装置20Aから返信されたデータに基づいて、簡易ゲーム画面70を表示部26に表示する(S403)。このようにして、表示部26に表示される簡易ゲーム画面70が更新される。
なお、ステップS402では、簡易ゲーム画面70のデータを送信する代わりに、簡易ゲーム画面70を生成するためのデータを送信するようにしてもよい。例えば、ゲーム状況データの全部又は一部を送信するようにしてもよい。そして、ゲーム装置20B側で、ゲーム状況データに基づいて、現在状況欄74を更新するようにしてもよい。
図16も試合中に実行される処理の一例を示す図である。図16に示す処理は、ゲーム装置20Bにおいて簡易ゲーム画面70のリンクボタン80が選択された場合に実行される処理の一例を示す。
リンクボタン80が選択された場合、図16に示すように、ゲーム装置20Bの制御部21は作戦変更画面90のデータをゲーム装置20Aに要求する(S501)。
上記要求がゲーム装置20Aで受信された場合、ゲーム装置20Aの制御部21は作戦変更画面90のデータをゲーム装置20Bに送信する(S502)。そして、このデータに基づいて、ゲーム装置20Bの制御部21は作戦変更画面90を表示部26に表示する(S503)。
作戦変更画面90が表示されている間、制御部21は変更ボタン96がクリックされたか否かを監視する。そして、変更ボタン96がクリックされた場合、制御部21は作戦の変更をゲーム装置20Aに要求する(S504)。この場合、作戦変更画面90の選択欄92,94における選択結果を示すデータがゲーム装置20Aに送信される。
上記要求がゲーム装置20Aで受信された場合、ゲーム装置20Aの制御部21は、作戦変更画面90の選択欄92,94における選択結果に基づいて、サッカーチームBの作戦データを変更する(S505)。
その後、制御部21は簡易ゲーム画面70のデータをゲーム装置20Bに送信する(S506)。そして、このデータに基づいて、ゲーム装置20Bの制御部21は簡易ゲーム画面70を表示部26に表示する(S507)。
なお、ここでは、リンクボタン80が選択された場合に実行される処理について説明したが、他のリンクボタン82,84,86が選択された場合に実行される処理も同様である。
以上では、ゲーム装置20Aのゲームモードが「アクションモード」に設定されており、ゲーム装置20Bのゲームモードが「テキストモード」に設定されている場合に実行される処理について説明した。次に、ゲーム装置20A,20Bのゲームモードがともに「アクションモード」に設定されている場合に実行される処理について説明する。すなわち、下記のような場合を想定する。
(1)ユーザAの指示に基づいて行動するサッカーチームAと、ユーザBの指示に基づいて行動するサッカーチームBと、の間の試合を実行する。
(2)ユーザAのゲーム装置20Aのゲームモードは「アクションモード」に設定され、ユーザBのゲーム装置20Bのゲームモードは「アクションモード」に設定されている。
(3)ピアツーピア方式で試合を実行する。
(4)ゲーム装置20Aがゲームサーバとして選出されている。
図17は、ゲーム装置20A,20Bのゲームモードがともに「アクションモード」に設定されている場合に試合中に実行される処理の一例を示す。なお、図17に示す処理は所定時間(例えば1/30秒:第1の所定時間)ごとに繰り返し実行される。また、この場合、最新のゲーム状況を示すゲーム状況データがゲーム装置20Aの記憶部22に記憶され、そのゲーム状況データの複製がゲーム装置20Bの記憶部22に記憶される。
図17に示すように、ゲーム装置20Bの制御部21は、ユーザBが行ったゲーム操作に関する操作データをゲーム装置20Aに送信する(S601)。一方、ゲーム装置20Aの制御部21は、ユーザAが行ったゲーム操作に関する操作データを取得する(S602)。
そして、ゲーム装置20Aの制御部21は、ゲーム装置20Aの記憶部22に記憶されるゲーム状況データを、ステップS602で取得した操作データと、ゲーム装置20Bから受信した操作データと、に基づいて更新する(S603)。このステップS603では、ユーザAの操作対象になっている選手キャラクタ48の状態データがユーザAの操作内容に基づいて更新される。また、ユーザBの操作対象になっている選手キャラクタ48の状態データがユーザBの操作内容に基づいて更新される。
その後、ゲーム装置20Aの制御部21は、ゲーム状況データの更新内容をゲーム装置20Bに伝えるための更新データをゲーム装置20Bに送信する(S604)。
この場合、ゲーム装置20Bの制御部21は、ゲーム装置20Bの記憶部22に記憶されるゲーム状況データを、ゲーム装置20Aから受信した更新データに基づいて更新する(S605)。そして、ゲーム装置20Bでは、ゲーム装置20Bの記憶部22に記憶されるゲーム状況データに基づいてゲーム画面50が更新される(S606)。
また同様に、ゲーム装置20Aでは、ゲーム装置20Aの記憶部22に記憶されるゲーム状況データに基づいてゲーム画面50が更新される(S607)。
なお、図17に示した例では、ゲーム状況データの更新内容をゲーム装置20Bに伝えるための更新データをゲーム装置20Aがゲーム装置20Bに送信するようになっていたが、ゲーム装置20Bにおいて表示すべきゲーム画面60を示すデータをゲーム装置20Aがゲーム装置20Bに送信するようにしてもよい。そして、ゲーム装置20B〜20Dでは、ゲーム装置20Aから受信したデータに基づいてゲーム画面60を更新するようにしてもよい。
また、ピアツーピア方式で試合を実行する場合の処理は図17に示した例に限られない。図17に示した例では、ゲーム装置20A,20Bのいずれかがゲームサーバとしての役割を担うようになっていたが、ゲーム装置20A,20Bが対等な立場でお互いに操作データを送信し合うようにしてもよい。
すなわち、ゲーム装置20Aの制御部21は、ユーザAが行ったゲーム操作に関する操作データを取得し、その操作データを他のゲーム装置20Bに送信する。ゲーム装置20Bにおいても同様の処理が実行される。
そして、ゲーム装置20Aは、ユーザA,Bの各々の操作データに基づいて、ゲーム装置20Aの記憶部22に記憶されるゲーム状況データを更新する。その後、ゲーム装置20Aは、ゲーム装置20Aの記憶部22に記憶されるゲーム状況データに基づいて、ゲーム装置20Aの表示部26に表示されるゲーム画面60を更新する。ゲーム装置20Bにおいても同様の処理が実行される。このようにしてもピアツーピア方式で試合が実行されるようになる。
次に、ゲーム装置20A,20Bのゲームモードがともに「テキストモード」に設定されている場合に実行される処理について説明する。すなわち、下記のような場合を想定する。
(1)ユーザAの指示に基づいて行動するサッカーチームAと、ユーザBの指示に基づいて行動するサッカーチームBと、の間の試合を実行する。
(2)ユーザAのゲーム装置20Aのゲームモードは「テキストモード」に設定され、ユーザBのゲーム装置20Bのゲームモードは「テキストモード」に設定されている。
(3)ピアツーピア方式で試合を実行する。
(4)ゲーム装置20Aがゲームサーバとして選出されている。
この場合、ゲームサーバとしての役割を果たすゲーム装置20Aは図14に示すステップS302の処理を所定時間(例えば1/30秒)ごとに実行する。
なお、ゲーム装置20Bにおいて簡易ゲーム画面70の更新ボタン78がクリックされた場合等の処理は図15に示す処理と同様である。なお、ゲーム装置20Aにおいて簡易ゲーム画面70の更新ボタン78がクリックされた場合には、図15のステップS403の処理がゲーム装置20Aにおいて実行されることになる。
また、ゲーム装置20Bにおいて簡易ゲーム画面70のリンクボタン80がクリックされた場合の処理も図16に示す処理と同様である。なお、ゲーム装置20Aにおいて簡易ゲーム画面70のリンクボタン80がクリックされた場合には、図16のステップS503,S505,S507の処理がゲーム装置20Aにおいて実行されることになる。
以上では、ピアツーピア方式で試合が実行される場合について説明したが、次に、サーバ/クライアント方式で試合が実行される場合についても説明しておく。なお、ここでは下記のような場合を想定する。
(1)ユーザAの指示に基づいて行動するサッカーチームAと、ユーザBの指示に基づいて行動するサッカーチームBと、の間の試合を実行する。
(2)ユーザAのゲーム装置20Aのゲームモードは「アクションモード」に設定され、ユーザBのゲーム装置20Bのゲームモードは「テキストモード」に設定されている。
(3)サーバ/クライアント方式で試合を実行する。
(4)サーバ10がゲームサーバとしての役割を担う。(サーバ10以外のサーバコンピュータがゲームサーバとしての役割を担うようにしてもよい。)
図18は上記の場合において試合中に実行される処理の一例を示す。なお、図18に示す処理は所定時間(例えば1/30秒:第1の所定時間)ごとに繰り返し実行される。図18に示すように、ゲーム装置20Aの制御部21は、ユーザAが行ったゲーム操作に関する操作データをサーバ10に送信する(S701)。
サーバ10の制御部11は、ゲーム装置20Aから受信した操作データに基づいて、サーバ10に記憶されるゲーム状況データを更新する(S702)。また、制御部11は、ゲーム状況データの更新内容を伝えるための更新データをゲーム装置20Aに送信する(S703)。この場合、ゲーム装置20Aは、サーバ10から受信した更新データに基づいて、ゲーム装置20Aに記憶されるゲーム状況データを更新し、更新後のゲーム状況データに基づいて、ゲーム装置20Aの表示部26にゲーム画面60を表示する。
ところで、図18に示した例では、ゲーム状況データの更新内容をゲーム装置20Aに伝えるための更新データをサーバ10がゲーム装置20Aに送信するようになっていたが、ゲーム装置20Aにおいて表示すべきゲーム画面60を示すデータをサーバ10がゲーム装置20Aに送信するようにしてもよい。なお、ゲーム装置20Aは、サーバ10から受信したデータに基づいてゲーム画面60を更新するようにしてもよい。
なお、ゲーム装置20Bにおいて簡易ゲーム画面70の更新ボタン78がクリックされた場合等の処理は、ピアツーピア方式で試合が実行される場合と同様である(図15参照)。ただし、この場合、ステップS401において、ゲーム装置20Bは簡易ゲーム画面70の更新をサーバ10に要求する。また、ステップS402はサーバ10において実行される。
また、ゲーム装置20Bにおいて簡易ゲーム画面70のリンクボタン80がクリックされた場合の処理も、ピアツーピア方式で試合が実行される場合と同様である(図16参照)。ただし、この場合、ステップS501において、ゲーム装置20Bは作戦変更画面90のデータをサーバ10に要求する。また、ステップS504において、ゲーム装置20Bは作戦の変更をサーバ10に要求する。また、ステップS502,S505,S506はサーバ10において実行される。
次に、サーバ/クライアント方式で試合が実行される場合において、ゲーム装置20A,20Bのゲームモードがともに「アクションモード」に設定されている場合に実行される処理について説明しておく。すなわち、下記のような場合を想定する。
(1)ユーザAの指示に基づいて行動するサッカーチームAと、ユーザBの指示に基づいて行動するサッカーチームBと、の間の試合を実行する。
(2)ユーザAのゲーム装置20Aのゲームモードは「アクションモード」に設定され、ユーザBのゲーム装置20Bのゲームモードは「アクションモード」に設定されている。
(3)サーバ/クライアント方式で試合を実行する。
(4)サーバ10がゲームサーバとしての役割を担う。(サーバ10以外のサーバコンピュータがゲームサーバとしての役割を担うようにしてもよい。)
この場合、ゲーム装置20Aとサーバ10との間では図18に示す処理が実行され、ゲーム装置20Bとサーバ10との間でも図18に示す処理が実行される。
次に、サーバ/クライアント方式で試合が実行される場合において、ゲーム装置20A,20Bのゲームモードがともに「テキストモード」に設定されている場合に実行される処理について説明しておく。すなわち、下記のような場合を想定する。
(1)ユーザAの指示に基づいて行動するサッカーチームAと、ユーザBの指示に基づいて行動するサッカーチームBと、の間の試合を実行する。
(2)ユーザAのゲーム装置20Aのゲームモードは「テキストモード」に設定され、ユーザBのゲーム装置20Bのゲームモードは「テキストモード」に設定されている。
(3)サーバ/クライアント方式で試合を実行する。
(4)サーバ10がゲームサーバとしての役割を担う。
この場合、ゲームサーバとしての役割を果たすサーバ10は図18に示すステップS702の処理を所定時間(例えば1/30秒)ごとに実行する。
なお、ゲーム装置20Bにおいて簡易ゲーム画面70の更新ボタン78がクリックされた場合の処理は図15に示す処理と同様である。ただし、この場合、ステップS401において、ゲーム装置20Bの制御部21は簡易ゲーム画面70の更新をサーバ10に要求する。そして、ステップS402の処理がサーバ10において実行される。また、ゲーム装置20Aにおいて更新ボタン78がクリックされた場合の処理も、ゲーム装置20Bにおいて更新ボタン78がクリックされた場合の処理と同様である。
ゲーム装置20Bにおいて簡易ゲーム画面70のリンクボタン80がクリックされた場合の処理は図16に示す処理と同様である。ただし、この場合、ステップS501において、ゲーム装置20Bの制御部21は作戦変更画面90のデータをサーバ10に要求する。また、ステップS504において、ゲーム装置20Bの制御部21は作戦の変更をサーバ10に要求する。そして、ステップS502,S505,S506の処理がサーバ10において実行される。また、ゲーム装置20Aにおいてリンクボタン80がクリックされた場合の処理も、ゲーム装置20Bにおいてリンクボタン80がクリックされた場合の処理と同様である。
以上に説明したゲームシステム1によれば、通信環境(通信品質)の良いゲーム装置20のユーザと、通信環境の良くないゲーム装置20のユーザとが不満を感じることなく対戦できるようになる。ゲームシステム1によれば、通信環境の良くないゲーム装置20のゲームモードが、ゲームの実行にかかる通信量が低く抑えられるようなテキストモードに設定されるようになっているため、通信環境の良くないゲーム装置20のユーザがネットワークゲームに参加したとしても、通信環境の良くないことに起因する迷惑を当該ネットワークゲームに参加する他のユーザにかけなくてもすむようになっている。すなわち、ゲームシステム1によれば、通信環境の良くないゲーム装置20のユーザがネットワークゲームに参加することに起因する不満を、当該ネットワークゲームに参加するユーザに感じさせてしまわないように図ることが可能になる。
なお、ゲームシステム1によれば、通信環境の良いゲーム装置20のゲームモードは、個々の選手キャラクタに細かい指示を与えることが可能なアクションモードに設定される。このため、ゲームシステム1によれば、通信環境の良いゲーム装置20のユーザには従来通り高機能なゲームを提供することができる。
なお、本発明は以上に説明した実施形態に限定されるものではない。
[1]以上に説明した実施形態では、図13に示すように、対戦相手を決定する前に、ゲーム装置20の通信品質の計測や、ゲーム装置20のゲームモードの決定を実行するようになっていた。
しかしながら、ゲーム装置20の通信品質の計測や、ゲーム装置20のゲームモードの決定を、対戦相手が決定された後に実行するようにしてもよい。また、この場合、ゲーム装置20と対戦相手のゲーム装置20との間のデータの送受信にかかる時間を計測するようにしてもよい。
例えば、対戦相手が決定された後において、ゲーム装置20の制御部21は特定のパケットを対戦相手のゲーム装置20に送信するようにしてもよい。上記パケットを受信した場合、対戦相手のゲーム装置20は送信元のゲーム装置20にそのパケットを返信するようにしてもよい。ゲーム装置20の制御部21は、パケットの送信時点からパケットの受信時点までの時間を計測するようにしてもよい。そして、制御部21はこの時間を通信品質情報として用いるようにしてもよい。
[2]以上に説明した実施形態では、簡易ゲーム画面70が表示されている間に、ゲーム装置20Bからゲームサーバ(ゲーム装置20A又はサーバ10)に簡易ゲーム画面70の更新を要求するようになっていた。
しかしながら、ゲームサーバが、簡易ゲーム画面70を更新するためのデータを所定時間(例えば30秒)ごとにゲーム装置20Bに送信するようにしてもよい。
なお、「簡易ゲーム画面70を更新するためのデータ」とは、簡易ゲーム画面70そのものを示すデータであってもよいし、ゲーム状況データであってもよい。後者の場合、ゲーム装置20Bは、ゲーム状況データに基づいて、簡易ゲーム画面70の現在状況欄74を更新することになる。
[3]以上に説明した実施形態では、ゲーム装置20のゲームモードがサーバ10において決定されるようになっていた(図13のステップS203〜S205参照)。すなわち、図12に示す機能ブロックはサーバ10(ゲーム制御装置)によって実現されるようになっていた。
しかしながら、各ゲーム装置20において当該ゲーム装置20のゲームモードを決定するようにしてもよい。すなわち、図13のステップS203〜S205はゲーム装置20において実行するようにしてもよい。この場合、図12に示す機能ブロックはゲーム装置20によって実現されることになる。
[4]以上に説明した実施形態では、ゲーム空間40が仮想三次元空間になっていたが、ゲーム空間は仮想二次元空間であってもよい。すなわち、二つの座標値によってキャラクタの位置等が表されるようにしてもよい。
[5]以上では、二名のユーザが対戦するサッカーゲームに本発明を適用した場合について主に説明した。しかしながら、本発明は、三名以上のユーザが参加するサッカーゲームにも適用することが可能である。また、本発明はサッカーゲーム以外にも適用することが可能である。本発明は、複数のユーザが対戦するネットワークゲームや、複数のユーザが協力して目的を達成することを目指すネットワークゲームにも適用することが可能である。例えば、複数のユーザの各々の操作対象が協力して目的を達成することを目指すようなネットワークゲームにも本発明は適用することが可能である。