JP2015088156A - Server and method for displaying video image on client terminal - Google Patents
Server and method for displaying video image on client terminal Download PDFInfo
- Publication number
- JP2015088156A JP2015088156A JP2014053227A JP2014053227A JP2015088156A JP 2015088156 A JP2015088156 A JP 2015088156A JP 2014053227 A JP2014053227 A JP 2014053227A JP 2014053227 A JP2014053227 A JP 2014053227A JP 2015088156 A JP2015088156 A JP 2015088156A
- Authority
- JP
- Japan
- Prior art keywords
- information
- frame
- client terminal
- terminal device
- frame information
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
本発明は、動画をクライアント端末に表示させるサーバ及び方法に関し、詳しくは、連続する複数のフレームによって構成される動画をHTTP通信を用いてクライアント端末に表示させるサーバ及び方法に関する。 The present invention relates to a server and method for displaying a moving image on a client terminal, and more particularly to a server and method for displaying a moving image composed of a plurality of continuous frames on a client terminal using HTTP communication.
従来より、インターネット等の通信回線を介して接続されたスマートフォン又はゲーム専用端末等の複数のクライアント端末に対して、複数のユーザによってプレイされるオンラインゲーム等を提供するサーバが知られている(例えば、特許文献1参照)。こうしたオンラインゲームでは、例えば、複数のユーザによる操作に応じて更新されるゲーム用画面(動画)を複数のユーザのクライアント端末に表示させる必要があるから、所謂サーバプッシュ型の通信が必要とされる。また、こうしたオンラインゲームをウェブブラウザを用いて提供する場合には、HTTPを用いたサーバプッシュ型の通信によってゲーム用画面をクライアント端末に表示させる必要がある。HTTPを用いたサーバプッシュ型の通信を実現するための技術としては、例えば、クライアント端末からのHTTPリクエストに対してHTTPレスポンスを返すことなくTCP接続を維持し、任意のタイミングでサーバ側からHTTPレスポンスを返すロングポーリング等の技術が知られている。 Conventionally, a server that provides an online game played by a plurality of users to a plurality of client terminals such as a smartphone or a game dedicated terminal connected via a communication line such as the Internet is known (for example, , See Patent Document 1). In such an online game, for example, since it is necessary to display game screens (moving images) updated in response to operations by a plurality of users on the client terminals of the plurality of users, so-called server push type communication is required. . Further, when such an online game is provided using a web browser, it is necessary to display a game screen on the client terminal by server push type communication using HTTP. As a technique for realizing server push type communication using HTTP, for example, a TCP connection is maintained without returning an HTTP response to an HTTP request from a client terminal, and an HTTP response is sent from the server side at an arbitrary timing. A technique such as long polling that returns is known.
しかしながら、こうしたロングポーリングの技術を適用した場合であっても、1つのHTTPリクエストに対して1つのHTTPレスポンスを返すことになるから、例えば、ゲーム用画面の1フレームに関する情報を1つのHTTPレスポンスに対応させてクライアント端末に送信する場合には、1フレームに関する情報を送信する都度、HTTPメッセージ(HTTPリクエスト及びHTTPレスポンス)の送受信が発生してしまう。この結果、各メッセージのヘッダ情報等の通信が頻繁に発生して通信量が増大し、また、各メッセージの処理によってサーバ側及びクライアント端末側のCPU負荷が増大してしまう恐れがある。 However, even when such a long polling technology is applied, one HTTP response is returned for one HTTP request. For example, information about one frame of the game screen is converted into one HTTP response. When transmitting to the client terminal in correspondence, transmission / reception of an HTTP message (HTTP request and HTTP response) occurs each time information on one frame is transmitted. As a result, communication such as header information of each message frequently occurs and the amount of communication increases, and processing of each message may increase the CPU load on the server side and the client terminal side.
本発明の実施形態は、ゲーム用画面等の動画をHTTP通信を用いてクライアント端末に表示させる際の負荷を低減することを目的の一つとする。本発明の他の目的は、本明細書全体を参照することにより明らかとなる。 An object of the embodiment of the present invention is to reduce a load when a moving image such as a game screen is displayed on a client terminal using HTTP communication. Other objects of the present invention will become apparent by referring to the entire specification.
本発明の一実施形態に係るサーバは、連続する複数のフレームによって構成される動画をHTTP通信を用いてクライアント端末に表示させるサーバであって、前記連続する複数のフレームの1フレームを前記クライアント端末に表示させるためのフレーム情報を当該連続する順序に従って生成する生成手段と、前記クライアント端末からの第1のHTTPリクエストに対する第1のHTTPレスポンスとして、複数の前記フレーム情報を前記連続する順序に従って当該クライアント端末に送信する送信制御手段と、を備える。 A server according to an embodiment of the present invention is a server that displays a moving image composed of a plurality of consecutive frames on a client terminal using HTTP communication, wherein one frame of the plurality of consecutive frames is the client terminal Generating means for generating frame information to be displayed on the client according to the continuous order; and a plurality of the frame information as the first HTTP response to the first HTTP request from the client terminal according to the continuous order. Transmission control means for transmitting to the terminal.
本発明の一実施形態に係る方法は、1又は複数のコンピュータによって、連続する複数のフレームによって構成される動画をHTTP通信を用いてクライアント端末に表示させ
る方法であって、前記連続する複数のフレームの1フレームを前記クライアント端末に表示させるためのフレーム情報を当該連続する順序に従って生成し、前記クライアント端末からの第1のHTTPリクエストに対する第1のHTTPレスポンスとして、複数の前記フレーム情報を前記連続する順序に従って当該クライアント端末に送信する。
A method according to an embodiment of the present invention is a method for displaying a moving image including a plurality of continuous frames on a client terminal using HTTP communication by one or a plurality of computers. Frame information for causing the client terminal to display one frame is generated in accordance with the continuous order, and a plurality of the frame information is used as the first HTTP response to the first HTTP request from the client terminal. Transmit to the client terminal according to the order.
本発明の様々な実施形態によって、ゲーム用画面等の動画をHTTP通信を用いてクライアント端末に表示させる際の負荷を低減することができる。 According to various embodiments of the present invention, it is possible to reduce a load when a moving image such as a game screen is displayed on a client terminal using HTTP communication.
図1は、本発明の一実施形態に係るサーバ10を含むシステム1のネットワーク構成を概略的に示すブロック図である。図1に示すように、一実施形態におけるサーバ10は、一般的なコンピュータとして構成される端末装置(クライアント端末)30とインターネット等の通信網20を介して通信可能に接続されており、この端末装置30を操作するユーザに対して様々なゲームを提供することができる。なお、サーバ10には端末装置30以外の図示しない端末装置も通信可能に接続される。また、サーバ10は、端末装置30を操作するユーザに対してゲーム以外の様々なデジタルコンテンツ(例えば、動画、音楽等)を提供することができ、デジタルコンテンツの提供以外の様々なインターネットサービスを提供することができ、更に、複数の端末装置30を操作する複数のユーザ間の様々なコミュニケーションを実現するプラットフォームサービスを提供することができる。
FIG. 1 is a block diagram schematically showing a network configuration of a
サーバ10は、図示のとおり、CPU(コンピュータプロセッサ)11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、外部メモリ15と、ディスクドライブ16とを含み、これらの各構成要素がバス17を介して互いに電気的に接続されている。CPU11は、外部メモリ15からオペレーティングシステムやオンラインゲームの進行を制御するための制御用プログラム等の様々なプログラムをメインメモリ12にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ12は、CPU11が実行するプログラムを格納するために用いられ、例えば、DRAMによって構成される。
As illustrated, the
ユーザI/F13は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、CPU11の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信I/F14は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介して端末装置30と通信可能に構成される。
The user I /
外部メモリ15は、例えば磁気ディスクドライブで構成され、オンラインゲームの進行を制御するための制御用プログラム等の様々なプログラムが記憶される。また、外部メモリ15には、ゲームにおいて用いられる各種データも記憶され得る。外部メモリ15に記憶され得る各種データは、サーバ10と通信可能に接続されるサーバ10とは物理的に別体のデータベースサーバに格納されてもよい。ディスクドライブ16は、CD−ROM、DVD−ROM、DVD−R等の各種の記憶メディアに格納されたデータを読み込み、又は、これらの記憶メディアにデータを書き込む。例えば、記憶メディアに格納されたゲームアプリケーションやゲームデータ等のデータは、ディスクドライブ16により読み込まれ、外部メモリ15にインストールされる。
The
一実施形態において、サーバ10は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバであり、端末装置30に対してゲームサービスを提供することができる。端末装置30は、ウェブページを表示するためのHTMLデータをサーバ10から取得し、取得したHTMLデータを解析して、当該ウェブページを端末装置30のユーザ(ゲームのプレイヤ)に提示することができる。このようなウェブページを介して提供されるゲームは、ブラウザゲームと称されることがある。外部メモリ15には、このウェブページを表示するためのHTMLデータも記憶される。HTMLデータは、HTML等のマークアップ言語で記述されたHTML文書から成り、このHTML文書には、様々な画像が関連付けられる。また、HTML文書には、ActionScriptやJavaScript(登録商標)等のスクリプト言語等で記述されたプログラムが埋め込まれ得る。
In one embodiment, the
外部メモリ15には、端末装置30においてブラウザソフトウェア以外の実行環境上で実行されるゲームアプリケーションも格納され得る。このゲームアプリケーションには、ゲームを実行するためのゲームプログラムや当該ゲームプログラム実行時に参照される画像データ等の各種データを含めることができる。ゲームプログラムは、例えば、Objective−C、Java(登録商標)等のオブジェクト指向プログラミング言語で作成される。作成されたゲームプログラムは、各種データとともに、アプリケーションソフトウェアとして外部メモリ15に記憶される。外部メモリ15に記憶されたアプリケーションソフトウェアは、配信要求に応じて端末装置30に配信される。サーバ10から配信されたアプリケーションソフトウェアは、端末装置30において、CPU31の制御に従って通信I/F34を介して受信され、受信されたゲームプログラムが外部メモリ35に送信され記憶される。このアプリケーションソフトウェアは、ユーザによる端末装置30の操作に応じて起動され、端末装置30に実装されたNgCore(商標)やAndroid(商標)等のプラットフォーム上で実行される。サーバ10は、端末装置30で実行されているゲームアプリケーションに対してゲームの進行に必要な各種データを提供する。また、サーバ10は、端末装置30から送信される各種データをユーザごとに記憶することで、ユーザごとにゲームの進行を管理することができる。
The
このように、サーバ10は、ゲームサービスを提供するウェブサイトを管理し、当該ウェブサイトを構成するウェブページを端末装置30からの要求に応じて配信することにより、ゲームを進行させることができる。また、サーバ10は、このようなブラウザゲームとは代替的に、又は、ブラウザゲームに加えて、端末装置30で実行されるゲームアプリケーションとの通信に基づいてゲームを進行させることができる。サーバ10は、いずれの態様でゲームを提供するにしても、各ユーザを識別する識別情報ごとにゲームの進行に必要なデータを記憶することができる。詳細な説明は省略するが、サーバ10は、ゲームの開始時のユーザの認証処理やゲームの進行に応じて発生する課金処理を行う機能を有することもできる。サーバ10によって提供されるゲームには、アクションゲーム、ロールプレイングゲーム、スポーツ対戦ゲーム、カードゲーム等の任意のゲームが含まれる。サーバ10のウェブサイト又はゲームアプリケーションによって実現されるゲームの種類は
、本明細書において明示されたものに限られない。
As described above, the
端末装置30は、一実施形態において、サーバ10から取得したゲーム用ウェブサイトのウェブページをウェブブラウザ上で表示すると共にゲームアプリケーションを実行するためのアプリケーション実行環境を実装した任意の情報処理装置であり、スマートフォン、タブレット端末、及びゲーム専用端末等が含まれ得る。
In one embodiment, the
端末装置30は、図示のとおり、CPU(コンピュータプロセッサ)31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、外部メモリ35と、を含み、これらの各構成要素がバス36を介して互いに電気的に接続されている。
As illustrated, the
CPU31は、外部メモリ35からオペレーティングシステム等の様々なプログラムをメインメモリ32にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ32は、CPU31が実行するプログラムを格納するために用いられ、例えば、DRAMによって構成される。
The
ユーザI/F33は、ユーザの入力を受け付ける情報入力装置と、CPU31の演算結果を出力する情報出力装置であり、タッチパネルを備える液晶ディスプレイなどの表示装置を含む。
The user I /
通信I/F34は、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介してサーバ10と通信可能に構成される。
The communication I /
外部メモリ35は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムを記憶する。また、外部メモリ35は、サーバ10から通信I/F34を介してゲームアプリケーションを受信した場合には、この受信したゲームアプリケーションを記憶する。
The
このようなアーキテクチャを有する端末装置30は、例えば、HTML形式のファイル(HTMLデータ)を解釈して画面表示するためのブラウザソフトウェアを備えており、このブラウザソフトウェアの機能によりサーバ10から取得したHTMLデータを解釈して、受信したHTMLデータに対応するウェブページを表示することができる。また、端末装置30は、ブラウザソフトウェアに組み込まれるプラグインソフト(例えば、アドビシステムズ社から提供されているFlash Player)を備えており、HTMLデータに埋め込まれたSWF形式のファイルをサーバ10から取得し、当該SWF形式のファイルをブラウザソフトウェア及びプラグインソフトを用いて実行することができる。
The
端末装置30においてゲームが実行されると、例えば、プログラムにより指示されたアニメーションや操作用アイコンが端末装置30の画面に表示される。ユーザは、端末装置30の入力インタフェースを用いてゲームを進行させるための指示を入力することができる。ユーザから入力された指示は、端末装置30のブラウザやNgCore(商標)等のプラットフォームの機能を通じてサーバ10に伝達される。
When the game is executed on the
次に、一実施形態におけるサーバ10のCPU11によって実行されるプログラム50について説明する。図2は、一実施形態におけるプログラム50のモジュール構成を示すブロック図である。プログラム50は、外部メモリ15等に記憶され、図示するように、端末装置30から送信される入力情報に応じてゲームを進行させるゲーム進行モジュール51と、ゲーム用画面(動画)を構成する連続する複数のフレームの1フレームを端末装置30に表示させるためのフレーム情報を当該連続する順序に従って生成する生成モジュ
ール52と、生成されたフレーム情報を端末装置30に対して送信するか否かを判定する判定モジュール53と、生成されたフレーム情報を圧縮する圧縮モジュール54と、端末装置30からのHTTPリクエストに対するHTTPレスポンスとして、複数の圧縮されたフレーム情報を連続する順序に従って端末装置30に送信する送信制御モジュール55と、を備える。こうしたプログラム50を実行することによって、一実施形態におけるサーバ10は、プログラム50が備える各モジュールの機能に対応する手段又はユニットとして機能する。
Next, the
図3は、サーバ10の外部メモリ15等に構成される統計情報管理テーブルで管理される情報の一例を示す説明図である。一実施形態における統計情報管理テーブルは、図示するように、端末装置30を識別する「端末ID」と対応付けて、この端末装置30に対して描画実行時間情報を要求した時刻を示す「送信時刻」、この要求に応じて端末装置30から送信された「描画実行時間情報」、この要求に応じて端末装置30から送信された描画実行時間情報をサーバ10で受信した時刻を示す「受信時刻」、この端末装置30に対するフレームレート(単位時間当たりのフレーム数)の上限値を示す「フレームレート上限値」等の情報が管理されている。ここで、「描画実行時間情報」は、一実施形態では、端末装置30において、ゲーム用画面の1フレームに対応するフレーム情報に記述された複数の描画コマンドの実行に要した時間の平均値(1フレームを描画するのに要する時間の平均値)であり、例えば、端末装置30において直近の所定数(例えば、10)のフレームに対応するフレーム情報に記述された複数の描画コマンドの実行に要した時間の移動平均値である。これらの統計情報管理テーブルで管理される情報を設定する動作については後述する。
FIG. 3 is an explanatory diagram illustrating an example of information managed by a statistical information management table configured in the
次に、こうして構成された一実施形態におけるサーバ10の動作について説明する。上述したように、一実施形態におけるサーバ10は様々なゲームを提供可能であるが、本発明の一実施形態を説明するために適した例として、複数のユーザによって同時にプレイされるマルチユーザオンラインゲームの提供に関係する動作について説明する。
Next, the operation of the
ここで、まず、一実施形態におけるマルチユーザオンラインゲームの概要を説明する。一実施形態におけるマルチユーザオンラインゲームでは、複数のユーザが自己のキャラクタ等を共通のゲーム空間内を移動させてゲームを進行させる。マルチユーザオンラインゲームのより具体的な例としては、ロールプレイングゲーム、シューティングゲーム、及びアクションゲーム等の様々なゲームを例示することができる。こうしたゲームを進行させる処理は、主にゲーム進行モジュール51を実行することによって行われる。具体的には、例えば、端末装置30からの入力情報として、キャラクタ等の移動操作に関する情報や所定のアクション(例えば、攻撃、会話、アイテムの取得等)の実行指示に関する情報等の様々な情報を受信し、この受信した入力情報に応じて、端末装置30を操作するユーザに対応するキャラクタ等のゲーム空間内での現在位置を演算したり、指示されたアクションに応じた処理(例えば、他のユーザに対応するキャラクタやノンプレイヤキャラクタとの対戦処理、会話処理、及びアイテムの取得処理等)を行ったり、ユーザの獲得した得点を計算する。
Here, first, an outline of a multi-user online game in one embodiment will be described. In a multi-user online game according to an embodiment, a plurality of users move their own characters and the like in a common game space to advance the game. As a more specific example of the multi-user online game, various games such as a role playing game, a shooting game, and an action game can be exemplified. The process of progressing such a game is performed mainly by executing the
次に、上述したゲームの進行に応じたゲーム用画面の端末装置30への表示に関する動作について説明する。図4は、マルチユーザオンラインゲームの進行に応じたゲーム用画面を端末装置30に表示させるためのフレーム情報生成・送信処理の一例を示すフロー図である。この処理は、サーバ10によって所定の時間間隔で(例えば、40ミリ秒毎に)繰り返し実行される。フレーム情報生成・送信処理では、まず、図示するように、ゲーム用画面の1フレームに対応するフレーム情報を生成する(ステップS110)。このフレーム情報は、マルチユーザオンラインゲームをプレイする複数のユーザ毎(即ち、端末装置30毎)に生成される。端末装置30に表示されるゲーム用画面60の1フレームの一
例を図5に示す。一実施形態におけるゲーム用画面60は、ユーザが操作するユーザキャラクタのゲーム空間内における現在位置に応じた画面が表示され、図示するように、背景62上に、ユーザが操作するユーザキャラクタ70、他のユーザが操作するユーザキャラクタ72、アイテム74、及びユーザが獲得したスコア等をテキスト表示するスコア表示オブジェクト76等の様々なオブジェクトが重畳して表示される。図示するように、背景62は、縦横に所定の長さ(例えば、縦16ピクセル×横16ピクセル等)を有する同一形状(この例では矩形状)の複数のタイル画像(単位オブジェクト)が縦方向及び横方向に連続して配置される領域として構成されており、例えば、背景62の左上隅の領域は、横方向に連続して配置される画像ファイルI1−I3と、その下側において横方向に連続して配置される画像ファイルI4−I6とによって構成されている。また、ユーザキャラクタ70は、画像ファイルI7、I8及びI9によって構成され、ユーザキャラクタ72は、画像ファイルI10、I11及びI12によって構成され、アイテム74は、画像ファイルI13によって構成されている。
Next, an operation related to the display on the
このように構成されたゲーム用画面60の1フレームを表示させるために端末装置30において実行される複数の描画コマンドがフレーム情報に記述される。描画コマンドは、例えば、端末装置30のブラウザによって実行可能なコマンドである。図6は、図5に例示したゲーム用画面60の1フレームを端末装置30に表示させるための描画コマンドが記述されたフレーム情報80の一例である。図示するように、フレーム情報80の上段領域82には、背景62を描画するための描画コマンドが記述されており、この上段領域82の下側の下段領域84には、背景62に重畳して配置する各オブジェクト(具体的には、ユーザキャラクタ70、ユーザキャラクタ72、アイテム74、及びスコア表示オブジェクト76)を描画するための描画コマンドが記述されている。描画コマンドには複数の種類が存在し、例えば、画像ファイルを描画するための「drawImage」コマンド、テキストを描画するための「fillText」コマンド、描画するオブジェクトの回転角度を設定する「rotate」コマンド等の描画コマンドが存在する。一実施形態において、描画コマンド「drawImage」は、引数として、画像ファイルを特定するファイル名、及び、この画像ファイルを描画する座標を特定する座標情報を含み、この座標情報によって特定される座標にファイル名によって特定される画像ファイルを描画するためのコマンドである。また、描画コマンド「fillText」は、引数として、描画するテキスト、及び、このテキストを描画する座標を特定する座標情報とを含み、座標情報によって特定される座標にテキストを描画するためのコマンドである。さらに、描画コマンド「rotate」は、引数として、オブジェクトの回転角度を含み、上述した「drawImage」や「fillText」等のオブジェクトを描画する描画コマンドと組み合せて用いられ(例えば、オブジェクトを描画する描画コマンドの直前に記述され)、組み合せて用いられた描画コマンドによって描画するオブジェクトの回転角度を設定するためのコマンドである。なお、こうした描画コマンドの種類及び用法は例示であって、その他の種類の描画コマンドを適用することもできる。例えば、HTML5のcanvas要素に準じたその他の描画コマンドの種類及び用法や、他の規格に準じた描画コマンドの種類及び用法を適用することもできる。
A plurality of drawing commands executed in the
フレーム情報の他の例であるフレーム情報90を図7に示す。このフレーム情報90は、上述したフレーム情報80に基づいて生成される。フレーム情報90は、具体的には、描画コマンド「drawImage」に含まれる座標情報が、直前に記述された同じ種類の描画コマンド「drawImage」に含まれる座標情報によって特定される座標との差異を座標情報として含むように変換されている。例えば、図示するように、「drawImage(“I2”,13,−4)」という描画コマンドは、直前に記述された描画コマンド「drawImage(“I1”,−3,−4)」の座標情報によって特定される座標との差異を座標情報として含むように、「drawImage(“I2”,16,0)」に変換されている。同様に、「drawImage(“I3”,29,−4)」とい
う描画コマンドは、「drawImage(“I3”,16,0)」に変換されている。ここで、背景62を構成する複数のタイル画像は、縦横に所定の長さを有する同一形状であるから、縦又は横に連続する2つのタイル画像の座標の差異は、何れの組合せにおいても同じ値となる(図7の例では、横に連続するタイル画像の座標の差異は「16,0」となる)。また、フレーム情報90は、描画コマンド「rotate」に含まれる回転角度情報が、直前に記述された同じ種類の描画コマンド「rotate」の回転角度情報によって特定される回転角度との差異を回転角度情報として含むように変換されている。例えば、図示するように、画像ファイル「I8」の回転角度を設定する描画コマンド「rotate(45)」及び画像ファイル「I9」の回転角度を設定する描画コマンド「rotate(45)」は、それぞれ「rotate(0)」に変換されている。ここで、例えば、ユーザキャラクタ70を構成する画像ファイルI7−I9のように、1つのオブジェクトを構成する複数の画像ファイルはフレーム内において同じ回転角度が設定される傾向にあるから、この結果、直前に記述された描画コマンド「rotate」の回転角度情報によって特定される回転角度との差異は連続して値「0」となる傾向となる。フレーム情報80及びフレーム情報90は何れも、直前のフレームのフレーム情報に依存せず、フレーム情報内に1つのフレームを描画するために必要な情報が含まれている。即ち、フレーム情報80及びフレーム情報90は何れも、先行するフレームのフレーム情報を用いることなく1フレームを端末装置30に表示させるための情報であると言える。
FIG. 7 shows
こうしてフレーム情報を生成すると、次に、生成したフレーム情報を端末装置30に送信するか否かを判定する(ステップS112)。一実施形態においては、上述した統計情報管理テーブルで管理されている端末装置30毎の「フレームレート上限値」の範囲内でフレーム情報が送信されるように、フレーム情報の送信の要否が判定される。例えば、このフレーム情報生成・送信処理が40ミリ秒毎に繰り返し実行される場合には、フレーム情報をそのまま送信するとフレームレートは25fps(1000/40ミリ秒)となるから、設定されている上限値が例えば25fpsより小さい20fpsである場合には、この上限値である20fpsの範囲内となるように、25フレームのうちの5フレームは(フレーム情報生成・送信処理を25回実行するうちの5回は)フレーム情報を送信しないと判定される。また、例えば、端末装置30毎に直近の実際のフレームレートを演算して統計情報管理テーブル等のテーブルを用いて管理し、この実際のフレームレートが上限値の範囲内となるまではフレーム情報を送信しないと判定するようにしても良い。なお、フレームレートの上限値の範囲内でフレーム情報が送信されるようにする方法は、これらに限定されない。また、統計情報管理テーブルの「フレームレート上限値」に値「0」が設定されている場合には、常に、フレーム情報を送信しないと判定される。「フレームレート上限値」の設定方法については後述する。
Once the frame information is generated in this way, it is next determined whether or not the generated frame information is transmitted to the terminal device 30 (step S112). In one embodiment, whether or not it is necessary to transmit frame information is determined so that the frame information is transmitted within the range of the “frame rate upper limit value” for each
そして、フレーム情報を送信すると判定された場合には、このフレーム情報を圧縮して端末装置30に送信し(ステップS114)、フレーム情報を送信しないと判定された場合には、このフレーム情報の送信をスキップして(ステップS116)、フレーム情報生成・送信処理を終了する。フレーム情報の圧縮は、様々な圧縮アルゴリズムを用いて行うことができ、例えば、「deflate」等の可逆圧縮アルゴリズムを用いて行うことができる。ここで、図7に例示したフレーム情報90のように、座標情報や回転角度情報が直前の座標や回転角度との差異となるように変換されたフレーム情報を用いる場合には、上述したように、座標情報や回転角度情報(描画コマンドの引数)に同じ値が多く含まれるから、フレーム情報を圧縮する際の圧縮率がより高くなる。また、フレーム情報の圧縮は、複数のフレームを跨って行うことができ、例えば、フレームを跨って辞書を用いた圧縮を行うこともできる。こうしたフレーム情報生成・送信処理が繰り返し実行されると、端末装置30では、受信したフレーム情報を復号すると共にフレーム情報に記述されている描画コマンドを例えばブラウザ上で実行し、ゲーム用画面60のフレームが順に繰り返し表示される。なお、上述したフレーム情報90のように、座標情報や回転角度情報が直
前の座標や回転角度との差異となるように変換されたフレーム情報である場合には、端末装置30において、座標情報や回転角度情報を、座標や回転角度を直接特定する情報に逆変換した上で、描画コマンドが実行される。
If it is determined that frame information is to be transmitted, this frame information is compressed and transmitted to the terminal device 30 (step S114). If it is determined that frame information is not to be transmitted, this frame information is transmitted. Is skipped (step S116), and the frame information generation / transmission process is terminated. The compression of the frame information can be performed using various compression algorithms, and for example, can be performed using a reversible compression algorithm such as “deflate”. Here, as described above, in the case of using the frame information converted so that the coordinate information and the rotation angle information are different from the previous coordinates and the rotation angle as in the
以上、ゲームの進行に応じたゲーム用画面の端末装置30への表示に関する動作について説明した。次に、端末装置30のパフォーマンス(処理能力)に関する統計情報の取得に関する動作について説明する。図8は、端末装置30の処理能力を特定するために統計情報を取得するための統計情報取得処理の一例を示すフロー図である。この処理は、サーバ10によって所定の時間間隔で(例えば、100ミリ秒毎に)繰り返し実行される。統計情報取得処理では、まず、図示するように、端末装置30に対して描画実行時間情報を要求する(ステップS200)。この要求は、マルチユーザオンラインゲームをプレイする複数のユーザが操作する端末装置30毎に行われる。描画実行時間情報の要求は、一実施形態では、サーバ10によって管理されている現在時刻と、描画実行時間情報の送信を指示する情報とを端末装置30に対して送信することによって行われる。これらの情報を受信した端末装置30では、受信した現在時刻(サーバ10が描画実行時間情報を要求した時刻)と端末装置30における描画実行時間情報とをサーバ10に対して送信する。ここで、一実施形態においては、端末装置30において描画実行時間情報(例えば、1フレーム描画するのに要する時間の平均値)を管理する処理を行うように記述されたプログラムが実行され、このプログラムの実行によって管理されている描画実行時間情報がサーバ10に対して送信される。
The operation related to the display on the
続いて、端末装置30から受信した情報を統計情報管理テーブルに登録する(ステップS210)。具体的には、受信した現在時刻が「送信時刻」に設定され、受信した描画実行時間情報が「描画実行時間情報」に設定され、これらの情報を受信した時刻が「受信時刻」に設定される。
Subsequently, the information received from the
そして、端末装置30に対するフレームレートの上限値を設定して(ステップS220)、この統計情報取得処理を終了する。フレームレートの上限値の設定は、様々な方法で行うことができる。例えば、描画実行時間情報に基づいて端末装置30によって処理可能なフレームレートを上限値として設定することができる。具体的には、例えば、端末装置30における1フレームの描画時間(の平均値)が50ミリ秒である場合には、1秒当たりに描画できるフレーム数は20となるから、フレームレートの上限値を20fps(Frames Per Second)又はそれより小さい値(例えば、20fps×0.8=16fps)とすることができる。また、フレームレートの上限値を設定する他の方法として、例えば、端末装置30に対して描画実行時間情報を要求してから端末装置30から描画実行時間情報を受信するまでの経過時間(ラウンドトリップタイム(RTT)、統計情報管理テーブルの送信時刻と受信時刻とに基づき計算することができる)に基づいて、端末装置30によって処理可能なフレームレートを上限値として設定することができる。具体的には、例えば、フレームレートの上限値を実験値等に基づいて「3000/RTT(ミリ秒)」と設定することができる。この場合、例えば、RTTが100ミリ秒である場合には、フレームレートの上限値は30fpsとなり、RTTが150ミリ秒である場合には、フレームレートの上限値は20fpsとなる。このようにRTTに基づいてフレームレートの上限値を設定することにより、例えば、モバイルネットワークにおいて基地局の切り替え(ハンドオーバー)が生じた場合等、一時的にRTTが増大した場合に、フレームレートの上限値が小さくなって端末装置30に対して送信されるフレーム情報が減少するから、端末装置30における通信状況が回復した後に処理すべきフレーム情報が減少し、通常の処理への早期の復旧を図ることができる。また、RTTが所定の閾値(例えば、500ミリ秒)を超える場合には、フレームレートの上限値に値「0」を設定するようにしても良い。こうすれば、端末装置30における通信状況が極端に悪い場合に、フレーム情報の送信を停止することができるから、通常の処理へのより一層の早期の復旧
を図ることができる。なお、ステップS220におけるフレームレートの上限値の設定は、統計情報取得処理とは別のタイミングで行うようにしても良い。このように、一実施形態のサーバ10では、描画実行時間情報(所定の情報/統計情報)の送信を端末装置30に対して要求し、端末装置30からの描画実行時間情報の送信に応じて特定された端末装置30の描画時間やRTT(処理能力)に基づいてフレーム情報を端末装置30に対して送信するか否かを判定し、送信すると判定されたフレーム情報を端末装置30に対して送信する。従って、端末装置30の処理能力に応じて、フレーム情報の送信の有無を制御するから、端末装置30の処理能力に応じたより適切なフレームレートでゲーム用画面を送信することができる。
Then, an upper limit value of the frame rate for the
以上、端末装置30のパフォーマンスに関する統計情報の取得に関する動作について説明した。次に、上述したフレーム情報生成・送信処理及び統計情報取得処理を実行するときに端末装置30との間で行われるHTTP通信の様子を説明する。フレーム情報生成・送信処理によって送信されるフレーム情報は、端末装置30からのHTTPリクエストに対するHTTPレスポンスとして送信される。一実施形態では、1つのHTTPレスポンスには複数のフレームに対応する複数のフレーム情報が含まれ、これらの複数のフレーム情報は、フレームの連続する順序に従って順に送信される。1つのHTTPレスポンスとして複数のフレーム情報を順に送信するには、例えば、HTTP/1.1におけるチャンク転送機能を適用すれば良い。即ち、例えば、上述したフレーム情報生成・送信処理によって繰り返し生成(及び圧縮)される1フレームのフレーム情報を1つのチャンクとして端末装置30に順に転送(送信)することができる。
The operation related to acquisition of statistical information related to the performance of the
図9は、一実施形態におけるサーバ10と端末装置30との間のHTTP通信の様子を例示するシーケンス図である。図示するように、端末装置30からフレーム情報の要求を伴うHTTPリクエスト1(第1のHTTPリクエスト)を受信すると、サーバ10は、このHTTPリクエスト1に応答し、このHTTPリクエスト1に対するHTTPレスポンス1(第1のHTTPレスポンス)として、複数のフレームに対応する複数のフレーム情報を端末装置30に対して順に送信する。そして、統計情報取得処理の実行に応じてサーバ10から端末装置30に対して統計情報(描画実行時間情報)を要求するタイミングで、上述したHTTPレスポンス1として、統計情報を要求する要求情報を端末装置30に対して送信する。図9の例では、サーバ10が「フレーム30」のフレーム情報を送信した後に、統計情報を要求する要求情報が端末装置30に対して送信されている。この要求情報を受信した端末装置30は、図示するように、統計情報を含む新たなHTTPリクエスト2(第3のHTTPリクエスト)をサーバ10に送信する。ここで、一実施形態では、図示するように、サーバ10は、上述した要求情報を端末装置30に対して送信した後も、HTTPレスポンス1としてフレーム情報の送信を継続し(図9の例では、「フレーム31」及び「フレーム32」のフレーム情報を継続して送信している)、端末装置30から統計情報を含む新たなHTTPリクエスト2を受信したときに、HTTPレスポンス1を終了する(例えば、チャンク転送機能を適用する場合には、長さがゼロのチャンクを転送する)。なお、HTTPリクエスト1に対するHTTPレスポンス1を終了する前に、端末装置30による新たなHTTPリクエスト2の送信を可能とするには、例えば、HTTP/1.1におけるパイプライン機能を適用すれば良い。ここで、HTTPレスポンス1として複数のフレーム情報が順に送信されている間、端末装置30は、受信したフレーム情報等をメインメモリ32等に記憶しておく必要があるが、HTTPレスポンス1を終了すると、HTTPレスポンス1として受信したフレーム情報等を記憶しておく必要がなくなり、メインメモリ32等のリソースが解放される。
FIG. 9 is a sequence diagram illustrating a state of HTTP communication between the
統計情報を含むHTTPリクエスト2を受信すると、サーバ10は、統計情報の受領を通知するHTTPレスポンス2を端末装置30に対して送信する。その後、端末装置30から、フレーム情報の要求を伴う新たなHTTPリクエスト3(第2のHTTPリクエス
ト)を受信すると、サーバ10は、このHTTPリクエスト3に応答し、このHTTPリクエスト3に対するHTTPレスポンス3(第2のHTTPレスポンス)として、複数のフレーム情報を端末装置30に対して順に送信する。図示するように、ここで送信されるフレーム情報は、上述したHTTPレスポンス1として端末装置30に最後に送信したフレーム情報に対応するフレーム(図9の例では「フレーム32」)に後続するフレーム(図9の例では「フレーム33」以降のフレーム)のフレーム情報である。
When receiving the HTTP request 2 including the statistical information, the
その後、同様に、統計情報を要求するタイミングで、統計情報を要求する要求情報がサーバ10から端末装置30に対して送信され、端末装置30から統計情報を含むHTTPリクエストを受信したときにHTTPレスポンスを終了し、端末装置30からのフレーム情報の要求を伴う新たなHTTPリクエストに応答して後続するフレームのフレーム情報を送信するという通信が、繰り返し実行される。なお、上述したサーバ10と端末装置30とのHTTP通信は、同一のTCPコネクションを用いて行われる。同一のTCPコネクションを用いた複数のHTTPリクエスト及びHTTPレスポンスの送受信は、例えば、HTTP/1.1における持続的接続機能を適用することによって実現することができる。このように、一実施形態におけるサーバ10は、複数のフレームに対応する複数のフレーム情報を1つのHTTPレスポンスとして端末装置30に送信するから、1フレームのフレーム情報を1つのHTTPレスポンスとして送信する場合(1つのHTTPレスポンスに1フレームのフレーム情報のみを含ませる場合)と比較して、HTTPメッセージの送受信の頻度を少なくすることができる。この結果、各メッセージのヘッダ情報等の送受信に起因する通信量の増大や各メッセージの処理に起因する端末装置30やサーバ10のCPU負荷の増大を抑制することができる。
Thereafter, similarly, request information for requesting statistical information is transmitted from the
以上説明した一実施形態におけるサーバ10では、ゲーム用画面60(動画)を構成する連続する複数のフレームの1フレームを端末装置30に表示させるためのフレーム情報を連続する順序に従って生成し、端末装置30からのHTTPリクエストに対するHTTPレスポンスとして、複数のフレーム情報を連続する順序に従って端末装置30に送信する。従って、HTTPレスポンスとして1つのフレーム情報のみを送信する場合と比較して、HTTPメッセージの送受信の頻度を少なくすることができる。この結果、各メッセージのヘッダ情報等の送受信に起因する通信量を低減したり、各メッセージの処理に起因するCPU負荷を低減することができる。
In the
また、一実施形態におけるサーバ10では、統計情報取得処理の実行に応じてサーバ10から端末装置30に対して統計情報を要求するタイミング(第2のタイミング)で、HTTPレスポンスとして統計情報の送信を要求する要求情報を端末装置30に送信し、端末装置30から統計情報を含む新たなHTTPリクエストを受信したときに(第1のタイミング)HTTPレスポンスを終了し、端末装置30からの新たなHTTPリクエストに対する新たなHTTPレスポンスとして、終了したHTTPレスポンスとして端末装置30に最後に送信したフレーム情報に対応するフレームに後続するフレームのフレーム情報を送信する。従って、統計情報を要求・取得するタイミングでHTTPレスポンスを終了させ、このHTTPレスポンスの終了に伴って、このHTTPレスポンスとして送信されたフレーム情報等の記憶に必要な端末装置30のリソースを解放させることができる。即ち、統計情報の要求・取得を契機としてHTTPセッションを切り替えることによって、フレーム情報の受信に起因する端末装置30側のリソースの逼迫を抑制することができる。
Further, in the
一実施形態では、統計情報を取得するタイミングでHTTPレスポンスを終了させるようにしたが、HTTPレスポンスを終了させるタイミングはこれに限定されない。例えば、統計情報以外の他の情報(例えば、ゲームを進行させるための各種の入力情報等)を取得するタイミングでHTTPレスポンスを終了させるようにしても良い。また、情報を取
得するタイミングでなくとも良く、例えば、所定の時間間隔で定期的に、HTTPレスポンスを終了して新たなHTTPリクエストに対する新たなHTTPレスポンスとして後続するフレーム情報を送信するようにしても良い。
In one embodiment, the HTTP response is terminated at the timing of obtaining the statistical information, but the timing of terminating the HTTP response is not limited to this. For example, the HTTP response may be terminated at a timing at which information other than the statistical information (for example, various input information for proceeding with the game) is acquired. In addition, it is not necessary to acquire the information. For example, the HTTP response is terminated periodically at a predetermined time interval, and the subsequent frame information is transmitted as a new HTTP response for a new HTTP request. good.
一実施形態では、ゲーム用画面の1フレームを端末装置30において表示するためのフレーム情報を生成し送信する態様について説明したが、フレーム情報の形式は特に限定されず、上述した描画コマンドが記述された形式以外の他の形式であってもよい。また、ゲーム以外の他のコンテンツの動画を構成するフレームのフレーム情報を生成し送信する態様とすることもできる。
In the embodiment, the aspect of generating and transmitting frame information for displaying one frame of the game screen on the
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。 The processes and procedures described in this specification are implemented by software, hardware, or any combination thereof other than those explicitly described in the embodiments. More specifically, the processes and procedures described in this specification are performed by mounting logic corresponding to the processes on a medium such as an integrated circuit, a volatile memory, a nonvolatile memory, a magnetic disk, or an optical storage. Realized. Further, the processes and procedures described in this specification can be implemented as a computer program and executed by various computers.
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。 Even if the processes and procedures described herein are described as being performed by a single device, software, component, or module, such processes or procedures may be performed by multiple devices, multiple software, multiple Component and / or multiple modules. In addition, even though the data, tables, or databases described herein are described as being stored in a single memory, such data, tables, or databases are provided on a single device. Alternatively, the data can be distributed and stored in a plurality of memories or a plurality of memories arranged in a plurality of devices. Further, the software and hardware elements described herein may be implemented by integrating them into fewer components or by decomposing them into more components.
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。 In the present specification, when the constituent elements of the invention are described as one or a plurality, or when they are described without being limited to one or a plurality of cases, they should be understood separately in context. The component may be either singular or plural.
1 システム
10 サーバ
20 通信網
30 端末装置
51 ゲーム進行モジュール
52 生成モジュール
53 判定モジュール
54 圧縮モジュール
55 送信制御モジュール
60 ゲーム用画面
80,90 フレーム情報
1
Claims (7)
前記連続する複数のフレームの1フレームを前記クライアント端末に表示させるためのフレーム情報を当該連続する順序に従って生成する生成手段と、
前記クライアント端末からの第1のHTTPリクエストに対する第1のHTTPレスポンスとして、複数の前記フレーム情報を前記連続する順序に従って当該クライアント端末に送信する送信制御手段と、
を備えるサーバ。 A server that displays a moving image composed of a plurality of continuous frames on a client terminal using HTTP communication,
Generating means for generating frame information for displaying one frame of the plurality of continuous frames on the client terminal according to the continuous order;
Transmission control means for transmitting a plurality of the frame information to the client terminal according to the continuous order as a first HTTP response to the first HTTP request from the client terminal;
A server comprising
前記クライアント端末からの前記所定の情報の送信に応じて特定された前記クライアント端末の処理能力に基づいて、前記生成されたフレーム情報を前記端末装置に送信するか否かを判定する判定手段を更に備え、
前記送信制御手段は、前記クライアント端末に送信すると判定された前記フレーム情報を当該クライアント端末に送信する、
サーバ。 The server according to claim 5, wherein
A determination unit for determining whether or not to transmit the generated frame information to the terminal device based on the processing capability of the client terminal specified in response to transmission of the predetermined information from the client terminal; Prepared,
The transmission control means transmits the frame information determined to be transmitted to the client terminal to the client terminal;
server.
前記連続する複数のフレームの1フレームを前記クライアント端末に表示させるためのフレーム情報を当該連続する順序に従って生成し、
前記クライアント端末からの第1のHTTPリクエストに対する第1のHTTPレスポンスとして、複数の前記フレーム情報を前記連続する順序に従って当該クライアント端末に送信する、
方法。 A method of displaying a moving image composed of a plurality of continuous frames on one or more computers on a client terminal using HTTP communication,
Generating frame information for displaying one frame of the plurality of consecutive frames on the client terminal in accordance with the sequential order;
As a first HTTP response to the first HTTP request from the client terminal, a plurality of the frame information is transmitted to the client terminal according to the continuous order.
Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014053227A JP2015088156A (en) | 2014-03-17 | 2014-03-17 | Server and method for displaying video image on client terminal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014053227A JP2015088156A (en) | 2014-03-17 | 2014-03-17 | Server and method for displaying video image on client terminal |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013226630A Division JP5504370B1 (en) | 2013-10-31 | 2013-10-31 | Server and method for displaying video on client terminal |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015088156A true JP2015088156A (en) | 2015-05-07 |
Family
ID=53050809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014053227A Pending JP2015088156A (en) | 2014-03-17 | 2014-03-17 | Server and method for displaying video image on client terminal |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015088156A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017134827A (en) * | 2016-01-25 | 2017-08-03 | エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation | Long polling processing method, system, and recording medium |
-
2014
- 2014-03-17 JP JP2014053227A patent/JP2015088156A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017134827A (en) * | 2016-01-25 | 2017-08-03 | エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation | Long polling processing method, system, and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5411386B1 (en) | Server and method for providing game | |
US10771565B2 (en) | Sending application input commands over a network | |
JP5411385B1 (en) | Server and method for providing game | |
US9460486B2 (en) | Image display system, information processing device, server, and image processing method | |
US20230046042A1 (en) | Picture display method and apparatus, terminal device, and storage medium | |
US9948691B2 (en) | Reducing input processing latency for remotely executed applications | |
JP5545687B1 (en) | Server and method for providing game | |
JP5504370B1 (en) | Server and method for displaying video on client terminal | |
JP6360711B2 (en) | Server and method for providing game | |
JP2015088156A (en) | Server and method for displaying video image on client terminal | |
US9398342B1 (en) | Interactive applications | |
JP2015036111A (en) | Server and method for providing game | |
JP2015036112A (en) | Server and method for providing game | |
JP6475923B2 (en) | GAME SYSTEM AND GAME SERVER USED FOR THE SAME | |
JP5740026B1 (en) | Server and method for displaying display screen | |
KR101839054B1 (en) | Apparatus and method for playing game on cloud network | |
KR20210002418A (en) | Apparatus, system, and method for remote connection |