本発明は、複数の端末装置をそれぞれ操作するプレイヤ同士が、自己のチームを構成するキャラクタを操作して対戦するチーム対戦ゲームをコンピュータに実現させるためのゲームシステム、当該ゲームシステムの制御方法及びプログラムに関するものである。本発明の一実施の形態に係るネットワークゲームシステムについて、図面を参照し、以下に説明する。
〔ネットワークゲームシステムの全体構成〕
図1は、本ネットワークゲームシステム100の全体構成を示す図である。
図1に示すように、本実施の形態に係るチーム対戦型のネットワークゲームを実行可能なネットワークゲームシステム100は、サーバ装置103と、当該サーバ装置103と通信可能に接続される端末装置Aおよび端末装置Bを含む複数の端末装置とを備えている。これらの装置(サーバ装置103および複数の端末装置)は、通信ネットワークとしてのインターネット104を介して接続されている。
なお、ネットワークゲームシステム100内には複数の端末装置が存在するが、各端末装置の基本構成は同一であり、以下、端末装置Aおよび端末装置B(必要に応じてこれらをまとめて「端末装置A・B」と記載することがある)をネットワークゲームシステム100内の複数の端末装置を代表するものとして説明する。
また、本実施の形態の通信ネットワークは、インターネットに限定されるものではなく、端末装置A・Bとサーバ装置103との間を通信可能に相互に接続できるものであれば、例えば、専用回線、公衆回線、LAN等であってもよく、或いはこれらを組み合わせたものであってもよい。
本ネットワークゲームシステム100で実行可能なチーム対戦型のネットワークゲームに参加する各々のプレイヤが操作する端末装置A・Bは、公知の家庭用ゲーム機、携帯ゲーム機、携帯情報端末、携帯電話機またはパーソナルコンピュータ等により構成される。各々のプレイヤが操作する端末装置A・B間で対戦を行う方法には、端末装置A・B間で直接通信して対戦する方法と、サーバ装置103を経由して対戦する方法とがある。何れの方法でも対戦は可能であるが、本実施の形態では、前者の方法、すなわち、端末装置A・B間で直接データのやりとりを行う、いわゆるP2P(Peer to Peer)接続によりネットワークゲームを行うこととする。
各端末装置A・Bとサーバ装置103との間の通信は、例えば、ベースのプロトコルとしてTCP/IP(Transmission Control Protocol/Internet Protocol)上で動作するHTTP(Hyper Text Transfer Protocol)を使用し、本システムで規定するアプリケーションプロトコルを上位に実装することによって実現できる。
一方、P2P接続される端末装置Aと端末装置Bとの間の通信は、OSI参照モデルのトランスポート層上の通信規約(プロトコル)であって主にIPプロトコル上に実装されるUDP(User Datagram Protocol)によって実現できる。上記のUDPは、データの送達確認やエラー訂正を行わず、データを相手側の端末装置に送りっぱなしにする通信方式であるため、データの信頼度は低いがデータの転送速度が高いという利点がある。このため、高いリアルタイム性が要求されるゲーム環境の中で大量のデータを相互に高速通信する通信対戦型のネットワークゲームでは、UDPが好適に用いられる。なお、端末装置Aと端末装置Bとの間の通信にUDP以外の他の既存プロトコルを用いたり、今後、新たに規定される新規プロトコルを用いたりすることも勿論可能である。
ネットワークゲームシステム100において、各端末装置A・Bには、当該各端末装置A・Bを一意に識別するための端末IDが付与されている。さらに、各端末装置A・Bを操作する各プレイヤには、当該各プレイヤを特定するためのプレイヤIDが付与されている。そして、サーバ装置103は、これらの識別情報(端末IDおよびプレイヤID)に対応付けて、各端末装置A・Bとの間でデータの送受信を行うことによって、各端末装置A・Bおよび各プレイヤに関する情報を管理し、後述する対戦相手決定処理(マッチング処理)、対戦管理処理および特典付与処理などを実行する。
ネットワークゲームシステム100にて実現されるチーム対戦型のネットワークゲームには様々なものがあるが、その一例としては、野球ゲームがある。この野球ゲームにおいては、プレイヤが監督となって対戦する監督プレイモードもある。この監督プレイモードでは、各プレイヤは、予めそのプレイヤレベルに応じて与えられた選手選択可能ポイントの範囲内で任意に選手キャラクタを選択し、自己の野球チーム(例えば、合計28名の選手キャラクタ)を編成することができるようになっている。そして、端末装置Aを操作する第1プレイヤが編成した第1チームと、端末装置Bの第2プレイヤが編成した第2チームとが対戦する野球ゲームにおいては、例えば、第1プレイヤのチームの投手キャラクタがボールオブジェクトを投球し、第2プレイヤのチームの打者キャラクタが投球されたボールオブジェクトを打撃する。また、打撃後のボールオブジェクトを第1プレイヤのチームの野手キャラクタが捕球や送球をし、第2プレイヤのチームの走者キャラクタが走塁をする。このように、一般的な野球のルールを適用して第1プレイヤと第2プレイヤとが攻守を変えながら得点を競う野球ゲームを例に挙げて、以下に説明する。
〔ネットワークゲームシステム内の各装置の構成〕
図2に示すように、端末装置Aは、制御部10a、表示画像処理部20a、音声再生部30a、外部入出力制御部40a及び通信部50aを備え、これらはバス5により相互に接続されている。端末装置Bも端末装置Aと同様の構成であるため、以下では端末装置Aの構成のみ説明し、端末装置Bの説明は省略する。
図2に示すように、制御部10aは、端末装置Aの全体の動作を制御するもので、ゲームの進行全般に関する処理、画像表示処理の他、種々の情報処理を行う情報処理部(CPU)11aと、処理途中の情報等を一時的に格納するRAM(Random Access Memory)12aと、各種プログラム等が予め記憶されたROM13aと、を備え、これらはバス5を介して相互に接続されている。
ROM13aには、オペレーションシステム(OS)のプログラムデータや、画像データ、音声データ並びに各種プログラムデータからなるゲームデータ等が記録されている。ROM13aに記録されている画像データとしては、投手キャラクタ、打者キャラクタ、野手キャラクタ、走者キャラクタ、背景画像、各種の操作画面や設定画面の画像等のデータである。また、投手キャラクタや打者キャラクタ等の画像データは、3次元描画が可能なように、それらを構成する所要数のポリゴンで構成されている。
そして、CPU11aは、内蔵のあるいは装着脱可能なROM13aに記録されているオペレーティングシステムに基づいて、ROM13aから画像データ、音声データ、制御プログラムデータ、ゲームプログラムデータ等を読み出す。読み出されたデータの一部若しくは全部は、RAM12a上に保持される。以後、CPU11aは、RAM12a上に記憶されている制御プログラムや各種データ(表示物体のポリゴン、テクスチャ、その他の文字画像を含む画像データ、音声データなど)に基づいて、各種データ処理を行う。
上記のデータ処理としては、3次元空間上における計算処理と、3次元空間上から擬似3次元空間上への位置変換計算処理と、光源計算処理と、画像および音声データの生成加工処理などが含まれる。
ROM13aに記憶されている各種データのうち装着脱可能な記録媒体に記憶され得るデータは、例えばハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ、カセット媒体読み取り機等の各種ドライブユニットで読み取り可能としてもよい。この場合、記録媒体としては、例えばハードディスク、光ディスク(CD−ROM、DVD−ROM、UMDなど)、フレキシブルディスク、半導体メモリ、ROMカセット、あるいは家庭用ビデオゲーム装置用のカートリッジ等を用いることができる。
表示画像処理部20aは、インターフェース回路やD/Aコンバータ(Digital-To-Analogコンバータ)等を備え、CPU11aからの画像表示指示に従って、RAM12aに書き込まれた画像データや、ROM13aから読み出される画像データ等を液晶ディスプレイ等のモニタ21aに表示させるものである。
音声出力部30aは、CPU11aからの指示に従ってゲーム進行過程の中で発生させるべき音声メッセージ、効果音、楽曲データ等を生成し、スピーカ31aに出力するものである。
外部入出力制御部40aは、インターフェース回路等を含み、制御部10aと入力操作部41aとの間、または制御部10aとカードリーダライタ42aとの間でデータの入出力制御を行う。例えば、外部入出力制御部40aは、入力操作部41aから入力される操作検出信号を制御部10aで処理可能なデジタル信号に変換する。入力操作部41aは、第1プレイヤが種々の操作命令を入力するためのキーボード、マウス、家庭用ビデオゲーム装置用コントローラ等から構成される。
通信部50aは、通信情報インターフェース回路や通信モデム等を備え、サーバ装置103との間、および対戦相手の端末装置Bとの間で、インターネット104を介して各種データの送受信をするためのものである。
次に、サーバ装置103の構成を説明する。図1に示すように、サーバ装置103は、
サーバ制御部10c及びサーバ通信部50cを備えるコンピュータである。
サーバ制御部10cは、サーバ装置103の全体の動作を制御するもので、情報処理部(CPU)160と、処理途中の情報等を一時的に格納するRAM170と、所定のプログラム等が予め記憶されたROM180と、ハードディスク装置や光ディスク装置などの補助記憶部190とを備える。ROM180や補助記憶部190に記録されているオペレーションシステム(OS)、各種プログラム、各種設定データはRAM170上にロードされ、CPU160によりRAM170上のプログラムが順次実行されることによって、サーバ装置103の各種機能が実現される。
サーバ通信部50cは、通信情報インターフェース回路や通信モデム等を備え、各端末装置A・B…との間で、インターネット104を介して各種データの送受信を行う。
次に、端末装置A・Bおよびサーバ装置103の機能的構成について、以下に説明する。図3は、サーバ装置103におけるサーバ制御部10cの機能ブロック図である。図4は、端末装置Aおよび端末装置Bにおける制御部10aの機能ブロック図である。
先ず、サーバ装置103の主な機能について説明する。サーバ装置103は、ログイン認証機能、マッチング機能、段位・ランキング管理機能、特典付与機能などを有する。
上記ログイン認証機能とは、通信対戦型のネットワークゲームへの参加を希望する各プレイヤが各端末装置A・Bを操作してサーバ装置103にログインしようとした際、各プレイヤのゲーム参加資格の有無を判断してログイン認証を行う機能である。例えば、会員制オンラインサービスのゲームの場合は、会員認証がなされる。
上記マッチング機能とは、対戦を要求している複数の端末装置からなる対戦要求端末群の中から対戦相手の組み合わせを決定する機能である。
上記段位・ランキング管理機能とは、各プレイヤの現在までのゲーム成績を累積的に評価して各プレイヤに付与する能力評価レベルである段位(仮想的な報賞、名誉、等級等であってもよい)やランキング(全世界ランキング、全国ランキング、所定地域ランキング等)を決定し、当該段位やランキングを各端末装置A・Bの識別情報(端末IDやプレイヤID)と関連付けて管理する機能である。
上記特典付与機能とは、対戦相手よりチーム戦力が低いと判断されたチームが対戦に勝利した場合に、当該チームのプレイヤに対して、チーム戦力の差に応じた特典を付与する機能である。この特典の例としては、ゲーム内で使用可能なポイントやゲーム内通貨の付与、対戦勝利時や試合消化時の選手キャラクタの能力アップの度合い(成長度合い)をより大きくすること、ゲーム内で使用可能なアイテムの種類や数を増加させることと等の様々なバリエーションが考えられる。
なお、上記のログイン認証機能、マッチング機能、段位・ランキング管理機能、特典付与機能は、ネットワークゲームシステム100内のどこかで実現されればよいため、必ずしも1台のサーバ装置103にて実現する必要はない。例えば、これらの機能の一部を分離して機能分散型の複数台のサーバとして実現することもできる。本実施の形態では、便宜上、これらの機能をサーバ装置103が全て有し、当該サーバ装置103が一元管理する構成例について説明する。
図3に示すように、サーバ装置103のサーバ制御部10cは、対戦要求受付手段61、待機端末管理手段62、プレイヤ情報記憶手段63、マッチング手段64、対戦相手通知手段65、対戦管理手段66、段位・ランキング管理手段67、段位・ランキング通知手段68、チーム戦力値受信手段69、チーム戦力値記憶手段70、戦力差演算手段71、特典付与手段72および相手チーム戦力送信手段73を備えている。
対戦要求受付手段61は、ネットワークゲームへの参加を希望する各プレイヤが各端末装置A・Bを操作してサーバ装置103にログインしようとした際、各端末装置A・Bの識別情報(端末IDおよびプレイヤID等の個人情報)を受け付ける。そして、対戦要求受付手段61は、プレイヤ情報記憶手段63に格納されているプレイヤ情報に基づき、端末IDやプレイヤIDを照合して各プレイヤのゲームへの参加を受け付けるものであり、上述のログイン認証機能を実現する。
待機端末管理手段62は、対戦相手の組み合わせが決定するまでの間、参加を受け付けた端末装置A・Bを対戦要求端末群として管理するものであり、対戦要求端末群を参加リスト62aに登録して管理する。参加リスト62aに登録された対戦要求端末群は、マッチング手段64によるマッチング処理の対象となる。
プレイヤ情報記憶手段63は、ネットワークゲームへの参加を受け付けることができるプレイヤ情報として、端末IDやプレイヤIDを記憶している。
マッチング手段64は、上述のマッチング機能を実現するものであり、参加リスト62aに登録されている対戦要求端末群の中から対戦相手の組み合わせを決定するマッチング処理を行う。マッチング手段64によるマッチング処理には様々な方式があるが、本実施の形態では、各プレイヤが編成したチームの戦力値(対戦前チーム戦力値)に基づいてマッチング手段64がマッチングを行う方式を例にとって説明する。ここで、対戦前チーム戦力値とは、各プレイヤが編成した28名の選手キャラクタからなるチームにおいて、28名の選手キャラクタの能力値の合計値(または平均値)を対戦前のチーム戦力値とするものである。すなわち、対戦前においては、各プレイヤがどの選手キャラクタを試合中に使用するかは未確定であるので、チームを構成する28名の選手キャラクタ全員の能力値を合計(または平均)して対戦前チーム戦力値としている。当該方式では、マッチング手段64は、参加リスト62aに登録されている対戦要求端末群の中から対戦前チーム戦力値が近いチームのプレイヤ同士をマッチングするようになっている。あまりにも対戦前チーム戦力値に開きがあるチームのプレイヤ同士が対戦した場合、白熱したゲーム展開が期待できずに興趣性を損なうことがある。そこで、上記の方式のマッチングを適用すれば、対戦前チーム戦力値の近いチームのプレイヤ同士がマッチングされ易くなり、興趣性を向上させることができる。
対戦相手通知手段65は、マッチング手段64によりマッチングされた第1の端末装置(以下、端末装置Aとして説明する)および第2の端末装置(以下、端末装置Bとして説明する)とに対して、それぞれ対戦相手の情報を通知する。すなわち、対戦相手通知手段65は、端末装置Aに対しては、対戦相手となる端末装置Bの第2プレイヤに関する情報をプレイヤ情報記憶部63の中から抽出して送信する。また、対戦相手通知手段65は、端末装置Bに対しては、対戦相手となる端末装置Aの第1プレイヤに関する情報をプレイヤ情報記憶部63の中から抽出して送信する。
対戦管理手段66は、端末装置Aと端末装置Bとの対戦ゲームが実施されているとき、当該対戦ゲームが終了するまで、両端末装置A・Bの通信状態を管理する。具体的には、端末装置Aおよび端末装置Bは、P2P接続で対戦ゲームを実施しながらも、サーバ装置103に定期データ(ハートビート)を断続的に送信しており、サーバ装置103の対戦管理手段66は、両端末装置A・Bからハートビートを受信している間は、両端末装置A・Bが問題なく対戦ゲームを実行していると判断する。一方、対戦管理手段66は、所定時間(たとえば、10秒間)ハートビートの受信ができなかった場合に、当該ハートビートを送信していた端末装置との通信が切断されたと判断する。例えば、端末装置Aからのハートビートの受信は途絶えたが、端末装置Bからのハートビートの受信については継続中である場合、対戦管理手段66は、対戦中に端末装置Aが通信を切断したと判断できる。また、このような場合、端末装置Bからサーバ装置103へ、「対戦中に端末装置Aが通信を切断した」旨の異常終了通知がなされるので、当該異常終了通知をもって端末装置Aが対戦中に通信を切断したことを確実に判断できる。
また、対戦ゲームが正常に終了した場合、端末装置Aおよび端末装置Bの何れか一方または両方から、対戦結果情報(勝敗等の情報)を含む正常終了通知がサーバ装置103へ行われる。対戦管理手段66は、この正常終了通知または上記の異常終了通知を受領した場合、端末装置Aおよび端末装置Bを、対戦管理対象から外す。なお、トラフィックの増加によりネットワークが異常輻輳となる等のネットワーク障害が発生した場合、端末装置Aおよび端末装置Bの両者から同時にハートビートが途絶えることもあり得るが、このような場合も、対戦管理手段66は両端末装置A・Bを対戦管理対象から外すことができる。対戦が終了した後、対戦管理手段66は、ランキング管理手段67およびチーム戦力値受信手段69に対戦結果情報を出力する。
段位・ランキング管理手段67は、上述の段位・ランキング管理機能を実現するものであり、各プレイヤの段位およびランキングの情報を端末装置の識別情報(端末IDやプレイヤID)と関連付けて記憶する記憶領域を有し、対戦ゲームが終了する毎に、対戦結果情報に基づいて各プレイヤの段位およびランキングを更新する。
段位・ランキング通知手段68は、対戦終了後の段位およびランキングを、端末装置Aおよび端末装置Bに送信する機能を有する。これにより、端末装置Aの第1プレイヤおよび端末装置Bの第2プレイヤは、対戦終了後の自己の段位およびランキングを画面上で確認することができる。さらに、段位・ランキング管理手段67または段位・ランキング通知手段68は、ランキングの上位に入ったプレイヤに対して当該プレイヤの氏名等の情報を登録できるようにしたりする機能を有していてもよい。
チーム戦力値受信手段69は、対戦終了後に端末装置A・Bから送信されてくるチーム戦力値を受信して、チーム戦力値記憶手段70に出力する。この対戦終了後に受信するチーム戦力値とは、対戦中において実際に対戦に関与した選手キャラクタのみを対象として、当該関与キャラクタの有する能力値に基づいて算出された各チームの戦力レベルである。ここで、実際に対戦に関与したとは、選手キャラクタが試合に出場して打席に立ち、投球し、守備につき、または走塁することをいい、ベンチに居ただけで全く試合に出場しなかった待機選手キャラクタや途中交代で試合から外れて一定以上の打席や守備の機会が無かった選手キャラクタを除くことを意味する。ところで、前述の対戦前チーム戦力値は、実際に対戦に関与した選手キャラクタのみを対象としたものではなく、チームを構成する全員の選手キャラクタを対象としたものであり、対戦終了後に端末装置A・Bから送信されてくるチーム戦力値とは大きく異なるものである。なお、端末装置A・Bにおいて行われるチーム戦力値の演算の詳細については、後述する。
チーム戦力値記憶手段70は、チーム戦力値受信手段69が端末装置A・Bから受信したチーム戦力値をプレイヤの識別情報(端末IDやプレイヤID)と関連付けて記憶する記憶領域を有する。
戦力差演算手段71は、チーム戦力値記憶手段70に記憶されている対戦した両チームのチーム戦力値を読み出してその差を算出し、算出結果を特典付与手段72に出力する。
特典付与手段72は、対戦相手よりチーム戦力が低いチームが対戦に勝利した場合に、当該チームのプレイヤに対して、前記戦力差演算手段71にて算出されたチーム戦力値の差に応じた特典を付与する。例えば、特典付与手段72は、ゲーム内で使用可能なポイントやゲーム内通貨をチーム戦力値の差に応じて算出し、算出したポイント等の付与情報(特典情報)を、チーム戦力値が対戦相手よりも低いにも関わらず対戦に勝利したチームの端末装置に送信する。この特典情報をサーバ装置103から受信した端末装置は、当該特典情報を有効とし、これによってプレイヤは、ゲーム内で使用可能なポイントやゲーム内通貨を獲得できる。上記の特典情報は、選手キャラクタの能力アップの度合い(成長度合い)をより大きくする情報、ゲーム内で使用可能なアイテムの種類または数を増加させる情報、その他プレイヤにとってゲーム内でより有利・有益となる情報であってもよい。
なお、特典付与手段72は、対戦相手よりチーム戦力が低いチームが対戦に引分けた場合にも、当該チームのプレイヤに対して、前記戦力差演算手段71にて算出されたチーム戦力値の差に応じた特典を付与するようにしてもよい。
相手チーム戦力送信手段73は、相手チームのチーム戦力値を各端末装置に送信する。すなわち、端末装置Aには端末装置Bのチームのチーム戦力値を送信し、端末装置Bには端末装置Aのチームのチーム戦力値を送信する機能を有する。これにより、端末装置Aの第1プレイヤおよび端末装置Bの第2プレイヤは、対戦終了後、自己チームのチーム戦力値だけでなく相手チームのチーム戦力値も画面上で確認することができる。このチーム戦力値は、実際に対戦に関与した選手キャラクタのみを対象として算出されたものであるため、各プレイヤは、現実の対戦(事実)に即した正確な各チームの戦力レベルを知ることができる。
次に、端末装置A・Bの主な機能について説明する。図4に示すように、端末装置A・Bの制御部10aは、対戦要求手段81と、通信状態確認手段82と、通信切断情報送信手段83と、キャラクタ能力値記憶手段84Aと、チーム構成キャラクタ記憶手段84Bと、キャラクタ選択手段85と、関与キャラクタ抽出手段86と、チーム戦力演算手段87と、チーム戦力値送信手段90と、相手チーム戦力値受信手段91と、チーム戦力値表示手段92と、段位・ランキング受信手段93と、段位・ランキング表示手段94と、特典受信手段95と、特典記憶手段96と、特典表示手段97とを備えている。
対戦要求手段81は、端末装置の識別情報(端末IDおよびプレイヤID)をサーバ装置103に送信して、ネットワークゲームへの参加を要求するログイン機能を有する。また、対戦要求手段81は、識別情報等と併せて、後述する対戦前チーム戦力演算部88で算出された対戦前チーム戦力値の情報もサーバ装置103に送信する。
通信状態確認手段82は、サーバ装置103との間の通信状態および対戦相手端末装置との通信状態を確認するものであり、定期通信状態確認部82aと、対戦通信状態確認部83bとを含む。定期通信状態確認部82aは、サーバ装置103への接続後、所定時間毎に(たとえば、10秒毎に)サーバ装置103に定期データ(ハートビート)を送信しながらサーバ装置103との間の定期通信が確立されているか否かを確認する。対戦通信状態確認部82bは、対戦ゲーム中に、対戦相手端末装置との間のデータの送受信状態を検知しながら対戦相手端末装置との間の対戦通信が確立されているか否かを確認する。
例えば、端末装置Aの第1プレイヤと端末装置Bの第2プレイヤとの対戦中に、端末装置Aの通信が何らかの原因で切断された場合を考えると、端末装置Bでは、定期通信状態確認部82aによってサーバ装置103と端末装置Bとの間の定期通信が確立していることが確認される一方、対戦通信状態確認部82bによって端末装置Aと端末装置Bとの間の対戦通信が切断されたことが確認される。これにより、端末装置Bの通信状態確認手段82は、対戦中に対戦相手端末装置(端末装置A)の通信が切断されたことを検知する。
通信切断情報送信手段83は、通信状態確認手段82によって対戦相手端末装置が対戦中に通信を切断したことが検知された場合、対戦中に対戦相手端末装置が通信を切断した旨の通信切断情報をサーバ装置103に送信することによって、サーバ装置103へ異常終了通知を行う。
キャラクタ能力値記憶手段84Aは、ゲーム内に存在する全ての選手キャラクタを個々に識別する識別情報(キャラクタID)と対応付けて、それぞれの選手キャラクタの有する能力値を、ハードディスクやメモリーカード等の不揮発性記憶媒体の記憶領域に記憶する。ここで、選手キャラクタの有する能力値が高いほど、ゲーム内において選手キャラクタが発揮する能力(打撃力、守備力、走力等)が高くなるようになっている。
チーム構成キャラクタ記憶手段84Bは、プレイヤがキャラクタ選択手段85によって選択したチームを構成する複数の選手キャラクタの識別情報(キャラクタID)を、ハードディスクやメモリーカード等の不揮発性記憶媒体の記憶領域に記憶する。
キャラクタ選択手段85は、プレイヤが監督となって相手チームと対戦する監督プレイモードにおいて、プレイヤが自らのチームを構成する選手キャラクタを選択するために用いられる。例えば、プレイヤがどの選手キャラクタを選択してチームを編成するのかを視覚的に、且つ臨場感を持って把握できるように、選手キャラクタの形態を視認可能としたカード形式でゲーム画面上に画像表示することができる。この場合、キャラクタ選択手段85は、カード形式で表示された選手キャラクタの一覧表示画面上において、入力操作部41aによる所定のボタン操作やポインティングデバイス操作等によって選手キャラクタ(本実施の形態では1チーム28名の選手キャラクタ)を選択可能とするものである。キャラクタ選択手段85にて選択された28名の選手キャラクタの識別情報は、上記チーム構成キャラクタ記憶手段84Bに記憶される。なお、前回の対戦時に編成したチームに所属する28名の選手キャラクタは、チーム構成キャラクタ記憶手段84Bに保存されているので、今回の対戦におけるチーム編成においてはそれを読み出して画面表示し、変更したい(入れ替えたい)一部の選手キャラクタのみをキャラクタ選択手段85にて選択して変更することができるようになっている。
関与キャラクタ抽出手段86は、対戦中に実際の対戦に関与した自己チームの選手キャラクタを抽出する機能を有する。具体的には、関与キャラクタ抽出手段86は、攻撃の場合には、実際に打席に立って攻撃を行った選手キャラクタを実際の対戦に関与した選手キャラクタとして抽出し、抽出した選手キャラクタの識別情報を、RAM12a、ハードディスクまたはメモリーカード等の所定の記憶領域に順次記憶していく。また、関与キャラクタ抽出手段86は、打席には立っていないが途中交代でピンチランナーとして塁に出た選手キャラクタも実際の対戦に関与した選手キャラクタとして抽出してもよい。
但し、途中交代でピンチヒッターとして打席に立った選手キャラクタが、一度もバットを振ることもなく、投手キャラクタが投げたボールオブジェクトを数球見逃しただけで別の選手キャラクタに再度交代するような場合には、当該ピンチヒッターとして打席に立った選手キャラクタは打席には立っているが実際の対戦に関与したとは必ずしも言えないので、実際に対戦に関与した選手キャラクタの対象から外すようにしてもよい。また、攻撃の場合においては、少なくとも1打席の結果(ヒット、アウト、四死球のいずれかの結果)が出るまで実際の対戦に関与した選手キャラクタのみを、抽出の対象とするようにしてもよい。あるいは所定打席以上の攻撃に関与した選手キャラクタのみを、抽出の対象とするようにしてもよい。
また、関与キャラクタ抽出手段86は、守備の場合には、実際に守備ポジションについて守備を行った選手キャラクタを実際の対戦に関与した選手キャラクタとして抽出し、抽出した選手キャラクタの識別情報を、RAM12a、ハードディスクまたはメモリーカード等の所定の記憶領域に記憶しておく。
なお、途中交代で守備ポジションについた選手キャラクタが、一度も守備的行動を行う機会もなく僅かな時間で別の選手キャラクタに再度交代するような場合には、当該守備ポジションについた選手キャラクタは実際の対戦に関与したとは必ずしも言えないので、実際に対戦に関与した選手キャラクタの対象から外すようにしてもよい。そこで、守備の場合においては、少なくとも所定回数以上の守備的行動を行う機会があった選手キャラクタのみを抽出の対象とするようにしてもよい。ここで、守備的行動を行う機会があった選手キャラクタとは、打撃されたボールオブジェクトの捕球等、ボールオブジェクトに接触した選手とすることもできるが、直接的にボールオブジェクトに接触せずとも、当該ボールオブジェクトの軌道から所定距離内に位置する選手を含めることもできる。すなわち、打撃されたボールオブジェクトを捕球した選手キャラクタ、ボールオブジェクトに接触したがグラブを弾かれて捕球するに至らなかった選手キャラクタ、およびボールオブジェクトの軌道近傍に位置しているため手を伸ばして捕球を試みたがボールオブジェクトに接触するまでには至らなかった選手キャラクタを、守備的行動を行う機会があった選手キャラクタとすることができる。換言すれば、ゲームの進行に中心的な役割を果たす注目オブジェクト(野球やサッカー等の球技ゲームならボールオブジェクト)に接触した又は注目オブジェクトの軌道から所定距離内に位置するキャラクタを、対戦に直接的に関与したキャラクタとすることができる。
このように、関与キャラクタ抽出手段86は、自己のチームには所属しているが、ベンチに居ただけで全く試合に出場しなかった待機選手キャラクタおよび途中交代で試合から外れて一定以上の打席や守備の機会が無かった選手キャラクタを除き、対戦中に実際の対戦に関与した選手キャラクタを抽出する。そして、関与キャラクタ抽出手段86は、試合開始から試合終了までの間に、順次、実際の対戦に関与した選手キャラクタの識別情報を抽出してそれを保存しておき、試合終了時に保存している全ての選手キャラクタの識別情報をチーム戦力演算手段87に出力する。
チーム戦力演算手段87は、対戦前チーム戦力演算部88とチーム戦力演算部89とを備える。対戦前チーム戦力演算部88は、各プレイヤが編成した28名の選手キャラクタからなるチームにおいて、28名の選手キャラクタの能力値の合計値(または平均値)を対戦前チーム戦力値として算出する。上述のように、対戦前においてはプレイヤがどの選手キャラクタを試合中に実際に使用するかは未確定であるので、チーム全員の選手キャラクタの能力値を合計(または平均)して対戦前チーム戦力値を演算することとしている。対戦前チーム戦力演算部88が算出した対戦前チーム戦力値は、対戦要求手段81を介してサーバ装置103に送信され、対戦相手を決定するマッチングに使用される。
チーム戦力演算部89は、関与キャラクタ抽出手段86によって抽出された実際の対戦に関与した選手キャラクタの有する能力値に基づいて、自己チームの戦力レベルを表すチーム戦力値を算出する。具体的には、チーム戦力演算手段87は、関与キャラクタ抽出手段86によって抽出された複数の選手キャラクタの有する能力値の平均を算出し、算出された平均値を自己チームのチーム戦力値とする。チーム戦力演算部89は、算出した自己チームのチーム戦力値を、チーム戦力値送信手段90およびチーム戦力値表示手段92に出力する。
チーム戦力値送信手段90は、チーム戦力演算部89で算出された自己チームのチーム戦力値をサーバ装置103へ送信する機能を有する。サーバ装置103へ送信されたチーム戦力値は、上述したように、対戦したチーム同士のチーム戦力値の差に応じた特典付与処理に使用される。
相手チーム戦力値受信手段91は、対戦終了後にサーバ装置103から送信される対戦相手のチーム戦力値を受信し、チーム戦力値表示手段92に出力する。なお、本実施の形態では、対戦相手のチーム戦力値をサーバ装置103から受信するようにしているが、当該対戦相手のチーム戦力値を、対戦相手の端末装置から受信するようにしてもよい。
チーム戦力値表示手段92は、チーム戦力演算部89で算出された自己チームのチーム戦力値と、相手チーム戦力値受信手段91が受信した対戦相手のチーム戦力値とを、モニタ21aに表示する。これにより、プレイヤは、実際の対戦に関与した選手キャラクタを対象とした自己チームおよび相手チームのチーム戦力値を認識することができ、現実の対戦事実が忠実に反映された両チームのチームレベル比較が可能となる。
段位・ランキング受信手段93は、サーバ装置103へのログイン時や対戦終了時に、サーバ装置103から送信される段位情報およびランキング情報を受信する。段位・ランキング表示手段94は、段位・ランキング受信手段93が受信した段位情報に基づいて、プレイヤの現在の段位およびランキングをモニタ21aに表示する。
特典受信手段95は、サーバ装置103から送信された特典情報(上述のゲーム内で使用可能なポイントやゲーム内通貨等)を受信し、特典記憶手段96に出力する。上述のように、特典は、対戦相手よりチーム戦力が低いチームが対戦に勝利した場合に付与されるものである。特典記憶手段96は、特典受信手段95が受信した特典情報を、ハードディスクやメモリーカード等の不揮発性記憶媒体の記憶領域に記憶する。この特典記憶手段96に特典情報が記憶されることにより特典が有効となり、プレイヤは特典を享受できる(例えば、ゲーム内で使用可能なポイントやゲーム内通貨を獲得し、使用できるようになる)。また、特典記憶手段96に特典情報が記憶されて特典が有効となったとき、特典表示手段97は、特典の内容をモニタ21aに表示し、特典が付与されたことをプレイヤに認識可能とする。
次に、本実施の形態に係るネットワークゲームシステム100の動作の概略について、図5に示すフローチャートを用いて説明する。図5のフローチャートは、端末装置Aおよび端末装置Bがネットワークゲームシステム100にログインしてネットワークゲームに参加し、両端末装置A・Bがマッチングされ、端末装置Bのチームよりチーム戦力が低い端末装置Aのチームが対戦に勝利した場合を想定した動作例を示すものである。
各プレイヤがネットワークゲームに参加するためには、ネットワークゲームシステム100に端末装置を組み込むことが必要となる。そこで、第1プレイヤは、端末装置Aを操作して条件設定を行った後に、サーバ装置103へネットワークゲームへの参加要求(ログイン)を行う(S11)。同様に、第2プレイヤは、端末装置Bを操作して各種条件設定をした後に、サーバ装置103へネットワークゲームへの参加要求(ログイン)を行う(S21)。ここで、端末装置A・Bは、ログインのとき自己のチームを構成する全員の選手キャラクタを対象として算出した対戦前チーム戦力値を、それぞれサーバ装置103へ送信する。
各端末装置A・Bから参加要求を受けたサーバ装置103は、ログイン認証を行った上で、各端末装置A・Bのネットワークゲームへの参加を受け付ける(S31)。その後、サーバ装置103は、対戦を要求している複数の端末装置からなる対戦要求端末群の中から対戦相手の組み合わせを決定するマッチングを行う(S32)。このマッチングにおいては、対戦前チーム戦力値の近いチームの端末装置同士を組み合わせるものとし、ここでは、端末装置Aと端末装置Bとがマッチングされたものとして説明を続ける。サーバ装置103は、マッチングされた端末装置Aと端末装置Bとに対して、それぞれ対戦相手情報を通知する(S33)。
端末装置Aがサーバ装置103から対戦相手情報を受領すると共に(S12)、端末装置Bがサーバ装置103から対戦相手情報を受領することによって(S22)、両端末装置A・BがP2Pで相互に接続できるようになり、両端末装置A・Bが対戦ゲームを開始する(S13およびS23)。
また、各端末装置A・Bは、対戦ゲーム中、サーバ装置103に定期データ(ハートビート)を送信する定期通信も行っている(S14およびS24)。そして、サーバ装置103は、各端末装置A・Bからハートビートを受信することによって、各端末装置A・Bの定期通信状態を確認している(S34)。これにより、サーバ装置103は端末装置A・Bが対戦中であることを認識できる。
その後、端末装置A・B間におけるチーム対戦が終了すると(S15およびS25)、各端末装置A・Bは、実際の対戦に関与した選手キャラクタのみを対象として、当該選手キャラクタの有する能力値に基づいて、自己チームの戦力レベルを表すチーム戦力値を演算する(S16およびS26)。
その後、各端末装置A・Bは、対戦結果および自己チームのチーム戦力値をサーバ装置103へ送信する(S17およびS27)。そして、サーバ装置103は、各端末装置A・Bから対戦結果およびチーム戦力値を受信し(S35)、チーム戦力値の低い方のチームがチーム戦力値の低い方のチームに勝利した場合、両チームのチーム戦力値の差を演算する(S36)。ここでは、端末装置Bのチームよりチーム戦力値が低い端末装置Aのチームが対戦に勝利している場合を想定しているので、サーバ装置103は、端末装置Aの第1プレイヤに特典を付与すべく、両チームのチーム戦力値の差に応じた特典情報を生成し、当該特典情報を端末装置Aに送信する(S37)。端末装置Aはサーバ装置103から特典情報を受信し(S18)、これによって端末装置Aの第1プレイヤは、ゲーム内で使用等できる特典を獲得する。
次に、野球ゲームを実行する各端末装置の主な動作を説明する。ここでは、端末装置を代表して端末装置Aの動作として説明する。
端末装置Aにおいて野球ゲームの起動ボタンが押されると、ゲームプログラムを格納しているROM13aまたは記録媒体からRAM12aに当該ゲームプログラムがロードされて格納される。このとき、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、併せて、ROM13aまたは記録媒体からRAM12aにロードされて格納される。これにより、ゲームプログラムおよび基本ゲームデータが端末装置AのCPU11aに認識される。ここで、基本ゲームデータとしては、3次元ゲーム空間用の各種の画像に関するデータ(例えば、野球場の画像データ、各選手キャラクタの画像データ、および各種のオブジェクトの画像データ等)および3次元ゲーム空間用の各種の画像に関するデータを3次元ゲーム空間に配置するための位置座標データが含まれる。また、基本ゲームデータには、各選手キャラクタの能力値の情報も含まれている。
次に、端末装置103のCPU11aは、RAM12aに格納された基本ゲームデータに基づいてゲームプログラムを実行する。通常、野球ゲームのゲームプログラムの起動時には初期画面がモニタ21aに表示され、野球ゲームを実行するための各種の設定が可能となっている。例えば、野球ゲームに複数のプレイモードが存在する場合、プレイモードを選択するためのプレイモード選択画面がモニタ21aに表示される。このプレイモード選択画面において、プレイヤが入力操作部41aを操作することにより、プレイモードを選択できる。プレイモードには、例えば、プレイヤが選手キャラクタを集めて自らのチームを結成して監督の立場で対戦する監督プレイモード、12球団(又は、メジャーリーグを対象としたゲームの場合は30球団)の中から特定のチームを選択して1試合の対戦を楽しむ対戦モード、12球団の中から特定のチームを選択してペナントレースを戦うペナントモード、プレイヤがある1人の選手キャラクタの立場になって野球ゲームを体感する成長体感モード等が用意されている。なお、一人のプレイヤがAIプログラム(Artificial Intelligence Program)に基づくCPUによる自動制御で野球ゲームを実行することも可能であるが、ここでは、インターネット対戦による監督プレイモードが選択されたものとし、図6に示すフローチャートを参照しながら以下の説明を続ける。
インターネット対戦による監督プレイモードが選択された後は、プレイヤがキャラクタ選択手段85により所定数(ここでは28名)の選手キャラクタを選択して自らのチームを編成する(S41)。このとき、プレイヤが自己の有する選手選択可能ポイントの範囲内で選手キャラクタを選択するようにしてもよい。ここで、選手選択可能ポイントとは、プレイヤがゲームを行う中で対戦に勝利した場合等に獲得することができるゲーム内ポイントである。能力値の高い選手キャラクタほど選手選択可能ポイントを多く必要とするので、プレイヤは、自己の有する選手選択可能ポイントと各選手キャラクタの能力値とを考慮して、選手選択可能ポイントの枠内で選手キャラクタを選択してチーム編成を行うことになる。プレイヤによって選択された選手キャラクタの情報(キャラクタID)は、チーム構成キャラクタ記憶手段84Bに保存される。また、端末装置Aの対戦前チーム戦力演算部88が、選択された28名全員の選手キャラクタの能力値の合計(または平均)を算出して対戦前チーム戦力値を求める。
次に、プレイヤは、端末装置Aを操作してサーバ装置103に参加要求(ログイン)を行う(S42)。このS42では、端末装置Aの対戦要求手段52(図4参照)が、端末装置Aの識別情報(端末IDおよびプレイヤID)や対戦前チーム戦力値などをサーバ装置103に送信する。
その後、端末装置Aは、サーバ装置103から対戦相手情報を受信するまで待機する(S43)。そして、端末装置Aは、サーバ装置103から対戦相手情報を受信した後(S43でYES)、対戦相手端末装置とP2Pの接続を行い(S44)、対戦相手端末装置との間で対戦ゲームを開始する(S45)。対戦ゲーム中は、端末装置Aの通信状態確認手段82がサーバ装置103に定期データを送信している。
また、対戦ゲーム中においては、端末装置Aの関与キャラクタ抽出手段86が、実際の対戦に関与した自己チームの選手キャラクタを抽出し、抽出した選手キャラクタの識別情報を所定の記憶領域に記憶している(S46)。
そして、定められたイニングの野球ゲームが終了した場合(S47でYES)、端末装置Aのチーム戦力演算部89は、関与キャラクタ抽出手段86によって抽出された実際の対戦に関与した複数の選手キャラクタの有する能力値に基づいてチーム戦力値を演算する(S48)。
その後、端末装置Aのチーム戦力値送信手段90は、対戦結果情報(勝敗等の情報)と共にチーム戦力演算部89が算出した自己チームのチーム戦力値をサーバ装置103へ送信する(S49)。
その後、端末装置Aは、サーバ装置103から送信されてくる相手チーム戦力値、段位、ランキングの情報等を受信するまで待機し、相手チーム戦力値等を受信した場合(S50でYES)、併せて特典情報も受信したときには(S51でYES)、当該特典情報を特典記憶手段96が所定の記憶領域に保存する(S52)。ここで、端末装置Aがサーバ装置103から特典情報を受信する場合とは、対戦相手より自己のチーム戦力値が低いにもかかわらず自己チームが対戦に勝利した場合である(引き分けた場合にも特典が付与されてもよい)。特典記憶手段96に特典情報が記憶されることにより特典が有効となる。
その後、端末装置Aの特典表示手段97は、特典の内容をモニタ21aに表示して特典が付与されたことをプレイヤに認識可能とすると共に(S53)、チーム戦力値表示手段92および段位・ランキング表示手段94は、自己チームおよび相手チームのチーム戦力値、段位並びにランキングをモニタ21aに表示する(S54)。
一方、対戦相手より自己のチーム戦力値が高かった場合や自己チームが対戦に負けた場合には、端末装置Aがサーバ装置103から特典情報を受信することはなく(S51でNO)、端末装置Aのモニタ21aには、自己チームおよび相手チームのチーム戦力値、段位並びにランキングが表示される(S54)。
ところで、サーバ装置103におけるマッチングにおいては、対戦前チーム戦力値が近い(両チームの対戦前チーム戦力値の差が所定範囲内である)ことを条件に対戦相手の組み合わせを決定しているにもかかわらず、対戦中に実際に起用される選手キャラクタによっては対戦した両チームの能力に差が生じていることがある。このことは、前述のとおり、非常に高い能力を持った選手キャラクタばかりを9名分集め、残り19名分の選手キャラクタを非常に能力の低いものに設定し、実際の試合では、非常に高い能力を持った9名の選手キャラクタのみを使って対戦するプレイヤと、バランスよく選手キャラクタを選択して自己の野球チームを編成し、対戦中には選手交代などのチーム戦術を考えながらプレイする一般プレイヤとの対戦で顕著となる。
本実施の形態では、特典が付与される場合もそうでない場合も、対戦終了後には、実際に対戦に関与した選手キャラクタのみを対象として算出された自己チームおよび相手チームのチーム戦力値がモニタ21aで確認できるようになっており、プレイヤは実際に対戦した相手チームの強弱を的確に認識できるようになっている。
また、システムとしては対戦前チーム戦力値に基づいて同程度のチームレベルの対戦者どうしをマッチングしたにもかかわらず、実際の対戦においては選手キャラクタのレベルが大きく異なっているということが、プレイヤ間で不公平感を生じさせる要因にもなっていた。しかし、本実施の形態では、対戦相手より自己のチーム戦力値が低いにもかかわらず自己チームが対戦に勝利した場合には、対戦した両チームのチーム戦力値の差に応じた特典が付与されるので、不公平感の解消が図られる。
特に、対戦した両チームのレベル比較については、実際に対戦に関与した選手のみを対象として求められたチーム戦力値が使用され、チーム戦力値の差に応じて特典が付与されるので、プレイヤが実際に対戦した相手チームの強弱が特典に忠実に反映されることとなる。従って、プレイヤにとっては、試合の中で実際に強いと感じた対戦相手に勝利したときの特典が大きくなることを確認できるので、納得感が得られる。さらに、プレイヤにとっては、実質的に強い対戦相手であればあるほど大きな特典を獲得できる機会が得られることから、大きな特典獲得のため試合への集中力が喚起されることとなるため、仮想空間内への誘引力の強いゲームを実現することができる。
次に、サーバ装置103の主な動作を、図7に示すフローチャートを用いて説明する。
サーバ装置103は、ネットワークゲームへの参加を希望するプレイヤの端末装置から参加要求を受けた場合(S61でYES)、ログイン認証を行った上で当該端末装置の参加を受け付け、当該端末装置の情報を参加リスト62aに追加する(S62)。参加リスト62aに登録される端末装置の情報には、端末装置の識別情報(端末IDおよびプレイヤID)および対戦前チーム戦力値等が含まれる。これらS61およびS62の処理は、図3に示した対戦要求受付手段61および待機端末管理手段62によって実行される。
例えば、参加リスト62aに登録されている端末装置が1台のみである等、未だマッチングができない場合には(S63でNO)、S61〜S63のルーチンを繰り返して参加リスト62aに端末装置の情報を追加して行く。そして、マッチングが可能となれば(S63でYES)、サーバ装置103は、参加リスト62aに登録されている対戦要求端末群の中から特定の一の端末装置を選出する(通常、最も早く参加リスト62aに登録された端末装置を選出する)。そして、サーバ装置103のマッチング手段64は、選出した一の端末装置の対戦前チーム戦力値との差が所定範囲内である対戦前チーム戦力値を有する端末装置を対戦相手として決定する(S64)。
その後、サーバ装置103の対戦相手通知手段65は、マッチングされた各端末装置に対して、それぞれ対戦相手の情報を送信する(S65)。
その後、サーバ装置103は、マッチングが完了した両端末装置を参加リスト62aから削除すると共に、新たにネットワークゲームへの参加要求があった端末装置を参加リスト62aに追加することにより、参加リスト62aの更新を行う(S66)。
また、マッチング後においては、サーバ装置103は、対戦中の両端末装置から定期データを断続的に送信して対戦中の状態を管理・監視し(S67)、対戦が終了した後(S68でYES)、対戦した両端末装置から対戦結果およびチーム戦力値を受信する(S69でYES)。
その後、サーバ装置103の特典付与手段72は、対戦相手よりチーム戦力値が低いチームが対戦に勝利した否かを判断する(S70)。S70でYESの場合、サーバ装置103は、勝利したチームの端末装置のプレイヤを特典付与対象としてS71へ移行する。
S71では、サーバ装置103の戦力差演算手段71が、対戦した両チームのチーム戦力値の差を演算する(S71)。そして、サーバ装置103の特典付与手段72が、チーム戦力値の差に応じた特典を決定する(S72)。ここで、特典の一例として、ゲーム内で使用可能なポイントをボーナスとして付与する場合について以下に説明する。
勝利チームのチーム戦力値をTwin、敗者チームのチーム戦力値をTlost、特典として与えられるボーナスポイントをPとした場合、例えば、ボーナスポイントPは下式(1)により求めることができる。
P=(Tlost−Twin)×100+300・・・(1)
上式(1)は、チーム戦力値の差(Tlost−Twin)を100倍してそれにベースポイント300を加算している。例えば、Twin=14、Tlost=15でチーム戦力値が低い方のチームが対戦に勝利した場合、上式(1)によれば、ボーナスポイントPは400ポイントとなる。
さらに、両チームの試合結果である得点差を考慮してボーナスポイントを付与してもよい。例えば、勝利チームの得点をSwin、敗者チームの得点をSlostとした場合、ボーナスポイントPを下式(2)により求めてもよい。
P={(Tlost−Twin)×100+300}×{1.0+(Swin−Slost)×0.2}
・・・(2)
上式(2)では、得点差(Swin−Slost)に応じて、{1.0+(Swin−Slost)×0.2}のレートを掛けている。例えば、Twin=14、Tlost=15でチーム戦力値が低い方のチームが「5対3」で勝利(Swin=5、Slost=3)した場合、上式(2)によれば、ボーナスポイントPは560ポイントとなる。
このように、特典付与手段72は、対戦した結果の得点差が大きいほど付与される特典が大きくなるようにすることによって、大きな特典の獲得のため試合への集中力がより喚起される。
S72で付与すべき特典を決定した後、サーバ装置103の特典付与手段72は、対戦相手よりチーム戦力値が低いにもかかわらず対戦に勝利したチームの端末装置に、特典情報を送信する(S73)。
また、サーバ装置103の相手チーム戦力送信手段73および段位・ランキング通知手段68は、対戦した各端末装置に、対戦相手のチーム戦力値、段位およびランキングの情報を送信する(S74)。
一方、対戦相手よりチーム戦力値が低いチームが対戦に勝利しなかった場合(S70でNO)、サーバ装置103は特典付与処理をせずにS74に移行する。
上記では、対戦相手よりチーム戦力が低いチームが対戦に勝利した場合に特典を付与する例について説明したが、さらに、対戦相手よりチーム戦力が低いチームが対戦に引分けた場合にも、当該チームのプレイヤに対して、対戦した両チームのチーム戦力値の差に応じた特典を付与するようにしてもよい。この場合の例としては、チーム戦力がより低いチームのチーム戦力値をTlow、チーム戦力がより高いチームのチーム戦力値をとしたとき、レートを0.5として下式(3)により求めることができる。
P={(Thigh−Tlow)×100+300}×0.5 ・・・(3)
ところで、特典は、対戦相手よりチーム戦力値が低いチームが対戦に勝利したとき(または引分けたとき)に付与するというのが基本であるが、両チームのチーム戦力値の差がそれ程大きくない場合(当該差が所定値より小さい場合)には、対戦相手よりチーム戦力値が高いチームが対戦に勝利したとき(または引分けたとき)に、対戦相手よりチーム戦力値が低いチームが対戦に勝利したとき(または引分けたとき)よりも小さな特典を与える仕様にすることもできる。この場合も、上式(1)〜(3)を適用できる(但し、算出されたボーナスポイントPがマイナスになる場合は0(ゼロ)として扱うこととする)。
例えば、Twin=15、Tlost=14として対戦相手よりチーム戦力値が高いチームが対戦に勝利した場合を想定すると、上式(1)によれば、ボーナスポイントPは、
P=(14−15)×100+300=200(ポイント)
となり、Twin=14、Tlost=15のときの400ポイントよりも低い。
また、Twin=15、Tlost=14でチーム戦力値が高い方のチームが「5対3」で勝利(Swin=5、Slost=3)した場合、上式(2)によれば、ボーナスポイントPは、
P={(14−15)×100+300}×{1.0+(5−3)×0.2}
=280(ポイント)
となり、Twin=14、Tlost=15のときの560ポイントよりも低い。
また、Tlow=14、Thigh=15で引分けたとき、上式(3)によれば、チーム戦力値が低い方のチームのボーナスポイントPは、
P={(15−14)×100+300}×0.5=200(ポイント)
となり、チーム戦力値が高い方のチームのボーナスポイントPは、
P={(14−15)×100+300}×0.5=100(ポイント)
となる。
チーム戦力値が高い方のチームに付与されるボーナスポイントPに関し、上式(1)〜(3)においては、両チームのチーム戦力値の差(Tlost−Twin)または(Thigh−Tlow)が3以上になればボーナスポイントPは0以下となるので、チーム戦力値の差が3未満の場合にのみ特典が付与されることになる。
〔ゲームシステムのその他の構成例〕
次に、図4に示した端末装置の制御部10aの変形例を図8に示す機能ブロック図を参照して以下に説明する。なお、図4等に示した構成と同様の構成については、同一の参照番号を付してその説明を省略する。
実際の対戦に関与した選手キャラクタそれぞれの試合に対する関与度には高低があるため、図8に示す構成例では、関与キャラクタ抽出手段86によって抽出された各キャラクタの対戦への関与度を算出する関与度演算手段98をさらに備え、チーム戦力演算手段87が関与度演算手段98にて算出された各選手キャラクタの対戦への関与度が高いほど各選手キャラクタの能力値の重み付けを高くしてチーム戦力値を演算するようになっている。端末装置におけるその他の構成については図4に示した構成と同じであり、また、サーバ装置103側の構成および動作も前述の通りである。
関与度演算手段98における各キャラクタの関与度の算出例について以下に説明する。
野球ゲームにおける攻撃の場合、9人の打者がすべて同じ回数だけ打席に立つとは限らない。例えば得点できそうな絶好の機会に、ある選手キャラクタ(例えば投手キャラクタ)に代えて別のキャラクタを代打として出せば、当該選手キャラクタの打席はそれで終わる。また、代打として試合の途中から出場した選手キャラクタも、全イニングに出場した他の選手キャラクタよりも打席数は少なくなる。このように、対戦の途中で試合から退いたり、途中から試合に出場したりした選手キャラクタは、全イニングに出場した他の選手キャラクタよりも対戦への関与度は当然に低くなる。
また、野球ゲームにおける守備の場合も、対戦の途中で試合から退いたり、途中から試合に出場したりした選手キャラクタは、全イニングに出場した他の選手キャラクタよりも守備機会が少なくなることから、対戦への関与度は低いといえる。
そこで、そこで、関与度演算手段98は、出場イニング数が多い選手キャラクタほど関与度を高くすることができる。具体的には、試合の全イニング数をIall、各選手キャラクタの出場イニング数をIeach、各選手キャラクタの対戦への関与度をXとしたとき、関与度Xは、
X=Ieach/Iall
により求めることができる。
なお、イニング毎に時間の長さが異なるので、関与度演算手段98は、イニング数ではなく試合出場時間に基づいて各選手キャラクタの対戦への関与度を算出してもよい。具体的には、試合開始から終了までの試合時間をTall、各選手キャラクタの試合出場時間をTeach、各選手キャラクタの対戦への関与度をXとしたとき、関与度Xは、
X=Teach/Tall
により求めることができる。
また、野球ゲームのように攻撃イニングと守備イニングとが時間的に完全に分かれているような場合には、攻撃の場合の関与度と守備の場合の関与度とを分けて算出することもできる。例えば、関与度演算手段98は、野球ゲームにおける攻撃の場合、打席数が多い選手キャラクタほど関与度を高くする。具体的には、チームの全打席数をBall、各選手キャラクタの打席数をBeach、各選手キャラクタの攻撃への関与度をXattackとしたとき、関与度Xは、
Xattack=Beach/Ball
により求めることができる。これにより、各選手キャラクタの打席数に比例した関与度を算出できる。
また、野球ゲームにおける守備の場合、試合における投手キャラクタやそれをリードする捕手キャラクタの重要度は、他の野手キャラクタと比べて大きい。そこで、関与度演算手段98は、野球ゲームにおける守備の場合、投手キャラクタの関与度>捕手キャラクタの関与度>他の野手キャラクタの関与度、の順で守備への関与度Xdefenseを小さくしていくようにする。例えば、投手キャラクタの関与度を45%、捕手キャラクタの関与度を20%、残り7名の野手キャラクタに対する関与度をそれぞれ5%(合計35%)とすることができる。さらに、各選手キャラクタの守備のイニング数または時間も考慮して、各選手キャラクタの守備への関与度Xdefenseを求めてもよい。
チーム戦力演算手段87は、関与度演算手段98にて算出された各選手キャラクタの対戦への関与度が高いほど各選手キャラクタの能力値の重み付けを高くしてチーム戦力値を演算する。すなわち、チーム戦力演算手段87は、各選手キャラクタの能力値に対し、各選手キャラクタの対戦への関与度に比例した重みを掛け合わせ、加重平均をとることによってチーム戦力値を演算することができる。
上述のように各選手キャラクタの攻撃への関与度Xattackと守備への関与度Xdefenseとを分けて算出した場合には、チーム戦力演算手段87は、攻撃の場合のチーム戦力値(攻撃時チーム戦力値)および守備の場合のチーム戦力値(守備時チーム戦力値)のそれぞれについて演算し、それらの合計または平均を求めることによりチーム戦力値とすることができる。
特に、各選手キャラクタの攻撃への関与度Xattackと守備への関与度Xdefenseとを分けて算出する場合には、各選手キャラクタの能力値についても攻撃力(攻撃時の能力値であり、野球の場合は打力等)と守備力(守備時の能力値)という2つの能力値に分けてキャラクタ能力値記憶手段84Aに記憶しておくことが望ましい。そして、チーム戦力演算手段87は、攻撃の場合におけるチーム戦力値の演算においては各選手キャラクタの攻撃への関与度Xattackと攻撃時の能力値とを用い、守備の場合におけるチーム戦力値の演算においては各選手キャラクタの守備への関与度Xdefenseと守備時の能力値とを用いる。これにより、各選手キャラクタの攻撃力と守備力とが正確に反映されたチーム戦力値を求めることができる。
以上のように、図8に示す構成例では、関与キャラクタ抽出手段86によって抽出された各キャラクタの対戦への関与度を算出する関与度演算手段98をさらに備え、チーム戦力演算手段87が関与度演算手段98にて算出された各選手キャラクタの対戦への関与度が高いほど各選手キャラクタの能力値の重み付けを高くしてチーム戦力値を演算するようになっているので、実際の対戦に関与した各選手キャラクタの対戦への関与の程度も反映されたチーム戦力値が得られ、現実の対戦事実がより忠実に反映された両チームのチームレベル比較が可能となる。そして、チーム戦力値の差に応じて特典が付与されるので、プレイヤが実際に対戦した相手チームの強弱がより忠実に特典に反映されることとなる。
〔ゲームシステムのさらに他の構成例〕
次に、図4に示した端末装置の制御部10aの変形例を図9に示す機能ブロック図を参照して以下に説明する。なお、図4等に示した構成と同様の構成については、同一の参照番号を付してその説明を省略する。
本構成例は、図4に示した端末装置の制御部10aにおける関与キャラクタ抽出手段86およびチーム戦力演算手段87を、図9に示す関与キャラクタ抽出手段186およびチーム戦力演算手段187に変更するものであり、端末装置におけるその他の構成については図4に示した構成と同じであり、また、サーバ装置103側の構成および動作も前述の通りである。
本構成例では、対戦を構成する所定イベント毎(例えば1打席毎)に、実際の対戦に関与した選手キャラクタを抽出し、抽出した選手キャラクタの能力値を対象として当該所定イベント毎の戦力値を随時求めるとともに、対戦が終了したときに所定イベント毎の戦力値の平均を算出してチーム戦力値を求めるようにするものである。
野球ゲームにおいて、対戦を構成する所定イベント毎とは、投手キャラクタから投球されるボール1球毎、1打席毎(一人の打者に対する結果(アウト、ヒット、四死球)が出る毎)、1アウト毎、1イニングの表または裏毎(即ち、3アウト毎)、1イニング(表および裏を含む1イニング)毎などである。例えば、これがサッカーゲームとなると、対戦を構成する所定イベント毎とは、1パス毎、1シュート毎、ボールオブジェクトがタッチラインまたはゴールラインを割る毎とすることができる。対戦を構成する所定イベントとしては、ゲームの種類により様々なイベントを採用できる。本実施の形態では、対戦を構成する所定イベント毎の例として、野球ゲームにおける1打席毎について、以下に説明する。
図9に示すように、関与キャラクタ抽出手段186は、関与キャラクタ抽出部191と、イベント検出部192と、関与キャラクタ記憶部193とを備えている。
関与キャラクタ抽出部191は、対戦中に実際の対戦に関与した選手キャラクタを抽出する機能を有し、図4の関与キャラクタ抽出手段86と同様の動作を行う。関与キャラクタ抽出手段186が抽出した選手キャラクタの識別情報は、関与キャラクタ記憶部193へ記憶される。
イベント検出部192は、所定のイベント毎に検出信号を出力する機能を有し、本実施の形態では、一人の打者に対する結果(アウト、ヒット、四死球)が出る1打席毎に、関与キャラクタ記憶部193および後述のイベント毎戦力演算部201へ検出信号を出力する。ここで、一人の打者に対する結果が出る1打席の終了タイミングは、投手キャラクタから投球されたボールキャラクタを打者キャラクタが打撃等し、その結果として野手キャラクタにボールキャラクタが捕球等されて一連の1打席分のプレイが終了するタイミングをいう。例えば、走者なしの場面で打者キャラクタが打撃してサードゴロを打った場合、三塁手キャラクタがボールキャラクタを捕球してそれを一塁手に送球し、一塁手がボールキャラクタを捕球してアウトが確定したときに1打席が終了する。また、例えば、走者なしの場面で打者キャラクタが打撃してレフト前ヒットを打った場合、左翼手キャラクタがボールキャラクタを捕球してそれを内野へ返球(二塁ベース付近にいる二塁手等に返球)したときに1打席が終了する。走者ありの場面での打撃の場合にはさらに複数の野手キャラクタが送球・捕球等を行うこともあるが、イベント検出部192は、これら一連のプレイ終了を検出して検出信号を出力する。
関与キャラクタ記憶部193は、関与キャラクタ抽出手段186が抽出した選手キャラクタの識別情報を所定の記憶領域へ記憶する。また、関与キャラクタ記憶部193は、イベント検出部192から検出信号が入力される毎に、記憶している1打席分の選手キャラクタの情報を、後述のイベント毎戦力演算部201へ出力し、出力後は記憶領域をクリアする。すなわち、関与キャラクタ記憶部193は、常に、最新の1打席分の対戦に関与した選手キャラクタの情報を記憶している。
1打席のプレイ開始からその終了までの間に、関与キャラクタ抽出部191により抽出される選手キャラクタの例を次に示す。例えば、走者一塁の場面でショートオーバーのヒットが出たときを想定すると、当該1打席のプレイに関与する選手キャラクタは以下のようになる。
守備側:投手キャラクタ、捕手キャラクタ、左翼手キャラクタ(捕球および送球)、遊撃手キャラクタ(打撃されたボールオブジェクトの軌道から所定距離内に位置していた場合)、三塁手キャラクタ(走者のさらなる進塁を防ぐために左翼手キャラクタから三塁手キャラクタへの返球があった場合)、一塁手キャラクタ(投手キャラクタから走者キャラクタへの牽制球があった場合)
攻撃側:打者キャラクタ、走者キャラクタ(一塁ベースから二塁ベースへ走塁)
次に、チーム戦力演算手段187について説明する。チーム戦力演算手段187は、イベント毎戦力演算部201と、イベント毎戦力記憶部202と、チーム戦力演算部203と、既に説明済みの対戦前チーム戦力演算部88とを備えている。
イベント毎戦力演算部201には、1打席毎にイベント検出部192から検出信号が入力されるとともに、関与キャラクタ記憶部193から1打席毎に対戦に関与した選手キャラクタの情報が入力される。そして、イベント毎戦力演算部201は、関与キャラクタ記憶部193から受け取った1打席毎の対戦に関与した選手キャラクタの情報に基づいて、1打席毎の戦力値を求め、それをイベント毎戦力記憶部202に記憶しておく。1打席毎の戦力値は、1打席のプレイにおいて関与した選手キャラクタの能力値の平均値として求めることができる。イベント毎戦力演算部201は、試合開始からその終了まで、1打席毎の戦力値を随時演算してイベント毎戦力記憶部202に記憶する動作を繰り返す。
ここで、各選手キャラクタの能力値については、攻撃力(攻撃時の能力値)と守備力(守備時の能力値)という2つの能力値に分けてキャラクタ能力値記憶手段84Aに記憶しておくことができる。そして、イベント毎戦力演算部201は、攻撃の場合における戦力値の演算においては各選手キャラクタの攻撃時の能力値を用い、守備の場合における戦力値の演算においては各選手キャラクタの守備時の能力値を用いるようにしてもよい。
イベント毎戦力記憶部202は、イベント毎戦力演算部201が算出した1打席毎の戦力値を所定の記憶領域へ記憶する。このイベント毎戦力記憶部202は、対戦の開始からその終了までの間にイベント毎戦力演算部201が算出した全ての1打席毎の戦力値を記憶している。
チーム戦力演算部203は、イベント毎戦力記憶部202に記憶されている全ての1打席毎の戦力値を対象として、それらの平均を算出してチーム戦力値を求める。
上記の説明では、対戦を構成する所定イベント毎に、実際の対戦に関与したキャラクタを抽出して、所定イベント毎に随時戦力値を求めながら、最終的にゲーム終了時に所定イベント毎の戦力値の平均を算出してチーム戦力値を求める構成を説明したが、対戦を時間的に分割する所定時間毎にこれと同様の処理をすることも可能である。すなわち、関与キャラクタ抽出手段186が、対戦を時間的に分割する所定時間毎に(例えば1分毎に)実際の対戦に関与したキャラクタを抽出し、チーム戦力演算手段187が、関与キャラクタ抽出手段186にて抽出されたキャラクタの能力値を対象として所定時間毎の戦力値を求めるとともに、対戦が終了したときに所定時間毎の戦力値の平均を算出してチーム戦力値を求めるようにしてもよい。この場合、図9のイベント検出部192の代わりに、図10に示すように計時部292を適用し、当該計時部292からは対戦開始から対戦終了まで一定時間間隔で検出信号が随時出力される構成とすることができる。
以上のように、本実施の形態の構成例は、対戦を構成する所定イベント毎または対戦を時間的に分割する所定時間毎に、実際の対戦に関与した選手キャラクタを抽出し、抽出した選手キャラクタの能力値を対象として当該所定イベント毎または所定時間毎の戦力値を随時求めるとともに、対戦が終了したときに所定イベント毎の戦力値の平均を算出してチーム戦力値を求めるようにするものである。これにより、対戦を構成する所定イベント毎または対戦を時間的に分割する所定時間毎に小刻みに実際の対戦に関与した選手キャラクタを抽出するので、所定イベント毎または所定時間毎に求められる戦力値は現実の対戦事実が忠実に反映されたものとなる。そして、所定イベント毎または所定時間毎に求められる戦力値の平均を算出して求められたチーム戦力値は、対戦試合全体として現実の対戦事実が忠実に反映されたものとなる。また、所定イベント毎または所定時間毎に求められる戦力値は、対戦中に随時算出することができるので、試合終了後、迅速に正確なチーム戦力値を得ることができる。
〔ゲームシステムのさらに他の構成例〕
次に、図9に示した構成の変形例を図11に示す機能ブロック図を参照して以下に説明する。なお、図9等に示した構成と同様の構成については、同一の参照番号を付してその説明を省略する。
実際の対戦に関与した選手キャラクタそれぞれの試合に対する関与度には高低があるため、図11に示す構成例では、関与キャラクタ抽出手段186によって抽出された各選手キャラクタの対戦への関与度を決定する関与度決定手段188をさらに備え、チーム戦力演算手段187が関与度決定手段188にて決定された各選手キャラクタの対戦への関与度が高いほど各選手キャラクタの能力値の重み付けを高くして所定イベント毎の戦力値を演算し、対戦が終了したときに所定イベント毎の戦力値の平均を算出してチーム戦力値を求めるようになっている。端末装置におけるその他の構成については図4または図9に示した構成と同じであり、また、サーバ装置103側の構成および動作も前述の通りである。ここでも、対戦を構成する所定イベント毎の例として、1打席毎について以下に説明する。
図11の構成例では、イベント検出部192は、1打席毎に、関与キャラクタ記憶部193およびイベント毎戦力演算部201とともに関与度決定手段188へも検出信号を出力する。また、関与キャラクタ記憶部193は、イベント検出部192から検出信号が入力される毎に、記憶している1打席分の対戦に関与した選手キャラクタの情報を、イベント毎戦力演算部201とともに関与度決定手段188へも出力する。
関与度決定手段188は、イベント検出部192から検出信号が入力される毎に、関与キャラクタ抽出手段186によって抽出された実際に対戦に関与した各選手キャラクタの対戦への関与度を、1打席毎に決定する。
関与度決定手段188における各選手キャラクタの関与度の決定例について、以下に説明する。ここでは、例えば、走者一塁の場面の打席でショートオーバーのヒットが出たとし、前述のとおり以下の各選手キャラクタが当該1打席のプレイに実際に関与したときを想定する。
守備側:投手キャラクタ、捕手キャラクタ、左翼手キャラクタ、遊撃手キャラクタ、一塁手キャラクタ、三塁手キャラクタ、
攻撃側:打者キャラクタ、走者キャラクタ
この場合、守備側であれば、当該打席のプレイに対する関与度を、例えば、投手キャラクタ45%、捕手キャラクタ20%、左翼手キャラクタ20%、遊撃手キャラクタ5%、一塁手キャラクタ5%、三塁手キャラクタ5%とすることができる。また、攻撃側であれば、当該打席のプレイに対する関与度を、走者キャラクタの走力も加味して、例えば、打者キャラクタ70%、走者キャラクタ30%とすることができる。
これはほんの一例であり、様々なケースに応じて、実際に対戦に関与した各選手キャラクタの関与度は決定されるものである。例えば、走者なしの場面で三振をとった場合には投手キャラクタおよび捕手キャラクタのみが実際に対戦に関与し、守備側の関与度は、例えば、投手キャラクタ70%、捕手キャラクタ30%とすることができる。また、走者ありの場面でダブルプレーの場合などには実際に関与した選手キャラクタもさらに増える。よって、それぞれの場面において個々に各選手キャラクタの関与度は決定される。また、走者なしの場面での攻撃側の関与度は、打者キャラクタ100%、走者キャラクタが2名なら打者キャラクタ70%に各走者キャラクタ15%ずつ、走者3名(満塁)なら打者キャラクタ70%に各走者キャラクタ10%ずつというように、実際に対戦に関与した各選手キャラクタの関与度を決定する。ここで挙げた関与度の具体的数値はあくまで例示であり、他の数値にしてもよい。
関与度決定手段188は、様々なケース、すなわち関与キャラクタ抽出部191によって所定イベント毎(または後述のように所定時間毎)に抽出される選手キャラクタの様々な組み合わせに対応付けて、実際に対戦に関与した各選手キャラクタの対戦への関与度(加重平均の重みに対応する値)を記憶したルックアップテーブルを所定の記憶領域に記憶しており、当該ルックアップテーブルに基づき、実際に対戦に関与した各選手キャラクタの関与度を迅速に決定可能な構成とすることができる。
チーム戦力演算手段187のイベント毎戦力演算部201は、関与度決定手段188にて決定された各選手キャラクタの対戦への関与度が高いほど各選手キャラクタの能力値の重み付けを高くして所定イベント毎(ここでは1打席毎)の戦力値を演算する。
例えば、前述した走者一塁の場面の打席でショートオーバーのヒットが出たときの打席を想定し、実際に対戦に関与した投手キャラクタの能力値を「14」、捕手キャラクタの能力値を「12」、左翼手キャラクタの能力値を「8」、遊撃手キャラクタの能力値を「6」、一塁手キャラクタの能力値を「18」、三塁手キャラクタの能力値を「10」とした場合、当該打席における守備側の戦力値は、下式のように「12.00」となる。
14×0.45+12×0.20+8×0.20+6×0.05+18×0.05+10×0.05=12.00
また、打者キャラクタの能力値を「15」、走者キャラクタ能力値を「10」とした場合、当該打席における攻撃側の戦力値は、下式のように「14.10」となる。
15×0.70+12×0.30=14.10
このようにしてチーム戦力演算手段187のイベント毎戦力演算部201で所定イベント毎(ここでは1打席毎)に算出された戦力値は、イベント毎戦力記憶部202に保存され、対戦が終了したときに、チーム戦力演算部203により所定イベント毎の戦力値の平均が算出されてチーム戦力値が求められる。
上記の説明では、対戦を構成する所定イベント毎に、実際の対戦に関与したキャラクタを抽出して、所定イベント毎に随時戦力値を求めながら、最終的にゲーム終了時に所定イベント毎の戦力値の平均を算出してチーム戦力値を求める構成を説明したが、対戦を時間的に分割する所定時間毎にこれと同様の処理をすることも可能である。すなわち、関与キャラクタ抽出手段186が、対戦を時間的に分割する所定時間毎に(例えば1分毎に)実際の対戦に関与したキャラクタを抽出し、チーム戦力演算手段187が、関与キャラクタ抽出手段186にて抽出されたキャラクタの能力値および関与度決定手段188が決定した各選手キャラクタの関与度に基づいて所定時間毎の戦力値を求めるとともに、対戦が終了したときに所定時間毎の戦力値の平均を算出してチーム戦力値を求めるようにしてもよい。この場合、図11のイベント検出部192の代わりに、図12に示すように計時部292を適用し、当該計時部292からは対戦開始から対戦終了まで一定時間間隔で検出信号が随時出力される構成とすることができる。
以上のように、図11または図12に示す構成例では、対戦を構成する所定イベント毎または対戦を時間的に分割する所定時間毎に小刻みに実際の対戦に関与した選手キャラクタを抽出するとともに、抽出された各キャラクタの対戦への関与度も求めて、所定イベント毎または所定時間毎に戦力値を算出している。これにより、所定イベント毎または所定時間毎に求められる戦力値は現実の対戦事実がより忠実に反映されたものとなる。また、所定イベント毎または所定時間毎に求められる戦力値は、対戦中に随時算出することができるので、試合終了後、迅速に正確なチーム戦力値を得ることができる。
〔ゲームシステムの様々なバリエーション等〕
本実施の形態に係るネットワークゲームシステム100において、サーバ装置103および端末装置が実行するコンピュータ読み取り可能な各種プログラムは、ハードディスク、光ディスク(CD−ROM、DVD−ROM、UMDなど)、フレキシブルディスク、半導体メモリ、ROMカセット、あるいは家庭用ビデオゲーム装置用のカートリッジ等のコンピュータ読み取り可能な各種記録媒体に記録され、サーバ装置103および端末装置に読み出されて実行される。なお、各種プログラムをサーバ装置103や端末装置に提供する手段は、前述した記録媒体に限定されるものではなく、インターネット104介して行うこともできる。例えば、ネットワークゲームを管理している会社が提供するホームページ等からインターネット104を介してダウンロード可能な場合は、ゲーム進行プログラム等を当該ホームページから直接ダウンロードして実行できるようにしてもよい。
また、上述のように、サーバ装置103の機能はネットワークゲームシステム100内のどこかで実現されればよいため、機能分散型の複数台のサーバとして実現することもできる。また、ネットワークゲームシステム100内にある1台または複数台の小型コンピュータに、サーバ装置103の機能の一部または全部を持たせるシステム構成も可能である。
さらに、サーバ装置103の機能の一部を、ネットワークゲームシステム100内の端末装置に持たせることもできる。たとえば、上述の実施の形態では、サーバ装置103が相手チーム戦力送信手段73(図3参照)を備え、サーバ装置103が各端末装置へ対戦相手のチーム戦力値を送信する構成としているが、各端末装置が自己のチーム戦力値を対戦相手に送信する構成としてもよい。
また、上述の実施の形態では、各端末装置が自己のチームのチーム戦力値をそれぞれ演算する構成としているが、何れか一方の端末装置で両チームのチーム戦力値を演算してもよい。この場合、両チームのチーム戦力値を演算する端末装置は、両チームのキャラクタの能力値を把握しておく必要があるので、チーム戦力値を演算しない方の端末装置は、自己チームを構成する各キャラクタの能力値の情報を、両チームのチーム戦力値を演算する端末装置へ送信しておく必要がある。但し、上述した実施の形態のように、各端末装置が自己のチームのチーム戦力値をそれぞれ演算する構成とする方が、分散処理となって一方の端末装置の処理負担を大きくすることがないので望ましい。
また、各端末装置の機能の一部を、ネットワークゲームシステム100内のサーバ装置103側に持たせることもできる。たとえば、上述の実施の形態では、各端末装置が自己のチームのチーム戦力値をそれぞれ演算する構成としているが、各チームのチーム戦力値をサーバ装置103側で演算してもよい。この場合、各端末装置が、自己のチームを構成する各キャラクタの能力値の情報および実際の対戦に関与した自己チームの選手キャラクタの抽出結果を、サーバ装置103に送信する必要がある。各端末装置が実際の対戦に関与した自己チームの選手キャラクタの抽出結果をサーバ装置103へ送信することに関し、対戦している2台の端末装置はサーバ装置103と定期通信(ハートビート送信)を行っているので、各端末装置が当該定期通信時に選手キャラクタの抽出結果を併せて送信することが可能である。または、各端末装置が自己チームの選手キャラクタの抽出結果を試合終了まで保存しておき、試合終了後に、各端末装置が自己チームの選手キャラクタの抽出結果をサーバ装置103に一括送信することもできる。
各々のプレイヤが操作する端末装置同士で対戦を行う方式には、端末装置同士で直接通信して対戦する方式と、サーバ装置103を経由して対戦する方式とがある。上述の実施の形態では、前者の方式、すなわち、端末装置同士で直接データのやりとりを行うP2P接続によりネットワークゲームを行うゲームシステムについて説明したが、後者の方式、すなわち、サーバ装置103を介してクライアントとしての端末装置同士が対戦する、いわゆるクライアント/サーバ(C/S)接続によりネットワークゲームを行う方式であってもよい。C/S接続方式の対戦であれば、サーバ装置103が対戦中の各種データを管理しているため、サーバ装置103側に、関与キャラクタ抽出手段86・186、チーム戦力演算手段87・187、関与度演算手段98および関与度決定手段188を設けることも容易に実現できる。
特典の付与は、対戦相手よりチーム戦力値が低い方のチームが対戦に勝利したときに付与するというのが基本であるが、チーム戦力値の差にある程度の開きがあれば、実際にはチーム戦力値が低い方のチームが僅差で負けたとしても、当該チーム戦力値の差を考慮すれば大健闘であり、チーム戦力値が低い方のチームに特典を付与してもよい。そこで、両チームのチーム戦力値の差に応じてハンデキャップ値を設定し、実際にはチーム戦力値が低い方のチームが対戦に負けたとしても、当該ハンデキャップ値を考慮した得点を演算したらチーム戦力値が低い方のチームが勝利する場合には、実際には負けたチーム戦力値が低い方のチームのプレイヤに特典を付与するものとすることができる。
これを実現する特典付与手段72の構成例を図13に示す。同図に示すように、特典付与手段72は、ハンデキャップ設定部301と、得点補正部302と、特典有無判定部303と、特典決定部304と、特典情報送信部305とを備えている。
ハンデキャップ演算部301は、対戦相手よりチーム戦力値が低い方のチームが対戦に負けた場合において、対戦したチーム同士のチーム戦力値の差に応じたハンデキャップ値を設定する。例えば、勝利チームのチーム戦力値をTwin、敗者チームのチーム戦力値をTlost、ハンデキャップ値をHとした場合、ハンデキャップ演算部301は
H=Twin−Tlost
として算出されるハンデキャップ値Hを設定する。
得点補正部302は、対戦した結果の得点を、上記ハンデキャップ値に基づいて、チーム戦力値が低い方のチームが有利となるように補正する。例えば、勝利チームの得点をSwin、敗者チームの得点をSlost、ハンデキャップ値Hを考慮した敗者チームの補正得点をSlost’した場合、得点補正部302は、
Slost’=Slost+H
の演算を行い、敗者チームの得点をSlost’に補正する。または、得点補正部302は、
Swin’=Slost−H
の演算を行い、勝者チームの得点をSwin’に補正する。
特典有無判定部303は、得点補正部302による補正後の得点について、
敗者チームの補正得点Slost’>勝利チームの得点Swin
または、
敗者チームの得点Slost>勝利チームの補正得点Swin’
となった場合には、敗者チームに特典を付与するものと判定する。
特典決定部304は、対戦相手よりチーム戦力値が低い方のチームが対戦に勝利したときだけでなく、特典有無判定部303が敗者チームに特典を付与するものと判定した場合にも、付与すべき特典を決定する。ただし、対戦相手よりチーム戦力値が低い方のチームが実際には負けたがハンデキャップ値を考慮して勝ったとみなされた場合は、当該チームがハンデキャップ値なしで勝った場合よりも獲得できる特典を小さくする。この場合に特典を小さく一例としては、前述の式(1)または式(2)を適用する場合、ベースポイントを300から100にしてボーナスポイントを調整することが考えられる。
特典情報送信部305は、特典決定部304が決定した特典情報を得点付与対象の端末装置へ送信する。
例えば、第1プレイヤが操作する端末装置AのチームAと第2プレイヤが操作する端末装置BのチームBとが対戦した場合であって、チームAのチーム戦力値「14」、チームBのチーム戦力値が「16」であったとする。そして、両チームの対戦の結果、チームAが「4対5」でチームBに負けた場合を想定する。この場合、ハンデキャップ値HはH=16−14=2である。よって、当該ハンデキャップ値H=2を考慮した得点の補正を行うと、敗者チームAの補正得点は4+2=6点となり、当該得点の補正後はチームAが「6対5」でチームBに勝ったこととみなされる。よって、この場合、実際には負けたチームAの第1プレイヤに特典が付与されることとなる。
これにより、実際に対戦に関与したキャラクタの能力値から算出されたチーム戦力値からすると対戦相手よりも低いため、善戦はしたが結果的に試合に負けたとしても、両チームのチーム戦力値の差に応じたハンデキャップ値を考慮して勝ったとみなされれば特典が付与されることになるので、実質的に強いチームと対戦したプレイヤにとっては納得感が得られる。また、実質的に強いチームとマッチングされてしまったことにより試合に負けそうになっても、善戦すれば特典を獲得できる機会が得られることより、試合に負けていても試合への集中力が喚起され、仮想ゲーム空間への吸引力の強いゲームが実現できる。
また、上述の実施の形態では、2人のプレイヤが一対一でチーム対戦する例を示したが、3人以上のプレイヤがチーム対戦するネットワークゲームにも適用可能である。3人以上のプレイヤがチーム対戦する場合におけるチーム戦力値の差とは、対戦している複数のチームに含まれる任意の2チーム間におけるチーム戦力値の差とすることができる。
また、上述の実施の形態では、ネットワークゲームの一例として野球ゲームを挙げて説明したが、適用可能なネットワークゲームはこれに限定されるものではなく、プレイヤ間でチーム対戦を行うネットワークゲームであれば、種々のゲームに適用することができる。たとえば、サッカー、アメリカンフットボール、バレーボール等の種々のスポーツゲーム、シミュレーションゲーム、シューティングゲーム、ロールプレイングゲーム等に同様に適用することができる。
(1)本発明の一局面にかかるゲームシステムは、複数の端末装置をそれぞれ操作するプレイヤ同士が、自己のチームを構成するキャラクタを操作して対戦するチーム対戦ゲームを実行するゲームシステムであって、対戦中に実際の対戦に関与したキャラクタを抽出する関与キャラクタ抽出手段と、前記関与キャラクタ抽出手段によって抽出されたキャラクタの有する能力値に基づいて、各チームの戦力レベルを表すチーム戦力値をチーム毎に算出するチーム戦力演算手段と、前記チーム戦力演算手段が算出した各チームのチーム戦力値の差を算出する戦力差演算手段と、対戦相手よりチーム戦力値が低いチームが対戦に勝利した場合に、当該チームに対して、前記戦力差演算手段にて算出されたチーム戦力値の差に応じた特典を付与する特典付与手段とを備えていることを特徴としている。
プレイヤ同士がチーム対戦ゲームを行う場合、各プレイヤは自己のチームを構成するキャラクタの全てを実際の対戦で使用するとは限らず、例えば野球ゲームを例にとると、ベンチに居ただけで全く試合に関与しない待機キャラクタも存在し得る。このような実際の対戦に関与しないキャラクタを含めたチームの戦力レベルは、現実の対戦におけるチームの強弱とずれてしまう。そこで、本発明のゲームシステムは、対戦中に実際の対戦に関与したキャラクタを関与キャラクタ抽出手段により抽出し、抽出したキャラクタの能力値に基づいてチーム戦力演算手段が各チームの戦力レベルを表すチーム戦力値を算出するようになっている。これにより、実際の対戦に関与しないキャラクタを排除して現実の対戦に即したチーム戦力値を求めることができる。
また、システムとしては対戦前のマッチングにおいて同程度のチームレベルの対戦者どうしをマッチングしたにもかかわらず、実際の対戦においては選手キャラクタのレベルが大きく異なっているということが、プレイヤ間で不公平感を生じさせる要因にもなっていた。そこで、本発明のゲームシステムは、対戦相手より自己のチーム戦力値が低いにもかかわらず自己チームが対戦に勝利した場合には、戦力差演算手段にて算出されたチーム戦力値の差に応じた特典を特典付与手段が当該チームに付与するように構成しているので、不公平感の解消が図られ、より興趣性の高いチーム対戦ゲームを実現することができる。
特に、本発明のゲームシステムでは、対戦した両チームのレベル比較については、実際に対戦に関与した選手のみを対象として求められた上記のチーム戦力値が使用され、このチーム戦力値の差に応じて特典が付与されるので、プレイヤが実際に対戦した相手チームの強弱が特典に忠実に反映されることとなる。従って、プレイヤにとっては、試合の中で実際に強いと感じた対戦相手に勝利したときの特典が大きくなることを確認できるので、十分な納得感が得られる。さらに、プレイヤにとっては、実質的に強い対戦相手であればあるほど大きな特典を獲得できる機会が得られることから、大きな特典獲得のため試合への集中力が喚起されることとなるため、仮想ゲーム空間内への誘引力の強いゲームを実現することができる。
(2)上記の構成において、ゲームシステムは、前記関与キャラクタ抽出手段によって抽出された各キャラクタの対戦への関与度を算出する関与度演算手段をさらに備え、前記チーム戦力演算手段は、前記関与度演算手段にて算出された各キャラクタの対戦への関与度が高いほど各キャラクタの能力値の重み付けを高くして前記チーム戦力値を演算することが好ましい。
実際の対戦に関与したキャラクタそれぞれの試合に対する関与度には高低があるため、上記の構成では、実際の対戦に関与したキャラクタとして抽出された各キャラクタの対戦への関与度を算出し、対戦への関与度が高いほど各キャラクタの能力値の重み付けを高くしてチーム戦力値を演算するようになっている。ここで、対戦への関与度が高いとは、対戦における役割の重要度や、対戦に関わる時間、頻度など、対戦の結果に影響を及ぼす重みがどれだけ大きいかを示している。具体的には、例えば野球ゲームの守備側の場合であれば、投手や捕手は守備に対して大きな影響力を持っていることから、他の野手に比べて対戦への関与度が高いものとする。また、攻撃の場合であれば、打席に立つ回数に着目すれば、代打で1回打席に入るよりも、1試合すべての打席、例えば4打席入る方が対戦への関与度が高いものとする。また、サッカーゲームであれば、例えばキャプテンは他の選手よりも対戦への関与度が高いものとする。このように、実際の対戦に関与した各キャラクタの対戦への関与の程度も反映されたチーム戦力値が得られ、現実の対戦事実がより忠実に反映された両チームのチームレベル比較が可能となる。そして、このチーム戦力値の差に応じて特典が付与されるので、プレイヤが実際に対戦した相手チームの強弱がより忠実に特典に反映されることとなる。
(3)上記の構成において、前記関与キャラクタ抽出手段は、対戦中における攻撃時と守備時とに分けて実際の対戦に関与したキャラクタをそれぞれ抽出し、前記関与度演算手段は、各キャラクタの攻撃への関与度と守備への関与度を分けてそれぞれ算出し、前記チーム戦力演算手段は、各キャラクタの有する攻撃時の能力値と攻撃への関与度とに基づいて攻撃時チーム戦力値を算出するとともに、各キャラクタの有する守備時の能力値と守備への関与度とに基づいて守備時チーム戦力値を算出し、前記攻撃時チーム戦力値と守備時チーム戦力値とを加算または平均して前記チーム戦力値を算出することが好ましい。
上記の構成によれば、対戦中における攻撃時と守備時とに分けて、実際の対戦に関与したキャラクタの抽出およびその関与度の算出が行われる。また、各キャラクタの有する能力値についても攻撃時と守備時とで別の能力値が与えられている。そして、チーム戦力演算手段は、攻撃時チーム戦力値と守備時チーム戦力値とをそれぞれ算出して、それらを加算または平均してチーム戦力値を求めるようになっている。現実世界でも、例えば野球の場合、選手によって、守備能力は普通であるが、盗塁等の走力(即ち、攻撃能力)に優れているとか、逆に、打撃力(即ち、攻撃能力)は劣るが、守備技術に長けているというように、必ずしも攻撃能力と守備能力とが同等であるとは限らない。この点、本構成によれば、各キャラクタの攻撃力(攻撃時の能力値)と守備力(守備時の能力値)とが正確に反映されたチーム戦力値を求めることができる。
(4)上記の構成において、前記関与キャラクタ抽出手段は、対戦を構成する所定イベント毎または対戦を時間的に分割する所定時間毎に、実際の対戦に関与したキャラクタを抽出し、前記チーム戦力演算手段は、前記関与キャラクタ抽出手段にて抽出されたキャラクタの能力値を対象として所定イベント毎または所定時間毎の戦力値を求めるとともに、対戦が終了したときに前記所定イベント毎または所定時間毎の戦力値の平均を算出して前記チーム戦力値を求めることが好ましい。
上記の構成によれば、対戦を構成する所定イベント毎または対戦を時間的に分割する所定時間毎に小刻みに実際の対戦に関与したキャラクタを抽出するので、所定イベント毎または所定時間毎に求められる戦力値は現実の対戦事実が忠実に反映されたものとなる。そして、所定イベント毎または所定時間毎に求められる戦力値の平均を算出して求められたチーム戦力値は、対戦が行われた試合全体として現実の対戦事実が忠実に反映されたものとなる。例えば、野球ゲームの場合、先発メンバー構成が試合終了まで変わらないということはあまりなく、投手交代や代打投入、代走投入など、選手が比較的入れ代わることが多い。即ち、その都度、チームとしての戦力は変動していると言える。本構成によれば、このような現実世界でも見られるチーム戦力の変動を忠実に反映できる。また、所定イベント毎または所定時間毎に求められる戦力値は、対戦中に随時算出することができるので、試合終了後、迅速に正確なチーム戦力値を得ることができる。
(5)上記の構成において、ゲームシステムは、前記関与キャラクタ抽出手段によって前記所定イベント毎または所定時間毎に抽出された各キャラクタの対戦への関与度を決定する関与度決定手段をさらに備え、前記チーム戦力演算手段は、前記関与度決定手段にて決定された各キャラクタの対戦への関与度が高いほど各キャラクタの能力値の重み付けを高くして、前記所定イベント毎または所定時間毎の戦力値を演算することが好ましい。
上記の構成によれば、対戦を構成する所定イベント毎または対戦を時間的に分割する所定時間毎に小刻みに実際の対戦に関与したキャラクタを抽出するとともに、抽出された各キャラクタの対戦への関与度も求めて、所定イベント毎または所定時間毎に戦力値を算出している。これにより、所定イベント毎または所定時間毎に求められる戦力値には、実際の対戦に関与した各キャラクタの対戦への関与の程度も反映され、現実の対戦事実がより忠実に反映された戦力値を求めることができる。
(6)上記の構成において、前記関与度決定手段は、前記関与キャラクタ抽出手段によって前記所定イベント毎または所定時間毎に抽出されるキャラクタの組み合わせに対応付けて各キャラクタの対戦への関与度を記憶したルックアップテーブルを有し、当該ルックアップテーブルに基づいて各キャラクタの対戦への関与度を決定することが好ましい。
上記の構成によれば、所定イベント毎または所定時間毎に抽出されるキャラクタの組み合わせに対応付けて、各キャラクタの対戦への関与度が記憶されたルックアップテーブルが用意されているので、当該ルックアップテーブルを参照することにより迅速に各キャラクタの対戦への関与度を決定することができる。
(7)上記の構成において、前記特典付与手段は、対戦相手よりチーム戦力値が低いチームが対戦に勝利した場合における対戦結果の得点差が大きいほど、当該チームにより大きな特典を付与することが好ましい。
上記の構成によれば、対戦結果の得点差によって付与される特典が変わるため、プレイヤは、より大きな特典の獲得のため、単に勝利するだけではなくより多くの得点を取得して勝とうとするので、試合への集中力がより喚起され、より興趣性の高いゲームを実現できる。
(8)上記の構成において、前記特典付与手段は、対戦相手よりチーム戦力値が低い方のチームが対戦に負けた場合に、対戦したチーム同士のチーム戦力値の差に応じたハンデキャップ値を設定するハンデキャップ設定部と、対戦結果としての各チームの得点を、上記ハンデキャップ値に基づいて、チーム戦力値が低い方のチームが有利となるように補正する得点補正部と、前記得点補正部が補正した後の各チームの得点により特典を付与するか否かを判定する特典有無判定部とをさらに備え、前記特典有無判定部は、前記得点補正部による得点の補正によりチーム戦力値が低い方のチームの得点が相手チームの得点より大きくなった場合に、チーム戦力値が低い方のチームに特典を付与する判定を行うことが好ましい。
特典付与手段による特典の付与は、対戦相手よりチーム戦力値が低い方のチームが対戦に勝利したときに付与するというのが基本であるが、チーム戦力値の差にある程度の開きがあれば、チーム戦力値が低い方のチームが例えば僅差で負けたとしても、当該チーム戦力値の差を考慮すれば大健闘であり、チーム戦力値が低い方のチームに特典を付与するに値する場合もある。そこで、上記の構成のように、チーム戦力値の差に応じてハンデキャップ値を設定し、実際にはチーム戦力値が低い方のチームが対戦に負けたとしても、当該ハンデキャップ値を考慮した得点を演算したらチーム戦力値が低い方のチームが勝利する場合には、実際には負けたチーム戦力値が低い方のチームのプレイヤに特典を付与するものとする。これにより、実質的に強いチームと対戦したプレイヤにとっては、実際には対戦に負けても善戦すれば特典を獲得できるので納得感が得られる。また、実質的に強いチームとマッチングされてしまったことにより試合に負けそうになっても、善戦すれば特典を獲得できる機会が得られることより、試合に負けていても試合への集中力が喚起され、仮想ゲーム空間への吸引力の強いゲームが実現できる。
(9)本発明の他の局面にかかるゲームシステムの制御方法は、複数の端末装置をそれぞれ操作するプレイヤ同士が、自己のチームを構成するキャラクタを操作して対戦するチーム対戦ゲームを実行するゲームシステムの制御方法であって、対戦中に実際の対戦に関与したキャラクタを抽出する関与キャラクタ抽出ステップと、前記関与キャラクタ抽出ステップによって抽出されたキャラクタの有する能力値に基づいて、各チームの戦力レベルを表すチーム戦力値をチーム毎に算出するチーム戦力演算ステップと、前記チーム戦力演算ステップで算出した各チームのチーム戦力値の差を算出する戦力差演算ステップと、対戦相手よりチーム戦力値が低いチームが対戦に勝利した場合に、当該チームに対して、前記戦力差演算ステップにて算出されたチーム戦力値の差に応じた特典を付与する特典付与ステップと、を備えていることを特徴としている。
(10)本発明のさらに他の局面にかかるプログラムは、複数の端末装置をそれぞれ操作するプレイヤ同士が、自己のチームを構成するキャラクタを操作して対戦するチーム対戦ゲームを実行するゲームシステムに含まれるコンピュータに、対戦中に実際の対戦に関与したキャラクタを抽出する関与キャラクタ抽出機能と、前記関与キャラクタ抽出機能によって抽出されたキャラクタの有する能力値に基づいて、各チームの戦力レベルを表すチーム戦力値をチーム毎に算出するチーム戦力演算機能と、前記チーム戦力演算機能で算出された各チームのチーム戦力値の差を算出する戦力差演算機能と、対戦相手よりチーム戦力値が低いチームが対戦に勝利した場合に、当該チームに対して、前記戦力差演算機能にて算出されたチーム戦力値の差に応じた特典を付与する特典付与機能と、を実現させることを特徴としている。