(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-13
(45)【発行日】2022-04-21
(54)【発明の名称】オンラインゲームの同期方法、オンラインゲームの同期システム、サーバ、クライアント端末、及びオンラインゲームの同期プログラム
(51)【国際特許分類】
H04L 67/131 20220101AFI20220414BHJP
A63F 13/35 20140101ALI20220414BHJP
A63F 13/45 20140101ALI20220414BHJP
H04L 67/5682 20220101ALI20220414BHJP
【FI】
H04L67/131
A63F13/35
A63F13/45
H04L67/5682
(21)【出願番号】P 2020193252
(22)【出願日】2020-11-20
(62)【分割の表示】P 2018242439の分割
【原出願日】2013-10-03
【審査請求日】2020-11-20
(31)【優先権主張番号】P 2012221566
(32)【優先日】2012-10-03
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】504437801
【氏名又は名称】グリー株式会社
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】ゴールド・ロバート・ジェイ
【審査官】佐々木 洋
(56)【参考文献】
【文献】特開2000-024315(JP,A)
【文献】特開2001-265704(JP,A)
【文献】米国特許出願公開第2009/0098940(US,A1)
【文献】特開2003-006127(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/131
A63F 13/35
A63F 13/45
H04L 67/5682
(57)【特許請求の範囲】
【請求項1】
ゲーム処理に関わる情報を、サーバを介して第1クライアント端末と第2クライアント端末との間で送受信することが可能なオンラインゲームの同期方法であって、
前記サーバが、
オフライン状態からオンライン状態となった前記第1クライアント端末から、前記オフライン状態の間にゲームを進行させることにより発生したイベントに関わる第1情報を受信する第1ステップと、
前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれる
か否かを判定し、同期がとれると判定した場合に、前記第1情報に対応する第2情報を前記第2クライアント端末に送信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれない
と判定した場合に、前記第2情報を前記第2クライアント端末に送信しない第2ステップと、を実行する、オンラインゲームの同期方法。
【請求項2】
前記第2ステップでは、前記サーバが、前記第1情報に対応するイベントの種類に基づき、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれるか否かを判定する
請求項1に記載のオンラインゲームの同期方法。
【請求項3】
前記サーバは、前記第
2ステップでは、前記第1情報が前記ゲーム内のパラメータの変化を前記イベントとして含む場合、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれると判定する
請求項2に記載のオンラインゲームの同期方法。
【請求項4】
前記サーバは、
前記第2クライアント端末が前記第2情報を前記ゲームに反映させた場合に、前記第2クライアント端末から反映したことを示す応答を受信する第
3ステップを実行する
請求項1又は2に記載のオンラインゲームの同期方法。
【請求項5】
前記サーバは、前記第1クライアント端末及び前記第2クライアント端末との間で通信を確立し、前記第1クライアント端末及び前記第2クライアント端末とリアルタイムで前記オンラインゲームのデータを共有する
請求項1~4のいずれか1項に記載のオンラインゲームの同期方法。
【請求項6】
サーバ、第1クライアント端末、及び第2クライアント端末を含むオンラインゲームの同期システムであって、
前記第1クライアント端末が、オフライン状態の間にゲームを進行させることにより発生したイベントに関わる第1情報を前記サーバに送信し、
前記サーバが、
オフライン状態からオンライン状態となった前記第1クライアント端末から、前記第1情報を受信し、
前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれる
か否かを判定し、同期がとれると判定した場合に、前記第1情報に対応する第2情報を前記第2クライアント端末に送信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれない
と判定した場合に、前記第2情報を前記第2クライアント端末に送信しない、オンラインゲームの同期システム。
【請求項7】
第1クライアント端末及び第2クライアント端末に接続可能なサーバであって、
オフライン状態からオンライン状態となった前記第1クライアント端末から、前記オフライン状態の間にゲームを進行させることにより発生したイベントに関わる第1情報を受信する第1手段と、
前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれる
か否かを判定し、同期がとれると判定した場合に、前記第1情報に対応する第2情報を前記第2クライアント端末に送信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれない
と判定した場合に、前記第2情報を前記第2クライアント端末に送信しない第2手段と、を備える、サーバ。
【請求項8】
第1クライアント端末及び第2クライアント端末に接続可能なサーバが実行するオンラインゲームの同期プログラムであって、
前記サーバに、
オフライン状態からオンライン状態となった前記第1クライアント端末から、前記オフライン状態の間にゲームを進行させることにより発生したイベントに関わる第1情報を受信する第1ステップと、
前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれる
か否かを判定し、同期がとれると判定した場合に、前記第1情報に対応する第2情報を前記第2クライアント端末に送信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれない
と判定した場合に、前記第2情報を前記第2クライアント端末に送信しない第2ステップと、を実行させる、オンラインゲームの同期プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の携帯端末間でオンラインゲームを行なうためのオンラインゲームの同期方法、オンラインゲームの同期システム、サーバ、クライアント端末、及びオンラインゲームの同期プログラムに関する。
【背景技術】
【0002】
近年、インターネットの普及により、ユーザが操作する携帯端末側のクライアント機と、ゲーム等を提供する側が用意するサーバ機とで、例えばゲーム情報やゲームの進行に関する情報、ユーザ情報など同一の情報を保管しておく必要が多く存在する。この種のサーバ機では、ゲームプログラムやゲーム管理上の上記した情報をデータベースを用いて一元的に管理する。
【0003】
しかるに、クライアント機とサーバ機とで上記した同一の情報を保管する場合、無線通信を行なうクライアント機の携帯端末が、通信環境の悪化等に伴ってオフライン状態となると、クライアント機とサーバ機とで保管する情報に差異が生じることになる。
【0004】
この種の事態に関して、従来では、複数のプレイヤ間でゲーム空間を割当てながらゲームを実行するようなゲームで、オフライン状態であってもクライアント機が自機に割り当てられたゲーム空間を単独で使用する間はゲームを続行でき、その後のオンライン復帰時にオフライン状態での内容を反映することが可能な技術が考えられている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の技術では、他のゲーム空間でゲームを実行する必要がある場合、すなわち他のプレイヤに割当てられたゲーム空間や共用のゲーム空間を使用する場合には、対処することが困難であり、一元的な管理を行なうサーバ機による煩雑な同期処理が必要となる。
【0007】
本発明の目的は、一元的な情報管理を行なう必要がなく、オンライン通信時の各機の処理負担を軽減すると共に、オフライン環境での処理を継続することにある。
【課題を解決するための手段】
【0008】
本発明の一態様は、ゲーム処理に関わる情報を、サーバを介して第1クライアント端末と第2クライアント端末との間で送受信することが可能なオンラインゲームの同期方法であって、前記サーバが、オフライン状態からオンライン状態となった前記第1クライアント端末から、前記オフライン状態の間にゲームを進行させることにより発生したイベントに関わる第1情報を受信する第1ステップと、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれる場合に、前記第1情報に対応する第2情報を前記第2クライアント端末に送信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれない場合に、前記第2情報を前記第2クライアント端末に送信しない第2ステップと、を実行する。
本発明の一態様は、サーバ、第1クライアント端末、及び第2クライアント端末を含む
オンラインゲームの同期システムであって、前記第1クライアント端末が、オフライン状態の間にゲームを進行させることにより発生したイベントに関わる第1情報を前記サーバに送信し、前記サーバが、オフライン状態からオンライン状態となった前記第1クライアント端末から、前記第1情報を受信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれる場合に、前記第1情報に対応する第2情報を前記第2クライアント端末に送信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれない場合に、前記第2情報を前記第2クライアント端末に送信しない。
本発明の一態様は、第1クライアント端末及び第2クライアント端末に接続可能なサーバであって、オフライン状態からオンライン状態となった前記第1クライアント端末から、前記オフライン状態の間にゲームを進行させることにより発生したイベントに関わる第1情報を受信する第1手段と、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれる場合に、前記第1情報に対応する第2情報を前記第2クライアント端末に送信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれない場合に、前記第2情報を前記第2クライアント端末に送信しない第2手段と、を備える。
本発明の一態様は、第1クライアント端末及び第2クライアント端末に接続可能なサーバが実行するオンラインゲームの同期プログラムであって、前記サーバに、オフライン状態からオンライン状態となった前記第1クライアント端末から、前記オフライン状態の間にゲームを進行させることにより発生したイベントに関わる第1情報を受信する第1ステップと、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれる場合に、前記第1情報に対応する第2情報を前記第2クライアント端末に送信し、前記第1情報に対応するイベントを成立させたとき前記第2クライアント端末との間で同期がとれない場合に、前記第2情報を前記第2クライアント端末に送信しない第2ステップと、を実行させる。
【発明の効果】
【0009】
本発明によれば、一元的な情報管理を行なう必要がなく、オンライン通信時の各機の処理負担を軽減すると共に、オフライン環境での処理を継続することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、本発明の一実施形態に係るオンラインゲームシステムが使用される環境の一例を説明する図である。
【
図2】
図2は、同実施形態に係るサーバとクライアント間の接続アーキテクチャの概念を示す図である。
【
図3】
図3は、同実施形態に係るサーバの構成の一例を示す図である。
【
図4】
図4は、同実施形態に係るクライアントの構成の一例を示す図である。
【
図5】
図5は、同実施形態に係るサーバ-クライアント間で送受されるイベント情報の内容を例示する図である。
【
図6】
図6は、同実施形態に係るオンライン状態でのイベント情報の表面的な処理経路を示す図である。
【
図7】
図7は、同実施形態に係るオンライン状態でのイベント情報の詳細な処理経路を示す図である。
【
図8】
図8は、同実施形態に係るオフライン状態でのゲームの同期の概念を示す図である。
【
図9】
図9は、同実施形態に係るオフライン状態からオンライン状態に復帰した後のイベント情報の詳細な処理経路を示す図である。
【
図10】
図10は、同実施形態におけるオンラインゲームを同期するための具体的なイベント情報の処理経路の一例を示す図である。
【
図11A】
図11Aは、同実施形態におけるゲームの進行に伴って携帯端末Aから携帯端末Bに送信されるイベント情報の具体例を示す図である。
【
図11B】
図11Bは、同実施形態におけるゲームの進行に伴って携帯端末Aから携帯端末Bに送信されるイベント情報の具体例を示す図である。
【
図12】
図12は、同実施形態におけるイベント情報の具体的な内容を示す図である。
【
図13】
図13は、同実施形態における携帯端末が一時的にオフライン状態となった状況のイベント情報の処理経路の一例を示す図である。
【
図14】
図14は、同実施形態における携帯端末がオンライン状態に復帰した状況のイベント情報の処理経路の一例を示す図である。
【
図15A】
図15Aは、同実施形態におけるゲームの進行に伴って携帯端末Aから携帯端末Bに送信されるイベント情報の具体例を示す図である。
【
図15B】
図15Bは、同実施形態におけるゲームの進行に伴って携帯端末Aから携帯端末Bに送信されるイベント情報の具体例を示す図である。
【
図16】
図16は、同実施形態における携帯端末において発生するイベント情報の一例を示す図である。
【
図17A】
図17Aは、同実施形態に係る対戦ゲームにおけるイベント情報の発生を例示する図である。
【
図17B】
図17Bは、同実施形態に係る対戦ゲームにおけるイベント情報の発生を例示する図である。
【
図18A】
図18Aは、同実施形態に係る対戦ゲームにおけるイベント情報の発生を例示する図である。
【
図18B】
図18Bは、同実施形態に係る対戦ゲームにおけるイベント情報の発生を例示する図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の一実施形態に係るオンラインゲームシステムについて説明する。
【0012】
図1は、同実施形態に係るオンラインゲームシステムが使用される環境の一例を説明する図である。
図1では、インターネットなどのネットワーク1に対して、ウェブサーバ装置2,3が接続されると共に、本システムでプレイヤが使用するクライアント装置となる携帯端末4,5が、アクセスポイント(AP)6あるいは基地局7を介して接続される。
【0013】
ウェブサーバ装置2,3は、本実施形態に係るオンラインゲームシステムを実現するためのコンピュータであり、オンラインゲームのサービスを提供するべくネットワーク1に対して並列に設置している。
【0014】
一方、クライアント側の携帯端末4,5は、スマートフォン、フィーチャー・フォン(feature phone)などにより実現される。携帯端末4,5は、例えば、Android(登録商標)、iOS(登録商標)などのOS上で動作する。さらに、携帯端末4,5は、ノートブック型のパーソナルコンピュータ、モバイルコンピュータ、タブレット型コンピュータなどであってもよい。携帯端末4,5は、予めオンラインゲームのためのゲームプログラムがインストールされる。
【0015】
図2は、本実施形態に係るサーバとクライアント間の接続アーキテクチャの概念を示す図である。
図2に示すように、A社が提供するオンラインのゲームプログラムまたはアプリケーションプログラムを実行するに当たり、携帯端末4,5には、例えばAIR(登録商標)などで記述された、当該ゲームまたはアプリプログラムのためのアプリケーション実行環境C1が実装されると共に、当該A社のデータベースに接続して課金処理等を行なうためのA社データベース接続キットC2が組込まれる。
【0016】
これと共に、携帯端末4,5には、ウェブサーバ装置2,3との通信を行なうために、A社が開発した(ソフトウェア)クライアントサイドのフレームワークC3がインストールされる。
【0017】
一方、A社が運営するウェブサーバ装置2,3では、オンラインゲーム及びアプリケーションを実行するための、例えばNode.js(登録商標)で記述されたサーバ側ジャバ・スクリプト(登録商標)(JS)実行環境S1が設けられると共に、直接携帯端末4,5とデータを送受信するために、上記フレームワークC3と対応するA社(ソフトウェア)サーバーサイドのフレームワークS2が設けられる。
【0018】
携帯端末4,5のフレームワークC3と、ウェブサーバ装置2,3のフレームワークS2との間では、HTML5(登録商標)で実装された規格である、ウェブソケット(Websocket)を基盤としてゲームのイベント情報が送受される。
【0019】
このウェブソケットでは、サーバとクライアントとの間で一度でも接続が確立すると、明示的に切断しない限り、通信手順を意識することなくソケット通信によりデータを送受信することができる。すなわち、ウェブソケットでは、サーバとクライアントとの間で接続(ハンドシェイク)が成功すると、データのリクエスト時とレスポンス時に接続手続きをすることなく、データのみの通信を継続して実行することができる。
【0020】
また、ウェブソケットで接続が確立しているサーバとすべてのクライアントは、同じデータを共有し、リアルタイムで送受信できる。
よって、上記ウェブソケットの規格を利用することで、Ajax(Asynchronous JavaScript(登録商標) +XML)やCometの通信におけるデメリット部分を補い、より効率的にサーバとクライアント間の双方向通信が実現できる。
【0021】
上記フレームワークC3,S2は、OSに依存しないスクリプト言語として、例えばジャバ・スクリプト(登録商標)を用いて記述されている。そのため、携帯端末4,5のOSがAndroid(登録商標)及びiOS(登録商標)などのいずれかであってもそれらに依存せずに同一接続環境を構築できる。
【0022】
図3は、本発明の実施の形態に係るオンラインゲームシステムにおけるウェブサーバ装置2の構成の一例を示す図である。なお、ウェブサーバ装置3は、ウェブサーバ装置2と同様の構成を有するものとして詳細な説明を省略する。また、
図3に示す構成は一例であって、他の構成を使用することも可能である。
【0023】
図3に示すように、ウェブサーバ装置2は、バス11を介して、CPU12、通信部13、メモリ14、及び記憶装置15が接続される。
【0024】
CPU12は、記憶装置15に記憶された本発明の実施の形態に係るゲームプログラム/アプリケーションプログラム22(以下、ゲームプログラム22と称する)と協働して、本発明の実施の形態に係るオンラインゲームのためのゲーム処理を行なう他、ウェブサーバ装置2,3全体の制御を司るものである。CPU12は、ゲームプログラム22を実行することによって、複数のプレイヤが同時に参加できるオンラインゲームを提供する。CPU12は、オンラインゲームに参加する携帯端末4,5から受信されるイベント情報(
図5に詳細を示す)を後述するキュー記憶部に記憶し、イベント情報に基づいてゲームを進行させる。また、CPU12は、キュー記憶部に記憶されたイベント情報を、オンラインゲームに参加する他の携帯端末に送信してオンラインゲームの同期を図る。
【0025】
CPU12は、ゲームプログラム22を実行することにより、オフライン状態から復帰した携帯端末と他の携帯端末において実行されるオンラインゲームの同期を図るために、キュー記憶部に記憶されたイベント情報と復帰した携帯端末からの受信されるイベント情報とを検証する機能を実現する(詳細は、
図7~
図9に示す)。また、CPU12は、ゲームプログラム22を実行することにより、オンラインゲームの同期を図るためにイベント情報を他の携帯端末に送信するか否かを、イベント情報の内容に基づいて判別する機能(詳細は、
図10~
図16に示す)を実現する。
【0026】
通信部13は、ネットワーク1を介したクライアント(携帯端末4,5)などの外部装置との通信の制御を司る。通信部13は、CPU12によりオンラインゲームのためのゲーム処理が実行される場合、ウェブソケットを利用して、イベント情報を含むゲームに関するデータを送受信する。
【0027】
メモリ14は、CPU12により実行される各種プログラムや、ゲームプログラム22を含む各種プログラムを実行する際に必要とされるワークエリアなどとして使用される。メモリ14は、ゲームプログラム22が実行される場合、クライアント(携帯端末4,5)から受信されるイベント情報を、例えば受信された順番に記憶するためのキュー記憶部として利用される。
【0028】
記憶装置15は、本実施の形態に係るオンラインゲームに必要とされる各種プログラムやデータを格納するためのものであり、例えば、HDD(Hard Disk Drine)、光ディスクドライブ、DVD(Digital Versatile Disc)、MO(Magnet Optical Disk)などの大容量記憶装置である。記憶装置15には、OS(Operating System)21、ゲームプログラム22、S1,S2(JS実行環境,フレームワーク)用プログラム23が格納される。また、記憶装置15は、キュー記憶部として使用することができる。
【0029】
OS21は、ウェブサーバ装置2,3の基本的な機能を実現するためのプログラムである。
ゲームプログラム22は、本発明の実施の形態に係るオンラインゲームにおけるサーバ側のゲーム処理を実現するためのプログラムである。なお、本実施の形態のオンラインゲームにおけるゲーム処理は、主に、サーバ側のゲームプログラム22によって行なわれ、表示処理は、クライアント側で行なわれる。なお、サーバ側で行なわれるゲーム処理の一部又は全てをクライアント側で行なってもよい。
S1,S2用プログラム23は、
図2に示すJS実行環境S1及びフレームワークS2を実現するためのプログラムである。
【0030】
図4は、本発明の実施の形態に係る携帯端末4の構成の一例を示す図である。なお、携帯端末5は、携帯端末4と同様の構成を有するものとして詳細な説明を省略する。また、携帯端末4,5は、
図4に示す構成以外の構成であっても良い。
【0031】
図4に示すように、バス31にはCPU32、無線通信部33、メモリ34、GPSモジュール35、カメラ36、記憶装置37、タッチパネルセンサ38、表示制御コントローラ39が接続されている。
【0032】
CPU32は、記憶装置37に記憶されたゲームプログラム/アプリケーションプログラム37-2(以下、ゲームプログラム37-2と称する)と協働して、本発明の実施の形態に係るオンラインゲームにおけるゲーム処理を行なう他、携帯端末4全体の制御を司るものである。CPU32は、主に、ウェブサーバ装置2,3で実行されるゲーム処理の結果に応じたゲーム画面を表示する表示処理を行う。
【0033】
無線通信部33は、ネットワーク1を介したサーバなどの外部装置との通信の制御を司る。また、無線通信部33は、無線LAN、Bluetooth(登録商標)、WiFiなどの無線通信機能を有する。
【0034】
メモリ34は、クライアント側のゲーム処理に関するアプリケーションプログラム37-3を実行する際に必要とされるワークエリアなどとして使用される。
【0035】
GPSモジュール35は、GPS(Global Positioning System)を利用して位置情報(緯度、経度)、時刻情報などを生成する。
【0036】
カメラ36は、静止画あるいは動画像を撮像する機能を有する。
【0037】
記憶装置37は、本実施の形態に係るオンラインゲームに必要とされる各種プログラムやデータを格納するためのものであり、例えば、フラッシュメモリなどにより実現される。記憶装置37には、OS37-1、ゲームプログラム37-2、及びC1,C2,C3用プログラム37-3が格納される。
【0038】
OS37-1は、携帯端末4の基本的な機能を実現するためのプログラムである。
ゲームプログラム37-2は、本発明の実施の形態に係るオンラインゲームにおけるクライアント側のゲーム処理を実現するためのプログラムである。なお、本実施の形態のオンラインゲームにおけるゲーム処理は、主にサーバ側(ウェブサーバ装置2,3)において行なわれる。このため、クライアント側のゲーム処理では、主に、サーバ側で実行されるゲーム処理の結果に応じたゲーム画面の表示処理、ゲーム画面に応じたユーザによる入力操作に応じたイベント情報の送信処理などを行う。なお、クライアント側で行なわれるゲーム処理の一部又は全てをクライアント側で行なってもよい。
【0039】
C1,C2,C3用プログラム37-3は、
図2に示すアプリケーション実行環境C1、A社データベース接続キットC2、フレームワークC3を実現するためのプログラムである。
【0040】
タッチパネルセンサ38は、表示部40の表示面に装着されたタッチパネルへのタッチ操作を検出するセンサである。
表示制御コントローラ39は、表示部40の表示制御を行なう。
表示部40は、例えばLCD(Liquid Crystal Display)等により構成され、表示制御コントローラ39の制御によりゲーム画面などを表示する。
【0041】
次に、本発明の実施の形態に係るオンラインゲームシステムの動作について説明する。
図5は、ウェブサーバ装置2,3、携帯端末4,5の間で送受信される、オンラインゲーム実行時のイベント情報の内容を例示する図である。
【0042】
図5に示すように、1つのイベント情報は、携帯端末4,5においてオンラインゲームを実行することにより発生するイベントの内容を表す情報であり、時刻情報P1、位置情報P2、及びアクション情報P3を含んでいる。時刻情報P1は、ゲーム中にユーザが入力操作をした時刻を示す。位置情報P2は、ユーザがゲーム中に入力操作をした時の位置を示すもので、例えば携帯端末4,5のGPSモジュール35により生成される位置情報(緯度、経度)を数値化した情報である。アクション情報P3は、携帯端末4,5が予めインストールしたゲームプログラムに基づき、ユーザの入力操作等に応じて発生するイベントに関わるアクションの内容を示す。
【0043】
図6は、本実施の形態におけるオンラインゲームを同期するためのイベント情報の処理経路の一例を示す図である(後に具体的な処理経路について説明する)。
図6では、携帯端末4がウェブサーバ装置2と接続され、携帯端末5がウェブサーバ装置3と接続され、さらにウェブサーバ装置2とウェブサーバ装置3とが接続されている。すなわち、ウェブサーバ装置2,3と携帯端末4,5は、ソケット通信によりデータ(イベント情報)を送受信することができる状態にあるものとする。
【0044】
なお、本実施の形態におけるオンラインゲームは、ゲームに参加するプレイヤが、それぞれが使用する携帯端末を操作することにより、ゲーム空間内において、プレイヤに対応するキャラクタを移動させることができる。ゲーム空間内には、多数の敵キャラクタが配置されている。プレイヤのキャラクタは、ゲーム空間内で移動(クエストを進行)され、敵キャラクタに遭遇すると、敵キャラクタを攻撃することができる。プレイヤのキャラクタは、敵キャラクタを攻撃し、討伐できると、例えばゲーム中で使用されるアイテムなどを獲得することができる。また、敵キャラクタへの攻撃は、複数のプレイヤが共同して実行することができる。
【0045】
図6では、携帯端末4と携帯端末5とがオンラインゲームに参加する場合に、携帯端末4,5のそれぞれにおいて実行されるゲーム処理を同期させるために、携帯端末4のゲーム処理で発生したイベントの内容を示すイベント情報を携帯端末に送信する。
【0046】
例えば、携帯端末4は、ユーザの操作により制御されるゲーム内のキャラクタの体力を示すヒットポイント(HP)が「+10」されるようなイベントが発生した場合、このイベントについての処理を実行すると共に、このイベントを示すイベント情報A1をウェブサーバ装置2に送信する。ウェブサーバ装置2は、携帯端末4から受信したイベント情報A2をウェブサーバ装置3に送信する。ウェブサーバ装置3は、携帯端末4と同じオンラインゲームに参加する携帯端末5に対して、ウェブサーバ装置2により中継されたイベント情報A3をプッシュ動作により送信する。携帯端末5は、携帯端末4において発生したイベントの内容を示すイベント情報をもとに、ゲーム内での携帯端末4のユーザの操作により制御されるキャラクタの体力を「+10HP」にする。
【0047】
次に、本実施の形態におけるオンラインゲームを同期するためのイベント情報の処理経路の具体例について説明する。
図7は、
図4に示すイベント情報の具体的な処理経路の一例を示す図である。
携帯端末4は、ユーザの操作により制御されるゲーム内のキャラクタの体力を示すヒットポイント(HP)が「+10」されるようなイベントが発生した場合、このイベントについての処理を実行すると共に、このイベントの内容を示すイベント情報をウェブサーバ装置2に送信する(A11)。イベント情報には、ヒットポイント(HP)を「+10」するアクション情報、イベントが発生した時刻を示す時刻情報、及びイベントが発生した時の携帯端末4の位置を示す位置情報が含まれている。
【0048】
ウェブサーバ装置2は、携帯端末4からのイベント情報を、プッシュ動作(A12)によりキュー値記憶部2Bに記憶させた上で、同イベント情報をウェブサーバ装置3に送信する(A13)。
【0049】
ウェブサーバ装置3は、ウェブサーバ装置2からイベント情報を受信すると、同じオンラインゲームに参加しているゲーム相手の携帯端末5に対して、プッシュ動作により同イベント情報を送信する(A14)。携帯端末5は、ウェブサーバ装置3から受信したイベント情報の内容に基づいて、オンラインゲーム内での携帯端末4側のキャラクタの体力を「+10HP」するようゲーム処理を実行する(A15)。また、携帯端末5は、ウェブサーバ装置3から受信したイベント情報をゲーム処理に反映させたことを応答するために
、イベント情報をウェブサーバ装置3へ返送する(A16)。
【0050】
ウェブサーバ装置3は、携帯端末5からイベント情報が返送されると、イベント情報が携帯端末5におけるゲーム処理に反映されたものとして判別する。ウェブサーバ装置3は、ウェブサーバ装置2のキュー値記憶部2Bに対して、ポップ動作によりイベント情報を返送する(A17)。
【0051】
こうして、本実施の形態におけるオンラインゲームシステムは、携帯端末4においてイベントが発生した場合、携帯端末4から携帯端末5にイベントの内容を示すイベント情報を送信することにより、サーバによる一元的な情報管理を行なうことなく、携帯端末4,5において実行されるオンラインゲームを同期させることができる。
【0052】
次に、オンラインゲームに参加している携帯端末が一時的にオフライン状態となった場合のオンラインゲームの同期方法について説明する。
図8は、オフラインが生じた場合のオンラインゲームの同期の概念を示す図である。ここでは、携帯端末Aと携帯端末Bとがオンラインゲームを実行している途中で、携帯端末Aがイベント3からオフライン状態となった例を示している。なお、
図8に示す携帯端末Aは、例えば
図7に示す携帯端末4に対応し、携帯端末Bは、例えば
図7に示す携帯端末5に対応するものとする。
【0053】
この場合、携帯端末Aは、オフライン状態となっても、予めインストールされているゲームプログラムによって、ゲーム処理を続行する。しかし、携帯端末Aは、イベント3以降のイベントに関して、携帯端末Bとの間でイベント情報を送受信することができない(処理結果はNGと判定される)。
【0054】
携帯端末Bは、イベント2の以後、携帯端末Aからの応答がないため、イベント2に対する処理の実行後にロールバック状態となる。すなわち、携帯端末Bは、ゲーム上の進展がない状態を維持する。
【0055】
ここで、ロールバックを行なうものとしては、例えばゲーム上での課金処理等がある。また、ロールバックを行なわないものとしては、例えばキャラクタの対戦の結果や、ゲーム空間内でのキャラクタの進行等がある。ゲーム進行上、重要となるイベント情報に関しては、特定の閾値を設けることでイベント情報を判断してロールバックを行なうものとしても良い。
【0056】
したがって、携帯端末Aが再びオンライン状態に復帰した後、各携帯端末に記憶されているイベント情報に基づき、携帯端末A,B共にイベント2までが有効であり、携帯端末Aのイベント3以降のイベントに関して、ゲーム進行上、齟齬が生じるか否かをウェブサーバ装置が仲介して検証し、その検証結果を各携帯端末A,Bに反映させることで、携帯端末Aと携帯端末Bとの正しい同期状態が維持できる。
【0057】
図8において、イベント3を成立させると携帯端末Bとの間で同期がとれないと判断した場合には、図示するように携帯端末Aのイベント3を無効とする。一方で、イベント3を成立させても、携帯端末Bとの間で何ら齟齬が生じず、同期がとれると判断した場合には、イベント3の成立を許可する。
【0058】
上記ウェブサーバ装置が検証を行なう際の判断基準となるのが、端末からオンライン復帰時にバッチ処理により纏めて送られてくるイベント情報と、ウェブサーバ内のキュー値記憶部2Bに蓄積して記憶されているイベント情報であり、これら両イベント情報中の上記時刻情報P1と位置情報P2とを参照することで、必要により予め特定した閾値を用い
た判定を行なうことで、オフラインとなる前のオンライン状態での有効なイベント情報を正確に検証できる。
【0059】
また、上述した如くオフライン状態で実行したイベント情報が、オンライン後に相互の同期を乱すものではないと判断した場合には、そのイベント情報の実行を有効として許可する。
【0060】
図9は、携帯端末4がオフライン状態からオンライン状態に復帰した後のイベント情報の処理経路を示す図である。ここでは、携帯端末4がオフライン状態にある時に発生したイベントを有効と判断した場合の例を示している。
【0061】
携帯端末4は、オフライン状態においてゲーム処理を実行している間、ゲーム処理で発生したイベントのイベント情報を記憶しておく。携帯端末4は、オフライン状態からオンライン状態に復帰した場合に、記憶していたイベント情報をウェブサーバ装置2に送信する。
【0062】
例えば、ユーザの操作するゲーム内のキャラクタの体力を示すヒットポイント(HP)が「+10」されるようなイベント情報(A21)が携帯端末4からバッチ処理によりウェブサーバ装置2へ送信されたものとする。なお、携帯端末4がオンライン状態となった場合、携帯端末4,5とウェブサーバ装置2,3とは、ウェブソケット(ソケット通信)によりイベント情報を含むデータの送受信が可能な状態となる。
【0063】
ウェブサーバ装置2は、携帯端末4からのイベント情報(A21)を、プッシュ動作(A22)によりキュー値記憶部2Bに記憶させた上で、同イベント情報をウェブサーバ装置3に送信する(A23)。
【0064】
この時点で、携帯端末4とオンライン状態となった携帯端末5は、ウェブサーバ装置3に対してプッシュ動作により同イベント情報を送信する(A24)。これを受けたウェブサーバ装置3は、ウェブサーバ装置2のキュー値記憶部2Bをアクセスして(A25)、キュー値記憶部2Bに記憶されている同イベント情報(A26)を読出した上で、携帯端末5に同イベント情報を送信する(A27)。
【0065】
携帯端末5は、ウェブサーバ装置3から受信したイベント情報の内容に基づいて、オンラインゲーム内での携帯端末4側のキャラクタの体力を「+10HP」するようゲーム処理を実行する(A28)。また、携帯端末5は、ウェブサーバ装置3から受信したイベント情報をゲーム処理に反映させたことを応答するために、イベント情報をウェブサーバ装置3に返送する(A29)。
【0066】
ウェブサーバ装置3は、携帯端末5からイベント情報が返送されると、イベント情報が携帯端末5におけるゲーム処理に反映されたものとして判別する。ウェブサーバ装置3は、ウェブサーバ装置2のキュー値記憶部2Bに対して、ポップ動作によりイベント情報を返送する(A30)。以上で、一方の携帯端末4でオフライン時にイベント情報が発生した場合の、オンライン復帰後の一連の処理を終了する。
【0067】
このように、オフライン状態で発生したイベント情報に関しても、双方の携帯端末4,5でのゲーム進行上で齟齬を来さない程度の内容、例えばキャラクタがゲーム空間内を移動するなど、ゲームの進行に関してオフライン状態で許可されるイベント情報の定義を予め行なっておくことで、オフライン状態が生じた場合でもユーザに対してより違和感のないゲーム環境が提供できる。
【0068】
なお、具体的なイベント情報としては、ゲーム上でのクエストのクリア、他のキャラクタとの対戦、アイテムの入手とそれに伴う課金処理、等が考えられる。
【0069】
次に、本実施の形態におけるオンラインゲームを同期するための別の処理の具体例について説明する。
図10は、本実施の形態におけるオンラインゲームを同期するための具体的なイベント情報の処理経路の一例を示す図である。
図11A及び
図11Bは、ゲームの進行に伴って携帯端末Aから携帯端末Bに送信されるイベント情報の具体例を示す図、
図12は、
図11A及び
図11Bに示すイベント情報の具体的な内容を示す図である。
図11A及び
図11Bでは、左から右の方向に時間が経過していることを表している。
【0070】
図11A及び
図11Bに示す携帯端末Aは、例えば
図10に示す携帯端末4に対応し、携帯端末Bは、例えば
図10に示す携帯端末5に対応するものとする。すなわち、
図11A及び
図11Bは、携帯端末4において発生したイベントのイベント情報を、携帯端末4から携帯端末5に送信する例を示す。なお、携帯端末5においてイベントが発生した場合には、携帯端末4においてイベントが発生した場合と同様にして、携帯端末5から携帯端末4にイベント情報を送信する。さらに、
図10では、2つの携帯端末4,5のみを図示しているが、多数(3人以上)のプレイヤがオンラインゲームに参加する場合には、それぞれのプレイヤが使用する携帯端末の間でイベント情報の送受信が行われる。すなわち、1つの携帯端末において発生したイベントのイベント情報は、複数の携帯端末に送信する必要がある。従って、オンラインゲームに参加するプレイヤの数が増えるほど、イベント情報を送受信するためのトラフィックが大幅に増大する。
【0071】
本実施の形態におけるオンラインゲームシステムでは、ウェブサーバ装置は、オンラインゲームの同期を図るためにイベント情報を携帯端末から受信すると、このイベント情報が他の携帯端末において実行されるゲーム処理(ゲーム状況)に関わるか否かを判別する。ウェブサーバ装置は、他の携帯端末において実行されるゲーム処理(ゲーム状況)に関わると判別した場合、イベント情報をキュー記憶部に記憶すると共にオンラインゲームの同期を図るためにイベント情報を他の携帯端末に送信する。
【0072】
図10に示すウェブサーバ装置2,3は、ウェブソケットを介してデータ通信が可能な状態にあるものとする。携帯端末4は、オンラインゲームに参加するために、ハンドシェイクを経て、ウェブサーバ装置2と接続する。これにより、携帯端末4は、ウェブサーバ装置2,3を含むウェブサーバ装置群(各ウェブサーバ装置と接続された携帯端末を含む)とウェブソケットを介してデータ通信が可能な状態になる。
【0073】
オンラインゲームのゲーム空間には、携帯端末4に対応するプレイヤキャラクタが生成される。プレイヤキャラクタは、携帯端末4に対するプレイヤの操作に応じて、ゲーム空間中で各種の動作が可能となる。例えば、携帯端末4は、プレイヤキャラクタをゲーム空間中で移動させる操作、すなわちクエストを進行させる操作がされたものとする(
図11AのTA1)。携帯端末4のCPU32は、入力操作に応じてゲーム処理を実行すると共に、このイベント1のイベント情報を生成する。イベント1のイベント情報は、
図12に示すように、イベントの内容を示すアクション情報として「プレイヤAがクエストを進行」、時刻情報として「9時00分」、位置情報として「緯度35.681382、経度139.766084」が含まれる。時刻情報は、入力操作がされた時の携帯端末4が管理する時刻を示す。また、位置情報は、GPSモジュール35によって取得された緯度、経度をもとに生成される。なお、時刻情報は、携帯端末4が管理する時刻ではなく、ウェブサーバ装置2が管理する時刻を利用しても良い。この場合、携帯端末4からウェブサーバ装置2に送信するイベント情報は、時刻情報を含まず、ウェブサーバ装置2において時刻情報が付加されるものとする。
【0074】
携帯端末4は、Send動作(B1:Send)により、ウェブソケットを介して、イベント情報をウェブサーバ装置2に送信する。ウェブサーバ装置2の判別部2Aは、イベント情報に含まれる位置情報をもとに、イベント情報が正当であるか否かを判別する。すなわち、判別部2Aは、先に受信されたイベント情報の位置情報と、後に受信されたイベント情報の位置情報とを比較し、携帯端末4の移動距離を判別する。判別部2Aは、位置情報をもとに判別される携帯端末4の移動距離が、物理的に移動可能な距離であるかを判別する。例えば、判別部2Aは、先に受信されたイベント情報の時刻情報と、後に受信されたイベント情報の時刻情報とをもとに、先のイベント情報を受信した時刻から後のイベント情報を受信した時刻までの時間を求める。例えば、判別部2Aは、時間に対する移動可能な距離を判別する基準値が設定されており、この設定値以上の移動距離であった場合には、携帯端末4から受信したイベント情報が正当でないものと判別する。例えば、携帯端末4を使用するプレイヤになりすまして、携帯端末4から離れた場所にある他の携帯端末からオンラインゲームに参加している場合、判別部2Aは、他の携帯端末からのイベント情報が正当ではないと判別することができる。この場合、判別部2Aは、携帯端末4から受信したイベント情報を無効化して、ゲーム処理を中断する。なお、以下の説明では、ウェブサーバ装置2,3は、携帯端末4,5から正当なイベント情報を受信するものとして説明する。
【0075】
一方、イベント情報が正当と判別された場合、ウェブサーバ装置2は、携帯端末4から受信したイベント情報に応じたゲーム処理を実行する。ここで、携帯端末4が参加しているオンラインゲームに他のプレイヤが参加していない場合、ウェブサーバ装置2は、携帯端末4から受信したイベント情報を、他の携帯端末(あるいはウェブサーバ装置)に送信する必要がない。
【0076】
同様にして、プレイヤキャラクタがゲーム空間で敵キャラクタ(ボスキャラクタ)に遭遇したイベントが発生すると(
図11AのTA2)、携帯端末4は、このイベント2のイベント情報を生成して、ウェブサーバ装置2に送信する(B1:Send)。イベント2のイベント情報の詳細は、
図12に示す。
【0077】
一方、携帯端末5は、オンラインゲームに参加するために、ハンドシェイクを経て、ウェブサーバ装置3と接続する。これにより、携帯端末5は、ウェブサーバ装置2,3を含むウェブサーバ装置群(各ウェブサーバ装置と接続された携帯端末を含む)とウェブソケットを介してデータ通信が可能な状態になる。
【0078】
携帯端末4のプレイヤは、敵キャラクタ(ボスキャラクタ)への攻撃を他のプレイヤと共同して実行するために、フレンド要請を指示したものとする(
図11AのTAB3)。携帯端末4は、このイベント3のイベント情報を生成して、ウェブサーバ装置2に送信する(B1:Send)。イベント3のイベント情報は、
図12に示すように、フレンド要請のイベントの内容を示すアクション情報として「プレイヤAがプレイヤBを招待する」を示すデータが含まれている。
【0079】
ウェブサーバ装置2の判別部2Aは、携帯端末4からイベント3のイベント情報を受信すると、このイベント情報を携帯端末5に送信するか否かを、イベント情報の内容に基づいて判別する。例えば、判別部2Aは、イベント情報を携帯端末5に送信するか否かを、携帯端末4と同じオンラインゲームに参加している携帯端末5のゲーム状況に関わるイベントであるか否かに基づいて判別する。判別部2Aには、例えば他の携帯端末のゲーム状況に関わるイベントを判別するための判別テーブルが設けられている。判別テーブルには、ゲーム状況に関わるイベントを判別する条件が定義されている。判別部2Aは、携帯端末4から受信したイベント情報のアクション情報が、判別テーブルに定義された条件に該
当する場合に、イベント情報がゲーム状況に関わるイベントを判別することができる。
【0080】
判別部2Aは、イベント情報に含まれるアクション情報が「プレイヤAがプレイヤBを招待する」であるため、プレイヤBが使用する携帯端末5のゲーム状況に関わるイベントであると判別する。すなわち、判別部2Aは、イベント3のイベント情報を、携帯端末5に送信すると判別する。この場合、判別部2Aは、携帯端末4から受信したイベント情報をキュー記憶部2Bに記憶させる。
【0081】
また、判別部2Aは、キュー記憶部2Bに記憶させたイベント情報をプッシュ動作(B2:Push)により、ウェブソケットを介して、携帯端末5と接続されたウェブサーバ装置3に送信する(B31:Publish)。
【0082】
ウェブサーバ装置3は、ウェブサーバ装置2からイベント情報を受信すると、同じオンラインゲームに参加しているゲーム相手の携帯端末5に対して、ウェブソケットを介して、プッシュ動作によりイベント情報を送信する(B41:Push)。携帯端末5は、ウェブサーバ装置3から受信したイベント情報の内容に基づいてゲーム処理を実行して、携帯端末4において発生したイベントを反映させる(B5:実行)。また、携帯端末5は、ウェブサーバ装置3から受信したイベント情報をゲーム処理に反映させたことを通知するために、完了通知をウェブサーバ装置3へ送信する(B6:完了通知)。
【0083】
ウェブサーバ装置3は、携帯端末5からの完了通知に応じて、ポップ動作によりウェブサーバ装置2に通知する(B7:Pop)。ウェブサーバ装置2の判別部2Aは、ポップ動作による通知に応じて、キュー値記憶部2Bに記憶された、携帯端末5に送信したイベント情報を削除する。
【0084】
携帯端末5は、携帯端末4からフレンド要請するイベント情報を受信することにより、プレイヤBに対して、プレイヤAからフレンド要請されたことを通知する。プレイヤBは、フレンド要請に応答することにより、プレイヤAと共に敵キャラクタ(ボスキャラクタ)への攻撃に参加することができる。携帯端末5は、プレイヤBの入力操作によって、敵キャラクタ(ボスキャラクタ)への攻撃が指示されると、携帯端末4と同様に攻撃のイベントを発生して、攻撃のイベント情報をウェブサーバ装置3に送信する。すなわち、携帯端末5において発生したイベントの位置情報は、ウェブソケットを介して、携帯端末4に送信される。
【0085】
携帯端末4は、プレイヤAの入力操作に応じて攻撃のイベントを発生して(
図11AのTAB4)、前述と同様にして、イベント情報をウェブサーバ装置2に送信する(B1:Send)。ウェブサーバ装置2の判別部2Aは、携帯端末4からイベント4のイベント情報を受信すると、携帯端末5のゲーム状況に関わるイベントであるか否かを判別する。
【0086】
ここで、判別部2Aは、判別テーブルに定義された条件をもとに、敵キャラクタに対する攻撃のイベントが、携帯端末5のゲーム状況に関わるイベントでないと判別する。この場合、判別部2Aは、携帯端末4から受信したイベント情報をキュー記憶部2Bに記憶させず、イベント情報をウェブサーバ装置3へ送信する。
【0087】
ウェブサーバ装置3は、ウェブサーバ装置2からイベント情報を受信すると、同じオンラインゲームに参加しているゲーム相手の携帯端末5に対して、ウェブソケットを介して、プッシュ動作によりイベント情報を送信する(B42:Push)。携帯端末5は、ウェブサーバ装置3から受信したイベント情報の内容に基づいてゲーム処理を実行して、携帯端末4において発生したイベントを反映させる(B5:実行)。
【0088】
こうして、携帯端末4から受信したイベント情報をウェブサーバ装置3へ送信することにより、携帯端末4,5において実行されるオンラインゲームのゲーム処理を確実に同期させることができる。
【0089】
また、携帯端末5へ送信しないと判別したイベント情報をキュー記憶部2Bに記憶させないことにより、キュー記憶部2Bの記憶容量の消費を減らすことができる。
【0090】
また、携帯端末4から受信したイベント情報が携帯端末5のゲーム状況に関わるイベントであると判別された場合には、このイベント情報をキュー記憶部2Bに記憶させておくことで、携帯端末5がオフライン状態となった場合であってもゲーム処理を確実に同期させることができる。携帯端末5がオフライン状態となった場合の動作については後述する(
図13、
図14参照)。
【0091】
同様にして、携帯端末4において発生したイベント5のイベント情報は、アクション情報として「ボスがプレイヤAを攻撃」のデータが含まれており、ウェブサーバ装置2の判別部2Aにより携帯端末5のゲーム状況に関わるイベントでないと判別される(
図11BのTAB5)。イベント5のイベント情報は、イベント4のイベント情報と同様にして、携帯端末4から受信したイベント情報をキュー記憶部2Bに記憶されず、ウェブサーバ装置3へ送信される。
【0092】
次に、携帯端末4において発生したイベント6のイベント情報は、アクション情報として「プレイヤA,Bがボス討伐」のデータが含まれている。携帯端末4,5を操作しているプレイヤA,Bは、それぞれが入力操作をすることにより敵キャラクタ(ボスキャラクタ)に対して攻撃を加えている。この結果、何れかのプレイヤの入力操作により与えられた攻撃によりボスキャラクタを討伐することができる。この場合、「ボスが討伐された」ことは、それぞれのプレイヤA,Bのゲーム状況に関わることになる。
【0093】
従って、ウェブサーバ装置2の判別部2Aは、イベント6のイベント情報について、携帯端末5のゲーム状況に関わるイベントであると判別する(
図11BのTAB6)。イベント6のイベント情報は、キュー記憶部2Bに記憶されると共に、ウェブサーバ装置3を介して携帯端末5に送信される。
【0094】
同様にして、携帯端末4において発生したイベント7のイベント情報は、アクション情報として「アイテムをプレイヤA,Bに付与」のデータが含まれており、ウェブサーバ装置2の判別部2Aにより携帯端末5のゲーム状況に関わるイベントであると判別される(
図11BのTAB7)。イベント7のイベント情報は、イベント6のイベント情報と同様にして、キュー記憶部2Bに記憶されると共に、携帯端末5へ送信される。
【0095】
このようにして、ウェブサーバ装置2は、携帯端末4から受信したイベント情報について、携帯端末5に送信するか否かをイベント情報の内容、すなわち携帯端末5において実行されるゲーム状況に関わる内容であるか否かに判別することができる。ウェブサーバ装置2は、携帯端末5のゲーム状況に関わるイベント情報をキュー記憶部2Bに記憶させると共に携帯端末5に送信し、携帯端末5のゲーム状況に関わらないイベント情報をキュー記憶部2Bに記憶させないで携帯端末5に送信する。すなわち、携帯端末4において発生したイベントのイベント情報を携帯端末5に送信することにより、オンラインゲームの同期を図ることが可能である。
【0096】
なお、前述した説明では、携帯端末4から受信したイベント情報が、携帯端末5のゲーム状況に関わる場合と関わらない場合の何れであっても、イベント情報を携帯端末5に送信するとしている。本実施形態では、ウェブサーバ装置2の判別部2Aが、携帯端末4か
らのイベント情報が携帯端末5のゲーム状況に関わらないと判別された場合に、このイベント情報を携帯端末5に送信しないようにしても良い。
【0097】
これにより、
図10に中の破線によって示す、ウェブサーバ装置2からウェブサーバ装置3へのイベント情報の送信(B32:Publish)、ウェブサーバ装置3から携帯端末5へのイベント情報の送信(B42:Push)が省略される。これにより、イベント情報を送信するためのトラフィックを削減することができる。
【0098】
前述した説明では、携帯端末4から携帯端末5にイベント情報を送信する場合を対象としているが、同様にして、携帯端末5から携帯端末4に対してイベント情報を送信する。従って、携帯端末5から携帯端末4にイベント情報を送信するためのトラフィック量も削減される。さらに、より多くのプレイヤが同じオンラインゲームに参加している場合には、大幅なトラフィック量の削減を期待することができる。
【0099】
次に、オンラインゲームに参加している携帯端末5が一時的にオフライン状態となった場合のオンラインゲームの同期方法について説明する。
図13は、携帯端末5が一時的にオフライン状態となった状況のイベント情報の処理経路の一例を示す図、
図14は、携帯端末5がオンライン状態に復帰した状況のイベント情報の処理経路の一例を示す図、
図15A及び
図15Bは、ゲームの進行に伴って携帯端末Aから携帯端末Bに送信されるイベント情報の具体例を示す図である。
【0100】
なお、
図15Aに示すイベント1,2,3についての処理は、
図11Aに示すイベント1,2,3と同様にして実行されるものとして説明を省略する。すなわち、イベント3のイベント情報は、ウェブサーバ装置2,3と携帯端末4,5とがウェブソケットを介してデータの送受信が可能な状態において、携帯端末4から携帯端末5に送信される。
【0101】
ここで、携帯端末4においてイベント4が発生したものとする(
図15AのTAB4)。携帯端末4は、イベント4のイベント情報をウェブサーバ装置2に送信する(C1:Send)。ウェブサーバ装置2の判別部2Aは、イベント4のイベント情報の内容が携帯端末5のゲーム状況に関わらないと判別する。従って、イベント4のイベント情報は、キュー記憶部2Bに記憶されず、ウェブサーバ装置2からウェブサーバ装置3へ送信(C32:Publish)される。しかし、携帯端末5がオフライン状態となっているため、ウェブサーバ装置3から携帯端末5への送信(C42:Publish)は失敗する。
【0102】
次に、携帯端末4においてイベント5が発生したものとする(
図15BのTAB5)。携帯端末4は、イベント4のイベント情報をウェブサーバ装置2に送信する(C1:Send)。ウェブサーバ装置2の判別部2Aは、イベント5のイベント情報の内容が携帯端末5のゲーム状況に関わらないと判別する。従って、イベント4のイベント情報は、イベント4のイベント情報と同様にして、キュー記憶部2Bに記憶されない。ウェブサーバ装置3に送信される。この間、携帯端末5がオンライン状態に復帰した場合、ウェブサーバ装置3から携帯端末5への送信(C41:Publish)は成功する。
【0103】
携帯端末5がオンライン状態に復帰すると、携帯端末5は、携帯端末4とウェブソケットを介してデータ送受信が可能な状態となる。従って、携帯端末4において発生したイベント6,7のイベント情報は(
図15BのTAB6、TAB7)、キュー記憶部2Bに記憶されると共に携帯端末5に送信される。
図16は、携帯端末4において発生するイベント4以降の携帯端末4から携帯端末5に送信されるイベント情報の一例を示す図である。携帯端末4は、イベント4,5のイベント情報をウェブサーバ装置2に送信する。しかし、
図16において破線によって示すイベント4,5のイベント情報は、携帯端末5のゲーム状況に関わらないと判別される。従って、ウェブサーバ装置2のキュー記憶部2Bには
、イベント4,5のイベント情報が記憶されず、イベント7,8のイベント情報のみが記憶される。
【0104】
なお、判別部2Aによって携帯端末5のゲーム状況に関わらないと判別されたイベント情報を携帯端末5に送信しない場合には、ウェブサーバ装置2からウェブサーバ装置3へ送信(C32:Publish)と、ウェブサーバ装置3から携帯端末5への送信(C42:Publish)が省略される。このため、携帯端末5がオフライン状態にあっても影響を受けない。
【0105】
ここで、例えばイベント4のイベント情報が携帯端末5のゲーム状況に関わると判別された場合について説明する。
ここでは、携帯端末5とウェブサーバ装置3との通信が切断され、携帯端末5は、
図13に示すように、オフライン状態になっているものとする。この場合、携帯端末5は、ウェブソケットを通じてデータを送受信することができない。従って、ウェブサーバ装置3から携帯端末5に対するイベント情報の送信(C41:Publish)は、エラーとなる。
【0106】
この場合、ウェブサーバ装置2の判別部2Aは、ウェブサーバ装置3にイベント情報を送信した後、例えば予め決められた時間内にポップ動作により通知がない場合には、携帯端末5への位置情報の送信に失敗したと判別する。この場合、判別部2Aは、ウェブサーバ装置3に記憶したイベント4のイベント情報に対して、イベント情報の送信が失敗したことを示す情報を付加しておく。
【0107】
次に、携帯端末5は、ウェブサーバ装置3との接続を再開して、オンライン状態に復帰したものとする。この場合、携帯端末5は、
図14に示すように、ウェブサーバ装置3に対して、同じオンラインゲームに参加している携帯端末4からのイベント情報の送信要求を出力する(D1:Request)。
【0108】
ウェブサーバ装置3は、ウェブサーバ装置3から復帰時に送信される、イベント情報の送信要求に応じて、ウェブサーバ装置2のキュー記憶部2Bに記憶されたイベント情報の読み出しを、ウェブサーバ装置2(判別部2A)に要求する(D2:Read)。
【0109】
ウェブサーバ装置2の判別部2Aは、ウェブサーバ装置3からのイベント情報の読み出し要求に対して、イベント情報の送信が失敗したことを示す情報が付加されたイベント情報をウェブサーバ装置3に返送する(D3:Reply)。ウェブサーバ装置3は、ウェブサーバ装置2から返送されたイベント情報を、プッシュ動作により携帯端末5に送信する(D4:Push)。
【0110】
携帯端末5は、ウェブサーバ装置3から受信したイベント情報の内容に基づいてゲーム処理を実行して、携帯端末4において発生したイベントを反映させる(D5:実行)。また、携帯端末5は、ウェブサーバ装置3から受信したイベント情報をゲーム処理に反映させたことを通知するために、完了通知をウェブサーバ装置3へ送信する(D6:完了通知)。
【0111】
ウェブサーバ装置3は、携帯端末5からの完了通知に応じて、ポップ動作によりウェブサーバ装置2に通知する(D7:Pop)。ウェブサーバ装置2の判別部2Aは、ポップ動作による通知に応じて、キュー値記憶部2Bに記憶された、携帯端末5がオフライン状態にある時に送信したイベント情報を削除する。
【0112】
このようにして、携帯端末5が一時的にオフライン状態となったとしても、携帯端末5
が復帰した後に、ウェブサーバ装置2のキュー記憶部2Bに記憶されたイベント情報が携帯端末5に送信されて、携帯端末5のゲーム処理に反映される。これにより、携帯端末4,5において実行されるオンラインゲームのゲーム処理を同期させることが可能となる。
【0113】
なお、
図10、
図13及び
図14では、2つのウェブサーバ装置2,3を介して、携帯端末4からのイベント情報を携帯端末5に送信しているが、3つ以上のウェブサーバ装置を介して、携帯端末4からのイベント情報を携帯端末5に送信する構成とすることもできる。この場合、携帯端末4と接続されるウェブサーバ装置2とは異なる他のウェブサーバ装置が、前述した処理(判別部2Aにより実行される処理を含む)を実行するようにしても良い。
【0114】
図17A,17B及び
図18A,18Bは、対戦ゲームにおけるイベント情報の発生を例示する図である。これらの図は、ユーザが操作可能な複数のキャラクタをゲーム上で移動させ、必要により他のキャラクタと対戦させてキャラクタを育成するゲームを例示している。
【0115】
図17Aでは、画面上部に先頭で使用するキャラクタとゲーム上での(予め設定されている経路上での)進行度合い(PROGRESS)、及びその時点での得点(SCORE)を示している。また、画面下部では、残るキャラクタを5体保持であり、そのうち1体のみ保持している状態を示す。そして、画面中央の大部分では、ゲーム上で「森の中」を進行している状態を示している。
【0116】
図17Bは、上記
図17Aの状態からさらに進行の度合いが増した状態を示している。この場合、オフライン時にゲーム空間内での進行度合いが増したとしても、得点自体は変化していないため、そのようなイベント情報に関しては、後のオンライン状態への復帰時に、有効であるものとして、上記
図7に示した如くオンラインゲームの相手に対しても当該イベント情報を有効とする処理を実行してもよい。
図18Aは、上記
図17Bの状態からさらにゲーム空間内での進行の度合いが増した状態を示している。この場合も、オフライン時に進行度合いが増したとしても、得点自体は変化していないため、そのようなイベント情報に関しては、後のオンライン状態への復帰時に、有効であるものとして、上記
図9に示した如くオンラインゲームの相手に対しても当該イベント情報を有効とする処理を実行してもよい。
【0117】
図18Bは、上記
図18Aの状態からさらに進行の度合いが増し、現出した他のキャラクタとの対戦を行なう状態を示している。この場合、ゲーム進行上はオフライン状態でも戦闘を行なうことは可能となるが、戦闘の結果により、得点が大きく変化し、オンライン状態で対戦していた他の端末側との整合がとれなくなる可能性が高い。
【0118】
そのため、このようなイベント情報に関しては、後のオンライン状態への復帰時に、無効であるものとして、元のオンライン状態にまで差し戻されるよう、上記
図8で説明したようにウェブサーバ装置2,3での検証処理によりコントロールされることになる。
【0119】
以上詳述した如く本実施形態によれば、オンラインゲームを統括して制御する際に、データベースを用いるような大がかりなサーバ装置による一元的な情報管理を行なう必要がなく、オンライン通信時の各機の処理負担を軽減すると共に、オフライン環境での処理を継続することが可能となる。
【0120】
また、上記実施形態では、検証の基準としてイベント情報中の時刻情報P1のみならず、位置情報P2も参照して検証を実行するものとしたので、オフライン状態の前後で端末の存在する位置が不自然に大きく移動しているような、不正な操作がなされている可能性
が高い状態を検知して、確実にゲームをコントロールできる。
【0121】
さらに、上記実施形態では、検証の結果、無効であると認定したイベントに関しては、その旨を示す認識情報を返信することで、確実に同期のとれたゲームの進行が維持できる。
【0122】
さらに、オンラインゲームに参加する複数の携帯端末の間で送受信されるイベント情報について、ウェブサーバ装置2,3において他の携帯端末に送信するか否かを判別し、送信すると判別されたイベント情報のみを送信することで、ウェブソケットを介したデータのトラフィックを削減することが可能となる。
【0123】
なお、上記実施形態は、スマートフォンなどの2台の携帯端末を用いてオンラインゲームを行なう場合について説明したが、本発明は端末の台数を限ることなく、またゲームの内容に関しても上記
図17A,17B及び
図18A,18Bに示したような戦闘ゲームに限るものではない。
【0124】
また上記実施形態では、ウェブソケットの規格を使用する一例について説明を行なったが、本発明はこれに限らず、ウェブサーバとブラウザの間の通信に関する他の規格であっても良い。
【0125】
その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。以下に、本願の原出願の特許請求の範囲に記載された発明を付記する。
〔1〕ゲーム処理に関わる情報を、サーバを介して第1クライアント端末と第2クライアント端末との間で送受信することが可能なオンラインゲームの同期方法であって、
前記サーバが、
オンライン接続された前記第1クライアント端末から、前記第1クライアント端末におけるゲーム処理に関わる第1情報を受信するステップと、
前記第1情報が前記第2クライアント端末において実行されるゲーム処理に関わる情報である場合に、前記第1情報を前記第2クライアント端末に送信するステップと、
前記第2クライアント端末への前記第1情報の送信が失敗した場合に、前記第1情報の送信が失敗したことを示す情報を前記第1情報に付加して記憶するステップと、を含む、オンラインゲームの同期方法。
〔2〕前記サーバが、
オフライン状態からオンライン状態になった前記第2クライアント端末から送信される情報送信要求を受信するステップと、
前記情報送信要求の受信に応答して、前記失敗したことを示す情報が付加された前記第1情報を前記第2クライアント端末に送信するステップと、を含む、〔1〕に記載のオンラインゲームの同期方法。
〔3〕前記サーバが、
前記第1情報を受信した前記第2クライアント端末から、完了通知を受信するステップと、
前記完了通知の受信に応答して、前記第2クライアント端末に送信した前記第1情報を削除するステップと、を含む、〔2〕に記載のオンラインゲームの同期方法。
〔4〕前記サーバが、前記第1情報が前記第2クライアント端末において実行されるゲーム処理に関わらない情報である場合に、前記第1情報を前記第2クライアント端末に送
信しない、〔1〕乃至〔3〕のいずれか1項に記載のオンラインゲームの同期方法。
〔5〕ゲーム処理に関わる情報を、サーバを介して第1クライアント端末と第2クライアント端末との間で送受信することが可能なオンラインゲームの同期方法であって、
前記第2クライアント端末が、
前記第2クライアント端末がオフライン状態からオンライン状態になった場合に、前記第2クライアント端末がオフライン状態であったときに受信することができなかった、前記第1クライアント端末におけるゲーム処理に関わる第1情報の送信を要求する情報送信要求をサーバに送信するステップと、
前記情報送信要求に対応して前記第1情報を受信するステップと、
受信した前記第1情報を反映させてゲームを実行するステップと、
前記第1情報の受信完了を示す完了通知を前記サーバに送信するステップと、を含む、オンラインゲームの同期方法。
〔6〕サーバ、第1クライアント端末、及び第2クライアント端末を含むオンラインゲームの同期システムであって、
前記第1クライアント端末が、前記第1クライアント端末におけるゲーム処理に関わる第1情報を前記サーバに送信し、
前記サーバが、
オンライン接続された前記第1クライアント端末から、前記第1情報を受信し、
前記第1情報が前記第2クライアント端末において実行されるゲーム処理に関わる情報である場合に、前記第1情報を前記第2クライアント端末に送信し、
前記第2クライアント端末への前記第1情報の送信が失敗した場合に、前記第1情報の送信が失敗したことを示す情報を前記第1情報に付加して記憶する、オンラインゲームの同期システム。
〔7〕第1クライアント端末及び第2クライアント端末に接続可能なサーバであって、
オンライン接続された前記第1クライアント端末から、前記第1クライアント端末におけるゲーム処理に関わる第1情報を受信する第1手段と、
前記第1情報が前記第2クライアント端末において実行されるゲーム処理に関わる情報である場合に、前記第1情報を前記第2クライアント端末に送信する第2手段と、
前記第2クライアント端末への前記第1情報の送信が失敗した場合に、前記第1情報の送信が失敗したことを示す情報を前記第1情報に付加して記憶する第3手段と、を備える、サーバ。
〔8〕サーバを介して他のクライアント端末と接続可能なクライアント端末であって、
前記クライアント端末がオフライン状態からオンライン状態になった場合に、オフライン状態であったときに受信することができなかった、前記他のクライアント端末におけるゲーム処理に関わる第1情報の送信を要求する情報送信要求を前記サーバに送信する第1手段と、
前記情報送信要求に対応して前記第1情報を受信する第2手段と、
受信した前記第1情報を反映させてゲームを実行する第3手段と、
前記第1情報の受信完了を示す完了通知を前記サーバに送信する第4手段と、を備える、クライアント端末。
〔9〕第1クライアント端末及び第2クライアント端末に接続可能なサーバが実行するオンラインゲームの同期プログラムであって、
前記サーバに、
オンライン接続された前記第1クライアント端末から、前記第1クライアント端末におけるゲーム処理に関わる第1情報を受信するステップと、
前記第1情報が前記第2クライアント端末において実行されるゲーム処理に関わる情報である場合に、前記第1情報を前記第2クライアント端末に送信するステップと、
前記第2クライアント端末への前記第1情報の送信が失敗した場合に、前記第1情報の送信が失敗したことを示す情報を前記第1情報に付加して記憶するステップと、を実行させる、オンラインゲームの同期プログラム。
〔10〕サーバを介して第1クライアント端末と接続可能な第2クライアント端末が実行するオンラインゲームの同期プログラムであって、
前記第2クライアント端末に、
前記第2クライアント端末がオフライン状態からオンライン状態になった場合に、オフライン状態であったときに受信することができなかった、前記第1クライアント端末におけるゲーム処理に関わる第1情報の送信を要求する情報送信要求を前記サーバに送信するステップと、
前記情報送信要求に対応して前記第1情報を受信するステップと、
受信した前記第1情報を反映させてゲームを実行するステップと、
前記第1情報の受信完了を示す完了通知を前記サーバに送信するステップと、を実行させる、オンラインゲームの同期プログラム。
【符号の説明】
【0126】
1…ネットワーク、2,3…ウェブサーバ装置、4,5…携帯端末、6…アクセスポイント(AP)、7…基地局、C1…アプリケーション実行環境、C2…A社データベース接続キット、C3…A社フレームワーク、P1…時刻情報、P2…位置情報、P3…アクション情報、S1…サーバ側ジャバスクリプト実行環境、S2…A社フレームワーク。