JP2006014981A - ネットワークゲーム制御方法及びネットワークゲームプログラム - Google Patents

ネットワークゲーム制御方法及びネットワークゲームプログラム Download PDF

Info

Publication number
JP2006014981A
JP2006014981A JP2004196671A JP2004196671A JP2006014981A JP 2006014981 A JP2006014981 A JP 2006014981A JP 2004196671 A JP2004196671 A JP 2004196671A JP 2004196671 A JP2004196671 A JP 2004196671A JP 2006014981 A JP2006014981 A JP 2006014981A
Authority
JP
Japan
Prior art keywords
terminal device
server
processing
game
execution destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004196671A
Other languages
English (en)
Inventor
Takashi Sekiguchi
隆志 関口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004196671A priority Critical patent/JP2006014981A/ja
Publication of JP2006014981A publication Critical patent/JP2006014981A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 処理を自由に分割できるネットワークゲーム制御方法を提供する。
【解決手段】 端末装置種別取得手段1aが、端末装置2から、ゲームへの参加要求4を取得する。サーバ検出手段1eが、存在するサーバを検出する。実行先決定手段1cが、多段階の処理で構成される処理において、端末装置種別毎に定義されている実行先定義情報を参照し、各段階の処理の実行先を決定し、決定した内容を処理分配情報記憶手段1fに格納する。役割指示手段1gが、端末装置2に対して、分配された処理の種別を通知し、サーバに対して、分配された処理の種別を通知する。
【選択図】 図1

Description

