(57)【特許請求の範囲】
【請求項１】
クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、該命令サーバから受信した前記描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバとを有する描画システムであって、
前記命令サーバは、
対象クライアント端末から画面送信要求を受信する要求受信手段と、
前記対象クライアント端末に提供される画面に係る演算処理を実行し、前記描画命令に係る情報を生成する生成手段と、
前記命令サーバに関連付けられた複数の前記描画サーバのうち、前記描画命令に係る情報に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、前記描画命令に係る情報及び画面の送信先である前記対象クライアント端末を示す送信先情報を送出する送出手段と、を有し、
前記描画サーバは、
画面の描画に使用する描画リソースを格納する格納手段と、
前記送出手段により送出された前記描画命令に係る情報に基づいて、前記格納手段から必要な描画リソースのうちまだ展開されていない描画リソースを読み出し、展開領域に展開して保持する展開手段と、
前記展開領域に保持されている描画リソースを使用し、前記描画命令に係る情報に基づいて画面の描画を行う描画手段と、
前記送信先情報に基づいて、前記描画手段により描画された画面を前記対象クライアント端末に送信する画面送信手段と、を有する
ことを特徴とする描画システム。
【請求項２】
前記命令サーバは、前記対象クライアント端末が存在する地域を特定する特定手段をさらに有し、
前記送出手段は、前記特定手段により特定された地域に対応する地域に存在する複数の前記描画サーバのうち、前記必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、前記描画命令に係る情報及び前記送信先情報を送出する
ことを特徴とする請求項１に記載の描画システム。
【請求項３】
前記送出手段は、前記特定手段により特定された地域に最も近い地域に存在する前記必要な描画リソースのうちの少なくとも一部を展開している描画サーバに前記描画命令に係る情報及び前記送信先情報を送出することを特徴とする請求項２に記載の描画システム。
【請求項４】
前記命令サーバは、前記対象クライアント端末が存在する地域を特定する特定手段をさらに有し、
前記送出手段は、前記特定手段により特定された地域に対応する複数の地域のうち、各々の地域に存在する複数の前記描画サーバの動作状況に基づいて決定された１つの地域に存在する複数の前記描画サーバから、前記必要な描画リソースのうちの少なくとも一部を展開している描画サーバを選択して、前記描画命令に係る情報及び前記送信先情報を送出する
ことを特徴とする請求項１に記載の描画システム。
【請求項５】
前記対応する地域に存在する複数の前記描画サーバは、各々異なる描画リソースを前記展開領域に保持することを特徴とする請求項２乃至４のいずれか１項に記載の描画システム。
【請求項６】
前記画面は、シーンごとに異なる描画リソースを使用して描画される所定のゲームに係るゲーム画面であり、
前記描画命令に係る情報は、前記ゲーム画面に対応するシーンの情報を含み、
前記対応する地域に存在する複数の前記描画サーバは、それぞれ前記ゲームの異なるシーンの描画を行うように予め割り当てられ、
前記送出手段は、前記描画命令に係る情報に含まれる前記シーンの情報を参照して、対応する描画サーバに該描画命令に係る情報及び前記送信先情報を送信する
ことを特徴とする請求項２乃至５のいずれか１項に記載の描画システム。
【請求項７】
前記送出手段は、前記必要な描画リソースのうちの少なくとも一部を展開している複数の前記描画サーバのうち、動作状況に基づいて決定された１つの描画サーバに、前記描画命令に係る情報及び前記送信先情報を送出することを特徴とする請求項１乃至６のいずれか１項に記載の描画システム。
【請求項８】
前記描画サーバの動作状況は、接続端末数、平均伝送レート、ＧＰＵ稼働率、輻輳状況、及び伝送路の長さの少なくともいずれかにより評価されることを特徴とする請求項４または７に記載の描画システム。
【請求項９】
クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、前記描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバと、前記命令サーバから受信した前記描画命令に係る情報を前記描画サーバに送信する中継装置と、を有する描画システムであって、
前記命令サーバは、
対象クライアント端末から画面送信要求を受信する要求受信手段と、
前記対象クライアント端末に提供される画面に係る演算処理を実行し、前記描画命令に係る情報を生成する生成手段と、
前記対象クライアント端末が存在する地域を特定する特定手段と、
前記特定手段により特定された地域に対応する地域に存在する前記中継装置に、前記生成手段により生成された前記描画命令に係る情報及び画面の送信先である前記対象クライアント端末を示す送信先情報を送出する送出手段と、を有し、
前記中継装置は、
前記送出手段により送出された前記描画命令に係る情報及び前記送信先情報を受信する命令受信手段と、
前記描画命令に係る情報を参照し、該中継装置に関連付けられた複数の前記描画サーバのうち、該描画命令に係る情報に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、前記描画命令に係る情報及び前記送信先情報を送信する送信手段と、を有し、
前記描画サーバは、
画面の描画に使用する描画リソースを格納する格納手段と、
前記送信手段により送信された前記描画命令に係る情報に基づいて、前記格納手段から必要な描画リソースのうちまだ展開されていない描画リソースを読み出し、展開領域に展開して保持する展開手段と、
前記展開領域に保持されている描画リソースを使用し、前記描画命令に係る情報に基づいて画面の描画を行う描画手段と、
前記送信先情報に基づいて、前記描画手段により描画された画面を前記対象クライアント端末に送信する画面送信手段と、を有する
ことを特徴とする描画システム。
【請求項１０】
前記送出手段は、前記特定手段により特定された地域に最も近い地域に存在する前記中継装置に前記描画命令に係る情報及び前記送信先情報を送出することを特徴とする請求項９に記載の描画システム。
【請求項１１】
前記中継装置に関連付けられた複数の前記描画サーバは、各々異なる描画リソースを前記展開領域に保持することを特徴とする請求項９または１０に記載の描画システム。
【請求項１２】
前記画面は、シーンごとに異なる描画リソースを使用して描画される所定のゲームに係るゲーム画面であり、
前記描画命令に係る情報は、前記ゲーム画面に対応するシーンの情報を含み、
前記中継装置に関連付けられた複数の前記描画サーバは、それぞれ前記ゲームの異なるシーンの描画を行うように予め割り当てられ、
前記送信手段は、前記描画命令に係る情報に含まれる前記シーンの情報を参照して、対応する描画サーバに該描画命令に係る情報及び前記送信先情報を送信する
ことを特徴とする請求項９乃至１１のいずれか１項に記載の描画システム。
【請求項１３】
前記命令サーバは、前記対象クライアント端末において入力された操作入力に係る情報を受信する操作受信手段をさらに備え、
前記生成手段は、前記操作受信手段により受信された前記操作入力に係る情報に基づいて、前記画面に係る演算処理を実行する
ことを特徴とする請求項１乃至１２のいずれか１項に記載の描画システム。
【請求項１４】
クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、画面の描画に使用する描画リソースを格納する格納手段を有し、該命令サーバから受信した前記描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバとを有する描画システムの制御方法であって、
前記命令サーバは、
対象クライアント端末から画面送信要求を受信する要求受信工程と、
前記対象クライアント端末に提供される画面に係る演算処理を実行し、前記描画命令に係る情報を生成する生成工程と、
前記命令サーバに関連付けられた複数の前記描画サーバのうち、前記描画命令にかかる情報に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、前記描画命令に係る情報及び画面の送信先である前記対象クライアント端末を示す送信先情報を送出する送出工程と、を有し、
前記描画サーバは、
前記送出工程において送出された前記描画命令に係る情報に基づいて、前記格納手段から必要な描画リソースのうちまだ展開されていない描画リソースを読み出し、展開領域に展開して保持する展開工程と、
前記展開領域に保持されている描画リソースを使用し、前記描画命令に係る情報に基づいて画面の描画を行う描画工程と、
前記送信先情報に基づいて、前記描画工程において描画された画面を前記対象クライアント端末に送信する画面送信工程と、を有する
ことを特徴とする描画システムの制御方法。
【請求項１５】
クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、画面の描画に使用する描画リソースを格納する格納手段を有し、前記描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバと、前記命令サーバから受信した前記描画命令に係る情報を前記描画サーバに送信する中継装置と、を有する描画システムの制御方法であって、
前記命令サーバは、
対象クライアント端末から画面送信要求を受信する要求受信工程と、
前記対象クライアント端末に提供される画面に係る演算処理を実行し、前記描画命令に係る情報を生成する生成工程と、
前記対象クライアント端末が存在する地域を特定する特定工程と、
前記特定工程において特定された地域に対応する地域に存在する前記中継装置に、前記生成工程において生成された前記描画命令に係る情報及び画面の送信先である前記対象クライアント端末を示す送信先情報を送出する送出工程と、を有し、
前記中継装置は、
前記送出工程において送出された前記描画命令に係る情報及び前記送信先情報を受信する命令受信工程と、
前記描画命令に係る情報を参照し、該中継装置に関連付けられた複数の前記描画サーバのうち、該描画命令に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、前記描画命令に係る情報及び前記送信先情報を送信する送信工程と、を有し、
前記描画サーバは、
前記送信工程において送信された前記描画命令に係る情報に基づいて、前記格納手段から必要な描画リソースのうちまだ展開されていない描画リソースを読み出し、展開領域に展開して保持する展開工程と、
前記展開領域に保持されている描画リソースを使用し、前記描画命令に係る情報に基づいて画面の描画を行う描画工程と、
前記送信先情報に基づいて、前記描画工程において描画された画面を前記対象クライアント端末に送信する画面送信工程と、を有する
ことを特徴とする描画システムの制御方法。
【請求項１６】
１以上のコンピュータを、請求項１乃至１３のいずれか１項に記載の描画システムの各手段として機能させるためのプログラム。
【請求項１７】
請求項１６に記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画システム、制御方法、プログラム、及び記録媒体に関し、特にサーバ側で描画した画面をクライアント端末に提供する技術に関する。
【背景技術】
【０００２】
近年の通信技術の発展により、インターネット等のネットワーク通信を利用した様々なサービス提供がなされている。ユーザはＰＣや携帯電話等のクライアント端末をサーバに接続させることで、サーバからこのようなサービスに係るデータをネットワークを介して受信することができる。例えばユーザは、所謂ネットワークゲームのようなエンタテインメント性の高いコンテンツの提供を受けることができる。【０００３】
ネットワークゲームの１つに、ＭＭＯＲＰＧ（Massively Multiplayer Online Role-Playing Game）等の多人数同時参加型のネットワークゲームがある。このような多人数同時参加型のネットワークゲームでは、ユーザは使用するクライアント端末を、ゲームを提供するサーバに接続させることで、該サーバ機器に接続されているクライアント端末を使用するユーザとの対戦プレイや協力プレイを行うことができる。【０００４】
一般的な多人数参加型のネットワークゲームでは、クライアント端末はサーバとの間でゲームに係る処理に必要なデータの送受信を行い、受信したデータに基づいてゲーム画面を描画して接続された表示装置に表示する。具体的にはクライアント端末からサーバへはクライアント端末においてなされた操作入力の情報等が送信され、サーバにおいて管理される各参加ユーザの状態更新等の処理に使用される。また、サーバからクライアント端末へは、状態更新等の処理により生成された描画キャラクタの位置等のステータスやチャットのテキストデータ等、ゲーム画面の描画に必要なデータが送信される。描画されたゲーム画面が表示されることで、ユーザはネットワークゲームをプレイすることができる。【０００５】
しかしながら、このようなクライアント端末で描画処理を行うネットワークゲームの中には、クライアント端末が十分な描画性能を有していることを要求するものがある。例えば写実的な３Ｄグラフィックス等の美麗なグラフィックスで表現されたゲーム画面を提供するゲームの実行には、十分な描画性能が要求される。具体的には、ゲーム画面の描画を行うためにクライアント端末が有する描画チップ等が必要な描画演算を実行するための演算能力を有していること、またそもそも美麗なグラフィックスに使用されるテクスチャ等のリソースデータを展開するためのＧＰＵメモリを有していることが要求される。しかしながら、このような高い描画演算能力や大容量のＧＰＵメモリを有している描画ハードウェアは高価であり、所有しているユーザは当然限られる。故に、ユーザがこのようなネットワークゲームサービスを利用を開始するためのハードルとなり、結果的にサービスの利用者を増加させることが困難になる可能性がある。【０００６】
一方で、通信技術が発展したことによる新たなサービス提供を行う技術として、ゲーム画面の描画をサーバが行い、サーバからクライアント端末に対してゲーム画面を提供する技術が存在する。特許文献１には、サーバにおいて描画されたゲーム画面をストリーミング形式でクライアント端末に送信する、所謂クラウド型のネットワークゲームサービスの技術が開示されている。このようなゲームサービスによれば、ユーザが使用するクライアント端末の描画性能に依らず、美麗なグラフィックスで表現されたゲーム画面を、ユーザに提供することが可能である。即ち、クライアント端末は、ネットワークを介してストリーミング形式で送信されたゲーム画面を受信して表示装置に表示する能力と、クライアント端末においてなされた操作入力の情報をサーバに送信する能力さえ有していれば、専用装置の導入コストをかけることなくゲームサービスの提供を受けることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００９／１３８８７８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、特許文献１のようなネットワークゲームサービスでは、同時にサービス利用する複数のクライアント端末に対して同時にゲーム画面の生成及び送信を行うことが考えられる。このため、クライアント端末に送信するゲーム画面を生成するために、複数の描画サーバが設けられる実装が考えられる。即ち、サーバに画面送信要求を行ったクライアント端末の各々に対して、複数の描画サーバのうち、例えば割り当てられている端末数が最も少ない等の１つの描画サーバが割り当てられ、該クライアント端末に送信するゲーム画面の描画を行う。【０００９】
しかしながら、描画されるゲーム画面は、ゲームの種類、描画するゲーム内のシーン、ユーザの設定等によって描画処理に要する演算量が異なる。従って、単に接続する端末数に応じて割り当てを行うような従来の方式では、描画サーバの演算リソースの効率化を何ら考慮するものでないため、例えば演算量の多いゲーム画面を要求するクライアント端末に係る描画処理を多数割り当てられた描画サーバにおいて処理遅延が発生しうる。つまり、これまで描画処理の効率化の観点に基づいてクライアント端末に対する描画サーバの割り当てを行うまではなかった。【００１０】
本発明は、上述の問題点に鑑みてなされたものであり、クライアント端末に送信する画面に係る描画処理の演算量を好適に低減する描画システム、制御方法、プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述の目的を達成するために、本発明の一態様に係る描画システムは、以下の構成を備えることを特徴とする。具体的には描画システムは、クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、該命令サーバから受信した描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバとを有する描画システムであって、命令サーバは、対象クライアント端末から画面送信要求を受信する要求受信手段と、対象クライアント端末に提供される画面に係る演算処理を実行し、描画命令に係る情報を生成する生成手段と、命令サーバに関連付けられた複数の描画サーバのうち、描画命令に係る情報に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、描画命令に係る情報及び画面の送信先である対象クライアント端末を示す送信先情報を送出する送出手段と、を有し、描画サーバは、画面の描画に使用する描画リソースを格納する格納手段と、送出手段により送出された描画命令に係る情報に基づいて、格納手段から必要な描画リソースのうちまだ展開されていない描画リソースを読み出し、展開領域に展開して保持する展開手段と、展開領域に保持されている描画リソースを使用し、描画命令に係る情報に基づいて画面の描画を行う描画手段と、送信先情報に基づいて、描画手段により描画された画面を対象クライアント端末に送信する画面送信手段と、を有することを特徴とする。【００１２】
前述の目的を達成するために、本発明の別の態様に係る描画システムは、以下の構成を備えることを特徴とする。具体的には描画システムは、クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバと、命令サーバから受信した描画命令に係る情報を描画サーバに送信する中継装置と、を有する描画システムであって、命令サーバは、対象クライアント端末から画面送信要求を受信する要求受信手段と、対象クライアント端末に提供される画面に係る演算処理を実行し、描画命令に係る情報を生成する生成手段と、対象クライアント端末が存在する地域を特定する特定手段と、特定手段により特定された地域に対応する地域に存在する中継装置に、生成手段により生成された描画命令に係る情報及び画面の送信先である対象クライアント端末を示す送信先情報を送出する送出手段と、を有し、中継装置は、送出手段により送出された描画命令に係る情報及び送信先情報を受信する命令受信手段と、描画命令に係る情報を参照し、該中継装置に関連付けられた複数の描画サーバのうち、該描画命令に係る情報に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、描画命令に係る情報及び送信先情報を送信する送信手段と、を有し、描画サーバは、画面の描画に使用する描画リソースを格納する格納手段と、送信手段により送信された描画命令に係る情報に基づいて、格納手段から必要な描画リソースのうちまだ展開されていない描画リソースを読み出し、展開領域に展開して保持する展開手段と、展開領域に保持されている描画リソースを使用し、描画命令に係る情報に基づいて画面の描画を行う描画手段と、送信先情報に基づいて、描画手段により描画された画面を対象クライアント端末に送信する画面送信手段と、を有することを特徴とする。
【発明の効果】
【００１３】
このような構成により本発明によれば、クライアント端末に送信する画面に係る描画処理の演算量を好適に低減することが可能となる。【００１４】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１５】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る描画システムのシステム構成を示した図
【図２】本発明の実施形態１に係る命令サーバ１００の機能構成を示した図
【図３】本発明の実施形態に係る描画サーバ３００の機能構成を示した図
【図４】本発明の実施形態１に係る描画システムにおいて実行される画面提供処理を例示したフローチャート
【図５】本発明の実施形態に係る描画命令に係る情報を説明するための図
【図６】本発明の実施形態２に係る描画システムのシステム構成を示した図
【図７】本発明の実施形態２に係る命令サーバ１００の機能構成を示した図
【図８】本発明の実施形態２に係る描画システムにおいて実行される画面提供処理を例示したフローチャート
【図９】本発明の実施形態３に係る描画システムのシステム構成を示した図
【図１０】本発明の実施形態３に係る命令サーバ１００の機能構成を示した図
【図１１】本発明の実施形態３に係る中継装置２００の機能構成を示した図
【図１２】本発明の実施形態３に係る描画システムにおいて実行される画面提供処理を例示したフローチャート
【発明を実施するための形態】
【００１６】
［実施形態１］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。以下に説明する一実施形態は、描画システムの一例としての、ネットワークを介してクライアント端末から受信した画面要求に応じてゲーム画面を描画し、得られたゲーム画面をネットワークを介してストリーミング形式でクライアント端末に送信するゲームシステムに、本発明を適用した例を説明する。しかし、本発明は、ゲームに限らず、クライアント端末からの要求に従って画面の描画を行い、得られた画面をクライアント端末に送信することが可能な任意の機器及びシステムに適用可能である。
【００１７】
《描画システムの構成》
図１は、本発明の実施形態１に係る描画システムのシステム構成を示した図である。本実施形態の描画システムでは、各クライアント端末４００から受信した要求に応じてゲーム画面を描画し、該クライアント端末４００に送信する。
【００１８】
まず、ユーザ等の操作により１つのクライアント端末４００からネットワーク５００を介してゲーム画面の提供要求が命令サーバ１００になされると、命令サーバ１００は、提供するゲーム画面に係る演算処理を実行し、ゲーム画面の描画命令に係る情報を生成する。
【００１９】
また、命令サーバ１００には複数の描画サーバ３００が接続されており、命令サーバ１００はゲーム画面の提供要求を受信した１つのクライアント端末４００に対して、このうちの１つの描画サーバ３００をゲーム画面の描画処理を行うサーバに割り当てる。命令サーバ１００と描画サーバ３００とは、命令サーバ１００とクライアント端末４００間と同様にネットワーク５００を介して接続してもよいし、命令サーバ１００と描画サーバ３００とは所定のローカルネットワーク内で接続するものであってもよい。
【００２０】
描画サーバ３００の詳細な処理については後述するが、描画サーバ３００の各々には、ゲーム画面の生成に必要な描画リソース（モデルデータ、テクスチャデータ、画面効果等を実現する描画プログラム等）が格納されており、描画サーバ３００では該リソースを展開して使用しながらゲーム画面の描画が行われる。
【００２１】
以下、このようなシステム構成を有する本実施形態のゲームシステムの各装置について、ブロック図を示してその機能構成を説明する。以下の説明では複数の装置で使用される同様のハードウェアについて、装置間でそれらのハードウェアを区別するために命令サーバ１００、描画サーバ３００のそれぞれに対して「命令」、「描画」の接頭文字を付して説明する。しかしながら、これらの接頭文字は単に装置間でハードウェアの識別のために付すものであり、本実施形態の記載においては該ハードウェアの機能や動作を特定するために使用されるものではない。
【００２２】
〈命令サーバ１００の構成〉
図２は、本実施形態の描画システムに係る命令サーバ１００の機能構成を示したブロック図である。
【００２３】
命令ＣＰＵ１０１は、命令サーバ１００が有する各ブロックの動作を制御する。具体的には命令ＣＰＵ１０１は、命令ＲＯＭ１０２に格納された各ブロックの動作プログラムやアプリケーション等のプログラムを読み出し、命令ＲＡＭ１０３に展開して実行することにより各ブロックの動作を制御する。また命令ＣＰＵ１０１は、クライアント端末４００に対して画面を提供するゲームに係る必要な演算処理を実行し、ゲーム画面の描画を指示する描画命令に係る情報を生成する。
【００２４】
命令ＲＯＭ１０２は、例えば不揮発性メモリ等の恒久的にデータを記録する記録装置である。命令ＲＯＭ１０２は、命令サーバ１００が有する各ブロックの動作プログラムだけでなく、各ブロックの動作において使用されるパラメータ等の情報を格納する。また命令ＲＡＭ１０３は、揮発性メモリである。命令ＲＡＭ１０３は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データの格納領域として、あるいは各ブロックの処理を行うための作業領域としても用いられる。
【００２５】
命令通信部１０４は、命令サーバ１００が有する外部装置との通信インタフェースである。本実施形態では命令通信部１０４は、クライアント端末４００から画面送信要求やクライアント端末４００においてなされた操作入力の情報を受信する。また命令通信部１０４は、命令サーバ１００に接続されている描画サーバ３００の各々から、該描画サーバ３００のＧＰＵメモリ３０６に展開されている描画リソースの情報を受信する。また命令通信部１０４は、クライアント端末４００に対してゲーム画面の生成及び送信を行わせる描画サーバ３００に対して、生成した描画命令に係る情報と、ゲーム画面の送信先であるクライアント端末４００を特定するための情報（送信先情報）とを送信する。
【００２６】
命令展開把握部１０５は、接続されている描画サーバ３００の各々から受信したＧＰＵメモリ３０６に展開されている描画リソースの情報を、該描画サーバ３００の識別情報に関連付けて管理する。本実施形態では命令ＣＰＵ１０１は、描画命令により描画されるゲーム画面について、使用される描画リソースが既にＧＰＵメモリ３０６に展開されている描画サーバ３００に対してゲーム画面の描画を割り当てる。これは、ＧＰＵメモリ３０６に展開されている描画リソースを再利用することで、描画処理の効率化が図れることに基づく。
【００２７】
ゲーム画面の描画に使用する描画リソースはＨＤＤやゲームソフトＲＯＭ等の一般的な記録装置に記録されているが、このような記録装置は頻繁なアクセスに不向きであり、描画処理において都度記録装置からデータ読み出しを行うことは非効率的である。そこで、描画リソースは通常、該記録装置から読み出されてＧＰＵメモリ３０６等の展開領域に展開され、高速なデータアクセスが可能なように保持される。ＧＰＵメモリ３０６は後述のＧＰＵ３０５からの高速アクセスが可能なように構成されるため、展開された描画リソースが描画処理に使用されることで、ＧＰＵ３０５による描画処理を効率化することができる。一般に、ゲーム進行において同一シーンをプレイしている間は、連続しているフレームにおいてゲーム画面に含まれる描画オブジェクトの分布は変化が少ないといえる。即ち、例えば前のフレームに係る描画処理において既にＧＰＵメモリ３０６に描画リソースが展開されていたのであれば、次のフレームに係る描画処理において、該描画リソースを再利用できる可能性が高い。また、特に本実施形態の描画システムのように複数のクライアント端末４００が同一のゲームコンテンツをプレイできるようなサービス提供が行われる場合、複数のクライアント端末４００に対して同一のシーンに係るゲーム画面の送信がなされる可能性がある。このような場合にも、ＧＰＵメモリ３０６に一度展開された描画リソースは再利用できる可能性が高い。つまり、同一の描画リソースを使用するようなゲーム画面の描画は、同一の描画サーバ３００に割り当てることで効率化を図ることができる。
【００２８】
具体的には命令展開把握部１０５は、管理している情報に基づいて、要求された描画リソースがＧＰＵメモリ３０６に展開されている描画サーバ３００を特定した情報を出力する。そして命令ＣＰＵ１０１は、該出力された情報に基づいて描画サーバ３００の決定を行うことで、描画システムにおけるゲーム画面描画の効率化を図ることができる。
【００２９】
本実施形態では描画サーバ３００から命令サーバ１００に対してＧＰＵメモリ３０６に展開されている描画リソースの情報が送信され、命令展開把握部１０５が該情報に基づいて描画命令に対応する描画リソースが既に展開されている描画サーバ３００を特定するものとして説明するが、本発明の実施はこれに限られるものではない。例えば接続されている複数の描画サーバ３００に対して、特にデータ量の多いテクスチャデータ等、ゲーム画面の生成に使用する描画リソースの各々についてＧＰＵメモリ３０６への展開を行う描画サーバ３００が予め定められている場合、展開されている描画リソースの情報が命令サーバ１００に送信される必要はない。この場合、命令ＣＰＵ１０１が、予め定められた描画サーバ３００の情報に基づいて描画命令に係る情報を送信する描画サーバ３００を決定してよい。例えば、命令ＣＰＵ１０１は描画命令に係る情報から生成するゲーム画面に係るシーンの情報を取得し、該シーンに対応する描画リソースの展開が予め割り当てられている描画サーバ３００に、ゲーム画面の描画を割り当てればよい。
【００３０】
〈描画サーバ３００の構成〉
図３は、本実施形態の描画システムに係る描画サーバ３００の機能構成を示したブロック図である。
【００３１】
描画ＣＰＵ３０１は、描画サーバ３００が有する各ブロックの動作を制御する。具体的には描画ＣＰＵ３０１は、描画ＲＯＭ３０２に格納された各ブロックの動作プログラムを読み出し、描画ＲＡＭ３０３に展開して実行することにより各ブロックの動作を制御する。
【００３２】
描画ＲＯＭ３０２は、例えば不揮発性メモリ等の恒久的にデータを記録する記録装置である。描画ＲＯＭ３０２は、描画サーバ３００が有する各ブロックの動作プログラムだけでなく、各ブロックの動作において必要となるパラメータ等の情報を格納する。また描画ＲＡＭ３０３は、揮発性メモリである。描画ＲＡＭ３０３は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等の格納領域として、あるいは各ブロックの処理を行うための作業領域としても用いられる。
【００３３】
描画通信部３０４は、描画サーバ３００が有する外部装置との通信インタフェースである。本実施形態では描画通信部３０４は、命令サーバ１００から描画命令に係る情報や送信先情報を受信する。また描画通信部３０４は、送信先情報により特定されるクライアント端末４００に対して、描画命令に係る情報に基づいて描画されたゲーム画面をストリーミング形式で送信する。
【００３４】
ＧＰＵ３０５は、受信した描画命令に係る情報により生成された描画命令に従ってゲーム画面の描画を行う。具体的には描画ＣＰＵ３０１は、描画命令に係る情報からゲーム画面の描画に係る描画命令を生成し、ＧＰＵ３０５に伝送する。また描画ＣＰＵ３０１は、描画命令に係る情報に含まれるゲーム画面の生成に必要な描画リソースの情報を参照し、ＧＰＵメモリ３０６にまだ展開されていない描画リソースが含まれる場合は、該リソースをリソースＤＢ３０７から読み出し、ＧＰＵメモリ３０６に展開する。そしてＧＰＵ３０５は、伝送された描画命令に従い、ＧＰＵメモリ３０６に展開されたリソースを使用してゲーム画面の描画を行う。本実施形態のＧＰＵ３０５は、得られたゲーム画面をストリーミング形式に対応する所定の符号化形式で符号化し、動画データを生成して出力する。
【００３５】
ＧＰＵメモリ３０６は、例えばＤＲＡＭ等の描画ＣＰＵ３０１及びＧＰＵ３０５にアクセス可能に設けられた、描画処理において使用される作業領域である。またリソースＤＢ３０７は、例えばＨＤＤ等の記録装置であり、描画リソースのデータが格納されている。
【００３６】
《画面提供処理》
このような構成をもつ本実施形態の描画システムの画面提供処理について、図４のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、命令サーバ１００の命令ＣＰＵ１０１、描画サーバ３００の描画ＣＰＵ３０１の各々が、例えばそれぞれのＲＯＭに記憶されている対応する処理プログラムを読み出し、ＲＡＭに展開して実行することにより実現することができる。本画面提供処理は、例えば命令サーバ１００において任意のクライアント端末４００（対象クライアント端末）からのゲームコンテンツの提供要求等の画面送信要求がなされた際に開始され、ゲーム画面のフレーム更新に応じて繰り返し実行されるものとして説明する。
【００３７】
Ｓ４０１で、命令ＣＰＵ１０１は、対象クライアント端末において操作入力がなされたか否かを判断する。具体的には命令ＣＰＵ１０１は、命令通信部１０４が対象クライアント端末から操作入力に係る情報を受信したか否かにより本ステップの判断を行う。命令ＣＰＵ１０１は、操作入力がなされたと判断した場合は処理をＳ４０２に移し、なされていないと判断した場合は処理をＳ４０３に移す。
【００３８】
Ｓ４０２で、命令ＣＰＵ１０１は、対象クライアント端末から受信した操作入力に係る情報に基づいて、提供するゲームについて管理するパラメータの情報を更新する処理を行う。
【００３９】
Ｓ４０３で、命令ＣＰＵ１０１は、現在のフレームのゲーム画面の生成に必要な演算処理等を実行する。本ステップにおいて行われる演算処理は、例えば動的オブジェクトの状態変更や描画命令に必要となるパラメータを算出する処理を含む。そして演算処理の実行後、命令ＣＰＵ１０１は、演算結果に基づいて現在のフレームのゲーム画面の描画命令の生成に必要となるパラメータ（描画命令に係る情報）を生成する。
【００４０】
本実施形態の命令ＣＰＵ１０１が生成する描画命令に係る情報は、例えば図５に示されるように命令の種類を特定する命令ＩＤ、命令の対象となるオブジェクトを指定するオブジェクトＩＤ、命令によって変更されるパラメータ等の命令の実行において使用されるパラメータを示すその他の情報等で構成される。これは、描画命令をそのままの形で送出するよりもデータ量を削減することで伝送遅延を低減することを目的とするものであり、本ステップにおいて命令ＣＰＵ１０１は、描画命令をより簡略化した形式のデータで構成してデータ量を削減する。描画命令に係る情報は、予め定められたルールに基づいてデータ圧縮がなされた情報であり、本実施形態では描画サーバ３００において該情報から描画命令を構築することが可能である。
【００４１】
しかしながら、本発明の実施において描画サーバ３００に送信される情報は、これに限られるものではない。即ち、本実施形態では描画サーバ３００において描画命令を構成可能な情報として描画命令に係る情報を送信するものとして説明するが、描画命令と描画命令に係る情報とは等価な情報であり、送信される情報は描画命令そのものであってもよい。しかし、伝送遅延の低減という側面で考えれば、よりデータ量の少ない情報である描画命令に係る情報を送信することが好ましいことは言うまでもない。
【００４２】
Ｓ４０４で、命令ＣＰＵ１０１は、ゲーム画面の描画を行わせる描画サーバ３００を決定する。具体的には命令ＣＰＵ１０１は、描画命令に係る情報により示される描画命令に従って画面描画に係る処理を行う際に必要となる描画リソースを特定する。そして命令ＣＰＵ１０１は、接続されている描画サーバ３００のうちから、特定した描画リソースを展開領域に展開している１つの描画サーバ３００の情報を命令展開把握部１０５から取得し、描画を行わせる描画サーバ３００として決定する。あるいは命令ＣＰＵ１０１は、特定した描画リソースを展開領域に展開している描画サーバ３００が存在しない場合は、接続されている描画サーバ３００のうちから、例えばデータ量の多い背景用テクスチャ等、所定の種類の描画リソースがまだ展開されていない描画サーバ３００に決定する。このようにすることで、接続されている描画サーバ３００の各々のＧＰＵメモリ３０６には、各々異なる描画リソースが展開されるように制御することができる。
【００４３】
画面描画に必要となる描画リソースが展開領域に展開されているか否かの判断は、描画命令に係るゲーム画面の生成に用いられる全ての描画リソースの一致をもって判断する必要はない。例えばシーンを切り替えながら進行するゲームでは、シーンごとにフィールドに配置する描画オブジェクトや背景テクスチャ等の描画リソースが予め定められているため、そのうちのデータ量が閾値以上のリソースの展開有無により判断を行ってもよい。また、背景テクスチャ等は一般にデータ量が多くなる傾向にあるため、背景テクスチャ等の展開有無により判断を行ってもよい。この場合、ゲームに使用される全ての背景テクスチャについて、それぞれ異なる描画サーバ３００のＧＰＵメモリ３０６に展開されるように制御してもよい。
【００４４】
Ｓ４０５で、命令ＣＰＵ１０１は、描画命令に係る情報及び送信先情報を命令通信部１０４に伝送し、Ｓ４０４において決定した描画サーバ３００に対して送信する。
【００４５】
Ｓ４０６で、描画ＣＰＵ３０１は、関連付けられた命令サーバ１００から描画命令に係る情報及び送信先の情報を受信したか否かを判断する。描画ＣＰＵ３０１は、描画命令に係る情報及び送信先の情報を受信したと判断した場合は処理をＳ４０７に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【００４６】
Ｓ４０７で、描画ＣＰＵ３０１は、受信した描画命令に係る情報から描画命令を再構築し、ＧＰＵ３０５に伝送する。また描画ＣＰＵ３０１は、必要に応じてリソースＤＢ３０７から新たな描画リソースを読み出し、ＧＰＵメモリ３０６に展開する。ここで、必要に応じて読み出される新たな描画リソースは、ゲーム画面の描画に必要な描画リソースのうち、まだＧＰＵメモリ３０６に展開されていない描画リソースを指す。そしてＧＰＵ３０５は、ＧＰＵメモリ３０６に展開されている描画リソースを使用して、描画命令に従ってゲーム画面を描画する。
【００４７】
Ｓ４０８で、ＧＰＵ３０５はゲーム画面を符号化し、描画ＣＰＵ３０１は符号化されたゲーム画面のデータを描画通信部３０４に伝送し、送信先情報に基づいて対象クライアント端末に送信する。
【００４８】
このようにすることで、本実施形態の描画システムでは、ゲーム画面の描画に使用する描画リソースを好適に利用して描画システム全体に係る描画処理の演算量を低減することができる。
【００４９】
本実施形態では描画サーバ３００を単一のサーバとして構成するものとして説明したが、本発明の実施はこれに限られるものではない。例えば単一のサーバとして構成するのではなく、それぞれ独立した展開領域が割り当てられた１つの描画ユニット（例えばＧＰＵ）として構成する場合は、命令サーバ１００は、複数の描画ユニットを有する描画用の装置を兼ねる機器となって構成されてもよい。この場合、命令ＣＰＵ１０１は、描画命令に対応するゲーム画面の生成において使用される描画リソースが展開されている展開領域を特定し、該展開領域が対応付けられた描画ユニットに対して画面の生成を割り当てればよい。
【００５０】
以上説明したように、本実施形態の描画システムは、クライアント端末に送信する画面に係る描画処理の演算量を好適に低減することができる。具体的には描画システムは、クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、該命令サーバから受信した描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバとを有する。命令サーバは、命令サーバに関連付けられた複数の描画サーバのうち、描画命令に係る情報に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、描画命令に係る情報及び送信先情報を送出する。そして描画サーバは、必要な描画リソースのうちまだ展開されていない描画リソースを読み出して展開領域に展開して保持し、描画命令に係る情報に基づいて画面の描画を行い、対象クライアント端末に送信する。
【００５１】
［実施形態２］
上述した実施形態では、命令サーバ１００に接続されている描画サーバ３００の各々における描画リソースを有効活用することにより、描画システム全体に係る描画処理の演算量を低減する方法について説明した。具体的には、命令サーバ１００に接続されている描画サーバ３００のうちから、画面描画に係る処理を行う際に必要となる描画リソースを展開領域に展開している１つの描画サーバ３００に描画を行わせるサーバとして決定することで、描画リソースを好適に活用する態様を説明した。本実施形態ではさらに、描画リソースを好適に活用しつつ、サーバとクライアント端末間における伝送遅延を低減する方法について説明する。
【００５２】
特許文献１のようなネットワークゲームサービスでは、ゲーム画面を送信することになるため、従来のネットワークゲームサービスに比べてサーバとクライアント端末間での通信データ量が多くなり、伝送遅延の影響が生じうる。即ち、描画されたゲーム画面をストリーミング形式で送信する方式は、データ圧縮等の適用がなされるものの、従来のゲーム画面の描画に必要なデータに比べて多量のデータ通信が常時行われることになるため、通信帯域を圧迫しうる。また、サーバとクライアント端末間の伝送路が長い場合、このような通信帯域の圧迫による伝送遅延はより顕著に現れ、ユーザのゲーム体験に支障を生じる可能性がある。
【００５３】
特に、ユーザの操作入力に応じてなされた変更がゲーム画面に反映されるまでのレスポンス性能が要求される、所謂リアルタイム性の高いゲームでは、このような伝送遅延はゲーム性を破綻させることにもなりうる。本実施形態では、このような伝送遅延を低減する描画システムについて、以下に図面を参照して詳細に説明する。
【００５４】
以下に説明する実施形態は、描画システムの一例としての、ネットワークを介してクライアント端末から受信した画面要求に応じてゲーム画面を描画し、得られたゲーム画面をネットワークを介してストリーミング形式でクライアント端末に送信するゲームシステムに、本発明を適用した例を説明する。しかし、本発明は、ゲームに限らず、クライアント端末からの要求に従って画面の描画を行い、得られた画面をクライアント端末に送信することが可能な任意の機器及びシステムに適用可能である。また以下の説明において、上述した実施形態１の描画システムと同様の構成については同一の参照番号を付し、説明を省略する。
【００５５】
《描画システムの構成》
図６は、本発明の実施形態２に係る描画システムのシステム構成を示した図である。本実施形態の描画システムでは、実施形態１と同様、各クライアント端末４００から受信した要求に応じてゲーム画面を描画し、該クライアント端末４００に送信する。
【００５６】
まず、ユーザ等の操作により１つのクライアント端末４００からネットワーク５００を介してゲーム画面の提供要求が命令サーバ１００になされると、命令サーバ１００は、提供するゲーム画面に係る演算処理を実行し、ゲーム画面の描画命令に係る情報を生成する。また命令サーバ１００は、ゲーム画面の提供を行うクライアント端末４００の存在する地域、即ちアクセス地点の特定を行い、該クライアント端末４００に対してゲーム画面の提供を行う描画サーバ３００群を決定する。本実施形態では、クライアント端末４００の存在する地域に最も近い地域に設置された描画サーバ３００群に対して、該クライアント端末４００に提供するゲーム画面の描画を割り当てるものとして説明するが、本発明の実施はこれに限られるものではない。即ち、クライアント端末４００の位置を具体的に特定し、厳密にこれに最も近い地域に設置された描画サーバ３００群に描画処理を割り当てるのではなく、特定した地域に対応付けられた地域に設置された描画サーバ３００群に対して描画処理を割り当てるものであってよい。
【００５７】
描画サーバ３００は、所定の地域ごとに複数台設置され、各々の地域で描画サーバ３００群を構成する。しかしながら、本発明の実施において各地域に設置される描画サーバ３００の数はこれに限られるものでなく、該地域の利用者数等に合わせて適宜決定されるものであってよい。描画サーバ３００の各々は、実施形態１同様、ゲーム画面の生成に必要な描画リソース（モデルデータ、テクスチャデータ、画面効果等を実現する描画プログラム等）を有しており、該リソースを展開して使用しながらゲーム画面の描画を行う。
【００５８】
〈命令サーバ１００の構成〉
図７は、本実施形態の描画システムに係る命令サーバ１００の機能構成を示したブロック図である。
【００５９】
本実施形態の命令サーバ１００は、実施形態１の構成に加え、さらに地域特定部１１１を有する。地域特定部１１１は、例えばクライアント端末４００との通信接続の確立に用いた情報、あるいはクライアント端末４００から受信した画面送信要求に含まれる送信先アドレスの情報からクライアント端末４００の存在する地域を特定する。
【００６０】
《画面提供処理》
次に、本実施形態の描画システムの画面提供処理について、図８のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、命令サーバ１００の命令ＣＰＵ１０１、描画サーバ３００の描画ＣＰＵ３０１の各々が、例えばそれぞれのＲＯＭに記憶されている対応する処理プログラムを読み出し、ＲＡＭに展開して実行することにより実現することができる。本画面提供処理は、例えば命令サーバ１００において任意のクライアント端末４００（対象クライアント端末）からのゲームコンテンツの提供要求等の画面送信要求がなされた際に開始され、ゲーム画面のフレーム更新に応じて繰り返し実行されるものとして説明する。また、以下の画面提供処理の説明では、実施形態１と同様の処理を行うステップについては同一の参照番号を付して説明を省略し、本実施形態の画面提供処理に特徴的な処理を行うステップのみの説明に留める。
【００６１】
Ｓ４０３において描画命令に係る情報を生成した後、命令ＣＰＵ１０１はＳ８０１で、ゲーム画面の描画を行わせる描画サーバ３００を決定し、処理をＳ４０５に移す。具体的には命令ＣＰＵ１０１は、描画命令に係る情報により示される描画命令に従って画面描画に係る処理を行う際に必要となる描画リソースを特定する。そして命令ＣＰＵ１０１は、地域特定部１１１により特定された対象クライアント端末の存在する地域の情報に基づいて、対象クライアント端末が存在する地域に対応する描画サーバ３００群を特定する。命令ＣＰＵ１０１は、該描画サーバ３００群のうちから、特定した描画リソースを展開領域に展開している１つの描画サーバ３００の情報を命令展開把握部１０５から取得し、描画を行わせる描画サーバ３００として決定する。あるいは命令ＣＰＵ１０１は、描画サーバ３００群に特定した描画リソースを展開領域に展開している描画サーバ３００が存在しない場合は、該描画サーバ３００群のうちから、所定の種類の描画リソースがまだ展開されていない描画サーバ３００に決定する。
【００６２】
このようにすることで、本実施形態の描画システムでは、ゲーム画面の描画に使用する描画リソースを好適に利用して描画システム全体に係る描画処理の演算量を低減することができる。また描画システムでは、ゲーム画面の送信に係る伝送路を低減し、画面要求に応じて描画した画面をクライアント端末に提供する際の伝送遅延を効率的に低減することができる。
【００６３】
また上述した伝送遅延の問題は、データ量が多くなりうるゲーム画面を対象クライアント端末に送信する際の伝送路を短くすれば低減することができる。即ち、本発明は一態様において、命令サーバ１００から描画サーバ３００に対して送信する情報を、描画命令に係る情報とせずに、描画命令そのものとした場合にも同様の効果を奏する。つまり、該効果の実現は、描画命令のデータと描画命令を簡略化したデータのいずれを送信したとしても実現できるものであるため、一態様において描画命令に係る情報とは該２つのデータのいずれを表現するものであってもよい。
【００６４】
本実施形態では描画サーバ３００を単一のサーバとして構成するものとして説明したが、実施形態１同様、本発明の実施はこれに限られるものではない。即ち、本実施形態のように描画サーバ３００群の各描画サーバ３００を単一のサーバとして構成するのではなく、それぞれ独立した展開領域が割り当てられた１つの描画ユニット（例えばＧＰＵ）として構成する場合は、描画サーバ３００群ではなく複数の描画ユニットを有する描画サーバが各地域に設けられる構成されてもよい。この場合、各地域の描画サーバは命令サーバ１００から描画命令に係る情報を受信すると、該描画命令に対応するゲーム画面の生成において使用される描画リソースが展開されている展開領域を特定し、該展開領域が対応付けられた描画ユニットに対して画面の生成を割り当てればよい。
【００６５】
［変形例］
上述した実施形態２では、クライアント端末で行われた操作に対する画面更新レスポンス性を向上させるために、伝送路の短い描画サーバにゲーム画面の描画を割り当てることで伝送遅延を低減する方法について説明した。しかしながら、伝送遅延を低減する方法はこれに限られるものではない。
【００６６】
例えば、実施形態２の画面提供処理のＳ８０１におけるゲーム画面の描画を行わせる描画サーバ３００の決定は、対象クライアント端末が存在する地域に対応するとして定められた複数の地域に設置された描画サーバ３００群を抽出し、接続している端末総数、平均伝送レート、ＧＰＵ稼働率、輻輳状況等の動作状況に基づいていずれかの描画サーバ３００群を選択し、その中で描画リソースの展開状況に応じて１つの描画サーバ３００を決定してもよい。あるいは、描画サーバ３００群を動作状況に応じて選択するのではなく、対象クライアント端末が存在する地域に対応する地域に設置された、描画命令に従って画面描画に係る処理を行う際に必要となる描画リソースを展開している描画サーバ３００のうちから、動作状況に応じて１つの描画サーバ３００を決定するものであってもよい。また、ゲーム画面の描画を行わせる描画サーバ３００を、対象クライアント端末が存在する地域に対応するとして設定された地域に設置されているものに限定する必要はなく、単純に動作状況と描画リソースの展開状況のみに基づいて、いずれかの位置に設置された描画サーバ３００を決定するものであってもよい。
【００６７】
また動作状況の把握は、例えば接続端末数、平均伝送レート、ＧＰＵ稼働率、輻輳状況、及び伝送路の長さの少なくともいずれかに基づいて、あるいはこれらの組み合わせに基づいて行われるものであってよい。また動作状況を評価するために、これらの項目の少なくともいずれかを評価係数とする評価式が設けられてもよい。また、命令サーバ１００に接続されている描画サーバ数が比較的多い状況では、命令ＣＰＵ１０１が全ての描画サーバ３００について評価値を算出する方式は命令サーバ１００における演算リソースを圧迫しうるため、各描画サーバ３００から評価値が命令サーバ１００に送信される構成であってもよい。
【００６８】
［実施形態３］
上述した実施形態２では、命令サーバ１００が全ての地域の描画サーバ３００群、及び各描画サーバ３００の展開領域に展開されている描画リソースの情報を把握可能であるものとして説明した。しかしながら、描画システムの規模によっては、各地域の描画サーバ３００の全てについて展開されている描画リソースの情報を命令サーバ１００において集中管理することは現実的でない可能性がある。即ち、命令サーバ１００では、各クライアント端末に提供するフレームのゲーム画面の生成に必要な演算処理に加えて、これらの描画リソースの展開状況を把握することになるため、命令サーバ１００に負荷が集中する可能性がある。本実施形態では、このような描画システムにおける負荷分散を行うために、地域ごとに描画サーバ３００群の描画サーバ３００の各々の描画リソースの展開状況を管理する中継装置を設ける例について説明する。
【００６９】
以下、本実施形態の描画システムについて、図面を参照して詳細に説明する。以下に説明する一実施形態は、描画システムの一例としての、ネットワークを介してクライアント端末から受信した画面要求に応じてゲーム画面を描画し、得られたゲーム画面をネットワークを介してストリーミング形式でクライアント端末に送信するゲームシステムに、本発明を適用した例を説明する。しかし、本発明は、ゲームに限らず、クライアント端末からの要求に従って画面の描画を行い、得られた画面をクライアント端末に送信することが可能な任意の機器及びシステムに適用可能である。また以下の説明において、上述した実施形態１及び２の描画システムと同様の構成については同一の参照番号を付し、説明を省略する。
【００７０】
《描画システムの構成》
図９は、本発明の実施形態に係る描画システムのシステム構成を示した図である。本実施形態の描画システムでは、実施形態１及び２と同様、各クライアント端末４００から受信した要求に応じてゲーム画面を描画し、該クライアント端末４００に送信する。
【００７１】
まず、ユーザ等の操作により１つのクライアント端末４００からネットワーク５００を介してゲーム画面の提供要求が命令サーバ１００になされると、命令サーバ１００は、提供するゲーム画面に係る演算処理を実行し、ゲーム画面の描画命令に係る情報を生成する。また命令サーバ１００は、ゲーム画面の提供を行うクライアント端末４００の存在する地域、即ちアクセス地点の特定を行い、該クライアント端末４００に対してゲーム画面の提供を行う描画サーバ３００群を決定する。本実施形態では実施形態２と同様に、クライアント端末４００の存在する地域に最も近い地域に設置された描画サーバ３００群に対して、該クライアント端末４００に提供するゲーム画面の描画を割り当てるものと説明するが、本発明の実施はこれに限られるものではない。
【００７２】
描画サーバ３００は、所定の地域ごとに複数台設置され、各々の地域で描画サーバ３００群を構成する。描画サーバ３００の各々は、実施形態１及び２と同様、ゲーム画面の生成に必要な描画リソース（モデルデータ、テクスチャデータ、画面効果等を実現する描画プログラム等）を有しており、該リソースを展開して使用しながらゲーム画面の描画を行う。また実際にゲーム画面の描画を行う描画サーバ３００は、命令サーバ１００からの描画命令に係る情報を受信した中継装置２００により決定される。
【００７３】
中継装置２００は、描画サーバ３００群と同様に地域ごとに設けられ、対応する地域の描画サーバ３００群に関連付けられる。また中継装置２００は、描画サーバ３００群のうちの１つのサーバをゲーム画面の生成を行う描画サーバ３００として決定し、該サーバに対して描画命令に係る情報を中継してゲーム画面の描画を行わせる。
【００７４】
図９では、命令サーバ１００とクライアント端末４００のみがネットワーク５００を介して接続され、命令サーバ１００と中継装置２００、中継装置２００と各描画サーバ３００、及び描画サーバ３００とクライアント端末４００はネットワーク５００を介して接続するものとして示されていない。これは単に、命令サーバ１００から中継装置２００、中継装置２００から各描画サーバ３００、及び描画サーバ３００からクライアント端末４００の情報の流れを明確にするためにネットワーク５００を介さずに表記したことによるものであり、これらの装置間での通信がネットワーク５００あるいは何らかのネットワークを介して行われることは容易に理解されよう。
【００７５】
以下、このようなシステム構成を有する本実施形態のゲームシステムの各装置について、ブロック図を示してその機能構成を説明する。以下の説明では複数の装置で使用される同様のハードウェアについて、装置間でそれらのハードウェアを区別するために命令サーバ１００、中継装置２００、描画サーバ３００のそれぞれに対して「命令」、「中継」、「描画」の接頭文字を付して説明する。しかしながら、これらの接頭文字は単に装置間でハードウェアの識別のために付すものであり、本実施形態の記載においては該ハードウェアの機能や動作を特定するために使用されるものではない。
【００７６】
〈命令サーバ１００の構成〉
図１０は、本実施形態の描画システムに係る命令サーバ１００の機能構成を示したブロック図である。本実施形態の命令サーバ１００は、命令展開把握部１０５が除外された以外は、実施形態２と同様の構成であるため、詳細な説明は省略する。
【００７７】
〈中継装置２００の構成〉
図１１は、本実施形態の描画システムに係る中継装置２００の機能構成を示したブロック図である。
【００７８】
中継ＣＰＵ２０１は、中継装置２００が有する各ブロックの動作を制御する。具体的には中継ＣＰＵ２０１は、中継ＲＯＭ２０２に格納された各ブロックの動作プログラムを読み出し、中継ＲＡＭ２０３に展開して実行することにより各ブロックの動作を制御する。
【００７９】
中継ＲＯＭ２０２は、例えば不揮発性メモリ等の恒久的にデータを記録する記録装置である。中継ＲＯＭ２０２は、中継装置２００が有する各ブロックの動作プログラムだけでなく、各ブロックの動作において必要となるパラメータ等の情報を格納する。また中継ＲＡＭ２０３は、揮発性メモリである。中継ＲＡＭ２０３は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等の格納領域として、あるいは各ブロックの処理を行うための作業領域としても用いられる。
【００８０】
中継通信部２０４は、中継装置２００が有する外部装置との通信インタフェースである。本実施形態では中継通信部２０４は、命令サーバ１００から描画命令に係る情報や送信先情報を受信し、中継通信部２０４に関連付けられた描画サーバ３００群の各々から、該描画サーバ３００のＧＰＵメモリ３０６に展開されている描画リソースの情報を受信する。また中継通信部２０４は、ゲーム画面の描画を行わせる描画サーバ３００に対して、描画命令に係る情報及び送信先情報を送信する。
【００８１】
中継展開把握部２０５は、関連付けられた描画サーバ３００群の各々から受信したＧＰＵメモリ３０６に展開されている描画リソースの情報を、該描画サーバ３００の識別情報に関連付けて管理する。本実施形態では中継ＣＰＵ２０１は、描画命令により描画されるゲーム画面に使用される描画リソースが既にＧＰＵメモリ３０６に展開されている描画サーバ３００に対してゲーム画面の描画を割り当てる。これは上述したように、ＧＰＵメモリ３０６に展開されている描画リソースを再利用することで、描画処理の効率化が図れることに基づく。
【００８２】
本実施形態では描画サーバ３００から中継装置２００に対してＧＰＵメモリ３０６に展開されている描画リソースの情報が送信され、中継展開把握部２０５が該情報に基づいて描画命令に対応する描画リソースが既に展開されている描画サーバ３００を特定するものとして説明するが、本発明の実施はこれに限られるものではない。例えば描画サーバ３００群において、特にデータ量の多いテクスチャデータ等、ゲーム画面の生成に使用する描画リソースの各々についてＧＰＵメモリ３０６への展開を行う描画サーバ３００が予め定められている場合、展開されている描画リソースの情報が中継装置２００に送信される必要はない。この場合、中継ＣＰＵ２０１が、予め定められた描画サーバ３００の情報に基づいて描画命令に係る情報を送信する描画サーバ３００を決定してよい。例えば、中継ＣＰＵ２０１は描画命令に係る情報から生成するゲーム画面に係るシーンの情報を取得し、該シーンに対応する描画リソースの展開が予め割り当てられている描画サーバ３００に、ゲーム画面の描画を割り当てればよい。
【００８３】
《画面提供処理》
このような構成をもつ本実施形態の描画システムの画面提供処理について、図１２のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、命令サーバ１００の命令ＣＰＵ１０１、中継装置２００の中継ＣＰＵ２０１、描画サーバ３００の描画ＣＰＵ３０１の各々が、例えばそれぞれのＲＯＭに記憶されている対応する処理プログラムを読み出し、ＲＡＭに展開して実行することにより実現することができる。本画面提供処理は、例えば命令サーバ１００において任意のクライアント端末４００（対象クライアント端末）からのゲームコンテンツの提供要求等の画面送信要求がなされた際に開始され、ゲーム画面のフレーム更新に応じて繰り返し実行されるものとして説明する。また、以下の画面提供処理の説明では、実施形態１及び２と同様の処理を行うステップについては同一の参照番号を付して説明を省略し、本実施形態の画面提供処理に特徴的な処理を行うステップのみの説明に留める。
【００８４】
Ｓ４０３において描画命令に係る情報を生成した後、命令ＣＰＵ１０１はＳ１２０１で、生成した描画命令に係る情報と、対象クライアント端末にデータを送信するために必要となる送信先情報とを命令通信部１０４に伝送し、中継装置２００に送出させる。本ステップで命令通信部１０４による情報送出の対象である中継装置２００は、地域特定部１１１により特定された対象クライアント端末の存在する地域の情報に基づいて命令ＣＰＵ１０１が決定するものとする。
【００８５】
Ｓ１２０２で、中継ＣＰＵ２０１は、命令サーバ１００から描画命令に係る情報及び送信先情報を受信したか否かを判断する。中継ＣＰＵ２０１は、描画命令に係る情報及び送信先情報を受信したと判断した場合は処理をＳ１２０３に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【００８６】
Ｓ１２０３で、中継ＣＰＵ２０１は、ゲーム画面の描画を行わせる描画サーバ３００を決定する。具体的には中継ＣＰＵ２０１は、描画命令に係る情報から、該情報により示される描画命令に従って画面描画に係る処理を行う際に必要となる描画リソースを特定する。そして中継ＣＰＵ２０１は、特定した描画リソースを展開領域に展開している、該中継装置２００に関連付けられた描画サーバ３００群のうちの１つの描画サーバ３００の情報を中継展開把握部２０５から取得し、描画を行わせる描画サーバ３００として決定する。あるいは中継ＣＰＵ２０１は、特定した描画リソースを展開領域に展開している描画サーバ３００が存在しない場合は、例えばデータ量の多い背景用テクスチャ等、所定の種類の描画リソースがまだ展開されていない描画サーバ３００に決定する。このようにすることで、描画サーバ３００群のサーバの各々のＧＰＵメモリ３０６には、各々異なる描画リソースが展開されるように制御することができる。
【００８７】
Ｓ１２０４で、中継ＣＰＵ２０１は、描画命令に係る情報及び送信先情報を中継通信部２０４に伝送し、Ｓ１２０３において決定した描画サーバ３００に対して送信する。
【００８８】
Ｓ１２０５で、描画ＣＰＵ３０１は、関連付けられた中継装置２００から描画命令に係る情報及び送信先の情報を受信したか否かを判断する。描画ＣＰＵ３０１は、描画命令に係る情報及び送信先の情報を受信したと判断した場合は処理をＳ４０７に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【００８９】
このようにすることで、本実施形態の描画システムでは、ゲーム画面の描画に使用する描画リソースを好適に利用して描画システム全体に係る描画処理の演算量を低減することができる。また描画システムでは、ゲーム画面の送信に係る伝送路を低減し、画面要求に応じて描画した画面をクライアント端末に提供する際の伝送遅延を効率的に低減することができる。また描画システムにおける描画リソースの展開状況の監視による処理負荷を分散することができる。
【００９０】
本実施形態では中継装置２００は、命令サーバ１００及び描画サーバ３００と分離したエンティティとして設けられるものとして説明したが、本発明の実施はこれに限られるものではない。中継装置２００は命令サーバ１００と一体となって構成され、各地域の描画サーバ３００群のうちの特定の描画サーバ３００を指定して描画命令に係る情報を送信するものであってもよい。また本実施形態のように描画サーバ３００を単一のサーバとして構成するのではなく、それぞれ独立した展開領域が割り当てられた１つの描画ユニット（例えばＧＰＵ）として構成する場合は、中継装置２００は、複数の描画ユニットを有する描画用の装置と一体となって構成されてもよい。この場合、中継装置２００は命令サーバ１００から描画命令に係る情報を受信すると、該描画命令に対応するゲーム画面の生成において使用される描画リソースが展開されている展開領域を特定し、該展開領域が対応付けられた描画ユニットに対して画面の生成を割り当てればよい。
【００９１】
また、本実施形態では描画サーバ３００において描画命令に係る情報から描画命令の再構築が行われるものとして説明したが、本発明の実施において描画命令の再構築は中継装置２００及び描画サーバ３００のいずれで行われてもよい。中継装置２００において再構築が行われる場合には、命令サーバ１００と中継装置２００との間における伝送遅延を低減することができる。また描画サーバ３００において再構築が行われる場合には、命令サーバ１００と中継装置２００との間、及び中継装置２００と描画サーバ３００との間の双方における伝送遅延を低減することができる。つまり、描画命令をデータ圧縮して送信することによる効果は、中継装置２００及び描画サーバ３００のいずれで描画命令の再構築が行われたとしても実現することができる。
【００９２】
以上説明したように、クライアント端末に送信する画面に係る描画処理の演算量を好適に低減することができる。具体的には描画システムは、クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバと、命令サーバから受信した描画命令に係る情報を描画サーバに送信する中継装置と、を有する。命令サーバは、対象クライアント端末が存在する地域を特定し、対応する地域に存在する中継装置に、描画命令に係る情報及び送信先情報を送出する。また中継装置は、該中継装置に関連付けられた複数の描画サーバのうち、該描画命令に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、描画命令に係る情報及び送信先情報を送信する。そして描画サーバは、必要な描画リソースのうちまだ展開されていない描画リソースを読み出して展開領域に展開して保持し、描画命令に係る情報に基づいて画面の描画を行い、対象クライアント端末に送信する。
【００９３】
［その他の実施形態］
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明に係る描画システムは、１以上のコンピュータを描画システムの各装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供／配布することができる。本発明の範囲を公にするために、以下の請求項を添付する。
【要約】
描画システムは、クライアント端末から受信した情報に基づいて画面の描画命令に係る情報を送出する命令サーバと、該命令サーバから受信した描画命令に係る情報に従って画面の描画を行い、クライアント端末に送信する描画サーバとを有する。命令サーバは、命令サーバに関連付けられた複数の描画サーバのうち、描画命令に係る情報に従って画面の描画を行う際に必要な描画リソースのうちの少なくとも一部を展開している描画サーバに、描画命令に係る情報及び送信先情報を送出する。そして描画サーバは、必要な描画リソースのうちまだ展開されていない描画リソースを読み出して展開領域に展開して保持し、描画命令に係る情報に基づいて画面の描画を行い、対象クライアント端末に送信する。【図１】
0005559445.tif 000002
【図２】
0005559445.tif 000003
【図３】
0005559445.tif 000004
【図４】
0005559445.tif 000005
【図５】
0005559445.tif 000006
【図６】
0005559445.tif 000007
【図７】
0005559445.tif 000008
【図８】
0005559445.tif 000009
【図９】
0005559445.tif 000010
【図１０】
0005559445.tif 000011
【図１１】
0005559445.tif 000012
【図１２】
0005559445.tif 000013