(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-16
(45)【発行日】2022-11-25
(54)【発明の名称】ゲームを提供するためのサーバ、方法、及びプログラム
(51)【国際特許分類】
A63F 13/75 20140101AFI20221117BHJP
A63F 13/355 20140101ALI20221117BHJP
A63F 13/77 20140101ALI20221117BHJP
A63F 13/79 20140101ALI20221117BHJP
【FI】
A63F13/75
A63F13/355
A63F13/77
A63F13/79
(21)【出願番号】P 2018185209
(22)【出願日】2018-09-28
(62)【分割の表示】P 2018043454の分割
【原出願日】2018-03-09
【審査請求日】2021-03-05
(73)【特許権者】
【識別番号】599115217
【氏名又は名称】株式会社 ディー・エヌ・エー
(74)【代理人】
【識別番号】100125195
【氏名又は名称】尾畑 雄一
(72)【発明者】
【氏名】森 槙悟
【審査官】西村 民男
(56)【参考文献】
【文献】特開2013-114313(JP,A)
【文献】特開2011-092240(JP,A)
【文献】特開2006-006473(JP,A)
【文献】特開2001-084232(JP,A)
【文献】特表2007-509405(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24,13/00-13/98
(57)【特許請求の範囲】
【請求項1】
1又は複数のコンピュータプロセッサを備え、ゲームを提供するためのサーバであって、
前記1又は複数のコンピュータプロセッサは、読取可能な命令の実行に応じて、
プレイヤ端末の同時接続数が所定の閾値未満である間は、複数のプレイヤ端末の各々
の前記ゲームを進行させるための所定の処理
の実行モードであって
、プレイヤ端末において入力される入力情報に少なくとも基づいて実行される前記所定の処理の実行モードとして、前記所定の処理をサーバ側で実行する第2のモードを設定する一方、プレイヤ端末の同時接続数が前記所定の閾値以上となった場合に、複数のプレイヤ端末
に含まれる特定のプレイヤ端末の前記所定の処理の実行モードとして、前記所定の処理をプレイヤ端末側で実行する第1のモードを設定するステップと、
前記第1のモードが設定されている
前記特定のプレイヤ端末から、前記特定のプレイヤ端末において入力される特定の入力情報を取得するステップと、
前記特定の入力情報に少なくとも基づいて、不正な処理が実行されたと判定するステップと、を実行し、
前記判定するステップは、不正な処理が実行されたプレイヤ端末に関する情報を更新することを含む、
サーバ。
【請求項2】
前記1又は複数のコンピュータプロセッサは、更に、前記特定の入力情報に少なくとも基づく前記所定の処理の模擬的な実行を1又は複数の他のプレイヤ端末に依頼するステップを実行し、
前記判定するステップは、前記特定のプレイヤ端末及び前記1又は複数の他のプレイヤ端末において前記特定の入力情報に少なくとも基づいてそれぞれ実行される前記所定の処理の実行結果に少なくとも基づいて、不正な処理が実行されたと判定することを含む、
請求項1のサーバ。
【請求項3】
前記1又は複数のコンピュータプロセッサは、更に、複数のプレイヤ端末の中から、所定のルールに従って、前記所定の処理の模擬的な実行を依頼する前記1又は複数の他のプレイヤ端末を選択するステップを実行する、
請求項2のサーバ。
【請求項4】
前記所定のルールは、所定のブラックリストに含まれるプレイヤ端末を除外するというルールを含み、
前記判定するステップは、前記不正な処理が実行されたプレイヤ端末に関する情報として前記所定のブラックリストを更新することを含む、
請求項3のサーバ。
【請求項5】
前記所定のルールは、ゲストアカウントでログインされているプレイヤ端末よりも通常アカウントでログインされているプレイヤ端末を優先して選択するというルールを含む、
請求項3又は4のサーバ。
【請求項6】
前記所定のルールは、前記特定のプレイヤ端末に対応する特定のプレイヤと所定の関係を有する他のプレイヤのプレイヤ端末を除外するというルールを含む、
請求項3ないし5何れかのサーバ。
【請求項7】
前記所定のルールは、前記所定の処理の実行モードとして前記第1のモードが設定されているプレイヤ端末よりも、前記所定の処理の実行モードとして前記第2のモードが設定されているプレイヤ端末を優先して選択するというルールを含む、
請求項3ないし6何れかのサーバ。
【請求項8】
前記所定のルールは、模擬的に実行中の前記所定の処理の数が少ないプレイヤ端末を優先して選択するというルールを含む、
請求項3ないし7何れかのサーバ。
【請求項9】
前記所定のルールは、処理性能が高いプレイヤ端末を優先して選択するというルールを含む、
請求項3ないし8何れかのサーバ。
【請求項10】
1又は複数のコンピュータによって実行され、ゲームを提供するための方法であって、
プレイヤ端末の同時接続数が所定の閾値未満である間は、複数のプレイヤ端末の各々
の前記ゲームを進行させるための所定の処理
の実行モードであって
、プレイヤ端末において入力される入力情報に少なくとも基づいて実行される前記所定の処理の実行モードとして、前記所定の処理をサーバ側で実行する第2のモードを設定する一方、プレイヤ端末の同時接続数が前記所定の閾値以上となった場合に、複数のプレイヤ端末
に含まれる特定のプレイヤ端末の前記所定の処理の実行モードとして、前記所定の処理をプレイヤ端末側で実行する第1のモードを設定するステップと、
前記第1のモードが設定されている
前記特定のプレイヤ端末から、前記特定のプレイヤ端末において入力される特定の入力情報を取得するステップと、
前記特定の入力情報に少なくとも基づいて、不正な処理が実行されたと判定するステップと、を備え、
前記判定するステップは、不正な処理が実行されたプレイヤ端末に関する情報を更新することを含む、
方法。
【請求項11】
ゲームを提供するためのプログラムであって、
1又は複数のコンピュータ上で実行されることに応じて、前記1又は複数のコンピュータに、
プレイヤ端末の同時接続数が所定の閾値未満である間は、複数のプレイヤ端末の各々
の前記ゲームを進行させるための所定の処理
の実行モードであって
、プレイヤ端末において入力される入力情報に少なくとも基づいて実行される前記所定の処理の実行モードとして、前記所定の処理をサーバ側で実行する第2のモードを設定する一方、プレイヤ端末の同時接続数が前記所定の閾値以上となった場合に、複数のプレイヤ端末
に含まれる特定のプレイヤ端末の前記所定の処理の実行モードとして、前記所定の処理をプレイヤ端末側で実行する第1のモードを設定するステップと、
前記第1のモードが設定されている
前記特定のプレイヤ端末から、前記特定のプレイヤ端末において入力される特定の入力情報を取得するステップと、
前記特定の入力情報に少なくとも基づいて、不正な処理が実行されたと判定するステップと、を実行させ、
前記判定するステップは、不正な処理が実行されたプレイヤ端末に関する情報を更新することを含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームを提供するためのサーバ、方法、及びプログラムに関するものである。
【背景技術】
【0002】
従来、ゲームを進行させるための演算処理や画面の描画処理がサーバ側で実行されるクラウド型のゲームシステムが提供されている。こうしたクラウド型のゲームシステムは、処理性能が低いプレイヤ端末に対して表現豊かなゲームコンテンツを提供し得るものの、同時に接続するプレイヤ数が増加するに従って、サーバ側の処理負荷が問題となる場合がある。そこで、例えば、下記特許文献1は、複数のサーバを備えるクラウド型のゲームシステムにおいて、描画処理を担当するサーバを処理負荷等に応じて変更することにより、複数のサーバ間での好適な負荷の分散を実現する技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来の技術においては、ゲームシステムにおけるサーバ側の負荷を分散させるためには複数のサーバを備える必要があり、このことは、コスト高の要因となり得る。そこで、ゲームを進行させるための処理の少なくとも一部をプレイヤ端末側で実行させることも考えられるが、この場合、改変されたプログラムをプレイヤ端末側で実行すること等によって不正な利益を得るチート行為が問題となり易い。
【0005】
本発明の実施形態は、ゲームを提供するサーバ側の処理負荷を適切に低減させることを目的の一つとする。本発明の実施形態の他の目的は、本明細書全体を参照することにより明らかとなる。
【課題を解決するための手段】
【0006】
本発明の一実施形態に係るサーバは、1又は複数のコンピュータプロセッサを備え、ゲームを提供するためのサーバであって、前記1又は複数のコンピュータプロセッサは、読取可能な命令の実行に応じて、前記ゲームを進行させるための所定の処理であってプレイヤ端末において入力される入力情報に少なくとも基づいて実行される前記所定の処理の実行モードとして、前記所定の処理をプレイヤ端末側で実行する第1のモードが設定されている特定のプレイヤ端末から、前記特定のプレイヤ端末において入力される特定の入力情報を取得するステップと、前記特定の入力情報に少なくとも基づく前記所定の処理の模擬的な実行を1又は複数の他のプレイヤ端末に依頼するステップと、前記特定のプレイヤ端末及び前記1又は複数の他のプレイヤ端末において前記特定の入力情報に少なくとも基づいてそれぞれ実行される前記所定の処理の実行結果の少なくとも一部が異なる場合に、前記特定のプレイヤ端末及び前記1又は複数の他のプレイヤ端末の少なくとも一部において不正な処理が実行されたと判定するステップと、を実行する。
【0007】
本発明の一実施形態に係る方法は、1又は複数のコンピュータによって実行され、ゲームを提供するための方法であって、前記ゲームを進行させるための所定の処理であってプレイヤ端末において入力される入力情報に少なくとも基づいて実行される前記所定の処理の実行モードとして、前記所定の処理をプレイヤ端末側で実行する第1のモードが設定されている特定のプレイヤ端末から、前記特定のプレイヤ端末において入力される特定の入力情報を取得するステップと、前記特定の入力情報に少なくとも基づく前記所定の処理の模擬的な実行を1又は複数の他のプレイヤ端末に依頼するステップと、前記特定のプレイヤ端末及び前記1又は複数の他のプレイヤ端末において前記特定の入力情報に少なくとも基づいてそれぞれ実行される前記所定の処理の実行結果の少なくとも一部が異なる場合に、前記特定のプレイヤ端末及び前記1又は複数の他のプレイヤ端末の少なくとも一部において不正な処理が実行されたと判定するステップと、を備える。
【0008】
本発明の一実施形態に係るプログラムは、ゲームを提供するためのプログラムであって、1又は複数のコンピュータ上で実行されることに応じて、前記1又は複数のコンピュータに、前記ゲームを進行させるための所定の処理であってプレイヤ端末において入力される入力情報に少なくとも基づいて実行される前記所定の処理の実行モードとして、前記所定の処理をプレイヤ端末側で実行する第1のモードが設定されている特定のプレイヤ端末から、前記特定のプレイヤ端末において入力される特定の入力情報を取得するステップと、前記特定の入力情報に少なくとも基づく前記所定の処理の模擬的な実行を1又は複数の他のプレイヤ端末に依頼するステップと、前記特定のプレイヤ端末及び前記1又は複数の他のプレイヤ端末において前記特定の入力情報に少なくとも基づいてそれぞれ実行される前記所定の処理の実行結果の少なくとも一部が異なる場合に、前記特定のプレイヤ端末及び前記1又は複数の他のプレイヤ端末の少なくとも一部において不正な処理が実行されたと判定するステップと、を実行させる。
【発明の効果】
【0009】
本発明の様々な実施形態は、ゲームを提供するサーバ側の処理負荷を適切に低減させる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態に係るゲーム提供サーバ10を含むネットワークの構成を概略的に示す構成図。
【
図2】ゲーム提供サーバ10が有する機能を概略的に示すブロック図。
【
図3】プレイヤ情報テーブル411が管理する情報を例示する図。
【
図4】プレイヤ端末30からのログイン要求に応じてサーバ10が実行する処理を例示するフロー図。
【
図5】接続中プレイヤ管理テーブルにおいて管理される情報の具体例を示す図。
【
図6】複数のプレイヤ端末30の全ての処理モードがサーバモードである場合の、ゲーム提供サーバ10とプレイヤ端末30との間の通信を例示する図。
【
図7】複数のプレイヤ端末30の一部の処理モードが端末モードとなっている場合の、ゲーム提供サーバ10とプレイヤ端末30との間の通信を例示する図。
【
図8】処理モードが端末モードであるプレイヤ端末30からのゲームの進行要求に応じてサーバ10が実行する処理を例示するフロー図。
【
図9】プレイヤ端末30Dにおいて実行される演算処理4511を模擬的に実行する2台の模擬処理用プレイヤ端末30としてプレイヤ端末30A、Bが選択された場合の通信を例示する図。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0012】
図1は、本発明の一実施形態に係るゲーム提供サーバ10を含むネットワークの構成を概略的に示す構成図である。サーバ10は、
図1に示すように、インターネット等のネットワーク20を介してプレイヤ端末30と通信可能に接続されている。
図1においては、1つのプレイヤ端末30のみが図示されているが、サーバ10は、複数のプレイヤ端末30と通信可能に接続されている。サーバ10は、プレイヤ端末30を介してゲームを提供する機能を有する。
【0013】
サーバ10は、一般的なコンピュータとして構成されており、
図1に示すように、CPU(コンピュータプロセッサ)11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、ストレージ(記憶装置)15とを備え、これらの各構成要素が図示しないバス等を介して電気的に接続されている。
【0014】
CPU11は、ストレージ15等に記憶されている様々なプログラムをメインメモリ12に読み込んで、当該プログラムに含まれる各種の命令を実行する。メインメモリ12は、例えば、DRAM等によって構成される。
【0015】
ユーザI/F13は、ユーザとの間で情報をやり取りするための各種の入出力装置を含む。ユーザI/F13は、例えば、キーボード、ポインティングデバイス(例えば、マウス、タッチパネル等)等の情報入力装置、マイクロフォン等の音声入力装置、カメラ等の画像入力装置を含む。また、ユーザI/F13は、ディスプレイ等の画像出力装置、スピーカ等の音声出力装置を含む。
【0016】
通信I/F14は、ネットワークアダプタ等のハードウェア、各種の通信用ソフトウェア、又はこれらの組み合わせとして実装され、ネットワーク20等を介した有線又は無線の通信を実現できるように構成されている。
【0017】
ストレージ15は、例えば磁気ディスク、フラッシュメモリ等によって構成される。ストレージ15は、オペレーティングシステムを含む様々なプログラム、及び各種データ等を記憶する。
【0018】
本実施形態において、サーバ10は、それぞれが上述したハードウェア構成を有する複数のコンピュータを用いて構成され得る。
【0019】
このように構成されたゲーム提供サーバ10は、ウェブサーバ及びアプリケーションサーバとしての機能を有することができ、プレイヤ端末30にインストールされているウェブブラウザ又はサーバ10が提供するゲーム(以下、「提供ゲーム」と言うことがある。)用のアプリケーションからの要求に応答して各種の処理を実行し、当該処理の結果に応じた画面データ(例えば、HTMLデータ)及び制御データ等をプレイヤ端末30に送信することができる。プレイヤ端末30は、受信したデータに基づくウェブページ又はその他の画面を表示することができる。
【0020】
プレイヤ端末30は、一般的なコンピュータとして構成されており、
図1に示すように、CPU(コンピュータプロセッサ)31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、ストレージ(記憶装置)35とを備え、これらの各構成要素が図示しないバス等を介して電気的に接続されている。
【0021】
CPU31は、ストレージ35等に記憶されている様々なプログラムをメインメモリ32に読み込んで、当該プログラムに含まれる各種の命令を実行する。メインメモリ32は、例えば、DRAM等によって構成される。
【0022】
ユーザI/F33は、ユーザとの間で情報をやり取りするための各種の入出力装置である。ユーザI/F33は、例えば、キーボード、ポインティングデバイス(例えば、マウス、タッチパネル等)等の情報入力装置、マイクロフォン等の音声入力装置、カメラ等の画像入力装置を含む。また、ユーザI/F33は、ディスプレイ等の画像出力装置、スピーカ等の音声出力装置を含む。
【0023】
通信I/F34は、ネットワークアダプタ等のハードウェア、各種の通信用ソフトウェア、及びこれらの組み合わせとして実装され、ネットワーク20等を介した有線又は無線の通信を実現できるように構成されている。
【0024】
ストレージ35は、例えば磁気ディスク又はフラッシュメモリ等によって構成される。ストレージ35は、オペレーティングシステムを含む様々なプログラム及び各種データ等を記憶する。ストレージ35が記憶するプログラムは、アプリケーションマーケット等からダウンロードされてインストールされ得る。
【0025】
本実施形態において、プレイヤ端末30は、スマートフォン、タブレット端末、パーソナルコンピュータ、ウェアラブルデバイス、又はゲーム専用端末等として構成され得る。
【0026】
このように構成されたプレイヤ端末30のユーザ(プレイヤ)は、ストレージ35等にインストールされているウェブブラウザ又は提供ゲーム用のアプリケーションを介したサーバ10との通信を実行することによって、当該提供ゲームをプレイすることができる。プレイヤ端末30において実行される提供ゲーム用アプリケーションは、本発明のプログラムの一部又は全部を実装したプログラムの一例となり得る。
【0027】
次に、本実施形態のゲーム提供サーバ10が有する機能について説明する。
図2は、サーバ10が有する機能を概略的に示すブロック図である。サーバ10は、図示するように、様々な情報を記憶及び管理する情報記憶管理部41と、提供ゲームの基本機能を制御する基本機能制御部43と、提供ゲームにおけるゲームの進行を制御するゲーム進行制御部45と、プレイヤ端末30における不正な処理の実行を判定する不正判定部47とを有する。これらの機能は、CPU11及びメインメモリ12等のハードウェア、並びに、ストレージ15等に記憶されている各種プログラムやデータ等が協働して動作することによって実現され、例えば、メインメモリ12に読み込まれたプログラムに含まれる命令をCPU11が実行することによって実現される。また、
図2に示す機能の一部又は全部は、サーバ10とプレイヤ端末30とが協働することによって実現され、又は、プレイヤ端末30によって実現され得る。
【0028】
サーバ10の情報記憶管理部41は、ストレージ15等において様々な情報を記憶及び管理する。情報記憶管理部41は、例えば、
図2に示すように、プレイヤに関する情報を管理するプレイヤ情報テーブル411を有する。
【0029】
サーバ10の基本機能制御部43は、提供ゲームの基本機能の制御に関する様々な処理を実行する。例えば、基本機能制御部43は、基本機能に関する様々な画面のHTMLデータ又は制御データをプレイヤ端末30に送信し、プレイヤ端末30で表示される当該画面を介したユーザによる操作入力に応答して様々な処理を実行し、当該処理の結果に応じたHTMLデータ又は制御データをプレイヤ端末30に送信する。提供ゲームの基本機能は、例えば、プレイヤの管理(例えば、プレイヤ情報テーブル411の更新等)等を含む。
【0030】
サーバ10のゲーム進行制御部45は、ゲームの進行の制御に関する様々な処理を実行する。本実施形態において、ゲーム進行制御部45は、ゲームを進行させるための所定の処理の実行モードとして、当該所定の処理をプレイヤ端末30側で実行する第1のモードが設定されている特定のプレイヤ端末30から、当該特定のプレイヤ端末30において入力される入力情報を取得するように構成されている。入力情報は、プレイヤによる操作入力に応じた情報が含まれる。
【0031】
サーバ10の不正判定部47は、プレイヤ端末30における不正な処理の実行の判定に関する様々な処理を実行する。本実施形態において、不正判定部47は、上記第1のモードの特定のプレイヤ端末において入力される入力情報に少なくとも基づく上記所定の処理の模擬的な実行を1又は複数の他のプレイヤ端末30に依頼し、上記特定のプレイヤ端末30及び1又は複数の他のプレイヤ端末30においてそれぞれ実行される上記所定の処理の実行結果の少なくとも一部が異なる場合に、当該特定のプレイヤ端末30及び1又は複数の他のプレイヤ端末30の少なくとも一部において不正な処理が実行されたと判定するように構成されている。
【0032】
このように、本実施形態のゲーム提供サーバ10は、ゲームを進行させるための所定の処理をプレイヤ端末30側で実行する特定のプレイヤ端末30において入力される入力情報に基づく当該所定の処理の模擬的な実行を1又は複数の他のプレイヤ端末30に依頼し、当該特定のプレイヤ端末30及び1又は複数の他のプレイヤ端末30における所定の処理の実行結果の少なくとも一部が異なる場合に不正な処理が実行されたと判定するから、ゲームを進行させるための処理をプレイヤ端末30側で実行する場合のチート行為等の判定を可能とする。つまり、本発明の実施形態は、ゲームを提供するサーバ側の処理負荷を適切に低減させる。
【0033】
本実施形態において、上記所定の処理は、対応するプレイヤの状態情報の更新を伴って実行されるように構成され得る。状態情報は、ゲームの進行に応じて変化する様々な情報等を含み、例えば、ゲームにおけるプレイヤキャラクタ及び保有アイテム等に関する各種パラメータ、並びに、ステージ又はエリア等のクリア状況等を含む。複数のプレイヤの各々の状態情報は、例えば、プレイヤ情報テーブル411において記憶及び管理される。この場合、ゲーム進行制御部45は、所定の処理をプレイヤ端末30側で実行する第1のモードの特定のプレイヤ端末30に対して、対応する特定のプレイヤの更新前の状態情報を提供し、当該特定のプレイヤ端末30における所定の処理の実行に伴って当該特定のプレイヤ端末30側で更新される当該特定のプレイヤの更新後の状態情報に少なくとも基づいて、プレイヤ情報テーブル411等に記憶されている特定のプレイヤの状態情報を更新する(特定のプレイヤ端末30側での更新を反映する)ように構成され得る。この場合、不正判定部47は、上記特定のプレイヤの更新前の状態情報の提供を伴って、上記所定の処理の模擬的な実行を1又は複数の他のプレイヤ端末に依頼し、当該所定の処理の実行結果としての当該特定のプレイヤの更新後の状態情報の少なくとも一部が異なる場合に不正な処理が実行されたと判定するように構成され得る。こうした構成は、所定の処理の実行に応じて更新されるプレイヤの更新後の状態情報の比較に基づいて、プレイヤ端末30における不正な処理の実行を判定することを可能とする。
【0034】
本実施形態において、ゲーム進行制御部45は、複数のプレイヤ端末30の各々の所定の処理の実行モードを設定するように構成することができ、所定の処理の実行モードは、上記第1のモードに加えて、当該所定の処理をサーバ10側で実行する第2のモードを含むように構成され得る。この場合、ゲーム進行制御部45は、プレイヤ端末30の同時接続数が所定の閾値未満である間は、複数のプレイヤ端末30の各々の所定の処理の実行モードとして当該所定の処理をサーバ10側で実行する第2のモードを設定する一方、プレイヤ端末30の同時接続数が所定の閾値以上となった場合に、複数のプレイヤ端末30の少なくとも一部(例えば、プレイヤ端末30の同時接続数が所定の閾値以上となった時点より後にログインしたプレイヤのプレイヤ端末30等)の所定の処理の実行モードとして当該所定の処理をプレイヤ端末30側で実行する第1のモードを設定するように構成され得る。こうした構成は、プレイヤ端末30の同時接続数に応じた所定の処理の実行モードの設定を可能とし、この結果、サーバ10側の処理負荷を適切に低減させる。
【0035】
本実施形態において、不正判定部47が所定の処理の模擬的な実行を依頼する1又は複数の他のプレイヤ端末の数を2以上とすることができ、この場合、不正判定部47は、所定の処理の実行結果の少なくとも一部が異なる場合に、上記特定のプレイヤ端末30及び1又は複数の他のプレイヤ端末30のうち、当該所定の処理の実行結果が同一であるプレイヤ端末30の数が最も少ないプレイヤ端末30において不正な処理が実行されたと判定するように構成され得る。こうした構成は、所定の処理の実行結果が同一であるプレイヤ端末30の数に基づいて、不正な処理が実行されたと判定されるプレイヤ端末30を特定することを可能とする。
【0036】
また、不正判定部47は、複数のプレイヤ端末30の中から、所定のルールに従って、所定の処理の模擬的な実行を依頼する1又は複数の他のプレイヤ端末30を選択するように構成され得る。こうした構成は、所定の処理の模擬的な実行を、所定のルールに基づく適切なプレイヤ端末30に対して依頼することを可能とする。当該所定のルールには、様々なルールが含まれ得る。
【0037】
例えば、所定のルールは、所定のブラックリストに含まれるプレイヤ端末30を除外するというルールを含み得る。所定のブラックリストは、例えば、過去にチート行為を行ったと疑われるプレイヤのリストとして構成され、この場合、不正判定部47は、当該ブラックリストに含まれるプレイヤのプレイヤ端末30を除外して、所定の処理の模擬的な実行を依頼する他のプレイヤ端末30を選択するように構成され得る。こうした構成は、不正な処理を実行するプレイヤ端末30に対して所定の処理の模擬的な実行を依頼してしまうことを抑制し、この結果、上記特定のプレイヤ端末30における不正な処理の実行を適切に判定することを可能とする。
【0038】
また、所定のルールは、ゲストアカウントでログインされているプレイヤ端末30よりも通常アカウントでログインされているプレイヤ端末30を優先して選択するというルールを含み得る。例えば、不正判定部47は、ゲストアカウントでログインされているプレイヤ端末30を除外して、通常アカウントでログインされているプレイヤ端末30の中から所定の処理の模擬的な実行を依頼する他のプレイヤ端末30を選択するように構成される。こうした構成は、通常アカウントでログインされているプレイヤ端末30よりもゲストアカウントでログインされているプレイヤ端末30の方が不正な処理が実行される可能性が高いと考えることができるから、不正な処理を実行するプレイヤ端末30に対して所定の処理の模擬的な実行を依頼してしまうことを抑制し、この結果、上記特定のプレイヤ端末30における不正な処理の実行を適切に判定することを可能とする。
【0039】
また、所定のルールは、上記特定のプレイヤ端末30に対応する特定のプレイヤと所定の関係(例えば、フレンド、又は、フォロー/フォロワーの関係)を有する他のプレイヤのプレイヤ端末30を除外するというルールを含み得る。こうした構成は、特定のプレイヤがチート行為を行うプレイヤである場合、当該特定のプレイヤと所定の関係を有する他のプレイヤもまたチート行為を行うプレイヤである可能性が高いと考えることができるから、特定のプレイヤ端末30、及び、所定の処理の模擬的な実行を依頼する他のプレイヤ端末30の両方が不正な処理を実行するプレイヤ端末30であるという状況の発生が抑制され、この結果、不正な処理の実行の適切な判定が促進される。
【0040】
また、所定のルールは、所定の処理の実行モードとして、当該所定の処理をプレイヤ端末30側で実行する第1のモードが設定されているプレイヤ端末30よりも、当該所定の処理をサーバ10側で実行する第2のモードが設定されているプレイヤ端末30を優先して選択するというルールを含み得る。例えば、不正判定部47は、所定の処理の実行モードとして第1のモードが設定されているプレイヤ端末30を除外して、第2のモードが設定されているプレイヤ端末30の中から所定の処理の模擬的な実行を依頼する他のプレイヤ端末30を選択するように構成される。こうした構成は、処理負荷の小さいプレイヤ端末30に対して、所定の処理の模擬的な実行を依頼することを促進する。
【0041】
また、所定のルールは、模擬的に実行中の所定の処理の数が少ないプレイヤ端末30を優先して選択するというルールを含み得る。例えば、不正判定部47は、何れかのプレイヤ端末30における入力情報に基づく模擬的な所定の処理を実行中であるプレイヤ端末30を除外して、特定のプレイヤ端末30における入力情報に基づく所定の処理の模擬的な実行を依頼する他のプレイヤ端末30を選択するように構成される。こうした構成は、処理負荷の小さいプレイヤ端末30に対して、所定の処理の模擬的な実行を依頼することを促進する。
【0042】
また、所定のルールは、処理性能が高いプレイヤ端末30を優先して選択するというルールを含み得る。こうした構成は、処理能力の高いプレイヤ端末30に対して、所定の処理の模擬的な実行を依頼することを促進する。
【0043】
次に、このような機能を有する本実施形態のゲーム提供サーバ10の具体例について説明する。この具体例において、サーバ10は、オンラインRPGを提供するように構成されている。しかしながら、本実施形態における提供ゲームは、オンラインRPGに限定されず、様々な種類のゲームが含まれる。
【0044】
図3は、この具体例において、プレイヤ情報テーブル411が管理する情報を例示する。プレイヤ情報テーブル411は、プレイヤ毎の情報を管理し、図示するように、個別のプレイヤを識別する「プレイヤアカウント」に対応付けて、ゲームの状態に関する情報である「状態情報」、「フレンド情報」、「ブラックリスト対象フラグ」等の情報を管理する。状態情報は、プレイヤが保有するキャラクタ及びアイテムに関する情報、及び、ステージのクリア状況等のRPGの進行に応じた様々な情報を含む。フレンド情報は、プレイヤとの間でフレンドの関係を有する他のプレイヤを特定可能な情報(例えば、当該他のプレイヤのプレイヤアカウント等)を含む。ブラックリスト対象フラグは、不正な処理の実行(チート行為)に関するブラックリストの対象であるか否かを示す情報であり、例えば、過去にチート行為が疑われたプレイヤが、ブラックリストの対象として設定される。
【0045】
図4は、この例において、プレイヤ端末30からのログイン要求に応じてサーバ10が実行する処理を例示するフロー図である。プレイヤ端末30からのログイン要求を受け付けると、サーバ10は、まず、図示するように、ログイン処理を実行する(ステップS100)。ログイン処理は、ユーザ認証、及び、その後の初期処理等の様々な処理を含む。
【0046】
次に、サーバ10は、その時点における同時接続プレイヤ数(提供ゲームにログインしているプレイヤ数)と所定の閾値Nとを比較し(ステップS110)、同時接続プレイヤ数が閾値N未満である場合は(ステップS110においてYES)、ログイン処理が行われたプレイヤ端末30の処理モードとして、ゲームを進行させるためのゲーム進行処理をサーバ10側で実行する「サーバモード」(第2のモード)を設定する。一方、同時接続プレイヤ数が閾値N以上である場合は(ステップS110においてNO)、当該プレイヤ端末30の処理モードとして、ゲーム進行処理をプレイヤ端末30側で実行する「端末モード」(第1のモード)を設定する。このように、この例では、ログイン時における同時接続プレイヤ数に応じて、サーバモード又は端末モードの何れかの処理モードが設定され、具体的には、同時接続プレイヤ数が閾値N未満である間は、プレイヤ端末30の処理モードとしてサーバモードが設定され、同時接続プレイヤ数が閾値N以上となると、それ以降にログイン処理が行われるプレイヤ端末30の処理モードとして端末モードが設定される。
【0047】
図5は、この例において、接続中の(提供ゲームにログイン中の)プレイヤに関する情報を管理するための接続中プレイヤ管理テーブルにおいて管理される情報の具体例を示す。接続中プレイヤ管理テーブルは、ストレージ15等において管理され、図示するように、接続中(ログイン中)の個別のプレイヤの「プレイヤアカウント」に対応付けて、プレイヤアカウントが通常アカウントであるかゲストアカウントであるかを示す「アカウント種別」、接続中のプレイヤのプレイヤ端末30の機種を示す「端末機種」、「処理モード」、及び「模擬演算処理実行中フラグ」等の情報を管理する。模擬演算処理実行中フラグは、サーバ10からの依頼に従って、処理モードが端末モードである他のプレイヤ端末30において実行されるゲーム進行処理(演算処理)を模擬的に実行中であるか否かを示す情報である。
【0048】
図6は、同時接続プレイヤ数が閾値N未満である状態が継続しており、複数のプレイヤ端末30(
図6では、3台のプレイヤ端末30A、B、C)の全ての処理モードがサーバモードである場合の、ゲーム提供サーバ10とプレイヤ端末30との間の通信を例示する。図示するように、プレイヤ端末30の処理モードがサーバモードである場合、サーバ10のゲーム進行制御部45において、複数のプレイヤ端末30A、B、Cのために複数のゲーム進行処理451A、B、Cがそれぞれ実行される。当該ゲーム進行処理451は、ゲームを進行させるための様々な演算を行う演算処理4511と、当該演算処理4511による演算結果等に基づく画面を描画するための描画処理4512とを含む。また、ゲーム進行処理451A、B、Cは、各プレイヤ端末30A、B、Cから送信される、当該プレイヤ端末30において入力される(プレイヤによる操作入力に基づく)入力情報A、B、Cに基づいて実行され、ゲームの進行に応じた画面情報A、B、Cを出力して各プレイヤ端末30A、B、Cに送信する。当該画面情報を受信したプレイヤ端末30では、対応する画面が表示される。また、ゲーム進行処理451の実行に伴って、情報記憶管理部41のプレイヤ情報テーブル411において管理されている各プレイヤの状態情報が更新される。
【0049】
図7は、同時接続プレイヤ数が閾値N以上となり、複数のプレイヤ端末30の一部のプレイヤ端末30(
図7では、プレイヤ端末30D)の処理モードが端末モードとなっている場合の、ゲーム提供サーバ10とプレイヤ端末30との間の通信を例示する。図示するように、処理モードがサーバモードであるプレイヤ端末30A、B、Cのためのゲーム進行処理451A、B、Cは、サーバ10のゲーム進行制御部45において実行される一方、処理モードが端末モードであるプレイヤ端末30Dのためのゲーム進行処理451Dは、当該プレイヤ端末30Dにおいて実行される。プレイヤ端末30D側で実行されるゲーム進行処理451Dもまた、演算処理4511と描画処理4512とを含む。また、プレイヤ端末30D側で実行されるゲーム進行処理451Dは、プレイヤ端末30Dにおいて入力される入力情報Dに基づいて実行され、サーバ10から送信される対応するプレイヤの更新前の状態情報の更新を伴う。対応するプレイヤの更新後の状態情報は、所定のタイミングで(例えば、複数のエリアによって構成されるステージをクリアする都度等)、プレイヤ端末30Dからサーバ10に対して送信される。更新後の状態情報を受信したサーバ10は、当該更新後の状態情報に基づいて、情報記憶管理部41のプレイヤ情報テーブル411において管理されている状態情報を更新する。
【0050】
図8は、処理モードが端末モードであるプレイヤ端末30からのゲームの進行要求に応じてサーバ10が実行する処理を例示するフロー図である。ゲームの進行要求は、所定のタイミング(例えば、クエストを開始するタイミング等)で行われる。処理モードが端末モードであるプレイヤ端末30からゲームの進行要求を受け付けると、サーバ10は、まず、図示するように、当該プレイヤ端末(以下、「本プレイヤ端末」と言うことがある。)30において実行される演算処理を模擬的に実行する模擬演算処理用の他のプレイヤ端末30を選択する(ステップS200)。この例では、接続中の複数のプレイヤ端末30の中から、以下の5つの条件の全てを満たす2台の模擬処理用プレイヤ端末30が選択される。
(1)対応するプレイヤが、本プレイヤ端末30のプレイヤのフレンドでない。
(2)対応するプレイヤが、ブラックリスト対象でない。
(3)通常アカウントでログインされている。
(4)処理モードがサーバモードである。
(5)模擬演算処理実行中でない(他のプレイヤ端末30の演算処理を模擬的に実行中でない)。
【0051】
これらの条件を満たすか否かは、プレイヤ情報テーブル411、又は、接続中プレイヤ管理テーブルを参照することによって判断される。なお、これらの条件に適合する複数のプレイヤ端末30の中から2台の模擬処理用プレイヤ端末30を選択する際に、処理性能が高いプレイヤ端末30を優先するようにしても良い。プレイヤ端末30の処理性能は、接続中プレイヤ管理テーブルの端末機種によって判断することができる。
【0052】
そして、サーバ10は、ゲームの進行要求を行った本プレイヤ端末30、及び、選択された2台の模擬演算処理用プレイヤ端末30に対して、本プレイヤ端末30に対応するプレイヤの更新前の状態情報を提供する(ステップS210)。
【0053】
続いて、サーバ10は、本プレイヤ端末30から更新後の状態情報を取得するまでの間(ステップS230においてNO)、本プレイヤ端末30においてプレイヤによって入力される入力情報を当該本プレイヤ端末30から繰り返し取得して模擬演算処理用プレイヤ端末30に対して提供する(ステップS220)。上述したように、処理モードが端末モードであるプレイヤ端末30は、例えば、複数のエリアによって構成されるステージをクリアする毎に、対応するプレイヤの更新後の状態情報をサーバ10に送信する。
【0054】
図9は、
図7に例示した処理モードが端末モードであるプレイヤ端末30Dにおいて実行される演算処理4511を模擬的に実行する2台の模擬演算処理用プレイヤ端末30として、プレイヤ端末30A、Bが選択された場合の通信を例示する。図示するように、プレイヤ端末30Dにおいては、当該プレイヤ端末30Dにおいて入力される入力情報Dに基づいてゲーム進行処理451D(演算処理4511及び描画処理4512)が実行される一方、模擬演算処理用プレイヤ端末30A、Bにおいては、サーバ10から繰り返し提供(転送)される、プレイヤ端末30Dにおける入力情報Dに基づいて、模擬的に演算処理4511が実行される(プレイヤ端末30A、Bにおいて、描画処理4512は実行されない)。また、演算処理4511の実行に応じて、プレイヤ端末30A、B、Dの各々において、プレイヤ端末30Dに対応するプレイヤの状態情報が更新される。なお、処理モードがサーバモードであるプレイヤ端末30A、Bのためのゲーム進行処理451A、Bは、上述したように、サーバ10のゲーム進行制御部45において引き続き実行される。
【0055】
そして、本プレイヤ端末30から更新後の状態情報を取得すると(ステップS230においてYES)、サーバ10は、プレイヤ情報テーブル411の状態情報を更新すると共に(ステップS240)、模擬演算処理用プレイヤ端末30から、模擬的な演算処理の実行に伴って更新された更新後の状態情報(その時点の状態情報)を取得する(ステップS250)。
【0056】
そして、サーバ10は、本プレイヤ端末30及び2台の模擬演算処理用プレイヤ端末30からそれぞれ取得した更新後の状態情報を比較し(ステップS260)、不一致がある場合には(ステップS260においてYES)、不正な処理が実行されたと判定し、当該不正な処理が実行されたプレイヤ端末30を特定する(ステップS270)。ここで、模擬演算処理用のプレイヤ端末30では、本プレイヤ端末30と同様に、本プレイヤ端末30における入力情報に基づいて演算処理4511が実行されているから、当該演算処理4511の実行に伴って更新された更新後の状態情報は一致するはずである。更新後の状態情報に不一致がある場合、例えば、演算処理4511に対応するプログラムに対する不正な改変等が想定される。なお、模擬演算処理用プレイヤ端末30から更新後の状態情報のハッシュ値を取得すると共に、本プレイヤ端末30から取得した更新後の状態情報のハッシュ値を演算し、これらのハッシュ値を比較することによって、更新後の状態情報の不一致を判定するようにしても良い。
【0057】
不正な処理が実行されたプレイヤ端末30の特定は、具体的には、3台のプレイヤ端末30(本プレイヤ端末30及び2台の模擬演算処理用プレイヤ端末30)のうちの2台のプレイヤ端末30における更新後の状態情報が一致している場合は、残りの1台のプレイヤ端末30において不正な処理が実行されたと判定される。なお、この例では、3台のプレイヤ端末30における更新後の状態情報の全てが異なる場合は、3台のプレイヤ端末30の全てにおいて不正な処理が実行されたと判定される。
【0058】
この例において、不正な処理が実行されたと判定された場合、所定の不正判定時処理が実行される。所定の不正判定時処理は、様々な処理が含まれ得る。例えば、不正な処理が実行されたプレイヤ端末30として特定されたプレイヤ端末30が本プレイヤ端末30である場合はゲームの進行を中止させるようにしても良いし、本プレイヤ端末30であるか否かにかかわらず特定されたプレイヤ端末30におけるゲームの進行を中止させるようにしても良い。本プレイヤ端末30が不正な処理を実行した場合には、ステップS240で更新したプレイヤ情報テーブル411の状態情報が更新前に戻される。このとき、模擬演算処理用プレイヤ端末30での模擬的な演算処理の実行に伴って更新された更新後の状態情報に書き換えてもよい。また、特定されたプレイヤ端末30はブラックリストに登録される。
【0059】
図8に例示した処理は、処理モードが端末モードであるプレイヤ端末30からのゲームの進行要求が行われる都度、繰り返し実行される。つまり、処理モードが端末モードである特定のプレイヤ端末30からゲームの進行要求が行われる都度(例えば、クエストを開始する都度)、当該特定のプレイヤ端末30において実行される演算処理4511を模擬的に実行するための模擬演算処理用プレイヤ端末30が新たに選択され、これらのプレイヤ端末30における更新後の状態情報の比較に基づいて、不正な処理の実行が判定される。
【0060】
上述した例では、ログイン時における同時接続プレイヤ数に応じて、サーバモード又は端末モードの何れかの処理モードが設定されるようにしたが、その後、所定の時間間隔で同時接続プレイヤ数を確認し、ログイン時に端末モードが設定されたプレイヤ端末30については、当該同時接続プレイヤ数が閾値N未満となったときに、端末モードからサーバモードに変更しても良い。また、プレイヤ端末30のログイン時に当該プレイヤ端末30の処理モードを設定する方法に代えて、所定の時間間隔で同時接続プレイヤ数を確認し、当該同時接続プレイヤ数が閾値N以上となったときに、その時点で接続中の全てのプレイヤ端末30の中から端末モードに変更する一部のプレイヤ端末30を選択するようにしても良い。
【0061】
上述した例において、本プレイヤ端末30のゲームの進行中に2台の模擬演算処理用プレイヤ端末30の少なくとも一部が離脱(ログアウト、通信切断)してしまうことを想定して、予備の模擬演算処理用プレイヤ端末30(例えば、1又は2台)を予め選択しておき、離脱時に予備の模擬演算処理用プレイヤ端末30に切り替えるようにしても良い。又は、模擬演算処理用プレイヤ端末30の離脱が発生したときに、代わりの模擬演算処理用プレイヤ端末30を選択するようにしても良い。こうすれば、模擬演算処理用プレイヤ端末30の少なくとも一部が離脱した場合であっても、3台のプレイヤ端末30(本プレイヤ端末30及び2台の模擬演算処理用プレイヤ端末30)における更新後の状態情報の比較に基づいて不正な処理が実行されたプレイヤ端末30を特定することを可能とする(2台のプレイヤ端末30(本プレイヤ端末30及び1台の模擬演算処理用プレイヤ端末30)における更新後の状態情報の比較では、どちらのプレイヤ端末30で不正な処理が実行されたのかを判定することができない)。
【0062】
以上説明した本実施形態に係るゲーム提供サーバ10は、ゲームを進行させるための所定の処理をプレイヤ端末30側で実行する特定のプレイヤ端末30において入力される入力情報に基づく当該所定の処理の模擬的な実行を1又は複数の他のプレイヤ端末30に依頼し、当該特定のプレイヤ端末30及び1又は複数の他のプレイヤ端末30における所定の処理の実行結果(例えば、特定のプレイヤの更新後の状態情報)の少なくとも一部が異なる場合に不正な処理が実行されたと判定するから、ゲームを進行させるための処理をプレイヤ端末30側で実行する場合のチート行為等の判定を可能とする。つまり、本発明の実施形態は、ゲームを提供するサーバ側の処理負荷を適切に低減させる。
【0063】
本発明の他の実施形態においては、複数のプレイヤ端末30の一部が、ゲーム提供サーバ10として機能するように構成され得る。
【0064】
本明細書で説明された処理及び手順は、明示的に説明されたもの以外にも、ソフトウェア、ハードウェア又はこれらの任意の組み合わせによって実現される。例えば、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク等の媒体に、当該処理及び手順に相当するロジックを実装することによって実現される。また、本明細書で説明された処理及び手順は、当該処理・手順に相当するコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【0065】
本明細書中で説明された処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理又は手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書において説明されたソフトウェア及びハードウェアの要素は、それらをより少ない構成要素に統合して、又はより多い構成要素に分解することによって実現することも可能である。
【0066】
本明細書において、発明の構成要素が単数もしくは複数の何れか一方として説明された場合、又は、単数もしくは複数の何れとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数の何れであってもよい。
【符号の説明】
【0067】
10 ゲーム提供サーバ
20 ネットワーク
30 プレイヤ端末
41 情報記憶管理部
411 プレイヤ情報テーブル
43 基本機能制御部
45 ゲーム進行制御部
451 ゲーム進行処理
4511 演算処理
4512 描画処理
47 不正判定部