本発明はネットワーク経由でゲームを提供するネットワークゲーム制御方法に関し、特に、多様な端末に対応したクライアントサーバ型及びピアツーピア型ネットワークゲーム制御方法に関する。
ユーザがゲームを楽しむ方法について、家庭用ゲーム機を用いる方法、パーソナルコンピュータ(PC)を用いる方法、業務用ゲーム機を用いる方法等の方法がある。これらとは別に、ネットワークゲームなるゲーム概念が誕生し、非常に注目を集めている。ネットワークゲームでは、ユーザは、ネットワークを経由して、ユーザの知らない第三者もしくは複数の第三者とゲームを楽しむことができる。
現在、ユーザが既に所有している家庭用ゲーム機やPCを使用して、ネットワークゲームを実行できるようになっている。
そして、ネットワークゲーム仲介装置を介して、各ユーザの端末装置種別が異なっていても、均等な条件でネットワークゲームを実行できる方法も提案されている(例えば、特許文献1参照)。
特開2001−252475号公報
しかし、現在、端末装置として予定されているのは、家庭用ゲーム機やPCに限られ、ユーザを増やすには他の端末装置も使用できることが望ましく、マルチプラットフォーム環境が求められている。
また、端末装置の能力が低い場合、ネットワーク側の処理負荷が大きくなるという問題がある。そして、従来のネットワークゲーム制御方法は、ネットワーク側の処理負荷が大きい場合、処理を固定的に複数のサーバに分割しており、処理効率が低い。
本発明は、このような点に鑑みてなされたものであり、様々な端末装置種別に対応できるマルチプラットフォーム環境のネットワークゲーム制御方法を提供することを目的とする。
また、本発明の他の目的は、利用される端末装置種別、回線帯域及び処理負荷等に応じて、処理を動的に自由に分割できるネットワークゲーム制御方法を提供することである。
本発明では、上記課題を解決するために、図1に示すようなネットワークゲーム制御方法が提供される。
図1のネットワークを介して、コンピュータゲームを提供する為のネットワークゲーム制御方法において、端末装置種別取得手段1aが、端末装置2から、ゲームへの参加要求を受信すると、端末装置2から端末装置種別の情報を取得する。サーバ検出手段1eが、端末装置2までの通信経路に存在するサーバを検出する。実行先決定手段1cが、多段階の処理で構成されるゲーム画像生成処理において、各段階の実行先決定方針が少なくとも端末装置種別毎に定義されている実行先定義情報を参照し、実行先定義情報に従って、各段階の処理の実行先を決定し、決定した内容を処理分配情報1dとして処理分配情報記憶手段1fに格納する。役割指示手段1gが、端末装置2に対して、実行先決定手段1cで端末装置2に分配された処理の種別を通知し、サーバ検出手段1eで検出されたサーバに対して、実行先決定手段1cでサーバに分配された処理の種別を通知する。
このようなネットワーク制御方法によれば、端末装置種別取得手段1aにより、端末装置2からのゲームへの参加要求に応じて、端末装置2から端末装置種別の情報が取得される。次に、サーバ検出手段1eにより、端末装置2までの通信経路に存在するサーバが検出される。その後、実行先決定手段1cにより、実行先定義情報に従って、各段階の処理の実行先が決定される。決定された内容は処理分配情報1dとして処理分配情報記憶手段1fに格納される。そして、役割指示手段1gにより、端末装置2に対して、実行先決定手段1cで端末装置2に分配された処理の種別が通知される。最後に、サーバ検出手段1eで検出されたサーバに対して、実行先決定手段1cでサーバに分配された処理の種別が通知される。
本発明では、各段階の実行先決定方針が端末装置種別毎に定義されていて、それに基づいて、各段階の処理の実行先を決定するようにした。このようにすると、異なる複数の端末装置種別が、コンピュータゲームに参加しても、端末装置毎に、効率的なゲーム画像生成処理を実行できるので、より多くのユーザを獲得できる。
さらに、本発明では、コンピュータゲームに参加する端末装置種別に応じて、ゲーム画像生成処理の実行先決定をするようにした。このようにすると、通信経路に存在するサーバの処理負荷が、端末装置種別に応じて動的に決定されるので、処理効率が向上する。
以下、本発明の、実施の形態を図面を参照して説明する。まず、発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、本発明の概念図である。ネットワークゲーム制御方法は、1つ以上のサーバと端末とから構成される。1つ以上のサーバと端末とは、通信サービスによって接続されている。ネットワークゲーム制御方法の中心的役割を果たすサーバをセンタサーバ1とし、センタサーバ1が、接続している様々な端末の機能や性能に応じて、一連のゲーム処理の中から、センタサーバ1で実行する処理と非センタサーバ3で実行する処理と端末装置2で実行する処理とを、動的に判断する。
本発明は、センタサーバ1と非センタサーバ3と端末装置2とから構成される。センタサーバ1は、ネットワークゲーム制御方法の中枢である。ネットワークゲーム制御方法は、クライアントサーバ型の場合、1つ以上のサーバと端末装置とから成り、多様な端末に対応したクライアントサーバ型及びピアツーピア型のネットワークゲーム制御方法である。クライアントサーバ型の場合、1つ以上のサーバが存在し、センタサーバ1のみかセンタサーバ1と非センタサーバ3とから構成される。ピアツーピア型の場合、二つ以上の端末が存在し、どれか1つの端末がセンタサーバ1と同等のものとなる。非センタサーバ3は、センタサーバ1を補佐するものである。端末装置2は、ユーザがシステムにサービス要求する場合に、利用するものである。センタサーバ1と非センタサーバ3と端末装置2とは、ネットワークで接続されている。
センタサーバ1は、端末装置種別取得手段1aと実行先定義情報データベース1bと実行先決定手段1cと処理分配情報1dとサーバ検出手段1eと処理分配情報記憶手段1fと役割指示手段1gとゲーム進行管理手段1hとから構成される。端末装置種別取得手段1aは、端末装置2から、端末装置種別を取得する。実行先定義情報データベース1bは、多段階の処理で構成されるゲーム画像生成処理において、利用される全ての端末装置2と利用される全ての非センタサーバ3との各段階の実行先決定方針が実行先定義情報として格納されている。実行先決定手段1cは、実行先定義情報より、多段階の処理の中で、どの処理をどの装置で実行するか決定する。処理分配情報1dは、実行先決定手段1cで決定された情報である。サーバ検出手段1eは、端末装置2までの通信経路に存在するサーバを検出する。処理分配情報記憶手段1fは、処理分配情報1dを記録する。役割指示手段1gは、参加要求4のある端末装置2に対して、実行先決定手段1cで端末装置2に分配された処理の種別を通知し、サーバ検出手段1eで検出された非センタサーバ3に対して、実行先決定手段1cで非センタサーバ3に分配された処理の種別を通知する。ゲーム進行管理手段1hは、ゲームのオブジェクトの動作指示を検出すると、ゲームに関係している端末装置2及び非センタサーバ3の処理分配情報1dを参照し、動作指示に関係するゲーム画像生成処理の内、他の装置に分配しないと判断された処理を実行し、生成されたデータを、端末装置2及び非センタサーバ3へ通信経路を介して送信する。
このようにすると、センタサーバ1は端末装置2から参加要求4を受け取り、端末装置種別取得手段1aにより端末装置2の情報を入手する。そして、サーバ検出手段1eによりセンタサーバ1から端末装置2までの通信経路の非センタサーバ3の情報を入手する。その後、実行先定義情報データベース1bから端末装置2と非センタサーバ3との情報を入手し、実行先決定手段1cによりどの処理をどの装置で実行するか決定する。その決定内容を処理分配情報記憶手段1fに記録し、役割指示手段1gにより端末装置2と非センタサーバ3とに通知を送信する。こうして、ゲーム進行管理手段1hにより、ゲームを開始する。
このようにしてネットワークゲームを実行すると、センタサーバ1を中心として、動的に様々な情報を活用し、最適な環境を構築できる。利用される情報としては、通信経路の能力や負荷と非センタサーバ3の能力や負荷と端末装置2の能力や負荷とがある。そして、単一のアプリケーションで、一種類の端末装置2だけでなく複数種類の端末装置2に対応したネットワークゲームを実現でき、これによって、汎用性が向上し、より多くのユーザを獲得できる。さらに、それぞれの端末装置2に対する分散アプリケーションの適用方法を変化させるので、より効果的に、端末装置2とサーバとを含めたシステム全体のハードウェアとネットワークとの処理効率を最適化できる。
以下、本発明の実施の形態を具体的に説明する。
図2は、ネットワークゲームシステムの概念図である。
ネットワークゲームシステム100は、センタサーバ700と第1エッジサーバ100bと第1エッジサーバ100cと第2エッジサーバ100dと第2エッジサーバ100eと第3エッジサーバ100fと場合によってはさらに複数のサーバと端末装置300aと端末装置300bと端末装置(STB)300cと端末装置300dと端末装置(ゲーム機)300eと端末装置(PC)300fと場合によってはさらに複数の端末装置とから構成される。センタサーバ700は、ネットワークゲームシステム100を制御する。第1エッジサーバ100bと第1エッジサーバ100cと第2エッジサーバ100dと第2エッジサーバ100eと第3エッジサーバ100fと端末装置300aと端末装置300bと端末装置300cと端末装置300dと端末装置300eと端末装置300fとは、センタサーバ700を補助する。センタサーバ700と第1エッジサーバ100bと第1エッジサーバ100cと第2エッジサーバ100dと第2エッジサーバ100eと第3エッジサーバ100fと場合によってはさらに複数のサーバと端末装置300aと端末装置300bと端末装置(STB)300cと端末装置300dと端末装置(ゲーム機)300eと端末装置(PC)300fと場合によってはさらに複数の端末装置とは、通信サービスで接続される。
なお、ネットワークゲームシステム100は、センタサーバ700と非センタサーバ800と端末装置300とから構成される。センタサーバ700と非センタサーバ800と端末装置300とは、通信サービスで接続される。
図3は、センタサーバの機能を示す図である。センタサーバ700は、ネットワークゲームシステム100の中心的役割を果たし、全ての機能を有している。
ネットワークゲームシステム100は、処理実行先決定部501とゲーム進行管理部502とゲームデータベース401と端末データベース402と経路データベース403と非センタサーバデータベース404と経路帯域データベース405とサーバ負荷データベース406とオブジェクトデータベース407とオブジェクト構成ポリゴンデータベース408とポリゴン相対座標データベース409とポリゴン構成ピクセルデータベース410とピクセル相対座標データベース411と背景データベース412とから構成される。処理実行先決定部501とゲーム進行管理部502とゲームデータベース401と端末データベース402と経路データベース403と非センタサーバデータベース404と経路帯域データベース405とサーバ負荷データベース406とオブジェクトデータベース407とオブジェクト構成ポリゴンデータベース408とポリゴン相対座標データベース409とポリゴン構成ピクセルデータベース410とピクセル相対座標データベース411と背景データベース412とは、電気的に接続されている。
処理実行先決定部501は、ネットワークゲーム開始前のネットワークゲームシステム100の処理をする。ゲームで登場するキャラクタを、オブジェクトとその下の概念のポリゴンとさらにその下の概念のピクセルとに分け、それぞれの処理をどの装置に実行させるかを動的に判断する。
ゲーム進行管理部502は、ネットワークゲーム開始後のネットワークゲームシステム100の処理をする。実際にゲームを進め、センタサーバ700と非センタサーバ800と端末装置300とは、処理の中で、分配された処理を実行するかもしくは分配されていない処理を下位の装置に送信する。
ゲームデータベース401は、ゲームのアプリケーションソフトウェアそのものを記録する。あるゲームを実現するのに必要な機能も記録する。
端末データベース402は、端末装置300に使用されている具体的な端末装置300の名称とその端末装置300の能力とを記録する。端末装置300の機能分割単位は上述のゲーム機能分割単位と一致する。端末装置300によって、端末装置300の所有する機能は、端末装置300に実装されるCD−ROM(Compact Disc Read Only Memory)等の媒体により拡張される可能性がある。この際、異なるバージョンのCD−ROMを実装した同一の端末装置300は、異なる機能を持つので、別のものとしてエントリする。
経路データベース403は、ネットワークの中に存在する全ての経路を記録する。例えば、センタサーバ700から、都道府県と市町村とからなる地域ブロックに至る経路を記録する。端末装置300単位で経路を管理すると効率が悪いので、複数の端末装置300を1つの地域ブロックとしてまとめる。
非センタサーバデータベース404は、ネットワークの中に存在する全てのサーバの能力を記録する。非センタサーバ800のタイプや所在地も記録する。個々の非センタサーバ800に対して所有機能を記録する方法もあるが、ここでは、非センタサーバ800をタイプでまとめて、そのタイプの所有機能を記録する。
経路帯域データベース405は、ネットワークの中に存在する全ての経路の利用状況を、リアルタイムに記録する。利用状況は、経路上のネットワーク機器から、統計情報を取得する。
サーバ負荷データベース406は、ネットワークの中に存在する全てのサーバの利用状況を、リアルタイムに記録する。サーバ負荷データベース406はセンタサーバ700に存在し、非センタサーバ800の現在の負荷は、非センタサーバ800が定期的にセンタサーバ700に通知するか、センタサーバ700が定期的に非センタサーバ800に問い合わせるかで取得する。
オブジェクトデータベース407は、ゲーム内のキャラクタの中心座標と向きと姿勢を記録する。例えば、あるキャラクタの情報例として、座標は(X0、Y0、Z0)であり、向きは(U0、V0、W0)であり、姿勢はパターン番号A0である。
オブジェクト構成ポリゴンデータベース408は、キャラクタを構成するポリゴンの情報を記録する。つまり、キャラクタをポリゴンに変換する手法を記録する。
ポリゴン相対座標データベース409は、キャラクタの向きと姿勢とからポリゴンの相対座標を記録する。
なお、この情報は単純に生成すると、各キャラクタの各姿勢と各向きとに対して、該当する各ポリゴン毎に情報を記録する必要がある。しかし、情報量を減らすこともできる。例えば、複数のポリゴン間に主従関係を作り、従ポリゴンの相対座標を、主ポリゴンと従ポリゴンとの隣接点での従ポリゴンの向きで表現する。すると、例えば、キックの姿勢について、胴体ポリゴンに対して太ももポリゴンが(0、0、−1)から(1、0、0)へ変化したといえる。ここで、(0、0、−1)は、Z軸方向に下に足が伸びていることを示し、(1、0、0)は、X軸方向に前に足が出ていることを示している。これによって、足の長いキャラクタでも短いキャラクタでも、太ももポリゴンを(0、0、−1)から(1、0、0)にするという表現だけでキックを表現できる。太ももポリゴンを通常の座標で表現しようとすると、足の長いキャラクタの太ももポリゴンと足の短いキャラクタの太ももポリゴンとは、大きさが異なるため、キック時の座標も当然に異なり、各キャラクタの各姿勢の各向きに対して、一つ一つポリゴン座標を定義しなくてはならなくなる。
ポリゴン構成ピクセルデータベース410は、ポリゴンを構成するピクセルの情報を記録する。つまり、ポリゴンをピクセルに変換する手法を記録する。さらに、テクスチャが定義されている場合、テクスチャを貼り付ける関数も記録する。
ピクセル相対座標データベース411は、ポリゴンの角度からピクセルの相対座標を記録する。
背景データベース412は、ゲーム空間の座標に対応する背景を記録する。
図4は、非センタサーバと端末装置との機能を示す図である。非センタサーバ800と端末装置300との機能は、ゲーム進行管理部502aとオブジェクト構成ポリゴンデータベース408aとポリゴン相対座標データベース409aとポリゴン構成ピクセルデータベース410aとピクセル相対座標データベース411aと背景データベース412aとから構成される。ゲーム進行管理部502aとオブジェクト構成ポリゴンデータベース408aとポリゴン相対座標データベース409aとポリゴン構成ピクセルデータベース410aとピクセル相対座標データベース411aと背景データベース412aとは、電気的に接続されている。各項目は、同じ名称について、上述したセンタサーバ700の機能と同じである。
なお、仮に、非センタサーバ800と端末装置300との機能として、背景データベース412aが無い場合もあり、その場合は、その装置に背景情報が無いために、背景の処理ができないことになる。
ここでは、ゲームに関する様々な処理の中で、画面の描画に特化して説明する。ネットワークゲームシステム100のアプリケーションソフトウェアは、1つのコアプログラムたるオブジェクト層処理部104aと複数の動的な処理部とから構成される。
なお、コアプログラムは、便宜上、クライアントサーバ型の場合1つのサーバで、ピアツーピア型の場合1つの端末で、実行されるとする。しかし、実際は、ユーザ認証やユーザ登録や対戦相手探索や対戦相手決定等の処理は、複数のコンピュータに分割される可能性がある。
図5は、ゲーム進行管理部を示す図である。ゲーム進行管理部502は、画像送信部102と画像受信部103と画像処理部104とから構成される。画像送信部102は、データを圧縮したりパケット化して画像を送信する。画像受信部103は、データを復元したりデパケット化して画像を受信する。画像処理部104は、実際に、オブジェクトとポリゴンとピクセルとの画像処理を実行する。
図6は、画像処理部を示す図である。画像処理部104は、オブジェクト層処理部104aとポリゴン層処理部104bとピクセル層処理部104cとから構成される。
オブジェクト層処理部104aは、ゲーム進行の論理やアルゴリズムを処理し、基本的なオブジェクトの生成、移動、変更及び削除等を処理する。そして、実際のオブジェクトの描画はオブジェクト層処理部104aに含まれず、下位層のポリゴン層処理部104bに含まれる。さらに、複数のユーザが参加する場合は、ユーザ相互のInteraction処理をする。
オブジェクトとして、ゲームを構成するキャラクタ、背景及び点数等が存在する。
具体的には、オブジェクトの絶対座標を把握し、オブジェクト描画関数を呼び出すという2段階の処理である。
ポリゴン層処理部104bは、オブジェクト層処理部104aの結果として呼び出されるオブジェクト描画関数を実装し、オブジェクトを構成する各要素としてのポリゴンの移動、変更等を処理する。そして、実際のポリゴンの描画はポリゴン層処理部104bに含まれず、下位層のピクセル層処理部104cに含まれる。
具体的には、オブジェクトをポリゴンに分解し、ポリゴンの絶対座標を把握し、ポリゴン描画関数を呼び出すという2段階の処理である。
ピクセル層処理部104cは、ポリゴン層処理部104bの結果として呼び出されるポリゴン描画関数を実装し、ポリゴンを構成する各要素としてのピクセルの移動、変更等を処理する。
具体的には、ポリゴンをピクセルに分解し、ピクセルの絶対座標を把握し、ピクセル描画関数を呼び出すという2段階の処理である。
図7は、図6の理解を進める図である。説明は上述の通りである。
なお、オブジェクト層処理部104aとポリゴン層処理部104bとの下半分のDraw_Object()とDraw_Polygon()とは、実際の処理を現在のコンピュータで実行するか下位のコンピュータで実行するかを分岐する部分であり、図6では、分かり易くする為にIf文で分岐している。しかし、実際の運用では、If文ではなく、受信端末の種別や能力に基づいて処理関数ポインタを設定する。このように関数ポインタを用いることにより、柔軟性を高めることができる。
また、端末のハードが3次元描画(例えば、DirectXである)のハード処理機能を持っている場合、オブジェクトをポリゴンに分解するポリゴン層処理部104bは、3次元描画形式のポリゴンに分解する3次元描画用ポリゴン層処理部104bを用いるのが適切である。OpenGL形式の場合も同様である。
図8は、画像送信部を示す図である。画像送信部102は、オブジェクト層パケット化処理部102aとポリゴン層パケット化処理部102bとピクセル層パケット化処理部102cとから構成される。
オブジェクト層パケット化処理部102aは、オブジェクト層処理部104aの結果をパケットデータに変換して、他のサーバもしくは端末に送信する処理をする。パケットデータに変換する前に、データ圧縮を行うことも可能である。
具体的には、オブジェクト描画関数をパケット化する。
ポリゴン層パケット化処理部102bは、ポリゴン層処理部104bの結果をパケットデータに変換して、他のサーバもしくは端末に送信する処理をする。パケットデータに変換する前に、データ圧縮を行うことも可能である。
具体的には、ポリゴン描画関数をパケット化する。
ピクセル層パケット化処理部102cは、ピクセル層処理部104cの結果をパケットデータに変換して、他のサーバもしくは端末に送信する処理をする。パケットデータに変換する前に、データ圧縮やFEC、インターリーブ等の高信頼性付加処理を行うことも可能である。さらに、ピクセル層処理部104cの結果を圧縮する場合は、MPEG2(Moving Picture Experts Group)等の非可逆圧縮を用いることも可能である。
具体的には、ピクセル描画関数をパケット化する。
図9は、画像受信部を示す図である。画像受信部103は、オブジェクト層デパケット化処理部103aとポリゴン層デパケット化処理部103bとピクセル層デパケット化処理部103cとから構成される。
オブジェクト層デパケット化処理部103aは、オブジェクト層パケットを受信しポリゴン層処理部104bに渡す処理をする。データの圧縮が行われている場合は、データの復元を実行する。高信頼性処理が行われている場合は解除してデータの復元を実行する。
具体的には、パケット化されたオブジェクト描画関数を受信し、ポリゴン層処理部104bの中のオブジェクト描画関数を呼び出す。
ポリゴン層デパケット化処理部103bは、ポリゴン層パケットを受信しピクセル層処理部104cに渡す処理をする。データの圧縮が行われている場合は、データの復元を実行する。高信頼性処理が行われている場合は解除してデータの復元を実行する。
具体的には、パケット化されたポリゴン描画関数を受信し、ピクセル層処理部104cの中のポリゴン描画関数を呼び出す。
ピクセル層デパケット化処理部103cは、ピクセル層パケットを受信しピクセル層の描画の処理をする。データの圧縮が行われている場合は、データの復元を実行する。高信頼性処理が行われている場合は解除してデータの復元を実行する。
具体的には、パケット化されたピクセル描画関数を受信する。
このような様々な処理部を利用して、例えば、MPEG2形式の機能を有するSTBを用いたユーザからアクセスを受け付けた場合、参加するゲームや対戦相手等を決定する。この時点で、センタサーバ700は、端末装置300の種別を入手している。ここで例えば、端末装置300がSTBであることから、能力が低いため、オブジェクト層処理とポリゴン層処理とはセンタサーバ700で実行し、ピクセル層処理は非センタサーバ800で実行することに決定する。
ここで、センタサーバ700は、センタサーバ700のオブジェクト層処理のオブジェクト描画関数へのポインタ(Draw_Object())が、センタサーバ700のポリゴン層処理のオブジェクト描画関数(Draw_Object_Real())を指すように設定する。この例では、MPEG2の配信になる場合として、3次元描画形式やOpenGL形式のポリゴンにする必要はないのでGenericなポリゴン層処理を実行する。但し、Genericなポリゴン層処理は必須ではなく、3次元描画形式やOpenGL形式のどちらかを転用しても良い。ここでの処理のように、上位プログラムの関数ポインタに、適切に下位プログラムの関数を代入していくことで、動的な処理方法の決定ができる。
センタサーバ700のポリゴン層処理のポリゴン描画関数へのポインタ(Draw_Polygon())が、センタサーバ700のポリゴン層パケット化処理のポリゴンパケット送信関数(Draw_Polygon_Dispatch())を指すように設定する。ポリゴンパケットの送信先は、非センタサーバ800である。センタサーバ700は非センタサーバ800にコネクションを張り、ユーザの参加するゲームの処理を実現する為に必要な情報を、非センタサーバ800に転送しておく。ここでの処理のように、関数ポインタに、パケット化処理の関数を代入していくことで、下位の装置へ処理を移管できる。
非センタサーバ800は、非センタサーバ800のポリゴン層デパケット化処理によって、センタサーバ700からのパケットを受信し、非センタサーバ800のピクセル層処理のポリゴン描画関数(Draw_Polygon_Real())に渡す。この手続きは、非センタサーバ800のポリゴン層デパケット化処理のポリゴンパケット受信関数(Draw_Polygon_Real())が、非センタサーバ800のピクセル層処理のポリゴン描画関数(Draw_Polygon_Real())を指すように設定することで、実現できる。
非センタサーバ800は、非センタサーバ800のピクセル層処理のピクセル描画関数へのポインタ(Draw_Pixel())が、非センタサーバ800のMPEG2対応のピクセル層パケット化処理のピクセルパケット送信関数(Draw_Pixel())を指すように設定する。この関数では、1画面分程度のピクセルデータを蓄積して、そのデータ毎にMPEG2圧縮を実行する。さらに、信頼性向上のためにFECによる冗長性付与とインターリーブ等とを施す。そして、ピクセルパケットを端末装置300へ送信する。
端末装置300は、端末装置300のピクセル層デパケット化処理によって、非センタサーバ800からのパケットを受信し、描画する。
つまり、本実施の形態では、端末装置300の種別より、センタサーバ700と非センタサーバ800と端末装置300との処理を分担し、上位プログラムの関数ポインタに、適切に下位プログラムの関数を代入していくことで、動的な処理方法の決定ができる。この関数ポインタがポイントする関数の実体は、様々な処理の中に存在する。そして、装置間の処理の分担は、本来の処理の関数を呼ぶ代わりにパケット送信関数を呼び、受信側のデパケット化処理がパケットを受信し、本来の処理の関数を呼ぶことで実現される。
図10は、実行先決定部の処理結果の第1の例を示す図である。この図は、センタサーバ700がオブジェクト層処理部104aを実行し、第1エッジサーバ100bがポリゴン層処理部104bを実行し、第2エッジサーバ100eがピクセル層処理部104cを実行し、端末が何も実行しない、と判断した場合の図である。
センタサーバ700は、オブジェクト層処理部104aにより、オブジェクト層の画像処理を実行する。
センタサーバ700の判断の中で、第1エッジサーバ100bがポリゴン層処理部104bを実行するという判断に従う。
センタサーバ700は、オブジェクト層パケット化処理部102aにより、オブジェクトをパケット化する。
ネットワークゲームシステム100内のネットワークでパケット転送する。
第1エッジサーバ100bは、オブジェクト層デパケット化処理部103aにより、オブジェクトをデパケット化する。
第1エッジサーバ100bは、ポリゴン層処理部104bにより、ポリゴン層の画像処理を実行する。
センタサーバ700の判断の中で、第2エッジサーバ100eがピクセル層処理部104cを実行するという判断に従う。
第1エッジサーバ100bは、ポリゴン層パケット化処理部102bにより、ポリゴンをパケット化する。
ネットワークゲームシステム100内のネットワークでパケット転送する。
第2エッジサーバ100eは、ポリゴン層デパケット化処理部103bにより、ポリゴンをデパケット化する。
第2エッジサーバ100eは、ピクセル層処理部104cにより、ピクセル層の画像処理を実行する。
センタサーバ700の判断の中で、端末装置300が描画するという判断に従う。
第2エッジサーバ100eは、ピクセル層パケット化処理部102cにより、ピクセルをパケット化する。
ネットワークゲームシステム100内のネットワークでパケット転送する。
端末装置300は、ピクセル層デパケット化処理部103cにより、ピクセルをデパケット化する。
端末装置300は、描画する。
図11は、実行先決定部の処理結果の第2の例を示す図である。この図は、センタサーバ700がオブジェクト層処理部104aを実行し、第1エッジサーバ100bがポリゴン層処理部104bを実行し、端末がピクセル層処理部104cを実行する、場合の概念図である。図10と比べると、原則的に各処理部を実行するコンピュータが異なるだけである。
具体的には、第2エッジサーバ100eと端末装置300とが端末装置300に統合され、そのためピクセル層の伝送が不要となっている。
図12は、実行先決定部の処理結果の第3の例を示す図である。この図は、センタサーバ700がオブジェクト層処理部104aを実行し、端末がポリゴン層処理部104bとピクセル層処理部104cとを実行する、場合の概念図である。図10と比べると、原則的に各処理部を実行するコンピュータが異なるだけである。
具体的には、第1エッジサーバ100bと第2エッジサーバ100eと端末装置300とが端末装置300に統合され、そのためポリゴン層とピクセル層との伝送が不要となっている。
図13は、実行先決定部の処理結果の第4の例を示す図である。この図は、センタサーバ700がオブジェクト層処理部104aとポリゴン層処理部104bとを実行し、第1エッジサーバ100bがピクセル層処理部104cを実行し、端末が何も実行しない、場合の概念図である。図10と比べると、原則的に各処理部を実行するコンピュータが異なるだけである。
具体的には、センタサーバ700と第1エッジサーバ100bとがセンタサーバ700に統合され、そのためオブジェクト層の伝送が不要となっている。そして、第2エッジサーバ100eが第1エッジサーバ100bとなる。
図14は、実行先決定部の処理結果の第5の例を示す図である。この図は、センタサーバ700がオブジェクト層処理部104aとポリゴン層処理部104bとピクセル層処理部104cとを実行し、端末が何も実行しない、場合の概念図である。図10と比べると、原則的に各処理部を実行するコンピュータが異なるだけである。
具体的には、センタサーバ700と第1エッジサーバ100bと第2エッジサーバ100eとがセンタサーバ700に統合され、そのためオブジェクト層とポリゴン層との伝送が不要となっている。
図15は、実行先決定部の処理結果の第6の例を示す図である。この図は、センタサーバ700がオブジェクト層処理部104aを実行し、第1エッジサーバ100bがポリゴン層処理部104bとピクセル層処理部104cとを実行し、端末が何も実行しない、場合の概念図である。図10と比べると、原則的に各処理部を実行するコンピュータが異なるだけである。
具体的には、第1エッジサーバ100bと第2エッジサーバ100eとが第1エッジサーバ100bに統合され、そのためポリゴン層の伝送が不要となっている。
図16は、実行先決定部の処理結果の第7の例を示す図である。この図は、センタサーバ700がオブジェクト層処理部104aとポリゴン層処理部104bとを実行し、端末がピクセル層処理部104cを実行する、場合の概念図である。図10と比べると、原則的に各処理部を実行するコンピュータが異なるだけである。
具体的には、センタサーバ700と第1エッジサーバ100bとがセンタサーバ700に統合され、そのためオブジェクト層の伝送が不要となっている。そして、第2エッジサーバ100eと端末装置300とが端末装置300に統合され、そのためピクセル層の伝送が不要となっている。
図17は、ネットワーク経由でデータを転送する場合の例を示す図である。(A)は端末装置300eが高性能端末の場合であり、(B)は端末装置300bが中性能端末の場合であり、(C)は、端末装置300cが低性能端末の場合である。
高性能端末は、能力が高いため、多くの処理が可能である。低性能端末は、能力が低いため、多くの処理は不可能である。中性能端末は、その中間である。
本実施の形態の画像処理はオブジェクト処理とポリゴン処理とピクセル処理との3段階に分かれており、ネットワーク400への負荷をなるべく軽減するため、なるべく多くの処理を端末装置300b、300c、300eでさせる。各処理後のデータについて、オブジェクト処理後のデータ量はポリゴン処理後のデータ量より軽く、ポリゴン処理後のデータ量はピクセル処理後のデータ量より軽い。
例えば、端末装置300eが高性能端末である(A)の場合、端末装置300e以外のコンピュータでオブジェクト処理のみ実行し、端末装置300eでポリゴン処理とピクセル処理とを実行する。端末装置300bが中性能端末である(B)の場合、端末装置300b以外のコンピュータでオブジェクト処理とポリゴン処理とを実行し、端末装置300bでピクセル処理のみ実行する。端末装置300cが低性能端末である(C)の場合、端末装置300c以外のコンピュータでオブジェクト処理とポリゴン処理とピクセル処理とを実行し、端末装置300cでは何も実行しない。
なお、データ転送する前に、ネットワーク400の負荷を軽減させる為に、データ圧縮処理としてMPEGエンコード等の処理をする。そして、ネットワークプロトコル処理としてUDP(User Datagram Protocol)やTCP(Tape Carrier Package)等の処理をする。ネットワーク400を経由した後、再び、ネットワークプロトコル処理としてUDPやTCP等の処理をする。最後に、データ復元処理としてMPEGデコード等の処理をする。
図18は、PCが端末の場合の概念図である。この場合は、原則として図11と同様である。
異なるのは、背景画像をポリゴン層処理部104bで処理することである。
そして、端末がPCであり3次元描画形式の処理機能を持っているので、ポリゴン層処理部104bは3次元描画形式のポリゴンを生成する。しかるに、ネットワークでのパケット転送においても3次元描画関数コールに対応したパケットを使用し、ピクセル層処理部104cは3次元描画形式のポリゴンを描画する。
この処理の流れは3つのコンピュータを利用し、センタサーバ700はオブジェクト層処理部104aを実行し、第1エッジサーバはポリゴン層処理部104bを実行し、端末はピクセル層処理部104cを実行し、1つのコンピュータが1つの処理をするので平均的であるといえる。
図19は、STB(Set Top Box)が端末の場合の概念図である。この場合は、原則として図13と同様である。
異なるのは、背景画像をピクセル層処理部104cで処理することである。
そして、端末がSTBであり能力が低いので、ピクセル層処理部104cを実行することができない。第1エッジサーバがピクセル層処理部104cを実行し、ピクセルデータを転送することになるが、このピクセルデータはデータ量が大きい。よって、ピクセルデータを、ピクセル層パケット化処理部102cでMPEG2圧縮し、ネットワークでのパケット転送においてもMPEG2圧縮したパケットを使用し、ピクセル層デパケット化処理部103cでMPEG2圧縮したパケットを受信する。
この処理の流れは3つのコンピュータを利用し、センタサーバ700はオブジェクト層処理部104aとポリゴン層処理部104bとを実行し、第1エッジサーバはピクセル層処理部104cを実行し、端末は何も実行せず、ネットワークの処理負荷が大きいといえる。
図20は、ゲーム機が端末の場合の概念図である。この場合は、原則として図12と同様である。
異なるのは、背景画像をポリゴン層処理部104bで処理することである。
そして、端末がゲーム機であり3次元描画の処理機能を持っているので、ポリゴン層処理部104bは3次元描画用のポリゴンを生成する。しかるに、ピクセル層処理部104cは3次元描画用のポリゴンを描画する。
この処理の流れは2つのコンピュータを利用し、センタサーバ700はオブジェクト層処理部104aを実行し、端末はポリゴン層処理部104bとピクセル層処理部104cとを実行し、ネットワークの処理負荷が小さいといえる。
ここで、図18と図19と図20とを利用して、対戦型シューティングゲームの例について説明する。このゲームは、ダンジョンの中を動き回りながら、他のプレイヤが操る敵キャラクタと撃ち合い、敵キャラクタを倒していくゲームである。ここでは、プレイヤAはPCで、プレイヤBはSTBで、プレイヤCはゲーム機であるとする。また、このゲームのサーバは、センタサーバ700と非センタサーバ800たる第1エッジサーバとの2段階構成をとっている。プレイヤAの直近の第1エッジサーバを第1エッジサーバAとし、プレイヤBの直近の第1エッジサーバを第1エッジサーバBとし、プレイヤCの直近の第1エッジサーバを第1エッジサーバCとする。センタサーバ700と各第1エッジサーバとの間は、信頼性を保つため、TCPによるデータ伝送を実行する。
まず、プレイヤAがゲームに参加した時に、このゲームのオブジェクト層処理部104a(コアプログラム)は、端末装置300がPCであることを認識し、オブジェクト層処理部104aをセンタサーバ700で実行すると決定する。オブジェクト層処理部104aで計算されたキャラクタの位置と姿勢と向きとから、キャラクタの腕と頭と銃等との各部を構成するポリゴンの位置情報を計算するポリゴン層処理部104bは、第1エッジサーバAで実行すると決定する。さらに、PCであるから、端末装置300で3次元描画形式のポリゴンの描画を実行するのが適切であると判断して、第1エッジサーバAのポリゴン層処理部104bは、3次元描画形式のポリゴンを生成するポリゴン層処理部104bを使用すると決定する。第1エッジサーバAのポリゴン層パケット化処理部102bにより、ポリゴンデータをPCに伝送する。このパケット化されたポリゴンデータは、3次元描画関数コールに対応している。また、3次元描画形式ではなくOpenGL形式である場合、OpenGL形式もポリゴン層の描画に相当するので、第1エッジサーバAでOpenGL形式のポリゴンを生成するポリゴン層処理部104bを使用する。そして、端末装置300へのパケット化されたポリゴンデータは、OpenGL関数コールに対応している。非センタサーバ800で、センタサーバ700から渡されたオブジェクトデータの処理を実行するだけでなく、スコアや背景等の様々な画面構成要素の処理を実行できる。例えば、非センタサーバ800は、キャラクタの位置と姿勢と向きとから、背景となるダンジョンの描画も実行する。この場合、非センタサーバ800にこのダンジョンの情報が格納されている必要がある。PCは、3次元描画関数コールに対応している必要がある。この機能は、他のゲームでも使用でき、汎用性のあるものである。仮に、ポリゴン層処理部104bを、非センタサーバ800ではなくPCで実行する場合、PCについてポリゴン層処理部104bを今回のゲームに特化したものにする必要がある。このために前もって、PCに、今回のゲームに特化したソフトウェアを何らかの方法でインストールしておく必要がある。ネットワークからのダウンロードによってインストールする方法もあるので、必ずしもプレイヤAがインストールを意識する必要はない。第1エッジサーバAからプレイヤAのPCへのパケット伝送において、使用回線帯域を抑える為に、可逆データ圧縮を実行し、ある程度の信頼性を確保しつつパケット伝送処理負荷を抑えるために、再送機能をアプリケーションレベルで実装したUDPを使用する。
プレイヤBのSTBの場合、MPEG2画像を再生する能力しか持たないので、第1エッジサーバBで生成したピクセルデータをMPEG2圧縮する必要がある。MPEG2圧縮は処理負荷が重く、第1エッジサーバBの負荷を軽減する為に、オブジェクト層処理部104aとポリゴン層処理部104bとは、センタサーバ700で実行する。第1エッジサーバBは、ポリゴンデータと背景情報とを合成してピクセル層処理部104cによりピクセルデータを生成する。第1エッジサーバBは、このピクセルデータをMPEG2圧縮する。さらに、MPEG2圧縮したデータに信頼性向上の為に、FECデータの付与とインターリーブ等とを実行し、UDPでSTBにパケット伝送する。プレイヤBのSTBは、パケットからペイロードデータを取り出し、インターリーブとFECとの復元処理を実行し、MPEG2デコードにより画像を再生する。第1エッジサーバBにおいて、ピクセルデータをMPEG2データにエンコードする場合、MPEG2では動き予測を行う。これは、今回のようにポリゴンが動作を実行する場合には、前後のポリゴンレベルの動作を元にして通常のマクロブロック単位でマッチング比較による方法よりも、はるかに高い精度で動き予測を実行できる。このように、自然画でないCGのゲーム画像の特性を生かして、圧縮効率と圧縮速度とを高めることができる。
プレイヤCのゲーム機の場合、汎用的なOpenGLと3次元描画とのライブラリをCD−ROMで提供できないとする。このため、このゲームに対応したCD−ROMを用意して、ゲーム機で、ポリゴン層処理部104bとピクセル層処理部104cとを実行する。センタサーバ700で生成されたオブジェクトデータは、直接端末装置300であるゲーム機に伝送される。ゲーム機は、このデータを、ゲーム機のグラフィック機能で扱うのに最も適したポリゴンとピクセルとに変換して描画する。背景情報は、CD−ROMから取り出す。オブジェクトデータは、帯域的には、ポリゴンデータとピクセルデータとより小さいが、パケット喪失の影響が大きいので、信頼性の高いTCPを用いて伝送される。
次に、対戦将棋ゲームの例についても説明する。このゲームにおいて、センタサーバ700は、対戦するプレイヤが決定した後、そのプレイヤの端末装置の能力に応じて、センタサーバ700の処理実行先決定部501により全ての処理が各端末装置300に分配される。なお、お互いの端末装置300だけでは、処理の実行が困難な場合は、サーバを介在させることも可能である。その後、センタサーバ700の介在の必要がなくなり、プレイヤの端末装置300同士のピアツーピア通信によってゲームが進行する。ここでは、プレイヤAはPCで、プレイヤBはSTBであるとする。
この場合、お互いの端末装置300の能力に応じて、お互いの端末装置300がどこまで処理を実行するかを決定する。STBがMPEG2画像しか受け取れないとすると、PCがあたかもサーバのように、自分の画面を描画すると共に相手の画面のMPEG2データも生成する。なお、プレイヤAとプレイヤBとがSTBの場合、センタサーバ700と非センタサーバ800とが介在する可能性も有り、プレイヤAとプレイヤBとにMPEG2データを伝送することになる。
図21は、処理実行先決定部の処理であり、ゲーム開始前の処理を示すフローチャートである。この処理は、センタサーバ700と0以上のエッジサーバからなる非センタサーバ800と端末装置300とが実行する。
[S101]端末装置300は、ユーザの入力により、実行するゲームの情報を受け取る。そして、端末装置300は、実行するゲームの情報を、センタサーバ700に引き渡す。
[S102]端末装置300は、ユーザの入力により、ユーザの利用している端末装置300の種類の情報を受け取る。そして、端末装置300は、端末装置300の種類の情報を、センタサーバ700に引き渡す。
[S103]端末装置300は、ユーザの入力により、ユーザの利用している端末装置300の能力や機能の情報を受け取る。そして、端末装置300は、端末装置300の能力や機能の情報を、センタサーバ700に引き渡す。なお、端末装置300の能力や機能は、本来的なものでなく、CD−ROM等で新たに獲得した能力や機能のことである。
[S104]センタサーバ700は、ゲームデータベース401と端末データベース402とS101により入力された情報とS102により入力された情報とS103により入力された情報とから、ゲームに必要な機能と端末機能の情報を受け取る。
[S105]端末装置300は、ユーザの入力により、実行する端末装置300の位置情報を受け取る。そして、端末装置300は、実行する端末装置300の位置情報を、センタサーバ700に引き渡す。
[S106]センタサーバ700は、経路データベース403と非センタサーバデータベース404と経路帯域データベース405とサーバ負荷データベース406とS105により入力された情報とから、センタサーバ700と端末装置300との間の経路情報とその経路上の非センタサーバ800の有無とその経路上の利用状況とその経路上の非センタサーバ800の利用状況とを受け取る。
[S107]センタサーバ700は、S104とS106とから入手した情報より、動的に総合判断して、センタサーバ700と非センタサーバ800と端末装置300との処理を決定する。
[S108]センタサーバ700は、非センタサーバ800と端末装置300に、処理の内容を通知する。
[S109]非センタサーバ800は、センタサーバ700から、S108の処理の内容を受け取る。
[S110]端末装置300は、センタサーバ700から、S108の処理の内容を受け取る。
図22は、図11におけるゲーム進行管理部の具体的なゲーム開始後の処理を示すフローチャートの前半である。この処理は、センタサーバ700と0以上のエッジサーバからなる非センタサーバ800と端末装置300とが実行する。
[S121]センタサーバ700は、ユーザからキー操作により、オブジェクト(キャラクタ)の変更等の情報を受け付ける。
[S122]センタサーバ700は、S121の情報より、キャラクタの絶対座標と向きと姿勢とを更新して、古いキャラクタ情報から新しいキャラクタ情報を生成する。
[S124]センタサーバ700は、キャラクタの種別と絶対座標と向きと姿勢とを引数として、各オブジェクトについて、オブジェクト描画関数を呼び出す。
[S125]この場合のオブジェクト描画関数を実装するポリゴン層処理部は、第1エッジサーバで実行されるので、オブジェクト描画関数の実体は第1エッジサーバにある。第1エッジサーバは、キャラクタの種別から、このキャラクタを構成するポリゴン情報を取得する。
[S126]第1エッジサーバは、S124のキャラクタの向きと姿勢とから、各ポリゴンのキャラクタの中心座標に対する相対座標を取得する。
[S127]第1エッジサーバは、S124のキャラクタの種別と絶対座標とS126のポリゴンの相対座標とから、ポリゴンの絶対座標を計算する。
[S128]第1エッジサーバは、ポリゴンの種別と絶対座標とテクスチャと角度とを引数として、各ポリゴンについて、ポリゴン描画関数を呼び出す。そして、図23のAに進む。
図23は、図11におけるゲーム進行管理部の具体的なゲーム開始後の処理を示すフローチャートの後半である。
[S129]図22のAより、この場合のポリゴン描画関数を実装するピクセル層処理部は、端末で実行されるので、ポリゴン描画関数の実体は端末にある。端末は、ポリゴンの種別から、このポリゴンを構成するピクセル情報を取得する。
[S130]端末は、S128のポリゴンの角度から、各ピクセルのポリゴンの中心座標に対する相対座標を取得する。
[S131]端末は、S128のポリゴンの種別と絶対座標とS130のピクセルの相対座標とから、ピクセルの絶対座標を計算する。
[S132]端末は、ピクセルの種別と絶対座標とを引数として、各ピクセルについて、ピクセル描画関数を呼び出す。
[S133]端末は、各ピクセルについて、ピクセル描画関数を実行する。
[S134]端末は、絶対座標で実際に描画する。場合により、テクスチャの貼り付けを実行する。
なお、上記の処理機能は、サーバコンピュータとクライアントコンピュータとによって実現することができる。その場合、センタサーバ700が有すべき機能の処理内容を記述したサーバプログラム、および端末装置300が有すべき機能の処理内容を記述したクライアントプログラムが提供される。サーバプログラムをサーバコンピュータで実行することにより、センタサーバ700の処理機能がサーバコンピュータ上で実現される。また、クライアントプログラムをクライアントコンピュータで実行することにより、端末装置300の処理機能がクライアントコンピュータ上で実現される。
処理内容を記述したサーバプログラムやクライアントプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD:Hard Disk Drive)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
サーバプログラムやクライアントプログラムを流通させる場合には、たとえば、各プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、クライアントプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからクライアントコンピュータにクライアントプログラムを転送することもできる。
サーバプログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録されたサーバプログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置からサーバプログラムを読み取り、サーバプログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接サーバプログラムを読み取り、そのサーバプログラムに従った処理を実行することもできる。
クライアントプログラムを実行するクライアントコンピュータは、たとえば、可搬型記録媒体に記録されたクライアントプログラムもしくはサーバコンピュータから転送されたクライアントプログラムを、自己の記憶装置に格納する。そして、クライアントコンピュータは、自己の記憶装置からクライアントプログラムを読み取り、クライアントプログラムに従った処理を実行する。なお、クライアントコンピュータは、可搬型記録媒体から直接クライアントプログラムを読み取り、そのクライアントプログラムに従った処理を実行することもできる。また、クライアントコンピュータは、サーバコンピュータからクライアントプログラムが転送される毎に、逐次、受け取ったクライアントプログラムに従った処理を実行することもできる。
図24は、本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ10は、CPU(Central Processing Unit)11によって装置全体が制御されている。CPU11には、バス17を介してRAM12、ハードディスクドライブ(HDD)13、グラフィック処理装置14、入力インタフェース15、および通信インタフェース16が接続されている。
RAM12には、CPU11に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM12には、CPU11による処理に必要な各種データが格納される。HDD13には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置14には、モニタ21が接続されている。グラフィック処理装置14は、CPU11からの命令に従って、画像をモニタ21の画面に表示させる。入力インタフェース15には、キーボード22とマウス23とが接続されている。入力インタフェース15は、キーボード22やマウス23から送られてくる信号を、バス17を介してCPU11に送信する。
通信インタフェース16は、ネットワーク24に接続されている。通信インタフェース16は、ネットワーク24を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
(付記1) ネットワークを介して、コンピュータゲームを提供する為のネットワークゲーム制御方法において、
端末装置種別取得手段が、端末装置から、ゲームへの参加要求を受信すると、前記端末装置から端末装置種別の情報を取得し、
サーバ検出手段が、前記端末装置までの通信経路に存在するサーバを検出し、
実行先決定手段が、多段階の処理で構成されるゲーム画像生成処理において、各段階の実行先決定方針が少なくとも前記端末装置種別毎に定義されている実行先定義情報に従って、各段階の処理の実行先を決定し、決定した内容を処理分配情報として処理分配情報記憶手段に格納し、
役割指示手段が、前記端末装置に対して、前記実行先決定手段で前記端末装置に分配された処理の種別を通知し、前記サーバ検出手段で検出された前記サーバに対して、前記実行先決定手段で前記サーバに分配された処理の種別を通知する、
ことを特徴とするネットワークゲーム制御方法。
(付記2) ゲーム進行管理手段が、前記ゲームのオブジェクトの動作指示を検出すると、前記ゲームに関係している前記端末装置及び前記サーバの前記処理分配情報を参照し、前記動作指示に関係する前記ゲーム画像生成処理のうち、他の装置に分配しないと判断された処理を実行し、生成されたデータを、前記端末装置までの通信経路を介して送信することを特徴とする付記1記載のネットワークゲーム制御方法。
(付記3) 前記実行先決定手段は、装置間の前記通信経路の回線帯域に応じて、各段階の処理の実行先を決定することを特徴とする付記1記載のネットワークゲーム制御方法。
(付記4) 前記実行先決定手段は、各装置の処理負荷を監視して前記処理負荷に応じて、各段階の処理の実行先を決定することを特徴とする付記1記載のネットワークゲーム制御方法。
(付記5) 前記実行先決定手段は、各端末装置の能力に応じて、各段階の処理の実行先を決定することを特徴とする付記1記載のネットワークゲーム制御方法。
(付記6) 前記ゲームが対戦型ネットワークゲームの場合、前記端末装置種別取得手段は、参加要求を出力した前記端末装置と前記端末装置と対戦する対戦相手端末装置との端末種別の情報を取得し、
前記サーバ検出手段は、前記端末装置と前記対戦相手端末装置とのゲーム対戦時の通信経路に存在するサーバを検出し、
前記実行先決定手段は、前記端末装置と前記対戦相手端末装置とのそれぞれの前記端末装置種別に応じて、前記ゲーム画面生成処理の各段階の処理の実行先を、前記サーバ検出手段で検出された前記サーバ、前記端末装置及び前記対戦相手端末装置の何れかに決定する、
ことを特徴とする付記1記載のネットワークゲーム制御方法。
(付記7) ネットワークを介して、コンピュータゲームを提供する為のネットワークゲームプログラムにおいて、
コンピュータに、
端末装置種別取得手段が、端末装置から、ゲームへの参加要求を受信すると、前記端末装置から端末装置種別の情報を取得し、
サーバ検出手段が、前記端末装置までの通信経路に存在するサーバを検出し、
実行先決定手段が、多段階の処理で構成されるゲーム画像生成処理において、各段階の実行先決定方針が少なくとも前記端末装置種別毎に定義されている実行先定義情報に従って、各段階の処理の実行先を決定し、決定した内容を処理分配情報として処理分配情報記憶手段に格納し、
役割指示手段が、前記端末装置に対して、前記実行先決定手段で前記端末装置に分配された処理の種別を通知し、前記サーバ検出手段で検出された前記サーバに対して、前記実行先決定手段で前記サーバに分配された処理の種別を通知する、
処理を実行させることを特徴とするネットワークゲームプログラム。
(付記8) ネットワークを介して、コンピュータゲームを提供する為のネットワークゲーム装置において、
端末装置から、ゲームへの参加要求を受信すると、前記端末装置から端末装置種別の情報を取得する端末装置種別取得手段と、
前記端末装置までの通信経路に存在するサーバを検出するサーバ検出手段と、
多段階の処理で構成されるゲーム画像生成処理において、各段階の実行先決定方針が少なくとも前記端末装置種別毎に定義されている実行先定義情報に従って、各段階の処理の実行先を決定し、決定した内容を処理分配情報として処理分配情報記憶手段に格納する実行先決定手段と、
前記端末装置に対して、前記実行先決定手段で前記端末装置に分配された処理の種別を通知し、前記サーバ検出手段で検出された前記サーバに対して、前記実行先決定手段で前記サーバに分配された処理の種別を通知する役割指示手段と、
を有することを特徴とするネットワークゲーム装置。
(付記9) ネットワークを介して、コンピュータゲームを提供する為のネットワークゲームプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータに、
端末装置種別取得手段が、端末装置から、ゲームへの参加要求を受信すると、前記端末装置から端末装置種別の情報を取得し、
サーバ検出手段が、前記端末装置までの通信経路に存在するサーバを検出し、
実行先決定手段が、多段階の処理で構成されるゲーム画像生成処理において、各段階の実行先決定方針が少なくとも前記端末装置種別毎に定義されている実行先定義情報に従って、各段階の処理の実行先を決定し、決定した内容を処理分配情報として処理分配情報記憶手段に格納し、
役割指示手段が、前記端末装置に対して、前記実行先決定手段で前記端末装置に分配された処理の種別を通知し、前記サーバ検出手段で検出された前記サーバに対して、前記実行先決定手段で前記サーバに分配された処理の種別を通知する、
処理を実行させることを特徴とするネットワークゲームプログラムを記録したコンピュータ読み取り可能な記録媒体。
本発明の概念図である。 ネットワークゲームシステムの概念図である。 センタサーバの機能を示す図である。 非センタサーバと端末装置との機能を示す図である。 ゲーム進行管理部を示す図である。 画像処理部を示す図である。 図6の理解を進める図である。 画像送信部を示す図である。 画像受信部を示す図である。 実行先決定部の処理結果の第1の例を示す図である。 実行先決定部の処理結果の第2の例を示す図である。 実行先決定部の処理結果の第3の例を示す図である。 実行先決定部の処理結果の第4の例を示す図である。 実行先決定部の処理結果の第5の例を示す図である。 実行先決定部の処理結果の第6の例を示す図である。 実行先決定部の処理結果の第7の例を示す図である。 ネットワーク経由でデータを転送する場合の例を示す図である。(A)は端末装置が高性能端末の場合であり、(B)は端末装置が中性能端末の場合であり、(C)は、端末装置が低性能端末の場合である。 PCが端末の場合の概念図である。 STBが端末の場合の概念図である。 ゲーム機が端末の場合の概念図である。 処理実行先決定部の処理であり、ゲーム開始前の処理を示すフローチャートである。 図11におけるゲーム進行管理部の具体的なゲーム開始後の処理を示すフローチャートの前半である。 図11におけるゲーム進行管理部の具体的なゲーム開始後の処理を示すフローチャートの後半である。 本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
符号の説明
1 センタサーバ
2 端末装置
3 非センタサーバ
4 参加要求
1a 端末装置種別取得手段
1b 実行先定義情報データベース
1c 実行先決定手段
1d 処理分配情報
1e サーバ検出手段
1f 処理分配情報記憶手段
1g 役割指示手段
1h ゲーム進行管理手段

