[1.ゲームシステムの全体構成]
以下、本発明に係る実施形態を図面に基づいて説明する。図1は、ゲームシステムの全体構成を示す図である。図1に示すように、本実施形態に係るゲームシステムSは、ゲーム端末10と、サーバ30と、を含む。ゲーム端末10とサーバ30は、インターネットなどのネットワークNに接続される。このため、ゲーム端末10とサーバ30との間で相互にデータ通信が可能である。なお、図1では、ゲーム端末10とサーバ30を1台ずつ示しているが、これらは複数台あってもよく、その台数は任意である。例えば、ゲーム端末10は、ユーザの数だけ存在してもよい。
ゲーム端末10は、ユーザが操作するコンピュータである。例えば、ゲーム端末10は、携帯端末(例えば、スマートフォンなどの携帯電話又はタブレット型コンピュータ)、パーソナルコンピュータ、携帯ゲーム機、据置ゲーム機、業務用ゲーム機、又は、情報処理機能を備えた多機能型テレビジョン受像機(スマートテレビ)等である。
図1に示すように、ゲーム端末10は、制御部11、記憶部12、通信部13、操作部14、表示部15、及び音声出力部16を含む。制御部11は、少なくとも1つのマイクロプロセッサを含む。制御部11は、オペレーティングシステムやプログラムに従って処理を実行する。記憶部12は、主記憶部(例えば、RAM)及び補助記憶部(例えば、不揮発性の半導体メモリ)を含む。記憶部12は、プログラムやデータを記憶する。例えば、ゲーム端末10がパーソナルコンピュータ等である場合、記憶部12は、ハードディスクドライブ又はソリッドステートドライブ等の補助記憶部を含むようにしてもよい。通信部13は、通信モジュールなどの通信インタフェースを含む。通信部13は、ネットワークNを介してデータ通信を行う。
操作部14は、入力デバイスであり、例えば、キー、レバー、ゲームコントローラ(ゲームパッド)、マウスやタッチパネルなどのポインティングデバイス、又はキーボード等を含んでもよい。また例えば、操作部14は、ユーザが音声又はジェスチャによって入力操作を行うためのマイクやカメラを含んでもよい。表示部15は、例えば、液晶表示パネル又は有機ELディスプレイ等であり、制御部11の指示に従って画面を表示する。音声出力部16は、音声データを出力するためのものであり、例えばスピーカ又はヘッドホン等である。なお、操作部14、表示部15、及び音声出力部16は、ゲーム端末10に内蔵されていなくともよく、ゲーム端末10に接続された外部装置であってもよい。
サーバ30は、サーバコンピュータである。図1に示すように、サーバ30は、制御部31、記憶部32、及び通信部33を含む。制御部31、記憶部32、及び通信部33のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。例えば、サーバ30は、ゲームプログラムを記憶しており、ゲーム端末10からの要求に応じてゲームプログラムを配信するようにしてもよいし、ゲームプログラムは、他のサーバコンピュータに記憶されており、当該他のサーバコンピュータからゲーム端末10に配信されるようにしてもよい。
なお、記憶部12又は記憶部32に記憶されるものとして説明するプログラムやデータは、例えば、ネットワークNを介してゲーム端末10又はサーバ30に供給されるようにしてもよい。また、ゲーム端末10又はサーバ30は、情報記憶媒体(例えば、光ディスク又はメモリカード等)に記憶されたプログラム又はデータを読み取るための読取部(例えば、光ディスクドライブ又はメモリカードスロット)を含むようにしてもよい。そして、情報記憶媒体を介してゲーム端末10又はサーバ30にプログラムやデータが供給されるようにしてもよい。
[2.ゲームの概要]
ゲームシステムSは、スポーツゲーム、アクションゲーム、ロールプレイングゲーム、又はパズルゲーム等の種々のゲームを実行可能である。本実施形態では、ゲームシステムSが実行するゲームの一例として、ユーザのチームと対戦相手のチームとが対戦する野球ゲームを説明する。対戦相手は、他のユーザであってもよいし、コンピュータであってもよい。
図2は、ゲームの全体的な流れを示す図である。図2に示すように、本実施形態のゲームは、1試合を通してユーザがプレイするのではなく、試合の一部分がシミュレーションによって自動的に進行し、ユーザは試合の他の部分をプレイできるようになっている。なお、プレイとは、例えば、ユーザが操作部14を操作すること、ゲームの進行にユーザが直接的に関与すること、ユーザの操作がゲームの実行結果に影響を与えることである。図2の例では、ゲームの開始直後は、ユーザはゲームをプレイできる。ゲームが開始すると、実行中のゲームの様子を示すゲーム画像が表示部15に表示される。
図3は、ゲーム画像の一例を示す図であり、図4は、ゲーム画像の画面遷移図である。図3に示すように、ゲーム画像Gには、ゲーム内の仮想世界(ここでは、架空の競技場)の様子が表示される。例えば、ゲームが開始すると、仮想世界が構築され、仮想カメラから仮想世界を見た様子がゲーム画像Gに表示される。
また、ゲーム画像Gは、現在の戦況を表示するための表示領域Aを含む。表示領域Aには、現在のイニング、各チームの得点、各塁の状況、ボールカウント、及びアウトカウントが表示される。イニングは、試合を構成する部分であり、一試合は、原則として9イニングで構成される。1つのイニングは、2つのチームのうちの一方が攻撃する表と、他方が攻撃する裏と、が存在する。各チームは、攻撃と守備を交互に行うことになる。各塁の状況は、1塁、2塁、及び3塁の各々における走者の有無が示される。ボールカウントは、投手と打者の勝負に対するボール・ストライクの判定の記録であり、アウトカウントは、現在のアウトの数である。
ゲーム画像Gに表示される複数のキャラクタのうちの何れかは、ユーザの操作対象として設定される。ユーザは、操作部14を操作して、操作対象に設定されたキャラクタを操作する。例えば、投手のキャラクタが操作対象に設定されていれば、ユーザは、球種やコース等を指定して、当該キャラクタに投球動作をさせる。また例えば、打者のキャラクタが操作対象に設定されていれば、ユーザは、スイングの位置やタイミング等を指定して、当該キャラクタに打撃動作をさせる。なお、ユーザがスイングのタイミングのみを指定して、スイングの位置は打者のキャラクタに含まれる属性値に基づいて打撃動作をさせる簡易打撃操作もある。
図2のゲーム進行例では、ユーザは、操作対象に設定されたキャラクタを操作しつつ、試合がある程度進むまでゲームをプレイする。なお、試合開始後に、ゲーム端末10が自動的に試合を進行させ、その後にユーザがプレイできるようにしてもよい。例えば、試合の1回と2回は自動的に進行し、3回表からユーザがプレイできるようにしてもよい。図2に示すように、ここでは、ユーザは、試合開始から3回裏の終了までプレイするものとする。3回裏が終了すると、ゲーム端末10からサーバ30に対し、試合の状況を示すデータが送信され、サーバ30において、試合のシミュレーション処理が自動的に実行される。即ち、図2に示すように、サーバ30において、4回表から試合のシミュレーション処理が自動的に実行される。
図4に示すように、ユーザが3回裏ををプレイし(図4のゲーム画像G1の状態)、シミュレーション処理が開始すると、シミュレーション処理が実行中である旨を示すメッセージが表示される(図4のゲーム画像G2の状態)。なお、このメッセージは表示されなくてもよい。この状態になると、サーバ30でシミュレーション処理が実行される。サーバ30でのシミュレーション処理は高速であり、ユーザは、ほとんど待ち時間がない。
シミュレーション処理は、シミュレーション中の試合が所定条件を満たすまで繰り返し実行される。所定条件の詳細は後述するが、ここでは、「2アウト満塁」という条件を例に挙げて説明する。例えば、図2に示すように、シミュレーション中の試合が、試合終了前に「2アウト満塁」になった場合に、シミュレーション処理が終了し、サーバ30からゲーム端末10に対し、シミュレーション結果が送信され、後述するように、ゲーム端末10で「2アウト満塁」になるまでの経緯が表示される。一方、シミュレーション中の試合が「2アウト満塁」になることなく終了してしまった場合は、シミュレーション処理の開始時点(ここでは、4回表)からシミュレーション処理がやり直される。
シミュレーション中の試合が「2アウト満塁」になった場合には、図2及び図4に示すように、試合が「2アウト満塁」になるまでの経緯が表示され(図4のゲーム画像G3の状態)、ユーザは、2アウト満塁からゲームをプレイすることになる(図4のゲーム画像G4の状態)。なお、ゲーム端末10で自動的に試合が進行する場合も同様の表示がなされ、サーバ30でシミュレーションした結果の経緯を表示される場合と、例えばゲーム端末10で行われる1回と2回の自動的な試合と、はユーザから見ると、見た目上の区別はできないようになっている。例えば、図4のゲーム画像G3に示すように、各イニングにおけるキャラクタの打撃結果、アウトカウント、走者の状況、得点の有無などが経緯として表示される。また、図4の例では、シミュレーション処理により、5回表に「2アウト満塁」になったので、ユーザは、5回表からゲームのプレイを再開する。シミュレーション中における4回表の開始から5回表の2アウトまでの間の各打席の結果は、図4のゲーム画像G3によって把握することができる。以降、試合終了までユーザにゲームをプレイさせてもよいし、ある程度プレイさせた後に、再びシミュレーション処理が開始され、別の条件となるまでシミュレーション処理が実行されてもよい。
上記のように、ゲームシステムSでは、シミュレーション中の試合が所定条件を満たした場合に、所定条件を満たしたときの経緯を表示し、その続きから試合をプレイさせる。シミュレーション処理が実行されることで、同じ状況をユーザにプレイさせても、毎回全く同じ状況を同じ経緯を経てプレイさせるのではなく、微妙に違う異なる経緯を経てからプレイさせることができる。例えば、所定条件として「2アウト満塁」が定められていた場合、ゲームシステムSは、「2アウト満塁」であったとしても、その時のイニングや点差等が違うゲーム状況を作り出すことができ、ゲームが単調になることを防止し、ユーザがゲームに飽きにくくなるようになっている。以降、ゲームシステムSの構成の詳細を説明する。
[3.ゲームシステムにおいて実現される機能]
図5は、ゲームシステムSで実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。ここでは、サーバ30において実現される機能と、ゲーム端末10において実現される機能と、を順番に説明する。
[3−1.サーバにおいて実現される機能]
図5に示すように、サーバ30において、データベース記憶部300、更新部301、判定部302、及び再実行部303が実現される。
[3−1−1.データベース記憶部]
データベース記憶部300は、記憶部32を主として実現される。データベース記憶部300は、ゲームに関するデータを統括的に管理し、各ユーザがゲームをプレイするために必要なデータを記憶する。ここでは、データベース記憶部300が記憶するデータの一例として、ユーザデータベースDB1、共通データDT2、所定条件データDT3、状況データDT4、及び経緯データDT5を説明する。
図6は、ユーザデータベースDB1のデータ格納例を示す図である。図6に示すように、ユーザデータベースDB1は、ゲームシステムSを利用する複数のユーザの各々のユーザデータDT1を管理するデータベースであり、例えば、ユーザ識別情報と、ユーザデータDT1と、が関連付けられている。ユーザ識別情報は、例えば、ユーザを一意に識別するための情報である。例えば、ユーザID又はユーザ名等がユーザの識別情報の一例に相当する。
ユーザデータDT1は、例えば、ユーザ識別情報から検索可能に紐付けられたデータであり、ゲームを実行するために参照されるデータである。例えば、ユーザデータDT1は、ユーザがゲームで使用するゲームオブジェクトに関するデータであり、ゲームオブジェクトの名前、役割、及び能力等に関する情報を含む。
ゲームオブジェクトは、例えば、ゲームで使用され得る対象である。例えば、ゲームオブジェクトは、ゲームで用意されたゲームオブジェクトの全てを意味してもよいし、当該ゲームオブジェクトの中からユーザに付与されたもの(ユーザが所有するもの)だけを意味してもよい。例えば、ゲームキャラクタ、ゲームカード、又はゲームアイテム等がゲームオブジェクトの一例に相当する。本実施形態では、ゲームキャラクタがゲームオブジェクトに相当する場合を説明する。
例えば、ユーザデータDT1は、ユーザのチームに関するデータである。図6に示すように、例えば、ユーザデータDT1は、チームの名前、チームに所属するゲームキャラクタの名前、適正ポジション、及び能力パラメータを含む。能力パラメータは、ゲームキャラクタの能力の良し悪しを示し、例えば、野球選手としての能力を示す。能力パラメータは、複数の項目の各々に対してパラメータが存在する。例えば、投手であれば、球威、制球、及びスタミナ等の項目が存在し、野手であれば、ミート、パワー、及び走塁等の項目が存在する。適正ポジションは、ゲームキャラクタが適正ポジションに示す位置に配置した場合、能力パラメータは100%であるが、適正ポジション以外に位置に配置すると、能力パラメータが100%未満になる。具体的には、適正ポジションが「投手」と設定されているのに「遊撃手」に配置されると、能力パラメータが80%になる。
なお、ユーザデータDT1に含まれる情報は、図6の例に限られない。ユーザデータDT1は、ユーザがゲームをプレイする際に参照される情報が格納されるようにすればよく、例えば、ゲームキャラクタの特殊能力や属性等に関する情報が含まれていてもよい。
図7は、共通データDT2のデータ格納例を示す図である。図7に示すように、共通データDT2は、シミュレーション処理において、ユーザデータDT1の代わりに参照されるデータである。例えば、共通データDT2は、ユーザデータDT1の内容に関係なく、内容が固定されている。また例えば、共通データDT2は、ゲームシステムSを利用する複数のユーザ間で共通のデータであり、ユーザデータDT1とは各項目の値が同じでなくてもよく、図7では異なっている。
本実施形態では、シミュレーション処理で用いられるチームに関するデータが共通データDT2に相当する。例えば、共通データDT2は、チームの名前、ゲームキャラクタの名前、ポジション、及び能力パラメータを含む。共通データDT2は、ユーザデータDT1と同様の項目を含むが、各項目の値は、ユーザデータDT1の値に関係なく固定されている。
なお、共通データDT2に含まれる情報は、図7の例に限られない。共通データDT2は、シミュレーション処理の実行時に参照される情報が格納されるようにすればよく、ユーザデータDT1と同様、例えば、ゲームキャラクタの特殊能力や属性等に関する情報が含まれていてもよい。
図8は、所定条件データDT3のデータ格納例を示す図である。図8に示すように、条件データには、複数の所定条件を示す情報が格納される。シミュレーション処理では、所定条件データDT3に格納された複数の所定条件のうちの何れかが用いられる。どの所定条件が用いられるかは、予め定められた方法によって定まればよく、例えば、ランダムに決まってもよいし、所定条件データDT3の上から順番に選択されてもよい。
所定条件は、例えば、ゲーム状況が所定の類型に属することである。例えば、所定条件は、大まかなゲーム状況が所定の状況になることである。また例えば、図9に示すように、ゲーム状況を示す状況データDT4にn個の項目が含まれていたとすると、所定条件は、n個よりも少ないm個の項目が所定値になることである。また例えば、ユーザの得点が変化するゲームであれば、所定条件は、ユーザの得点、対戦相手の得点、又は得点差が所定値になることである。また例えば、ゲームキャラクタが動作するゲームであれば、所定条件は、ゲームキャラクタが所定の位置、所定の方向、所定の速度になることである。また例えば、所定条件は、ゲーム内における時間が所定時間になることである。
本実施形態では、野球ゲームが実行される場合を説明するので、所定条件データDT3に格納される所定条件は、図8に示すように、試合の戦況に関する条件となる。所定条件は、1つの項目だけに関する条件であってもよいし、複数の項目に関する複合的な条件であってもよい。所定条件が複数の項目に関する条件である場合には、複数の項目の全てを満たさなければならないAND条件であってもよいし、複数の項目の何れかを満たすOR条件であってもよいし、AND条件とOR条件の組み合わせであってもよい。
図9は、状況データDT4のデータ格納例を示す図である。図9に示すように状況データDT4は、ゲーム状況を示すデータであり、例えば、状況データDT4は、ゲーム状況を示す複数項目からなる情報の集まりである。
ゲーム状況とは、例えば、ゲームの進行具合であり、ゲーム世界の様子である。ゲーム世界は、ゲーム内の仮想世界であり、3次元空間であってもよいし、2次元的な平面であってもよい。例えば、対戦形式のゲームであれば、ゲーム状況は戦況である。また例えば、ユーザの得点が変化するゲームであれば、ゲーム状況は現在の得点である。また例えば、ゲームキャラクタが動作するゲームであれば、ゲーム状況は、ゲームキャラクタの位置、方向、及び速度等の状態である。また例えば、ゲーム状況は、仮想世界における時間である。ここでの時間は、ゲーム内の日時であってもよいし、スポーツの試合における経過時間、イニング、又はラウンド等と呼ばれる情報であってもよい。
本実施形態では、状況データDT4は、現在のイニング、各チームの得点、各塁の状況、カウント(ボールカウント・アウトカウント)、及び設定情報を含む。設定情報は、例えば、ゲームの設定に関する情報である。例えば、設定情報は、戦術、作戦、打順、ポジション、又はフォーメーション等である。本実施形態では、各チームの打順とポジションの関係を設定情報の一例として説明する。
なお、状況データDT4に含まれる情報は、図9の例に限られない。状況データDT4は、仮想世界におけるゲームキャラクタの位置、方向、及び速度に関する情報を含んでもよいし、ゲームの実行中に変化するゲームキャラクタの体力パラメータ等を含んでもよい。また、本実施形態では、データベース記憶部300は、シミュレーション処理の開始時の状況データDT4と、シミュレーション中の試合の状況データDT4と、を記憶するものとする。
図10は、経緯データDT5のデータ格納例を示す図である。図10に示すように、経緯データDT5は、ゲーム状況の経緯を示すデータである。経緯とは、例えば、更新部301によって更新されるゲーム状況の変化の経緯、経過、又は履歴である。経緯データDT5はは、例えば、ゲーム状況の時系列的な変化を示す。例えば、シミュレーション中の状況データDT4の時系列的な変化であってもよいし、状況データDT4よりも項目数の少ないデータ(ゲーム状況を大まかに示すデータ)の変化であってもよい。
本実施形態では、経緯データDT5には、シミュレーション中の任意の時点における大まかなゲーム状況が格納される。なお、経緯データDT5は、試合の経緯を示せばよく、特に大まかなゲーム状況ではなく、詳細なゲーム状況が格納されてもよい。例えば、経緯データDT5には、シミュレーション処理が行われたイニングごとに、各打者の打撃結果、アウトカウント、各塁の状況、及び追加点の有無等が格納される。図10のデータ格納例では、打者の名前は、共通データDT2のキャラクタではなく、ユーザデータDT1のキャラクタに変換した者を示しているが、共通データDT2のキャラクタの名前が格納されてもよいし、特に打者の名前が格納されなくてもよい。
なお、データベース記憶部300に記憶されるデータは、上記の例に限られない。データベース記憶部300は、ゲームに必要なデータを記憶すればよく、例えば、ゲーム端末10に表示させる画像の画像データを記憶してもよい。
[3−1−2.更新部]
更新部301は、制御部31を主として実現される。更新部301は、シミュレーション処理を実行することによって、ゲーム状況を更新する。本実施形態では、更新部301は、シミュレーション中のゲーム状況を示す状況データDT4をデータベース記憶部300に記録し、シミュレーション処理の実行結果に基づいて、当該状況データDT4を更新する。また、本実施形態では、更新部301は、シミュレーション処理の実行結果に基づいて、経緯データDT5も更新する。例えば、更新部301は、状況データDT4の変化に基づいて、経緯データDT5を更新する。
シミュレーション処理とは、例えば、ゲーム状況の変化を予測することであり、状況データの変化を予測することである。別の言い方をすれば、シミュレーション処理は、例えば、ゲームの進行を予測すること、又は、ユーザの操作を要することなくゲームを自動進行させること、である。
更新部301は、予め定められたアルゴリズムに基づいて、シミュレーション処理を実行する。このアルゴリズムは、状況データの変化の計算式が記述されており、例えば、戦況の変化やゲームキャラクタの行動結果が定義されている。例えば、シミュレーション処理は、当該アルゴリズムと乱数に基づいて実行され、シミュレーション処理の実行中に発生させた乱数によって、シミュレーション処理の実行結果が変わるようになっている。このため、シミュレーション処理のたびに、シミュレーション処理の実行結果が異なる。
例えば、対戦形式のゲームであれば、更新部301は、第1パラメータに基づいて得られる数値と、第2パラメータに基づいて得られる数値と、を比較する簡易なシミュレーション処理を実行することによって、対戦の経過又は結果を決定する。なお、チーム同士が対戦するゲームであれば、第1パラメータは第1チーム(例えば、ユーザのチーム)のパラメータであり、第2パラメータは第2チーム(例えば、対戦相手のチーム)のパラメータである。例えば、対戦形式のゲームにおいて、更新部301は、1又は複数の第1ゲームキャラクタと1又は複数の第2ゲームキャラクタとを第1パラメータ及び第2パラメータに基づいて仮想世界内で仮想的かつ自動的に動作させるシミュレーション処理を実行することによって、対戦の経過又は結果を決定する。
例えば、更新部301は、ユーザデータDT1の代わりに、ユーザデータDT1とは異なる共通データDT2に基づいて、シミュレーション処理を実行する。例えば、更新部301は、シミュレーション処理を実行するにあたり、ユーザデータDT1は参照せず、共通データDT2に基づいて、シミュレーション処理を実行する。このため、ユーザデータDT1は、シミュレーション処理の実行結果に影響せず、共通データDT2が、シミュレーション処理の実行結果に影響する。例えば、更新部301は、共通データDT2が示すゲームキャラクタの能力パラメータに基づいて、シミュレーション処理を実行する。
また例えば、更新部301は、ユーザデータDT1に設定された設定情報を共通データDT2に設定し、シミュレーション処理を実行するようにしてもよい。設定情報の内容は、ゲームの開始前又は実行中において、自動的に決定されるようにしてもよいし、ユーザが指定してもよい。更新部301は、共通データDT2が示す各チームの打順とポジションを設定情報に基づいて決定し、シミュレーション処理を実行する。このため、シミュレーション処理では、ゲームキャラクタの能力パラメータは、ユーザのチームとは違うものが使用されるが、打順とポジションの関係は、ユーザのチームと同じものが使用されることになる。
また例えば、更新部301は、ゲーム状況が所定の中断条件を満たした場合に、中断条件を満たしたゲーム状況からシミュレーション処理を実行するようにしてもよい。中断条件は、例えば、ユーザのプレイを中断させるために定められた条件であり、シミュレーション処理を開始するために定められた条件である。中断条件は、状況データDT4に情報が格納された項目に基づいて判定可能な条件という点では、先述した所定条件と同様である。中断条件の判定項目は、所定条件と同じであってもよいし、異なってもよい。更新部301は、ゲーム端末10から、中断条件を満たした場合のゲーム状況を示す状況データDT4を取得し、当該状況データDT4に基づいて、シミュレーション処理を実行することになる。即ち、更新部301は、中断条件を満たしたゲーム状況の続きをシミュレーションすることになる。
[3−1−3.判定部]
判定部302は、制御部31を主として実現される。判定部302は、ゲーム状況が所定条件を満たすか否かを判定する。判定部302は、データベース記憶部300に記憶された状況データDT4が示すゲーム状況が所定条件を満たすか否かを判定する。例えば、判定部302は、状況データDT4のうちの所定条件が示す項目が、所定条件が示す値になったか否かを判定する。このため、判定部302は、状況データDT4のうち、所定条件の判定対象とはならない項目については、特に参照せず判定処理で使用しないことになる。
例えば、「2アウト満塁」という条件であれば、判定部302は、状況データDT4に格納されたアウトカウントと各塁の状況を参照し、アウトカウントが2アウトを示しており、かつ、各塁の状況が満塁を示しているか否かを判定することになる。また例えば、「0アウト又は1アウトで3塁」という条件であれば、判定部302は、状況データDT4に格納されたアウトカウントと各塁の状況を参照し、アウトカウントが0アウト又は1アウトを示しており、かつ、各塁の状況が3塁に走者がいることを示しているか否かを判定することになる。また例えば、「7回以降で1点差」という条件であれば、判定部302は、状況データDT4に格納されたイニングと各チームの得点を参照し、現在のイニングが7回以降を示しており、かつ、各チームの得点さが1点差であるか否かを判定することになる。
[3−1−4.再実行部]
再実行部303は、制御部31を主として実現される。再実行部303は、ゲーム状況が所定条件を満たさなかった場合に、更新部301によるシミュレーション処理を最初又は途中から再度実行させる。
最初とは、例えば、シミュレーション処理の開始時点である。途中とは、例えば、シミュレーション処理の開始時点よりも後の時点であり、ある程度はシミュレーションが進んだ時点である。再度実行とは、シミュレーション処理をやり直すことであり、シミュレーション処理を繰り返し実行することである。ここでいう最初とは、あくまでシミュレーション処理する場合の最初という意味であり、1イニングからに限ったことではない。例えば、ゲーム端末10で3イニングまで実行し、3イニングからサーバ30でシミュレーション処理を開始した場合の最初は、3イニングからとなる。よって、シミュレーションを開始した時点ということを示す。
本実施形態では、シミュレーション処理の開始時点の状況データDT4がデータベース記憶部300に記憶されているので、再実行部303は、ゲーム状況が所定条件を満たさなかった場合に、当該状況データDT4に基づいて、更新部301にシミュレーション処理を最初からやり直させることになる。なお、シミュレーション処理を途中からやり直す場合には、シミュレーションの開始時点よりも後の時点における状況データDT4をデータベース記憶部300に記憶させておき、再実行部303は、ゲーム状況が所定条件を満たさなかった場合に、当該状況データDT4に基づいて、更新部301にシミュレーション処理を途中からやり直させるようにすればよい。
例えば、再実行部303は、ゲーム状況が所定条件を満たし得なくなった場合に、更新部301によるシミュレーション処理を最初又は途中から再度実行させる。
所定条件を満たし得なくなった場合とは、例えば、それ以上シミュレーション処理を実行しても、所定条件を満たすことができない状態である。例えば、所定条件が時間的な条件を含む場合に、当該条件が示す時間が経過してしまうことである。また例えば、ゲームの進行に応じて増加するパラメータがあり、当該パラメータを所定値未満に抑えるという条件の場合に、当該所定値を超えてしまうことである。また例えば、ゲームの進行に応じて減少するパラメータがあり、当該パラメータを所定値以上に維持するという条件の場合に、当該所定値を下回ってしまうことである。
本実施形態では、試合が終了することが、所定条件を満たし得なくなった場合に相当する場合を例に挙げる。再実行部303は、シミュレーション中のゲーム状況を示す状況データDT4が所定条件を満たすことなく試合が終了した場合に、シミュレーション処理を最初又は途中から再度実行させる。
[3−2.ゲーム端末において実現される機能]
図5に示すように、ゲーム端末10においては、データ記憶部100、状況データ取得部101、経緯データ取得部102、提示部103、及びゲーム実行部104が実現される。
[3−2−1.データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、ゲームを実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、ユーザデータDT1、状況データDT4、及び経緯データDT5を説明する。
ユーザデータDT1、状況データDT4、及び経緯データDT5のデータ形式は、サーバ30のデータベース記憶部300に記憶されているものと同様である。ただし、データ記憶部100は、ゲーム端末10のユーザ以外のユーザデータDT1を記憶する必要はないので、ユーザデータベースDB1のうち、ゲーム端末10のユーザのユーザ識別情報と関連付けられたユーザデータDT1を記憶する。
例えば、ゲーム端末10とサーバ30との間で、ユーザデータDT1の整合性が取られている。例えば、ゲーム端末10がユーザデータDT1を更新した場合は、ゲーム端末10は、サーバ30に対し、ユーザ識別情報とともに、更新後のユーザデータDT1を送信する。なお、ユーザ識別情報は、データ記憶部100に記憶されているものとする。サーバ30は、受信したユーザ識別情報とユーザデータDT1を関連付けてユーザデータベースDB1に格納する。一方、サーバ30がユーザデータDT1を更新した場合は、サーバ30は、当該ユーザデータDT1に関連付けられたユーザ識別情報が示すゲーム端末10に対し、当該ユーザデータDT1を送信する。ゲーム端末10は、受信したユーザデータDT1をデータ記憶部100に記録する。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。データ記憶部100は、ゲームに必要なデータを記憶すればよい。例えば、データ記憶部100は、後述する中断条件に関するデータを記憶していてもよいし、ゲーム端末10に表示させる画像の画像データを記憶してもよい。
[3−2−2.状況データ取得部]
状況データ取得部101は、制御部11を主として実現される。状況データ取得部101は、ゲーム状況が所定条件を満たした場合に、当該ゲーム状況を示す状況データDT4を取得する。例えば、サーバ30は、判定部302によりゲーム状況が所定条件を満たしたと判定された場合に、ゲーム端末10に対し、データベース記憶部300に記憶された状況データDT4を送信する。状況データ取得部101は、当該状況データDT4を受信し、データ記憶部100に格納する。即ち、判定部302によりゲーム状況が所定条件を満たしたと判定された場合には、サーバ30のデータベース記憶部300に記憶された状況データDT4と、ゲーム端末10のデータ記憶部100に記憶された状況データDT4と、は整合性が取られて同じものとなる。
[3−2−3.経緯データ取得部]
経緯データ取得部102は、制御部11を主として実現される。経緯データ取得部102は、状況データDT4が示すゲーム状況になるまでの経緯を示す経緯データDT5を取得する。例えば、サーバ30は、判定部302によりゲーム状況が所定条件を満たしたと判定された場合に、ゲーム端末10に対し、データベース記憶部300に記憶された経緯データDT5を送信する。経緯データ取得部102は、当該経緯データDT5を受信し、データ記憶部100に格納する。
[3−2−4.提示部]
提示部103は、制御部11を主として実現される。提示部103は、経緯データDT5が示す経緯をユーザに提示する。提示とは、表示部15に画像を表示させること、又は、音声出力部16から音声を出力させることである。本実施形態では、提示部103は、経緯データDT5に基づいて、状況データDT4が示すゲーム状況になるまでの経緯を示す情報を表示部15に表示させる。当該情報としては、図4のゲーム画像G3に示すようなテキスト形式の情報であってもよいし、動画形式の情報であってもよい。
[3−2−5.ゲーム実行部]
ゲーム実行部104は、制御部11を主として実現される。ゲーム実行部104は、状況データ取得部101により取得された状況データDT4が示すゲーム状況から、ゲームをプレイ可能にする。ゲーム実行部104は、状況データDT4に基づいて、所定条件を満たしたゲーム状況の続きから、ゲームをプレイ可能にすることになる。ゲーム実行部104は、状況データDT4に基づいてゲーム画像Gを表示部15に表示させ、ユーザの操作に基づいて、操作対象に設定されたキャラクタを動作させる。
なお、プレイ可能とは、例えば、ユーザの操作に基づいてゲームが進行する状態である。また例えば、プレイ可能とは、ユーザの操作によって、ゲームの実行結果が変わる状態である。また例えば、プレイ可能とは、ユーザの操作を受け付ける状態である。
例えば、ゲーム実行部104は、提示部103による経緯の提示がなされた後に、状況データDT4が示すゲーム状況から、ゲームをプレイ可能にする。即ち、ゲーム実行部104は、提示部103による経緯の提示がなされたことを条件として、状況データDT4が示すゲーム状況から、ゲームをプレイ可能にする。
本実施形態では、ユーザデータベースDB1にユーザ識別情報とユーザデータDT1と関連付けられており、ゲーム端末10とサーバ30との間でユーザデータDT1の整合性が取られているので、ゲーム実行部104は、ユーザのユーザ識別情報と関連付けられたユーザデータDT1に基づいて、ゲームを実行することになる。即ち、ゲーム実行部104は、ゲーム端末10のユーザ以外のユーザデータDT1ではなく、ゲーム端末10のユーザのユーザデータDT1に基づいて、ゲームを実行する。
また、本実施形態では、状況データDT4に設定情報が格納されているので、ゲーム実行部104は、ユーザデータDT1に設定された設定情報に基づいて、ゲームを実行することになる。本実施形態では、設定情報が打順とポジションの関係なので、ゲーム実行部104は、設定情報に基づいて各ゲームキャラクタの打順を決定し、当該打順に基づいてゲームキャラクタに打撃動作をさせる。
また、本実施形態では、ゲームの開始直後はユーザがゲームをプレイするので、ゲーム実行部104は、シミュレーション処理が実行される前に、ゲームをプレイ可能にすることになる。即ち、ゲーム実行部104は、ゲーム開始から中断条件が満たされるまでの間と、シミュレーション中のゲーム状況が所定条件を満たした後と、において、ゲームをプレイ可能とする。
[4.ゲームシステムにおいて実行される処理]
図11は、ゲームシステムSにおいて実行される処理の一例を示すフロー図である。図11に示す処理は、制御部11が記憶部12に記憶されたプログラムに従って動作し、制御部31が記憶部32に記憶されたプログラムに従って動作することによって実行される。下記の処理は、図5に示す各機能ブロックによる処理の一例である。なお、図11の処理が実行されるにあたり、サーバ30からゲーム端末10に対し、対戦相手のチームに関するデータ(例えば、他のユーザのユーザデータDT1)が送信されており、設定情報の設定が完了しているものとする。
図11に示すように、まず、ゲーム端末10においては、制御部11は、状況データDT4を生成してゲームを開始する(S101)。S101においては、制御部11は、記憶部12に記憶されたユーザデータDT1、サーバ30から受信した対戦相手のチームに関するデータ、及びユーザの設定内容を示す設定情報に基づいて状況データDT4を生成する。状況データDT4に格納されるイニングや得点等は、初期値が格納される。
制御部11は、ユーザの操作に基づいて、ゲームを実行する(S103)。S103においては、制御部11は、ユーザの操作に基づいて操作対象に設定されたキャラクタを動作させ、予め定められた行動アルゴリズムに基づいて操作対象以外のキャラクタを動作させ、状況データDT4を更新する。また、制御部11は、仮想カメラから仮想世界を見た様子を示すゲーム画像Gを生成して表示部15に表示させる。
制御部11は、状況データDT4が示すゲーム状況が中断条件を満たすか否かを判定する(S105)。S105においては、制御部11は、状況データDT4に含まれる項目のうち、中断条件の判定対象となる項目の値が所定値であるか否かを判定する。例えば、中断条件として「3回裏終了」という条件が設定されていた場合、制御部11は、状況データDT4に格納されたイニングが3回裏の終了を示したか否かを判定する。なお、ゲームを中断する前に、ゲーム端末10又はサーバ30が状況データDT4を事前に作成しておき、当該作成された状況データDTを配信及び共有することも可能である。
中断条件が満たされたと判定された場合(S105;Y)、制御部11は、サーバ30に対し、記憶部12に記憶された状況データDT4を送信し(S107)、シミュレーション処理の実行中である旨を示すメッセージを表示部15に表示させる(S109)。メッセージは予め記憶部12に記憶させておけばよい。S109の状態になると、ユーザは、シミュレーション処理が完了するまで待機することになる。
サーバ30においては、状況データDT4を受信すると、制御部31は、状況データDT4を記憶部12に記録し、状況データDT4に格納された設定情報に基づいて、共通チームの設定処理を実行する(S301)。S301において記録された状況データDT4は、シミュレーション処理の開始時の状況データDT4であり、シミュレーション処理を再度実行する場合に参照される。また、S301においては、制御部31は、共通チームの打順とポジションが、ユーザがプレイ中の試合と合うように設定する。
制御部31は、状況データDT4が示すゲーム状況からシミュレーション処理を開始し(S303)、シミュレーション処理を実行する(S305)。S305においては、制御部31は、シミュレーションのアルゴリズムに基づいて、ゲームキャラクタを動作させ、状況データDT4と経緯データDT5を更新する。例えば、中断条件として「3回裏終了」という条件が設定されていた場合、S303において、制御部31は、4回の表からシミュレーション処理を開始することになる。
制御部31は、シミュレーション中の状況データDT4が示すゲーム状況が所定条件を満たすか否かを判定する(S307)。S307においては、制御部11は、状況データDT4に含まれる項目のうち、所定条件の判定対象となる項目の値が所定値であるか否かを判定する。例えば、所定条件として「2アウト満塁」という条件が設定されていた場合、制御部11は、状況データDT4に格納されたアウトカウントが2アウトを示し、かつ、各塁の状況が満塁を示すか否かを判定する。
所定条件が満たされたと判定されない場合(S309;N)、制御部31は、シミュレーション中の状況データDT4が示すゲーム状況が所定条件を満たし得なくなったか否かを判定する(S309)。S309においては、制御部11は、シミュレーション中の試合が終了した場合は、所定条件を満たし得なくなったと判定する。
所定条件を満たし得なくなったと判定された場合(S309;Y)、S303の処理に戻り、シミュレーションの開始時からシミュレーションがやり直される。この場合、制御部31は、S301で記憶部32に記録した状況データDT4が示すゲーム状況から、再びシミュレーション処理を実行する。一方、所定条件を満たし得なくなったと判定されない場合(S303;N)、S305の処理に戻り、シミュレーション処理が継続される。
一方、所定条件が満たされたと判定された場合(S307;Y)、制御部31は、ゲーム端末10に対し、記憶部12に記憶された状況データDT4と経緯データDT5を送信する(S311)。S311においては、制御部31は、最新の状況データDT4と経緯データDT5を送信することになる。
ゲーム端末10においては、状況データDT4と経緯データDT5を受信すると、制御部11は、状況データDT4と経緯データDT5を記憶部12に記録し、経緯データDT5が示す経緯を表示部15に表示させる(S111)。S111においては、制御部11は、経緯データDT5が示す経緯に関する情報(例えば、図4のゲーム画像G3)を表示部15に表示させる。例えば、制御部11は、経緯データDT5が示す各イニングの打撃結果を示すテキストを、時系列的に表示部15に表示させる。
制御部11は、所定条件を満たすゲーム状況の続きからゲームをプレイ可能にする(S113)。S113においては、制御部11は、S111で受信した状況データDT4に基づいて、ゲーム画像Gを表示部15に表示させる。そして、制御部11は、ユーザの操作に基づいて、操作対象に設定されたゲームキャラクタを動作させ、状況データDT4を更新する。S113で状況データDT4を更新させる処理は、S103と同様である。
制御部11は、状況データDT4に基づいて、試合が終了したか否かを判定する(S115)。S115においては、制御部11は、状況データDT4が示すイニングが9回裏の終了を示すか否か、又は、後攻のチームが勝っている状態で9回表が終了したか否かを判定する。
試合が終了したと判定されない場合(S115;N)、S103の処理に戻り、試合が終了するまでゲームが実行される。複数の中断条件が定められている場合には、S105において、中断条件が満たされると判定された場合に、S107以降の処理が再び実行され、シミュレーション処理が実行される。一方、試合が終了したと判定された場合(S115;Y)、本処理は終了する。
以上説明したゲームシステムSによれば、シミュレーション処理を実行することによってゲーム状況を更新し、当該ゲーム状況が所定条件を満たすまでシミュレーション処理が実行され、ユーザが繰り返しゲームをプレイしたとしても、毎回全く同じ状況からプレイするのではなく、微妙に違う状況(細部が異なる状況)を作り出すことができるので、ユーザがゲームに飽きにくくなる。
また、ゲーム状況が所定条件を満たし得なくなった場合に、シミュレーション処理を再度実行することで、不必要なシミュレーション処理を防止できるので、ゲームシステムSの負荷を軽減することができる。また、不必要なシミュレーション処理を防止することで、状況データDT4を迅速に生成することができるので、ゲームシステムSの処理速度を向上させることもできる。
また、ゲーム状況が所定条件を満たすまでの経緯をユーザに理解させたうえで、状況データDT4が示す状況からゲームをプレイさせることができる。なぜその状況になったのかを理解することができずにユーザが戸惑ってしまうことを防止することができる。
また、共通データDT2に基づいてシミュレーション処理を実行することで、シミュレーション処理のたびに、ユーザごとに異なるユーザデータを取得する手間を省くことができ、ゲームシステムSの負荷を軽減することができる。また、ユーザデータDT1を取得する手間を省くことで、状況データDT4を迅速に生成することができるので、ゲームシステムSの処理速度を向上させることもできる。
また、ユーザデータDT1の設定情報が共通データに設定されたうえでシミュレーション処理が実行され、ユーザの設定がシミュレーション処理に反映されるので、ユーザが自分でプレイしたときのゲームの結果と、シミュレーション処理の結果と、を似せることができ、シミュレーション処理の精度を高めることができる。
また、ユーザにある程度ゲームをプレイさせ、ユーザのプレイを中断した場合のゲームの状況からシミュレーション処理を実行することで、ユーザがゲームをプレイするたびに、シミュレーション処理の開始時点の状況を異ならせることができるので、微妙に違う状況(細部が異なる状況)を作り出しやすくなる。
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
(1)例えば、所定条件によっては、複数の条件を含むことがある。複数の条件は、例えば、複合的な条件であり、状況データDT4のうちの複数の項目が判定対象となっている。例えば、所定条件が「3点差で2アウト満塁」という条件である場合、「3点差」、「2アウト」、「満塁」の3つの条件を含んでいる。このような場合に、ゲームシステムSは、1つ目の条件が満たされるまでシミュレーション処理を繰り返し実行し、1つ目の条件が満たされた場合に、2つ目の条件が満たされるまでシミュレーション処理を繰り返し実行し、2つ目の条件が満たされた場合に、3つ目の条件が満たされるまでシミュレーション処理を繰り返し実行するといったように、複数の条件の各々を順番に判定してもよい。
判定部302は、ゲーム状況が複数の条件を満たすか否かを判定することによって、ゲーム状況が所定条件を満たすか否かを判定する。例えば、判定部302は、複数の条件の全てが満たされた場合に所定条件が満たされたと判定してもよいし、複数の条件のうちの所定個数以上が満たされた場合に所定条件が満たされたと判定してもよい。例えば、「3点差で2アウト満塁」という条件であれば、判定部302は、状況データDT4が示す点差が3点差であるか否かを判定する。また例えば、判定部302は、状況データDT4が示すアウトカウントが2アウトであるか否かを判定する。また例えば、判定部302は、状況データDT4が示す各塁の状況が満塁を示しているか否かを判定する。
判定部302は、各条件が満たされた場合の状況データDT4をデータベース記憶部300に記録する。判定部302は、条件が満たされるたびに、その時点での状況データDT4をデータベース記憶部300に記録することになる。複数の条件の判定順序は、予め定めておけばよい。例えば、満たされにくい条件から順番に判定されるようにしてもよいし、満たしやすい条件から順番に判定されるようにしてもよい。なお、複数の条件の判定順序を特に定めておかず、何れかの条件が満たされた場合に、判定部302は、その時点での状況データDT4をデータベース記憶部300に記録し、残りの条件の判定をしてもよい。
再実行部303は、ゲーム状況が複数の条件の一部を満たしたが、複数の条件は満たさなかった場合に、更新部301によるシミュレーション処理を、一部の条件を満たしたゲーム状況から再度実行させる。複数の条件は満たさなかった場合とは、複数の条件のうち満たされなかった条件が存在する場合、又は、所定個数以上の条件を満たす状態にはならなかった場合である。
一部の条件を満たしたゲーム状況とは、シミュレーション処理中に一部の条件を満たしたと判定された場合の状況である。ここでは、各条件が満たされるたびに判定部302が状況データDT4をデータベース記憶部300に記録するので、再実行部303は、当該記録された状況データDT4から更新部301にシミュレーションを再度実行させることになる。更新部301が実行するシミュレーション処理自体は、実施形態と同じである。
変形例(1)によれば、ゲーム状況が所定条件を満たさない場合に、1からシミュレーション処理をやり直すのではなく、一部の条件が満たされた状態からシミュレーション処理を再度実行することで、シミュレーション処理を効率化し、ゲームシステムSの負荷を軽減することができる。また、シミュレーション処理を効率化することで、状況データDT4を迅速に生成することができるので、ゲームシステムSの処理速度を向上させることもできる。
(2)また例えば、シミュレーション処理によっては、所定条件を満たさなくても、あと少しで所定条件を満たしそうになることがある。このため、所定条件が満たされなかった場合にシミュレーションの開始時点に戻るのではなく、あと少しで所定条件を満たしそうになったゲーム状況を記録しておき、当該ゲーム状況からシミュレーション処理を再開してもよい。
再実行部303は、ゲーム状況が、所定条件に対応する基準条件は満たしたが、所定条件は満たさなかった場合に、更新手段によるシミュレーション処理を、基準条件を満たしたゲーム状況から再度実行させる。
基準条件は、例えば、状況データDT4により判定されるという点では所定条件と同じであり、判定項目の数は、所定条件と同じであってもよいし、少なくてもよい。例えば、基準条件は、所定条件よりも甘い条件であり、所定条件よりも満たしやすい条件である。また例えば、基準条件は、所定条件を満たすための前提となる条件である。例えば、所定条件が、あるパラメータが第1閾値以上になるという条件であれば、基準条件は、第1閾値よりも低い第2閾値以上になるという条件である。例えば、所定条件が「5点差以上になる」という条件であれば、基準条件は「3点差以上になる」という条件であってもよい。また例えば、所定条件が、あるパラメータが第3閾値未満になるという条件であれば、基準条件は、第3閾値よりも高い第4閾値未満になるという条件である。例えば、所定条件が「2点差以内になる」という条件であれば、基準条件は「3点差以内になる」という条件であってもよい。
再実行部303は、状況データDT4に基づいて、ゲーム状況が基準条件を満たすか否かを判定する。再実行部303は、基準条件が満たされた場合の状況データDT4をデータベース記憶部300に記録する。再実行部303は、当該記録された状況データDT4から更新部301にシミュレーションを再度実行させることになる。更新部301が実行するシミュレーション処理自体は、実施形態と同じである。
変形例(2)によれば、ゲーム状況が所定条件を満たさない場合に、1からシミュレーションをやり直すのではなく、所定条件を満たす確率が高い状況からシミュレーション処理をやり直すことで、シミュレーション処理を効率化し、ゲームシステムSの負荷を軽減することができる。また、シミュレーション処理を効率化することで、状況データDT4を迅速に生成することができるので、ゲームシステムSの処理速度を向上させることもできる。
(3)また例えば、ゲームキャラクタの調子の良し悪しを示す調子情報が存在する場合に、シミュレーション処理の実行結果に応じて調子情報が変化してもよい。図12は、変形例(3)の機能ブロック図である。図12に示すように、変形例(3)のゲームシステムSでは、サーバ30において調子情報決定部304が実現される。調子情報決定部304は、制御部31を主として実現される。
調子情報決定部304は、ゲーム状況が所定条件を満たすまでのゲームキャラクタの動作に基づいて、ゲームキャラクタの調子情報を決定する。調子情報は、例えば、ゲームキャラクタの調子の良し悪しを示す情報である。調子情報は、調子の良し悪しを示す数値であってもよいし、複数段階の何れの調子に属するかを示す文字であってもよい。調子情報は、例えば、状況データDT4に格納されているようにしてもよい。
例えば、ゲーム状況と調子情報との関係を示すデータがデータベース記憶部300に記憶されていてもよい。このデータは、数式形式又はテーブル形式であってもよいし、プログラムコードの一部として記述されていてもよい。調子情報決定部304は、シミュレーション中のゲーム状況に関連付けられた調子情報となるように、各ゲームキャラクタの調子情報を決定する。例えば、シミュレーション中のゲームにおいて、ゲームキャラクタが第1の動作(例えば、三振やエラーなど)をした場合に、調子情報決定部304は、当該ゲームキャラクタの調子情報を悪くする。また例えば、シミュレーション中のゲームにおいて、ゲームキャラクタが第2の動作(例えば、本塁打やファインプレーなど)をした場合に、調子情報決定部304は、当該ゲームキャラクタの調子情報を良くする。
ゲーム実行部104は、調子情報に基づいて、ゲームキャラクタの性能を変化させる。性能とは、ゲームキャラクタの能力であり、ゲームキャラクタの動作結果に影響するパラメータである。例えば、能力パラメータが上がるほど、ゲームキャラクタの動作が成功する確率が高くり、能力パラメータが下がるほど、ゲームキャラクタの動作が失敗する確率が高くなる。また例えば、能力パラメータが上がるほど、ゲームキャラクタの動作の精度又は強度が高くなり、能力パラメータが下がるほど、ゲームキャラクタの動作の精度又は強度が低くなる。
例えば、調子情報と能力パラメータとの関係を示すデータがデータベース記憶部300に記憶されていてもよい。このデータは、数式形式又はテーブル形式であってもよいし、プログラムコードの一部として記述されていてもよい。ゲーム実行部104は、ゲームキャラクタの調子情報に関連付けられた能力パラメータとなるように、当該ゲームキャラクタの能力パラメータを変化させる。例えば、ゲーム実行部104は、調子情報が示す調子が良いほど能力パラメータを上げ、調子情報が示す調子が悪いほど能力パラメータを下げる。
変形例(3)によれば、シミュレーション処理の実行結果をゲームキャラクタの調子に影響させることで、シミュレーション結果に応じてゲームに変化を与えることができるので、ゲームの興趣性を高めることができる。
なお、変形例(3)では、実施形態で説明したようなシミュレーション処理を繰り返し実行する構成は必須ではない。例えば、更新部301は、シミュレーション処理を繰り返さなくてもよい。即ち、変形例(3)のゲームシステムSは、特に繰り返すことなく、シミュレーション処理を実行し、シミュレーション処理の実行結果に基づいて、ゲームキャラクタの調子情報を変化させる構成だけを有していてもよい。
(4)また例えば、上記変形例の2つ以上を組み合わせてもよい。
また例えば、実施形態では、ゲーム状況が所定条件を満たし得なくなった場合に、シミュレーション処理が再度実行されたが、シミュレーション処理を再度実行するための判断基準は、これに限られず、所定条件を満たす確率が低くなった場合にシミュレーション処理が再度実行されてもよいし、ランダムに定まるタイミングでシミュレーション処理が再度実行されてもよい。また例えば、所定条件を満たすゲーム状況になるまでの経緯は、特に表示させなくてもよい。また例えば、シミュレーション処理は、共通データDT2ではなく、ユーザデータDT1に基づいて実行されてもよい。また例えば、シミュレーション処理において、設定情報を特に参照しなくてもよい。また例えば、シミュレーション処理は、ゲームの開始直後に実行されてもよい。
また例えば、ゲーム端末10とサーバ30において、各機能が分担されてもよい。この場合、各機能ブロックの処理結果が、ゲーム端末10とサーバ30との間で送受信されるようにすればよい。
例えば、ゲーム端末10において実現されるものとして説明した各機能は、サーバ30において実現されてもよい。例えば、サーバ30によって、状況データ取得部101、経緯データ取得部102、提示部103、及びゲーム実行部104が実現されてもよい。この場合、これら各機能は、制御部31を主として実現される。例えば、状況データ取得部101がサーバ30で実現される場合、サーバ30の状況データ取得部101は、データベース記憶部300から状況データDT4を取得する。また例えば、経緯データ取得部102がサーバ30で実現される場合、サーバ30の経緯データ取得部102は、データベース記憶部300から経緯データDT5を取得する。また例えば、提示部103がサーバ30で実現される場合、サーバ30の提示部103は、ゲーム端末10に対し、経緯データDT5が示す経緯の表示データ又は音声データを送信する。また例えば、ゲーム実行部104がサーバ30で実現される場合、サーバ30のゲーム実行部104は、ゲーム端末10からユーザの操作内容を示すデータを受信し、ゲームを実行する。
また例えば、サーバ30において実現されるものとして説明した各機能は、ゲーム端末10において実現されてもよい。例えば、ゲーム端末10によって、更新部301、判定部302、再実行部303、及び調子情報決定部304が実現されてもよい。この場合、これら各機能は、制御部11を主として実現される。例えば、更新部301がゲーム端末10で実現される場合、ゲーム端末10の更新部301は、シミュレーション処理を実行してデータ記憶部100の状況データDT4を更新する。なお、この場合、シミュレーションのアルゴリズムは、データ記憶部100に記憶されているものとする。また例えば、判定部302がゲーム端末10で実現される場合、ゲーム端末10の判定部302は、データ記憶部100に記憶された状況データDT4に基づいて判定処理を実行する。また例えば、再実行部303がゲーム端末10で実現される場合、ゲーム端末10の再実行部303は、判定部302の判定結果に基づいて更新部301にシミュレーション処理を再度実行させる。また例えば、調子情報決定部304がゲーム端末10で実現される場合、ゲーム端末10の調子情報決定部304は、更新部301のシミュレーション処理の実行結果に基づいて、調子情報を決定する。
また例えば、ゲームシステムSでは、更新部301、判定部302、再実行部303、状況データ取得部101、及びゲーム実行部104以外の機能は省略してもよい。この場合、データベース記憶部300は、ゲームシステムS外にあるデータベースサーバによって実現されるようにしてもよい。
また例えば、野球ゲームが実行される場合を説明したが、他のゲームに本発明に係る処理を適用してもよい。例えば、野球ゲーム以外のスポーツゲーム(例えば、サッカー、テニス、アメリカンフットボール、バスケットボール、バレーボール等を題材としたゲーム)に本発明に係る処理を適用してもよい。また例えば、スポーツゲーム以外にも、アクションゲームやロールプレイングゲーム等のように、ゲーム形式・ジャンルを問わず種々のゲームに本発明に係る処理を適用してもよい。
[6.付記]
以上のような記載から、本発明は例えば以下のように把握される。
1)本発明の一態様に係るゲームシステム(S)は、シミュレーション処理を実行することによって、ゲーム状況を更新する更新手段(301)と、前記ゲーム状況が所定条件を満たすか否かを判定する判定手段(302)と、前記ゲーム状況が前記所定条件を満たさなかった場合に、前記更新手段(301)によるシミュレーション処理を最初又は途中から再度実行させる再実行手段(303)と、前記ゲーム状況が前記所定条件を満たした場合に、当該ゲーム状況を示す状況データを取得する状況データ取得手段(101)と、前記状況データが示すゲーム状況から、ゲームをプレイ可能にするゲーム実行手段(104)と、を含む。
10)本発明の一態様に係るプログラムは、1)〜9)の何れかに記載のゲームシステム(S)としてコンピュータを機能させる。
11)本発明の一態様に係る情報記憶媒体は、10)のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
1)、10)、又は11)に係る発明によれば、シミュレーション処理を実行することによってゲーム状況を更新し、当該ゲーム状況が所定条件を満たすまでシミュレーション処理が実行され、ユーザが繰り返しゲームをプレイしたとしても、毎回全く同じ状況からプレイするのではなく、微妙に違う状況(細部が異なる状況)を作り出すことができるので、ユーザがゲームに飽きにくくなる。
2)本発明の一態様では、前記再実行手段(303)は、前記ゲーム状況が前記所定条件を満たし得なくなった場合に、前記更新手段(301)によるシミュレーション処理を最初又は途中から再度実行させる。2)の態様によれば、ゲーム状況が所定条件を満たし得なくなった場合に、シミュレーション処理を再度実行することで、不必要なシミュレーション処理を防止できるので、ゲームシステムの負荷を軽減することができる。また、不必要なシミュレーション処理を防止することで、状況データを迅速に生成することができるので、ゲームシステムの処理速度を向上させることもできる。
3)本発明の一態様では、前記判定手段(302)は、前記ゲーム状況が複数の条件を満たすか否かを判定することによって、前記ゲーム状況が前記所定条件を満たすか否かを判定し、前記再実行手段(303)は、前記ゲーム状況が前記複数の条件の一部を満たしたが、前記複数の条件は満たさなかった場合に、前記更新手段(301)によるシミュレーション処理を、前記一部の条件を満たしたゲーム状況から再度実行させる。3)の態様によれば、ゲーム状況が所定条件を満たさない場合に、1からシミュレーション処理をやり直すのではなく、一部の条件が満たされた状態からシミュレーション処理を再度実行することで、シミュレーション処理を効率化し、ゲームシステムの負荷を軽減することができる。また、シミュレーション処理を効率化することで、状況データを迅速に生成することができるので、ゲームシステムの処理速度を向上させることもできる。
4)本発明の一態様では、前記再実行手段(303)は、前記ゲーム状況が、前記所定条件に対応する基準条件は満たしたが、前記所定条件は満たさなかった場合に、前記更新手段(301)によるシミュレーション処理を、前記基準条件を満たしたゲーム状況から再度実行させる。4)の態様によれば、ゲーム状況が所定条件を満たさない場合に、1からシミュレーションをやり直すのではなく、所定条件を満たす確率が高い状況からシミュレーション処理をやり直すことで、シミュレーション処理を効率化し、ゲームシステムの負荷を軽減することができる。また、シミュレーション処理を効率化することで、状況データを迅速に生成することができるので、ゲームシステムの処理速度を向上させることもできる。
5)本発明の一態様では、前記ゲームシステム(S)は、前記状況データが示すゲーム状況になるまでの経緯を示す経緯データを取得する経緯データ取得手段(102)と、前記経緯データが示す経緯を前記ユーザに提示する提示手段(103)と、を更に含み、前記ゲーム実行手段(104)は、前記提示手段(103)による経緯の提示がなされた後に、前記状況データが示すゲーム状況から、前記ゲームをプレイ可能にする。5)の態様によれば、ゲーム状況が所定条件を満たすまでの経緯をユーザに理解させたうえで、状況データが示す状況からゲームをプレイさせることができる。なぜその状況になったのかを理解することができずにユーザが戸惑ってしまうことを防止することができる。
6)本発明の一態様では、前記ゲーム実行手段(104)は、前記ユーザのユーザ識別情報と関連付けられたユーザデータに基づいて、前記ゲームを実行し、前記更新手段(301)は、前記ユーザデータの代わりに、前記ユーザデータとは異なる共通データに基づいて、前記シミュレーション処理を実行する。6)の態様によれば、共通データに基づいてシミュレーション処理を実行することで、シミュレーション処理のたびに、ユーザごとに異なるユーザデータを取得する手間を省くことができ、ゲームシステムの負荷を軽減することができる。また、ユーザデータを取得する手間を省くことで、状況データを迅速に生成することができるので、ゲームシステムの処理速度を向上させることもできる。
7)本発明の一態様では、前記ゲーム実行手段(104)は、前記ユーザデータに設定された設定情報に基づいて、前記ゲームを実行し、前記更新手段(301)は、前記ユーザデータに設定された前記設定情報を前記共通データに設定し、前記シミュレーション処理を実行する。7)の態様によれば、ユーザデータの設定情報が共通データに設定されたうえでシミュレーション処理が実行され、ユーザの設定がシミュレーション処理に反映されるので、ユーザが自分でプレイしたときのゲームの結果と、シミュレーション処理の結果と、を似せることができ、シミュレーション処理の精度を高めることができる。
8)本発明の一態様では、前記ゲームシステム(S)は、前記ゲーム状況が前記所定条件を満たすまでのゲームオブジェクトの動作に基づいて、前記ゲームオブジェクトの調子情報を決定する調子情報決定手段(304)を含み、前記ゲーム実行手段(104)は、前記調子情報に基づいて、前記ゲームオブジェクトの性能を変化させる。8)の態様によれば、シミュレーション処理の実行結果をゲームオブジェクトの調子に影響させることで、シミュレーション結果に応じてゲームに変化を与えることができるので、ゲームの興趣性を高めることができる。
9)本発明の一態様では、前記ゲーム実行手段(104)は、前記シミュレーション処理が実行される前に、前記ゲームをプレイ可能にし、前記更新手段(301)は、前記ゲーム状況が所定の中断条件を満たした場合に、前記中断条件を満たしたゲーム状況から前記シミュレーション処理を実行する。9)の態様によれば、ユーザにある程度ゲームをプレイさせ、ユーザのプレイを中断した場合のゲームの状況からシミュレーション処理を実行することで、ユーザがゲームをプレイするたびに、シミュレーション処理の開始時点の状況を異ならせることができるので、微妙に違う状況(細部が異なる状況)を作り出しやすくなる。