(57)【特許請求の範囲】
【請求項１】
ゲームをプレイするユーザに対応するユーザロールを有するゲームのマップ上のノンプレーヤ制御キャラクタ（ＮＰＣ）ロールの短距離インタラクション状態をモニタするステップ、
前記ＮＰＣロールが、短距離インタラクションの目標として、あるユーザロールを選択すると、前記ＮＰＣロールが前記ユーザロールを目標として選択する前に、前記ユーザロールとの短距離インタラクションを行う全てのＮＰＣロールの総数Ｎを決定するステップ、
Ｃ＝Ｎ×ａ（ここで「ａ」は規定の基準角度である）を用いて回転角度を決定するステップ、及び
位置割当操作を実行するステップ、
を含み、前記位置割当操作は、
前記ユーザロールの現在座標点を円の中心として用いて、前記ＮＰＣロールの現在座標点を規定の方向に前記回転角度Ｃだけシミュレーティド回転させることによって、前記ＮＰＣロールの目的地座標点を計算するステップ、
前記マップ上の前記目的地座標点に静的障害物があるかどうかを決定するステップ、
静的障害物がある場合、前記位置割当操作を繰り返すために現在の回転角度Ｃに規定の角度を付加することによって新しい回転角度Ｃを計算するステップ、及び
静的障害物がない場合、前記ＮＰＣロールを前記目的地座標点へ移動させて、前記ユーザロールとの短距離インタラクションを実行させるステップ、
を含むことを特徴とする動的障害物のないネットワークゲームシステムの処理方法。
【請求項２】
前記ＮＰＣロールの目的地座標点を計算するステップは、
前記ユーザロールの現在座標点を原点として用いて、前記ユーザロールと前記ＮＰＣロールを結ぶ接続線とマップ基準線とのなす角度Ａを決定するステップ、
前記角度Ａを基準として用いて、前記ＮＰＣロールを規定の方向に前記回転角度Ｃだけシミュレーティド回転させることによって角度Ｂを計算するステップ、及び
前記ＮＰＣロールの前記目的地座標点のｘ及びｙ座標を計算するステップを含み、ここで、
ｘ座標＝ユーザロールのｘ座標＋（ｒ１＋ｒ２＋ｓ１）×ｃｏｓ（Ｂ）
ｙ座標＝ユーザロールのｙ座標＋（ｒ１＋ｒ２＋ｓ１）×ｓｉｎ（Ｂ）
であり、ここでｒ１はＮＰＣロールモデルの半径であり、ｒ２はユーザロールモデルの半径であり、ｓ１はＮＰＣロールの短距離インタラクションの実効距離で、ＮＰＣロールの短距離インタラクションの実効距離範囲から選択される値である、
請求項１記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項３】
前記ＮＰＣロールを前記目的地座標点に移動させるステップは、
前記ＮＰＣロールの目的地座標点と前記ユーザロールの現在座標点との間の距離が前記ＮＰＣロールの前記短距離インタラクションの最大実効距離より大きいかどうかを決定するステップ、
前記ＮＰＣロールの目的地座標点と前記ユーザロールの現在座標点との間の距離が前記ＮＰＣロールの前記短距離インタラクションの最大実効距離より大きくないと、前記ＮＰＣロールを前記目的地座標点に向けて移動させるステップ、及び
前記ＮＰＣロールの目的地座標点と前記ユーザロールの現在座標点との間の距離が前記ＮＰＣロールの前記短距離インタラクションの最大実効距離より大きいと、前記実効距離ｓ１を減少させ、前記目的地座標点のｘ及びｙ座標を再計算し、新しい目的地座標点を得て前記ＮＰＣロールを前記新しい目的座標点に移動させるステップ、
を含む、請求項２記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項４】
前記基準角度「ａ」及び追加の規定角度はπ/ｍの形であり、「ｍ」は正の整数であり、
前記総数Ｎの決定後、前記回転角度Ｃの決定前に、ＮｍｏｄＭを計算し（ここで、Ｍ＝２π/ａ）、そのモジュロ値をＮに割り当てるステップ、及び
Ｃ＝Ｎ×ａを用いて前記Ｃを計算するステップ、
を含む、請求項２記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項５】
前記目的地座標点に静的障害物がある場合には、前記新しい回転角度Ｃの計算前に、現在回転角度Ｃが約２πであるかどうかを決定するステップ、
現在回転角度Ｃが約２πであると、前記ＮＰＣロールの前記ユーザロールとの短距離インタラクションの関係をキャンセルするステップ、及び
現在回転角度Ｃが約２πでないと、前記位置割当操作を繰り返すために、前記現在回転角度Ｃに前記規定角度を付加することにより新しい回転角度Ｃを計算するステップ、を更に含む、請求項４記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項６】
前記ネットワークゲームシステムのサーバの現在負荷をモニタするステップ、及び
前記ＮＰＣロールに対するクロックチックインターバルを前記モニタした負荷状態に応じて動的に調整するステップ、を更に含み、前記現在負荷が大きくなるほど、それに応じて調整される前記クロックチックインターバルが長くなる、請求項１〜５のいずれかに記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項７】
前記ＮＰＣロールの視野範囲内のロールオブジェクトを視野探索するステップ、
探索の結果に従って視野リスト内に前記ロールオブジェクトの数を維持するステップ、及び
視野探索をトリガする前記ＮＰＣロールの移動距離及び視野探索範囲を、前記視野リスト内の前記ロールオブジェクトの数に従って動的に調整するステップ、を含み、前記視野リスト内の前記ロールオブジェクトの数が多いほど、それに応じて調整される前記ＮＰＣロールの移動距離及び視野探索範囲が小さくなる、請求項１〜５のいずれかに記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項８】
ゲームシーンのマップ上で第１レベルの視野範囲領域及び第２レベルの視野範囲領域を分割するステップであって、前記第１レベルの各視野範囲領域のサイズが前記第２レベルの各視野範囲領域のサイズの整数倍である、ステップ、
デフォルトとして、前記ＮＰＣロールが前記第１レベルの視野範囲領域を横切るとき、前記第１レベルの視野範囲領域内のロールオブジェクトに対して視野探索を実行するステップ、
視野探索後ごとに、前記探索結果に従って前記ロールオブジェクトの数を前記視野リスト内に維持するステップ、
前記視野リスト内の前記ロールオブジェクトの数が規定の閾値を超えるかどうかを決定するステップ、
前記視野リスト内の前記ロールオブジェクトの数が前記規定の閾値を超えない場合、前記ＮＰＣロールがその後前記第１レベルの範囲領域を横切るとき、前記第１レベルの視野範囲内のロールオブジェクトに対して視野探索を実行するステップ、及び
前記視野リスト内の前記ロールオブジェクトの数が前記規定の閾値を超える場合、前記ＮＰＣロールがその後前記第２レベルの視野領域を横切るとき、前記第２レベルの視野範囲領域内のロールオブジェクトに対して視野探索を実行するステップ、
を含む、請求項１〜５のいずれかに記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項９】
前記ロールオブジェクトに対して視野探索を実行し、前記ロールオブジェクトの数を前記視野リストに維持するステップは、
前記ＮＰＣロールの視野範囲内の全てのロールオブジェクトを探索するステップ、
探索されたロールオブジェクトの各々のタイプを決定するステップ、
前記探索された各ロールオブジェクトのタイプ及びプリセットされた視野包含関係情報に従って、ロールオブジェクトの各々を前記ＮＰＣロールの視野リストに含めるかどうかを決定するステップ、及び
原視野リストに存在するが新しい視野範囲内で探索され得ないロールオブジェクトを除去するステップ、
を更に含む、請求項７又は８記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項１０】
前記マップ上の任意の２つの座標点間の距離Ｓを、
前記２つの座標点を結ぶ線を直角三角形の斜辺として用い、且つ前記２つの座標点をこの直角三角形の頂点として用いてこの直角三角形を描き、
この直角三角形の２つの辺の長さを決定し、Ａは長辺の長さ、Ｂは短辺の長さとし、
Ｓ＝Ａ＋Ｂ/２を用いて前記距離Ｓを決定することによって、
計算するステップを更に含む、請求項１〜５のいずれかに記載の動的障害物のないネットワークゲームシステムの処理方法。
【請求項１１】
シミュレーティド回転角度決定モジュール、
位置割当モジュール、及び
状態モニタリングモジュールを備え、
前記状態モニタリングモジュールは、
ゲームシーンのマップ上のＮＰＣロールの短距離インタラクション状態をモニタし、
前記ＮＰＣロールが短距離インタラクションの目標としてユーザロールを選択した後に、前記シミュレーティド回転角度決定モジュール及び前記位置割当モジュールをトリガするように構成され、
前記シミュレーティド回転角度決定モジュールは、回転角度Ｃ＝Ｎ×ａを決定するように構成され、ここで、Ｎは、前記ＮＰＣロールが前記ユーザロールを目標として選択する前に前記ユーザロールとの短距離インタラクションを行う全てのＮＰＣロールの総数であり、「ａ」は規定の基準角度であり、
前記位置割当モジュールは、位置割当操作を実行するように構成され、
前記位置割当操作は、
前記ユーザロールの現在座標点が円の中心として用いられ、前記ＮＰＣロールの現在座標点を規定の方向に前記回転角度Ｃだけシミュレーティド回転させることによって、前記ＮＰＣロールの目的地座標点を計算し、
前記マップ上の前記目的地座標点に静的障害物があるかどうかを決定し、静的障害物がある場合、位置割当操作を繰り返すために現在の回転角度Ｃに規定の角度を付加することによって新しい回転角度Ｃを計算し、静的障害物がない場合は、前記ＮＰＣロールが前記ユーザロールとの短距離インタラクションを実行するために前記目的地座標点へ移動する、
ことを特徴とする動的障害物のないネットワークゲームシステム。
【請求項１２】
負荷モニタリング及び調整モジュールを更に含み、
前記負荷モニタリング及び調整モジュールは、
前記ネットワークゲームシステムのサーバの現在負荷をモニタし、
前記ＮＰＣロールに対するクロックチックインターバルを前記モニタした現在負荷に従って動的に調整するよう構成され、前記現在負荷が大きくなるほど、それに応じて調整される前記クロックチックインターバルが長くなる、
請求項１１記載の動的障害物のないネットワークゲームシステム。
【請求項１３】
視野探索モジュールを更に含み、
前記視野探索モジュールは、
前記ＮＰＣロールの視野範囲内のロールオブジェクトに対して視野探索を実行し、探索結果に従って前記ロールオブジェクトの数を視野リスト内に維持するよう構成され、更に
前記視野探索をトリガする前記ＮＰＣロールの移動距離及び視野探索範囲を、前記視野リスト内の前記ロールオブジェクトの数に従って動的に調整するように構成され、前記視野リスト内の前記ロールオブジェクトの数が多いほど、それに応じて調整される前記移動距離及び前記視野探索範囲が小さくなる、
請求項１１記載の動的障害物のないネットワークゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１２年８月１７日に出願された中国特許出願第２０１２１０２９３５５６．５号の優先権を主張するものであり、その内容は全て本出願に採用される。
【０００２】
本開示は、概してコンピュータデータ処理技術に関し、より詳しくは障害物のないネットワークゲームシステム及びその処理方法に関する。
【背景技術】
【０００３】
「オンラインゲーム」とも称されるネットワークゲームは持続可能なマルチプレイヤオンラインゲームであり、伝送媒体としてインターネット、処理端末としてゲートサーバ及びユーザデバイス（例えば、コンピュータ、スマートフォン、タブレットコンピュータなど）、及び情報交換ウィンドウとしてゲームクライアント端末又はウェブページを使用する。ネットワークゲームは、概してエンターテイメント、レクリエーション（ｒｅｃｒｅａｔｉｏｎ）、コミュニケーション及び達成型バーチャルアチーブメント（ａｃｃｏｍｐｌｉｓｈｉｎｇ  ｖｉｒｔｕａｌ  ａｃｈｉｅｖｅｍｅｎｔｓ）などの様々な目的を実現することを意図している。
【０００４】
既存のネットワークゲームシステムは、ロール（ｒｏｌｅ）の間に２つの主なインタラクション（ｉｎｔｅｒａｃｔｉｏｎ）モード、即ちユーザ間のインタラクティブ（ｉｎｔｅｒａｃｔｉｖｅ）競争モード、及びユーザと環境との間のインタラクティブ競争モードがある。
【０００５】
ユーザ間（ＰＶＰ又はプレーヤ対プレーヤ）のインタラクティブ競争モードは、ユーザ間の競争を意味する。ネットワークゲームシステムは、ＰＶＰモードの下でインタラクション命令及びデータを処理するために、ＰＶＰに関連する処理システムを含む必要がある。
【０００６】
ユーザと環境との間（ＰＶＥ又はプレーヤ対環境）のインタラクティブ競争モードは、ユーザとノンプレーヤ制御キャラクタ（ＮＰＣ：ｎｏｎ−ｃｏｎｔｒｏｌｌｅｄ  ｃｈａｒａｃｔｅｒ）との間に形成されるインタラクティブ競争を意味する。ＮＰＣは、ネットワークゲームシステム内のＮＰＣシステムで制御される。ＮＰＣシステムは人工知能（ＡＩ：ａｒｔｉｆｉｃｉａｌ  ｉｎｔｅｌｌｉｇｅｎｃｅ）モジュールを含む。ＡＩモジュールは、ゲーム内のＮＰＣの制御ロジックを指し、ゲーム内のＮＰＣに独立の人工知能機能を持たせることができる。ユーザロール及びＮＰＣロールは、対話、サービス取得、戦闘などのゲームインタラクションをすることができる。
【０００７】
既存のネットワークゲームシステム、特にキングダム戦争型（Ｋｉｎｇｄｏｍ  Ｗａｒｓ  ｔｙｐｅ）のネットワークゲームシステムは、ＰＶＰモードに基づいている。しかしながら、ロールの成長要求を満たすために、リッチＰＶＥモードもネットワークゲームに提供される必要がある。ＰＶＥモードの実行及び処理においても優れたユーザの体験が要求される。
【０００８】
ロールの間を妨害する手法に基づいて、既存のゲームシステムは、動的障害物のあるネットワークゲームシステムと動的障害物のないネットワークゲームシステムに分けられることができる。
【０００９】
動的障害物のあるネットワークゲームシステムにおいて、ロールモデルは、固定の地形（例えば、山、岩、建物など）のみならず、他のロールモデルによっても妨害され得る。ロールモデルはロールのシミュレーティド２Ｄ（２次元）又は３Ｄ（３次元）画像である。例えば、ロールモデルは、２Ｄネットワークゲームでは通常２Ｄ画像であり、３Ｄゲームでは通常３Ｄ画像である。
【００１０】
動的障害物のないネットワークゲームシステムにおいて、ロールモデルは、固定の地形により妨害され得るが、他の動的ロールモデルにより妨害されてはならない。
【００１１】
キングダム戦争ネットワークゲームでは、ゲームに参加する多数のロールがある。画像内のロールの位置の明確さを保証するとともに、優れた画像操作体験がユーザに与えられることを保証するためには、ネットワークゲームシステムで制御されるロールモデルが近距離インタラクション中に互いに視覚的にオーバラップすることを避けなければならない。例えば、短距離インタラクションは、ＮＰＣロールがユーザロールを攻撃する攻撃インタラクション、又は他の対話インタラクションとし得る。
【００１２】
動的障害物のあるネットワークゲームシステムにおいて、ゲームシステムは、ロールモデル間の動的障害物情報をリアルタイムで計算する特定の障害物アルゴリズムを有する。従って、ロールモデルが互いに視覚的にオーバラップ（ｏｖｅｒｌａｐ）する確率が低い。よって、操作体験が良い。しかしながら、動的障害物情報のリアルタイム計算を必要とするため、中央処理装置（ＣＰＵ）のオーバヘッド（ｏｖｅｒｈｅａｄ）及び記憶資源のオーバヘッドを含むサーバシステムのオーバヘッドが高くなりすぎ得る。
【００１３】
動的障害物のないネットワークゲームシステムにおいて、動的障害物情報をリアルタイムで計算する必要がないため、システムのコストを動的障害物のあるネットワークゲームシステムと比較して低くすることができる。従って、主としてＰＶＰモードに基づき、ＰＶＥモードを補完とする、既存の大規模キングダム戦争ゲームは、通常動的障害物なしである。
【００１４】
既存の動的障害物のないネットワークゲームシステムにおいて、ユーザロールとＮＰＣロールとの間の短距離インタラクション中のロールモデルのオーバラップを低減するという課題を解決し、ユーザに優れた視覚体験を提供するために、ＮＰＣシステムのＡＩモジュールがロール間の相対座標位置をリアルタイムで検出及び計算し、ＮＰＣロールの座標を動的に調整する必要がある。このようなリアルタイム検出及び計算の方法は以下の特定のステップを含む。
【００１５】
例えば、ＮＰＣロールは（ｘ１，ｙ１）の現在座標及びｒ１の半径を有し、ユーザロールは（ｘ２，ｙ２）の現在座標及びｒ２の半径を有する。ＮＰＣロールとユーザロールとの間で起こる（例えば、ＮＰＣロールがユーザロールを攻撃する）短距離インタラクションの半径はａｒである。ＮＰＣロールが攻撃目標（即ち、目標ロール）を有すると、ＮＰＣロール及びユーザロールの座標点間の距離ｓがＮＰＣロールの駆動クロックサイクル到来時毎に計算される。
【００１６】
ｓ＞ｒ１＋ｒ２＋ａｒである場合、ＮＰＣロールは目標ロールに向かって移動し続け、「移動」メッセージパケットを視野界内の全てのロールに送る。
【００１７】
ｓ＜ｒ１＋ｒ２＋ａｒである場合、ＮＰＣロールは直ちに移動を停止し、「移動停止」メッセージパケットを視界内の全てのロールに送る。
【００１８】
同じユーザロールを攻撃する別のＮＰＣは自身の位置を、他のＮＰＣロールからの移動又は停止に関するメッセージパケットに従って、他のＮＰＣロールモデルとオーバラップしないように動的に計算し調整することができる。
【００１９】
従って、既存の動的障害物のないネットワークゲームシステムにおいて、ユーザロールとＮＰＣロールとの間の短距離インタラクション中におけるロールモデルのオーバラップの確率を低減するために、各ＮＰＣロールは、駆動クロックサイクルの到来時毎にリアルタイムに複雑な動的計算を実行する必要がある。即ち、各ＮＰＣロールは、自身と攻撃目標（即ち目標ロール）との間の距離ｓを計算するのみならず、距離ｓに従って関連メッセージパケットを送るとともに、他のＮＰＣロールからのメッセージパケットを受信し、自身の座標位置を他のＮＰＣロールの移動状況に基づいて再計算する必要もある。従って、計算量が膨大になり、多量のシステムオーバヘッド、例えばＣＰＵオーバヘッド、ストレージオーバヘッド、帯域幅オーバヘッドなどを必要とし得る。特に大きなネットワークゲームシステムにおいて、サーバ内のＮＰＣロールの数は、通常数万以上になり得る。その結果、ＮＰＣロールを駆動するＮＰＣシステムのオーバヘッドは、極めて大きくなり得る。
【発明の概要】
【課題を解決するための手段】
【００２０】
本開示の一つの態様は、動的障害物のないネットワークゲームシステムのための処理方法を含む。本方法は、ゲームプレイユーザに対応するユーザロールを有するゲームのマップ上の、ノンプレーヤ制御キャラクタ（ＮＰＣ）ロールの短距離インタラクション状態に対するモニタリングを含む。前記ＮＰＣロールが、あるユーザロールを短距離インタラクションの目標として選択すると、本方法は、前記ＮＰＣロールが前記ユーザロールを目標として選択する前に、ユーザロールとの短距離インタラクションを行う全てのＮＰＣロールの総数Ｎを決定する。本方法は、Ｃ＝Ｎ×ａ（ここで「ａ」は規定の基準角度である）を用いて回転角度Ｃを決定するのも含む。更に、本方法は、位置割当操作を実行する。前記位置割当操作は、前記ユーザロールの現在座標点が円の中心として用いられ、前記ＮＰＣロールの現在座標点を規定の方向に回転角度Ｃだけシミュレーティド回転させることによって、前記ＮＰＣロールの目的地座標点を計算する。位置割当操作は、更に、マップ上の目的地座標点に静的障害物があるかどうかを決定する。静的障害物がある場合には、現在の回転角度Ｃに規定の角度を付加することによって新しい回転角度Ｃを計算し、位置割当操作を繰り返すことができる。静的障害物がない場合には、前記ＮＰＣロールは目的地座標点へ移動して前記ユーザロールとの短距離インタラクションを実行することができる。
【００２１】
本発明の別の態様は、動的障害物のないネットワークゲームシステムを含む。動的障害物のない本ネットワークゲームシステムは、状態モニタリングモジュール、シミュレーティド回転角度決定モジュール、及び位置割当モジュールを含む。状態モニタリングモジュールは、ゲームシーンのマップ上のＮＰＣロールの短距離インタラクション状態をモニタするように構成される。状態モニタリングモジュールはまた、前記ＮＰＣロールがあるユーザロールを短距離インタラクションの目標として選択した後に、シミュレーティド回転角度決定モジュール及び位置割当モジュールをトリガするように構成される。シミュレーティド回転角度決定モジュールは、回転角度Ｃ＝Ｎ×ａを決定するように構成され、ここで、Ｎは、前記ＮＰＣロールが前記ユーザロールを目標として選択する前に前記ユーザロールとの短距離インタラクションを行う全てのＮＰＣロールの総数であり、「ａ」は規定の基準角度である。前記位置割当モジュールは、位置割当操作を実行するように構成される。前記位置割当操作は、前記ユーザロールの現在座標点を円の中心として用いて、前記ＮＰＣロールの現在座標点を規定の方向に回転角度Ｃだけシミュレーティド回転させることによって、前記ＮＰＣロールの目的地座標点を計算する。更に、前記位置割当操作は、マップ上の目的地座標点に静的障害物があるかどうかを決定する。静的障害物がある場合には、現在の回転角度Ｃに規定の角度を付加することによって新しい回転角度Ｃを計算して位置割当操作を繰り返すことができる。静的障害物がない場合に、前記ＮＰＣロールは、目的地座標点へ移動して前記ユーザロールとの短距離インタラクションを実行することができる。
【００２２】
本開示の詳細な説明、請求の範囲及び図面に照らせば本発明の他の態様も当業者なら理解できるであろう。
【００２３】
以下の図は様々な開示された実施形態に従って本発明を説明するための単なる例示であり、本発明の範囲の限定を意図するものではない。
【図面の簡単な説明】
【００２４】
【図１Ａ】様々な開示された実施形態による例示的な動的障害物のないネットワークゲームシステムの処理方法を示す図である。
【図１Ｂ】様々な開示された実施形態による例示的な動的障害物のないネットワークゲームシステムの処理方法における目的地座標点の計算を示す図である。
【図２】様々な開示された実施形態による例示的な動的障害物のないネットワークゲームシステムを示す構成図である。
【図３】様々な開示された実施形態における、ＮＰＣロールとユーザロールとの間の短距離インタラクション中の、ＮＰＣロールに対する位置割当を示す概略図である。
【図４】様々な開示された実施形態による例示的な処理方法における、ユーザロールとの短距離インタラクションを行う全ＮＰＣロールに対する位置割当を示す概略図である。
【図５Ａ】様々な開示された実施形態における視野範囲領域を分類して分割する方法を示す図である。
【図５Ｂ】様々な開示された実施形態による例示的な動的障害物のないネットワークゲームシステムの処理方法における視野探索及びその調整を示す図である。
【図５Ｃ】様々な開示された実施形態による例示的な動的障害物のないネットワークゲームシステムの処理方法における視野探索及び視野リスト内のオブジェクト数の維持を示す図である。
【図６】様々な実施形態による別の例示的な動的障害物のないネットワークゲームシステムの構成を示す図である。
【図７】特定の開示された実施形態を含む例示的な環境を示す図である。
【図８】本開示の実施形態と整合する例示的なサーバを示す図である。
【発明を実施するための形態】
【００２５】
添付図面に示される本発明の例示的な実施形態について詳細に説明する。
【００２６】
図７は、様々な開示された実施形態による例示的な動的障害物のないネットワークゲームシステム及び例示的な処理方法を組み入れる例示的な環境７００を示す。図７に示すように、環境７００はサーバ７０４、端末７０６及び通信ネットワーク７０２を含むことができる。サーバ７０４及び端末７０６は、ネットワーク経由のデータ伝送、ネットワークゲーム中のウェブページ経由の情報交換などの情報交換のために通信ネットワーク７０２を介して結合することができる。環境７００には１つの端末７０６及び１つのサーバ７０４しか示されていないが、任意の数の端末７０６又はサーバ７０４を含むことができ、他の装置を含むこともできる。
【００２７】
通信ネットワーク７０２は、サーバ７０４及び端末７０６へのネットワーク接続、又は多数のサーバ７０４又は端末７０６間のネットワーク接続を提供する任意の適切なタイプの通信ネットワークを含むことができる。例えば、通信ネットワーク７０２は、インターネット又は他のタイプのコンピュータネットワーク又は電気通信ネットワークを含むことができ、有線又は無線のいずれでもよい。
【００２８】
本明細書で使用する「端末」とは、特定のコンピューティング能力（例えば、ゲームプログラム実行能力）を有する任意の適切なユーザ端末又はユーザ装置を意味し、例えばパーソナルコンピュータ（ＰＣ）、ワークステーションコンピュータ、携帯コンピューティング装置（タブレット）、携帯端末（携帯電話又はスマートフォン）、又は任意の他のユーザ側コンピューティング装置を意味する。
【００２９】
本明細書で使用する「サーバ」とは、例えばネットワークゲームシステム内のネットワークゲームサーバとして働く、特定のサーバ機能を提供するように構成された１以上のサーバコンピュータを意味する。サーバはコンピュータプログラムを並列に実行する１以上のプロセッサも含み得る。
【００３０】
サーバ７０４及び／又は端末７０６は、任意の適切なコンピューティングプラットフォーム上に実装することができる。図８は、サーバ７０４及び／又は端末７０６を実装し得る例示的なコンピューティングシステム８００のブロック図を示す。図８に示すように、例示的なコンピュータシステム８００は、プロセッサ８０２、記憶媒体８０４、モニタ８０６、通信モジュール８０８、データベース８１０、周辺装置８１２、及びこれらの装置を互いに結合する１以上のバス８１４を含むことができる。また、特定の装置が無視され、他の装置が含まれることができる。
【００３１】
プロセッサ８０２は、任意の適切なプロセッサを含むことができる。更に、プロセッサ８０２はマルチスレッド又は並列処理用に複数のコアを含むことができる。記憶媒体８０４は、ＲＯＭ、ＲＡＭ及びフラッシュメモリモジュールなどのメモリモジュール、及びＣＤ−ＲＯＭ、Ｕ−ディスク、リムーバルハードディスクなどのマスストレージを含むことができる。前記記憶媒体８０４は、プロセッサ８０２により実行されると、様々なプロセスを実施させるコンピュータプログラムを記憶することができる。
【００３２】
モニタ８０６は、ウェブページコンテンツ、ネットワークゲームシーン等の情報を表示する表示装置を含むことができる。通信モジュール８０８は、通信ネットワーク７０２を経由する接続を確立するネットワーク装置を含むことができる。データベース８１０は、特定のデータを格納し、データベース検索のような特定の操作を格納データに対して実行する１以上のデータベースを含むことができる。
【００３３】
更に、周辺装置８１２は、キーボード及びマウスなどのＩ／Ｏ装置を含むことができる。端末７０６の周辺装置８１２は、ネットワークゲームにプレーヤとして参加するなどの特定の操作時にユーザが情報を入力するために使用することができる。
【００３４】
操作中、端末７０６はサーバ７０４に、インターネット経由のデータ伝送又は情報交換のような特定のアクション又は他のデータベース操作を実行させることができる。サーバ７０４は、このようなアクション及び操作のための構造及び機能を提供するように設定されることができる。もっと具体的に言えば、サーバ７０４及び端末７０６は（例えばユーザロールとＮＰＣロールとの間）ゲームインタラクションを達成するためにネットワークゲームシステムを構成することができる。
【００３５】
様々な実施形態において、本開示の方法及びシステムに係わるネットワークゲームシステムのユーザ装置等の端末は端末７０６を含むことができ、本開示の方法及びシステムに係わるサーバはサーバ７０４を含むことができる。
【００３６】
図１Ａは、様々な開示された実施形態による動的障害物のないネットワークゲームシステムの例示的な処理方法を示す。この例示的な方法は、ネットワークゲームシステムによって、即ちサーバ、端末、及び／又はサーバと端末によって実行することができる。一実施形態において、この例示的な方法は、端末のユーザとインタラクトするために、ネットワークゲームシステムのサーバにより実行され得る。
【００３７】
図１Ａにつき説明すると、ステップ１０１において、ＮＰＣロールの短距離インタラクション状態がゲームシーンのマップ上でモニタされる。ＮＰＣロールが、あるユーザロールを短距離インタラクションの目標として選択した後に、次のステップが実行し得る。ユーザロールは、ユーザ制御ロール、即ちゲームオペレータのロールとし得る。短距離インタラクションは、ゲームロール（例えば、ユーザロール及び／又はＮＰＣロール）間のコマンドの短距離インタラクションを意味し得る。例えば、ユーザロールを攻撃するＮＰＣロールは、短距離インタラクションの一種とし得る。短距離インタラクションは、ロールの攻撃に限定されず、ロール間の対話又は他のアクションのインタラクションのような他の短距離インタラクションでもある。
【００３８】
ステップ１０２において、ＮＰＣロールがあるユーザロールを短距離インタラクションの目標として選択する前に、このユーザロールとの短距離インタラクションを行う全てのロールの総数Ｎが決定される。シミュレーティド回転角度Ｃ＝Ｎ×ａが計算され（ラジアン単位）、ここで「ａ」は規定の基準角度（ラジアン単位）である。本開示では、特に定めのない限り、「シミュレーティド回転角度Ｃ」は「回転角度Ｃ」とも言える。
【００３９】
一実施形態において、上述のように（例えば、ステップ１０２において）総数Ｎを決定するために使用される「全てのロール」はＮＰＣロールを含むことができる。別の実施形態において、総数Ｎを決定するために使用される「全てのロール」は、ネットワークゲーム内のＮＰＣロール及び／又は他のロールを含むことができ、それらはネットワークゲームの計画により決められ、本開示により限定されるのではない。
【００４０】
ステッ１０３において、位置割当操作が実行される。もっと具体的に言うと、シミュレーティド回転処理において、前記ユーザロールの現在座標点が円の中心として用いられ、ＮＰＣロールの現在座標点を規定の方向に回転角度Ｃだけシミュレーティド回転させることによって、ＮＰＣロールの目的地座標点が計算される。回転後に、マップ上の目的地座標点に静的障害物があるかどうかが決定されることができる。静的障害物がある場合には、現在の回転角度Ｃに規定の角度を付加することによって新しい回転角度Ｃを計算し、位置割当操作を繰り返すことができる。静的障害物がない場合には、ＮＰＣロールは、目的地座標点へ移動し、目標ユーザロール（即ち、短距離インタラクションの目標として選択されたユーザロール）と短距離インタラクションを実行するよう命令され得る。規定の方向は、反時計方向又は時計方向とし得る。
【００４１】
本開示において、特に規定していない限り、ＮＰＣロールの目的地座標点の計算中及びマップ上の目的地座標点に静的障害物があるかどうかの決定前のＮＰＣロールの回転角度Ｃの回転は、シミュレーティド回転処理とし得る。
【００４２】
図２は、様々な開示された実施形態における動的障害物のない例示的なネットワークゲームシステムの構成図を示す。図２に示すように、例示的な動的障害物のないネットワークゲームシステム２００は、状態モニタリングモジュール２０１、シミュレーティド回転角度決定モジュール２０２及び／又は位置割当モジュール２０３を含む。また、他のコンポーネントを含むこともできる。
【００４３】
状態モニタリングモジュール２０１は、ゲームシーンのマップ上のＮＰＣロールの短距離インタラクション状態をモニタするように構成される。ＮＰＣロールがあるユーザロールを短距離インタラクションとして選択すると、その後シミュレーティド回転角度決定モジュール２０２及び位置割当モジュール２０３がトリガされ得る。
【００４４】
シミュレーティド回転角度決定モジュール２０２は、シミュレーティド回転角度Ｃ＝Ｎ×ａを決定するように構成され、ここで、Ｎは、ＮＰＣロールが前記ユーザロールを短距離インタラクションの目標として選択する前に前記ユーザロールとの短距離インタラクションを行う全てのロールの総数である。ここで、「ａ」は規定の基準角度である。
【００４５】
位置割当モジュール２０３は位置割当操作を実行する。もっと具体的に言うと、前記ユーザロールの現在座標点を円の中心として用いて、ＮＰＣロールの現在座標点を規定の方向に回転角度Ｃだけ回転させることによって、ＮＰＣロールの目的地座標点が計算される。回転後に、マップ上の目的地座標点に静的障害物があるかどうかを決定することができる。
【００４６】
静的障害物がある場合には、現在の回転角度Ｃに規定の角度を付加することによって新しい回転角度Ｃを計算し、位置割当操作を繰り返すことができる。静的障害物がない場合には、ＮＰＣロールは、目的地座標点へ移動し、目標ユーザロール（即ち、短距離インタラクションの目標として選択されたユーザロール）と短距離インタラクションを実行するよう命令され得る。
【００４７】
様々な開示された実施形態による処理方法は、ネットワークゲームシステム内の主としてＮＰＣロールを相手にしているため、本開示に示されるモジュールは通常、ネットワークゲームシステム内のＮＰＣシステムのＡＩモジュールの一部としてＮＰＣシステムに設定されることができる。様々な開示された実施形態による動的障害物のないネットワークゲームシステムの他の処理モジュールについては、動的障害物のある既存のネットワークゲームシステムの対応モジュールを使用することができる。
【００４８】
様々な開示された実施形態によれば、基準角度「ａ」はπ/ｍ（ここでｍは正の整数）の形にすることができる。付加される規定の角度もπ/ｍの形にすることができ、付加される規定の角度は基準角度と同じにしても良く、相違させても良い。一実施形態において、例えば基準角度“ａ”及び付加される規定の角度は、約π/４とされることができる。
【００４９】
図３は、様々な開示された実施形態におけるＮＰＣロールとユーザロールとの間の短距離インタラクション中のＮＰＣロールに対する位置割当の概要を示す。図３を参照すると、破線の円３０１及び破線の円３０２がユーザロールの座標点を中心として同心的に配置されている。破線の円３０１の半径はユーザロールモデルの半径ｒ１とＮＰＣロールモデルの半径ｒ２の和である。
【００５０】
破線の円３０２の半径は所定のインタラクションレンジであり、破線の円３０２と破線の円３０１との半径差が、ＮＰＣロールとユーザロールとの間の短距離インタラクションの実効インタラクションレンジである。例えば、攻撃インタラクションの場合、破線の円３０２と破線の円３０１との半径差が、ＮＰＣロールの実効攻撃レンジである。ＮＰＣロールの短距離インタラクション状態（例えば、ステップ１０１で記載されているように）をモニタすることができる。
【００５１】
ＮＰＣロールがユーザロール３１０を短距離インタラクションとして選択すると、例えば図３に示すようにＮＰＣロール３１１がユーザロール３１０を短距離インストラクションとして選択すると、ステップ１０２が実行され得る。
【００５２】
ステップ１０２において、ＮＰＣロール３１１がユーザロール３１０との短距離インタラクションを行う最初のＮＰＣロールである場合、例えば、ＮＰＣロール３１１がユーザロール３１０を攻撃する最初のＮＰＣロールである場合、総数Ｎがゼロであり、即ちＮ＝０である。従って、回転角Ｃ＝Ｎ×ａ＝０である。
【００５３】
よって、ステップ１０３において、ユーザロール３１０を攻撃する最初のＮＰＣロール３１１は、シミュレーティド回転を実行しない。代わりに、ＮＰＣロール３１１の現在座標点は、直接的にＮＰＣロール３１１の目的地座標点とされることができる。次に、マップ上の目的地座標点に静的障害物があるかどうかを決定することができる。静的障害物は、ロールモデルを妨害し得る、ゲームシステムのマップ上の固定の地形とすることができる。例えば、目的地座標点に静的障害物のアイテム（例えば山、岩、建物など）がある場合には、目的地座標点に静的障害物があることになる。目的地座標点に静的障害物のアイテムがない場合には、目的地座標点に静的障害物がないことになる。
【００５４】
目的地座標点に静的障害物がない場合、ＮＰＣロール３１１は、目標ユーザロール３１０（即ち、短距離インタラクションの目標として選択されたユーザロール３１０）との短距離インタラクションのために、目的地座標点に移動するよう命令され得る。ＮＰＣロール３１１は、ユーザロール３１０を攻撃する最初のＮＰＣであるため、ＮＰＣロール３１１の現在座標点が既にＮＰＣロール３１１の目的地座標点である。従って、ＮＰＣロール３１１は移動する必要はない。よって、ＮＰＣロール３１１は現在座標点でユーザロール３１０を攻撃することができる。
【００５５】
目的地座標点に静的障害物がある場合、現在の回転角度Ｃ（即ち、現在はＣ＝０）に規定の角度を付加して新しい回転角度Ｃを計算することができる。例えば、規定角度は、約π/４とされることができる。従って、新しい回転角度Ｃ＝π/４となり、その後ステップ１０３を繰り返すことができる。
【００５６】
ステップ１０３において、ユーザロールの現在座標点を円の中心として用いて、ＮＰＣロールの現在座標点を規定方向へ回転角度Ｃだけ回転させることによってＮＰＣロールの目的地座標点が計算すされることは、以下のステップ１３１〜１３３を含む。
【００５７】
図１Ｂ及び図３に関して説明すると、ステップ１３１において、ユーザロール３１０の現在座標点を原点として用いることにより、角度Ａが決定される（ラジアン単位）。角度Ａは、接続線（ユーザロール３１０とＮＰＣロール３１１を結ぶ線）とマップ基準線（通常、水平線）とのなす角度である。
【００５８】
ステップ１３２において、角度Ａを基準として用いて、ＮＰＣロール３１１を規定の方向（例えば、反時計方向又は時計方向）に角度Ｃだけシミュレーティド回転させることによって、角度Ｂが計算される（ラジアン単位）。
【００５９】
ステップ１３３において、ＮＰＣロール３１１の目的地座標点のｘ及びｙ座標が計算され、ここで、
ｘ座標＝ユーザロールのｘ座標＋（ＮＰＣロールモデルの半径ｒ１＋ユーザロールモデルの半径ｒ２＋ＮＰＣロールの短距離インタラクションの実効距離ｓ１）×ｃｏｓ（Ｂ）
ｙ座標＝ユーザロールのｙ座標＋（ＮＰＣロールモデルの半径ｒ１＋ユーザロールモデルの半径ｒ２＋ＮＰＣロールの短距離インタラクションの実効距離ｓ１）×ｓｉｎ（Ｂ）
である。
【００６０】
ＮＰＣロールの短距離インタラクションの実効距離ｓ１は、ＮＰＣロールの短距離インタラクションの実効距離レンジから選択される値とされることができる。一実施形態において、攻撃インタラクションに対しては、実効距離ｓ１が最適に選択されることができる。例えば、特定のＮＰＣロールの最大実効攻撃距離が約２００ｃｍ以下である場合、ｓ１は最大実効攻撃距離の約７０％〜９０％の範囲から無作為に選択される値とされることができる。特定のＮＰＣロールの最大実効攻撃距離が約２００ｃｍより大きい場合、ｓ１は最大実効攻撃距離の約３５％〜４５％の範囲から無作為に選択される値とされることができる。
【００６１】
目的地座標点のｘ座標及びｙ座標が計算された後、ＮＰＣロール３１１は目的地座標点に移動するように命令され得る。ＮＰＣロール３１１の移動プロセスで、ユーザロール３１０も移動し得る。それゆえ、目的地座標点へのＮＰＣロール３１１の移動は、更に目的地座標点（即ち、ＮＰＣロール３１１の）とユーザロール３１０の現在座標点との間の距離がＮＰＣロール３１１の短距離インタラクションの最大実効距離（例えば、ＮＰＣロール３１１の最大実効攻撃距離）より大きいかどうかを決定するステップを含むことができる。
【００６２】
ＮＰＣロール３１１の目的地座標点とユーザロール３１０の現在座標点との間の距離がＮＰＣロール３１１の短距離インタラクションの最大実効距離より大きくない場合、ＮＰＣロール３１１は目的地座標点への移動を続けることができる。ＮＰＣロール３１１の目的地座標点とユーザロール３１０の現在座標点との間の距離がＮＰＣロール３１１の短距離インタラクションの最大実効距離より大きい場合、ＮＰＣロール３１１の短距離インタラクションの実効距離ｓ１を減少させることができる。
【００６３】
例えば、ＮＰＣロール３１１の短距離インタラクションの最大実効距離が約２００ｃｍより小さい場合、ｓ１は最大実効攻撃距離の１％〜８％の範囲から無作為に選択される値にされることができる。ＮＰＣロール３１１の短距離インタラクションの最大実効距離が約２００ｃｍより大きい場合、ｓ１は最大実効攻撃距離の２０％〜３５％の範囲から無作為に選択される値にすることができる。ｓ１の減少後に、新しい目的地座標点を得るために目的地座標点のｘ座標及びｙ座標点が再計算され、ＮＰＣロール３１１に新しい目的地座標点に移動するよう命令することができる。
【００６４】
一実施形態において、ステップ１０３における目的地座標点に静的障害物がある場合、更に現在回転角度Ｃが約２πであるかどうか（即ち、現在のシミュレーティド回転がほぼ一周であるかどうか）を決定することができる。現在回転角度Ｃが約２πである場合、ＮＰＣロール３１１のユーザロール３１０との短距離インタラクションの関係をキャンセルすることができる（例えば、ＮＰＣロール３１１のユーザロール３１０との攻撃インタラクションの関係をキャンセルすることができる）。現在回転角度Ｃが約２πでない場合、回転角度Ｃに規定の角度を付加して新しい回転角度Ｃに到達させ、ステップ１０３を繰り返すことができる。
【００６５】
一例において、ＮＰＣロール３１１は、目的地座標点への移動に成功し、ユーザロール３１０との短距離インタラクションを実行する（例えば、ＮＰＣロール３１１はユーザロール３１０を攻撃し始める）。新しいＮＰＣロールがユーザロール３１０を短距離インタラクションの目標として選択する（例えば、ユーザロール３１０を攻撃の目標として選択する）場合、様々な開示された実施形態で示されたステップ１０２〜１０３が新しいＮＰＣロールに対して実行される。しかしながら、新しいＮＰＣロールに対して、総数Ｎ（即ち、新しいＮＰＣロールがこのユーザロールを短距離インタラクションの目標として選択する前にこのユーザロールとの短距離インタラクションを行った全てのロールの数）はもはや０になり得ず、同様に初期回転角度Ｃももはや０になり得ない。
【００６６】
図４は、様々な開示された実施形態による例示的な処理方法におけるユーザロールとの短距離インタラクションを行う全てのＮＰＣロールに対する位置割当の概略図を示す。図４を参照すると、ユーザロール３１０を短距離インタラクションの目標として有する全てのＮＰＣロール、例えばＮＰＣロール３１１〜３１６の各々に対して、ステップ１０２〜１０３が実行され得る。従って、結局のところ、ユーザロール３１０を短距離インタラクションの目標として有する全てのＮＰＣロールは、ＮＰＣロールとユーザロール３１０との短距離インタラクション（例えば、ユーザロール３１０を攻撃するインタラクション）に対する実効インタラクションレンジ内、即ち破線円３０２と破線円３０１との間に位置し得る。したがって、ＮＰＣロールモデルとユーザロールモデルとが互いにオーバラップしない。加えて、ＮＰＣロールモデルが最終的にユーザロール３１０の周りにほぼ均等に分布されるため、ＮＰＣロール同士がオーバラップする確率も大幅に低くなる。
【００６７】
したがって、本明細書に開示されるように、所望のＰＶＥ視覚体験をユーザに提供することができる。ＮＰＣロールモデルが比較的大きい（例えば、図４のＮＰＣロール３１６）場合、ＮＰＣロールモデル同士が部分的にオーバラップし得るが、全体的なＰＶＥ視覚体験は影響されない。一般に、ＮＰＣロールモデル及びユーザロールモデルは、ネットワークゲーム内のＮＰＣロール及びユーザロールそれぞれに対応する２Ｄ又は３Ｄ画像に関連される。通常、ロールモデルは、２Ｄネットワークゲーム内の２Ｄ画像及び３Ｄネットワークゲーム内の３Ｄ画像である。様々な開示された実施形態によれば、本開示は２Ｄネットワークゲームにも、３Ｄネットワークゲームにも適用されることができる。
【００６８】
したがって、様々な開示された実施形態による処理方法は単純にでき、既存の技術のようにＮＰＣロール間でリアルタイムの複雑で動的なインタラクティブ計算を必要としない。よって、ネットワークゲームシステムのオーバヘッドを低減することができる。
【００６９】
ユーザロール及びＮＰＣロールの座標点間の接続線は、マップ基準線に対して大きな角度Ａにされることができる。例えば、角度Ａは、約２π近くにされることができる。ＮＰＣロールが回転角度Ｃだけ反時計方向に更に回転される場合、接続線はマップ基準線に対して約２πより大きな角度になり得る。それゆえ、一実施形態において、基準角度ａ及び付加される規定の角度の両方をπ/ｍにする場合、ステップ１０２は更に、以下のステップを含むことができる。
【００７０】
つまり、総数Ｎの決定後で、Ｃ＝Ｎ×ａを用いる回転角度Ｃの決定前に、ＮｍｏｄＭを計算し（ここで、Ｍ＝２π/ａ）、そのモジュロ値をＮに割り当てるステップと、Ｃ＝Ｎ×ａを用いてＣを計算するステップと、を含むことができる。
【００７１】
本開示において、ＮＰＣロールは、ネットワークゲームシステム内のＮＰＣシステムにより駆動されることができる。一実施形態において、ネットワークゲームシステムのオーバヘッド、特にＮＰＣシステムのオーバヘッドを更に低減するために開示された方法は更に、以下の方法を含む。
【００７２】
つまり、ネットワークゲームシステムサーバの現在の負荷状態をモニタし、モニタした現在の負荷状態に従ってＮＰＣロールに対するＮＰＣシステムのクロックチックインターバルを動的に調整するステップを含むことができる。ネットワークゲームシステムサーバの現在の負荷が大きくなるほど、それに応じて調整されるＮＰＣロールのクロックチックインターバルが長くなる。
【００７３】
一つの所定の実施形態において、チック単位は約２００ｍｓの時間インターバルとされることができる。ＮＰＣロールに対するクロックチックインターバルは、チック単位の整数倍にされることができ、現在の負荷状態に応じて調整されることができる。
【００７４】
例えば、表１は種々の長さのクロックチックインターバルの利点及び欠点を示す。
【００７５】
【表１】
0005767760.tif 000002
【００７６】
表１において、ＮＰＣの状態モード移行は、ネットワークゲームの技術的計画に基づいて決定されることができる。例えば、ネットワークゲームシステムにおいて、ＮＰＣの状態モードは、例えば「パトロールモード」、「攻撃モード」、「追跡モード」、「帰還モード」、「ストレートパトロールモード」などを含む。ＮＰＣロールは、ＡＩロジックに基づいてモードを変換することができ、よってゲーム内の鮮明なロールモデル画像及び状態を表示することができる。
【００７７】
上述した様々な実施形態によれば、ネットワークゲームシステムサーバのモニタした現在の負荷状態に応じてクロックチックインターバルを動的に調整することによって、ＮＰＣシステムのフレキシビリティを向上させることができる。このようにＮＰＣシステムをＣＰＵオーバヘッドとＰＶＥ体験との間で動的にバランスさせ、ＮＰＣシステムを間接的に安定化させ、ネットワークゲームシステム全体の動作の安定性を確保することができる。
【００７８】
ネットワークゲームシステムのオーバヘッドを更に低減させるために、一実施形態において、本方法は、更に、以下の方法を含む。
【００７９】
つまり、ＮＰＣロールの視野範囲内のロールオブジェクトを視野探索し、探索の結果に従って視野リスト内にロールオブジェクトの数を維持するステップを含む。
【００８０】
また、視野探索をトリガするＮＰＣロールの移動距離及び視野探索範囲を、視野リスト内のロールオブジェクトの数に従って動的に調整するステップを含む。ＮＰＣの視野リスト内のロールオブジェクトの数が多いほど、それに応じて調整される視野探索をトリガする移動距離及び視野探索範囲が小さくなる。
【００８１】
上述した視野探索ステップ及び動的調整ステップは、ゲームの計画に従って本処理方法の任意の適切なステップの間で実行されることができ、本開示により制限されるのではない。視野探索の探索結果は、任意の適切なステップで利用でき、本開示により制限されるのではない。一実施形態において、探索結果は、（ＮＰＣ）ロールの短距離インタラクション状態のモニタリング及び／又は総数Ｎの決定に使用されることができる。
【００８２】
例えば、表２は視野探索をトリガするＮＰＣロールの様々な移動距離の利点及び欠点を示す。
【００８３】
【表２】
0005767760.tif 000003
【００８４】
図５Ｂを参照すると、一実施形態において、視野探索をトリガする移動距離及び視野探索範囲の調整を達成するために、特に下記のステップ１４１〜１４３を含むことができる。
【００８５】
ステップ１４１において、図５Ａに示すように、第１レベルの視野範囲領域（例えば、図５Ａの大きな３×３領域ブロック、各領域ブロックのサイズは約３２メートル×３２メートル）、及び第２レベルの視野範囲領域（例えば、図５Ａに示す大きな３×３領域ブロックの各ブロックを更に分割した２×２又はｎ×ｎ格子領域ブロック）がゲームマップ上で分割される。第１レベルの視野範囲領域は第２レベルの視野範囲領域のサイズの整数倍である。
【００８６】
ステップ１４２において、デフォルトとして、ＮＰＣロールが第１レベルの視野範囲領域を横切るとき、視野探索が第１レベルの視野範囲領域内のロールオブジェクト（例えば、他のＮＰＣロール及びユーザロール）に対して実行される。
【００８７】
ステップ１４３において、ＮＰＣロールの視野探索後ごとに、探索結果に従って、ロールオブジェクトの数が視野リストに維持される。そして、視野リスト内のロールオブジェクトの数が規定の閾値を超えるかどうかを決定することができる。視野リスト内のロールオブジェクトの数が規定の閾値を超えない場合には、ＮＰＣロールがその後第１レベルの視野範囲領域を横切ると、第１レベルの視野範囲領域内のロールオブジェクトに対して視野探索を実行することができる。視野リスト内のロールオブジェクトの数が規定の閾値を超える場合には、ＮＰＣロールがその後第２レベルのシステムや範囲領域を横切ると、第２レベルの視野範囲領域内のロールオブジェクトに対して視野探索を実行することができる。
【００８８】
図５Ｃを参照すると、ＮＰＣロールの視野範囲内のロールオブジェクトを視野探索するステップ及び探索の結果に従って視野リスト内にロールオブジェクトの数を維持するステップは、以下のステップ１４３１〜１４３４を含むことができる。
【００８９】
ステップ１４３１において、ＮＰＣロールの視野範囲内の全てのロールオブジェクトが探し出される。
【００９０】
ステップ１４３２において、探し出されたロールオブジェクトの各々のタイプが決定される。
【００９１】
ステップ１４３３において、ロールオブジェクトのタイプ及び各タイプのロールオブジェクトに対してプリセットされた視野包含関係情報に従って、ロールオブジェクトの各々をＮＰＣロールの視野リスト内に加えるべきかどうかを決定する。
【００９２】
ステップ１４３４において、原視野リストに存在するが新しい視野範囲内で探索し得ないロールオブジェクトが除去される。
【００９３】
表３は、各タイプのロールオブジェクトに対してプリセットされた視野包含関係情報の例示的な所定の例を示す。
【００９４】
【表３】
0005767760.tif 000004
【００９５】
表３に示すように、一つの特定の実施形態において、ＮＰＣロールが異なるレベルに分類できる。異なるレベルのＮＰＣロールに対する視野包含関係情報は、以下の１）〜４）のように相違させることができる。
１）ユーザロールとユーザロールは対称関係を有し、互いの視野内に包含され得る。ユーザロールと第１レベルのＮＰＣロールは対称関係を有し、互いの視野内に包含され得る。ユーザロールと第２レベルのＮＰＣロールは対称関係を有し、互いの視野内に包含され得る。ユーザロールと第３レベルのＮＰＣロールは対称関係を有し、互いの視野内に包含され得る。しかしながら、第３レベルのＮＰＣロールの視野リストが一杯のとき、第３レベルのＮＰＣのみがユーザロールの視野内に包含され得る。
２）第１レベルのＮＰＣロールとユーザロールは対称関係を有し、互いの視野内に包含され得る。第１レベルのＮＰＣロールと第１レベルのＮＰＣロールは対称関係を有し、互いの視野内に包含され得る。第１レベルのＮＰＣロールと第２レベルのＮＰＣロール又は第３レベルのＮＰＣロールは互いに視認できず、互いの視野内に包含され得ない。
３）第２レベルのＮＰＣロールとユーザロールは対称関係を有し、互いの視野内に包含され得る。第２レベルのＮＰＣロールと第１レベルのＮＰＣロール又は第２レベルのＮＰＣロールは互いに視認できず、互いの視野内に包含され得ない。
４）第３レベルのＮＰＣロールとユーザロールは対称関係を有し、互いの視野内に包含され得る。しかしながら、第３レベルのＮＰＣロールの視野リストが一杯のとき、第３レベルのＮＰＣのみがユーザロールの視野内に包含され得る。第３レベルのＮＰＣロールと、第１レベルのＮＰＣロール又は第２レベルのＮＰＣロール又は第３レベルのＮＰＣロールは互いに視認できず、互いの視野内に包含され得ない。
【００９６】
上記の様々な実施形態に開示されているように、各タイプのロールオブジェクトに対してプリセットする視野包含関係は、例えば以下の利点（１）〜（３）を有する。
（１）視野リストが閾値に達する確率を低減でき、ここで、閾値は第２レベルの視野範囲領域を横切る視野探索をトリガするための規定の閾値である。従って、移動中の視野探索の頻度を減少させることができる。視野探索アルゴリズムの消費を低減できるため、ＣＰＵ消費を低減できる。
（２）第３レベルのＮＰＣロールの視野リストが満杯のとき、ユーザロールが第３レベルのＮＰＣロールを見ることができず、よってタスクを受信できない状態を防止するために、第３レベルのＮＰＣロールのみがユーザロールの視野内に包含され得る。
（３）ＮＰＣロールの視野リストに他のロールがないとき、ＡＩロジック動作を停止でき、よってＣＰＵの消費を低減できる。
【００９７】
上記の方法と同様に、図６に示すように、様々な開示された実施形態によるネットワークゲームシステムは、状態モニタリングモジュール２０１、シミュレーティド回転角度決定モジュール２０２、及び位置割当モジュール２０３（図２も参照）を含むことができ、更に負荷モニタリング及び調整モジュール２０４を含むことができる。
【００９８】
負荷モニタリング及び調整モジュール２０４は、ネットワークゲームシステムサーバの現在の負荷状態をモニタし、ＮＰＣロールに対するＮＰＣシステムのクロックチックインターバルをモニタした負荷状態に従って動的に調整するように構成され、ネットワークゲームシステムサーバの現在負荷が大きくなるほど、それに応じて調整されるＮＰＣロールのクロックチックインターバルが長くなる。
【００９９】
ネットワークゲームシステムは更に、視野探索モジュール２０５を含むことができる。視野探索モジュール２０５は、ＮＰＣロールの視野範囲内のロールオブジェクトを捜索する視野探索を実行するように構成される。加えて、視野探索モジュール２０５は、視野探索をトリガするＮＰＣロールの移動距離及び視野探索範囲を、視野リスト内のロールオブジェクトの数に従って動的に調整するように構成される。ＮＰＣの視野リスト内のロールオブジェクトの数が多いほど、それに応じて調整される視野探索をトリガする移動距離及び視野探索範囲が小さくなる。
【０１００】
加えて、ネットワークゲームシステムのオーバヘッドを更に低減するために、一実施形態において、本明細書で開示される方法は更に、ネットワークゲームシステムによるマップ上の任意の２つの座標点間の距離Ｓの計算時に、前記２つの座標点を結ぶ線を直角三角形の斜辺として用い、且つ前記２つの座標点をこの直角三角形の頂点として用いてこの直角三角形を描き、この直角三角形の２つの辺の長さを決定し、ここで、Ａは長辺の長さ、Ｂは短辺の長さとし、前記２つの座標点間の距離を計算するためにＳ＝Ａ＋Ｂ/２を用いることを含む。
【０１０１】
通常、２つの座標点間の距離を計算するためには
【数１】
0005767760.tif 000005
が使用されるが、二乗計算及びルート計算は両方ともＣＰＵオーバヘッドを消費する。よって、前記距離を計算するために方程式Ｓ＝Ａ＋Ｂ/２を使用することによりＣＰＵ負荷を低減できる。
【０１０２】
ここで開示するように、方程式Ｓ＝Ａ＋Ｂ/２を使用すると、計算される２つの座標点間の距離はいくらか誤差を有するが、その最大誤差が約１２％以下であり、平均誤差は約５％である。この程度の誤差はネットワークゲームシステムで許容可能であり、画像及びゲーム操作体験に大きな影響を及ぼさない。利点は、加算及び除算演算により消費されるＣＰＵのオーバヘッドが低いため、システムリソースを節約できることである。
【０１０３】
本明細書で開示された実施形態は例示にすぎない。開示された実施形態に対する他の応用、利点、代替例、変更例又は同等例も当業者にとって明らかであり、本開示の範囲に含まれることを意図している。
【産業上の利用可能性】
【０１０４】
開示された実施形態の産業上の利用可能性及び有利な効果の例は、特許請求の範囲及び／又は明細書の範囲を制限するためでなく、説明のために記載されている。開示された実施形態の技術的解決法に対する様々な変更例、修正例又は同等例は当業者にとって自明であり、本開示の範囲に含まれ得る。
【０１０５】
開示された方法及びシステムは、様々なゲームアプリケーションに利用可能である。開示された方法及びシステムを使用することによって、ノンプレーヤ制御キャラクタ（ＮＰＣ）ロールの短距離インタラクション状態が、そのゲームをプレイしているユーザに対応するユーザロールを有するゲームのマップ上でモニタされる。ＮＰＣロールが、あるユーザロールを短距離インタラクションの目標として選択すると、ＮＰＣロールがそのユーザロールを目標として選択する前に、そのユーザロールと短距離インタラクションを行っている全てのＮＰＣロールの総数Ｎが決定される。また、Ｃ＝Ｎ×ａ（ここで、ａは規定の基準角度である）を用いて回転角度Ｃが決定される。次に、位置割当操作が実行される。前記位置割当操作は、前記ユーザロールの現在の座標点を円の中心として前記ＮＰＣロールの現在の座標点を前記回転角度Ｃだけ回転させることによって前記ＮＰＣロールの目的地座標が計算されるステップを含む。位置割当操作は、マップ上の目的地座標点に静的障害物があるかどうか決定するステップも含む。静的障害物があると、位置割当操作を繰り返すために現在の回転角度Ｃに規定の角度を付加して新しい回転角度Ｃが計算される。静的障害物がないと、ＮＰＣロールは目的地座標点に移動し、ユーザロールとの短距離インタラクションを実行する。
【０１０６】
開示された方法及びシステムを使用すると、ユーザロール短距離インタラクションの目標とする全てのＮＰＣロールが、ＮＰＣロールとユーザロールとの間の短距離インタラクションにとっての実効インタラクション範囲である一定の距離範囲内に位置される。従って、ＮＰＣロールモデルとユーザロールモデルが互いにオーバラップすることはない。加えて、ＮＰＣロールモデルはユーザロールモデルの周囲にほぼ均等に分布されるので、ＮＰＣロールモデル同士がオーバラップする確率も大幅に低くなる。それで、所望のＰＶＥ（プレーヤ対環境）視覚体験がユーザに提供され得る。加えて、開示された方法及びシステムは単純であり、ＮＰＣロール間におけるリアルタイムの複雑な動的インタラクティブ計算を必要としない。よって、ゲームシステムのオーバヘッドを低減できる。
【符号の説明】
【０１０７】
２００…動的障害物のないネットワークゲームシステム、２０１…状態モニタリングモジュール、２０２…シミュレーティド回転角度決定モジュール、２０３…位置割当モジュール、２０４…負荷モニタリング及び調整モジュール、２０５…視野探索モジュール、７００…環境、７０２…通信ネットワーク、７０４…サーバ、７０６…端末、８００…システム、８０２…プロセッサ、８０４…記憶媒体、８０６…モニタ、８０８…通信モジュール、８１０…データベース、８１２…周辺装置、８１４…バス。
【図１Ａ】
0005767760.tif 000006
【図１Ｂ】
0005767760.tif 000007
【図２】
0005767760.tif 000008
【図３】
0005767760.tif 000009
【図４】
0005767760.tif 000010
【図５Ａ】
0005767760.tif 000011
【図５Ｂ】
0005767760.tif 000012
【図５Ｃ】
0005767760.tif 000013
【図６】
0005767760.tif 000014
【図７】
0005767760.tif 000015
【図８】
0005767760.tif 000016