Claims (5)

  1. ネットワークを介して、コンピュータゲームを提供する為のネットワークゲーム制御方法において、
    端末装置種別取得手段が、端末装置から、ゲームへの参加要求を受信すると、前記端末装置から端末装置種別の情報を取得し、
    サーバ検出手段が、前記端末装置までの通信経路に存在するサーバを検出し、
    実行先決定手段が、多段階の処理で構成されるゲーム画像生成処理において、各段階の実行先決定方針が少なくとも前記端末装置種別毎に定義されている実行先定義情報に従って、各段階の処理の実行先を決定し、決定した内容を処理分配情報として処理分配情報記憶手段に格納し、
    役割指示手段が、前記端末装置に対して、前記実行先決定手段で前記端末装置に分配された処理の種別を通知し、前記サーバ検出手段で検出された前記サーバに対して、前記実行先決定手段で前記サーバに分配された処理の種別を通知する、
    ことを特徴とするネットワークゲーム制御方法。
  2. ゲーム進行管理手段が、前記ゲームのオブジェクトの動作指示を検出すると、前記ゲームに関係している前記端末装置及び前記サーバの前記処理分配情報を参照し、前記動作指示に関係する前記ゲーム画像生成処理のうち、他の装置に分配しないと判断された処理を実行し、生成されたデータを、前記端末装置までの通信経路を介して送信することを特徴とする請求項1記載のネットワークゲーム制御方法。
  3. 前記実行先決定手段は、装置間の前記通信経路の回線帯域に応じて、各段階の処理の実行先を決定することを特徴とする請求項1記載のネットワークゲーム制御方法。
  4. ネットワークを介して、コンピュータゲームを提供する為のネットワークゲームプログラムにおいて、
    コンピュータに、
    端末装置種別取得手段が、端末装置から、ゲームへの参加要求を受信すると、前記端末装置から端末装置種別の情報を取得し、
    サーバ検出手段が、前記端末装置までの通信経路に存在するサーバを検出し、
    実行先決定手段が、多段階の処理で構成されるゲーム画像生成処理において、各段階の実行先決定方針が少なくとも前記端末装置種別毎に定義されている実行先定義情報に従って、各段階の処理の実行先を決定し、決定した内容を処理分配情報として処理分配情報記憶手段に格納し、
    役割指示手段が、前記端末装置に対して、前記実行先決定手段で前記端末装置に分配された処理の種別を通知し、前記サーバ検出手段で検出された前記サーバに対して、前記実行先決定手段で前記サーバに分配された処理の種別を通知する、
    処理を実行させることを特徴とするネットワークゲームプログラム。
  5. ネットワークを介して、コンピュータゲームを提供する為のネットワークゲーム装置において、
    端末装置から、ゲームへの参加要求を受信すると、前記端末装置から端末装置種別の情報を取得する端末装置種別取得手段と、
    前記端末装置までの通信経路に存在するサーバを検出するサーバ検出手段と、
    多段階の処理で構成されるゲーム画像生成処理において、各段階の実行先決定方針が少なくとも前記端末装置種別毎に定義されている実行先定義情報に従って、各段階の処理の実行先を決定し、決定した内容を処理分配情報として処理分配情報記憶手段に格納する実行先決定手段と、
    前記端末装置に対して、前記実行先決定手段で前記端末装置に分配された処理の種別を通知し、前記サーバ検出手段で検出された前記サーバに対して、前記実行先決定手段で前記サーバに分配された処理の種別を通知する役割指示手段と、
    を有することを特徴とするネットワークゲーム装置。
