(57)【特許請求の範囲】
【請求項１】
不揮発性メモリに記憶された複数のプレイヤ識別情報を対象としてプレイヤ間の対戦のためのプレイヤ識別情報のマッチングを行うゲーム制御装置であって、
一定の規則に従って前記複数のプレイヤ識別情報の中からＭ個のプレイヤ識別情報を抽出して主メモリに展開する第１抽出手段と、
主メモリ上のプレイヤ識別情報の中からＮ個（Ｎ＜Ｍ）のプレイヤ識別情報をランダムに抽出する第２抽出手段と、
第２抽出手段によって抽出されたＮ個のプレイヤ識別情報を対象としてマッチングを行うマッチング実行手段と、
前記複数のプレイヤ識別情報の中から、前記第１抽出手段により抽出されなかったＮ個のプレイヤ識別情報を前記一定の規則に従って新たに抽出し、その新たに抽出したＮ個のプレイヤ識別情報を、前記マッチング実行手段によりマッチングが行われたＮ個のプレイヤ識別情報に代えて前記主メモリに展開する第３抽出手段と、
を備え、前記第２抽出手段、マッチング実行手段および第３抽出手段による各処理を、この順番に繰り返すことを特徴とする、
ゲーム制御装置。
【請求項２】
前記不揮発性メモリは、各プレイヤ識別情報と、プレイヤ識別情報を基に自装置に最後にアクセスされた時刻と対応付けて記憶しており、
前記第１抽出手段および前記第３抽出手段では、前記複数のプレイヤ識別情報の中から、現在時刻が前記最後にアクセスされた時刻から所定時間経過していないプレイヤ識別情報を抽出することを特徴とする、
請求項１に記載されたゲーム制御装置。
【請求項３】
各プレイヤ識別情報を複数のクラスのうちのいずれかのクラスと対応付けて管理しているクラス管理手段と、
第２抽出手段および第３抽出手段によって抽出されたそれぞれＮ個のプレイヤ識別情報を、対応するクラスごとに蓄積する蓄積手段と、
を備え、
前記マッチング実行手段は、クラスごとに蓄積されたプレイヤ識別情報の数がクラスについて予め定められた数に達した場合に、当該クラスについて蓄積されたプレイヤ識別情報についてのマッチングが完了したと判定することを特徴とする、
請求項１または２に記載されたゲーム制御装置。
【請求項４】
ネットワークを介して任意の通信端末と通信を行う通信手段と、
任意の通信端末からの対戦参加に関する登録のためのアクセスに基づいて、プレイヤ識別情報を前記不揮発性メモリに記憶させる記憶手段と、を備えたことを特徴とする、
請求項１〜３のいずれかに記憶されたゲーム制御装置。
【請求項５】
不揮発性メモリに記憶された複数のプレイヤ識別情報を対象としてプレイヤ間の対戦のためのプレイヤ識別情報のマッチングを行うゲーム制御装置におけるマッチング方法であって、
一定の規則に従って前記複数のプレイヤ識別情報の中からＭ個のプレイヤ識別情報を抽出して前記ゲーム制御装置の主メモリに展開する第１のステップと、
前記主メモリ上のプレイヤ識別情報の中からＮ個（Ｎ＜Ｍ）のプレイヤ識別情報をランダムに抽出する第２のステップと、
第２のステップによって抽出されたＮ個のプレイヤ識別情報を対象としてマッチングを行う第３のステップと、
前記複数のプレイヤ識別情報の中から、前記第１のステップで抽出されなかったＮ個のプレイヤ識別情報を前記一定の規則に従って新たに抽出し、その新たに抽出したＮ個のプレイヤ識別情報を、前記第３のステップでマッチングが行われたＮ個のプレイヤ識別情報に代えて前記主メモリに展開する第４のステップと、
を備え、
前記第２、第３および第４のステップを、この順番に繰り返すことを特徴とする、
マッチング方法。
【請求項６】
不揮発性メモリに記憶された複数のプレイヤ識別情報を対象としてプレイヤ間の対戦のためのプレイヤ識別情報のマッチングを行うために、コンピュータに、
一定の規則に従って前記複数のプレイヤ識別情報の中からＭ個のプレイヤ識別情報を抽出して前記コンピュータの主メモリに展開する第１抽出手順と、
前記主メモリ上のプレイヤ識別情報の中からＮ個（Ｎ＜Ｍ）のプレイヤ識別情報をランダムに抽出する第２抽出手順と、
第２抽出手順によって抽出されたＮ個のプレイヤ識別情報を対象としてマッチングを行うマッチング実行手順と、
前記複数のプレイヤ識別情報の中から、前記第１抽出手順で抽出されなかったＮ個のプレイヤ識別情報を前記一定の規則に従って新たに抽出し、その新たに抽出したＮ個のプレイヤ識別情報を、前記マッチング実行手順でマッチングが行われたＮ個のプレイヤ識別情報に代えて前記主メモリに展開する第３抽出手順と、
前記第２抽出手順、マッチング実行手順および第３抽出手順を、この順番に繰り返す手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプレイヤ識別情報を対象としてプレイヤ間の対戦のためのプレイヤ識別情報のマッチングを行う技術に関する。
【背景技術】
【０００２】
従来、ゲーム用ソフトウエアを搭載した通信機能付きゲーム装置を各プレイヤが操作することで、複数のプレイヤの間でネットワークを介して実行されるオンラインゲームが知られている。
また近年、ソーシャルネットワーキングサービス（ＳＮＳ）においてウェブブラウザ上で動作するＡＰＩ(Application Programming Interface)などの動作環境を基に作成されるゲーム用アプリケーションによって実行される、いわゆるソーシャルゲーム（Social Game）が普及している。ソーシャルゲームは、不特定多数のプレイヤ間でコミュニケーションをとりながらプレイするオンラインゲームの一種であると言える。しかしながら、ソーシャルゲームでは、上述したオンラインゲームとは異なり、ゲーム用ソフトウエアを搭載した通信機能付きゲーム装置を通してプレイヤ間でゲームを行うものではなく、プレイヤ側でゲーム用ソフトウエアのインストールあるいはダウンロードを行う必要がない。つまり、プレイヤは、ウェブブラウザが搭載された通信装置を備えていれば、ソーシャルゲームを実行できる。そのため、例えばインターネットに接続可能な携帯端末を備えていれば、プレイヤは時間と場所を問わずソーシャルゲームを楽しむことができる。
【０００３】
上述したオンラインゲームあるいはソーシャルゲームでは、ネットワークに接続されたサーバにおいて、各プレイヤを個別に識別するためのプレイヤ識別情報（プレイヤＩＤ）を予め登録するようになっている。そして、対戦ゲームにおける複数のプレイヤ間におけるマッチング（対戦の組み合わせ）は、プレイヤ識別情報に基づいてサーバによって自動的に決定される。従来、複数のプレイヤ識別情報に対するマッチング方法として、特許文献１に記載されているようにトーナメント方式の自動マッチング方法、特許文献２に記載されているようにランダムに対戦相手（プレイヤＩＤ）を決定する自動マッチング方法等が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３５４２４号公報
【特許文献２】特開２００１−１５７７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したオンラインゲームあるいはソーシャルゲームでは、プレイヤによって登録されたプレイヤ識別情報は、ネットワークに接続されたサーバ（ゲーム制御装置）内のＨＤＤ(Hard Disk Drive)等の不揮発性メモリに記録される。そして、サーバのプロセッサは、ＲＡＭ(Random Access Memory)等の主メモリを利用して、不揮発性メモリ内の複数のプレイヤ識別情報のマッチングを実行することになる。このとき、マッチング対象となるプレイヤ識別情報の数が、主メモリにおいて一度に処理可能なプレイヤ識別情報の数よりも遥かに多い場合には、従来のマッチング方法では、すべてのマッチングの処理を実行するのに時間が掛かる場合がある。例えば、不揮発性メモリに記録された複数のプレイヤ識別情報からランダムに、主メモリにおいて一度に処理可能な数のプレイヤ識別情報を順次抽出してマッチングを行う方法を採る場合には、抽出済みか否かを識別するためのフラグ等をプレイヤ識別情報ごとに設定して記憶するとともに、抽出の度に、不揮発性メモリ内の各プレイヤ識別情報のフラグを走査する処理が必要となって時間が掛かる。
【０００６】
かかるマッチング処理における遅延は、処理対象となるプレイヤ識別情報の数が増大するほど顕著となる。
上述したオンラインゲーム（ソーシャルゲームではなく）において、例えば特定のゲームに対して１００万個のプレイヤ識別情報が登録されていたならば、そのすべてのプレイヤ識別情報に対応したプレイヤがネットワークに同時に接続していることは通常想定し難いため、サーバにおいてマッチングの対象となるプレイヤ識別情報の数は、１００万個よりもずっと少なく、例えば数千個から数万個程度である。この場合、不揮発性メモリ内の、ネットワークに接続しているアクティブなプレイヤ識別情報を対象として、マッチング処理を行うために主メモリへプレイヤ識別情報を抽出する度に、数１０Ｋビットのデータを走査することになる。
【０００７】
これに対して、上述したソーシャルゲームでは、プレイヤが複雑な操作を行う必要がなく簡易な操作のみで対戦を短時間で実行させるゲーム、さらには、このゲームと並行して、プレイヤが操作を行うことなくバックグラウンドで（つまり、サーバ側で）自動的に対戦を実行してプレイヤに対戦結果のみを通知するゲームが実行される場合がある。そのようなゲームでは、ネットワーク上のサーバに登録されたすべてのプレイヤ識別情報を対象として、プレイヤの対戦参加の意思とは無関係に自動的に対戦を実行する。その場合、例えば特定のゲームに対して１００万個のプレイヤ識別情報が登録されていたならば、１００万個のプレイヤ識別情報を対象としてマッチングを行う必要がある。このとき、マッチング処理を行うために不揮発性メモリから主メモリへプレイヤ識別情報を抽出する度に、数Ｍビットの膨大なデータを走査することになる。
【０００８】
さらに、ソーシャルゲームでは、広く普及している携帯端末を用いて簡単な手続きで特定のゲームに登録することが可能であることから、ゲーム配信後に、時間が経過するにつれて登録者数が増加していき、ゲーム配信前に予測したプレイヤ識別情報の数よりもずっと多くのプレイヤ識別情報が登録される可能性がある。したがって、例えば当初１００万個のプレイヤ識別情報を予定してマッチング処理による遅延がないようにサーバの主メモリの容量を設定した場合であっても、将来的に２００〜３００万個のプレイヤ識別情報のマッチングを処理する場合には、マッチング処理による遅延が許容できないレベルになることが考えられる。
【０００９】
本発明は上述した観点に鑑みてなされたもので、限られた容量の主メモリを用いて、プレイヤ間の対戦のために非常に多数のプレイヤ識別情報を対象としたマッチングを行う場合に、マッチング処理による遅延を抑制することを可能とするゲーム制御装置、マッチング方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に係るゲーム制御装置は、不揮発性メモリに記憶された複数のプレイヤ識別情報を対象としてプレイヤ間の対戦のためのプレイヤ識別情報のマッチングを行うゲーム制御装置であって、以下の手段を備えている。
（１）一定の規則に従って前記複数のプレイヤ識別情報の中からＭ個のプレイヤ識別情報を抽出して主メモリに展開する第１抽出手段。
（２）主メモリ上のプレイヤ識別情報の中からＮ個（Ｎ＜Ｍ）のプレイヤ識別情報をランダムに抽出する第２抽出手段。
（３）第２抽出手段によって抽出されたＮ個のプレイヤ識別情報を対象としてマッチングを行うマッチング実行手段。
（４）前記複数のプレイヤ識別情報の中から、前記第１抽出手段により抽出されなかったＮ個のプレイヤ識別情報を前記一定の規則に従って新たに抽出し、その新たに抽出したＮ個のプレイヤ識別情報を、前記マッチング実行手段によりマッチングが行われたＮ個のプレイヤ識別情報に代えて前記主メモリに展開する第３抽出手段。
さらに、このゲーム制御装置は、以下の特徴を備えている。
（５）前記第２抽出手段、マッチング実行手段および第３抽出手段による各処理を、この順番に繰り返すこと。
【００１１】
このゲーム制御装置は、例えば、特定多数あるいは不特定多数のプレイヤの通信装置の各々と、ネットワークを介してコネクションを確立できる情報処理装置であれば何でもよい。そのようなゲーム制御装置は、例えばネットワーク上に配置された１または複数のサーバ、あるいは大型コンピュータ装置であってよい。また、プレイヤと通信端末は必ずしも１対１で対応する固定的な関係である必要はなく、複数のプレイヤが単一の通信端末を共用する通信端末の使用形態も想定される。したがって、このゲーム制御装置は、対戦ゲームを行うプレイヤを一意に特定可能な情報として、プレイヤＩＤ等のプレイヤ識別情報ごとにプレイヤを管理する。
【００１２】
このゲーム制御装置において、第１抽出手段は、一定の規則に従って複数のプレイヤ識別情報の中からＭ個のプレイヤ識別情報を抽出して主メモリに展開する。ここで、「一定の規則」は、例えば昇順あるいは降順など、複数のプレイヤ識別情報の各々を重複することなく順序付ける規則であれば如何なる規則でもよい。この第１抽出手段では、一定の規則に従ってプレイヤ識別情報が抽出されるため、不揮発性メモリに記憶された複数のプレイヤ識別情報の各々を、例えばフラグ等、抽出済みか否かを識別するデータと関連付ける必要がない。例えば、最後に抽出されたプレイヤ識別情報のみ（あるいは、新たに抽出を開始するプレイヤ識別情報のみ）を一時的に記憶しておけば足りる。なお、上記Ｍは、主メモリの容量に応じた任意の値に設定することができ、不揮発性メモリに記憶されているプレイヤ識別情報の数を１００〜２００万個とすれば、例えば、Ｍは１万程度でよい。
【００１３】
このゲーム制御装置において、第２抽出手段は、主メモリ上のプレイヤ識別情報の中からＮ個（Ｎ＜Ｍ）のプレイヤ識別情報をランダムに抽出する。マッチング実行手段は、第２抽出手段によって抽出されたＮ個のプレイヤ識別情報を対象としてマッチングを行う。上記Ｎは、Ｎ＜Ｍを満たす限り任意の値に設定することができるが、ＭがＮの整数倍となることが好ましい。例えば、Ｍ＝１万とした場合には、Ｎ＝１００としてよい。この場合、１万個のプレイヤ識別情報からランダムに抽出された１００個のプレイヤ識別情報を対象としてマッチングが実行される。
【００１４】
このゲーム制御装置において、第３抽出手段は、複数のプレイヤ識別情報の中から、第１抽出手段により抽出されなかったＮ個のプレイヤ識別情報を上記一定の規則に従って新たに抽出し、その新たに抽出したＮ個のプレイヤ識別情報を、マッチング実行手段によりマッチングが行われたＮ個のプレイヤ識別情報に代えて主メモリに展開する。つまり、既にマッチング済みのＮ個のプレイヤ識別情報は主メモリから除去され、代わりに不揮発性メモリから新たなＮ個のプレイヤ識別情報を抽出して主メモリに展開する。ここで、不揮発性メモリからの抽出は、第１抽出手段で最後に抽出されたプレイヤ識別情報を基準として、第１抽出手段と同様に一定の規則に従って順次行われる。
【００１５】
このゲーム制御装置では、いったん第１抽出手段が実行された後は、第２抽出手段、マッチング実行手段および第３抽出手段による各処理を、この順番に繰り返す。これにより、Ｎ個ずつのプレイヤ識別情報のマッチングが順に実行され、Ｎ個のプレイヤ識別情報のマッチングが完了する度に、新たなＮ個のプレイヤ識別情報が、不揮発性メモリに記憶されている複数のプレイヤ識別情報から抽出されていく。
このとき、第３抽出手段では、多数のプレイヤ識別情報を含む不揮発性メモリからの抽出を、上記一定の規則に従って順次行うことになるため、Ｎ個のプレイヤ識別情報の抽出の度に、最後に抽出されたプレイヤ識別情報のみ（あるいは、新たに抽出を開始するプレイヤ識別情報のみ）を記憶しておくことで、第３抽出手段による毎回の抽出を高速に行うことができる。例えば、不揮発性メモリに記憶しているプレイヤ識別情報の数を１００万個、Ｍを１万、Ｎを１００としたならば、第３抽出手段による抽出回数は、（１００万−１万）／１００＝９９００回と多くなるが、この各回における抽出開始のプレイヤ識別情報については、上記の通り「一定の規則」、すなわち昇順あるいは降順などによって重複することなく順序付けられたプレイヤ識別情報に基づき認識されるので、前回までの抽出分に対して今回抽出開始すべき箇所が直ちに分かり、抽出方法も一定の規則に従っているため、各回の抽出処理を高速で完了させることができる。結果として、このゲーム制御装置によれば、非常に多くのプレイヤ識別情報を対象とするマッチングを、限られた容量の主メモリを用いて高速で実行することができる。
【００１６】
このゲーム制御装置では、上述したように、不揮発性メモリからプレイヤ識別情報の抽出を行う第１抽出手段あるいは第３抽出手段では、一定の規則に従って順次プレイヤ識別情報を抽出する。つまり、抽出済みか否かを、例えばフラグが立てられているか否かによって識別するようなデータをプレイヤ識別情報ごとに順次、確認するような処理は不要である。そのため、不揮発性メモリ内のプレイヤ識別情報の数が、ゲーム制御装置の運用の途中で増大した場合であっても、不揮発性メモリ内のプレイヤ識別情報のマッチングに要する処理時間の増加が抑制される。よって、不揮発性メモリに記憶されたプレイヤ識別情報の増大に応じた主メモリの拡張（例えば、メモリの増設）あるいはシステム改変等の対応を回避することができる。
【００１７】
このゲーム制御装置において、主メモリでは、プレイヤ識別情報の中から第２抽出手段によりＮ個のプレイヤ識別情報がランダムに抽出され、かつ、その抽出後に、新たなＮ個のプレイヤ識別情報が不揮発性メモリから補充される。そのため、不揮発性メモリ内のプレイヤ識別情報の如何なるマッチングの可能性は排除されない。具体的には、不揮発性メモリに記憶しているプレイヤ識別情報の数を１００万個（１番目から１００万番目のプレイヤ識別情報）であって、昇順に抽出した場合であっても、１番目と１００万番目のプレイヤ識別情報のマッチングの可能性は排除されない。つまり、このゲーム制御装置によれば、広範囲におけるプレイヤ同士で対戦する機会を提供することができる。
なお、仮に、１００万個のプレイヤ識別情報に対して、主メモリの容量に応じた数のプレイヤ識別情報ごとにグループ分けを行い、各グループでランダムにマッチングを行うようにした場合には、対戦相手がグループ内に限定され、異なるグループのプレイヤ同士で対戦する機会が失われるが、このゲーム制御装置ではそのようなことはない。
【００１８】
請求項２に係るゲーム制御装置は、請求項１に記載のゲーム制御装置において、さらに以下の特徴を備えたゲーム制御装置である。
（６）前記不揮発性メモリは、各プレイヤ識別情報と、プレイヤ識別情報を基に自装置に最後にアクセスされた時刻と対応付けて記憶していること。
（７）前記第１抽出手段および前記第３抽出手段では、前記複数のプレイヤ識別情報の中から、現在時刻が前記最後にアクセスされた時刻から所定時間経過していないプレイヤ識別情報を抽出すること。
【００１９】
このゲーム制御装置に対してプレイヤが、例えばネットワーク等を介してプレイヤ識別情報を基にアクセスすることが想定されている。ここで、ゲーム制御装置は、不揮発性メモリにおいて、プレイヤ識別情報を基にアクセスされた時刻を、プレイヤ識別情報ごとに記憶している。そして、このゲーム制御装置では、第１抽出手段および前記第３抽出手段により、不揮発性メモリ内の複数のプレイヤ識別情報の中からプレイヤ識別情報を抽出するときに、現在時刻が最後にアクセスされた時刻から所定時間経過していないプレイヤ識別情報を抽出する。
【００２０】
このゲーム制御装置において、上記抽出方法を採るのは以下の理由による。すなわち、最後にアクセスされた時刻から現在時刻が所定時間経過しているプレイヤ識別情報のプレイヤは、現在時刻を基準として一定期間の間、ゲーム制御装置にアクセスしておらず、実質的にゲームに参加していないと考えられる。例えば、ソーシャルゲームあるいはオンラインゲームでは、比較的簡易な手続きでプレイヤ識別情報を登録することができるため、ゲーム制御装置で管理するプレイヤ識別情報の数は増加しやすいが、それらに該当するプレイヤが登録後に継続的にゲームに参加するとは限らない。実際には、ゲーム制御装置の不揮発性メモリに記憶されている複数のプレイヤ識別情報の中で、全くアクセスしていないプレイヤ識別情報がある程度の割合で存在する。そこで、現在時刻が最後にアクセスされた時刻から所定時間経過していないプレイヤ識別情報のみを抽出することで、実質的にゲームに参加していないプレイヤ識別情報を抽出対象から排除する。これにより、抽出対象となるプレイヤ識別情報の数が限定されるため、マッチングに要する時間がさらに短縮する。なお、排除された識別情報に該当するプレイヤは実質的にゲームに参加していないので（すなわち、ゲームにアクセスもしていないので）、例えば通常のゲームのバックグラウンドで自動的に実行される対戦への参加が行なわれなかったとしても、それを知ることもないので問題は生じない。但し、長期間アクセスしなかった後に再アクセスする場合を想定して、例えば、「所定期間以上（例えば２週間以上）のアクセスが無かったために、対戦が行なわれなかった」という旨のメッセージを流すようにしてもよい。この場合、ゲームへのアクセスを継続的に行なわないと、対戦が実行されないということをプレイヤが認識できるので、ゲーム継続への動機付けを与えることができる。
【００２１】
請求項３に係るゲーム制御装置は、請求項２に記載のゲーム制御装置において、以下の手段を備えたゲーム制御装置である。
（８）各プレイヤ識別情報を複数のクラスのうちのいずれかのクラスと対応付けて管理しているクラス管理手段。
（９）第２抽出手段および第３抽出手段によって抽出されたそれぞれＮ個のプレイヤ識別情報を、対応するクラスごとに蓄積する蓄積手段。
さらに、このゲーム制御装置は、以下の特徴を備えている。
（１０）前記マッチング実行手段は、クラスごとに蓄積されたプレイヤ識別情報の数がクラスについて予め定められた数に達した場合に、当該クラスについて蓄積されたプレイヤ識別情報についてのマッチングが完了したと判定すること。
【００２２】
このゲーム制御装置では、クラス管理手段は、各プレイヤ識別情報を複数のクラスのうちのいずれかのクラスと対応付けて管理する。プレイヤ識別情報とクラスとの対応付けは、様々な観点から設定しうる。例えば、プレイヤ識別情報がゲーム上のプレイヤキャラクタの能力値と関連付けられている場合には、その能力値の大きさに応じたクラスに各プレイヤ識別情報を対応付けてもよい。あるいは、クラスに応じた複数のステージ（例えば、それぞれ異なる複数の対戦種目）の対戦ゲームが設定されている場合には、参加するステージに各プレイヤ識別情報を対応付けてもよい。
【００２３】
このゲーム制御装置では、クラスごとにプレイヤ識別情報のマッチングを行うべく、蓄積手段が、第２抽出手段および第３抽出手段によって抽出されたそれぞれＮ個のプレイヤ識別情報を、対応するクラスごとに順次、振り分けて蓄積する。そして、マッチング実行手段は、クラスごとに蓄積されたプレイヤ識別情報の数がクラスについて予め定められた数に達した場合に、当該クラスについて蓄積されたプレイヤ識別情報についてのマッチングが完了したと判定する。ここで、クラスについて予め定められた数は、任意に設定することができ、上記Ｎと同一の値であってもよいし、異なる値でもよい。１回の第２抽出手段または第３抽出手段の実行によって各クラスに蓄積されるプレイヤ識別情報の数が上記予め定められた数に達しない場合には、複数回の第２抽出手段または第３抽出手段の実行により上記予め定められた数までプレイヤ識別情報が蓄積された時点で、マッチングが完了したと判定される。このゲーム制御装置によれば、非常に多くのプレイヤ識別情報を対象とするマッチングを限られた容量の主メモリを用いて高速で実行しつつ、そのマッチングをクラス単位で行うようにすることができるため、異なるクラスのプレイヤ識別情報が組み合わされるといった無駄な処理を回避し得て、効率よいマッチングを行なえる。また、複数のクラスを設けることで、ゲーム制御装置によって提供されるゲームのバリエーションを広げることができる。
【００２４】
請求項４に係るゲーム制御装置は、請求項１〜３のいずれかに記載のゲーム制御装置において、以下の手段を備えたゲーム制御装置である。
（１０）ネットワークを介して任意の通信端末と通信を行う通信手段。
（１１）任意の通信端末からの対戦参加に関する登録のためのアクセスに基づいて、プレイヤ識別情報を前記不揮発性メモリに記憶させる記憶手段。
【００２５】
このゲーム制御装置は、ネットワークを介して任意の通信端末と通信を行うことが想定される。通信端末は例えば、ゲーム用ソフトウエアを搭載した通信機能付きゲーム装置、いわゆるスマートフォン等の携帯端末、ＰＤＡ(Personal Digital Assistance)等である。つまり、このゲーム制御装置によって実行される対戦ゲームとして、オンラインゲームまたはソーシャルゲームが想定されている。前述したように、ソーシャルゲームあるいはオンラインゲームでは、比較的簡易な手続きでプレイヤ識別情報を登録することができるため、ゲーム制御装置で管理するプレイヤ識別情報の数は、ゲーム制御装置の運用を開始する時点では予測が困難である。そのため、特定のゲームに対応したゲーム制御装置の運用開始時点では、例えば１００万人のプレイヤが参加（例えば１００万個のプレイヤ識別情報を登録）し、運用開始の１ヶ月後には、２００万人のプレイヤが参加（例えば２００万個のプレイヤ識別情報を登録）する、というように、ゲーム制御装置の不揮発性メモリに記憶すべきプレイヤ識別情報の数が短期間で急激に増加する状況があり得る。かかる状況下においても、このゲーム制御装置によれば、不揮発性メモリ内のプレイヤ識別情報のマッチングに要する処理時間の増加が抑制されるため、不揮発性メモリに記憶されたプレイヤ識別情報の増大に応じた主メモリの拡張（例えば、メモリの増設）あるいはシステム改変等の対応を回避することができる。すなわち、このゲーム制御装置は、特にオンラインゲームまたはソーシャルゲームに適用することで有用な効果を奏する。
【００２６】
請求項５に係るマッチング方法は、不揮発性メモリに記憶された複数のプレイヤ識別情報を対象としてプレイヤ間の対戦のためのプレイヤ識別情報のマッチングを行うゲーム制御装置におけるマッチング方法であって、以下のステップを備えている。
（１２）一定の規則に従って前記複数のプレイヤ識別情報の中からＭ個のプレイヤ識別情報を抽出して前記ゲーム制御装置の主メモリに展開する第１のステップ。
（１３）前記主メモリ上のプレイヤ識別情報の中からＮ個（Ｎ＜Ｍ）のプレイヤ識別情報をランダムに抽出する第２のステップ。
（１４）第２のステップによって抽出されたＮ個のプレイヤ識別情報を対象としてマッチングを行う第３のステップ。
（１５）前記複数のプレイヤ識別情報の中から、前記第１のステップで抽出されなかったＮ個のプレイヤ識別情報を前記一定の規則に従って新たに抽出し、その新たに抽出したＮ個のプレイヤ識別情報を、前記第３のステップでマッチングが行われたＮ個のプレイヤ識別情報に代えて前記主メモリに展開する第４のステップ。
さらに、このマッチング方法は、以下の特徴を備えている。
（１６）前記第２、第３および第４のステップを、この順番に繰り返すこと。
【００２７】
請求項６に係るプログラムは、不揮発性メモリに記憶された複数のプレイヤ識別情報を対象としてプレイヤ間の対戦のためのプレイヤ識別情報のマッチングを行うために、コンピュータに、以下の各手順を実行させるためのプログラムである。
（１７）一定の規則に従って前記複数のプレイヤ識別情報の中からＭ個のプレイヤ識別情報を抽出して前記コンピュータの主メモリに展開する第１抽出手順。
（１８）前記主メモリ上のプレイヤ識別情報の中からＮ個（Ｎ＜Ｍ）のプレイヤ識別情報をランダムに抽出する第２抽出手順。
（１９）前記第１の対戦の対戦結果に基づいて、プレイヤ識別情報に対応するプレイヤキャラクタの能力値を更新するキャラクタ能力更新ステップ。
（２０）第２抽出手順によって抽出されたＮ個のプレイヤ識別情報を対象としてマッチングを行うマッチング実行手順。
（２１）前記複数のプレイヤ識別情報の中から、前記第１抽出手順で抽出されなかったＮ個のプレイヤ識別情報を前記一定の規則に従って新たに抽出し、その新たに抽出したＮ個のプレイヤ識別情報を、前記マッチング実行手順でマッチングが行われたＮ個のプレイヤ識別情報に代えて前記主メモリに展開する第３抽出手順。
（２２）前記第２抽出手順、マッチング実行手順および第３抽出手順を、この順番に繰り返す手順。
【００２８】
このプログラムは、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭ等のコンピュータが読み取り可能な情報記憶媒体に格納されてもよい。
【発明の効果】
【００２９】
本発明によれば、限られた容量の主メモリを用いて、プレイヤ間の対戦のために非常に多数のプレイヤ識別情報を対象としたマッチングを行う場合に、マッチング処理による遅延を抑制することができる。
【図面の簡単な説明】
【００３０】
【図１】第１の実施形態のゲームシステムの基本構成を示す図。
【図２】第１の実施形態の通信端末の構成を示すブロック図。
【図３】第１の実施形態のゲームサーバの構成を示すブロック図。
【図４】第１の実施形態のデータベースサーバの構成を示すブロック図。
【図５】第１の実施形態のゲーム制御装置で主要な役割を果たす機能を説明するための機能ブロック図。
【図６】第１の実施形態の通信端末における表示例を示す図。
【図７】データベースサーバに含まれるプレイヤデータベースの構成例を示す図。
【図８】データベースサーバに含まれるリーグ戦データベースの構成例を示す図。
【図９】データベースサーバに含まれるランキングデータベースの構成例を示す図。
【図１０】第１の実施形態の通信端末における表示例を示す図。
【図１１】第１の実施形態のゲーム制御装置の第２の対戦実行手段の機能ブロック図。
【図１２】第１の実施形態におけるマッチング処理を示すフローチャート。
【図１３Ａ】第１の実施形態におけるマッチング処理を概念的に示す図。
【図１３Ｂ】第１の実施形態におけるマッチング処理を概念的に示す図。
【図１４】第１の実施形態のマッチングを応用したリーグ戦のスケジュールの一例を示す図。
【図１５】第１の実施形態における野球ゲームの主要な処理の一部を示すフローチャート。
【図１６】第２の実施形態のデータベースサーバの構成を示すブロック図。
【図１７】第２の実施形態の野球ゲームのスケジュールの一例を示す図。
【図１８】第２の実施形態のゲーム制御装置で主要な役割を果たす機能を説明するための機能ブロック図。
【図１９】第２の実施形態の通信端末における表示例を示す図。
【図２０】第２の実施形態のゲーム制御装置の第２の対戦実行手段の機能ブロック図。
【図２１】第２の実施形態におけるマッチング処理を示すフローチャート。
【図２２】第２の実施形態におけるマッチング処理の一部を概念的に示す図。
【図２３】第２の実施形態における野球ゲームの主要な処理の一部を示すフローチャート。
【発明を実施するための形態】
【００３１】
（１）第１の実施形態
（１−１）ゲームシステムの構成
図１は、実施形態のゲームシステムのシステム構成例を示している。図１に示すように、このゲームシステムは、例えばインターネットなどの通信網ＮＷに接続可能な通信端末１０ａ，１０ｂ，１０ｃ，…と、通信網ＮＷに接続されているゲームサーバ２０と、データベースサーバ３０とによって構成されている。各通信端末１０ａ，１０ｂ，１０ｃ，…はそれぞれ、個々のプレイヤによって操作される端末であり、例えば、携帯端末、ＰＤＡ(Personal Digital Assistant)、パーソナルコンピュータなどの通信端末である。なお、以下の説明において、各通信端末１０ａ，１０ｂ，１０ｃ，…に共通して言及するときには、通信端末１０と表記する。このゲームシステムでは、ゲーム用アプリケーションとしてウェブブラウザ上で動作可能なアプリケーションがゲームサーバ２０に実装されている。通信端末１０は、ゲームサーバ２０によって提供されるウェブページを表示可能なウェブブラウザを備えており、プレイヤは、通信端末１０をウェブページ上で操作してゲームを実行する。データベースサーバ３０は、ゲームを実行する上での後述する様々な情報を格納しており、それらの情報の読み書きのためにゲームサーバ２０と例えば有線で接続される。
【００３２】
なお、図１には図示していないが、ゲームサーバ２０とは別に各通信端末１０のプレイヤを認証するための認証サーバを設けてもよい。また、多くの通信端末１０からのアクセスを受け入れるために複数のゲームサーバ２０を設ける場合は、その複数のゲームサーバ２０間の負荷を調整するためのロードバランサを設けてもよい。また、ゲームサーバ２０は単一のサーバ装置として構成してもよいが、機能を分散させた複数のサーバ装置として構成してもよい。
【００３３】
（１−２）通信端末の構成
図２を参照して通信端末１０の構成について説明する。
図２に示すように、通信端末１０は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ(Read Only Memory)１２、ＲＡＭ(Random Access Memory)１３、画像処理部１４、操作入力部１５、表示部１６、および、無線通信インタフェース部１７を備えており、各部間の制御信号あるいはデータ信号を伝送するためのバス１８が設けられている。
【００３４】
ＣＰＵ１１は、ＲＯＭ２２内のウェブブラウザをＲＡＭ２３にロードして実行する。そして、ＣＰＵ１１は、操作入力部１５等によってプレイヤに入力されるＵＲＬ(Uniform Resource Locator)の適切な指定に基づき、無線通信インタフェース部１７を介して、ゲームサーバ２０からウェブページを表示するためのデータ、すなわち、ＨＴＭＬ(HyperText Markup Language)文書や当該文書と関連付けられた画像などのオブジェクトのデータ（以下、総称して適宜「ＨＴＭＬデータ」と表記する。）を無線通信インタフェース部１７を介して取得し、そのＨＴＭＬデータを解釈する。なお、通信端末１０には、ウェブブラウザのブラウザ機能を拡張するための様々なプラグインが実装されていてよい。
なお、ＨＴＭＬデータの取得に当たって、ＣＰＵ１１は、予め登録されたプレイヤＩＤ（プレイヤ識別情報）、あるいは操作入力部１５を介して入力されるプレイヤＩＤを含むアクセス要求メッセージを、無線通信インタフェース部１７を介してゲームサーバ２０へ通知する。
【００３５】
ウェブブラウザは、画像処理部１４を介して、取得したＨＴＭＬデータに基づき、ゲームサーバ２０から提供されるウェブページを表示部１６に表示する。また、ウェブブラウザは、プレイヤが操作入力部１５の操作によってウェブページ上のハイパーリンク(Hyperlink)またはオブジェクトが選択されると、その選択に応じたウェブページを表示するための新たなＨＴＭＬデータの送信をゲームサーバ２０へ要求する。
【００３６】
画像処理部１４は、ＨＴＭＬデータの解析結果としてＣＰＵ１１から与えられる表示用画像データに基づいて、表示部１６にウェブページを表示する。表示部１６は、例えば、マトリクス状に画素単位で配置された薄膜トランジスタを含むＬＣＤ(Liquid Cristal Display)モニタであり、表示用画像データに基づいて薄膜トランジスタを駆動することでウェブページの画像を表示する。
【００３７】
操作入力部１５は、プレイヤの操作入力を受け入れるための複数の釦と、各釦の押下入力を認識してＣＰＵ１１へ出力するためのインタフェース回路を含みうるが、図２では、方向指示釦と決定釦とを例示している。例えば、方向指示釦は、表示部１６に表示されているウェブページをスクロールして表示することをＣＰＵ１１へ指示するために設けられる。また、決定釦は、例えばウェブページ上で複数のハイパーリンクまたはオブジェクトが表示されるときに、アクティブ表示（例えば強調表示）されている１つのハイパーリンクまたはオブジェクトをプレイヤが選択することをＣＰＵ１１へ指示するために設けられる。なお、通信端末１０を小型の携帯端末によって構成する場合には、これらの釦は、プレイヤが通信端末１０を片手で保持したままその親指で操作しやすいように、通信端末１０の前面に配置されていることが好ましい。
【００３８】
（１−３）ゲームサーバの構成
図３を参照してゲームサーバ２０の構成について説明する。
ゲームサーバ２０は、例えば階層構造の複数のウェブページからなる対戦ゲームのウェブサイトを管理しており、通信端末１０に対して対戦ゲームのウェブサービスを提供する。図３に示すように、ゲームサーバ２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、データベース（ＤＢ）アクセス部２４、および、通信インタフェース部２５（通信手段の一例）を備えており、各部間の制御信号あるいはデータ信号を伝送するためのバス２６が設けられている。なお、ゲームサーバ２０は、ハードウエアに関しては汎用のウェブサーバと同一の構成をとることができる。
【００３９】
ＲＯＭ２２には、クライアントである通信端末１０のウェブブラウザに対してＨＴＭＬ文書や画像などのオブジェクトの表示（ウェブページの表示）のサービスを提供するアプリケーションプログラム（本実施形態のプログラム）が格納されている。
ＣＰＵ２１は、ＲＯＭ２２内のゲームプログラムをＲＡＭ２３にロードして実行し、通信インタフェース部２５を介して、各種の処理を行う。
【００４０】
例えば、ＣＰＵ２１は、通信インタフェース部２５を介して、ＨＴＭＬデータを通信端末１０宛に送信する。なお、ゲームサーバ２０が通信端末１０のプレイヤの認証処理を行う場合には、ＣＰＵ２１はその認証処理を行う。
ＣＰＵ２１は、通信インタフェース部を介して、通信端末１０で表示されるウェブページ上でプレイヤにより選択されたハイパーリンクまたはオブジェクトに応じた処理を行う。その処理は、例えば、新たなＨＴＭＬデータの送信、または、ゲームサーバ２０内の演算処理あるいはデータ処理などを含む。
データベースアクセス部２４は、ＣＰＵ２１がデータベースサーバ３０に対してデータの読み書きを行うときのインタフェースである。
【００４１】
（１−４）データベースサーバの構成
データベースサーバ３０は不揮発性メモリの一実施形態であり、大容量のハードディスク装置やＲＡＩＤ（Redundant Arrays of Inexpensive Disks）等の形態の装置等、汎用ストレージで実現できる。データベースサーバ３０内の各データベースは、ゲームサーバ２０のデータベースアクセス部２４を介してＣＰＵ２１からのデータの読み書きが可能となるように構成されている。
図４に、データベースサーバ３０の構成の一例を示す。図４に示す例は、後述する対戦ゲームを実現するためのデータベースの一例であり、データベースサーバ３０は、プレイヤデータベース３１と、リーグ戦データベース３２と、ランキングデータベース３３とを備える。これらのデータベースの内容は後述する。
【００４２】
（１−５）ゲーム制御装置における各機能の概要
本実施形態では、ゲームサーバ２０およびデータベースサーバ３０によって本発明のゲーム制御装置が構成されている。このゲーム制御装置によって実行されるゲームは、野球、サッカー等のスポーツを模擬したもの、あるいは戦闘を模擬したものなど、プレイヤ間の対戦要素が含まれたゲーム（対戦ゲーム）であれば如何なる形式のものでも構わない。以下では、対戦ゲームの一例として野球ゲームが本実施形態のゲーム制御装置によって実行される場合のゲーム制御装置で実現される機能について、図５を参照して説明する。図５は、本実施形態のゲーム制御装置で主要な役割を果たす機能を説明するための機能ブロック図である。
【００４３】
本実施形態の野球ゲームでは、２つの対戦が進行するように構成されている。１つは、プレイヤによる通信端末１０の操作入力を契機として、異なるプレイヤＩＤに対応付けられたプレイヤキャラクタ間で行われる個別対戦（第１の対戦）である。もう１つは、プレイヤによる通信端末１０に対する操作入力を契機とせずに自動的に、異なるプレイヤＩＤに対応付けられたプレイヤキャラクタ間で行われるリーグ戦（第２の対戦）である。
なお、以下の説明において、「異なるプレイヤＩＤに対応付けられたプレイヤキャラクタ間での対戦」と「プレイヤＩＤ間の対戦」とは同義である。
【００４４】
ゲーム進行手段５１は、プレイヤによる通信端末１０に対する操作に応じた通信端末１０におけるウェブページを通して、プレイヤの通信端末１０で表示されるゲームを進行させる機能を備える。例えば、ゲーム進行手段５１では、ＣＰＵ２１は、プレイヤによるウェブページ上のハイパーリンクまたはオブジェクトの選択に応じたウェブページを表示するためのＨＴＭＬデータを、通信インタフェース部２５を介して通信端末１０宛に送信する。ＣＰＵ２１は、プレイヤによるウェブページ上のハイパーリンクまたはオブジェクトの選択に応じて新たなＨＴＭＬデータを逐次送信し、これにより、通信端末１０で表示されるウェブページが逐次切り替わることで、プレイヤがゲームの進行を認識する。
また、ゲーム進行手段５１では、ゲームサーバ２０のＣＰＵ２１が、ゲームの開始に先立って、通信インタフェース部２５を介して通信端末１０からアクセス要求メッセージを受けると、所定の認証処理の後、その通信端末１０からアクセス要求メッセージに含まれるプレイヤＩＤを認識する。そして、ゲームサーバ２０のＣＰＵ２１は、各通信端末１０に表示されるゲームの進行を、プレイヤＩＤ単位で管理する。このプレイヤＩＤは、例えば、プレイヤが通信端末１０を通してゲームサーバ２０が提供する野球ゲームのウェブサイトにアクセスし、所定の手続きを経た後に付与（登録）されてよい。
【００４５】
図６は、ゲーム進行手段５１によって通信端末１０に表示されるウェブページの一例である。図６に示すウェブページは、プレイヤが通信端末１０を通してゲームサーバ２０が提供する野球ゲームのウェブサイトにアクセスしたときに表示されるウェブページであって、この野球ゲームのメインメニューに相当する。図６に示すウェブページでは、例えば、「スカウト」、「オーダー」、「強化」、「抽選」、「試合」、「リーグ戦」のテキストが、ハイパーリンクが付される状態で所定の領域（オブジェクト）内に表示される。このとき、プレイヤが通信端末１０の操作入力部１５の方向指示釦および決定釦の操作によって、このいずれかの文字を選択すると、ゲーム進行手段５１では、ＣＰＵ２１が通信インタフェース部２５を介してプレイヤによる選択結果を認識して、新たなＨＴＭＬデータを通信端末１０宛に送信する。その結果、通信端末１０の表示部１６には、プレイヤの選択結果に応じた新たなウェブページを表示する。
【００４６】
記憶手段５２は、各プレイヤＩＤに対応付けてプレイヤキャラクタの能力値を記憶する機能を備える。本実施形態では、記憶手段５２は、データベースサーバ３０のプレイヤデータベース３１により実現される。
図７は、本実施形態の野球ゲームにおけるプレイヤデータベース３１の一例である。この例では、プレイヤデータベース３１には、プレイヤＩＤごとに、プレイヤＩＤに対応付けられた複数のプレイヤキャラクタの各々の項目ごとの能力値のデータが含まれる。図７の例では、能力値は０〜１０００の範囲の値であって、能力値が大きい値であるほど能力が高いことを示している。図７では、選手Ａについて、打力が３００であり、走力が４５０であり、守備力が８１０である場合が例として示されている。図７では、能力の指標としての項目として、「打力」，「走力」，「守備力」を例示しているが、選手が投手であれば別の項目、例えば「球速」，「制球力」，「スタミナ」等としてもよい。
なお、プレイヤがプレイヤＩＤを取得した時点では、プレイヤＩＤに対応付けられたプレイヤキャラクタの能力値がデフォルトの値として設定される。つまり、ゲームサーバ２０のＣＰＵ２１が、プレイヤデータベース３１にアクセスして、プレイヤＩＤに対応したプレイヤキャラクタの能力値のデフォルトのデータを書き込み、プレイヤデータベース３１がこの能力値のデフォルトのデータを記憶する。
【００４７】
また、図７に示すように、プレイヤデータベース３１には、各プレイヤＩＤと、プレイヤＩＤを基にゲームサーバ２０に最後にアクセスされた時刻（図７では、「最終アクセス日時」に相当する。）と対応付けて記憶してもよい。この場合、ゲームサーバ２０において、ゲームサーバ２０にアクセスされた時刻がプレイヤＩＤごとに保持されており、ゲームサーバ２０はアクセスの度に、プレイヤＩＤとアクセスされた時刻をデータベースサーバ３０に通知し、最終アクセス日時が逐次更新される。
【００４８】
第１の対戦実行手段５３は、通信端末１０に対する操作入力を契機として、異なるプレイヤＩＤに対応付けられたプレイヤキャラクタ間の個別対戦（第１の対戦）を実行し、記憶手段５２（本実施形態では、データベースサーバ３０のプレイヤデータベース３１）が記憶するプレイヤキャラクタの能力値に基づいて個別対戦の対戦結果を決定する。
【００４９】
この第１の対戦実行手段５３では先ず、ゲームサーバ２０のＣＰＵ２１が、プレイヤによる通信端末１０の操作入力部１５に対する操作入力に基づいて個別対戦を行う対戦相手を決定する。例えば、図６に例示するウェブページ上でプレイヤにより「試合」というテキストを含むオブジェクトを選択する操作が行われると、その選択結果がゲームサーバ２０のＣＰＵ２１宛に送信される。そしてＣＰＵ２１は、データベースアクセス部２４を介してデータベースサーバ３０のプレイヤデータベース３１にアクセスし、例えばランダムに、対戦相手となるプレイヤＩＤを選択する。あるいは、ＣＰＵ２１は、ランダムに選択した複数のプレイヤＩＤについて、プレイヤによる対戦相手となるプレイヤＩＤの選択の確定のため、その複数のプレイヤＩＤと、対応するプレイヤキャラクタの能力値とを表示するためのＨＴＭＬデータを、プレイヤの通信端末１０宛に送信してもよい。対戦相手が確定すると、ＣＰＵ２１は、対戦する２つのプレイヤＩＤに対応付けられたプレイヤキャラクタ間の個別対戦を実行する。
【００５０】
個別対戦の勝敗の決定方法は、プレイヤキャラクタの能力値がその勝敗に影響を与える方法である限り如何なる方法を採ることができる。例えば、対戦相手となる２つのプレイヤＩＤに対応付けられたプレイヤキャラクタの能力値を比較し、より大きな能力値のプレイヤキャラクタが、高い確率（例えば、６０〜９０％の範囲内の所定の確率）をもって勝利するように設定してよい。この勝率は、能力値の差が大きいほど高い確率としてもよい。このとき、図７に示したように、比較対象となる能力値の項目が複数存在する場合には、所定の重み付け（例えば、図７の例では、「打力」を０．４、「走力」を０．２、「守備力」を０．４の重み付けにする等）をもって総合的な能力値を設定することができる。
【００５１】
第１の対戦実行手段５３において、ゲームサーバ２０のＣＰＵ２１は、対戦相手となる２つのプレイヤＩＤに対応付けられたプレイヤキャラクタの個別対戦の対戦結果を決定すると、その対戦結果を含むウェブページを表示させるためのＨＴＭＬデータを、対戦相手となる２つのプレイヤＩＤのプレイヤの通信端末１０宛に送信する。そして、通信端末１０は、ゲームサーバ２０から受信したＨＴＭＬデータを解釈して対戦結果を表示部１６に表示する。なお、図６に例示するウェブページ上でプレイヤにより「試合」というテキストを含むオブジェクトを選択する操作が行われてから対戦結果が表示されるまでの時間は、極めて短時間（例えば数秒）であり、プレイヤは、簡易な操作のみで極めて短期間で対戦結果を知ることができる。
【００５２】
キャラクタ能力更新手段５４は、個別対戦（第１の対戦）の対戦結果に基づいて、プレイヤＩＤに対応するプレイヤキャラクタの能力値を更新する機能を備えている。
キャラクタ能力更新手段５４では、ゲームサーバ２０のＣＰＵ２１が、異なるプレイヤＩＤに対応付けられたプレイヤキャラクタ間の個別対戦の対戦結果に基づいて、データベースサーバ３０のプレイヤデータベース３１にアクセスして、そのプレイヤＩＤに対応付けられたプレイヤキャラクタの能力値を更新する。つまり、ＣＰＵ２１は、プレイヤデータベース３１に対して新たな能力値の書き込みを行う。
キャラクタ能力更新手段５４において、プレイヤキャラクタの能力値は、プレイヤＩＤに対応するプレイヤキャラクタが個別対戦で勝利した場合に、現在の値よりも大きくなるように更新されることが好ましい。一方、プレイヤキャラクタの能力値は、プレイヤＩＤに対応するプレイヤキャラクタが個別対戦で敗北した場合に、現在の値よりも小さくなるように更新されることが好ましい。なお、能力値の変化量は任意に設定しうる。例えば、図７に示したように能力値の項目が複数存在する場合、すべてのプレイヤキャラクタの能力値に対し、同一の値だけ大きく、あるいは小さくするようにしてよい。あるいは、能力値の変化量はランダムに設定してもよい。
【００５３】
第２の対戦実行手段５５は、通信端末１０に対する操作入力を契機とせずに自動的に、異なるプレイヤＩＤに対応付けられたプレイヤキャラクタ間のリーグ戦（第２の対戦）を実行し、記憶手段５２（本実施形態では、データベースサーバ３０のプレイヤデータベース３１）が記憶するプレイヤキャラクタの能力値に基づいてリーグ戦の対戦結果を決定する。
【００５４】
この第２の対戦実行手段５５により実行されるリーグ戦は、所定の時刻（例えば、ゲームサーバ２０内のタイマで設定される時刻）に行われる。リーグ戦は、すべてのプレイヤＩＤが参加（あるいは登録）するように設定してもよいが、リーグ戦の参加を希望する一部のプレイヤＩＤのみが参加するように設定してもよい。
【００５５】
第２の対戦実行手段５５によって実行される対戦の勝敗の決定方法は、第１の対戦実行手段５３と同様とすることができる。つまり、プレイヤキャラクタの能力値がその勝敗に影響を与える方法である限り如何なる方法を採ることができる。
なお、リーグ戦のすべての対戦結果を決定するには一定の時間が掛かり、その時間内においても個別対戦の実行に応じてプレイヤキャラクタの能力値が更新されうる。したがって、リーグ戦の開始時刻においてプレイヤデータベース３１のコピーデータを作成し、第２の対戦実行手段５５の実行中は、そのコピーデータ内のプレイヤキャラクタの能力値を参照するようにする。これにより、第２の対戦実行手段５５の実行中においてもキャラクタ能力更新手段５４によってプレイヤキャラクタの能力値（プレイヤデータベース３１そのもののデータ）を更新し続けることができる。
【００５６】
第２の対戦実行手段５５は、少なくとも過去の一定期間のリーグ戦の対戦結果を記録する。具体的には、第２の対戦実行手段５５では、ゲームサーバ２０のＣＰＵ２１がデータベースサーバ３０にアクセスし、データベースサーバ３０内のリーグ戦データベース３２にリーグ戦の対戦結果を書き込む。
ここで、リーグ戦データベース３２の一例を図８に示す。図８に示す例では、リーグ戦が毎日実行される場合に、日付ごとにリーグ戦の対戦結果が記録されている。図１２の例では、リーグ戦の対戦結果には、対戦を特定するための対戦ＩＤ、勝利したプレイヤキャラクタに対応したプレイヤＩＤ（勝利したプレイヤＩＤ）、敗北したプレイヤキャラクタに対応したプレイヤＩＤ（敗北したプレイヤＩＤ）、スコア、その他のデータ（例えば、勝利投手に相当するプレイヤキャラクタのデータ等）が含まれている。
【００５７】
第２の対戦実行手段５５では、リーグ戦におけるプレイヤＩＤのランキングを記録するとともに逐次更新する。具体的には、第２の対戦実行手段５５は、ゲームサーバ２０のＣＰＵ２１がデータベースサーバ３０のリーグ戦データベース３２にアクセスしてリーグ戦の過去の一定期間の対戦結果を読み出し、その読み出した対戦結果に基づいてプレイヤＩＤ単位でのランキングを算出する。そして、ＣＰＵ２１は、データベースサーバ３０にアクセスし、データベースサーバ３０内のランキングデータベース３３に、算出したランキングを書き込む。
ここで、ランキングデータベース３３の一例を図９に示す。図９に示す例では、プレイヤＩＤのランキングが１番から順に記録されているとともに、プレイヤＩＤごとにリーグ戦における勝数、負数、引き分け数が記録されている。
【００５８】
通知手段５６は、過去の所定期間あるいは所定回数の１または複数のリーグ戦（第２の対戦）の対戦結果、および／または、当該対戦結果に基づくプレイヤＩＤごとのランキング（順位）を、プレイヤの通信端末１０宛に通知する。
通知手段５６では、ゲームサーバ２０のＣＰＵ２１が、例えば図６に示すウェブページで「リーグ戦」が選択されたことを認識した場合に、直近のリーグ戦における対戦結果、および／または、過去の所定期間あるいは所定回数の１または複数のリーグ戦の対戦結果に基づくプレイヤＩＤごとの順位を含むウェブページを各プレイヤの通信端末１０に表示するためのＨＴＭＬデータを、通信端末１０宛に送信する。このＨＴＭＬデータを解釈して通信端末１０で表示されるウェブページの例を図１０に示す。図１０に示すウェブページの例では、プレイヤＩＤに対応したリーグ戦の結果（例えば、４５勝１５敗等の勝敗結果や、６５７３位等のランキング）が表示されている。図１０に例示するウェブページでは、リーグ戦における複数の節の各々（第４節、第５節、第６節）についての情報が例えば通信端末１０の操作入力部１５の方向指示釦等でスクロール表示される例が示されている。図１０は、例えば第５節のリーグ戦が行われている特定の日付における表示例であり、下から順に、第４節の対戦結果、第５節の対戦結果、第６節の対戦予定、現在のリーグ戦における総合的な勝敗結果およびランキングが示されている。
【００５９】
（１−６）マッチング処理
前述した第２の対戦実行手段５５により実行されるリーグ戦では、プレイヤデータベース３１に記憶される非常に多数のプレイヤＩＤを対象としているが、その非常に多数のプレイヤＩＤを対象として対戦相手を決定するためのマッチング処理（マッチング方法）について、以下説明する。
【００６０】
図１１は、第２の対戦実行手段５５で実行される機能の一部を構成する複数の手段を示す機能ブロック図であり、各手段はＣＰＵ２１を主体として実行される。
第１抽出手段５５１は、一定の規則に従って、プレイヤデータベース３１に記憶されているプレイヤＩＤの中からＭ個のプレイヤＩＤを抽出してＲＡＭ２３（主メモリ）に展開する機能を備えている。第２抽出手段５５２は、ＲＡＭ２３上のプレイヤ識別情報の中からＮ個（Ｎ＜Ｍ）のプレイヤＩＤをランダムに抽出する機能を備えている。マッチング実行手段５５３は、第２抽出手段５５２によって抽出されたＮ個のプレイヤＩＤを対象としてマッチングを行う機能を備えている。
第３抽出手段５５４は、プレイヤデータベース３１に記憶されているプレイヤＩＤの中から、第１抽出手段５５１により抽出されなかったＮ個のプレイヤＩＤを上記一定の規則に従って新たに抽出し、その新たに抽出したＮ個のプレイヤＩＤを、マッチング実行手段５５３によりマッチングが行われたＮ個のプレイヤＩＤに代えてＲＡＭ２３に展開する機能を備えている。
また、第２の対戦実行手段５５では、第２抽出手段５５２、マッチング実行手段５５３および第３抽出手段５５４による各処理を、この順番に繰り返す機能を備えている。
対戦実行手段５５５は、マッチング実行手段５５３により得られたプレイヤＩＤのマッチング結果に基づいて、プレイヤＩＤに対応付けられたプレイヤキャラクタ間のリーグ戦（第２の対戦）を実行する機能を備えている。
【００６１】
次に、図１２、図１３Ａ及び図１３Ｂを参照して、第２の対戦実行手段５５で実行されるマッチング処理について、より具体的に説明する。図１２は、本実施形態のマッチング処理を示すフローチャートである。図１３Ａ及び図１３Ｂは、本実施形態のマッチング処理について、その処理の様子を概念的に説明するための図である。図１３Ａ及び図１３Ｂでは、図１２の各ステップと対比可能なように、同一のステップ符号を用いている。
なお、図１２のステップＳ１０，Ｓ２０，Ｓ３０，Ｓ４０はそれぞれ、第１抽出手段５５１、第２抽出手段５５２、マッチング実行手段５５３、第３抽出手段５５４に対応する。
【００６２】
図１２、図１３Ａ及び図１３Ｂでは、プレイヤデータベース３１に記憶されているプレイヤＩＤの数を１００万個、上記Ｍ＝１万、Ｎ＝１００とし、プレイヤＩＤとして数字が割り当てられている場合を例としている。
図１２において先ず、ＣＰＵ２１は、プレイヤＩＤの昇順に従って、プレイヤデータベース３１（プレイヤＤＢ３１）に記憶されているプレイヤＩＤの中から１万個（Ｍ個）のプレイヤＩＤを抽出してＲＡＭ２３（主メモリ）に展開する（ステップＳ１０）。ここでは、プレイヤデータベース３１からプレイヤＩＤを抽出するに当たっての一定の規則が、プレイヤＩＤが示す番号の昇順に従うものとする。ここで、ステップＳ１０において、プレイヤＩＤ：１〜１００が抽出されたならば、プレイヤデータベース３１からの次の抽出の開始となるプレイヤＩＤ（この場合、１０１）をＲＡＭ２３に記憶させておく。
【００６３】
次に、ＣＰＵ２１は、ＲＡＭ２３上の１万個（Ｍ個）のプレイヤ識別情報の中から１００個（Ｎ個）のプレイヤＩＤをランダムに抽出し（ステップＳ２０）、その抽出された１００個のプレイヤＩＤを対象としてマッチングを行う（ステップＳ３０）。１００個のプレイヤＩＤを対象としたマッチングの一例については、以下のとおりである。１００個のプレイヤＩＤを２５組（各組で４個のプレイヤＩＤ）にランダムに分類し、各組で総当り戦を行うようにする。この場合、各組の４個のプレイヤＩＤをＡ，Ｂ，Ｃ，Ｄとした場合には、Ａ×Ｂ，Ａ×Ｃ，Ａ×Ｄ，Ｂ×Ｃ，Ｂ×Ｄ，Ｃ×Ｄの６試合のマッチング（各プレイヤＩＤ単位では３試合ずつ）が各組でなされることになる。
【００６４】
次に、ＣＰＵ２１は、プレイヤデータベース３１において未抽出のプレイヤＩＤが有るか否かを判定する（ステップＳ３５）。その結果、未抽出のプレイヤＩＤが有る場合には、ＣＰＵ２１は、プレイヤデータベース３１に記憶されているプレイヤＩＤの中から、ステップＳ１０において抽出されなかった１００個のプレイヤＩＤをその昇順に従って新たに抽出し、その新たに抽出した１００個のプレイヤＩＤを、ステップＳ３０でマッチングが行われた１００個のプレイヤＩＤに代えてＲＡＭ２３に展開する（ステップＳ４０）。最初にステップＳ４０を実行するときには、ステップＳ１０で記憶しておいたプレイヤＩＤ：１０１から昇順にプレイヤＩＤの抽出を行うことになる。新たに１００個のプレイヤＩＤを抽出してＲＡＭ２３に展開した後は、ステップＳ２０へ戻る。
【００６５】
その後、ステップＳ２０，Ｓ３０，Ｓ４０の処理は、この順番で、プレイヤデータベース３１内に未抽出のプレイヤＩＤが無くなるまで繰り返される。図１３Ａを参照すると、１回目のステップＳ２０，Ｓ３０の処理をそれぞれ、Ｓ２０（＃１），Ｓ３０（＃１）で示し、２回目のステップＳ２０，Ｓ３０の処理をそれぞれ、Ｓ２０（＃２），Ｓ３０（＃２）で示してある。図１３Ａに示すように、プレイヤデータベース３１に記憶されている１００万個のプレイヤＩＤの中から、ステップＳ１０で１万個のプレイヤＩＤが抽出された後は、Ｓ２０〜４０を順次繰返していく。これにより、プレイヤデータベース３１に記憶されているプレイヤＩＤから未抽出のプレイヤＩＤが徐々に少なくなっていくことになる。
【００６６】
プレイヤデータベース３１内に未抽出のプレイヤＩＤが無くなると、ステップＳ３５からステップＳ５０へ進み、ステップＳ２０，Ｓ３０の処理がこの順番で繰り返される。これは、プレイヤデータベース３１から新たに抽出すべきプレイヤＩＤは存在しないが、ＲＡＭ２３内のプレイヤＩＤ（最大：１万個）について順にマッチングを行っている状態である。このとき、図１３Ｂに示すように、ＲＡＭ２３内に展開されている複数のプレイヤＩＤのうち、ｎ回目のステップＳ２０，Ｓ３０の処理であるＳ２０（＃ｎ），Ｓ３０（＃ｎ）、その次のｎ＋１回目のステップＳ２０，Ｓ３０の処理であるＳ２０（＃ｎ＋１），Ｓ３０（＃ｎ＋１）…、というように進むにつれて、マッチングが行われていないプレイヤＩＤの数が徐々に減少していく。そして、プレイヤデータベース３１から抽出されたすべてのプレイヤＩＤのマッチングが完了すると（ステップＳ５０：ＹＥＳ）、全体のマッチング処理が終了することになる。
【００６７】
図１２に示したマッチング処理において、繰返し実行されるステップＳ４０では、１００万個のプレイヤＩＤを記憶しているプレイヤデータベース３１からの抽出を、プレイヤＩＤの昇順に従って順次行うことになるため、１００個のプレイヤＩＤの抽出の度に、新たに抽出を開始するプレイヤＩＤのみを記憶しておくことで、ステップＳ４０における毎回の抽出を高速に行うことができる。ここでは一例として、プレイヤデータベース３１に記憶しているプレイヤＩＤの数を１００万個、Ｍを１万、Ｎを１００としたので、ステップＳ４０における抽出回数は、（１００万−１万）／１００＝９９００回と多くなるが、この各回における抽出開始のプレイヤＩＤが直ちに分かり、抽出方法もプレイヤＩＤの昇順に従っているため、各回の抽出処理を高速で完了させることができる。結果として、図１２に示すマッチング処理によれば、非常に多くのプレイヤＩＤを対象とするマッチングを、限られた容量のＲＡＭ２３を用いて高速で実行することができる。
【００６８】
また、このマッチング処理では、プレイヤデータベース３１からプレイヤＩＤの抽出を行うステップＳ１０あるいはステップＳ４０において、プレイヤＩＤの昇順に従って順次プレイヤＩＤを抽出しており、抽出済みか否かを識別するようなデータをプレイヤＩＤごとに走査するような処理は必要ない。そのため、プレイヤデータベース３１内のプレイヤＩＤの数が、ゲームサーバ２０の運用の途中で増大した場合であっても、プレイヤデータベース３１内のプレイヤＩＤのマッチングに要する処理時間の増加が抑制される。そのため、プレイヤデータベース３１に記憶されたプレイヤＩＤの増大に応じたＲＡＭ２３の拡張（例えば、メモリの増設）あるいはシステム改変等の対応を回避することができる。
【００６９】
なお、図７に例示したように、プレイヤデータベース３１では、各プレイヤＩＤと、プレイヤＩＤを基にゲームサーバ２０に最後にアクセスされた時刻（最終アクセス日時）とを対応付けて記憶するようにしてもよい。この場合、ステップＳ１０及びステップＳ４０では、プレイヤデータベース３１内のプレイヤＩＤの中から、現在時刻が最終アクセス日時から所定時間経過していないプレイヤＩＤを抽出することが好ましい。つまり、プレイヤデータベース３１に記憶されているすべてのプレイヤＩＤを抽出対象とするのではなく、最終アクセス日時を基準として抽出対象となるプレイヤＩＤのフィルタリングを行う。このようにすることで、プレイヤＩＤをゲームサーバ２０に登録したものの一定時間アクセスしていないプレイヤＩＤ（つまり、登録されているが使用されていないプレイヤＩＤ）を抽出対象から排除する。これにより、抽出対象となるプレイヤＩＤの数が限定されるため、マッチングに要する時間がさらに短縮する。
【００７０】
上記説明において、１００個のプレイヤＩＤを対象としたマッチングの一例として、１００個のプレイヤＩＤを２５組（各組で４個のプレイヤＩＤ）にランダムに分類し、各組で総当り戦を行う例を説明したが、このようなマッチングを応用したリーグ戦のスケジュールの一例を図１４に示す。図１４では、１週間のうち平日の定刻（図１４の例では、９時、１４時、１９時、２５時）にそれぞれ、第１節、第２節、第３節、第４節のリーグ戦が行われるようにスケジューリングされている。各節のリーグ戦では、その都度、図１２に示したマッチング処理が行われ、各節では組ごとに総当りの６試合（各組に含まれる個々のプレイヤＩＤにとっては３試合）が行われる。その結果、平日の一日では、各プレイヤＩＤは、各節３試合×４節の計１２試合が行われることになる。この場合、第２の対戦実行手段５５は、各節が終了する度に、リーグ戦におけるプレイヤＩＤのランキングを算出して、データベースサーバ３０内のランキングデータベース３３に、算出したランキングを書き込むようにしてよい。
【００７１】
なお、以上の説明では、Ｍ＝１万の場合を例としたが、Ｍの数は、予め本実施形態のゲームサーバ２０に設定されるＲＡＭ２３の容量に応じて適宜設定すればよいのは言うまでもない。また、以上の説明では、Ｎ＝１００を例とし、１００個のプレイヤＩＤを対象としてマッチングを行うこととしたが、ステップＳ２０で抽出されるプレイヤＩＤの数、ステップＳ４０で抽出されるプレイヤＩＤの数は、マッチング対象となるプレイヤＩＤの数に応じて適宜変更してよい。例えば、Ｎ＝５０とした場合に、マッチング対象となるプレイヤＩＤを、各組５個のプレイヤＩＤからなる１０組に分類し、総当り戦をスケジューリングしてもよい。Ｎ＝２００とした場合に、マッチング対象となるプレイヤＩＤを、１組２個のプレイヤＩＤからなる１００組に分類し、単一の対戦を適切なタイミングでスケジューリングしてもよい。すなわち、マッチング対象となる数が定まれば、その数に応じて任意に対戦計画が設定されうる。
【００７２】
（１−７）野球ゲームの主要な処理のフロー
次に、本実施形態における野球ゲームのリーグ戦における主要な処理フローの一例について、図１５のフローチャートを参照して説明する。図１５は、リーグ戦（第２の対戦）の実行処理を示すフローチャートである。
【００７３】
図１５において、例えば図１４に示したように各節のリーグ戦が行われる定刻になると（ステップＳ２００のＹＥＳ）、第２の対戦実行手段５５が実行される。この第２の対戦実行手段５５は、プレイヤによる通信端末１０に対する操作入力を契機とせずに自動的に実行される。第２の対戦実行手段５５は、プレイヤデータベース３１に記憶されているプレイヤＩＤを対象として例えば第１節のリーグ戦を行う場合、その第１節のリーグ戦における対戦のマッチングの処理を行う（ステップＳ２１０）。このマッチングの処理は、図１２のフローチャートに示したとおりであり、プレイヤデータベース３１に記憶されているプレイヤＩＤの数が極めて多い場合であっても高速に行われる。
マッチングの処理が完了すると、第２の対戦実行手段５５は次にプレイヤデータベース３１を参照し、プレイヤキャラクタの能力値に基づいて、つまり、プレイヤキャラクタの能力値の差が勝敗に影響を与えるようにして、対戦結果を決定する（ステップＳ２２０）。第２の対戦実行手段５５は、対戦結果を決定した後、その第１節のリーグ戦の対戦結果をリーグ戦データベース３２に記録するとともに、第１節のリーグ戦の対戦結果に基づくプレイヤＩＤのランキングをランキングデータベース３３に記録する（ステップＳ２３０）。その後、通知手段５６は、リーグ戦に参加している各プレイヤＩＤに対応するプレイヤの通信端末１０宛に、第１節の対戦結果と、第１節が終了した時点におけるプレイヤＩＤのランキングを通知する（ステップＳ２４０）。なお、この通知は、各プレイヤが例えば図６に例示したウェブページで「リーグ戦」が選択された場合に、通信端末１０において、第１節の対戦結果と、第１節が終了した時点におけるプレイヤＩＤのランキングとを含むウェブページが表示されるようにして行うことができる。
第２節以降についても同様にして、ステップＳ２００〜Ｓ２４０の処理が再度行われる。
【００７４】
（２）第２の実施形態
以下、本発明の第２の実施形態について説明する。なお、以下の各実施形態では、特記しない限り、通信端末１０、ゲームサーバ２０の構成及び動作、ゲーム制御装置によって実行される各手段、野球ゲームの主要な処理のフローは、第１の実施形態で説明したものと同様である。
図１６に示すように、本実施形態のデータベースサーバ３０ａは、データベースサーバ３０（図４参照）とは入替戦データベース３４が追加された点で異なる。また、プレイヤデータベース３１では、図７に示したように、プレイヤＩＤごとにクラスが対応付けられている。図７では例えば、プレイヤＩＤ：０００００１に対してクラス：１が対応付けられている。
【００７５】
本実施形態では、各プレイヤＩＤは複数のクラスのいずれかに対応付けられる。クラスの種別は任意に設定することができるが、例えば、ビギナークラス（初心者クラス、例えばクラス：１）からマスタークラス（上級クラス、例えばクラス：９）までの階層的なクラスが設定されうる。そして、本実施形態の野球ゲームは、クラス単位で一定期間のリーグ戦が行われる。一定期間のリーグ戦とリーグ戦の間には、入替戦が行われる。入替戦の結果如何で、プレイヤＩＤに対応するクラスの更新（変動）が生じうる。そのため、本実施形態の野球ゲームでは、第１の実施形態で説明したゲーム要素に加え、各プレイヤＩＤのプレイヤがより上位のクラスに昇格することを目的として行われる。なお、入替戦によって行われるクラスの更新は、上位クラスへの昇格、下位クラスへの降格、現状のクラスの維持のいずれかである。
【００７６】
図１７に、リーグ戦と入替戦を含む本実施形態の野球ゲームのスケジュールの一例を示す。図１７に示すスケジュールによれば、リーグ戦のためにクラス１，３，５，７，９が設けられ、入替戦のためにクラス２，４，６，８が設けられる。ここで、リーグ戦、入替戦ともに、数字が大きいクラスほど上級のクラスである。例えば、１回目のリーグ戦であるリーグ戦＃１では、平日の月曜日から金曜日まで毎日４節（図１４参照）、計２０節のリーグ戦がクラス単位で実行され、クラス単位でリーグ戦＃１のランキングが金曜日に決定される。１回目の入替戦である入替戦＃１は、週末の土曜日と日曜日の毎日４節（例えば、図１４と同様にする。）、計８節の入替戦がクラス単位で実行され、クラス単位で入替戦＃１のランキングが日曜日に決定される。
【００７７】
リーグ戦＃１に続く入替戦＃１における各プレイヤＩＤのクラスの更新は、リーグ戦＃１のランキング結果に基づき、所定の規則に従って決定される。図１７に示す例では、リーグ戦＃１におけるクラス１のすべてのプレイヤＩＤと、クラス３のランキングで下位の半分の数のプレイヤＩＤとが、入替戦＃１におけるクラス２となる。リーグ戦＃１におけるクラス３のランキングで上位の半分の数のプレイヤＩＤと、クラス５のランキングで下位の半分の数のプレイヤＩＤとが、入替戦＃１におけるクラス４となる。リーグ戦＃１におけるクラス５のランキングで上位の半分の数のプレイヤＩＤと、クラス７のランキングで下位の半分の数のプレイヤＩＤとが、入替戦＃１におけるクラス６となる。リーグ戦＃１におけるクラス７のランキングで上位の半分の数のプレイヤＩＤと、クラス９のすべてのプレイヤＩＤとが、入替戦＃１におけるクラス８となる。
【００７８】
入替戦＃１に続くリーグ戦＃２における各プレイヤＩＤのクラスの更新は、入替戦＃１のランキング結果に基づき、所定の規則に従って決定される。図１７に示す例では、入替戦＃１におけるクラス２のランキングで下位の２／３の数のプレイヤＩＤは、リーグ戦＃２におけるクラス１となり、入替戦＃１におけるクラス２のランキングで上位の１／３の数のプレイヤＩＤは、リーグ戦＃２におけるクラス３となる。入替戦＃１におけるクラス４のランキングで下位の半分の数のプレイヤＩＤは、リーグ戦＃２におけるクラス３となり、入替戦＃１におけるクラス４のランキングで上位の半分の数のプレイヤＩＤは、リーグ戦＃２におけるクラス５となる。入替戦＃１におけるクラス６のランキングで下位の半分の数のプレイヤＩＤは、リーグ戦＃２におけるクラス５となり、入替戦＃１におけるクラス４のランキングで上位の半分の数のプレイヤＩＤは、リーグ戦＃２におけるクラス７となる。入替戦＃１におけるクラス８のランキングで下位の１／３の数のプレイヤＩＤは、リーグ戦＃２におけるクラス７となり、入替戦＃１におけるクラス８のランキングで上位の２／３の数のプレイヤＩＤは、リーグ戦＃２におけるクラス９となる。
なお、図１７に示したスケジュール、あるいはクラスの更新は、一例に過ぎず、任意に設定可能であることは言うまでもない。
【００７９】
（２−１）ゲーム制御装置における各機能の概要
図１８は、本実施形態のゲーム制御装置で主要な役割を果たす機能を説明するための機能ブロック図である。図１８に示す機能ブロック図は、図５に示したものと比較すると、第３の対戦実行手段５７およびクラス管理手段５８が追加された点で異なる。
【００８０】
第３の対戦実行手段５７は、通信端末１０に対する操作入力を契機とせずに自動的に、異なるプレイヤＩＤに対応付けられたプレイヤキャラクタ間の入替戦（第３の対戦）を実行し、記憶手段５２（本実施形態では、データベースサーバ３０のプレイヤデータベース３１）が記憶するプレイヤキャラクタの能力値に基づいて入替戦の対戦結果を決定する。
この第３の対戦実行手段５７により実行される入替戦は、所定の時刻（例えば、ゲームサーバ２０内のタイマで設定される時刻）に行われる。入替戦は、すべてのプレイヤＩＤが参加するように設定してもよいが、リーグ戦の参加を希望する一部のプレイヤＩＤのみが参加するように設定してもよい。
【００８１】
第３の対戦実行手段５７によって実行される対戦の勝敗の決定方法は、第１の対戦実行手段５３と同様とすることができる。つまり、プレイヤキャラクタの能力値がその勝敗に影響を与える方法である限り如何なる方法を採ることができる。
【００８２】
第３の対戦実行手段５７は、入替戦の対戦結果を記録する。具体的には、第３の対戦実行手段５７では、ゲームサーバ２０のＣＰＵ２１がデータベースサーバ３０ａにアクセスし、データベースサーバ３０ａ内の入替戦データベース３４に入替戦の対戦結果を書き込む。
第３の対戦実行手段５７は、入替戦におけるプレイヤＩＤのランキングを記録するとともに逐次更新する。具体的には、第３の対戦実行手段５７では、ゲームサーバ２０のＣＰＵ２１がデータベースサーバ３０ａの入替戦データベース３４にアクセスして入替戦の過去の一定期間（例えば図１７では、入替戦＃１の２日分）の対戦結果を読み出し、その読み出した対戦結果に基づいてクラス単位でのプレイヤＩＤのランキングを算出する。そして、ＣＰＵ２１は、データベースサーバ３０ａにアクセスし、データベースサーバ３０ａ内のランキングデータベース３３に、算出したランキングを書き込む。
【００８３】
なお、本実施形態の第２の対戦実行手段５５では、ゲームサーバ２０のＣＰＵ２１がデータベースサーバ３０ａのリーグ戦データベース３２にアクセスしてリーグ戦の過去の一定期間（例えば図１７では、リーグ戦＃１の５日分）の対戦結果を読み出し、その読み出した対戦結果に基づいてクラス単位でのプレイヤＩＤのランキングを算出する。そして、ＣＰＵ２１は、データベースサーバ３０ａにアクセスし、データベースサーバ３０ａ内のランキングデータベース３３に、算出したランキングを書き込む。
【００８４】
クラス管理手段５８は、各プレイヤＩＤを複数のクラス（リーグ戦および入替戦のクラスの双方を含む。）のうちのいずれかのクラスと対応付けて管理しており、一定期間のリーグ戦（例えば図１７では、リーグ戦＃１の５日分）および入替戦（例えば図１７では、入替戦＃１の２日分）が終了すると、図１７に例示したように、所定の規則に従って各プレイヤＩＤのクラスの更新を行う。具体的には、ＣＰＵ２１がデータベースサーバ３０ａにアクセスし、ランキングデータベース３３に記憶されたランキング結果に基づいて、プレイヤデータベース３１内の各プレイヤＩＤのクラスのデータの更新を行う。
【００８５】
本実施形態の通知手段５６では、ゲームサーバ２０のＣＰＵ２１が、例えば図６に示すウェブページで「リーグ戦」が選択されたことを認識した場合に、直近のリーグ戦における対戦結果、および／または、過去の所定期間あるいは所定回数の１または複数のリーグ戦の対戦結果に基づくプレイヤＩＤごとの順位に加え、入替戦の結果を含むウェブページを各プレイヤの通信端末１０に表示するためのＨＴＭＬデータを、通信端末１０宛に送信する。このＨＴＭＬデータを解釈して通信端末１０で表示されるウェブページの例を図１９に示す。図１９に示すウェブページの例では、図１０に示したウェブページに対し、リーグ戦結果の欄の中に入替戦の対戦結果、およびクラスの更新の結果が追加して表示されている。図１９では一例として、先週の入替戦の結果は１８勝６敗で１クラス上に昇格し、今週の入替戦の結果は３勝７敗では１クラス下に降格した場合を示している。
【００８６】
（２−２）マッチング処理
本実施形態の第２の対戦実行手段５５において、非常に多数のプレイヤＩＤを対象として対戦相手を決定するためのマッチング処理（マッチング方法）について、以下説明する。なお、本実施形態の第３の対戦実行手段５７におけるマッチング処理は、以下で説明する第２の対戦実行手段５５におけるそれと同様であるため、重複説明を省略する。
本実施形態の第２の対戦実行手段５５では、クラス単位でリーグ戦を行う点で第１の実施形態と異なる。
【００８７】
図２０は、本実施形態の第２の対戦実行手段５５で実行される機能の一部を構成する複数の手段を示す機能ブロック図であり、各手段はＣＰＵ２１を主体として実行される。図２０に示す機能ブロック図は、図１１に示したものと比較すると、蓄積手段５５６が追加された点で異なる。
蓄積手段５５６は、第２抽出手段５５２および第３抽出手段５５４によって抽出されたそれぞれＮ個のプレイヤＩＤを、対応するクラスごとに蓄積する機能を備える。
本実施形態のマッチング実行手段５５３は、クラスごとに蓄積されたプレイヤＩＤの数がクラスについて予め定められた数に達した場合に、当該クラスについて蓄積されたプレイヤＩＤについてのマッチングが完了したと判定する機能を備える。
【００８８】
以下、本実施形態のマッチング処理について、図２１および図２２を参照して説明する。図２１は、本実施形態のマッチング処理を示すフローチャートである。図２２は、本実施形態のマッチング処理においてクラスごとのプレイヤＩＤのバッファへの蓄積を概念的に示す図である。
図２１に示すフローチャートは、図１２のフローチャートと比較して、ステップＳ３０のマッチング処理の代わりに、ステップＳ３１，Ｓ３２，Ｓ３３を設けた点と、Ｎ＝５００の場合を例示している点で異なる。また、図２２に示すように、リーグ戦のクラス１，３，５，７，９（図１７参照）に対応したバッファを設ける。ここで、図２１のステップＳ３１（蓄積手段５５６の処理に相当）では、図２１のステップＳ２０で抽出された各プレイヤＩＤを、対応するクラスごとに分配して各クラスのバッファに蓄積していく。マッチング処理を実行する前の初期状態では、各クラスのバッファは空の状態であるが、ステップＳ３１を繰り返すごとに順にバッファにプレイヤＩＤが蓄積されていく。そして、ＣＰＵ２１は、ＦＵＬＬになったバッファについては（ステップＳ３２：ＹＥＳ）、そのバッファ内のプレイヤＩＤのマッチングが完了したと判定し、バッファ内のプレイヤＩＤを掃き出して再び空の状態とする（ステップＳ３３）。
バッファの容量は適宜設定してよいが、ここでは一例としてＮ＝５００としているので、各バッファの容量はそれぞれ、１００個分のプレイヤＩＤとしてよい。この場合、対戦実行手段５５５は、バッファから掃き出された（つまり、マッチングが完了した）同一のクラスの１００個のプレイヤＩＤについて、図１４を参照して説明した方法と同様に、複数の組ごとの総当り戦を実行してよい。
本実施形態のマッチング方法は、抽出処理については第１の実施形態と同様であるため、限られた容量の主メモリを用いて高速でマッチングを実行でき、かつ、そのマッチングをクラス単位で個々に設けたバッファを利用して行うようにしているので、複数クラスを設けたゲーム構成であっても、異なるクラスのプレイヤＩＤのマッチングを回避できることから、無駄な処理のない効率よいマッチングを実現することができるという利点がある。
【００８９】
（２−３）野球ゲームの入替戦の処理のフロー
次に、本実施形態における野球ゲームの入替戦の処理フローの一例について、図２３のフローチャートを参照して説明する。図２３は、入替戦（第３の対戦）の実行処理を示すフローチャートである。
【００９０】
図２３において、入替戦が行われる開始時刻になると（ステップＳ３００のＹＥＳ）、第３の対戦実行手段５７が実行される。この第３の対戦実行手段５７は、プレイヤによる通信端末１０に対する操作入力を契機とせずに自動的に実行される。第３の対戦実行手段５５は、プレイヤデータベース３１に記憶されているプレイヤＩＤを対象として入替戦を行う場合、その入替戦における対戦のマッチングの処理を行う（ステップＳ３１０）。このマッチングの処理は、図２１のフローチャートに示したとおりであり、プレイヤデータベース３１に記憶されているプレイヤＩＤの数が極めて多い場合であっても、クラス単位で高速に行われる。
マッチングの処理が完了すると、第３の対戦実行手段５７は次にプレイヤデータベース３１を参照し、プレイヤキャラクタの能力値に基づいて、つまり、プレイヤキャラクタの能力値の差が勝敗に影響を与えるようにして、対戦結果を決定する（ステップＳ３２０）。第３の対戦実行手段５７は、対戦結果を決定した後、その入替戦の対戦結果を入替戦データベース３４に記録する。
【００９１】
次に、クラス管理手段５８は、所定の規則に従ってプレイヤＩＤごとにクラスの更新を行う（ステップＳ３３０）。このとき、クラス管理手段５８は、入替戦データベース３４内に記録されている入替戦の対戦結果を参照し、所定の基準に従ってプレイヤＩＤごとに新しいクラスを決定する。そしてクラス管理手段５８は、プレイヤデータベース３１においてプレイヤＩＤごとに新しいクラスを記録する。その後、通知手段５６は、各プレイヤＩＤに対応するプレイヤの通信端末１０宛に、入替戦の対戦結果とクラスの更新結果を通知する（ステップＳ３４０）。なお、この通知は、各プレイヤが例えば図６に例示したウェブページで「リーグ戦」が選択された場合に、通信端末１０において、リーグ戦の結果とともに入替戦の結果を含むウェブページが表示されるようにして行うことができる。
【００９２】
以上、本発明の実施形態について詳細に説明したが、本発明は上記実施形態に限定されない。また、各実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのは勿論である。
例えば、上述した実施形態では、対戦ゲームは、ゲームサーバからのウェブサービスの提供に基づき、プレイヤの通信端末のウェブブラウザにより表示されるウェブページによってゲームが進行することとした。これによれば、ゲーム用ソフトウエアを通信端末がダウンロードあるいはインストールする必要がないという長所があるが、これに限られない。本実施形態の対戦ゲームは、ゲーム用ソフトウエアで実現される一部機能を通信端末にダウンロードあるいはインストールして実行する形態とすることもできる。
なお、各実施形態の説明で述べた各機能ブロックは、各機能に相当する手順を含むプログラムをコンピュータに実行させることで実現することができる。
【符号の説明】
【００９３】
１０…通信端末
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４…画像処理部
１５…操作入力部
１６…表示部
１７…無線通信インタフェース部
１８…バス
２０…ゲームサーバ
２１…ＣＰＵ
２２…ＲＯＭ
２３…ＲＡＭ
２４…データベースアクセス部
２５…通信インタフェース部
２６…バス
３０，３０ａ…データベースサーバ
３１…プレイヤデータベース
３２…リーグ戦データベース
３３…ランキングデータベース
３４…入替戦データベース
５１…ゲーム進行手段
５２…記憶手段
５３…第１の対戦実行手段
５４…キャラクタ能力更新手段
５５…第２の対戦実行手段
５６…通知手段
５７…第３の対戦実行手段
５８…クラス管理手段
【図１】
0005214770.tif 000002
【図２】
0005214770.tif 000003
【図３】
0005214770.tif 000004
【図４】
0005214770.tif 000005
【図５】
0005214770.tif 000006
【図６】
0005214770.tif 000007
【図７】
0005214770.tif 000008
【図８】
0005214770.tif 000009
【図９】
0005214770.tif 000010
【図１０】
0005214770.tif 000011
【図１１】
0005214770.tif 000012
【図１２】
0005214770.tif 000013
【図１３Ａ】
0005214770.tif 000014
【図１３Ｂ】
0005214770.tif 000015
【図１４】
0005214770.tif 000016
【図１５】
0005214770.tif 000017
【図１６】
0005214770.tif 000018
【図１７】
0005214770.tif 000019
【図１８】
0005214770.tif 000020
【図１９】
0005214770.tif 000021
【図２０】
0005214770.tif 000022
【図２１】
0005214770.tif 000023
【図２２】
0005214770.tif 000024
【図２３】
0005214770.tif 000025