(57)【特許請求の範囲】
【請求項１】
ネットワークを介してアクセスしてきたユーザ端末に対して将棋の対戦ゲームサービスを提供するゲーム提供手段を備えるネットワークゲームシステムであって、
前記将棋の局面に応じた指し手を出力する対戦者模擬手段を備え、前記ゲーム提供手段は、ユーザ端末に対して前記対戦者模擬手段を対戦相手とする将棋の対戦ゲームサービスを提供する手段を有し、
前記ネットワークゲームシステムは、対戦中の将棋の局面を保持する保持手段を更に備え、前記ゲーム提供手段は、ユーザ端末間での将棋対戦中に、一方のユーザのユーザ端末より対戦から抜けたい旨を受信した場合に他方のユーザのユーザ端末に前記一方のユーザが抜けることへの了承を求めるメッセージを送信し、前記他方のユーザのユーザ端末から了承する旨のメッセージを受信した場合に、前記一方のユーザが対戦から抜けたものとして、前記他方のユーザのユーザ端末からの要求に応じて、前記一方のユーザのユーザ端末に代えて前記対戦者模擬手段を対戦相手として、その時点で前記保持手段に記録された局面を初期局面とすると共に、前記対戦者模擬手段が、将棋のルールに従って所定の手数だけ先までの指し手の候補を生成し、各候補についてその手を指した場合の局面の評価関数を計算して、該評価関数が最適となる候補を実際の指し手とするように将棋の対戦を再開させる手段を有することを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上で将棋の対戦ゲームサービスを提供するネットワークゲームシステムに関する。
【０００２】
【従来の技術】
近年、インターネットの普及に伴って、ネットワーク上で将棋やマージャン等の対戦型ゲームを行うことが可能なネットワークゲームサービスが広く知られるようになっている。このネットワークゲームサービスは、所定のゲームサーバにログインしたユーザが自分のコンピュータ上で、同じゲームサーバにログインした他のサーバを相手として対戦ゲームを楽しむことができるというものである。
【０００３】
【発明が解決しようとする課題】
上記した対戦型ゲームを行うためにはゲーム種類に応じた人数の参加者が必要であり、将棋であれば２名の参加者が必要である。したがって、必要参加者数を満たすだけの相手が見つからない場合には、ゲームを行うことができない。また、所要人数の参加者が見つかってゲームを開始した場合にも、対戦の途中に対戦相手がゲームから抜けると、その時点でゲームを中止せざるを得ないこととなる。
【０００４】
本発明は上記の点に鑑みてなされたものであり、対戦相手が不足した場合にもユーザがゲーム対戦を行うことが可能であり、対戦相手が対戦中に抜けた場合にも、その局面から対戦を開始することが可能な将棋の対戦ゲームサービスを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記の目的を達成するため、請求項１に係る本発明は、ネットワークを介してアクセスしてきたユーザ端末に対して将棋の対戦ゲームサービスを提供するゲーム提供手段を備えるネットワークゲームシステムであって、前記将棋の局面に応じた指し手を出力する対戦者模擬手段を備え、前記ゲーム提供手段は、ユーザ端末に対して前記対戦者模擬手段を対戦相手とする将棋の対戦ゲームサービスを提供する手段を有し、前記ネットワークゲームシステムは、対戦中の将棋の局面を保持する保持手段を更に備え、前記ゲーム提供手段は、ユーザ端末間での将棋対戦中に、一方のユーザのユーザ端末より対戦から抜けたい旨を受信した場合に他方のユーザのユーザ端末に前記一方のユーザが抜けることへの了承を求めるメッセージを送信し、前記他方のユーザのユーザ端末から了承する旨のメッセージを受信した場合に、前記一方のユーザが対戦から抜けたものとして、前記他方のユーザのユーザ端末からの要求に応じて、前記一方のユーザのユーザ端末に代えて前記対戦者模擬手段を対戦相手として、その時点で前記保持手段に記録された局面を初期局面とすると共に、前記対戦者模擬手段が、将棋のルールに従って所定の手数だけ先までの指し手の候補を生成し、各候補についてその手を指した場合の局面の評価関数を計算して、該評価関数が最適となる候補を実際の指し手とするように将棋の対戦を再開させる手段を有することを特徴とする。
【０００６】
請求項１記載の発明によれば、ユーザ端末に対して対戦者模擬手段を対戦相手とするゲームサービスを提供することができる。このため、ユーザは、所要人数の対戦相手が見つからない場合にも、対戦者模擬手段を対戦相手としてゲームを行うことができる。なお、本発明において対戦者模擬手段が出力する「指し手」とは、将棋や囲碁等の指し手に限らず、マージャンにおける切り牌やポーカーにおける捨て札等のように、ゲーム種類に応じて競技者が行うゲーム動作のことを意味する。
【０００８】
また、ユーザは、他のユーザとの対戦中に、ゲーム局面を引き継ぎながら、対戦相手を対戦者模擬手段に交代させることができる。
【００１５】
【発明の実施の形態】
＝＝システム構成＝＝
図１は、本発明の一実施形態である、将棋の対戦ゲームを提供する対戦型ネットワークゲームシステムの全体構成図である。図１において、ゲームサーバー１０はインターネット１２に接続されたサーバーコンピュータシステムにより構成されている。インターネット１２には多数のユーザ端末１４が接続されており、インターネット１２を介してゲームサーバー１０へアクセスすることができる。なお、ゲームサーバー１０へアクセスしてゲーム対戦を行おうとするユーザは、予めユーザ登録を行ってユーザＩＤおよびパスワードを取得しておくものとする。
【００１６】
図１に示す如く、ゲームサーバー１０には、ユーザデータベース２０、テーブルデータベース２２、局面保持データベース２４、および、局面登録データベース２６が設けられている。
ユーザデータベース２０には、ゲームサーバー１０へログイン中の各ユーザのユーザＩＤが記録されている。
テーブルデータベース２２には、各ゲームテーブルに関するデータが記録されている。ここで、ゲームテーブルとは、対戦ゲームが行われる仮想的なテーブルであり、各ゲームテーブル上で１つの対戦ゲームが行われる。後述するように、各ユーザは自ら新たなゲームテーブルを作成して対戦相手が現れるのを待ったり、あるいは、対戦相手待ちのゲームテーブルへ参加して対戦を開始することができる。また、ゲームテーブル上で行われている対戦を観戦することもできる。
【００１７】
図２は、テーブルデータベース２２のデータ構成を示す。同図に示す如く、テーブルデータベース２２には、現在存在している各ゲームテーブルについて、テーブルＩＤ、各ゲーム対戦者のユーザＩＤ、各ゲーム観戦者のユーザＩＤ、およびゲームステータス（対戦相手待ち、対戦中、中断中などを示すステータス）が記録されている。
【００１８】
局面保持データベース２４には、現在対戦が行われている各ゲームテーブルでの対戦局面に関する局面データが記録されている。図３は、局面データの構成を示す。同図に示す如く、局面データには、先手のユーザＩＤ、後手のユーザＩＤ、先手・後手の夫々の駒の配置と持駒、および、次の手番が先手が後手か等のデータが含まれることになる。
【００１９】
局面登録データベース２６には、ユーザから保存要求のあったゲーム局面が、局面ＩＤおよびパスワードに関係付けて記録されている。後述のように、ユーザは局面登録データベース２６に保存した局面を呼び出して、その局面からゲームを開始することができる。
【００２０】
＝＝処理概要＝＝
次に、図４を参照して、ユーザがゲームサーバー１０上で対戦ゲームを行う場合の処理の概要について説明する。図４は、ゲームサーバー１０の機能的な構成を示す図である。図４に示す如く、ゲームサーバー１０は、対戦処理部４０、ルール記述部４２、およびロボット部４４を備えている。対戦処理部４０およびロボット部４４は何れもゲームサーバー１０が実行するアプリケーションプロセスとして構成されている。また、ルール記述部４２には、将棋のルールが記録されている。
【００２１】
対戦処理部４０は、テーブルデータベース２２に記録された各ゲームテーブルについて、ゲームの開始、進行、中断、終了等の対戦処理を行う。また、ロボット部４４は、ゲーム競技者を模擬して、ルール記述部４２に記録されたルールを参照しながら、局面に応じた指し手を決定して出力する。この指し手を決定するためのアルゴリズムは、将棋のルールに従って所定の手数だけ先までの指し手の候補を生成し、各候補についてその手を指した場合の局面の評価関数を計算して、評価関数が最適となるような候補を実際の指し手とするというものであり、一般に市販されている将棋のゲームプログラムで用いられているものを利用することができる。
【００２２】
図４に示す例では、テーブル１においてユーザＢとユーザＣとが対戦し、また、テーブル２において、ユーザＡとロボット部４４とが対戦している。このように、本実施形態のシステムでは、対戦相手として実際のユーザのみならず、擬似的な対戦相手としてロボット部４４を指定することができる。また、同図に破線で示すように、他のユーザとの対戦中に対戦相手をロボット部４４に交代させたり、あるいは、ロボット部４４との対戦中に、対戦相手を他のユーザに交代させたりすることも可能である。
【００２３】
図４のゲームテーブル１のように、ユーザ端末１４間で対戦が行われる場合、対戦処理部４０は、一方のユーザ端末１４から送信された指し手（７六歩など）を表すデータ（以下、指し手データという）に基づいて局面保持データベース２４に記録された局面データを更新すると共に、この指し手データを他方のユーザへ送信する。このような処理を両対戦者のユーザ端末１４について交互に行うことでゲームが進行する。
【００２４】
また、図４のゲームテーブル２のように、ユーザＡとロボット部４４とが対戦する場合も、基本的にはユーザ間の対戦の場合と同様であり、対戦処理部４０はユーザＡから送信された指し手データに基づいて局面データを更新すると共に、この指し手データをロボット部４４へ送信する。また、ロボット部４４から送信された指し手データに基づいて局面データを更新すると共に、この指し手データをユーザＡへ送信する。なお、ロボット部４４との間のデータの送受信は、ゲームサーバー１０内部での対戦処理部４０とロボット部４４との間のプロセス間通信により行われることとなる。
【００２５】
また、対戦処理部４０は、対戦中のユーザ端末１４からの要求により、ゲームを中断させて、中断時点での局面データを局面登録データベース２６に記録する。そして、後刻、ユーザ端末１４からの要求に応じて局面登録データベース２６に記録された局面データを読み出して、その局面から対戦を開始させることもできる。
【００２６】
＝＝対戦処理等の詳細＝＝
以下、ユーザＡがゲームサーバー１０へログインしてゲーム対戦やゲーム観戦等を行う場合の処理について具体的に説明する。
ユーザＡはそのユーザ端末１４からゲームサーバー１０へアクセスし、ユーザＩＤおよびパスワードによるユーザ認証を受けたうえで、ゲームサーバー１０へログインする。ゲームサーバー１０はログインしてきたユーザＡのユーザＩＤをユーザデータベース２２に記録すると共に、ユーザＡのユーザ端末１４へゲーム初期画面を送信する。
【００２７】
図５は、ゲーム初期画面の一例を示す。同図に示す如く、ゲーム初期画面には、現在存在するゲームテーブルの一覧、ログイン中のユーザの一覧、および「テーブル作成」ボタンが表示される。
【００２８】
ユーザＡは、あるゲームテーブルαで対戦中のゲームを観戦したい場合は、ゲームテーブル一覧のゲームテーブルαに対応して設けられた「観戦する」ボタンをクリックする。これに応答して、ゲームサーバー１０は、テーブルデータベース２２においてゲームテーブルαの観戦者としてユーザＡのユーザＩＤを記録すると共に、ユーザＡのユーザ端末１４へ、将棋盤面を観戦するための観戦用プログラムを送信する。さらに、ゲームサーバー１０は、局面保持データベース２４からゲームテーブルαの局面データを読み出して当該ユーザ端末１４へ送信する。以後、ゲームサーバー１０は、何れかの対戦者が手を指して局面データが変化する都度、局面データをユーザ端末１４へ送信する。ユーザ端末１４では、観戦用プログラムがゲームサーバー１０から送信されてきた局面データに基づいて将棋盤面を表示させる。これにより、ユーザ端末１４には対戦中の将棋盤面がリアルタイムで表示されることとなる。
【００２９】
また、ユーザＡは、新たなゲームテーブルを作成したい場合は、ゲーム初期画面の「テーブル作成」ボタンをクリックする。これに応答して、ゲームサーバー１０は、新たなテーブルＩＤを生成してテーブルデータベース２２に登録し、そのステータスを「対戦相手待ち」にすると共に、当該ゲームテーブルの一方の対戦者として、ユーザＡのユーザＩＤを記録する。そして、ユーザＡのユーザ端末１４へ、対局用プログラムおよび初期局面を表す局面データを送信する。この対局用プログラムの機能については後述する。
【００３０】
こうしてユーザＡがゲームテーブルβを作成した後、ユーザＡの対戦者が決まるまでの間、このゲームテーブルβは対戦相手待ちのゲームテーブルとして各ログインユーザのゲーム初期画面に表示されることとなる。そして、他のユーザＢは、このように対戦者待ちであるゲームテーブルβに対応して設けられた「対戦する」ボタンをクリックすることにより、そのゲームテーブルβで対戦することができる。
【００３１】
上記のようにしてゲームテーブルβについて他のユーザＢが「対戦する」ボタンをクリックすると、ゲームサーバー１０は、テーブルデータベース２２の対戦者として、ユーザＢのユーザＩＤを追加記録する。また、ゲームサーバー１０は、ゲームテーブルβのテーブルＩＤを局面保持データベース２４に登録すると共に、その局面データとして初期局面を表すデータを記録する（ただし、先手・後手のユーザＩＤは後述のように「開始」ボタンがクリックされて先手・後手が決定された時点で記録される）。さらに、ゲームサーバー１０は、ゲームテーブルを作成したユーザＡのユーザ端末１４の場合と同様に、もう一方の対戦者であるユーザＢのユーザ端末１４へ対局用プログラムおよび初期局面を表す局面データを送信する。
【００３２】
対局用プログラムは例えばＪＡＶＡ等で記述されており、これを受信したユーザ端末１４において自動的に起動される。この対局用プログラムは、ユーザ端末１４に対局画面を表示させ、局面データに応じた将棋盤面をこの対局画面内に表示させる。図６は、対局画面の一例を示す。同図に示す如く、対局画面には、将棋盤面および持駒を示す盤面表示欄、観戦者の一覧表示欄、および、「開始」、「ロボットと対戦」、「ゲームから抜ける」、「保存して中断」、「保存局面から開始」、「相手を替える」の各操作ボタン等が含まれている。
【００３３】
そして、後述のように「開始」ボタンがクリックされることにより対戦が開始されると、以後、ユーザが入力した指し手（例えば「７六歩」等）に応じて当該ユーザ端末１４の盤面を変化させると共に、その指し手データをゲームサーバー１０へ送信する。また、対戦相手のユーザ端末１４からゲームサーバー１０を経由して指し手データが送信されてくると、その指し手データに基づいて盤面を変化させる。なお、対局画面での指し手の入力は、例えば、盤面に表示された駒をドラッグすることにより行えるようにしてもよいし、あるいは、「７六歩」のように指し手を直接入力するようにしてもよい。
【００３４】
対戦者であるユーザＡ，Ｂの各ユーザ端末１４の対局画面において、「開始」ボタンがクリックされると、ゲームサーバー１０は、テーブルデータベース２２においてゲームテーブル２２のステータスを「対戦中」に変更する。ゲームサーバー１０の対戦処理部４０は、こうしてステータスが「対戦中」に変更されたゲームテーブルについて、先手・後手を適宜（例えばランダムに）決めたうえで対戦を開始させる。すなわち、ゲームサーバー１０は、先ず先手ユーザのユーザ端末１４へ指し手の入力を促すメッセージを送信し、先手ユーザのユーザ端末１４から送信されてきた指し手データを後手ユーザのユーザ端末１４へ送信すると共に、当該指し手データに基づいて局面保持データベース２４に記録された局面データを更新する。以後、同様の処理を、後手ユーザのユーザ端末１４および先手ユーザのユーザ端末１４について交互に繰り返すことでゲームを進行させる。
【００３５】
ところで、ユーザＡがゲームサーバー１０にログインしても、対戦待ちのゲームテーブルが存在せず、また、ゲームテーブルを作成しても、対戦相手が現れないことがある。さらに、実際のユーザと対戦中に相手ユーザがゲームを抜けてしまい、ゲームを続行できなくなってしまうこともある。本実施形態のシステムでは、上記の如く、このように対戦相手が見つからない場合にもゲームサーバー１０内で用意されたロボット部４４と対戦でき、また、ゲームの途中で対戦相手が抜けた場合にもロボット部４４を対戦相手としてそのゲームを続行できるようにしている。さらに、ロボット部４４との対戦中に、対戦相手を他のユーザと交代させることもできるようにしている。
【００３６】
ユーザＡはゲームテーブルβを作成した後、ロボット部４４との対戦を希望する場合には、対局画面に含まれる「ロボットと対戦」ボタンをクリックする。これに応じて、ゲームサーバー１０は、テーブルデータベース２２にゲームテーブルβの対戦者として「ロボット」を記録し、さらに、ゲームテーブルβのテーブルＩＤを局面保持データベース２４に登録すると共に、その局面データとして初期局面を表すデータを記録する。
【００３７】
そして、ユーザＡの対局画面において「開始」ボタンがクリックされると、ゲームサーバー１０は、テーブルデータベース２２においてゲームテーブルβのステータスを「対戦中」に変更する。ゲームサーバー１０の対戦処理部４０は、こうしてステータスが「対戦中」に変更されたゲームテーブルβについて、ユーザＡおよびロボット４４の先手・後手を適宜決めたうえで対戦を開始させる。すなわち、上記したユーザ端末１４間の対戦の場合と同様に、ユーザＡのユーザ端末１４およびロボット部４４から交互に指し手データを受信し、その指し手データに基づいて局面データを更新すると共に、他方の対戦者へ指し手データを送信するという処理を繰り返す。
【００３８】
なお、ロボット部４４として、強さやくせ（攻撃型や防御型など）の異なる複数種類のものを用意しておき、ユーザが所望のロボット部４４を選択できるようにしてもよい。
【００３９】
ユーザＡがロボット部４４を対戦相手としてゲームを開始した後、対局画面の観戦者として表示された別のユーザＤに対戦相手を代わりたいと考えたとする。この場合、ユーザＡは例えばチャット等の手段でユーザＤの了解を得る等したうえで、画面上でユーザＤを指定して「対戦相手を変える」ボタンをクリックする。これに応答して、ゲームサーバー１０は、テーブルデータベース２２に記録されたゲームテーブルβのステータスを「中断中」に変更すると共に、対戦者として記録された「ロボット」を削除する。これにより、対戦処理部４０はゲームテーブルβの対戦を中断させる。
【００４０】
次に、ゲームサーバー１０は、ユーザＤのユーザ端末１４へ対戦の了承を求めるメッセージを送信し、了承する旨の応答メッセージが送られてくると、このユーザＤのユーザ端末１４へ対局プログラムおよび現在の局面データを送信する。これにより、ユーザＤのユーザ端末１４には、ゲームの中断時点での局面の盤面を含む対局画面が表示される。そして、ユーザＡおよびＤの両者のユーザ端末１４において「開始」ボタンがクリックされると、ゲームサーバー１０はテーブルデータベース２２に記録されたゲームステータスを「対戦中」に変更する。以後、対戦処理部４０が、上記したように、各ユーザ端末１４から交互に送信されてくる指し手データに基づいてゲームを進行させる。
【００４１】
また、ユーザＡとユーザＢとの対戦中に、ユーザＢがゲームから抜けたい場合、ユーザＢは対局画面の「ゲームから抜ける」ボタンをクリックする。これに応答して、ゲームサーバー１０は、ユーザＡのユーザ端末１４へ、対戦相手がゲームから抜けることへの了承を求めるメッセージを送信する。これに応じてユーザＡのユーザ端末１４から了承する旨の応答メッセージが送られてくると、ゲームサーバー１０は、テーブルデータベース２２に記録されたゲームステータスを「対戦相手待ち」に変更すると共に、対戦者として記録された「ユーザＢ」を削除する。これにより、ゲームテーブルは対戦相手待ちの状態となる。この状態で、ユーザＡが対局画面の「ロボットと対戦」ボタンをクリックすることで、ユーザＡはロボットを対戦相手として上記中断時点での局面からゲームを再開することができる。
【００４２】
以上のように、本実施形態のシステムでは、各ユーザは対戦相手が見つからない場合にも、ロボット部４４を対戦相手としてゲームを楽しむことができる。また、ユーザとの対戦中に対戦相手が抜けた場合にも、対戦相手をロボット部４４に変更してゲームを続行することもできる。さらに、ロボット部４４との対戦中に、対戦相手を他のユーザに交代させてゲームを続行することもできる。
【００４３】
なお、ネットワーク上で行うゲームでは、各対戦者の意図にかかわらず、ネットワーク異常により接続が切断されてゲームを続行できなくなる場合がある。本実施形態のシステムでは、このようなネットワーク異常により一方の対戦者のユーザ端末１４とゲームサーバー１０との接続が切断された場合にも、ゲームサーバー１０が接続切断を検知して、他方の対戦者のユーザ端末１４へその旨を通知し、当該他方の対戦者が対戦相手としてロボット部４４を指定することでゲームを続行できるようにすることが可能である。
【００４４】
＝＝局面の保存・読み出し機能の詳細＝＝
ユーザは、他のユーザまたはロボット部４４との対戦途中でゲームを中断する場合、中断時点での局面を保存して、後日、その局面から対戦を再開することもできる。
【００４５】
ユーザは、対戦を中断して局面を保存しようとする場合、対局画面に含まれる「保存して中断」ボタンをクリックする。これに応答して、ゲームサーバー１０は、他方の対戦者の了解をとったうえで（対戦相手がロボット部４４の場合は了解をとることは不要である）、固有の局面ＩＤおよびパスワードを生成し、これらの局面ＩＤおよびパスワードと、現時点での対局データとを関係付けて、局面保存データベース２６へ記録すると共に、局面ＩＤおよびパスワードを各対局者のユーザ端末１４へ通知する。
【００４６】
こうして保存した局面からゲームを再開する場合には、ユーザはゲームサーバー１０にログインしてゲームテーブルを作成したうえで、対局画面の「保存局面から再開」ボタンをクリックする。これに応じて、ゲームサーバー１０は、当該ユーザのユーザ端末１４へ局面ＩＤおよびパスワードの入力を求め、入力された局面ＩＤおよびパスワードに基づいて認証を行ったうえで、局面保存データベース２６から該当する局面データを読出し、その局面データをテーブルデータベース２２に記録すると共にユーザ端末１４へ送信する。以後、もう一人の対戦者が現れると、その対戦者のユーザ端末１４にも同じ対局データが送信され、これにより、保存されていた局面からゲームを開始することができる。また、ロボットを対戦相手として指定することで、ロボットとの対戦を保存されていた局面から開始することも可能である。
【００４７】
【発明の効果】
本発明によれば、ユーザに対して、将棋の対戦相手が見つからない場合にも、対戦者模擬手段を対戦相手として将棋を行うことが可能なゲームサービスを提供することができる。
【００４８】
また、ユーザに対して、対戦相手が対戦中に抜けた場合にもその局面から対戦を開始することが可能なゲームサービスを提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態である対戦型ネットワークゲームシステムの全体構成図である。
【図２】テーブルデータベースのデータ構成を示す図である。
【図３】対戦ゲームが将棋の場合の局面データの構成を示す図である。
【図４】ゲームサーバーの機能的な構成およびゲーム対戦処理の概要を示す図である。
【図５】ゲーム初期画面の一例を示す図である。
【図６】対局画面の一例を示す図である。
【符号の説明】
１０  ゲームサーバー
１２  インターネット
１４  ユーザ端末
２４  局面保持データベース
２６  局面登録データベース
４０  対戦処理部（ゲーム提供手段）
４４  ロボット部（対戦者模擬手段）
【図１】
0004955160.tif 000002
【図２】
0004955160.tif 000003
【図３】
0004955160.tif 000004
【図４】
0004955160.tif 000005
【図５】
0004955160.tif 000006
【図６】
0004955160.tif 000007