(58)【調査した分野】(Int.Cl.,DB名)
一又は複数のコンピュータプロセッサがコンピュータ読み取り可能な命令を実行することにより、ユーザを識別するために第1ユーザ識別情報が用いられる第1のプラットフォームから前記ユーザを識別するために第2ユーザ識別情報が用いられる第2のプラットフォームへ、前記第1ユーザ識別情報と対応付けて記憶されている前記ユーザの前記第1のプラットフォームにおけるゲームデータを引き継ぐ方法であって、
前記第2ユーザ識別情報が含まれる識別データを符号化して識別コードを生成する工程と、
前記第2のプラットフォームを利用する第2のクライアント装置において、前記識別コードを出力する出力工程と、
前記第1のプラットフォームを利用する第1のクライアント装置において、前記識別コードを読み取る読取り工程と、
前記第1のクライアント装置により読み取られた前記識別コードに含まれる前記第2ユーザ識別情報と前記第1ユーザ識別情報とを対応付けるリンクデータを生成する工程と、
前記第2ユーザ識別情報及び前記リンクデータに基づいて前記ゲームデータを特定し、前記第2のクライアント装置に対して前記ゲームデータを用いてゲームを提供する工程と、
を備える方法。
前記識別コードに含まれる前記第2ユーザ識別情報と前記第1ユーザ識別情報とが対応付けられたことに応じて、前記第2のプラットフォームに対して完了通知を送信する送信工程をさらに備える、
請求項1から請求項3のいずれか1項に記載の方法。
一又は複数のコンピュータプロセッサに実行されることにより、ユーザを識別するために第1ユーザ識別情報が用いられる第1のプラットフォームから前記ユーザを識別するために第2ユーザ識別情報が用いられる第2のプラットフォームへ、前記第1ユーザ識別情報と対応付けて記憶されている前記ユーザの前記第1のプラットフォームにおけるゲームデータを引き継ぐためのプログラムであって、
前記一又は複数のコンピュータプロセッサに、
前記第2ユーザ識別情報が含まれる識別データを符号化して識別コードを生成する工程と、
前記第2のプラットフォームを利用する第2のクライアント装置において、前記識別コードを出力する出力工程と、
前記第1のプラットフォームを利用する第1のクライアント装置において、前記識別コードを読み取る読取り工程と、
前記第1のクライアント装置により読み取られた前記識別コードに含まれる前記第2ユーザ識別情報と前記第1ユーザ識別情報とを対応付けるリンクデータを生成する工程と、
前記第2ユーザ識別情報及び前記リンクデータに基づいて前記ゲームデータを特定し、前記第2のクライアント装置に対して前記ゲームデータを用いてゲームを提供する工程と、
を実行させるプログラム。
ユーザを識別するために第1ユーザ識別情報が用いられる第1のプラットフォームから前記ユーザを識別するために第2ユーザ識別情報が用いられる第2のプラットフォームへ、前記ユーザの前記第1のプラットフォームにおけるゲームデータを引き継ぐためのシステムであって、
一又は複数のコンピュータプロセッサと、
前記第1ユーザ識別情報と対応付けて前記ユーザの前記第1のプラットフォームにおけるゲームデータを記憶するストレージと、
を備え、
前記一又は複数のコンピュータプロセッサは、コンピュータ読み取り可能な命令を実行することにより、
前記第2ユーザ識別情報が含まれる識別データを符号化して識別コードを生成し、
前記第2のプラットフォームを利用する第2のクライアント装置において、前記識別コードを出力し、
前記第1のプラットフォームを利用する第1のクライアント装置において、前記識別コードを読み取る読取り、
前記第1のクライアント装置により読み取られた前記識別コードに含まれる前記第2ユーザ識別情報と前記第1ユーザ識別情報とを対応付けるリンクデータを生成し、
前記第2ユーザ識別情報及び前記リンクデータに基づいて前記ゲームデータを特定し、前記第2のクライアント装置に対して前記ゲームデータを用いてゲームを提供する、
システム。
【発明を実施するための形態】
【0025】
以下、図面を適宜参照し、本発明の様々な実施形態を説明する。複数の図面において同一の又は類似する構成要素には同じ参照符号が付される。
【0026】
図1から
図5を参照して、一実施形態によるゲーム処理システム1について説明する。
図1は、一実施形態によるゲーム処理システム1を示すブロック図であり、
図2から
図5はそれぞれ、
図1のゲーム処理システムにおいて記憶される情報を説明するための図である。
【0027】
図示のとおり、本発明の一実施形態によるゲーム処理システム1は、プラットフォーム1Aと、プラットフォーム1Aを利用するクライアント装置10と、プラットフォーム1Bと、プラットフォーム1Bを利用するクライアント装置20と、ストレージ100と、を備える。クライアント装置10は、第1のクライアント装置の例であり、クライアント装置20は、第2のクライアント装置の例である。本明細書では、クライアント装置10とクライアント装置20は、同じユーザAによって使用されることが想定される。
【0028】
プラットフォーム1Aは、プラットフォームサーバ装置30と、ゲームサーバ装置50と、を有する。プラットフォーム1Aは、第1のプラットフォームの例である。プラットフォーム1Bは、プラットフォームサーバ装置40と、ゲームサーバ装置60と、を有する。プラットフォーム1Bは、第2のプラットフォームの例である。
【0029】
クライアント装置10、クライアント装置20、プラットフォームサーバ装置30、プラットフォームサーバ装置40、ゲームサーバ装置50、ゲームサーバ装置60、及びストレージ100は、ネットワーク5を介して互いに通信可能に接続されている。ネットワーク5は、単一のネットワークであってもよく、複数のネットワークが接続されて構成されていてもよい。ネットワーク5は、例えば、インターネット、移動通信網、及びこれらの組み合わせである。ネットワーク5としては、電子機器間の通信を可能とする任意のネットワークが適用され得る。
【0030】
図示の実施形態において、クライアント装置10はスマートフォンであり、クライアント装置20はパーソナルコンピュータ(PC)である。クライアント装置10は、スマートフォン以外に、携帯電話機、タブレット端末、パーソナルコンピュータ、電子書籍リーダー、ウェアラブルコンピュータ、ゲーム用コンソール、ヘッドマウントディスプレイ、及びこれら以外の各種情報処理装置であってもよく、同様に、クライアント装置20は、PC以外に、スマートフォン、携帯電話機、タブレット端末、電子書籍リーダー、ウェアラブルコンピュータ、ゲーム用コンソール、ヘッドマウントディスプレイ、及びこれら以外の各種情報処理装置であってもよいことに留意されたい。以下の説明では、説明の簡潔性のために、クライアント装置10がスマートフォンであり、クライアント装置20がPCである例示的な実施形態について説明する。
【0031】
プラットフォームサーバ装置30は、クライアント装置に対して第1のプラットフォームサービスを提供するためのサーバ装置であり、プラットフォームサーバ装置40は、クライアント装置に対して第2のプラットフォームサービスを提供するためのサーバ装置である。プラットフォームサーバ装置30によって提供される第1のプラットフォームサービス及びプラットフォームサーバ装置40によって提供される第2のプラットフォームサービスは、例えば、ゲームプラットフォームサービス、アプリケーションソフトウェアのダウンロードサービス、決済サービス、動画配信サービス、他のユーザと交流するためのコミュニケーションサービス、及びこれら以外の各種ネットワークサービスである。プラットフォームサーバ装置30がゲームプラットフォームサービスを提供する場合には、プラットフォームサーバ装置30は、複数のゲームへのリンク情報を有しており、プラットフォームサーバ装置30にアクセスしたクライアント装置10に当該リンク情報を提供することができる。ユーザは、クライアント装置10への操作入力により、所望のゲームへのリンク情報を選択することにより、当該ゲームのプレイを開始することができる。
【0032】
プラットフォームサーバ装置30及びプラットフォームサーバ装置40は、特定の種類のクライアント装置又は特定の種類のクライアントアプリケーションに対してプラットフォームサービスを提供するように構成されてもよい。例えば、プラットフォームサーバ装置30及びプラットフォームサーバ装置40は、スマートフォン、タブレット、PC、特定のゲームコンソール、及びこれら以外の特定のクライアント装置から選択される対象クライアント装置に対して第1プラットフォームサービスを提供し、この対象クライアント装置以外のクライアント装置に対しては第1プラットフォームサービスを提供しないように構成されてもよい。他の例においては、プラットフォームサーバ装置30及びプラットフォームサーバ装置40は、特定の動作環境(例えば、iOS(商標)、Android(商標)、Windows(商標)、Mac OS(商標)、又はこれら以外の特定のオペレーティングシステムもしくはアプリケーションソフトウェア)を有する対象クライアント装置に対して第1プラットフォームサービスを提供し、この特定の動作環境を有していないクライアント装置(対象クライアント装置以外のクライアント装置)に対しては第1プラットフォームサービスを提供しないように構成されてもよい。
【0033】
図示の実施形態においては、クライアント装置10がスマートフォンであるため、プラットフォームサーバ装置30は、スマートフォンに対して第1プラットフォームサービスを提供するように構成されたスマートフォン用のプラットフォームサーバ装置である。また、クライアント装置20がPCであるため、プラットフォームサーバ装置40は、PCに対して第2プラットフォームサービスを提供するように構成されたPC用のプラットフォームサーバ装置である。この場合、プラットフォームサーバ装置30は、スマートフォン以外の機器(例えば、PC)からアカウント登録要求を受けても当該要求に応じたプラットフォームサービスの提供は行わない。プラットフォームサーバ装置30から第1プラットフォームサービスを受けようとするユーザは、スマートフォンを介してプラットフォームサーバ装置30へアクセスする。同様に、プラットフォームサーバ装置40は、サービス提供対象であるPC以外の機器(例えば、スマートフォン)からアカウント登録要求を受けても当該要求に応じたプラットフォームサービスの提供は行わない。プラットフォームサーバ装置40から第2プラットフォームサービスを受けようとするユーザは、PCを介してプラットフォームサーバ装置40へアクセスする。
【0034】
プラットフォームサーバ装置30から第1プラットフォームサービスの提供を受けようとするユーザは、第1プラットフォームサービスのアカウント登録を行う。当該ユーザは、第1プラットフォームサービスのアカウント登録を行うことにより、プラットフォームサーバ装置30から第1プラットフォームサービスを受けることができる。このアカウント登録のために、ユーザは、クライアント装置10を介して、所定のユーザ情報(例えば、ユーザ名、メールアドレス、及び年齢)をプラットフォームサーバ装置30に提供する。第1プラットフォームサービスを利用するためのアカウントの登録が完了すると、当該ユーザには、当該第1プラットフォームサービスにおいて当該ユーザを識別するためのユーザ識別情報が割り当てられる。本明細書では、第1プラットフォームサービスの提供を受けるために割り当てられるユーザ識別情報を第1ユーザ識別情報又は第1ユーザIDと呼ぶことがある。
【0035】
プラットフォームサーバ装置40から第2プラットフォームサービスの提供を受けようとするユーザは、第2プラットフォームサービスのアカウント登録を行う。当該ユーザは、第2プラットフォームサービスのアカウント登録を行うことにより、プラットフォームサーバ装置40から第2プラットフォームサービスを受けることができる。このアカウント登録のために、ユーザは、クライアント装置20を介して、所定のユーザ情報(例えば、ユーザ名、メールアドレス、及び年齢)をプラットフォームサーバ装置40に提供する。第2プラットフォームサービスを利用するためのアカウントの登録が完了すると、当該ユーザには、当該第2プラットフォームサービスにおいて当該ユーザを識別するためのユーザ識別情報が割り当てられる。本明細書では、第2プラットフォームサービスの提供を受けるために割り当てられるユーザ識別情報を第2ユーザ識別情報又は第2ユーザIDと呼ぶことがある。
【0036】
第1ユーザIDが割り当てられたユーザは、クライアント装置10を介してプラットフォームサーバ装置30にアクセスし、当該第1ユーザID及びパスワードを用いてログインすることで、第1プラットフォームサービスの提供を受けることができる。同様に、第2ユーザIDが割り当てられたユーザは、クライアント装置20を介してプラットフォームサーバ装置40にアクセスし、当該第2ユーザID及びパスワードを用いてログインすることで、当該第2プラットフォームサービスの提供を受けることができる。
【0037】
図1においては、クライアント装置10が1台のみ図示されているが、プラットフォーム1に含まれるクライアント装置10の数は任意である。同様に、プラットフォーム2に含まれるクライアント装置20の数も任意である。すなわち、プラットフォーム1には、複数のクライアント装置10が含まれていてもよく、この複数のクライアント装置10の各々がプラットフォームサーバ装置30から第1プラットフォームサービスの提供を受けることができる。同様に、プラットフォーム2には、複数のクライアント装置20が含まれていてもよく、この複数のクライアント装置20の各々がプラットフォームサーバ装置40から第2プラットフォームサービスの提供を受けることができる。
【0038】
ゲームサーバ装置50は、クライアント装置10に対して、オンラインゲームサービスを提供するように構成される。クライアント装置10は、第1ユーザIDを用いてログインすることにより、ゲームサーバ装置50からオンラインゲームサービスを受けることができる。例えば、ゲームサーバ装置50は、クライアント装置10から受信したゲームメッセージ(例えば、プレイヤキャラクタの操作に関連するメッセージ、クエストを開始したいというメッセージ)を、所定のゲームロジック(又は当該ゲームロジックを実現するためのプログラム)に従って処理し、その処理結果をクライアント装置10に送信することでゲームを進行させる。同様に、ゲームサーバ装置60は、クライアント装置20に対して、オンラインゲームサービスを提供するように構成される。クライアント装置20は、第2ユーザIDを用いてログインすることにより、ゲームサーバ装置60からオンラインゲームサービスを受けることができる。ゲームサーバ装置50によって提供されるゲームとゲームサーバ装置60によって提供されるゲームそれぞれは、同一タイトルのゲームのスマートフォン版及びPC版であってもよい。ゲームサーバ装置50の機能及びゲームサーバ装置60の機能は、一つのゲームサーバ装置によって提供されてもよい。
【0039】
ゲームサーバ装置50及びゲームサーバ装置60は、様々なゲームを実現する。ゲームサーバ装置50及びゲームサーバ装置60によって提供されるゲームにおいては、ゲーム媒体が用いられてもよい。ゲーム媒体は、ゲームに使用される電子データであり、ユーザによってゲーム内で取得、所有、使用、管理、交換、合成、強化、売却、廃棄、又は贈与、又は前記以外の方法で使用され得る。ゲーム媒体には、例えば、カード、アイテム、仮想通貨、チケット、キャラクタ、アバタ、レベル情報、ステータス情報、パラメータ情報(体力値や攻撃力など)、能力情報、スキル、アビリティ、呪文、ジョブ及びこれら以外のゲームで利用可能な各種電子データを含む。ゲーム処理システム1で利用可能なゲーム媒体及びその利用態様は本明細書で明示されるものに限られない。
【0040】
クライアント装置10は、プロセッサ11、通信I/F12、ディスプレイ13、及びストレージ14を備えている。クライアント装置20は、プロセッサ21、通信I/F22、ディスプレイ23、及びストレージ24を備えている。
【0041】
プラットフォームサーバ装置30は、プロセッサ31、通信I/F32、及びストレージ33を備えている。プラットフォームサーバ装置40は、プロセッサ41、通信I/F42、及びストレージ43を備えている。
【0042】
ゲームサーバ装置50は、プロセッサ51、通信I/F52、及びストレージ53を備えている。ゲームサーバ装置60は、プロセッサ61、通信I/F62、及びストレージ63を備えている。
【0043】
プロセッサ11,21,31,41,51,61は、オペレーティングシステムや様々なプログラムをメモリにロードし、ロードしたプログラムに含まれる命令を実行する演算装置である。コンピュータプロセッサ11,21,31,41,51,61は、例えば、CPU、MPU、DSP、GPU、これら以外の各種演算装置、又はこれらの組み合わせである。プロセッサ11は、ASIC、PLD、FPGA、MCU等の集積回路により実現されてもよい。
【0044】
通信I/F12,22,32,42,52,62は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装される。クライアント装置10、クライアント装置20、プラットフォームサーバ装置30、プラットフォームサーバ装置40、ゲームサーバ装置50、ゲームサーバ装置60は、通信I/F12,22,32,42,52,62を介して、他の装置とデータを送受信することができる。
【0045】
ディスプレイ13,23は、液晶ディスプレイ、有機ELディスプレイ、又はこれら以外の画像を表示可能な任意の情報表示装置である。ディスプレイ13,23は、プレイヤのタッチ操作(接触操作)を検出することができるタッチパネルを有していても良い。
【0046】
ストレージ14,24,34,44,54,64は、例えば、磁気ディスク、光ディスク、半導体メモリ、又はデータを記憶可能な前記以外の各種記憶装置である。
【0047】
ストレージ14,24には、ゲーム処理プログラム等の様々なプログラムが記憶される。また、ストレージ14,24には、ゲームにおいて用いられる各種データが記憶されてもよい。
【0048】
ストレージ33には、第1プラットフォームサービスを提供するために必要な情報が記憶され、ストレージ43には、第2プラットフォームサービスを提供するために必要な情報が記憶される。第1プラットフォームサービスを提供するために必要な情報には、例えば、アカウント登録しているユーザのアカウント情報、登録ユーザに配信するための動画データ、登録ユーザが決済を行うために必要な決済情報(例えば、ユーザのクレジットカードに関する情報)、及びこれら以外の第1プラットフォームサービスを提供するために必要な様々な情報が記憶される。第2プラットフォームサービスを提供するために必要な情報は、第1プラットフォームサービスを提供するために必要な情報と同様のものである。
【0049】
ストレージ43には、他のプラットフォームからプラットフォーム1Bへのゲームデータの移行処理に関連する移行データ43aがさらに記憶される。移行データ43aの例が
図2に示されている。図示のように、移行データ43aは、ゲームデータの移行を行うユーザAのプラットフォーム1Bにおけるアカウント情報、後述するリンク通知が正当なものか否かを判定するための判定情報、プラットフォーム1Bへのゲームデータの移行が完了したか否かを示す移行ステータス情報、及びこれら以外の情報が含まれ得る。このように、ストレージ43には、ゲームデータの移行を要求しているユーザのアカウント情報に対応付けて、判定情報、移行ステータス情報、及びこれら以外の情報が記憶され得る。アカウント情報は、例えば、プラットフォーム1Bにおけるユーザのユーザ識別情報(第2ユーザID)である。判定情報は、例えば、リプレイ攻撃を防ぐためのノンス(nounce)である。移行ステータス情報は、例えば、2値のフラグ情報である。このフラグ情報は、例えば、その値が「1」のときゲームデータの移行処理が完了したことを示し、その値が「0」のときゲームデータの移行処理が完了していないことを示す。
【0050】
ストレージ53には、ゲームロジックを実行するためのプログラム、アセットデータ、及びこれら以外のゲームの提供に必要な各種データが記憶されてもよい。ストレージ63には、ゲームロジックを実行するためのプログラム、アセットデータ、及びこれら以外のゲームの提供に必要な各種データが記憶されてもよい。
【0051】
ストレージ100には、プラットフォーム1Aのゲームサーバ装置50により提供されるゲームで用いられるゲームデータ101、プラットフォーム1Bのゲームサーバ装置60により提供されるゲームで用いられるゲームデータ102、及びリンクデータ103が記憶される。
【0052】
ゲームデータ101の例が
図3に示されている。図示のように、ユーザAのゲームデータ101は、プラットフォーム1Aにおける当該ユーザAのアカウント情報(例えば、当該ユーザAの第1ユーザID)と対応付けてストレージ100に記憶される。ゲームデータ101は、ゲームサーバ装置50によって、書き込み及び読み出しが行われてもよい。
【0053】
ゲームデータ102の例が
図4に示されている。図示のように、ユーザAのゲームデータ102は、プラットフォーム1Bにおける当該ユーザAのアカウント情報(例えば、当該ユーザAの第2ユーザID)と対応付けてストレージ100に記憶される。ゲームデータ102は、ゲームサーバ装置60によって、書き込み及び読み出しが行われてもよい。
【0054】
ゲームデータ101には、ゲームサーバ装置50によって提供されるゲームにおいてユーザAが獲得したゲームアイテムを示すデータ、当該ゲームにおいてユーザAが獲得したポイントや仮想通貨を示すデータ、当該ゲームにおいてクリア済みのクエストを示すデータ、及びこれら以外のゲームの進行の管理に用いられる様々なデータが含まれ得る。同様に、ゲームデータ102には、ゲームサーバ装置60によって提供されるゲームにおいてユーザAが獲得したゲームアイテムを示すデータ、当該ゲームにおいてユーザが獲得したポイントや仮想通貨を示すデータ、当該ゲームにおいてクリア済みのクエストを示すデータ、及びこれら以外のゲームの進行の管理に用いられる様々なデータが含まれ得る。ストレージ100に記憶されるゲームデータは、当該ゲームデータが使用されるゲームを提供するゲームサーバ装置からはアクセス可能であるが、それ以外の装置からはアクセス不能とされてもよい。例えば、ゲームデータ101は、ゲームサーバ装置50からはアクセス可能であるが、それ以外の装置からはアクセス不能とされてもよい。ゲームデータ102は、ゲームサーバ装置60からはアクセス可能であるが、それ以外の装置からはアクセス不能とされてもよい。
【0055】
ストレージ100に記憶されるゲームデータ101の少なくとも一部は、ゲームサーバ装置50のストレージ53に記憶されてもよい。同様に、ストレージ100に記憶されるゲームデータ102の少なくとも一部は、ゲームサーバ装置60のストレージ63に記憶されてもよい。
【0056】
リンクデータ103の例が
図5に示されている。図示のように、リンクデータ103には、移行元のプラットフォームにおける移行元アカウント情報及び移行先のプラットフォームにおける移行先アカウント情報が含まれる。リンクデータ103においては、移行元アカウント情報が移行先アカウント情報と対応付けられている。
図5には、ゲームデータをプラットフォーム1Aからプラットフォーム1Bに移行する実施形態におけるリンクデータ103の例が示されている。
図5の移行元アカウント情報は、移行元のプラットフォーム1AにおけるユーザAのユーザ識別情報(第1ユーザID)であり、移行先アカウント情報は、移行先のプラットフォーム1BにおけるユーザAのユーザ識別情報(第2ユーザID)である。
【0057】
続いて、ゲーム処理システム1を構成する各装置の機能について説明する。まず、プラットフォームサーバ装置30及びプラットフォームサーバ装置40の機能について説明する。プラットフォームサーバ装置30のプロセッサ31は、コンピュータ読み取り可能な命令を実行することにより、第1プラットフォームサービスに関する各種機能(決済機能等)を実行するように構成される。同様に、プラットフォームサーバ装置40のプロセッサ41は、コンピュータ読み取り可能な命令を実行することにより、第2プラットフォームサービスに関する各種機能(決済機能等)を実行するように構成される。
【0058】
プラットフォームサーバ装置40のプロセッサ41は、コンピュータ読み取り可能な命令を実行することにより、さらにコード生成部41a及び判定部41bとして機能するように構成される。
【0059】
一実施形態において、コード生成部41aは、クライアント装置20からの要求(識別コード要求)に基づいて識別コードを生成し、生成された識別コードをクライアント装置20に送信する。この識別コードは、識別データを所定の符号化方式で符号化することにより生成される。この識別データには、識別コード要求を送信したクライアント装置20を使用しているユーザAのプラットフォーム1Bにおけるユーザ識別情報(第2ユーザID)が含まれる。識別コードは、例えば、光学的に読み取り可能なコードであってもよい。識別コードは、QRコード(登録商標)であってもよい。QRコードは、周知のように、マトリクス型二次元コードである。本明細書では、識別コードとしてQRコードが使用される実施形態について主に説明する。ただし、QRコードは、識別コードの一例であり、本発明の識別コードとしてはQRコード以外の様々な光学的に読み取り可能なコード及びその他のコードが使用され得る。
【0060】
コード生成部41aによって符号化される識別データには、識別コードの発行を要求したユーザAのプラットフォーム1Bにおけるユーザ識別情報(第2ユーザID)に加えて、識別コードの発行者名(例えば、プラットフォームサーバ装置40の名称)、識別コードの有効期限、リプレイ攻撃対策用パラメータ(例えば、ノンス(nonce))、及びこれら以外の情報のうちの少なくとも一つが含まれ得る。
【0061】
一実施形態において、コード生成部41aは、識別データを秘密鍵で署名することにより電子署名付きのトークンを生成し、この生成されたトークンを符号化してQRコードを生成する。このトークンは、例えば、JWT(JSON Web Token)形式のトークンであってもよい。
【0062】
判定部41bは、後述するリンク通知に基づいて、プラットフォーム1Bへのゲームデータを移行するためのリンク処理が完了したか否かを判定する。判定部41bは、移行処理が完了したと判定した場合には、移行データ43aの移行ステータス情報を更新する。移行ステータス情報が2値のフラグ情報である場合には、このフラグ情報は、移行処理が完了したことに応じて、ゲームデータの移行処理が完了したことを示す「1」に設定される。
【0063】
次に、クライアント装置10及びクライアント装置20の機能について説明する。図示の実施形態において、クライアント装置10のプロセッサ11は、コンピュータ読み取り可能な命令を実行することにより、ゲーム進行部11a、コード読取部11b、及び引継要求部11cとして機能する。クライアント装置20のプロセッサ21は、コンピュータ読み取り可能な命令を実行することにより、ゲーム進行部21a及びコード出力部21bとして機能する。
【0064】
ゲーム進行部11aは、クライアント装置10の入力機構(例えば、タッチパネル)を介したユーザからの操作入力に応じてゲームを進行させる。ゲーム進行部21aは、ゲーム進行部11aと同様に、ユーザからの操作入力に応じてゲームを進行させる。ユーザからの操作入力は、例えば、プレイヤキャラクタの行動を指定するための入力である。
【0065】
クライアント装置20のコード出力部21bは、プラットフォームサーバ装置40から受信したQRコードをディスプレイ23に表示する。
【0066】
クライアント装置10のコード読取部11bは、クライアント装置20のディスプレイ23に表示されたQRコードを読み取る。コード読取部11bは、クライアント装置10に備えられたカメラを介して、クライアント装置20のディスプレイ23に表示されたQRコードを読み取る。コード読取部11bは、読み取ったQRコードをデコードし、識別データを得る。
【0067】
引継要求部11cは、ゲームデータをプラットフォーム間で連携させるための引継要求をゲームサーバ装置50に送信する。この引継要求には、コード読取部11bで得られた識別データとともにゲームサーバ装置50に送信される。この引継要求は、クライアント装置10のユーザのプラットフォーム1Aにおけるユーザ識別情報(第1ユーザID)とともにゲームサーバ装置50に送信されてもよい。
【0068】
次に、ゲームサーバ装置50及びゲームサーバ装置60の機能について説明する。ゲームサーバ装置50のプロセッサ51は、コンピュータ読み取り可能な命令を実行することにより、ゲーム管理部51a、検証部51b、及びリンク部51cとして機能する。ゲームサーバ装置60のプロセッサ61は、コンピュータ読み取り可能な命令を実行することによりゲーム管理部61aとして機能する。
【0069】
ゲーム管理部51a及びゲーム管理部61aは、ゲームを進行させるための様々な処理を行う。ゲーム管理部51aは、例えば、クライアント装置10からのゲームメッセージを所定のゲームロジックに基づいて処理し、また、対戦ゲームを実行するための様々なゲームデータをクライアント装置10に提供することで、ゲームの進行を制御することができる。ゲーム管理部51aは、例えば、クライアント装置10からアイテムの使用を指示するアイテム使用メッセージを受信した場合には指示されたアイテムを使用するための処理を行う。ゲーム管理部61aは、ゲーム管理部51aと同様の処理を行ってもよい。
【0070】
検証部51bは、所定の検証アルゴリズムに従って、クライアント装置10から受信した識別データを検証する。例えば、識別データが秘密鍵によって署名されている場合には、当該秘密鍵に対応する公開鍵を用い、所定の検証アルゴリズムに従って、当該識別データの正当性(validity)が検証される。これにより、検証部51bは、クライアント装置10から受け取った識別データがプラットフォームサーバ装置40によって正当に署名されたものであるか否かを判定することができる。識別データに識別コードの発行者名が含まれている場合には、検証部51bは、当該発行者名が正当な発行者であるか否かを判定してもよい。
【0071】
一実施形態において、リンク部51cは、識別データがプラットフォームサーバ装置40によって正当に署名されたと判定されたときに、プラットフォーム1Aにおいて提供されているゲーム(すなわち、ゲームサーバ装置50が提供するゲーム)で蓄積されたユーザAのゲームデータをプラットフォーム1Bへ引き継ぐためのリンク処理を行うように構成される。このリンク処理は、リンクデータ103を生成し、生成されたリンクデータ103をストレージ100に記憶することにより行われる。すなわち、リンク部51cは、クライアント装置10から受信した識別データに含まれているユーザAのプラットフォーム1Bにおけるユーザ識別情報(第2ユーザID)と、当該ユーザAのプラットフォーム1Aにおけるユーザ識別情報(第1ユーザID)と、を対応付けて、リンクデータ103としてストレージ100に記憶する。リンクデータ103は、ストレージ100以外のストレージに記憶されてもよい。例えば、リンクデータ103は、ストレージ43、ストレージ53、ストレージ63、及びこれら以外の任意のストレージのうちのいずれか一つ記憶されてもよく、これらのストレージに分散して記憶されてもよい。
【0072】
検証部51bは、識別データに識別コードの発行者名が含まれている場合には、当該発行者名が正当な発行者であると判定された場合に、当該リンク処理を行うように構成されてもよい。検証部51bは、識別データに識別コードの有効期限が含まれている場合には、有効期限内であると判定された場合に、当該リンク処理を行うように構成されてもよい。
【0073】
続いて、
図6から
図8を参照して、プラットフォーム1Aからプラットフォーム1Bにゲームデータを引き継ぐための引継処理について説明する。
図6は、一実施形態によるゲーム処理システムにおける処理を説明するためのシーケンス図であり、
図7は、クライアント装置20にて表示される表示画像の例を示す模式図であり、
図8は、クライアント装置20にて表示される識別コードの例を示す模式図である。
【0074】
図6に示されている引継処理の開始時においては、ユーザAは、プラットフォーム1Aにログインし、クライアント装置10を介してゲームサーバ装置50にアクセスすることで、プラットフォーム1Aにおいてゲームをプレイしたことがあり、その結果、ユーザAの第1ユーザIDに対応付けて当該ユーザAのゲームデータ101がストレージ100に記憶されていることが想定されている。そして、ユーザAは、このプラットフォーム1Aにおいて蓄積されたゲームデータをプラットフォーム1Bに引き継ごうとしていることが想定されている。
図6に示されている例では、プラットフォーム1Aが移行元のプラットフォームであり、プラットフォーム1Bが移行先のプラットフォームである。
【0075】
ゲームデータの引継処理においては、まず、ステップST1において、クライアント装置20のディスプレイ23にゲームの初期画面が表示される。
図7に、クライアント装置20に表示される初期画面の例が模式的に示されている。図示のように、クライアント装置20に表示される初期画面は、データの引継ぎ処理を行うことなくゲームを開始するためのゲーム開始ボタン71と、ゲームデータの引継処理を開始するためのデータ引継ぎボタン72と、を含む。ユーザAによってゲーム開始ボタン71が選択されると、ゲームプログラム並びにユーザの操作入力に従ってゲームを進行させるための処理が実行される。ゲームを進行させる際に、クライアント装置20は、ゲームサーバ装置60へ随時アクセスする。このクライアント装置20においてゲームを進行させる処理は、例えば、ゲーム進行部21a及びゲーム管理部61aによって実行される。
【0076】
他方、ユーザAによってデータ引継ぎボタン72が選択されると、引継処理はステップST2に進む。ステップST2おいては、識別コード要求がクライアント装置20からプラットフォームサーバ装置40に送信される。
【0077】
クライアント装置20から送信された識別コード要求は、ステップST3において、プラットフォームサーバ装置40により受信される。次に、ステップST4において、プラットフォームサーバ装置40は、受信した識別コード要求に基づいて、ユーザAのプラットフォーム1Bにおけるユーザ識別情報である第2ユーザIDを含む識別データを符号化して識別コードを生成する。識別データにはユーザAの第2ユーザIDに加えて、ノンスを含んでもよい。この識別データは、秘密鍵によって署名されたものでもよい。識別コードの生成は、例えば、上記のコード生成部41aによって行われる。
【0078】
この識別コードの生成と並行して、または、識別コードの生成の前又は後に、識別データの一部又は全部が、移行データ43aの形式でストレージ43に記憶される。ステップST4の処理時点では、ゲームデータの移行処理が完了していないため、移行データ43aの移行ステータス情報の値は「0」に設定される。
【0079】
次に、ステップST5において、生成された識別コードがクライアント装置20に送信され、続いて、ステップST6において、当該識別コードがクライアント装置20によって受信される。受信された識別コードは、ステップST7においてクライアント装置20のディスプレイ23に表示される。ステップST7では、
図8に示すように、QRコードの画像81がディスプレイ23の所定の領域に表示される。
【0080】
次に、クライアント装置20においては、ステップST8aにおいて移行状況の確認要求がプラットフォームサーバ装置40に対して定期的に送信される。これに応じて、ステップST8bでは、移行データ43aをチェックし、ユーザAの第2ユーザIDに対応付けられている移行ステータス情報の値が「0」であればゲームデータの移行が完了していないと判断し、その旨を示す通知をクライアント装置20に返す。移行状況の確認要求は、移行ステータス情報の値が「1」に書き換えられるまで、クライアント装置20から定期的に送信されてもよい。
【0081】
クライアント装置10においては、ステップST9において、クライアント装置20に表示されたQRコードが読み取られる。この読み取られたQRコードは、デコードされて識別データが得られる。QRコードの読み取り及びデコードは、例えば、上記のコード読取部11bにより行われる。
【0082】
QRコードをデコードして得られた識別データは、ステップST10においてゲームサーバ装置50に送信される。この識別データは、ステップST11において、ゲームサーバ装置50により受信される。
【0083】
受信された識別データは、ステップST12において検証される。例えば、識別データに電子署名が付与されている場合には、当該秘密鍵に対応する公開鍵を用いることで、正当な署名者によって署名されたものか否かが検証される。識別データの検証は、例えば、上記の検証部51bによって行われる。
【0084】
ステップST12において、識別データが不当(invalid)と判定された場合には、次工程へは進まずに、ゲームデータの移行処理を終了する。この場合、プラットフォーム1Aからプラットフォーム1Bへのゲームデータの移行を行わずに、引継処理は終了する。
【0085】
他方、識別データが正当(valid)と判定されたときには、引継処理はステップST13へ進み、ユーザAのゲームデータをプラットフォーム1Bへ引き継ぐためのリンク処理が行われる。具体的には、正当性が確認された識別データに含まれているユーザAのプラットフォーム1Aにおけるユーザ識別情報(第1ユーザID)と当該ユーザAのプラットフォーム1Bにおけるユーザ識別情報(第2ユーザID)とが紐付けられて、リンクデータ103としてストレージ100に記憶される。このリンク処理は、例えば、上記のリンク部51cによって行われる。
【0086】
ステップST13におけるリンク処理が完了すると、処理はステップST14に進み、リンク処理が完了したことを示すリンク通知がゲームサーバ装置50からプラットフォームサーバ装置40に送信される。このリンク通知には、リンクデータ103の生成に用いられた識別データに含まれているノンスが含められてもよい。
【0087】
クライアント装置10におけるステップST9及びステップST10の処理、並びに、ゲームサーバ装置50におけるステップST11〜ステップST14の処理は、クライアント装置20におけるステップST8aの処理及びプラットフォームサーバ装置40におけるステップST8bの処理と並行して実行されてもよい。
【0088】
ゲームサーバ装置50から送信されたリンク通知は、ステップST15において、プラットフォームサーバ装置40により受信される。次に、ステップST16では、ステップST15にて受信されたリンク通知に含まれているノンスを用いて、当該リンク通知が正当か否か判定される。具体的には、移行データ43aにおいて、リンク通知に含まれているノンスに対応する移行ステータス情報がゲームデータの移行処理が完了したことを示す「0」に設定されていれば、当該ノンスの使用は初めてであるため、当該リンク通知は正当と判定される。逆に、移行データ43aにおいて、リンク通知に含まれているノンスに対応する移行ステータス情報がゲームデータの移行処理が完了したことを示す「1」に設定されていれば、当該ノンスの使用は初めてではないため、当該リンク通知は不当と判定される。ステップST16における判定処理は、例えば、上記の判定部41bにより行われる。
【0089】
ステップST16においてリンク通知が正当と判定された場合には、ステップST17において、移行データ43aにおいて、当該ノンスに対応する移行ステータス情報がゲームデータの移行処理が完了したことを示す「1」に更新される。また、ステップST18において、ゲームデータの移行処理が完了したことを示す移行完了通知がクライアント装置20に送信される。
【0090】
次に、ステップST19において、クライアント装置20により移行完了通知が受信される。
【0091】
次に、ステップST20において、クライアント装置20でゲームが開始され、ユーザAの操作に応じてゲームが進行される。クライアント装置20はゲームサーバ装置60と協調して当該ゲームを進行させるため、このゲームは、プラットフォーム1Bにおいて提供される。また、このゲームは、リンクデータ103を参照することにより、プラットフォーム1Aで蓄積されたゲームデータ101を利用することができる。具体的には、以下の手順で、クライアント装置20は、プラットフォーム1Bでゲームを実行中に、プラットフォーム1Aで蓄積されたゲームデータ101を利用することができる。まず、クライアント装置20又はゲームサーバ装置60は、プラットフォーム1Bでのゲームの実行中に、ストレージ100にゲームデータの取得要求を送信する。この取得要求は、ユーザAのプラットフォーム1BにおけるユーザAのユーザ識別情報(第2ユーザID)とともにストレージ100に送信される。ストレージ100は、リンクデータ103を参照し、受信した第2ユーザIDに対応付けられている第1ユーザIDを特定する。次に、プラットフォーム1Aのゲームデータ101から第1ユーザIDに対応するデータ又はその一部を抽出し、抽出されたデータをクライアント装置20又はゲームサーバ装置60に返す。つまり、ユーザAの第2ユーザID及びリンクデータ103に基づいてプラットフォーム1Aにおける当該ユーザAのゲームデータ101を特定し、このようにして特定されたゲームデータ101から抽出されたデータを用いてプラットフォーム1Bでゲームが進めされる。このようにして、クライアント装置20及びゲームサーバ装置60は、プラットフォーム1Bでのゲームの実行中に、プラットフォーム1Aで蓄積されたゲームデータ101を利用することができる。つまり、プラットフォーム1Aで蓄積されたゲームデータのプラットフォーム1Bへの引継ぎが実現されている。
【0092】
上記実施形態によれば、プラットフォーム1Aとプラットフォーム1Bとでは互いに異なるユーザ識別情報が用いられているが、プラットフォーム1Aにおいて用いられている第1ユーザIDとプラットフォーム1Bにおいて用いられる第2ユーザIDとが対応付けられたリンクデータ103を参照することにより、互いに異なるユーザ識別情報が用いられるプラットフォーム間でゲームデータを引き継ぐことができる。
【0093】
上記実施形態によれば、ゲームデータの引継ぎに用いられる識別コードが、移行先のプラットフォーム(プラットフォーム1B)において生成される。これにより、移行元のプラットフォーム(プラットフォーム1A)において引継ぎのためのコードを生成できない場合であっても、移行先のプラットフォームにおいて生成される識別コードを用いてゲームデータの引継ぎを行うことができる。
【0094】
上記実施形態によれば、ゲームデータの引継ぎに用いられる識別コードが移行先のプラットフォーム(プラットフォーム1B)において生成されるため、プラットフォーム1Bの運営者は、当該識別コードを利用してプラットフォーム1Bへの移行を促進できる。例えば、プラットフォーム1Aの運用を停止しようとするときに、プラットフォーム1Aの既存ユーザがプラットフォーム1Bへ移行することを促進できる。
【0095】
上記実施形態によれば、識別コードは、光学的に読み取り可能なコードとすることができる。識別コードが光学的に読み取り可能なコードであれば、異なるプラットフォームで利用されるクライアント装置間での識別コードの受け渡しが容易となる。
【0096】
上記実施形態によれば、識別コードがノンスを含み、リンク処理が完了したことを示す完了通知(リンク通知)は、受信した識別コードに含まれるノンスを含むように生成される。このノンスによって、識別コードは1度のみ使用が許可されることになる。よって、リプレイ攻撃によって正当でないクライアントにゲームデータが引き継がれることを防ぐことができる。
【0097】
上記実施形態によれば、前記識別データには電子署名が付与されており、公開鍵を用いて前記識別データが正当であると判定された場合に、リンクデータ103が作成される。これにより、改竄された識別コードによるゲームデータの不正な引継ぎを防止することができる。
【0098】
本発明の実施形態は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で様々な変更が可能である。例えば、プロセッサ11,21,31,41,51,61で実行される機能の一部又は全部は、発明の趣旨を逸脱しない限り、上記の実施形態では図示されていないプロセッサにより実現されてもよい。
図1においては、プロセッサ11,21,31,41,51,61が単一の構成要素として図示されているが、プロセッサ11,21,31,41,51,61は複数の物理的に別体のコンピュータプロセッサの集合であってもよい。本明細書において、プロセッサ11,21,31,41,51,61によって実行されるとして説明されるプログラム又は当該プログラムに含まれる命令は、単一のプロセッサで実行されてもよいし、複数のプロセッサにより分散して実行されてもよい。また、プロセッサ11,21,31,41,51,61によって実行されるプログラム又は当該プログラムに含まれる命令は、複数の仮想コンピュータプロセッサにより実行されてもよい。
【0099】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【0100】
本明細書において説明された処理手順、特にフロー図又はシーケンス図を用いて説明された処理手順においては、その処理手順を構成する工程(ステップ)の一部を省略すること、その処理手順を構成する工程として明示されていない工程を追加すること、及び/又は当該工程の順序を入れ替えることが可能であり、このような省略、追加、順序の変更がなされた処理手順も本発明の趣旨を逸脱しない限り本発明の範囲に含まれる。
本発明の一態様は、一又は複数のコンピュータプロセッサがコンピュータ読み取り可能な命令を実行することにより、ユーザを識別するために第1ユーザ識別情報が用いられる第1のプラットフォームから前記ユーザを識別するために第2ユーザ識別情報が用いられる第2のプラットフォームへ、前記第1ユーザ識別情報と対応付けて記憶されている前記ユーザの前記第1プラットフォームにおけるゲームデータを引き継ぐ方法に関する。一態様による方法は、第2のクライアント装置により出力され、前記第1のクライアント装置により読み取られた識別コードに含まれる第2ユーザ識別情報と、前記第1ユーザ識別情報とを対応付けるリンクデータを生成する工程と、前記第2ユーザ識別情報及び前記リンクデータに基づいて前記ゲームデータを特定し、前記第2のクライアント装置に対して前記ゲームデータを用いてゲームを提供する工程と、を備える