JP2004196671A 2004-07-02 2004-07-02 ネットワークゲーム制御方法及びネットワークゲームプログラム Pending JP2006014981A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004196671A JP2006014981A (ja) 2004-07-02 2004-07-02 ネットワークゲーム制御方法及びネットワークゲームプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004196671A JP2006014981A (ja) 2004-07-02 2004-07-02 ネットワークゲーム制御方法及びネットワークゲームプログラム

Publications (1)

Publication Number Publication Date
JP2006014981A true JP2006014981A (ja) 2006-01-19

Family

ID=35789730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004196671A Pending JP2006014981A (ja) 2004-07-02 2004-07-02 ネットワークゲーム制御方法及びネットワークゲームプログラム

Country Status (1)

Country Link
JP (1) JP2006014981A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10659304B2 (en) 2015-07-02 2020-05-19 Fujitsu Limited Method of allocating processes on node devices, apparatus, and storage medium
JP2020520203A (ja) * 2017-04-21 2020-07-02 ゼニマックス メディア インク.Zenimax Media Inc. ビデオエンコードの延期されたポストプロセスのためのシステムおよび方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001252475A (ja) * 2000-03-08 2001-09-18 Dolphin Net Kk ネットワークゲーム仲介装置およびその方法、記録媒体、ネットワークゲーム運営方法、ネットワークゲーム創作支援装置およびその方法
JP2002077864A (ja) * 2000-08-31 2002-03-15 Csk Sogo Kenkyusho:Kk 映像・音声情報再生方法およびシステム
JP2002355444A (ja) * 2001-03-27 2002-12-10 Konami Co Ltd ネットワークサーバシステムにおけるゲーム用データの送受信方法、ネットワークサーバシステム、及びプログラム
JP2003062350A (ja) * 2001-08-30 2003-03-04 Sony Corp ネットワークゲームシステム、ネットワークゲームサーバ装置、及びネットワークゲーム端末装置
JP2003340163A (ja) * 2002-05-31 2003-12-02 Konami Computer Entertainment Studios Inc ビデオゲームシステム、データ送信制御プログラム及びデータ送信制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001252475A (ja) * 2000-03-08 2001-09-18 Dolphin Net Kk ネットワークゲーム仲介装置およびその方法、記録媒体、ネットワークゲーム運営方法、ネットワークゲーム創作支援装置およびその方法
JP2002077864A (ja) * 2000-08-31 2002-03-15 Csk Sogo Kenkyusho:Kk 映像・音声情報再生方法およびシステム
JP2002355444A (ja) * 2001-03-27 2002-12-10 Konami Co Ltd ネットワークサーバシステムにおけるゲーム用データの送受信方法、ネットワークサーバシステム、及びプログラム
JP2003062350A (ja) * 2001-08-30 2003-03-04 Sony Corp ネットワークゲームシステム、ネットワークゲームサーバ装置、及びネットワークゲーム端末装置
JP2003340163A (ja) * 2002-05-31 2003-12-02 Konami Computer Entertainment Studios Inc ビデオゲームシステム、データ送信制御プログラム及びデータ送信制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
中村聖司: ""東京ゲームショウ2003レポート スクウェア・エニックス、オンライン戦略発表会を開催「フロントミッショ", GAME WATCH, JPN6009048524, 26 September 2003 (2003-09-26), JP, ISSN: 0001421965 *
北村孝和: ""CRI、マルチプラットフォーム通信対戦に対応DC「エアロダンシングi 次回作まで待てませ〜ん」"", GAME WATCH, JPN6009048522, 21 June 2001 (2001-06-21), JP, ISSN: 0001421964 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10659304B2 (en) 2015-07-02 2020-05-19 Fujitsu Limited Method of allocating processes on node devices, apparatus, and storage medium
JP2020520203A (ja) * 2017-04-21 2020-07-02 ゼニマックス メディア インク.Zenimax Media Inc. ビデオエンコードの延期されたポストプロセスのためのシステムおよび方法
JP7077396B2 (ja) 2017-04-21 2022-05-30 ゼニマックス メディア インク. ビデオエンコードの延期されたポストプロセスのためのシステムおよび方法
US11778199B2 (en) 2017-04-21 2023-10-03 Zenimax Media Inc. Systems and methods for deferred post-processes in video encoding

