【実施例1】
【0022】
まず実施例1について説明する。
図1は、本発明の一実施形態に係るシステム100を示す図である。システム100は、サーバ10と、サーバ10と基地局40とを有線回線で接続するネットワーク60と、基地局40で代表される第1基地局40a〜第3基地局40cと、モバイル端末50で代表される第1モバイル端末50a〜第3モバイル端末50cと、PC端末70とを含む。また、モバイル端末50として、例えばフィーチャーフォン、スマートフォン、タブレット端末などが含まれる。
【0023】
このシステム100では、サーバ10から所定のサービスを、ネットワーク60介してPC端末70へ、あるいはネットワーク60および基地局40を介してモバイル端末50へ提供する。このサービスは、たとえば、SNS(Social Networking Service)上で提供されるゲームサービスや、アプリ提供プラットフォームから端末にダウンロードされたゲームアプリケーションを利用するサービスを含む。アプリ提供プラットフォームは、サーバ10と一体でもよいし、別途設けてもよい。
【0024】
なお、
図1では、図示の都合上、基地局40、モバイル端末50は共に3台のみ図示したが、これにかぎらず、それ以上の基地局40、モバイル端末50が存在してもよい。PC端末70についても同様である。また、第1モバイル端末50a〜第3モバイル端末50cは、それぞれ異なる基地局40と接続されるとして図示しているが、これにかぎらず、1つの基地局40に複数のモバイル端末50が接続されていても、本発明が適用可能であることは言うまでもない。また、基地局40は無線LANなどのアクセスポイントであってもよい。以下、モバイル端末50およびPC端末70をユーザ端末と総称する。
【0025】
本実施形態では、システム100は、サーバ10からネットワーク60を介して接続されるユーザ端末に対し、ゲーム空間上で各端末のプレイヤが操作するキャラクタ同士をリアルタイムに対戦させる同期対戦型のアクションゲームを提供する。同期対戦型のアクションゲームのジャンルとしては、たとえばバトルアクションゲーム、対戦型シューティングゲーム、および対戦型格闘ゲームなどがあり、広義にはスポーツゲームやレースゲームなども含むことができる。
【0026】
ここでは、具体例として、
図2に示すような対戦型のバトルゲームを用いて、以下の説明を行う。
図2は、
図1のモバイル端末に表示されるゲーム画面表示例を示す図である。このモバイル端末50の画面表示例は、プレイエリア501と、情報表示エリア502とを含む。プレイエリア501は、ユーザが実際にゲームをプレイするエリアであり、プレイヤが操作するキャラクタ(以下、自キャラクタと称す)と、他のプレイヤが操作するキャラクタ(以下、攻撃対象キャラクタと称す)が表示される。情報表示エリア502には、自キャラクタの体力値を示すヒットポイント(HP)などが表示される。3以上のプレイヤで同時に対戦する場合には、複数の攻撃対象キャラクタが表示される。ユーザは画面内の自キャラクタを指でフリックするなどして攻撃対象キャラクタに体当たり(タックル)させ、その攻撃結果に応じてキャラクタが保持するヒットポイントを互いに削り合い、ヒットポイントがゼロになったとき、または一定時間経過後の残りポイントによって勝敗が決まるというものである。
【0027】
なお、本実施例で説明するゲームにおいて、ユーザは、ゲームに参加する際に手持ちのポイントから、賭ける(BETする)ポイント数を指定してもよい。ゲームにおいては、BETしたポイント数が保有ポイントもしくはHPとなり、相手ユーザに攻撃をすることで、相手ユーザが保有しているポイント数を減らすことができる。また、ゲームは、所定時間終了後における保有ポイント数(HP)の大きさによって順位が決定される。すなわち、最初にBETしたポイント数が多いほど、最終的な順位を高くできる可能性が多くなる。また、ゲーム終了後においては、順位が高いほど、また、最初にBETしたポイント数が高いほど、より多い報酬がユーザに付与されることとなる。
【0028】
図3は、
図1のサーバ10の構成例を示す図である。このサーバ10は、サーバ通信部12、ユーザ情報管理部14、ゲーム制御部15、同期制御部16、およびサーバメモリ18を含む。
【0029】
サーバ通信部12は、ネットワーク60を介してユーザ端末とデータの送受信を行う通信インタフェースであり、ユーザ端末からの信号を受信し、所定の復調処理を実施して、ユーザ情報管理部14、ゲーム制御部15、あるいは同期制御部16などに復調された信号を送る。
【0030】
また、サーバ通信部12は、ユーザ情報管理部14、ゲーム制御部15、あるいは同期制御部16などからの指示を受けて、所定のデータを変調処理し、ユーザ端末に対して送信する。所定のデータとは、たとえば、ゲームの進行に関する情報などを含む。
【0031】
なお、サーバ通信部12における変復調処理は、従来用いられている変復調技術が用いられてよく、このような態様であったとしても、本発明を適用することができることは当業者に理解されるところである。
【0032】
ユーザ情報管理部14は、システム100に登録されたユーザに関する情報をサーバメモリ18にて管理する。また、これらのユーザの情報は、ゲーム制御部15などにおいて参照される。システム100に登録されたユーザの情報をサーバメモリ18にて管理する。ユーザの情報は、例えばユーザ識別情報、ユーザ名、レベル、保有メダル数、属性、アバター画像情報、及びユーザが入力したコメントを含む。ユーザ情報管理部14は、これらのユーザの情報を、ユーザ端末からの要求に応じてユーザ端末に送信する。また、ユーザ識別情報は、ユーザを識別するためのユニークコードである。また、レベルは、ゲームに参加した回数や得られた経験ポイントに基づき順次増加するユーザのレベルである。また、保有メダル数は、各ユーザが保有しているメダル数を示す。また、属性は、ユーザ毎に決定されるものであって、対戦相手に対する攻撃判定の有利・不利を決定するために用いられてもよい。
【0033】
サーバメモリ18は、上記のユーザの情報のほか、ゲームに関する各種情報を記憶する。ゲームに関する情報は、ユーザごとの実施ゲームの識別情報、実施日時、実施回数、進行状況、及びゲームにおいて取得したアイテムの識別情報、などを含む。これらの情報は、ユーザ情報と同様に、ユーザ端末からの要求に応じてユーザ端末に送信される。
【0034】
ゲーム制御部15は、サーバ通信部12を介してユーザ端末からゲームの開始要求を受け付けてゲームを開始し、対戦する各プレイヤのゲームの進行を管理する。また、ゲーム制御部15は、ゲームの進行に際して、サーバメモリ18に記憶されたユーザ情報にアクセスし、所定の処理を実行する。
【0035】
同期制御部16は、ゲームに参加する複数のユーザ端末の状態をネットワーク60を介して同期させることで、リアルタイム対戦を実現する。ユーザ端末から送られてくるキャラクタの移動情報を、ゲームに参加している他のプレイヤの端末へ周期的に送信する。また、ユーザ端末から送られてくる攻撃結果を示す当たり判定情報を直列化し、その結果に従って攻撃した側の端末及び攻撃された側の端末へ当たり確定情報を略同時に送信する。
【0036】
ここで、当たり判定情報には、プレイヤの識別情報と、攻撃対象のキャラクタにかかる端末の同期ゲームへの接続を識別する識別情報とが含まれる。また、直列化とは、同時期に受信した複数の当り判定情報のうち、互いを攻撃しあう当り判定情報が存在する場合に、いずれの判定情報を有効とするかを決定して、1の攻撃した側と1以上の攻撃された側の端末を特定する処理である。たとえば、A〜Dのキャラクタが存在する場合に、AからCに対する当たり判定情報と、CからAに対する当たり判定情報を同時期に受信した場合には、一方を攻撃した側、他方を攻撃された側として特定し、それを「当たり確定情報」として、AとCの端末に略同時に送信する。この同期制御部16の処理の詳細については後述する。
【0037】
図4は、ユーザ端末の構成例を示す図である。ここでは、説明の都合上、モバイル端末50の構成として説明するが、PC端末70においても同様の構成となる。モバイル端末50は、端末通信部52、端末制御部54、ユーザインタフェース56、および端末メモリ58を備える。
【0038】
端末通信部52は、サーバ10からダウンロードしたアプリケーションプログラムや、サーバ10から送信される各種情報を受信する。また、ユーザインタフェース56で受け付けたユーザの入力操作などに応じて各種情報をサーバ10へ送信する。
【0039】
端末制御部54は、ユーザインタフェース56からユーザの指示を受け付けて、端末メモリ58にアクセスしながら、アプリケーションのインストール制御や、アプリケーションの実行制御などを行う。端末制御部54は、ゲーム処理部541を有し、ゲーム処理部541においてゲームの実行制御や表示処理が行われる。
【0040】
ユーザインタフェース56は、ユーザへのメッセージ、バトル画面等の各種画面を表示するための画面インタフェースと、音声等を出力するスピーカと、キーボードやタッチパネルなどのユーザからの入力を受け付ける入力インタフェースを含む。ユーザインタフェース56は、ユーザからの各種のアクションボタン操作やフリック操作等を受け付けて、端末制御部54に伝える。
【0041】
端末メモリ58は、ゲームアプリケーションをインストールする際に、アプリ提供プラットフォームからダウンロードされたアプリケーションプログラムを格納することに用いられる。また、端末通信部52で受信されるサーバ10からの各種情報や、ゲーム上で使用されるユーザ情報や自キャラクタが保持するヒットポイントなどが記憶される。
【0042】
たとえば、ユーザによるユーザインタフェース56の操作を受けて、端末制御部54がゲームアプリケーションを起動すると、ネットワーク60を介してサーバ10と通信を行いながら、ゲーム処理部541によりゲームが進行する。ゲーム処理部541は、ゲーム実行中にユーザインタフェース56を介してユーザからの入力操作を受け付けると、その操作情報に応じて画面内の自キャラクタを動作させる。
【0043】
例えば、ゲーム処理部541は、ユーザインタフェース56から移動操作の入力を受け付けた場合は、操作情報に基づいて画面内の自キャラクタを移動させる。自キャラクタのゲーム空間上の移動情報は所定のタイミングでサーバ10へ送信され、サーバ10からゲーム参加中の各端末へ周期的に送信される。また、サーバ10から送信される各端末のキャラクタの移動情報を端末通信部52で受信し、この移動情報に基づいて画面内の各端末のキャラクタを移動させる。
【0044】
また、ゲーム処理部541は、ユーザインタフェース56から攻撃操作の入力を受け付けた場合は、操作情報に基づいて画面内の自キャラクタを攻撃対象キャラクタへタックルさせる。このとき、攻撃操作が実行された直後に、自キャラクタおよび/または攻撃対象キャラクタの移動操作が行われると、ネットワークの遅延等により攻撃結果の表示が移動後のキャラクタに適用されることで不自然に映る場合がある。そこで、本実施形態では、通信条件などの影響を抑え、より自然なゲーム表示を可能にするために、キャラクタ同士を衝突させる処理の前段階として、以下の処理を行うようにする。
【0045】
ゲーム処理部541は、プレイヤの攻撃操作に応じて自キャラクタから攻撃対象キャラクタへ仮想オブジェクトを投射し、仮想オブジェクトが前記攻撃対象キャラクタに命中したことが示された当たり判定情報をサーバ10に送信する。
【0046】
ゲーム処理部541は、攻撃した側の端末において
、攻撃された側の端末のキャラクタの移動情報に基づいて前記仮想オブジェクトを当該キャラクタに追従させ、前記サーバ装置から受信した当たり判定情報に基づいて前記自キャラクタを当該キャラクタへ衝突させる動作態様をユーザインタフェース56に表示する。また、ゲーム処理部541は、攻撃された側の端末において、移動先が確定した攻撃対象キャラクタに対し、前記自キャラクタを衝突させる動作態様をユーザインタフェース56に表示する。また、ゲーム処理部541は、前記自キャラクタが移動後の地点から前記攻撃対象キャラクタに向けて移動させる動作態様を表示する。なお、ゲーム処理部541は、攻撃操作が行われた端末以外の端末においては、自らが投射した仮想オブジェクト以外の仮想オブジェクトを非表示とする。また、各端末において仮想オブジェクトの表示/非表示の選択をオプションとして設定できるようにしてもよい。
【0047】
ここで、
図5および
図6Aないし
図6Fを用いて、システム100の動作を説明する。
図5は、システム100の処理手順を示すシーケンス図である。ここでは、第1モバイル端末50a(
図5の端末A)のプレイヤと、第2モバイル端末50b(
図5の端末B)のプレイヤとが対戦する場合を例にとって説明する。
図6A乃至
図6Fは、端末Aの画面表示例を示したものである。なお、ここでは説明を簡単にするために、2プレイヤによる対戦で説明を行うが、3以上のプレイヤで同時に対戦することももちろん可能である。
【0048】
図6Aに示すように、端末Aの画面には、自キャラクタ601と端末Bのプレイヤが操作するキャラクタ(攻撃対象キャラクタ)602とが表示されているものとする。このようなゲーム実行状態において、上記
図2に示したように、端末Aのプレイヤが自キャラクタ601から攻撃対象キャラクタ602への攻撃操作を行うと(ステップS10)、端末Aのゲーム処理部541は、
図6B、
図6Cに示すように、画面内の自キャラクタ601から攻撃対象キャラクタ602へ向けて仮想オブジェクト603を投射する(ステップS11)。なお、仮想オブジェクト603は、自キャラクタが攻撃動作を行った攻撃対象キャラクタを追尾するための表示であり、攻撃した側の端末Aの画面にのみ表示され、端末Bの画面には表示されないという性質を持つ。また、仮想オブジェクト603の形状などについては
図6B等に示したものに限定されるものではなく、任意に変更できる。
【0049】
端末Aのゲーム処理部541は、仮想オブジェクト603が攻撃対象キャラクタ602へ命中(ヒット)したか否か当たり判定を行う(ステップS12)。この当たり判定でヒットしたと判定した場合は、当たり判定情報をサーバ10へ送信する。当たり判定情報には、たとえば、攻撃した側のキャラクタ、攻撃された側のキャラクタ、および攻撃により与えたダメージ量を示す情報が含まれる。攻撃した側のキャラクタおよび攻撃された側のキャラクタを示す情報は、それぞれのキャラクタにかかる端末の同期ゲームへの接続を識別する情報を用いることができる。ダメージ量は、自キャラクタのレベル、攻撃対象キャラクタのレベル、および通常のヒットであるかクリティカルヒット(致命的な一撃)であるか等によって変化させることができる。
【0050】
サーバ10の同期制御部16は、端末Aからの当たり判定情報を受信し、直列化処理を行う(ステップS13)。直列化処理とは、たとえば、各端末から受信した当たり判定情報の先後関係を設定し、時系列に順序付けすることを意味する。もし、端末Aと端末Bとの双方から同時に当たり判定情報を受信した場合は、双方の当たり判定情報を有効にして、その先後を決定するようにしてもよいし、一方の当たり判定情報を有効にし、他方の当たり判定情報を無効にしてもよい。その際には、自キャラクタおよび攻撃対象キャラクタのレベルやダメージ量などに基づいて決定することができる。
【0051】
その後、端末Bのプレイヤにより攻撃対象キャラクタ602に対する移動操作が行われると(ステップS14)、端末Bは所定のタイミングで移動情報をサーバ10へ送信する。サーバ10は、各端末から受信した移動情報をこの対戦に参加する端末へ周期的に送信する。端末Aは、サーバ10から受信した移動情報に基づいて画面内の攻撃対象キャラクタ602を移動させると共に、仮想オブジェクト603を攻撃対象キャラクタ602に追従させる(ステップS15)。この様子を
図6Dに示す。
【0052】
サーバ10は、ステップS13の直列化処理の結果に従って、攻撃した側の端末Aと攻撃された側の端末Bとに当たり確定情報を略同時に送信する(ステップS16)。端末Aは、サーバ10から受信した当たり確定情報に基づいて、
図6Eに示すように、自キャラクタ601を、仮想オブジェクト603が投射された攻撃対象キャラクタ602に向かって移動させ、衝突表示させる(ステップS17)。衝突後は、
図6Fに示すように、攻撃対象キャラクタ602が衝突により吹き飛ばされるように移動する態様を表示する。端末Bにおいても、端末Aと同様に、ステップS16で受信した当たり確定情報に基づいて、攻撃キャラクタ601を自キャラクタ602へ移動させ、衝突表示させる(ステップS18)。
【0053】
したがって、本実施形態によれば、ネットワークを介した対戦型ゲームにおいて、通信条件などの影響を抑え、より自然なゲーム表示が実現できる。たとえば、攻撃直後に攻撃対象キャラクタの移動操作が行われた場合に、従来のように攻撃操作に応じて攻撃キャラクタ自体を攻撃対象キャラクタに衝突表示させると、移動後のキャラクタに攻撃結果の表示が突然現れて不自然な表示になるおそれがある。これに対し、本実施形態では、攻撃操作後に先ず仮想オブジェクトを攻撃対象キャラクタに投射し、仮想オブジェクトで当たり判定を行い、サーバで当たり判定情報を直列化した後に、その結果に従って攻撃した側と攻撃された側に当たり確定情報を略同時に送信する。そして、サーバから当たり確定情報を受信した時点で攻撃キャラクタを移動後の攻撃対象キャラクタに衝突表示させることで、攻撃対象キャラクタに衝突結果が表示されるまで仮想オブジェクトにより追尾されるため、従来のような表示の不自然さを解消することができる。
【0054】
以下に、本実施形態の変形例を説明する。
上記実施形態では、攻撃操作が行われた後に攻撃対象キャラクタのみに移動操作が行われる例を示したが、攻撃操作の後に攻撃キャラクタおよび攻撃対象キャラクタの双方に移動操作がなされる場合がある。そこで、変形例では、攻撃キャラクタが移動後の地点から攻撃対象キャラクタに対し移動させる動作を実施する。このようにすることで、攻撃動作と移動動作との連携をスムーズに表示できるようになる。
【0055】
以上、本発明を各実施形態をもとに説明した。本発明は上述した各実施形態並びに各実施例の内容に限定されるものではなく、本発明の要旨の範囲内において種々に変形して実施をすることが可能である。上記実施形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。