(57)【要約】【課題】端末装置を使用するユーザの不正行為によってゲームデータが改ざんされる蓋然性を低減する。【解決手段】プログラムは、サーバ装置１０と通信してゲームを実行する端末装置２０に、サーバ装置１０によって生成及び記憶されたトークンを、サーバ装置１０から受信して端末記憶部２２に記憶するステップと、ユーザのゲームデータの更新指示とトークンを少なくとも含む被暗号化情報を暗号化した暗号化情報とを含む被送信情報をサーバ装置１０へ送信するステップと、端末記憶部２２に記憶されたトークンを消去するステップと、を実行させる。更新指示は、暗号化情報を復号化して抽出されるトークンとサーバ装置１０に記憶されたトークンとが一致する場合、サーバ装置１０に記憶されたゲームデータを更新させる第１指示を含む。【選択図】図１
2019107082.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と通信してゲームを実行する端末装置に、
前記サーバ装置によって生成及び記憶されたトークンを、前記サーバ装置から受信して端末記憶部に記憶する第１記憶ステップと、
ユーザのゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信する送信ステップと、
前記端末記憶部に記憶された前記トークンを消去するステップと、
を実行させ、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致する場合、前記サーバ装置に記憶された前記ゲームデータを更新させる第１指示を含む、
プログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記更新指示は、前記端末装置によってゲーム処理が実行された結果として前記ゲームデータが更新される場合における前記ゲームデータの更新前後の差分を示す情報を含み、
前記被暗号化情報は、実行された前記ゲーム処理の再現に用いられる再現用情報を更に含む、プログラム。
【請求項３】
請求項２に記載のプログラムであって、
前記ゲーム処理は、前記ゲームに含まれる複数のゲームパートのうち一部のゲームパートにおいて実行され、
前記再現用情報は、前記ゲーム処理が実行されたゲームパートを示す情報、及び前記ゲーム処理に用いられたゲームパラメータのうち、少なくとも１つを含む、プログラム。
【請求項４】
請求項２又は３に記載のプログラムであって、
前記ゲーム処理は、前記サーバ装置から取得される乱数種を用いる抽選処理を含み、
前記再現用情報は、前記抽選処理に用いられた乱数種の値、抽選結果値、抽選最小値、抽選最大値、及び抽選試行回数のうち、少なくとも１つを含む、プログラム。
【請求項５】
請求項１から４のいずれか一項に記載のプログラムであって、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致しない場合、前記サーバ装置に記憶され前記ユーザの評価を示す評価情報を修正させる第２指示を含む、プログラム。
【請求項６】
請求項１から５のいずれか一項に記載のプログラムであって、
前記端末装置に、前記サーバ装置によって生成および記憶された新たなトークンを、前記サーバ装置から受信して前記端末記憶部に記憶する第２記憶ステップを更に実行させる、プログラム。
【請求項７】
請求項６に記載のプログラムであって、
前記第１記憶ステップにおいて、前記サーバ装置によって生成及び記憶された互いに異なる複数のトークンを、前記サーバ装置から受信して端末記憶部に記憶し、
前記端末装置に、前記端末記憶部に記憶されたトークンの数が所定値まで減少すると、前記第２記憶ステップが実行されるまで前記ゲームの進行を中断するステップを更に実行させる、プログラム。
【請求項８】
請求項１から７のいずれか一項に記載のプログラムであって、
前記送信ステップにおいて、送信キューを介して前記被送信情報を前記サーバ装置へ送信し、
前記端末装置に、前記送信キューに含まれる未送信の情報の数が所定値に達すると、前記送信キューを介して少なくとも１つの情報が前記サーバ装置へ送信されるまで前記ゲームの進行を中断するステップを更に実行させる、プログラム。
【請求項９】
請求項１から８のいずれか一項に記載のプログラムであって、
前記送信ステップは、前記ゲームにおける所定のイベントの発生に応じて実行される、プログラム。
【請求項１０】
サーバ装置と通信してゲームを実行する端末装置であって、
端末記憶部と、端末制御部と、を備え、
前記端末制御部は、
前記サーバ装置によって生成及び記憶されたトークンを、前記サーバ装置から受信して前記端末記憶部に記憶し、
ユーザのゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信し、
前記端末記憶部に記憶された前記トークンを消去し、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致する場合、前記サーバ装置に記憶された前記ゲームデータを更新させる指示を含む、
端末装置。
【請求項１１】
サーバ装置及び端末装置を備え、ゲームを実行する情報処理システムであって、
前記サーバ装置は、
ユーザのゲームデータをサーバ記憶部に記憶し、
トークンを生成して前記サーバ記憶部に記憶し、
前記トークンを前記端末装置へ送信し、
前記端末装置は、
前記トークンを前記サーバ装置から受信して端末記憶部に記憶し、
前記ユーザの前記ゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信し、
前記端末記憶部に記憶された前記トークンを消去し、
前記サーバ装置は、
前記被送信情報を前記端末装置から受信すると、前記被送信情報に含まれる前記暗号化情報を復号化して前記トークンを抽出し、
抽出された前記トークンと前記サーバ記憶部に記憶された前記トークンとが一致する場合、前記サーバ記憶部に記憶された前記ゲームデータを前記更新指示に基づいて更新し、
前記サーバ記憶部に記憶された前記トークンを消去する、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、端末装置、及び情報処理システムに関する。
【背景技術】
【０００２】
従来、サーバ装置及び端末装置等の情報処理装置を備え、ユーザにゲームを提供する情報処理システムが知られている。例えば、特許文献１には、サーバ装置及び複数の端末装置を備え、ユーザ同士が対戦を行うゲームを提供するゲームシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５８４１２８０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、サーバ装置及び端末装置を備える情報処理システムにおいて、ユーザのゲームデータをサーバ装置によって管理する構成が知られている。例えば、ユーザが端末装置を用いてゲームをプレイすると、サーバ装置と端末装置とが通信することにより、サーバ装置に記憶された当該ユーザのゲームデータ（例えば、ゲームにおけるユーザのハイスコア等）が更新される。しかしながら、従来技術では、ユーザの不正行為によって、例えば改ざんされた情報が端末装置からサーバ装置へ送信されることで、サーバ装置に記憶された当該ユーザのゲームデータが改ざんされる蓋然性がある。したがって、ユーザの不正行為によってゲームデータが改ざんされる蓋然性の低減が望まれている。
【０００５】
かかる事情に鑑みてなされた本発明の目的は、端末装置を使用するユーザの不正行為によってゲームデータが改ざんされる蓋然性を低減するプログラム、端末装置、及び情報処理システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に係るプログラムは、
サーバ装置と通信してゲームを実行する端末装置に、
前記サーバ装置によって生成及び記憶されたトークンを、前記サーバ装置から受信して端末記憶部に記憶する第１記憶ステップと、
ユーザのゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信する送信ステップと、
前記端末記憶部に記憶された前記トークンを消去するステップと、
を実行させ、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致する場合、前記サーバ装置に記憶された前記ゲームデータを更新させる第１指示を含む。
【０００７】
本発明の一実施形態に係る端末装置は、
サーバ装置と通信してゲームを実行する端末装置であって、
端末記憶部と、端末制御部と、を備え、
前記端末制御部は、
前記サーバ装置によって生成及び記憶されたトークンを、前記サーバ装置から受信して前記端末記憶部に記憶し、
ユーザのゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信し、
前記端末記憶部に記憶された前記トークンを消去し、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致する場合、前記サーバ装置に記憶された前記ゲームデータを更新させる指示を含む。
【０００８】
発明の一実施形態に係る情報処理システムは、
サーバ装置及び端末装置を備え、ゲームを実行する情報処理システムであって、
前記サーバ装置は、
ユーザのゲームデータをサーバ記憶部に記憶し、
トークンを生成して前記サーバ記憶部に記憶し、
前記トークンを前記端末装置へ送信し、
前記端末装置は、
前記トークンを前記サーバ装置から受信して端末記憶部に記憶し、
前記ユーザの前記ゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信し、
前記端末記憶部に記憶された前記トークンを消去し、
前記サーバ装置は、
前記被送信情報を前記端末装置から受信すると、前記被送信情報に含まれる前記暗号化情報を復号化して前記トークンを抽出し、
抽出された前記トークンと前記サーバ記憶部に記憶された前記トークンとが一致する場合、前記サーバ記憶部に記憶された前記ゲームデータを前記更新指示に基づいて更新し、
前記サーバ記憶部に記憶された前記トークンを消去する。
【発明の効果】
【０００９】
本発明の一実施形態に係るプログラム、端末装置、及び情報処理システムによれば、端末装置を使用するユーザの不正行為によってゲームデータが改ざんされる蓋然性が低減する。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る情報処理システムのブロック図である。
【図２】サーバ装置が記憶する情報の例を示す図である。
【図３】端末装置が記憶する情報の例を示す図である。
【図４】端末装置が生成する更新情報の例を示す図である。
【図５】端末装置が生成する被暗号化情報の例を示す図である。
【図６】端末装置が表示する第１画面の例を示す図である。
【図７】端末装置が表示する第２画面の例を示す図である。
【図８】情報処理システムの第１動作を示すシーケンス図である。
【図９】端末装置の第２動作を示すフローチャートである。
【図１０】情報処理システムの第３動作を示すシーケンス図である。
【図１１】端末装置の第４動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について説明する。
【００１２】
（ゲームシステムの構成）
図１を参照して、本発明の一実施形態に係る情報処理システム１の概要について説明する。情報処理システム１は、サーバ装置１０と、１つ以上の端末装置２０と、を備える。図１では簡便のため、３つの端末装置２０を図示しているが、端末装置２０の数は任意に定められてもよい。
【００１３】
サーバ装置１０は、例えばゲーム運営者が管理するサーバ等の情報処理装置である。端末装置２０は、例えば携帯電話、スマートフォン、タブレット端末、ＰＣ（Personal Computer）、又はゲーム装置等の、ユーザによって使用される情報処理装置である。端末装置２０は、本実施形態に係るゲームのアプリケーションプログラムを実行可能である。以下、アプリケーションプログラムを、単にアプリケーションともいう。ゲームのアプリケーションは、例えばインターネット等のネットワーク３０を介して所定のアプリケーション配信サーバから端末装置２０に取得されてもよく、或いは端末装置２０に備えられた記憶装置又は端末装置２０が読取可能なメモリカード等の記憶媒体に予め記憶されていてもよい。サーバ装置１０及び端末装置２０は、ネットワーク３０を介して通信可能に接続される。
【００１４】
サーバ装置１０及び端末装置２０は、ゲームに関する複数の処理を協働して実行する。例えば、サーバ装置１０及び端末装置２０が、一連の処理を分担して実行してもよい。また例えば、サーバ装置１０及び端末装置２０それぞれが同一の処理を実行してもよい。当該同一の処理について、サーバ装置１０と端末装置２０との間で処理結果が一致する場合、サーバ装置１０及び端末装置２０は、当該処理を完了してもよい。一方、サーバ装置１０と端末装置２０との間で処理結果が一致しない場合、サーバ装置１０及び端末装置２０は、例えばサーバ装置１０の処理結果を正として当該処理を完了してもよく、或いは当該同一の処理の実行前にプロセスを巻き戻してもよい。かかる構成によれば、例えばサーバ装置１０及び端末装置２０の間の通信品質が一時的に低下した場合であっても、直ちに処理が中断される蓋然性が低下する。また、端末装置２０において、例えばパラメータの書き換え等の不正処理が行われた場合であっても、当該不正処理を排除できる蓋然性が向上する。
【００１５】
（ゲームの概要）
本実施形態に係るゲームの概要について説明する。本実施形態に係るゲームは、１つ以上のゲームパートを含む。１つ以上のゲームパートのうち少なくとも１つのゲームパートは、後述するゲーム媒体を用いて実行されてもよい。ゲームパートの実行中、ゲーム媒体は、例えばユーザ又はＡＩ（Artificial Intelligence）によって操作されてもよい。ＡＩは、例えばサーバ装置１０又は端末装置２０に備えられたプロセッサによって実現されてもよい。
【００１６】
ゲーム媒体は、ゲームに使用される電子データであり、例えば、カード、アイテム、仮想通貨、チケット、キャラクタ、アバタ、レベル情報、ステータス情報、及びパラメータ情報（体力値や攻撃力など）、及び能力情報（スキル、アビリティ、呪文、ジョブなど）等、任意の媒体を含む。また、ゲーム媒体は、ユーザによってゲーム内で取得、所有、使用、管理、交換、合成、強化、売却、廃棄、又は贈与等され得る電子データであるが、ゲーム媒体の利用態様は本明細書で明示されるものに限られない。
【００１７】
以下、特に明示した場合を除き、「ユーザが所有するゲーム媒体」とは、当該ユーザを一意に識別可能なユーザＩＤに対応付けられたゲーム媒体を示す。また、「ゲーム媒体をユーザに付与する」とは、ゲーム媒体をユーザＩＤに対応付けることを示す。また、「ユーザが所有するゲーム媒体を破棄する」とは、ユーザＩＤとゲーム媒体との対応付けを解消することを示す。また、「ユーザが所有するゲーム媒体を消費する」とは、ユーザＩＤとゲーム媒体との対応付けの解消に応じて、何らかの効果又は影響をゲーム内で発揮させ得ることを示す。また、「ユーザが所有するゲーム媒体を売却する」とは、ユーザＩＤとゲーム媒体との対応付けを解消し、且つ、ユーザＩＤに他のゲーム媒体（例えば、仮想通貨又はアイテム等）を対応付けることを示す。また、「ユーザＡが所有するゲーム媒体をユーザＢに譲渡する」とは、ユーザＡのユーザＩＤとゲーム媒体との対応付けを解消し、且つ、ユーザＢのユーザＩＤに当該ゲーム媒体を対応付けることを示す。また、「ゲーム媒体を作成する」とは、ゲーム媒体に関する情報の少なくとも一部を定義又は決定することを示す。
【００１８】
ゲームパートは、ゲーム内でユーザがプレイ可能な任意のコンテンツを含んでもよい。例えば、ゲームパートは、クエスト、ミッション、ミニゲーム、ゲーム媒体の入手、育成、強化、及び合成、仮想空間の探索、並びに対戦相手（例えば、他のユーザ、敵キャラクタ、及び敵の建物等）との対戦等のコンテンツを含んでもよい。各ゲームパートには、１つ以上の所定のゲーム課題が設定されてもよい。ユーザによってプレイされるゲームパートに設定された１つ以上のゲーム課題の達成に成功したと判定された場合、ユーザに対して、例えばゲーム媒体等が報酬として付与されてもよい。ゲーム課題には、例えば敵キャラクタとの対戦に勝利するとの課題、仮想空間内のゴール地点まで到達するとの課題、及び所定時間が経過するまでユーザのキャラクタが所定の状態（例えば、後述する健全度がゼロの状態）にならないとの課題等、ゲームパートの内容に応じた任意の課題が採用可能である。また、ゲームパートに設定された１つ以上のゲーム課題のうち、特定のゲーム課題（クリア課題）が達成されることを、ゲームパートのクリアともいう。ゲームパートをプレイするユーザがクリア課題の達成に成功した場合、当該ゲームパートのクリアと判定され、当該ゲームパートが終了してもよい。
【００１９】
１つ以上のゲームパートには、シングルプレイ用のゲームパートと、マルチプレイ用のゲームパートと、が含まれてもよい。シングルプレイ用のゲームパートは、例えば、１人のユーザが使用する１つの端末装置２０に対するユーザ操作に基づいて実行されるゲームパート（例えば、一人用のゲームパート）を含んでもよい。例えば、１つの端末装置２０が単独で、又は１つの端末装置２０とサーバ装置１０とが協働して、シングルプレイ用のゲームパートを実行する。一方、マルチプレイ用のゲームパートは、例えば、２人以上のユーザがそれぞれ使用する２つ以上の端末装置２０に対するユーザ操作に基づいて実行される、当該２人以上のユーザに共通のゲームパート（例えば、複数人用のゲームパート）を含んでもよい。２人以上のユーザに共通のゲームパートは、例えば、当該ゲームパートの進行処理の少なくとも一部及び処理結果の少なくとも一部が、当該２人以上のユーザに対して共通して適用されるゲームパートを含んでもよい。例えば、２つ以上の端末装置２０が協働して、又は２つ以上の端末装置２０とサーバ装置１０とが協働して、マルチプレイ用のゲームパートを実行する。マルチプレイ用のゲームパートは、複数のユーザがゲーム内で対戦または協力するゲームパートを含んでもよい。１つのゲームパートが、シングルプレイ及びマルチプレイの両方に対応してもよい。
【００２０】
本実施形態の概要について説明する。サーバ装置１０及び端末装置２０のそれぞれは、ユーザのゲームデータを記憶する。以下、サーバ装置１０に記憶されるゲームデータをサーバ側ゲームデータともいい、端末装置２０に記憶されるゲームデータを端末側ゲームデータともいう。ユーザのゲームデータは、ゲームの実行に用いられるデータであって、当該ユーザに固有の任意のデータを含む。ゲームデータは、ゲームのセーブデータを含んでもよい。ゲームデータは、ゲームに関する任意の処理の実行に応じて更新され得る。
【００２１】
サーバ側ゲームデータ及び端末側ゲームデータは、互いに一致するように管理される。しかしながら、例えばユーザの不正行為によって端末側ゲームデータが改ざんされた場合、サーバ側ゲームデータ及び改ざんされた端末側ゲームデータは、必ずしも一致しない。ここで、ゲームがＲＰＧ（Role-Playing Game）である場合において、サーバ側ゲームデータ及び端末側ゲームデータが管理される例について説明する。ユーザは、例えば仮想空間内に配置されたユーザキャラクタを操作して、敵キャラクタ等の対戦相手と対戦する対戦ゲームパート、及び洞窟若しくは建造物等のダンジョンを探索する探索ゲームパート等をプレイする。例えば、対戦ゲームパート又は探索ゲームパート等を進行させるゲーム処理が実行されることによって、ユーザは、例えばキャラクタ、武器、又はアイテム等のゲーム媒体を取得し得る。
【００２２】
ユーザによってゲーム媒体が取得されると、端末側ゲームデータが更新される。例えば、ユーザがアイテムを取得すると、当該アイテムの所有数が増加するように、端末側ゲームデータが更新される。端末側ゲームデータが更新されると、サーバ側ゲームデータを更新させる指示（更新指示）が、端末装置２０からサーバ装置１０へ送信される。サーバ装置１０は、端末装置２０から受信する更新指示に基づいて、サーバ側ゲームデータを更新する。このようにして、サーバ側ゲームデータが、更新後の端末側ゲームデータに一致するように更新される。ゲームの内容は、上述したＲＰＧの例に限られず、例えばレースゲーム、シミュレーションゲーム、又はパズルゲーム等、任意に定められてもよい。
【００２３】
本実施形態では、トークンを用いてサーバ側ゲームデータの更新が行われる。具体的には、サーバ装置１０は、予め１つ以上のトークンを生成し記憶する。各トークンは、互いに区別可能な任意の情報である。例えば、トークンは、所定ビット数の文字列データであるが、これに限られない。端末装置２０は、当該１つ以上のトークンを、予めサーバ装置１０から取得して記憶する。端末装置２０は、上述のようにサーバ側ゲームデータの更新指示を送信する際、更新指示と共にトークンをサーバ装置１０へ送信する。端末装置２０は、例えば更新指示及びトークンを送信すると、自装置に記憶された当該トークンを消去する。サーバ装置１０は、端末装置２０から受信したトークンと、サーバ装置１０が予め記憶しているトークンとが一致する場合、サーバ側ゲームデータを更新して、サーバ装置１０に記憶された当該トークンを消去する。
【００２４】
一方、サーバ装置１０は、端末装置２０から受信したトークンと、サーバ装置１０が予め記憶しているトークンとが一致しない場合、サーバ側ゲームデータを更新しない。以下、サーバ装置１０が予め記憶しているトークンと一致しない、端末装置２０によって送信されたトークンを、不正なトークンともいう。また、サーバ装置１０が予め記憶しているトークンと一致する、端末装置２０によって送信されたトークンを、正規のトークンともいう。
【００２５】
また、サーバ装置１０は、端末装置２０からトークンを受信せず更新指示のみを受信した場合、サーバ側ゲームデータを更新しない。以下、端末装置２０によってトークンを伴わずに又は不正なトークンと共に送信された更新指示を、不正な更新指示ともいう。また、端末装置２０によって正規のトークンと共に送信された更新指示を、正規の更新指示ともいう。
【００２６】
かかる構成によれば、正規のトークン及び更新指示が端末装置２０からサーバ装置１０へ送信されない限り、サーバ側ゲームデータが更新されない。このため、例えばユーザが不正行為によって端末側ゲームデータを改ざんした場合に、サーバ側ゲームデータが改ざん後の端末側ゲームデータに一致するように更新される蓋然性が低減する。したがって、端末装置２０を使用するユーザの不正行為によってゲームデータが改ざんされる蓋然性が低減する。以下、本実施形態の詳細について具体的に説明する。
【００２７】
（サーバ装置の構成）
サーバ装置１０の構成について具体的に説明する。サーバ装置１０は、サーバ通信部１１と、サーバ記憶部１２と、サーバ制御部１３と、を備える。
【００２８】
サーバ通信部１１は、外部装置と無線又は有線によって通信し、情報の送受信を行う１つ以上のインタフェースを含む。サーバ通信部１１は、例えば無線ＬＡＮ（Local Area Network）通信モジュール又は有線ＬＡＮ通信モジュール等を含んでもよい。サーバ通信部１１は、ネットワーク３０を介して、端末装置２０との間で情報を送受信可能である。
【００２９】
サーバ記憶部１２は、１つ以上のメモリを含む。メモリは、例えば半導体メモリ、磁気メモリ、又は光メモリ等を含んでもよい。サーバ記憶部１２に含まれる各メモリは、例えば主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。サーバ記憶部１２は、ゲームの処理に用いられる情報及びプログラムを記憶する。
【００３０】
図２を参照して、サーバ記憶部１２に記憶される情報の例について説明する。サーバ記憶部１２は、情報処理システム１を利用するユーザ毎に、ユーザＩＤと、１つ以上のトークンと、公開鍵と、サーバ側ゲームデータと、評価情報と、を記憶する。１つ以上のトークン、公開鍵、サーバ側ゲームデータ、及び評価情報は、ユーザＩＤに関連付けて記憶されてもよい。
【００３１】
ユーザＩＤは、ユーザを一意に識別可能な情報である。以下、ユーザＩＤを単にユーザともいう。ユーザＩＤは、例えばユーザが情報処理システム１の利用を開始する際に（例えば、アカウントを作成する際に）決定され、サーバ記憶部１２に記憶されてもよい。
【００３２】
１つ以上のトークンのそれぞれは、上述したように互いに区別可能な任意の情報である。後述するように、トークンは、サーバ制御部１３によって生成されると、サーバ記憶部１２に記憶される。後述するように、サーバ記憶部１２に記憶されたトークンは、端末装置２０から受信されるトークンとの照合に用いられる。
【００３３】
公開鍵は、後述するようにユーザの端末装置２０に記憶された秘密鍵に対応する。公開鍵は、例えば端末装置２０から予め取得される。後述するように、公開鍵は、秘密鍵を用いて暗号化された情報の復号化に用いられる。
【００３４】
サーバ側ゲームデータは、ゲームの実行に用いられるデータであって、ユーザに固有の任意のデータを含む。例えば、サーバ側ゲームデータは、ユーザがゲーム内で所有するゲーム媒体を含んでもよいが、これに限られない。上述したように、サーバ側ゲームデータは、端末装置２０に記憶された端末側ゲームデータに一致するように更新され得る。
【００３５】
評価情報は、ユーザの評価を示す情報である。後述するように、評価情報は、不正なトークン又は不正な更新指示が端末装置２０からサーバ装置１０へ送信される度に、例えばユーザの評価を下げる方向に修正され得る。後述するように、評価情報は、例えばユーザのアカウントを停止させるか否かの判定に用いられてもよい。アカウントの停止によって、ユーザによるゲームのプレイが禁止され得る。また評価情報は、端末側ゲームデータをサーバ側ゲームデータに一致させるように更新させるか否かの判定に用いられてもよい。例えば、改ざん後のゲームデータである端末側ゲームデータが、改ざん前のゲームデータであるサーバ側ゲームデータに一致するように更新され得る。
【００３６】
図１に示すサーバ制御部１３は、１つ以上のプロセッサを含む。プロセッサは、汎用のプロセッサ、及び特定の処理に特化した専用プロセッサを含んでもよい。サーバ制御部１３は、サーバ装置１０全体の動作を制御する。例えば、サーバ制御部１３は、サーバ通信部１１を介して情報の送受信が可能である。サーバ制御部１３は、情報をサーバ記憶部１２に記憶可能である。サーバ制御部１３の動作の詳細については後述する。
【００３７】
（端末装置の構成）
端末装置２０の構成について具体的に説明する。図１に示すように、端末装置２０は、端末通信部２１と、端末記憶部２２と、表示部２３と、入力部２４と、端末制御部２５とを備える。
【００３８】
端末通信部２１は、外部装置と無線又は有線によって通信し、情報の送受信を行うインタフェースを含む。端末通信部２１は、例えばＬＴＥ（Long Term Evolution）（登録商標）等のモバイル通信規格に対応する無線通信モジュール、無線ＬＡＮ通信モジュール、又は有線ＬＡＮ通信モジュール等を含んでもよい。端末通信部２１は、ネットワーク３０を介して、サーバ装置１０との間で情報を送受信可能である。
【００３９】
端末記憶部２２は、１つ以上のメモリを含む。端末記憶部２２に含まれる各メモリは、例えば主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。端末記憶部２２は、端末装置２０に内蔵されてもよく、或いは任意のインタフェースを介して端末装置２０に接続されてもよい。端末記憶部２２は、ゲームの処理に用いられる情報及びプログラムを記憶する。
【００４０】
図３を参照して、端末記憶部２２に記憶される情報の例について説明する。端末記憶部２２は、ゲームアプリケーションと、ユーザＩＤと、１つ以上のトークンと、秘密鍵と、端末側ゲームデータと、を記憶する。
【００４１】
ゲームアプリケーションは、本実施形態に係るゲームを実行するためのアプリケーションである。例えば、ゲームアプリケーションが起動した状態で、ユーザはゲームをプレイ可能である。
【００４２】
ユーザＩＤは、ユーザを一意に識別可能な情報であって、上述したサーバ記憶部１２に記憶されたユーザＩＤに対応する。
【００４３】
１つ以上のトークンのそれぞれは、互いに区別可能な任意の情報である。後述するように、トークンは、サーバ装置１０から端末装置２０へ送信されると、端末記憶部２２に記憶される。したがって、端末記憶部２２に記憶された１つ以上のトークンは、サーバ装置１０に記憶された１つ以上のトークンと同一である。
【００４４】
秘密鍵は、上述したサーバ記憶部１２に記憶された公開鍵に対応する。後述するように、秘密鍵は、端末装置２０からサーバ装置１０へ送信される情報の暗号化に用いられる。
【００４５】
端末側ゲームデータは、ゲームの実行に用いられるデータであって、ユーザに固有の任意のデータを含む。上述したように、サーバ装置１０に記憶されたサーバ側ゲームデータが、端末側ゲームデータに一致するように更新され得る。
【００４６】
図１に示す表示部２３は、例えば液晶ディスプレイ又は有機ＥＬディスプレイ等の表示デバイスを含む。表示部２３は、多様な画面を表示可能である。
【００４７】
入力部２４は、ユーザ操作を受け付ける任意の入力インタフェースを含む。入力インタフェースは、例えばマウス等のポインティングデバイス、物理キー、及び表示部２３と一体的に設けられたタッチパネル等を含んでもよい。
【００４８】
端末制御部２５は、１つ以上のプロセッサを含む。端末制御部２５は、端末装置２０全体の動作を制御する。例えば、端末制御部２５は、端末通信部２１を介して情報の送受信が可能である。端末制御部２５は、情報を端末記憶部２２に記憶可能である。端末制御部２５は、表示部２３に情報を表示可能である。端末制御部２５は、入力部２４に対するユーザ操作を検出可能である。端末制御部２５の動作の詳細については後述する。
【００４９】
（サーバ装置及び端末装置の動作例）
サーバ装置１０のサーバ制御部１３及び端末装置２０の端末制御部２５の動作例について、具体的に説明する。
【００５０】
サーバ制御部１３は、上述したユーザＩＤ、公開鍵、サーバ側ゲームデータ、及び評価情報をサーバ記憶部１２に記憶する。サーバ制御部１３は、１つ以上のトークンを生成する。サーバ制御部１３は、当該１つ以上のトークンをサーバ記憶部１２に記憶する。サーバ制御部１３は、生成された当該１つ以上のトークンを端末装置２０へ送信する。端末制御部２５は、当該１つ以上のトークンを、サーバ装置１０から受信して端末記憶部２２に記憶する。したがって、サーバ記憶部１２及び端末記憶部２２のそれぞれに、当該１つ以上のトークンが記憶される。
【００５１】
端末制御部２５は、例えばユーザ操作に応じて、ゲームアプリケーションを起動する。端末制御部２５は、例えばユーザ操作に応じて又は自動的に、ゲーム処理を実行する。ゲーム処理の実行によって、ゲームパート（例えば、対戦相手との対戦を行う対戦ゲームパート、又はダンジョンの探索を行う探索ゲームパート等）が進行してもよい。端末制御部２５は、ゲーム処理が実行された結果に応じて、端末記憶部２２に記憶された端末側ゲームデータを更新し得る。例えば、対戦ゲームパートのゲーム処理が実行された結果としてユーザが対戦相手に勝利しゲーム媒体を獲得した場合、又は、探索ゲームパートのゲーム処理が実行された結果としてユーザが宝箱からゲーム媒体を獲得した場合、ユーザによる当該ゲーム媒体の所有数が増加するように、端末側ゲームデータが更新される。
【００５２】
端末側ゲームデータを更新すると、端末制御部２５は、更新情報と、トークンを含む被暗号化情報と、を生成する。更新情報及び被暗号化情報の詳細については後述する。端末制御部２５は、サーバ側ゲームデータを更新させる指示であって更新情報を含む更新指示と、秘密鍵を用いて被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を送信キューに追加する。送信キューには、被送信情報に限られず、任意の情報が追加されてもよい。端末制御部２５は、送信キューを介して被送信情報をサーバ装置１０へ送信する。送信キューを介する情報の送信は、任意のタイミングで実行されてもよい。例えば、送信キューを介する情報の送信は、ゲームにおける所定のイベントの発生に応じて実行されてもよい。当該イベントは、例えば所定のゲーム画面への遷移イベント、ゲームにおける所定の内部状態への遷移イベント、及び所定のゲームパートが開始又は終了するイベント等を含んでもよい。ゲームの内部状態は、例えば実行されるゲームパート又はゲーム処理等に応じて予め定義された状態である。ゲームの内部状態に基づいて、実行されたゲームパート又はゲーム処理等が判別可能である。端末制御部２５は、送信された被送信情報に含まれるトークンを端末記憶部２２から消去する。
【００５３】
ここで、更新指示及び被暗号化情報について詳細に説明する。サーバ側ゲームデータの更新指示は、第１指示及び第２指示を含む。第１指示は、暗号化情報を復号化して抽出されるトークンとサーバ記憶部１２に記憶されたトークンとが一致する場合、サーバ側ゲームデータを更新させる指示である。第２指示は、暗号化情報を復号化して抽出されるトークンとサーバ記憶部１２に記憶されたトークンとが一致しない場合、サーバ記憶部１２に記憶された評価情報を修正させる指示である。
【００５４】
また、サーバ側ゲームデータの更新指示は、例えば図４に示すように、ユーザＩＤと、差分データと、署名ＩＤと、を有する更新情報を含む。差分データは、上述のようにゲーム処理が実行された結果として端末側ゲームデータが更新される場合における、端末側ゲームデータの更新前後の差分を示す情報である。例えば、端末側ゲームデータの更新によって、ユーザによるゲーム媒体の所有数が１個から６個に増加した場合、差分データは、当該ゲーム媒体のＩＤと、ユーザによる当該ゲーム媒体の所有数の差分値（＋５個）と、を含んでもよい。署名ＩＤは、後述するように被暗号化情報に含まれる署名ＩＤと同一である。署名ＩＤを介して、更新指示及び更新情報と、被暗号化情報と、が関連付けられる。サーバ側ゲームデータの更新指示は、上述した例に限られず、サーバ側ゲームデータの更新に用いられる任意の情報を含んでもよい。
【００５５】
被暗号化情報は、例えば図５に示すように、署名ＩＤと、トークンと、再現用情報と、を含む。署名ＩＤは、被暗号化情報を一意に識別可能な情報である。トークンは、端末記憶部２２に記憶された１つ以上のトークンのうちから選択される。再現用情報は、上述のように端末制御部２５によってゲーム処理が実行された結果として端末側ゲームデータが更新された場合における、当該ゲーム処理の再現に用いられる任意の情報を含む。ここで「再現」とは、例えば端末制御部２５によって実行されたゲーム処理と同一の処理を、端末装置２０以外の他の装置が実行して同一の結果を得ることを含む。当該他の装置は、例えばサーバ装置１０であってもよいし、ゲームの提供者又は開発者が使用するコンピュータ又はスマートフォン等の情報処理装置であってもよい。
【００５６】
再現用情報の具体例について説明する。例えば、ゲーム処理が、ゲームに含まれる複数のゲームパートのうち一部のゲームパートを進行させる処理を含む場合、再現用情報は、ゲーム処理によって進行したゲームパートを示す情報を含んでもよい。ゲームパートを示す情報は、例えばゲームパートを一意に識別可能な情報であってもよいし、ゲームパートの種類（例えば、対戦ゲームパート又は探索ゲームパート等）を示す情報であってもよい。ゲームパートを示す情報によれば、当該ゲーム処理がどのゲームパートにおいて実行されたかを判別可能である。
【００５７】
また再現用情報は、端末制御部２５によるゲーム処理の実行時に用いられたゲームパラメータを示す情報を含んでもよい。具体的には、ゲーム処理が対戦ゲームパートを進行させる処理を含む場合、当該ゲーム処理の実行には、例えば対戦を行った各キャラクタのパラメータ（例えば、キャラクタの識別情報、体力、及び攻撃力等）等が、ゲームパラメータとして用いられてもよい。或いは、ゲーム処理が探索ゲームパートを進行させる処理である場合、当該ゲーム処理の実行には、例えば探索対象のダンジョンのパラメータ（例えば、ダンジョンの識別情報、及びダンジョン内に存在しユーザによって開封された宝箱の識別情報等）等が、ゲームパラメータとして用いられてもよい。
【００５８】
再現用情報に含まれる情報は、上述した例に限られず、ゲーム処理の内容に応じて任意に定められてもよい。例えば、ゲーム処理が、サーバ装置１０から取得される乱数種を用いる抽選処理を含む場合、再現用情報は、当該抽選処理に用いられた乱数種の値、抽選結果値、抽選最小値、抽選最大値、及び抽選試行回数のうち少なくとも１つを含んでもよい。
【００５９】
再現用情報の内容は、上述した例に限られない。例えば、再現用情報は、端末制御部２５によってゲーム処理が実行されたときのログ情報等、ゲーム処理の再現の用いられる任意の情報を含んでもよい。ログ情報は、例えばユーザ又はＡＩによるゲームの操作情報、及びゲームの内部状態を示す情報等、ゲーム処理に用いられた任意の情報を含んでもよい。
【００６０】
上述した再現用情報を用いてゲーム処理の再現を実行することにより、当該ゲーム処理が端末制御部２５によって実行された結果と、再現用情報を用いて当該ゲーム処理が再現された結果とが一致する。一方、例えばユーザの不正行為によって、端末制御部２５によるゲーム処理の実行結果が改ざんされた場合（例えば、「ユーザが５個のアイテムを獲得する」という結果が「ユーザが１００個のアイテムを獲得する」という結果に改ざんされた場合）、当該ゲーム処理の改ざんされた実行結果と、再現用情報を用いて当該ゲーム処理が再現された結果とが一致しないこととなる。したがって、再現用情報を用いることによって、例えばゲームの提供者又は開発者がユーザによる不正行為を発見できる蓋然性が向上する。再現用情報を用いるゲーム処理の再現は、サーバ装置１０が実行してもよいし、専用の情報処理装置（例えば、複数のゲーム処理それぞれの再現をバッチ処理で行うバッチサーバ）が実行してもよい。
【００６１】
サーバ制御部１３は、上述した被送信情報を端末装置２０から受信すると、当該被送信情報に含まれる暗号化情報を、公開鍵を用いて復号化する。サーバ制御部１３は、復号化された暗号化情報（即ち、上述した被暗号化情報）に含まれる更新指示及びトークンを抽出する。サーバ制御部１３は、抽出された当該トークンと、サーバ記憶部１２に記憶されたトークンとが一致するか否かを判定する。
【００６２】
両者が一致すると判定された場合、サーバ制御部１３は、更新指示に含まれる第１指示に基づいて、サーバ側ゲームデータを更新する。例えば、更新指示に含まれる差分データが、ユーザが獲得したゲーム媒体のＩＤと、ユーザによる当該ゲーム媒体の所有数の差分値（＋５個）と、を含む場合、サーバ制御部１３は、ユーザが所有する当該ゲーム媒体の所有数を５個増加させるように、サーバ側ゲームデータを更新する。サーバ制御部１３は、サーバ記憶部１２に記憶された当該トークンを消去してもよいし、或いは当該トークンを、例えば使用済みトークンとしてログ情報に蓄積してもよい。
【００６３】
一方、両者が一致しないと判定された場合、サーバ制御部１３は、更新指示に含まれる第２指示に基づいて、サーバ側ゲームデータを更新することなく、サーバ記憶部１２に記憶された評価情報を修正する。例えば、サーバ制御部１３は、ユーザの評価を下げるように、評価情報を修正してもよい。
【００６４】
またサーバ制御部１３は、端末装置２０からトークンを受信せず更新指示のみを受信した場合、サーバ側ゲームデータを更新することなく、サーバ記憶部１２に記憶された評価情報を修正する。例えば、サーバ制御部１３は、ユーザの評価を下げるように、評価情報を修正してもよい。
【００６５】
上述のように、サーバ制御部１３は、端末装置２０から受信したトークンと、サーバ記憶部１２に予め記憶したトークンとが一致する場合、サーバ側ゲームデータを更新する。一方、サーバ制御部１３は、両者が一致しない場合、及び端末装置２０からトークンを受信せず更新指示のみを受信した場合、サーバ側ゲームデータを更新しない。かかる構成によれば、例えばユーザが不正行為によって端末側ゲームデータを改ざんした場合に、サーバ側ゲームデータが改ざん後の端末側ゲームデータに一致するように更新される蓋然性が低減する。したがって、端末装置２０を使用するユーザの不正行為によってゲームデータが改ざんされる蓋然性が低減する。
【００６６】
また上述のように、端末制御部２５は、被送信情報をサーバ装置１０へ送信する度、当該被送信情報に含まれるトークンを端末記憶部２２から消去する。ここで、端末制御部２５は、端末記憶部２２に記憶されたトークンの数が所定値まで減少したか否かを判定してもよい。トークンの数が所定値まで減少したと判定された場合、端末制御部２５は、新たなトークンの取得要求をサーバ装置１０へ送信する。サーバ制御部１３は、当該取得要求に応じて、新たなトークンを生成し、サーバ記憶部１２に記憶し、端末装置２０へ送信する。端末制御部２５は、当該新たなトークンをサーバ装置１０から受信し、端末記憶部２２に記憶する。
【００６７】
端末制御部２５は、サーバ装置１０から新たなトークンを受信して端末記憶部２２に記憶する処理を、ゲームの進行中にバックグラウンドで実行してもよい。当該処理がバックグラウンドで実行される場合、ゲームの進行が中断することなく、サーバ装置１０から新たなトークンが受信され記憶される。
【００６８】
或いは、端末制御部２５は、サーバ装置１０から新たなトークンを受信して端末記憶部２２に記憶する処理を、フォアグラウンドで実行してもよい。当該処理がフォアグラウンドで実行される場合、サーバ装置１０から新たなトークンが受信され記憶されるまで、ゲームの進行が中断する。例えば、端末制御部２５は、新たなトークンをサーバ装置１０から受信して端末記憶部２２に記憶するまで、ゲームの進行を中断してもよい。ゲームの進行が中断している間、端末制御部２５は、例えば専用の情報（例えば、端末装置２０とサーバ装置１０とが通信中である旨のメッセージ等）を画面に表示させたり、或いは所定のゲーム画面（例えば、ゲームの開始時に表示されるタイトル画面）を表示させたりしてもよい。かかる構成によれば、例えば端末記憶部２２に記憶されたトークンが足りずに正規の更新指示が送信できない等の不都合の発生する蓋然性が低減される。
【００６９】
また上述のように、サーバ制御部１３は、送信キューを介して被送信情報等の情報をサーバ装置１０へ送信する。ここで、端末制御部２５は、送信キューに含まれる未送信の情報の数が増加して第１所定値に達したか否かを判定してもよい。
【００７０】
未送信の情報の数が第１所定値に達していないと判定された場合、端末制御部２５は、送信キューを介して情報をサーバ装置１０へ送信する処理を、ゲームの進行中にバックグラウンドで実行する。当該処理がバックグラウンドで実行される場合、ゲームの進行が中断することなく、送信キューに含まれる未送信の情報がサーバ装置１０へ送信される。端末制御部２５は、ゲームを進行させるゲーム画面上に、端末装置２０とサーバ装置１０とがバックグラウンドで通信中であることをユーザに示唆する任意の情報を表示させてもよい。
【００７１】
例えば図６に示すゲーム画面４０は、本実施形態に係るゲームを進行させる画面の例である。ゲーム画面４０には、ユーザキャラクタ４１と、第１情報４２と、が表示されている。ユーザキャラクタ４１は、例えばユーザ操作に応じて又は自動的に、仮想空間内を移動可能である。第１情報４２は、端末装置２０とサーバ装置１０とがバックグラウンドで通信中であることをユーザに示唆する任意の情報を含む。図６に示す例では、「Ａｕｔｏ  Ｓａｖｉｎｇ」とのメッセージが、第１情報４２として表示されている。第１情報４２を視認したユーザは、端末装置２０とサーバ装置１０とがバックグラウンドで通信中であることを認識可能である。
【００７２】
一方、未送信の情報の数が第１所定値に達したと判定された場合、端末制御部２５は、送信キューを介して情報をサーバ装置１０へ送信する処理を、フォアグランドで実行する。当該処理がフォアグラウンドで実行される場合、送信キューに含まれる未送信の情報がサーバ装置１０へ送信されるまで、ゲームの進行が中断する。例えば、端末制御部２５は、送信キューを介して少なくとも１つの情報がサーバ装置１０へ送信されるまで、ゲームの進行を中断してもよい。また例えば、端末制御部２５は、送信キューに含まれる未送信の情報の数が、第１所定値よりも小さい第２所定値になるまで、ゲームの進行を中断してもよい。ゲームの進行が中断している間、端末制御部２５は、所定のゲーム画面（例えば、ゲームの開始時に表示されるタイトル画面）を表示させてもよい。或いは、端末制御部２５は、ゲームの進行が中断している間、ゲームを進行させる画面上に、端末装置２０とサーバ装置１０とがフォアグラウンドで通信中であることをユーザに示唆する任意の情報を表示させてもよい。
【００７３】
例えば図７に示すゲーム画面４０には、第２情報４３が表示されている。第２情報４３は、端末装置２０とサーバ装置１０とがフォアグラウンドで通信中であることをユーザに示唆する任意の情報を含む。図７に示す例では、「Ａｕｔｏ  Ｓａｖｉｎｇ」とのメッセージを含むダイアログボックスが、第２情報４３として表示されている。第２情報４３を認したユーザは、端末装置２０とサーバ装置１０とがフォアグラウンドで通信中であることを認識可能である。
【００７４】
図８を参照して、情報処理システム１の第１動作のフローについて説明する。第１動作は、サーバ装置１０によって生成された１つ以上のトークンをサーバ装置１０及び端末装置２０のそれぞれに記憶する情報処理システム１の動作を含む。
【００７５】
ステップＳ１００：サーバ装置１０は、１つ以上のトークンを生成する。
【００７６】
ステップＳ１０１：サーバ装置１０は、当該１つ以上のトークンをサーバ記憶部１２に記憶する。
【００７７】
ステップＳ１０２：サーバ装置１０は、生成された当該１つ以上のトークンを端末装置２０へ送信する。
【００７８】
ステップＳ１０３：端末装置２０は、当該１つ以上のトークンを、サーバ装置１０から受信して端末記憶部２２に記憶する。
【００７９】
図９を参照して、端末装置２０の第２動作のフローについて説明する。第２動作は、被送信情報を送信キューに追加する端末装置２０の動作を含む。
【００８０】
ステップＳ２００：端末装置２０は、例えばユーザ操作に応じて又は自動的に、ゲーム処理を実行する。
【００８１】
ステップＳ２０１：端末装置２０は、ゲーム処理が実行された結果に応じて、端末記憶部２２に記憶された端末側ゲームデータを更新する。
【００８２】
ステップＳ２０２：端末装置２０は、サーバ側ゲームデータを更新させる更新指示と、トークンを含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を送信キューに追加する。
【００８３】
図１０を参照して、情報処理システム１の第３動作のフローについて説明する。第３動作は、被送信情報を端末装置２０からサーバ装置へ送信する情報処理システム１の動作を含む。
【００８４】
ステップＳ３００：端末装置２０は、送信キューを介して被送信情報をサーバ装置１０へ送信する。
【００８５】
ステップＳ３０１：端末装置２０は、送信された被送信情報に含まれるトークンを端末記憶部２２から消去する。
【００８６】
ステップＳ３０２：サーバ装置１０は、端末装置２０から受信した被送信情報から、更新指示及びトークンを抽出する。
【００８７】
ステップＳ３０３：サーバ装置１０は、ステップＳ３０２で抽出されたトークンと、ステップＳ１０１でサーバ記憶部１２に記憶されたトークンとが一致するか否かを判定する。両者が一致すると判定された場合（ステップＳ３０３−Ｙｅｓ）、プロセスはステップＳ３０４に進む。一方、両者が一致しないと判定された場合（ステップＳ３０３−Ｎｏ）、プロセスはステップＳ３０６に進む。
【００８８】
ステップＳ３０４：ステップＳ３０３で両者が一致すると判定された場合（ステップＳ３０３−Ｙｅｓ）、サーバ装置１０は、更新指示に含まれる第１指示に基づいて、サーバ側ゲームデータを更新する。
【００８９】
ステップＳ３０５：サーバ装置１０は、ステップＳ３０２で抽出されたトークンと一致する、サーバ記憶部１２に記憶されたトークンを消去し、又は当該トークンを使用済みトークンとしてログ情報に蓄積する。
【００９０】
ステップＳ３０６：ステップＳ３０３で両者が一致しないと判定された場合（ステップＳ３０３−Ｎｏ）、サーバ装置１０は、更新指示に含まれる第２指示に基づいて、サーバ側ゲームデータを更新することなく、サーバ記憶部１２に記憶された評価情報を修正する。
【００９１】
図１１を参照して、端末装置２０の第４動作のフローについて説明する。第４動作は、ゲームの進行を中断する端末装置２０の動作を含む。
【００９２】
ステップＳ４００：端末装置２０は、端末記憶部２２に記憶されたトークンの数が所定値まで減少したか否かを判定する。トークンの数が所定値まで減少したと判定された場合（ステップＳ４００−Ｙｅｓ）、プロセスはステップＳ４０１に進む。一方、トークンの数が所定値まで減少したと判定されない場合（ステップＳ４００−Ｎｏ）、プロセスはステップＳ４０３に進む。
【００９３】
ステップＳ４０１：ステップＳ４００でトークンの数が所定値まで減少したと判定された場合（ステップＳ４００−Ｙｅｓ）、端末制御部２５は、新たなトークンの取得要求をサーバ装置１０へ送信する。
【００９４】
ステップＳ４０２：端末制御部２５は、新たなトークンをサーバ装置１０から受信して端末記憶部２２に記憶するまで、ゲームの進行を中断する。ゲームの進行が再開すると、プロセスはステップＳ４００に戻る。
【００９５】
ステップＳ４０３：ステップＳ４００でトークンの数が所定値まで減少したと判定されない場合（ステップＳ４００−Ｎｏ）、端末制御部２５は、送信キューに含まれる未送信の情報の数が増加して第１所定値に達したか否かを判定する。未送信の情報の数が第１所定値に達したと判定された場合（ステップＳ４０３−Ｙｅｓ）、プロセスはステップＳ４０４に進む。一方、未送信の情報の数が第１所定値に達したと判定されない場合（ステップＳ４０３−Ｎｏ）、プロセスはステップＳ４００に戻る。
【００９６】
ステップＳ４０４：ステップＳ４０３で未送信の情報の数が第１所定値に達したと判定された場合（ステップＳ４０３−Ｙｅｓ）、端末制御部２５は、送信キューを介して少なくとも１つの情報がサーバ装置１０へ送信されるまで、ゲームの進行を中断する。ゲームの進行が再開すると、プロセスはステップＳ４００に戻る。
【００９７】
以上述べたように、端末装置２０は、サーバ装置１０によって生成及び記憶されたトークンを、サーバ装置１０から受信して端末記憶部２２に記憶する。端末装置２０は、トークンを含む被送信情報をサーバ装置１０へ送信する。端末装置２０は、端末記憶部２２に記憶された当該トークンを消去する。ここで、被送信情報は、当該被送信情報に含まれるトークンと、サーバ装置１０に記憶されたトークンとが一致する場合、サーバ装置１０に記憶されたサーバ側ゲームデータを更新させる指示を含む。かかる構成によれば、端末装置２０から受信されたトークンと、サーバ装置１０に記憶されたトークンとが一致しない場合、サーバ側ゲームデータが更新されない。このため、例えばユーザが不正行為によって端末側ゲームデータを改ざんした場合に、サーバ側ゲームデータが改ざん後の端末側ゲームデータに一致するように更新される蓋然性が低減する。したがって、端末装置２０を使用するユーザの不正行為によってゲームデータが改ざんされる蓋然性が低減する。例えば端末装置２０の処理能力の向上に伴って端末装置２０に実行させる処理の割合が増加すると、端末装置２０を使用するユーザによる不正行為のリスクが高まる場合がある。本実施形態は、かかる場合に特に好適である。
【００９８】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。したがって、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【００９９】
例えば、上述した本実施形態において、サーバ装置１０が実行する動作及び処理の一部又は全部を、端末装置２０が実行する構成であってもよい。同様に、端末装置２０が実行する動作の一部を、サーバ装置１０が実行する構成であってもよい。例えば、端末装置２０に表示される各種画面の表示制御及び各種ＧＵＩの制御等の処理は、サーバ装置１０及び端末装置２０の何れか一方が実行してもよく、サーバ装置１０及び端末装置２０が協働して実行してもよい。
【０１００】
また、上述した実施形態において、図８乃至図１１を参照してサーバ装置１０及び端末装置２０の動作の例について説明した。しかしながら、当該動作に含まれる一部のステップ、又は１つのステップに含まれる一部の動作が、省略されてもよい。論理的に矛盾しない範囲内において、複数のステップの順番が入替わってもよい。
【０１０１】
また、上述した実施形態において、端末装置２０からサーバ装置１０へ送信される被送信情報は、端末装置２０に記憶された秘密鍵を用いて被暗号化情報を暗号化した暗号化情報を含む。ここで、被暗号化情報は、例えばサーバ装置１０から端末装置２０へ予め送信された公開鍵を用いて暗号化されてもよい。かかる場合、サーバ装置１０は、端末装置２０から受信した被送信情報に含まれる暗号化情報を、サーバ記憶部１２に予め記憶した秘密鍵を用いて復号化する。或いは、被送信情報が、暗号化されていない被暗号化情報を含む構成も可能である。かかる場合、端末装置２０において被暗号化情報の暗号化を行う必要はなく、サーバ装置１０において復号化を行う必要もない。
【０１０２】
また、上述した実施形態において、端末装置２０からサーバ装置１０へ送信される被送信情報に、優先度を示す情報が更に含まれる構成も可能である。例えば、端末制御部２５は、上述したように端末側ゲームデータの更新前後の差分を示す差分データを生成すると、当該差分データに基づいて優先度を決定する。差分データの内容がゲームの進行に及ぼす影響が大きいほど、高い優先度が設定されてもよい。具体的には、差分データに含まれるゲーム媒体のＩＤが、例えばゲーム内において希少価値の高い特定のゲーム媒体のＩＤである場合、端末制御部２５は、通常よりも高い優先度を決定してもよい。或いは、差分データに示される、ユーザのゲーム媒体の所有数の差分値が所定の基準値以上である場合、端末制御部２５は、通常よりも高い優先度を決定してもよい。ゲーム媒体のＩＤ又は基準値と、優先度との対応関係が予め定められていてもよい。優先度には複数の段階が存在してもよい。優先度を示す情報は、暗号化されずに被送信情報に含められてもよく、或いは暗号化されて被送信情報に含められてもよい。
【０１０３】
サーバ制御部１３は、端末装置２０から被送信情報を受信すると、当該被送信情報に示される優先度と、サーバ制御部１３の処理負担とに基づいて、当該被送信情報から抽出されるトークンと、サーバ記憶部１２に記憶されたトークンとが一致するか否かの判定を行ってもよい。例えば、サーバ制御部１３の処理負担が所定の基準以上である場合、優先度が高い被送信情報についてのみ、トークンの一致性を判定する上述の処理を実行してもよい。かかる構成によれば、例えばサーバ装置１０の処理負担が比較的高い場合であっても、ユーザの不正行為が検出される蓋然性が高まる。
【０１０４】
また、サーバ制御部１３は、両者が一致しない場合、及び端末装置２０からトークンを受信せず更新指示のみを受信した場合、優先度に基づいてユーザの評価情報を修正してもよい。例えば、サーバ制御部１３は、優先度が高いほど、当該ユーザの評価を大きく下げるように、評価情報を修正してもよい。かかる構成によれば、ユーザによる不正行為のゲームの進行に及ぼす影響が大きいほど、当該ユーザの評価が大きく下がることとなる。したがって、例えば悪質な不正行為を行うユーザを特定できる蓋然性が高まる。
【０１０５】
また、上述した実施形態において、端末装置２０に表示される画面の少なくとも一部を、サーバ装置１０が作成したデータに基づいて端末装置２０に表示させるウェブ表示とし、画面の少なくとも一部を、端末装置２０にインストールされているネイティブアプリケーションによって表示させるネイティブ表示としてもよい。このように、上述した実施形態に係るゲームは、サーバ装置１０及び端末装置２０のそれぞれが処理の一部を担うハイブリッドゲームとすることもできる。
【０１０６】
また、上述した実施形態に係るサーバ装置１０又は端末装置２０として機能させるために、コンピュータ又は携帯電話等の情報処理装置を好適に用いることができる。このような情報処理装置は、実施形態に係るサーバ装置１０又は端末装置２０の各機能を実現する処理内容を記述したプログラムを、情報処理装置の記憶部に格納し、情報処理装置のＣＰＵによって当該プログラムを読み出して実行させることによって実現可能である。
【符号の説明】
【０１０７】
１    情報処理システム
１０    サーバ装置
１１    サーバ通信部
１２    サーバ記憶部
１３    サーバ制御部
２０    端末装置
２１    端末通信部
２２    端末記憶部
２３    表示部
２４    入力部
２５    端末制御部
３０    ネットワーク
４０    ゲーム画面
４１    ユーザキャラクタ
４２    第１情報
４３    第２情報
【図１】
2019107082.tif 000003
【図２】
2019107082.tif 000004
【図３】
2019107082.tif 000005
【図４】
2019107082.tif 000006
【図５】
2019107082.tif 000007
【図６】
2019107082.tif 000008
【図７】
2019107082.tif 000009
【図８】
2019107082.tif 000010
【図９】
2019107082.tif 000011
【図１０】
2019107082.tif 000012
【図１１】
2019107082.tif 000013
【手続補正書】
【提出日】平成30年6月14日(2018.6.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバ装置と通信してゲームを実行する端末装置に、
前記サーバ装置によって生成及び記憶されたトークンを、前記サーバ装置から受信して端末記憶部に記憶する記憶ステップと、
ユーザのゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信する送信ステップと、
前記端末記憶部に記憶された前記トークンを消去する消去ステップと、
を実行させ、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致する場合、前記サーバ装置に記憶された前記ゲームデータを更新させる第１指示と、前記端末装置によってゲーム処理が実行された結果として前記ゲームデータが更新される場合における前記ゲームデータの更新前後の差分を含む情報とを含む、
プログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記被暗号化情報は、実行された前記ゲーム処理の再現に用いられる再現用情報を更に含む、プログラム。
【請求項３】
請求項２に記載のプログラムであって、
前記ゲーム処理は、前記ゲームに含まれる複数のゲームパートのうち一部のゲームパートにおいて実行され、
前記再現用情報は、前記ゲーム処理が実行されたゲームパートを示す情報、及び前記ゲーム処理に用いられたゲームパラメータのうち、少なくとも１つを含む、プログラム。
【請求項４】
請求項２又は３に記載のプログラムであって、
前記ゲーム処理は、前記サーバ装置から取得される乱数種を用いる抽選処理を含み、
前記再現用情報は、前記抽選処理に用いられた乱数種の値、抽選結果値、抽選最小値、抽選最大値、及び抽選試行回数のうち、少なくとも１つを含む、プログラム。
【請求項５】
請求項１から４のいずれか一項に記載のプログラムであって、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致しない場合、前記サーバ装置に記憶され前記ユーザの評価を示す評価情報を修正させる第２指示を含む、プログラム。
【請求項６】
請求項１から５のいずれか一項に記載のプログラムであって、
前記記憶ステップにおいて、前記サーバ装置によって生成及び記憶された互いに異なる複数のトークンを、前記サーバ装置から受信して端末記憶部に記憶する、プログラム。
【請求項７】
請求項６に記載のプログラムであって、
前記端末装置に、前記端末記憶部に記憶されたトークンの数が前記消去ステップの実行により所定値まで減少すると、前記ゲームの進行を中断して再び前記記憶ステップを実行させる、プログラム。
【請求項８】
請求項１から７のいずれか一項に記載のプログラムであって、
前記送信ステップにおいて、送信キューを介して前記被送信情報を前記サーバ装置へ送信し、
前記端末装置に、前記送信キューに含まれる未送信の情報の数が所定値に達すると、前記送信キューを介して少なくとも１つの情報が前記サーバ装置へ送信されるまで前記ゲームの進行を中断するステップを更に実行させる、プログラム。
【請求項９】
請求項１から８のいずれか一項に記載のプログラムであって、
前記送信ステップは、前記ゲームにおける所定のイベントの発生に応じて実行される、プログラム。
【請求項１０】
サーバ装置と通信してゲームを実行する端末装置であって、
端末記憶部と、端末制御部と、を備え、
前記端末制御部は、
前記サーバ装置によって生成及び記憶されたトークンを、前記サーバ装置から受信して前記端末記憶部に記憶し、
ユーザのゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信し、
前記端末記憶部に記憶された前記トークンを消去し、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致する場合、前記サーバ装置に記憶された前記ゲームデータを更新させる指示と、前記端末装置によってゲーム処理が実行された結果として前記ゲームデータが更新される場合における前記ゲームデータの更新前後の差分を含む情報とを含む、
端末装置。
【請求項１１】
サーバ装置及び端末装置を備え、ゲームを実行する情報処理システムであって、
前記サーバ装置は、
ユーザのゲームデータをサーバ記憶部に記憶し、
トークンを生成して前記サーバ記憶部に記憶し、
前記トークンを前記端末装置へ送信し、
前記端末装置は、
前記トークンを前記サーバ装置から受信して端末記憶部に記憶し、
前記ユーザの前記ゲームデータの更新指示と、前記トークンを少なくとも含む被暗号化情報を暗号化した暗号化情報と、を含む被送信情報を前記サーバ装置へ送信し、
前記端末記憶部に記憶された前記トークンを消去し、
前記更新指示は、前記暗号化情報を復号化して抽出される前記トークンと前記サーバ装置に記憶された前記トークンとが一致する場合、前記サーバ装置に記憶された前記ゲームデータを更新させる第１指示と、前記端末装置によってゲーム処理が実行された結果として前記ゲームデータが更新される場合における前記ゲームデータの更新前後の差分を含む情報とを含んでおり、
前記サーバ装置は、
前記被送信情報を前記端末装置から受信すると、前記被送信情報に含まれる前記暗号化情報を復号化して前記トークンを抽出し、
抽出された前記トークンと前記サーバ記憶部に記憶された前記トークンとが一致する場合、前記サーバ記憶部に記憶された前記ゲームデータを前記更新指示に基づいて更新し、
前記サーバ記憶部に記憶された前記トークンを消去する、
情報処理システム。