Similar Documents

Publication Publication Date Title
US11943281B2 (en) Systems and methods for using a distributed game engine
WO2022100522A1 (zh) 一种视频编码方法、视频解码方法、装置、电子设备、存储介质及计算机程序产品
TWI536806B (zh) 使用多個編碼格式之多串流視訊壓縮之系統及方法
US9455931B2 (en) Load balancing between processors
TWI545938B (zh) 臨時解碼器裝置及方法
TWI558109B (zh) 基於來自用戶端器件之反饋資訊來壓縮視訊圖框或其部分之方法及系統
TWI528832B (zh) 使用包括與成功接收視訊內容相關之資料之反饋的視訊壓縮方法及系統
TWI536805B (zh) 使用一選定影像塊及影像塊旋轉圖案於視訊編碼之系統與方法
KR101503963B1 (ko) 웹 페이지 전달의 가속을 위한 시스템
TW201119403A (en) System and method for compressing video based on latency measurements and other feedback
TW201119400A (en) System and method for selecting a video encoding format based on feedback data
US20110077085A1 (en) Apparatus and Method to Transition Between a Media Presentation and a Virtual Environment
KR20100111668A (ko) 기록된 비디오 세그먼트와 통합된 스트리밍 인터랙티브 비디오
KR20100106448A (ko) 어플리케이션 스트리밍 인터랙티브 비디오 출력과 기록된 어플리케이션 상태를 결합하기 위한 시스템
KR20100115732A (ko) 실시간 스트리밍 인터랙티브 비디오의 다수의 시점을 결합하기 위한 시스템
KR20100113497A (ko) 시스템 오류에 선행해서 기록된 비디오를 리포팅하기 위한 시스템
KR20100101637A (ko) 스트리밍 인터랙티브 비디오의 반복적 재조합을 위한 시스템
TW201119402A (en) System and method for utilizing forward error correction with video compression
KR20100114881A (ko) 스트리밍 인터랙티브 비디오 클라이언트 장치
KR20100103547A (ko) 통신 채널의 검출된 전송률에 기초하여 비디오를 압축하기 위한 시스템 및 방법
KR20100098674A (ko) 비디오를 압축하기 위한 타일 기반 시스템 및 방법
KR20100113503A (ko) 어플리케이션 호스팅 센터 내에 프로그램 코드 및 데이터를 저장하기 위한 시스템 및 방법
JP2022525414A (ja) 分散型ゲームエンジンを使用して状態を予測するシステム及び方法
KR20100121598A (ko) 통신 채널을 통한 패킷 손실의 초래를 감소시키기 위한 비디오 압축 시스템 및 방법
KR20100112567A (ko) 검출된 인트라프레임 동작 또는 장면 복잡성에 기초하여 타일 크기를 조정함으로써 비디오를 압축하기 위한 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070702

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100209