【文献】
[シノビナイトメア]ヘイト値とは?|ゲームエイト,[online], 2018年6月15日,[2019年3月29日検索],URL,https://game8.jp/shinobinightmare/110792
【文献】
山崎 弘太郎,P2P Massively Multi−player Online Role Playing Gameにおけるゲーム情報の悪用を防ぐ分散管理手法の提案と評価,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2012年 3月 1日,第111巻 第469号,pp. 79-84
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
<第1の実施形態>
「ゲームシステム1の全体像」
まず、
図1の機能ブロック図を用いて、本実施形態のゲームシステム1の全体像を説明する。図示するように、ゲームシステム1は、サーバ10と、複数のクライアント端末20とを有する。なお、サーバ10は物理的及び/又は論理的に分かれた複数台のサーバで構成されてもよいし、物理的及び論理的に1台のサーバで構成されてもよい。クライアント端末20は、パーソナルコンピュータ、スマートフォン、タブレット端末、携帯電話、ゲーム機等が例示されるが、これらに限定されない。サーバ10とクライアント端末20とは、インターネット等の通信ネットワークを介して、互いに通信可能になっている。
【0019】
ゲームシステム1は、クライアントサーバ型のオンラインゲーム、具体的にはMMORPGを実現する。サーバ10が所定のプログラムを実行することで、ゲームの仮想世界が実現される。
図2にゲームシステム1が実現した仮想世界の一例を示す。
【0020】
当該仮想世界には、プレイヤの入力に基づき行動制御されるプレイヤキャラクタ(プレイヤオブジェクト)と、コンピュータにより行動制御されるノンプレイヤキャラクタ(ノンプレイヤオブジェクト)とが登場する。図示するPCがプレイヤキャラクタであり、NPCがノンプレイヤキャラクタである。なお、図示しないが、プレイヤキャラクタの仲間のキャラクタであって、クライアント端末20又はサーバ10のコンピュータにより行動制御されるプレイヤキャラクタが登場してもよい。
【0021】
プレイヤは、自身のクライアント端末20を介してサーバ10にログインし、クライアント端末20に所定の入力を行うことで、自身のプレイヤキャラクタの行動を制御する。例えば、プレイヤは、自身のプレイヤキャラクタを仮想世界の中で移動させたり、他のキャラクタと闘わせたりする。
【0022】
「上記リアルタイム性の問題を軽減するための特徴の概要」
次に、上記リアルタイム性の問題を軽減するためにゲームシステム1が備える特徴を簡単に説明する。ゲームシステム1においては、ノンプレイヤキャラクタの行動制御を、サーバ10側のコンピュータ、及び、クライアント端末20側のコンピュータの両方で行う。この点で、サーバ10側のコンピュータのみがノンプレイヤキャラクタの行動制御を行う一般的なMMORPGと異なる。行動制御の内容は、移動するか攻撃するかの選択、移動先の決定、攻撃スキルの選択などである。
【0023】
ノンプレイヤキャラクタは、所定の行動(例:攻撃)を行う対象(他のキャラクタ)を設定している状態と、設定していない状態とを有する。所定の行動を行う対象を設定している状態において、所定の条件を満たすと、ノンプレイヤキャラクタはその対象に所定の行動を行う。一方、所定の行動を行う対象を設定していない状態においては、ノンプレイヤキャラクタはプレイヤキャラクタに対して所定の行動を行わない。この場合、ノンプレイヤキャラクタは、所定の行動を行う対象を設定するための行動、例えば移動や検索等を行うことができる。
【0024】
所定の行動を行う対象を設定していない状態、また、所定の行動を行う対象として他のノンプレイヤキャラクタが設定されている場合には、サーバ10側のコンピュータがそのノンプレイヤキャラクタの行動制御を行う。
【0025】
一方、所定の行動を行う対象としてプレイヤキャラクタが設定されている場合には、そのプレイヤキャラクタの行動制御を行うクライアント端末20が、そのノンプレイヤキャラクタの行動制御を行う。
【0026】
結果、所定の行動を行う対象としてプレイヤキャラクタが設定されている場合には、1つのクライアント端末20が、プレイヤキャラクタと、そのプレイヤキャラクタを所定の行動対象に設定しているノンプレイヤキャラクタとの両方の行動制御を行うことになる。
【0027】
例えば、
図2に示すノンプレイヤキャラクタが所定の行動を行う対象として
図2に示すプレイヤキャラクタを設定している場合、
図2に示すプレイヤキャラクタの行動制御を行うクライアント端末20が、
図2に示すノンプレイヤキャラクタの行動制御を行う。
【0028】
かかる場合、プレイヤキャラクタがノンプレイヤキャラクタを攻撃する入力をクライアント端末20が受付けた場合、クライアント端末20は当該攻撃を示す画面表示を行う一方で、当該攻撃を受けたノンプレイヤキャラクタの行動内容を決定する。そして、クライアント端末20は、決定内容に基づき、ノンプレイヤキャラクタの行動を示す画面表示を行う。すなわち、プレイヤキャラクタの攻撃に対するノンプレイヤキャラクタの反応が画面表示される。
【0029】
このように、1つのクライアント端末20が、プレイヤキャラクタと、そのプレイヤキャラクタを所定の行動対象に設定しているノンプレイヤキャラクタとの両方の行動制御を行う場合、サーバ10とクライアント端末20との間で通信を行わずにノンプレイヤキャラクタの行動内容の決定が可能となる。このため、プレイヤキャラクタの行動に対するノンプレイヤキャラクタの反応の表示のリアルタイム性が高くなる。
【0030】
「サーバ10の構成」
以下、サーバ10の構成を詳細に説明する。まず、サーバ10のハードウエア構成の一例について説明する。本実施形態のサーバ10が備える各機能部は、任意のコンピュータのCPU(Central Processing Unit)、メモリ、メモリにロードされるプログラム、そのプログラムを格納するハードディスク等の記憶ユニット(あらかじめ装置を出荷する段階から格納されているプログラムのほか、CD(Compact Disc)等の記憶媒体やインターネット上のサーバ等からダウンロードされたプログラムをも格納できる)、ネットワーク接続用インターフェイスを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。
【0031】
図3は、本実施形態のサーバ10のハードウエア構成を例示するブロック図である。
図3に示すように、サーバ10は、プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A、バス5Aを有する。周辺回路4Aには、様々なモジュールが含まれる。サーバ10は周辺回路4Aを有さなくてもよい。なお、サーバ10は物理的及び/又は論理的に分かれた複数の装置で構成されてもよい。この場合、各装置が上記ハードウエア構成を備えることができる。
【0032】
バス5Aは、プロセッサ1A、メモリ2A、周辺回路4A及び入出力インターフェイス3Aが相互にデータを送受信するためのデータ伝送路である。プロセッサ1Aは、例えばCPU、GPU(Graphics Processing Unit)などの演算処理装置である。メモリ2Aは、例えばRAM(Random Access Memory)やROM(Read Only Memory)などのメモリである。入出力インターフェイス3Aは、入力装置、外部装置、外部サーバ、外部センサ等から情報を取得するためのインターフェイスや、出力装置、外部装置、外部サーバ等に情報を出力するためのインターフェイスなどを含む。入力装置は、例えばキーボード、マウス、マイク等である。出力装置は、例えばディスプレイ、スピーカ、プリンター、メーラ等である。プロセッサ1Aは、各モジュールに指令を出し、それらの演算結果をもとに演算を行うことができる。
【0033】
次に、サーバ10の機能構成を説明する。
図4に、サーバ10の機能ブロック図の一例を示す。図示するように、サーバ10は、第1のNPC行動制御部11と、通信部12と、管理部13と、通知部14と、対象オブジェクト設定部15と、中継部16とを有する。
【0034】
通信部12は、インターネット等のネットワークを介して、複数のクライアント端末20各々と通信する。
【0035】
例えば、通信部12は、クライアント端末20に、サーバ10が行動制御したノンプレイヤキャラクタの行動内容を示す情報(第1のNPC行動情報)を送信する。
また、例えば、通信部12は、クライアント端末20から、各クライアント端末20がプレイヤの入力に基づき行動制御したプレイヤキャラクタの行動内容を示す情報(PC行動情報)を受信する。
また、例えば、通信部12は、各クライアント端末20から受信したPC行動情報を、他のクライアント端末20に送信する。
また、例えば、通信部12は、クライアント端末20から、各クライアント端末20が行動制御したノンプレイヤキャラクタの行動内容を示す情報(第2のNPC行動情報)を受信する。
また、例えば、通信部12は、各クライアント端末20から受信した第2のNPC行動情報を、他のクライアント端末20に送信する。
なお、通信部12は、クライアント端末20にその他の情報を送信し、また、クライアント端末20からその他の情報を受信することができる。
【0036】
管理部13は、ゲームに関する各種情報を管理する。「管理」は、記憶及び更新を意味する。
【0037】
例えば、管理部13は、プレイヤキャラクタ各々のパラメータ値を管理する。
図5に、管理部13が管理するプレイヤキャラクタ各々のパラメータ値の一例を示す。図示する例では、プレイヤキャラクタのID(PCID)と、現在のヒットポイント(H.P.)と、現在のレベルと、現在所持している通貨と、ゲームの仮想世界内の現在の位置とが互いに対応付けて記録されている。管理部13は、PC行動情報で示されるプレイヤキャラクタの行動内容、第1のNPC行動情報で示されるノンプレイヤキャラクタの行動内容、第2のNPC行動情報で示されるノンプレイヤキャラクタの行動内容等に基づき、プレイヤキャラクタ各々のパラメータ値を更新することができる。
【0038】
その他、管理部13は、ノンプレイヤキャラクタ各々のパラメータ値を管理する。
図6に、管理部13が管理するノンプレイヤキャラクタ各々のパラメータ値の一例を示す。図示する例では、ノンプレイヤキャラクタのID(NPCID)と、現在のヒットポイント(H.P.)と、現在のレベルと、ゲームの仮想世界内の現在の位置と、ヘイト値(第1のパラメータ値)と、所定の行動を行う対象として現在設定されている対象オブジェクトとが互いに対応付けて記録されている。管理部13は、PC行動情報で示されるプレイヤキャラクタの行動内容、第1のNPC行動情報で示されるノンプレイヤキャラクタの行動内容、第2のNPC行動情報で示されるノンプレイヤキャラクタの行動内容等に基づき、ノンプレイヤキャラクタ各々のパラメータ値を更新することができる。
【0039】
ここで、ヘイト値について説明する。「ヘイト値」は、他のキャラクタに対するノンプレイヤキャラクタの現在の状態(例:敵対心の大きさ)を示す値である。「他のキャラクタ」は、プレイヤキャラクタや、プレイヤキャラクタに紐付くキャラクタ等である。プレイヤキャラクタに紐付くキャラクタは、そのプレイヤキャラクタの仲間のキャラクタであり、サーバ10側のコンピュータ又はクライアント端末20側のコンピュータが行動制御を行うキャラクタである。
【0040】
一般的に、「タンク」と呼ばれる役割のプレイヤは、積極的にヘイトを高める行動をし、敵(ノンプレイヤキャラクタ)が味方のキャラクタを攻撃しないように自分に攻撃を引きつけて、味方を守る。「タンク」のキャラクタは、ヒットポイント、防御力、回避力等が高く設定されている場合が多い。「アタッカー」や「ヒーラー」などの役割のプレイヤは、敵を攻撃したり味方を回復したりするが、なるべく敵に攻撃されないようにヘイト値が高まらないように行動する。「アタッカー」や「ヒーラー」等のキャラクタは、「タンク」のキャラクタに比べて、ヒットポイント、防御力、回避力等が低く設定されている場合が多い。
【0041】
管理部13は、
図6に示すように、ノンプレイヤキャラクタと、複数のプレイヤキャラクタ各々とに対応付けて、ヘイト値を管理する。また、管理部13は、ノンプレイヤキャラクタと、他の複数のノンプレイヤキャラクタ各々とに対応付けて、ヘイト値を管理することができる。
【0042】
管理部13は、他のキャラクタの行動内容等に基づき、ヘイト値を更新することができる。例えば、あるノンプレイヤキャラクタに対して他のキャラクタが所定の行動(例:攻撃)を行うと、管理部13は、当該ノンプレイヤキャラクタの当該他のキャラクタに対する状態を示すヘイト値を更新することができる。
【0043】
キャラクタが行う各種行動には、ヘイト値の増減に関わる特別な効果を設定することができてもよい。例えば、第1の行動はヘイト値をQ1上げる、第2の行動はヘイト値をQ2上げる、第3の行動はヘイト値をQ3下げる等のように予め設定されていてもよい。
【0044】
また、実行された行動の結果に基づき、ヘイト値の増減量が決定されてもよい。例えば、あるキャラクタがあるノンプレイヤキャラクタに対して攻撃を行った場合、その攻撃で与えたダメージ量に基づき、ヘイト値の増加量が決定されてもよい。この場合、与えたダメージが大きい程、ヘイト値の増加量が大きくなる。
【0045】
また、ヘイト値を上げる行動は、ノンプレイヤキャラクタに対する攻撃に加えて、ノンプレイヤキャラクタと交戦中のキャラクタを支援する行動を含んでもよい。支援の内容はゲームによって様々であるが、一例として、ヒットポイントの回復、アイテムの利用、スキルの発動などが例示される。
【0046】
また、ヘイト値は、時間の経過に応じて徐々に小さくなってもよい。かかる場合、あるキャラクタがあるノンプレイヤキャラクタに対する攻撃などを長時間行わなければ、そのノンプレイヤキャラクタのそのキャラクタに対するヘイト値は徐々に小さくなる。
【0047】
次に、管理部13が管理する対象オブジェクトについて説明する。「対象オブジェクト」は、ノンプレイヤキャラクタが所定の行動(例:攻撃)を行う対象として設定されているキャラクタである。プレイヤキャラクタ、又は、他のノンプレイヤキャラクタが、対象オブジェクトとして設定される。
【0048】
図6の例の場合、「NPCID:NPC00001」のノンプレイヤキャラクタにおいては、「PCID:PC000001」のプレイヤキャラクタが対象オブジェクトとして設定されている。そして、「NPCID:NPC00002」のノンプレイヤキャラクタにおいては、対象オブジェクトが設定されていない。このように、ノンプレイヤキャラクタは、対象オブジェクトが設定されている状態と、対象オブジェクトが設定されていない状態とを有する。
【0049】
この対象オブジェクトが設定されているか否かを示す情報が、ノンプレイヤキャラクタの行動制御をクライアント端末20に許可している状態か否かを示す状態情報となる。対象オブジェクトが設定されている場合、ノンプレイヤキャラクタの行動制御をクライアント端末20に許可している状態となる。一方、対象オブジェクトが設定されていない場合、ノンプレイヤキャラクタの行動制御をクライアント端末20に許可していない状態となる。
図6の例の場合、「NPCID:NPC00001」のノンプレイヤキャラクタの行動制御はクライアント端末20に許可されている。一方、「NPCID:NPC00002」のノンプレイヤキャラクタの行動制御はクライアント端末20に許可されていない。
【0050】
管理部13は、
図4に示す対象オブジェクト設定部15の設定に基づき、各ノンプレイヤキャラクタの対象オブジェクトの欄の値を更新する。
【0051】
対象オブジェクト設定部15は、各ノンプレイヤキャラクタのヘイト値に基づき、各ノンプレイヤキャラクタの対象オブジェクトを設定する。「各ノンプレイヤキャラクタのヘイト値」は、各ノンプレイヤキャラクタの他のキャラクタに対する現在の状態を示すヘイト値である。各ノンプレイヤキャラクタのヘイト値は、複数の他のキャラクタ各々に対するヘイト値、すなわち複数のヘイト値を含み得る。
【0052】
対象オブジェクト設定部15は、ヘイト値に基づき定義された設定条件を満たす他のキャラクタを、各ノンプレイヤキャラクタの対象オブジェクトとして設定する。以下、設定条件の一例を説明するが、これらに限定されない。
【0053】
一例として、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタのヘイト値が最大である他のキャラクタを、第1のノンプレイヤキャラクタの対象オブジェクトとして設定してもよい。例えば、第1のノンプレイヤキャラクタのヘイト値が次のような状態であるとする。
【0054】
第1の他のキャラクタ:0.6
第2の他のキャラクタ:0.8
第3の他のキャラクタ:0.4
第4の他のキャラクタ:0.9
【0055】
この場合、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタのヘイト値が最大である第4の他のキャラクタを、第1のノンプレイヤキャラクタの対象オブジェクトとして設定することができる。
【0056】
他の例として、対象オブジェクト設定部15は、各ノンプレイヤキャラクタの位置を基準にした相対的な位置関係と各ノンプレイヤキャラクタのヘイト値に基づき定義された設定条件を満たす他のキャラクタを、各ノンプレイヤキャラクタの対象オブジェクトとして設定してもよい。
【0057】
具体的には、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタからの距離が基準値L以内であり、かつ、当該位置の条件を満たす他のキャラクタの中で第1のノンプレイヤキャラクタのヘイト値が最大である他のキャラクタを、第1のノンプレイヤキャラクタの対象オブジェクトとして設定してもよい。
【0058】
例えば、第1のノンプレイヤキャラクタと他のキャラクタとの位置関係が
図7に示す状態であり、第1のノンプレイヤキャラクタのヘイト値が次のような状態であるとする。なお、
図7に示すN1が第1のノンプレイヤキャラクタであり、C1乃至C4が、各々、第1乃至第4の他のキャラクタである。
【0059】
第1の他のキャラクタ:0.6
第2の他のキャラクタ:0.8
第3の他のキャラクタ:0.4
第4の他のキャラクタ:0.9
【0060】
この場合、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタからの距離が基準値L以内である第1乃至第3の他のキャラクタの中の、第1のノンプレイヤキャラクタのヘイト値が最大である第2の他のキャラクタを、第1のノンプレイヤキャラクタの対象オブジェクトとして設定することができる。
【0061】
当該例によれば、位置の条件を満たすキャラクタのみをヘイト値の大小比較の対象とすればよく、ゲーム内の全てのキャラクタをヘイト値の大小比較の対象にしなくて済む。結果、コンピュータの処理負担が軽減される。
【0062】
その他、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタからの距離が基準値L以内であり、第1のノンプレイヤキャラクタとの間に所定の障害物が存在せず、かつ、当該位置の条件を満たす他のキャラクタの中で第1のノンプレイヤキャラクタのヘイト値が最大である他のキャラクタを、第1のノンプレイヤキャラクタの対象オブジェクトとして設定してもよい。
【0063】
例えば、第1のノンプレイヤキャラクタと他のキャラクタとの位置関係が
図8に示す状態であり、第1のノンプレイヤキャラクタのヘイト値が次のような状態であるとする。なお、
図8に示すN1が第1のノンプレイヤキャラクタであり、C1乃至C4が、各々、第1乃至第4の他のキャラクタであり、Wが壁(所定の障害物)である。
【0064】
第1の他のキャラクタ:0.6
第2の他のキャラクタ:0.8
第3の他のキャラクタ:0.4
第4の他のキャラクタ:0.9
【0065】
この場合、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタからの距離が基準値L以内であり、かつ、第1のノンプレイヤキャラクタとの間に所定の障害物が存在しない第1及び第3の他のキャラクタの中の、第1のノンプレイヤキャラクタのヘイト値が最大である第1の他のキャラクタを、第1のノンプレイヤキャラクタの対象オブジェクトとして設定することができる。
【0066】
第1のノンプレイヤキャラクタとの間に所定の障害物が存在するか否かの判断は、例えば、第1のノンプレイヤキャラクタと他のキャラクタとを結ぶ直線上に、所定の障害物が存在するか否かを判断することで実現できる。
【0067】
当該例によれば、位置の条件を満たすキャラクタのみをヘイト値の大小比較の対象とすればよく、ゲーム内の全てのキャラクタをヘイト値の大小比較の対象にしなくて済む。結果、コンピュータの処理負担が軽減される。また、障害物に隠れることでノンプレイヤキャラクタの攻撃対象でなくなるというゲーム性とすることができ、ゲームの興趣性が向上する。
【0068】
図4に戻り、第1のNPC行動制御部11は、ノンプレイヤキャラクタの行動を制御し、ノンプレイヤキャラクタの行動内容を示す第1のNPC行動情報をクライアント端末20に送信する。行動制御の内容は、移動するか攻撃するかの選択、移動先の決定、攻撃スキルの選択などである。第1のNPC行動情報で示される行動内容は、行動種別(移動、攻撃等)、移動方向、移動距離、選択された攻撃スキル等である。
【0069】
なお、第1のNPC行動制御部11は、管理部13が管理する情報(上記状態情報)に基づき、各ノンプレイヤキャラクタの行動制御をクライアント端末20に許可している状態か否かを把握し、その状態に応じた処理を実行する。
【0070】
対象オブジェクトが設定されていない場合、すなわちノンプレイヤキャラクタの行動制御をクライアント端末20に許可していない場合、第1のNPC行動制御部11は、そのノンプレイヤキャラクタの行動制御を行う。
【0071】
一方、対象オブジェクトが設定されている場合、すなわちノンプレイヤキャラクタの行動制御をクライアント端末20に許可している場合、第1のNPC行動制御部11は、そのノンプレイヤキャラクタの行動制御を原則行わない。この場合は、いずれかのクライアント端末20が、原則ノンプレイヤキャラクタの行動制御を行う。
【0072】
なお、ノンプレイヤキャラクタの行動制御をクライアント端末20に許可している場合においても、所定の条件を満たした場合、第1のNPC行動制御部11はそのノンプレイヤキャラクタの行動制御を行ってもよい。この場合、サーバ10とクライアント端末20の両方が1つのノンプレイヤキャラクタの行動制御を行うことになるが、このような場合はサーバ10による行動制御を優先するように定めておくことで、問題を発生させることなくゲームを進行させることができる。
【0073】
通知部14は、通信部12を介して、あるノンプレイヤキャラクタの対象オブジェクトとして設定されたプレイヤキャラクタの行動制御を行うクライアント端末20に、そのノンプレイヤキャラクタの行動制御を許可する通知を行う。以下、通知の一例を説明する。
【0074】
例えば、通知部14は、あるノンプレイヤキャラクタの対象オブジェクトが新たに設定されると、その都度、その旨を複数のクライアント端末20(例:全てのクライアント端末20)に通知してもよい。通知内容には、ノンプレイヤキャラクタを識別する情報、及び、そのノンプレイヤキャラクタの対象オブジェクトとして設定されたキャラクタを識別する情報が含まれる。
【0075】
クライアント端末20は、当該通知で示される対象オブジェクトと、自身が行動制御を行うプレイヤキャラクタとが一致するか否かを判断することで、自身が行動制御を行うプレイヤキャラクタが対象オブジェクトとして設定されたか否かを認識できる。そして、クライアント端末20は、自身が行動制御を行うプレイヤキャラクタが対象オブジェクトとして設定されたことを認識すると、それに応じて、当該通知で示されるノンプレイヤキャラクタの行動制御を開始できる。行動制御の内容は、移動するか攻撃するかの選択、移動先の決定、攻撃スキルの選択などである
【0076】
この例の場合、あるノンプレイヤキャラクタの対象オブジェクトが新たに設定されたことの通知が、対象オブジェクトに設定されたプレイヤキャラクタの行動制御を行うクライアント端末20にとっては、そのノンプレイヤキャラクタの行動制御を許可する通知となる。
【0077】
ところで、あるノンプレイヤキャラクタの対象オブジェクトが設定された直後、すなわちそのノンプレイヤキャラクタの行動制御を行う主体が変更(例:サーバ10からクライアント端末10に変更)した直後は、当該変更に起因して、そのノンプレイヤキャラクタの行動制御を行わないクライアント端末20に表示されたそのノンプレイヤキャラクタの動作のリアルタイム性が低くなり得る。当該不都合を解消するため、あるノンプレイヤキャラクタの対象オブジェクトが設定された直後は、そのノンプレイヤキャラクタの移動制御を複数のクライアント端末20各々が行ってもよい。このようにすれば、対象オブジェクトが設定された直後においてもゲームのリアルタイム性を高めることができる。なお、以下で説明するが、あるノンプレイヤキャラクタの対象オブジェクトが設定されている状態において、そのノンプレイヤキャラクタの移動は、基本的には対象オブジェクトに近づく移動となる。このため、複数のクライアント端末20各々がそのノンプレイヤキャラクタの移動制御を行っても、制御内容の差はほとんどなく、生じてもその差はわずかである。
【0078】
例えば、上記通知で示される対象オブジェクトと、自身が行動制御を行うプレイヤキャラクタとが一致しなかったクライアント端末20、すなわち自身が行動制御を行うプレイヤキャラクタが対象オブジェクトとして設定されていないクライアント端末20(以下、「非設定のクライアント端末20」)は、当該通知に応じて、当該通知で示されるノンプレイヤキャラクタを当該通知で示される対象オブジェクト(プレイヤキャラクタ)に近づけるように、当該通知で示されるノンプレイヤキャラクタの移動を制御してもよい。通知に応じてノンプレイヤキャラクタの移動の制御を行った後は、非設定のクライアント端末20は、サーバ10から受信した第2のNPC行動情報に基づきノンプレイヤキャラクタの表示を変更する。
【0079】
なお、複数のクライアント端末20各々がノンプレイヤキャラクタの移動制御を行う場合、わずかではあるが制御内容に不整合が生じ得る。当該不整合を解消するため、非設定のクライアント端末20は、対象オブジェクトの行動制御を行うクライアント端末20(以下、「設定のクライアント端末20」)が行ったノンプレイヤキャラクタの行動制御の内容を示す第2のNPC行動情報を受信すると、自端末で行ったノンプレイヤキャラクタの行動制御の内容と、設定のクライアント端末20が行ったノンプレイヤキャラクタの行動制御の内容との間に不整合が生じていないか確認し、生じている場合にはそれを補正するようにノンプレイヤキャラクタの移動を制御してもよい。非設定のクライアント端末20は、受信した第2のNPC行動情報で示されるノンプレイヤキャラクタの行動内容を真とし、それに合わせるように、すなわち第2のNPC行動情報で示される移動を行った後の位置にノンプレイヤキャラクタを位置させるように、ノンプレイヤキャラクタの移動を制御する。
【0080】
なお、上述のように、非設定のクライアント端末20が行った行動制御の内容と、設定のクライアント端末20が行った行動制御の内容との間に不整合が生じ得るが、この不整合が起こるのは非設定のクライアント端末20上でのみなので、ゲーム全体としては問題となりにくい。
【0081】
中継部16は、通信部12を介して、ノンプレイヤキャラクタの行動制御を行うクライアント端末20からそのノンプレイヤキャラクタの行動内容を示す第2のNPC行動情報を受信する。そして、中継部16は、第2のNPC行動情報を他のクライアント端末20に送信する。
【0082】
次に、サーバ10の処理の流れの一例を説明する。まず、
図9を用いて、サーバ10が行う処理の全体像の一例を説明する。サーバ10は、ノンプレイヤキャラクタごとに、
図9で示されるフローを繰り返し行う。ここでは、第1のノンプレイヤキャラクタを処理対象としている前提で、
図9のフローを説明する。
【0083】
S1では、サーバ10は、第1のノンプレイヤキャラクタの対象オブジェクトが設定されているか否かを判断する。対象オブジェクトが設定されている場合(S1のYes)、サーバ10は、設定されている対象オブジェクトがプレイヤキャラクタかノンプレイヤキャラクタかを判断する(S2)。
【0084】
対象オブジェクトがプレイヤキャラクタである場合(S2のPC)、中継部16が中継処理を行う(S3)。一方、対象オブジェクトがノンプレイヤキャラクタである場合(S2のNPC)、第1のNPC行動制御部11による第1のノンプレイヤキャラクタの行動制御等が行われる(S4)。ここでは、例えば対象オブジェクトに対する行動(例:攻撃、接近等)が実行される。
【0085】
また、対象オブジェクトが設定されていない場合(S1のNo)、第1のNPC行動制御部11による第1のノンプレイヤキャラクタの行動制御等が行われる(S5)。ここでは、例えば対象オブジェクトを設定するための行動(例:移動、検索等)が実行される。
【0086】
次に、
図10のフローチャートを用いて、対象オブジェクトが設定されていない場合にサーバ10が行う
図9のS5の行動制御の処理の流れの一例を説明する。
【0087】
S10では、第1のNPC行動制御部11は、第1のノンプレイヤキャラクタの移動内容(移動方向・移動距離等)を決定する。移動内容の決定方法は設計的事項である。そして、通知部14は、決定された移動内容をクライアント端末20に通知する。
【0088】
その後、対象オブジェクト設定部15は、移動後の位置において、設定条件を満たす他のキャラクタを検索する(S11)。例えば、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタからの距離が基準値L以内であり、かつ、当該位置の条件を満たす他のキャラクタの中で第1のノンプレイヤキャラクタのヘイト値が最大である他のキャラクタを検索する。また、他の例ではノンプレイヤキャラクタに視界領域が設定され、その領域内のキャラクタの中で第1のノンプレイヤキャラクタのヘイト値が最大であるキャラクタを検索する。
【0089】
設定条件を満たすキャラクタが存在する場合(S12のYes)、対象オブジェクト設定部15はそのキャラクタを、第1のノンプレイヤキャラクタの対象オブジェクトに設定する(S13)。そして、通知部14はその旨をクライアント端末20に通知する(S13)。
【0090】
一方、設定条件を満たすキャラクタが存在しない場合(S12のNo)、処理が終了する。
【0091】
次に、
図11のフローチャートを用いて、プレイヤキャラクタが対象オブジェクトとして設定されている場合にサーバ10が行う
図9のS3の中継処理の流れの一例を説明する。
【0092】
中継部16は、対象オブジェクトとして設定されているプレイヤキャラクタの行動制御を行うクライアント端末20から、第1のノンプレイヤキャラクタの行動内容を示す第2のNPC行動情報を受信する(S20)。そして、中継部16は、他のクライアント端末20に当該第2のNPC行動情報を送信する(S21)。
【0093】
なお、サーバ10は、第2のNPC行動情報を受信すると(S20)、受信した第2のNPC行動情報に基づき、ノンプレイヤキャラクタに紐付く管理データ(ヒットポイント等)の更新を行う。ノンプレイヤキャラクタに紐付く管理データはクライアント端末20にも通知され、不正防止のため常にサーバ10のデータが真として扱われる。
【0094】
次に、
図12のフローチャートを用いて、ノンプレイヤキャラクタが対象オブジェクトとして設定されている場合にサーバ10が行う
図9のS4の行動制御の処理の流れの一例を説明する。
【0095】
S30では、第1のNPC行動制御部11は、第1のノンプレイヤキャラクタと対象オブジェクトとの距離が基準値以下か判断する。
【0096】
距離が基準値以下である場合(S30のYes)、第1のNPC行動制御部11は、対象オブジェクトに対して攻撃を行うこと及び攻撃内容(例:攻撃スキル)を決定する(S31)。そして、通知部14は、決定された攻撃内容をクライアント端末20に通知する(S31)。
【0097】
一方、距離が基準値より大きい場合(S30のNo)、第1のNPC行動制御部11は、対象オブジェクトに接近すること及び接近内容(移動方向、移動距離等)を決定する(S32)。そして、通知部14は、決定された接近内容をクライアント端末20に通知する(S32)。
【0098】
「クライアント端末20の構成」
以下、クライアント端末20の構成を詳細に説明する。まず、クライアント端末20のハードウエア構成の一例について説明する。本実施形態のクライアント端末20が備える各機能部は、任意のコンピュータのCPU、メモリ、メモリにロードされるプログラム、そのプログラムを格納するハードディスク等の記憶ユニット(あらかじめ装置を出荷する段階から格納されているプログラムのほか、CD等の記憶媒体やインターネット上のサーバ等からダウンロードされたプログラムをも格納できる)、ネットワーク接続用インターフェイスを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。クライアント端末20のハードウエア構成の一例は、サーバ10同様、
図3で示される。
【0099】
次に、クライアント端末20の機能構成を説明する。
図13に、クライアント端末20の機能ブロック図の一例を示す。図示するように、クライアント端末20は、通信部21と、PC行動制御部22と、第2のNPC行動制御部23と、表示制御部25と、表示部26とを有する。
【0100】
通信部21は、インターネット等のネットワークを介して、サーバ10と通信する。
【0101】
例えば、通信部21は、サーバ10に、プレイヤの入力に基づきクライアント端末20が行動制御したプレイヤキャラクタの行動内容を示す情報(PC行動情報)を送信する。
また、例えば、通信部21は、サーバ10に、クライアント端末20が行動制御したノンプレイヤキャラクタの行動内容を示す情報(第2のNPC行動情報)を送信する。
また、例えば、通信部21は、サーバ10から、サーバ10が行動制御したノンプレイヤキャラクタの行動内容を示す情報(第1のNPC行動情報)を受信する。
また、例えば、通信部21は、サーバ10から、他のクライアント端末20が行動制御したプレイヤキャラクタの行動内容を示す情報(PC行動情報)を受信する。
また、例えば、通信部21は、サーバ10から、他のクライアント端末20が行動制御したノンプレイヤキャラクタの行動内容を示す情報(第2のNPC行動情報)を受信する。
なお、通信部21は、サーバ10にその他の情報を送信し、また、サーバ10からその他の情報を受信することができる。
【0102】
PC行動制御部22は、プレイヤの入力に基づきプレイヤキャラクタの行動を制御し、プレイヤキャラクタの行動内容を示すPC行動情報をサーバ10に送信する。行動制御の内容は、移動するか攻撃するかの選択、移動先の決定、攻撃スキルの選択などである。PC行動情報で示される行動内容は、行動種別(移動、攻撃等)、移動方向、移動距離、選択された攻撃スキル等である。
【0103】
第2のNPC行動制御部23は、サーバ10からの通知に基づき、自クライアント端末20がいずれかのノンプレイヤキャラクタの行動制御を許可されている状態か否かを示す情報を管理する。上述の通り、サーバ10の通知部14は、あるノンプレイヤキャラクタの対象オブジェクトとして設定されたプレイヤキャラクタの行動制御を行うクライアント端末20に、そのノンプレイヤキャラクタの行動制御を許可する通知を行う。第2のNPC行動制御部23は、サーバ10からの当該通知に基づき、自クライアント端末20がいずれかのノンプレイヤキャラクタの行動制御を許可されている状態か否かを示す情報を管理する。
【0104】
そして、第2のNPC行動制御部23は、自クライアント端末20がいずれかのノンプレイヤキャラクタの行動制御を許可されている状態である場合、そのノンプレイヤキャラクタの行動制御を行う。具体的には、第2のNPC行動制御部23は、
図9のS4の行動制御と同様な処理、例えば
図12のフローを実行する。そして、第2のNPC行動制御部23は、行動制御したノンプレイヤキャラクタの行動内容を示す第2のNPC行動情報をサーバ10に送信する。第2のNPC行動情報で示される行動内容は、行動種別(移動、攻撃等)、移動方向、移動距離、選択された攻撃スキル等である。
【0105】
表示制御部25は、PC行動情報、第1のNPC行動情報及び第2のNPC行動情報等に基づき、表示部(ディスプレイ)26に表示されている情報を更新する。例えば、キャラクタの位置を移動させたり、キャラクタが行った所定の行動(例:攻撃)を示す情報を表示したりする。
【0106】
「作用効果」
以上説明した本実施形態のゲームシステム1によれば、ノンプレイヤキャラクタの行動制御を、クライアント端末20側のコンピュータで行うことができる。クライアント端末20側のコンピュータがプレイヤキャラクタ及びノンプレイヤキャラクタ両方の行動制御を行うことで、そのプレイヤキャラクタとそのノンプレイヤキャラクタとの間で行われる行動に対する互いの反応の表示のリアルタイム性が高くなる。
【0107】
なお、クライアント端末20は複数存在するため、適切なクライアント端末20が適切なノンプレイヤキャラクタの行動制御を行うように制御しないと、リアルタイム性の問題は軽減できない。例えば、第1のプレイヤキャラクタと第1のノンプレイヤキャラクタが戦っている時に、第2のプレイヤキャラクタの行動制御を行うクライアント端末20が第1のノンプレイヤキャラクタの行動制御を行っても、リアルタイム性の問題は軽減できない。
【0108】
本実施形態のゲームシステム1によればこの問題も軽減できる。本実施形態のゲームシステム1では、ノンプレイヤキャラクタが所定の行動(例:攻撃)を行う対象として設定されたプレイヤキャラクタの行動制御を行うクライアント端末20が、そのノンプレイヤキャラクタの行動制御を行う。すなわち、対象オブジェクトに設定され、ノンプレイヤキャラクタとの間で互いに所定の行動(例:攻撃)を行う可能性が高くなったプレイヤキャラクタの行動制御を行うクライアント端末20が、そのノンプレイヤキャラクタの行動制御を行う。このような本実施形態のゲームシステム1によれば、適切なクライアント端末20が適切なノンプレイヤキャラクタの行動制御を行うことで、リアルタイム性の問題を軽減できる。
【0109】
また、本実施形態のゲームシステム1は、クライアント端末20がノンプレイヤキャラクタの行動制御を行う場合、クライアント端末20が行動制御したノンプレイヤキャラクタの行動内容を示す情報(第2のNPC行動情報)を、サーバ10を介して他のクライアント端末20の送信することができる。このため、クライアント端末20がノンプレイヤキャラクタの行動制御を行うように構成しても、すべてのクライアント端末20において問題なくゲームを進行することができる。
【0110】
「変形例」
ここで、本実施形態のゲームシステム1の変形例を説明する。上記例では、ヘイト値を第1のパラメータ値とし、対象オブジェクト設定部15はヘイト値に基づきノンプレイヤキャラクタの対象オブジェクトを設定した。変形例では、他のパラメータ値を第1のパラメータ値とし、対象オブジェクト設定部15は当該他のパラメータ値に基づきノンプレイヤキャラクタの対象オブジェクトを設定してもよい。
【0111】
例えば、ヒットポイント、レベル、通貨等を第1のパラメータ値としてもよい。そして、対象オブジェクト設定部15は、ノンプレイヤキャラクタからの距離が基準値L以内である他のキャラクタの中の、ヒットポイント、レベルまたは通貨が最大又は最小である他のキャラクタを、そのノンプレイヤキャラクタの対象オブジェクトとして設定してもよい。
【0112】
その他、対象オブジェクト設定部15は、ノンプレイヤキャラクタからの距離が基準値L以内であり、そのノンプレイヤキャラクタとの間に所定の障害物が存在しない他のキャラクタの中の、ヒットポイント、レベル又は通貨が最大又は最小である他のキャラクタを、そのノンプレイヤキャラクタの対象オブジェクトとして設定してもよい。
【0113】
当該変形例においても、本実施形態のゲームシステム1と同様な作用効果を実現できる。
【0114】
<第2の実施形態>
「概要」
本実施形態のゲームシステム1は、クライアント端末20がノンプレイヤキャラクタの行動制御を行っている間、サーバ10が所定の状態を監視し、その状態に応じて、そのノンプレイヤキャラクタの行動制御を行う主体を他の主体に変更する制御を行う点で、第1の実施形態と異なる。その他の構成は、第1の実施形態と同様である。以下、詳細に説明する。
【0115】
「サーバ10の構成」
サーバ10のハードウエア構成の一例は、第1の実施形態と同様である。
【0116】
サーバ10の機能ブロック図の一例は、第1の実施形態同様、
図4で示される。図示するように、サーバ10は、第1のNPC行動制御部11と、通信部12と、管理部13と、通知部14と、対象オブジェクト設定部15と、中継部16とを有する。第1のNPC行動制御部11、通信部12、管理部13、通知部14及び中継部16の構成は、第1の実施形態と同様である。
【0117】
対象オブジェクト設定部15は、第1の実施形態同様、各ノンプレイヤキャラクタの第1のパラメータ値に基づき、各ノンプレイヤキャラクタの対象オブジェクトを設定する。具体的には、対象オブジェクト設定部15は、第1のパラメータ値に基づき定義された設定条件を満たす他のキャラクタを検索し、設定条件を満たす他のキャラクタを対象オブジェクトに設定する。設定条件は第1の実施形態で説明した通りであるが、例えば「第1のノンプレイヤキャラクタからの距離が基準値L以内であり、かつ、当該位置の条件を満たす他のキャラクタの中で第1のパラメータ値が最大(又は最小)」である。
【0118】
そして、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタの対象オブジェクトが設定されている間も、繰り返し、第1のノンプレイヤキャラクタに対応して、設定条件を満たす他のキャラクタを検索する。そして、対象オブジェクト設定部15は、検索結果に応じた処理を実行する。以下、複数のケースに分けて、対象オブジェクト設定部15の処理を説明する。
【0119】
−ケース1−
例えば、第1のノンプレイヤキャラクタの対象オブジェクトとして第1のプレイヤキャラタが設定されている時に、第1のプレイヤキャラクタが設定条件を満たさなくなり、かつ、第2のプレイヤキャラクタが設定条件を満たすことになったと判断すると、対象オブジェクト設定部15は、第1のプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトから解除し、第2のプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトに設定する。
【0120】
ゲームの進行に応じて、第1のノンプレイヤキャラクタのヘイト値や、第1のノンプレイヤキャラクタと他のキャラクタとの位置関係等が変化する。これに応じて、第1のプレイヤキャラクタが設定条件を満たさなくなり、かつ、第2のプレイヤキャラクタが設定条件を満たすことになるという状況が発生し得る。
【0121】
通知部14は、上記解除及び設定に応じて、第2のプレイヤキャラクタの行動制御を行うクライアント端末20に、第1のノンプレイヤキャラクタの行動制御を許可する通知を行う。また、通知部14は、第1のプレイヤキャラクタの行動制御を行うクライアント端末20に、第1のノンプレイヤキャラクタの行動制御を許可しない通知を行う。
【0122】
例えば、通知部14は、第2のプレイヤキャラクタが第1のノンプレイヤキャラクタの対象オブジェクトに設定された旨を、複数のクライアント端末20に通知する。通知内容には、第1のノンプレイヤキャラクタを識別する情報、及び、第1のノンプレイヤキャラクタの対象オブジェクトを識別する情報が含まれる。
【0123】
第2のプレイヤキャラクタの行動制御を行うクライアント端末20は、当該通知で示される対象オブジェクトと、自身が行動制御を行う第2のプレイヤキャラクタとが一致するか否かを判断することで、自身が行動制御を行う第2のプレイヤキャラクタが第1のノンプレイヤキャラクタの対象オブジェクトとして設定されたことを認識し、それに応じて、第1のノンプレイヤキャラクタの行動制御を開始できる。
【0124】
また、第1のプレイヤキャラクタの行動制御を行うクライアント端末20は、当該通知で示される対象オブジェクトと、自身が行動制御を行う第1のプレイヤキャラクタとが一致するか否かを判断することで、自身が行動制御を行う第1のプレイヤキャラクタが第1のノンプレイヤキャラクタの対象オブジェクトとして設定されていないことを認識し、それに応じて、第1のノンプレイヤキャラクタの行動制御を終了できる。
【0125】
この例の場合、あるノンプレイヤキャラクタの対象オブジェクトが新たに設定されたことの通知が、対象オブジェクトに設定されたプレイヤキャラクタの行動制御を行うクライアント端末20にとっては、そのノンプレイヤキャラクタの行動制御を許可する通知となり、他のクライアント端末20にとっては、そのノンプレイヤキャラクタの行動制御を許可しない通知となる。
【0126】
−ケース2−
例えば、第1のノンプレイヤキャラクタの対象オブジェクトとして第1のプレイヤキャラタが設定されている時に、第1のプレイヤキャラクタが設定条件を満たさなくなり、かつ、他の第2のノンプレイヤプレイヤキャラクタが設定条件を満たすことになったと判断すると、対象オブジェクト設定部15は、第1のプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトから解除し、第2のノンプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトに設定する。当該解除及び設定に応じて、第1のNPC行動制御部11は第1のノンプレイヤキャラクタの行動制御を開始する。
【0127】
通知部14は、上記解除及び設定に応じて、第1のプレイヤキャラクタの行動制御を行うクライアント端末20に、第1のノンプレイヤキャラクタの行動制御を許可しない通知を行う。
【0128】
例えば、通知部14は、第2のノンプレイヤキャラクタが第1のノンプレイヤキャラクタの対象オブジェクトに設定された旨を、複数のクライアント端末20に通知する。通知内容には、第1のノンプレイヤキャラクタを識別する情報、及び、第1のノンプレイヤキャラクタの対象オブジェクトを識別する情報が含まれる。
【0129】
第1のプレイヤキャラクタの行動制御を行うクライアント端末20は、当該通知で示される対象オブジェクトと、自身が行動制御を行う第1のプレイヤキャラクタとが一致するか否かを判断することで、自身が行動制御を行う第1のプレイヤキャラクタが第1のノンプレイヤキャラクタの対象オブジェクトとして設定されていないことを認識し、それに応じて、第1のノンプレイヤキャラクタの行動制御を終了できる。
【0130】
この例の場合、あるノンプレイヤキャラクタの対象オブジェクトが新たに設定されたことの通知が、そのノンプレイヤキャラクタの行動制御を許可しない通知となる。
【0131】
次に、
図14を用いて、サーバ10が行う処理の全体像の一例を説明する。サーバ10は、ノンプレイヤキャラクタごとに、
図14で示されるフローを繰り返し行う。ここでは、第1のノンプレイヤキャラクタを処理対象としている前提で、
図14のフローを説明する。
【0132】
S1では、サーバ10は、第1のノンプレイヤキャラクタの対象オブジェクトが設定されているか否かを判断する。対象オブジェクトが設定されている場合(S1のYes)、サーバ10は、設定されている対象オブジェクトがプレイヤキャラクタかノンプレイヤキャラクタかを判断する(S2)。
【0133】
対象オブジェクトがプレイヤキャラクタである場合(S2のPC)、中継部16が中継処理を行う(S3)。また、対象オブジェクト設定部15による状態のチェック等が行われる(S3)。
【0134】
一方、対象オブジェクトがノンプレイヤキャラクタである場合(S2のNPC)、第1のNPC行動制御部11による第1のノンプレイヤキャラクタの行動制御等が行われる(S4)。ここでは、例えば対象オブジェクトに対する行動(例:攻撃、接近等)が実行される。
【0135】
また、対象オブジェクトが設定されていない場合(S1のNo)、第1のNPC行動制御部11による第1のノンプレイヤキャラクタの行動制御等が行われる(S5)。ここでは、例えば対象オブジェクトを設定するための行動(例:移動、検索等)が実行される。
【0136】
なお、S3の中継処理、S4の行動制御及びS5の行動制御の一例は、第1の実施形態と同様である。
【0137】
次に、
図15のフローチャートを用いて、プレイヤキャラクタが対象オブジェクトとして設定されている場合にサーバ10が行う
図14のS3の状態チェック処理の一例の流れを説明する。
【0138】
まず、対象オブジェクト設定部15が、設定条件を満たす他のキャラクタを検索する(S40)。例えば、対象オブジェクト設定部15は、第1のノンプレイヤキャラクタからの距離が基準値L以内であり、かつ、当該位置の条件を満たす他のキャラクタの中で第1のパラメータ値が最大(又は最小)である他のキャラクタを検索する。
【0139】
設定条件を満たすキャラクタが存在する場合(S41のYes)、対象オブジェクト設定部15は、新たに検索したキャラクタと、その時点で設定されている対象オブジェクトが一致するか判断する(S42)。
【0140】
一致する場合(S42のYes)、処理が終了する。一方、一致しない場合(S42のNo)、対象オブジェクト設定部15は、新たに検索したキャラクタを、第1のノンプレイヤキャラクタの対象オブジェクトに設定する(S43)。そして、通知部14はその旨をクライアント端末20に通知する(S43)。S43での設定により、それまで第1のノンプレイヤキャラクタの対象オブジェクトとして設定されていたキャラクタは、第1のノンプレイヤキャラクタの対象オブジェクトから解除される。
【0141】
一方、設定条件を満たすキャラクタが存在しない場合(S41のNo)、対象オブジェクト設定部15は、その時点で設定されている対象オブジェクトを解除する(S44)。そして、通知部14はその旨をクライアント端末20に通知する(S44)。S44の解除により、第1のノンプレイヤキャラクタの対象オブジェクトは設定されていない状態となる。
【0142】
「クライアント端末20の構成」
クライアント端末20のハードウエア構成の一例は、第1の実施形態と同様である。
【0143】
クライアント端末20の機能ブロック図の一例は、第1の実施形態同様、
図13で示される。図示するように、クライアント端末20は、通信部21と、PC行動制御部22と、第2のNPC行動制御部23と、表示制御部25と、表示部26とを有する。通信部21、PC行動制御部22、表示制御部25及び表示部26の構成は、第1の実施形態と同様である。
【0144】
第2のNPC行動制御部23は、第1の実施形態で説明したように、サーバ10からの通知に基づき、自クライアント端末20がいずれかのノンプレイヤキャラクタの行動制御を許可されている状態か否かを示す情報を管理する。
【0145】
なお、本実施形態のクライアント端末20は、あるノンプレイヤキャラクタの行動制御を許可する通知に加えて、そのノンプレイヤキャラクタの行動制御を許可しない通知を受けることができる。第2のNPC行動制御部23は、当該通知に基づき、自クライアント端末20がいずれかのノンプレイヤキャラクタの行動制御を許可されている状態か否かを示す情報を管理する。
【0146】
「作用効果」
以上説明した本実施形態のゲームシステム1によれば、第1の実施形態と同様な作用効果を実現できる。
【0147】
また、本実施形態のゲームシステム1によれば、あるキャラクタをあるノンプレイヤキャラクタの対象オブジェクトに設定した後も、ゲームの進行に伴う状態の変化に応じて、対象オブジェクトを他のキャラクタに変更することができる。このため、ゲームの進行に応じて状況がどんどん変化する多様性に富んだゲームを実現できる。そして、本実施形態のゲームシステム1によれば、対象オブジェクトが変更されると、それに応じて、ノンプレイヤキャラクタの行動制御を行う主体を変更することができる。このため、このような多用性に富んだゲームを実現しつつ、リアルタイム性の問題を軽減できる。
【0148】
<第3の実施形態>
「概要」
本実施形態のゲームシステム1は、第2の実施形態同様、クライアント端末20がノンプレイヤキャラクタの行動制御を行っている間、サーバ10が所定の状態を監視し、その状態に応じて、そのノンプレイヤキャラクタの行動制御を行う主体を他の主体に変更する制御を行う点で、第1の実施形態と異なる。その他の構成は、第1の実施形態と同様である。以下、詳細に説明する。
【0149】
「サーバ10の構成」
サーバ10のハードウエア構成の一例は、第1又は第2の実施形態と同様である。
【0150】
サーバ10の機能ブロック図の一例は、第1及び第2の実施形態同様、
図4で示される。図示するように、サーバ10は、第1のNPC行動制御部11と、通信部12と、管理部13と、通知部14と、対象オブジェクト設定部15と、中継部16とを有する。第1のNPC行動制御部11、通信部12、通知部14、対象オブジェクト設定部15及び中継部16の構成は、第1又は第2の実施形態と同様である。
【0151】
管理部13は、第1のノンプレイヤキャラクタの行動制御をクライアント端末20に許可している状態において、第1のノンプレイヤキャラクタの対象オブジェクトとして設定されたプレイヤキャラクタの第2のパラメータ値が数値条件を満たすか監視する。第2のパラメータ値は、例えば「ヒットポイント」であり、数値条件は例えば「ヒットポイントがゼロ」である。なお、ヒットポイントがゼロになると、ゲームオーバーとなる。
【0152】
そして、第1のノンプレイヤキャラクタの対象オブジェクトとして設定されたプレイヤキャラクタの第2のパラメータ値が数値条件を満たすと、管理部13は、そのプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトから解除する。この解除により、第1のノンプレイヤキャラクタの対象オブジェクトは設定されていない状態となる。結果、第1のノンプレイヤキャラクタの行動制御をクライアント端末20に許可していない状態に変更される。
【0153】
当該解除に応じて、第1のNPC行動制御部11は第1のノンプレイヤキャラクタの行動制御を開始する。また、通知部14は、第1のノンプレイヤキャラクタの対象オブジェクトが設定されていないことを、複数のクライアント端末20に通知してもよい。
【0154】
管理部13は、ここで説明した機能に加えて、第1及び第2の実施形態で説明した機能の少なくとも一部、例えば全部を備えることができる。
【0155】
本実施形態のサーバ10は、第2の実施形態同様、ノンプレイヤキャラクタごとに、
図14で示されるフローを繰り返し行う。S3の中継処理、S4の行動制御及びS5の行動制御の一例は、第1の実施形態と同様である。
【0156】
次に、
図16のフローチャートを用いて、第1のプレイヤキャラクタが第1のノンプレイヤキャラクタの対象オブジェクトとして設定されている場合にサーバ10が行う
図14のS3の状態チェック処理の一例の流れを説明する。
【0157】
まず、管理部13が、第1のノンプレイヤキャラクタの対象オブジェクトとして設定されているプレイヤキャラクタのヒットポイントが数値条件(ヒットポイントゼロ)を満たすか判断する(S50)。
【0158】
数値条件を満たす場合(S50のYes)、管理部13は、そのプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトから解除する(S51)。S51の解除により、第1のノンプレイヤキャラクタの対象オブジェクトは設定されていない状態となる。
【0159】
一方、数値条件を満たす場合(S50のYes)、処理が終了する。
【0160】
なお、
図14のS3の状態チェック処理では、
図16のフローチャートを用いて説明した上記処理に加えて、第2の実施形態で
図15のフローチャートを用いて説明した上記処理を行ってもよい。
【0161】
「クライアント端末20の構成」
クライアント端末20のハードウエア構成及び機能構成は、第1又は第2の実施形態と同様である。
【0162】
なお、対象オブジェクトとして設定されているプレイヤキャラクタのヒットポイントが数値条件(ヒットポイントゼロ)を満たす場合、ゲームオーバーとなる。これに応じて、PC行動制御部22はプレイヤキャラクタの行動制御を終了し、また、第2のNPC行動制御部23はノンプレイヤキャラクタの行動制御を終了する。
【0163】
「作用効果」
以上説明した本実施形態のゲームシステム1によれば、第1及び第2の実施形態と同様な作用効果を実現できる。
【0164】
また、本実施形態のゲームシステム1によれば、ノンプレイヤキャラクタの行動制御を行っているクライアント端末20が行動制御を行うプレイヤキャラクタの状態を監視し、ゲームオーバーを検出すると、そのノンプレイヤキャラクタの行動制御を行う主体をサーバ10に移すことができる。このため、対象オブジェクトとして設定されているプレイヤキャラクタがゲームオーバーになり、ゲームから脱退する状況が発生しても、ノンプレイヤキャラクタの行動制御を行う主体を速やかにサーバ10に変更し、ゲームを円滑に進行することができる。
【0165】
<第4の実施形態>
「概要」
本実施形態のゲームシステム1は、第2及び第3の実施形態同様、クライアント端末20がノンプレイヤキャラクタの行動制御を行っている間、サーバ10が所定の状態を監視し、その状態に応じて、そのノンプレイヤキャラクタの行動制御を行う主体を他の主体に変更する制御を行う点で、第1の実施形態と異なる。その他の構成は、第1の実施形態と同様である。以下、詳細に説明する。
【0166】
「サーバ10の構成」
サーバ10のハードウエア構成の一例は、第1乃至第3の実施形態のいずれかと同様である。
【0167】
サーバ10の機能ブロック図の一例は、第1乃至第3の実施形態同様、
図4で示される。図示するように、サーバ10は、第1のNPC行動制御部11と、通信部12と、管理部13と、通知部14と、対象オブジェクト設定部15と、中継部16とを有する。第1のNPC行動制御部11、通信部12、通知部14、対象オブジェクト設定部15及び中継部16の構成は、第1乃至第3の実施形態のいずれかと同様である。
【0168】
管理部13は、第1のノンプレイヤキャラクタの対象オブジェクトとして第1のプレイヤキャラクタを設定し、第1のノンプレイヤキャラクタの行動制御を第1のプレイヤキャラクタの行動制御を行うクライアント端末20に許可している状態において、そのクライアント端末20とサーバ10との通信が切断されていないか監視する。
【0169】
そして、通信の切断を検出すると、管理部13は、第1のプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトから解除する。この解除により、第1のノンプレイヤキャラクタの対象オブジェクトは設定されていない状態となる。結果、第1のノンプレイヤキャラクタの行動制御をクライアント端末20に許可していない状態に変更される。
【0170】
当該解除に応じて、第1のNPC行動制御部11は第1のノンプレイヤキャラクタの行動制御を開始する。また、通知部14は、第1のノンプレイヤキャラクタの対象オブジェクトが設定されていないことを、複数のクライアント端末20に通知してもよい。
【0171】
管理部13は、ここで説明した機能に加えて、第1乃至第3の実施形態で説明した機能の少なくとも一部、例えば全部を備えることができる。
【0172】
本実施形態のサーバ10は、第2及び第3の実施形態同様、ノンプレイヤキャラクタごとに、
図14で示されるフローを繰り返し行う。S3の中継処理、S4の行動制御及びS5の行動制御の一例は、第1の実施形態と同様である。
【0173】
次に、
図17のフローチャートを用いて、第1のプレイヤキャラクタが第1のノンプレイヤキャラクタの対象オブジェクトとして設定されている場合にサーバ10が行う
図14のS3の状態チェック処理の一例の流れを説明する。
【0174】
まず、管理部13が、第1のノンプレイヤキャラクタの対象オブジェクトとして設定されている第1のプレイヤキャラクタの行動制御を行うクライアント端末20と、サーバ10との通信が切断されていないか判断する(S60)。判断方法は特段制限されず、あらゆる技術を利用して実現できる。
【0175】
通信が切断されている場合(S60のYes)、管理部13は、第1のプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトから解除する(S61)。S61の解除により、第1のノンプレイヤキャラクタの対象オブジェクトは設定されていない状態となる。
【0176】
一方、通信が切断されていない場合(S60のNo)、処理が終了する。
【0177】
なお、
図14のS3の状態チェック処理では、
図17のフローチャートを用いて説明した上記処理に加えて、第2の実施形態で
図15のフローチャートを用いて説明した上記処理、及び、第3の実施形態で
図16のフローチャートを用いて説明した上記処理の少なくとも一方を行ってもよい。
【0178】
「クライアント端末20の構成」
クライアント端末20のハードウエア構成及び機能構成は、第1乃至第3の実施形態のいずれかと同様である。
【0179】
「作用効果」
以上説明した本実施形態のゲームシステム1によれば、第1乃至第3の実施形態と同様な作用効果を実現できる。
【0180】
また、本実施形態のゲームシステム1によれば、ノンプレイヤキャラクタの行動制御を行っているクライアント端末20とサーバ10との通信状態を監視し、通信の切断を検出すると、そのノンプレイヤキャラクタの行動制御を行う主体を速やかにサーバ10に移すことができる。このため、ノンプレイヤキャラクタの行動制御を行っているクライアント端末20とサーバ10との通信切断が発生しても、ゲームを円滑に進行することができる。
【0181】
<第5の実施形態>
「概要」
本実施形態のゲームシステム1は、第2乃至第4の実施形態同様、クライアント端末20がノンプレイヤキャラクタの行動制御を行っている間、サーバ10が所定の状態を監視し、その状態に応じて、そのノンプレイヤキャラクタの行動制御を行う主体を他の主体に変更する制御を行う点で、第1の実施形態と異なる。その他の構成は、第1の実施形態と同様である。以下、詳細に説明する。
【0182】
「サーバ10の構成」
サーバ10のハードウエア構成の一例は、第1乃至第4の実施形態のいずれかと同様である。
【0183】
サーバ10の機能ブロック図の一例は、第1乃至第4の実施形態同様、
図4で示される。図示するように、サーバ10は、第1のNPC行動制御部11と、通信部12と、管理部13と、通知部14と、対象オブジェクト設定部15と、中継部16とを有する。第1のNPC行動制御部11、通信部12、通知部14、対象オブジェクト設定部15及び中継部16の構成は、第1乃至第4の実施形態のいずれかと同様である。
【0184】
管理部13は、第1のノンプレイヤキャラクタの対象オブジェクトとして第1のプレイヤキャラクタを設定している間、第1のノンプレイヤキャラクタの状態を監視する。
【0185】
ここで、管理部13が監視する第1のノンプレイヤキャラクタの状態を説明する。ノンプレイヤキャラクタは、他のキャラクタから攻撃を受けた場合に所定の条件を満たすと、行動不能状態となる。行動不能状態になっている間、ノンプレイヤキャラクタは、移動、攻撃などの行動を実行できない。行動不能状態となったのち、復帰条件(例:所定時間経過、他のキャラクタから所定の行動を受ける等)を満たすと、ノンプレイヤキャラクタは再び、移動、攻撃などの行動を実行できる通常状態に戻る。
【0186】
管理部13は、第1のノンプレイヤキャラクタの対象オブジェクトとして第1のプレイヤキャラクタを設定している間、第1のノンプレイヤキャラクタが行動不能状態となっているか監視する。そして、行動不能状態になっていることを検出すると、管理部13は、第1のプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトから解除する。この解除により、第1のノンプレイヤキャラクタの対象オブジェクトは設定されていない状態となる。結果、第1のノンプレイヤキャラクタの行動制御をクライアント端末20に許可していない状態に変更される。
【0187】
当該解除に応じて、通知部14は、第1のノンプレイヤキャラクタの対象オブジェクトが設定されていないことを、複数のクライアント端末20に通知してもよい。当該解除の後、通常状態に戻ると、第1のNPC行動制御部11は第1のノンプレイヤキャラクタの行動制御を開始する。
【0188】
管理部13は、ここで説明した機能に加えて、第1乃至第4の実施形態で説明した機能の少なくとも一部、例えば全部を備えることができる。
【0189】
本実施形態のサーバ10は、第2乃至第4の実施形態同様、ノンプレイヤキャラクタごとに、
図14で示されるフローを繰り返し行う。S3の中継処理、S4の行動制御及びS5の行動制御の一例は、第1の実施形態と同様である。
【0190】
次に、
図18のフローチャートを用いて、第1のプレイヤキャラクタが第1のノンプレイヤキャラクタの対象オブジェクトとして設定されている場合にサーバ10が行う
図14のS3の状態チェック処理の一例の流れを説明する。
【0191】
まず、管理部13が、第1のノンプレイヤキャラクタが行動不能状態になっているか判断する(S70)。
【0192】
行動不能状態になっている場合(S70のYes)、管理部13は、第1のプレイヤキャラクタを第1のノンプレイヤキャラクタの対象オブジェクトから解除する(S71)。そして、通知部14はその旨をクライアント端末20に通知する(S71)。S71の解除により、第1のノンプレイヤキャラクタの対象オブジェクトは設定されていない状態となる。
【0193】
一方、行動不能状態になっていない場合(S70のNo)、処理が終了する。
【0194】
なお、
図14のS3の状態チェック処理では、
図18のフローチャートを用いて説明した上記処理に加えて、第2の実施形態で
図15のフローチャートを用いて説明した上記処理、第3の実施形態で
図16のフローチャートを用いて説明した上記処理及び第4の実施形態で
図17のフローチャートを用いて説明した上記処理の少なくとも1つを行ってもよい。
【0195】
「クライアント端末20の構成」
クライアント端末20のハードウエア構成及び機能構成は、第1乃至第4の実施形態のいずれかと同様である。
【0196】
「作用効果」
以上説明した本実施形態のゲームシステム1によれば、第1乃至第4の実施形態と同様な作用効果を実現できる。
【0197】
また、本実施形態のゲームシステム1によれば、クライアント端末20が行動制御を行っているノンプレイヤキャラクタの状態を監視し、行動不能状態になったことを検出すると、そのノンプレイヤキャラクタの行動制御を行う主体をサーバ10に移すことができる。行動不能状態にあるノンプレイヤキャラクタは、他のキャラクタとの間で互いに所定の行動を行うことはない。このようなノンプレイヤキャラクタの行動制御をクライアント端末20が行う必要性はない。本実施形態のゲームシステム1によれば、適切な主体がノンプレイヤキャラクタの行動制御を行うことができる。
【0198】
以下、参考形態の例を付記する。
1. サーバとクライアント端末とを有するゲームシステムであって、
前記サーバは、
ノンプレイヤオブジェクトの行動を制御し、前記ノンプレイヤオブジェクトの行動内容を示す第1のNPC行動情報を前記クライアント端末に送信する第1のNPC行動制御部と、
前記ノンプレイヤオブジェクトと複数のプレイヤオブジェクト各々とに対応付けて、第1のパラメータ値を管理する管理部と、
前記ノンプレイヤオブジェクトが所定の行動を行う対象である対象オブジェクトを、前記第1のパラメータ値に基づき設定する対象オブジェクト設定部と、
前記対象オブジェクトとして設定された前記プレイヤオブジェクトの行動を制御する前記クライアント端末に、前記ノンプレイヤオブジェクトの行動制御を許可する通知を行う通知部と、
を有し、
前記クライアント端末は、
前記通知に基づき、前記ノンプレイヤオブジェクトの行動を制御する第2のNPC行動制御部を有するゲームシステム。
2. 1に記載のゲームシステムにおいて、
前記第2のNPC行動制御部は、前記通知に基づき前記ノンプレイヤオブジェクトの行動を制御すると、前記ノンプレイヤオブジェクトの行動内容を示す第2のNPC行動情報を前記サーバに送信し、
前記サーバは、前記第2のNPC行動情報を受信し、前記第2のNPC行動情報を他の前記クライアント端末に送信する中継部をさらに有するゲームシステム。
3. 1又は2に記載のゲームシステムにおいて、
前記クライアント端末は、プレイヤの入力に基づき前記プレイヤオブジェクトの行動を制御し、前記プレイヤオブジェクトの行動内容を示すPC行動情報を前記サーバに送信するPC行動制御部を有し、
前記管理部は、前記PC行動情報で示される前記プレイヤオブジェクトの行動内容に基づき、前記第1のパラメータ値を変更し、
前記対象オブジェクト設定部は、前記第1のパラメータ値に基づき定義された設定条件を満たす前記プレイヤオブジェクトを、前記対象オブジェクトとして設定するゲームシステム。
4. 3に記載のゲームシステムにおいて、
前記対象オブジェクト設定部は、前記ノンプレイヤオブジェクトの位置を基準にした相対的な位置関係に基づき定義された前記設定条件を満たす前記プレイヤオブジェクトを、前記対象オブジェクトとして設定するゲームシステム。
5. 3又は4に記載のゲームシステムにおいて、
前記対象オブジェクト設定部は、
第1の前記プレイヤオブジェクトを前記対象オブジェクトに設定している時に、前記第1のプレイヤオブジェクトが前記設定条件を満たさなくなり、かつ、第2の前記プレイヤオブジェクトが前記設定条件を満たすことになったと判断すると、
前記第1のプレイヤオブジェクトを前記対象オブジェクトから解除し、
前記第2のプレイヤオブジェクトを前記対象オブジェクトに設定し、
前記通知部は、
前記第2のプレイヤオブジェクトの行動を制御する前記クライアント端末に、前記ノンプレイヤオブジェクトの行動制御を許可する通知を行うゲームシステム。
6. 1から5のいずれかに記載のゲームシステムにおいて、
前記管理部は、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可している状態か否かを示す状態情報を管理し、
前記第1のNPC行動制御部は、前記状態情報に基づき、前記ノンプレイヤオブジェクトの行動を制御し、
前記管理部は、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可している状態において、前記対象オブジェクトとして設定された前記プレイヤオブジェクトの第2のパラメータ値が数値条件を満たすと、前記状態情報を、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可していない状態に変更するゲームシステム。
7. 1から6のいずれかに記載のゲームシステムにおいて、
前記管理部は、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可している状態か否かを示す状態情報を管理し、
前記第1のNPC行動制御部は、前記状態情報に基づき、前記ノンプレイヤオブジェクトの行動を制御し、
前記管理部は、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可している状態において、前記ノンプレイヤオブジェクトの行動制御を許可されている前記クライアント端末と前記サーバとの間の通信が切断されると、前記状態情報を、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可していない状態に変更するゲームシステム。
8. サーバとクライアント端末とを有するゲームシステムの制御方法であって、
前記サーバは、
ノンプレイヤオブジェクトの行動を制御し、前記ノンプレイヤオブジェクトの行動内容を示す第1のNPC行動情報を前記クライアント端末に送信する第1のNPC行動制御工程と、
前記ノンプレイヤオブジェクトと複数のプレイヤオブジェクト各々とに対応付けて、第1のパラメータ値を管理するパラメータ値管理工程と、
前記ノンプレイヤオブジェクトが所定の行動を行う対象である対象オブジェクトを、前記第1のパラメータ値に基づき設定する対象オブジェクト設定工程と、
前記対象オブジェクトとして設定された前記プレイヤオブジェクトの行動を制御する前記クライアント端末に、前記ノンプレイヤオブジェクトの行動制御を許可する通知を行う通知工程と、
を実行し、
前記クライアント端末は、
前記通知に基づき、前記ノンプレイヤオブジェクトの行動を制御する第2のNPC行動制御工程を実行するゲームシステムの制御方法。
9. サーバとクライアント端末とを有するゲームシステムの前記サーバであって、
前記サーバは、
ノンプレイヤオブジェクトの行動を制御し、前記ノンプレイヤオブジェクトの行動内容を示す第1のNPC行動情報を前記クライアント端末に送信する第1のNPC行動制御部と、
前記ノンプレイヤオブジェクトと複数のプレイヤオブジェクト各々とに対応付けて、第1のパラメータ値を管理する管理部と、
前記ノンプレイヤオブジェクトが所定の行動を行う対象である対象オブジェクトを、前記第1のパラメータ値に基づき設定する対象オブジェクト設定部と、
前記対象オブジェクトとして設定された前記プレイヤオブジェクトの行動を制御する前記クライアント端末に、前記ノンプレイヤオブジェクトの行動制御を許可する通知を行う通知部と、
を有するサーバ。
10. 9に記載のサーバにおいて、
前記通知に基づき前記ノンプレイヤオブジェクトの行動を制御する前記サーバから、前記ノンプレイヤオブジェクトの行動内容を示す第2のNPC行動情報を受信し、前記第2のNPC行動情報を他の前記クライアント端末に送信する中継部をさらに有するサーバ。
11. 9又は10に記載のサーバにおいて、
前記管理部は、前記プレイヤオブジェクトの行動内容に基づき、前記第1のパラメータ値を変更し、
前記対象オブジェクト設定部は、前記第1のパラメータ値に基づき定義された設定条件を満たす前記プレイヤオブジェクトを、前記対象オブジェクトとして設定するサーバ。
12. 11に記載のサーバにおいて、
前記対象オブジェクト設定部は、前記ノンプレイヤオブジェクトの位置を基準にした相対的な位置関係に基づき定義された前記設定条件を満たす前記プレイヤオブジェクトを、前記対象オブジェクトとして設定するサーバ。
13. 11又は12に記載のサーバにおいて、
前記対象オブジェクト設定部は、
第1の前記プレイヤオブジェクトを前記対象オブジェクトに設定している時に、前記第1のプレイヤオブジェクトが前記設定条件を満たさなくなり、かつ、第2の前記プレイヤオブジェクトが前記設定条件を満たすことになったと判断すると、
前記第1のプレイヤオブジェクトを前記対象オブジェクトから解除し、
前記第2のプレイヤオブジェクトを前記対象オブジェクトに設定し、
前記通知部は、
前記第1のプレイヤオブジェクトの行動を制御する前記クライアント端末に、前記ノンプレイヤオブジェクトの行動制御を許可しない通知を行い、
前記第2のプレイヤオブジェクトの行動を制御する前記クライアント端末に、前記ノンプレイヤオブジェクトの行動制御を許可する通知を行うサーバ。
14. 9から13のいずれかに記載のサーバにおいて、
前記管理部は、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可している状態か否かを示す状態情報を管理し、
前記第1のNPC行動制御部は、前記状態情報に基づき、前記ノンプレイヤオブジェクトの行動を制御し、
前記管理部は、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可している状態において、前記対象オブジェクトとして設定された前記プレイヤオブジェクトの第2のパラメータ値が数値条件を満たすと、前記状態情報を、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可していない状態に変更するサーバ。
15. 9から14のいずれかに記載のサーバにおいて、
前記管理部は、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可している状態か否かを示す状態情報を管理し、
前記第1のNPC行動制御部は、前記状態情報に基づき、前記ノンプレイヤオブジェクトの行動を制御し、
前記管理部は、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可している状態において、前記ノンプレイヤオブジェクトの行動制御を許可されている前記クライアント端末と前記サーバとの間の通信が切断されると、前記状態情報を、前記ノンプレイヤオブジェクトの行動制御を前記クライアント端末に許可していない状態に変更するサーバ。
16. サーバとクライアント端末とを有するゲームシステムの前記サーバを、
ノンプレイヤオブジェクトの行動を制御し、前記ノンプレイヤオブジェクトの行動内容を示す第1のNPC行動情報を前記クライアント端末に送信する第1のNPC行動制御手段、
前記ノンプレイヤオブジェクトと複数のプレイヤオブジェクト各々とに対応付けて、第1のパラメータ値を管理するパラメータ値管理手段、
前記ノンプレイヤオブジェクトが所定の行動を行う対象である対象オブジェクトを、前記第1のパラメータ値に基づき設定する対象オブジェクト設定手段、
前記対象オブジェクトとして設定された前記プレイヤオブジェクトの行動を制御する前記クライアント端末に、前記ノンプレイヤオブジェクトの行動制御を許可する通知を行う通知手段、
として機能させるプログラム。
【解決手段】本発明は、サーバ10とクライアント端末20とを有するゲームシステム1を提供する。サーバ10は、ノンプレイヤオブジェクトの行動を制御し、ノンプレイヤオブジェクトの行動内容を示す第1のNPC行動情報をクライアント端末20に送信する手段と、ノンプレイヤオブジェクトと複数のプレイヤオブジェクト各々とに対応付けて第1のパラメータ値を管理する手段と、ノンプレイヤオブジェクトが所定の行動を行う対象である対象オブジェクトを、第1のパラメータ値に基づき設定する手段と、対象オブジェクトとして設定されたプレイヤオブジェクトの行動を制御するクライアント端末20に、ノンプレイヤオブジェクトの行動制御を許可する通知を行う手段と、を有する。クライアント端末20は、上記通知に基づき、ノンプレイヤオブジェクトの行動を制御する手段を有する。