(57)【要約】      （修正有）【課題】端末装置の要求によりサーバ装置が実行するプログラム処理を所望の条件で保存可能としたインタラクティブシステムを提供する。【解決手段】インタラクティブシステムは、ネットワーク３００を介してサーバ装置２００に接続され、サーバ装置にプログラム処理を要求し、サーバ装置から処理結果を受信し表示を行う端末装置１００と、端末装置からの要求に従いプログラム処理を行い、処理結果を端末装置に送信するサーバ装置とを有し、端末装置は、サーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件を判断し、サーバ装置に中断信号を送信する。【選択図】図１
2019164781.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバ装置に接続され、前記サーバ装置にプログラム処理を要求し、前記サーバ装置から処理結果を受信し表示を行う端末装置と、
前記端末装置からの要求に従いプログラム処理を行い、処理結果を前記端末装置に送信するサーバ装置とを有し、
前記端末装置は、前記サーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件を判断し、前記サーバ装置に中断信号を送信するインタラクティブシステム。
【請求項２】
前記サーバ装置は、前記中断信号を受信した場合に、前記端末装置に要求されたプログラム処理を一時中断することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項３】
前記サーバ装置は、前記中断信号を受信した場合に、所定の時間が経過するまで、前記端末装置に要求されたプログラム処理を継続し、所定の時間が経過した場合、前記端末装置に要求されたプログラム処理を一時中断することを特徴とする請求項２に記載のインタラクティブシステム。
【請求項４】
前記サーバ装置は、前記中断信号を受信した場合に、前記端末装置に要求されたプログラム処理の処理結果の送信を一時中断することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項５】
前記サーバ装置は、前記端末装置に要求されたプログラム処理の実行に使用される情報を記憶する実行メモリと、前記実行メモリとは別の保存メモリとを有し、前記一時中断する処理において、前記端末装置に要求されたプログラムに基づいて前記実行メモリに記憶された情報を前記実行メモリに保持することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項６】
前記サーバ装置は、前記端末装置に要求されたプログラム処理の実行に使用される情報を記憶する実行メモリと、前記実行メモリとは別の保存メモリとを有し、前記一時中断する処理において、前記端末装置に要求されたプログラムに基づいて前記実行メモリに記憶された情報を前記保存メモリに移動することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項７】
前記端末装置は、前記サーバ装置からの処理結果を表示する表示処理が、表示プログラムに基づいて実行され、前記表示プログラムの処理が一時中断した場合に、前記サーバ装置に前記中断信号を送信することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項８】
前記端末装置は、前記サーバ装置からの処理結果を表示する表示処理が、表示プログラムに基づいて実行され、この処理がマルチタスク処理のうち一つのタスクであり、前記表示プログラムの処理がバックグラウンド処理に移行した場合に、前記サーバ装置に前記中断信号を送信することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項９】
前記端末装置は、前記サーバ装置からの処理結果を表示する表示処理が、表示プログラムにより実行され、前記表示プログラム処理の実行に使用される情報を記憶する実行メモリと、前記実行メモリとは別の保存メモリとを有し、前記表示プログラム処理がマルチタスク処理のうち一つのタスクであり、前記表示プログラムに基づき前記実行メモリに記憶された情報を前記保存メモリに移動した場合に、前記サーバ装置に前記中断信号を送信することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項１０】
前記端末装置に要求されたプログラム処理が、前記端末装置からユーザの保存要求に従い、所定の条件でセーブデータを生成することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項１１】
ネットワークを介してサーバ装置に接続され、前記サーバ装置にプログラム処理を要求し、前記サーバ装置から処理結果を受信し表示を行い、表示処理の実行が中断される所定の条件を判断し、前記サーバ装置に中断信号を送信する端末装置。
【請求項１２】
ネットワークを介して端末装置に接続され、前記端末装置からの要求に従いプログラム処理を行い、処理結果を前記端末装置に送信し、前記端末装置から、前記サーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件に基づく中断信号を受信し、前記端末装置に要求されたプログラム処理を一時中断するサーバ装置。
【請求項１３】
ネットワークを介して接続されたサーバ装置にプログラム処理を要求する要求工程と、
前記サーバ装置から処理結果を受信する受信工程と、
前記受信工程で受信した処理結果を表示する表示工程と、
前記表示工程が中断される所定の条件を判断する判断工程と、
前記判断工程において中断を判断したとき前記サーバ装置に中断信号を送信する中断信号送信工程とを有する端末装置の制御方法。
【請求項１４】
コンピュータに、
ネットワークを介して接続されたサーバ装置にプログラム処理を要求する処理と、
前記サーバ装置から処理結果を受信する処理と、
前記処理結果を表示する処理と、
前記処理結果の表示処理が中断される所定の条件を判断する処理と、
前記中断される条件を判断したとき前記サーバ装置に中断信号を送信する処理とを実行させるプログラム。
【請求項１５】
請求項１４に記載のプログラムを記録した記録媒体。
【請求項１６】
ネットワークを介して接続された端末装置からの要求に従いプログラム処理を行うプログラム処理工程と、
前記プログラム処理工程における処理結果を前記端末装置に送信し送信する送信工程と、
前記端末装置から、前記端末装置内における前記サーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件に基づく中断信号を受信する中断信号受信工程と、
前記端末装置から要求されたプログラム処理を一時中断する中断工程とを有するサーバ装置の制御方法。
【請求項１７】
コンピュータに、
ネットワークを介して接続された端末装置からの要求に従いプログラム処理を行う処理と、
前記プログラム処理の処理結果を前記端末装置に送信し送信する処理と、
前記端末装置から、前記端末装置内における前記サーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件に基づく中断信号を受信する処理と、
前記端末装置から要求されたプログラム処理を一時中断する処理とを実行させるプログラム。
【請求項１８】
請求項１７に記載のプログラムを記録した記録媒体。
【請求項１９】
前記端末装置は、前記表示プログラムが展開される実行メモリを備え、
前記サーバ装置からの処理結果を表示する表示処理が、表示プログラムに基づいて実行され、この処理がマルチタスク処理のうち一つのタスクであり、前記表示プログラムの処理が前記実行メモリから排除されプログラム処理が終了する場合に、前記サーバ装置に前記中断信号を送信することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項２０】
さらに、前記プログラム処理の実行に使用される情報を記憶する実行メモリと、前記実行メモリとは別の保存メモリとを有し、
前記端末装置から、中断信号を受信したとき、前記実行メモリに記憶された前記プログラムに関する情報を所定の時間保持する請求項１２に記載のサーバ装置。
【請求項２１】
前記端末装置から、前記プログラムの処理の実行を再開する要求があった場合、前記実行メモリに保持された情報に基づき前記プログラム処理を再開する請求項２０に記載のサーバ装置。
【請求項２２】
前記端末装置との間で通信が途絶したとき、前記実行メモリに記憶された前記プログラムに関する情報を所定の時間保持する請求項１２に記載のサーバ装置。
【請求項２３】
前記端末装置から、前記サーバ装置への再接続があった場合、前記実行メモリに保持された情報に基づき前記プログラム処理を再開する請求項２２に記載のサーバ装置。
【請求項２４】
前記端末装置は、複数あり、一の端末装置から中断信号を受信し、他の端末装置から前記プログラムの処理の実行を再開する要求があった場合、前記実行メモリに保持された情報に基づき前記プログラム処理を再開し、前記他の端末装置に処理結果を送信する請求項１２に記載のサーバ装置。
【請求項２５】
前記一の端末装置と前記他の端末装置とから送信されるログイン情報が同一又は所定のグループに属する請求項２４に記載のサーバ装置。
【請求項２６】
ネットワークを介してサーバ装置に接続され、前記サーバ装置にプログラム処理を要求し、前記サーバ装置から処理結果を受信し表示を行う端末装置と、
前記端末装置からの要求に従いプログラム処理を行い、処理結果を前記端末装置に送信するサーバ装置とを有し、
前記端末サーバ装置は、前記端末装置からの要求に基づくプログラムを所定の条件に基づき一時中断し、前記サーバ装置内の実行メモリ内の前記プログラムに関する情報をそのまま前記実行メモリ内に保持するインタラクティブシステム。
【請求項２７】
前記所定の条件は、前記端末装置から前記サーバ装置で実行しているプログラムに対する入力操作に係る信号が一定時間されていないと判断した場合である請求項２６に記載のインタラクティブシステム。
【請求項２８】
前記所定の条件は、前記端末装置との間で所定の時間、通信が途絶した場合である請求項２６に記載のインタラクティブシステム。
【請求項２９】
コンピュータに、
ネットワークを介して接続された端末装置からの要求に従いプログラム処理を行う処理と、
前記プログラム処理の処理結果を前記端末装置に送信し送信する処理と、
前記端末装置から、前記端末装置内における前記サーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件に基づく中断信号を受信する処理と、
前記端末装置から要求されたプログラム処理のポーズ処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インタラクティブシステム、端末装置、サーバ装置、制御方法、プログラム、及び記録媒体に関し、特に端末装置からの要求に基づいてサーバ装置がプログラムの処理を行うインタラクティブシステム技術に関する。
本出願は、日本国において２０１４年３月２４日に出願された日本特許出願番号特願２０１４−６０７９０を基礎として優先権を主張するものであり、この出願は参照されることにより、本出願に援用される。
【背景技術】
【０００２】
ネットワーク接続可能なポータブルゲーム機やスマートフォン等のクライアント端末装置が普及している。このようなクライアント端末装置の普及により、インターネットにおけるネットワーク人口は増加している。近年では、ネットワークユーザに対する、インターネットを利用した様々なサービスが展開されており、ゲーム等のエンターテインメントサービスも提供されている。
【０００３】
ネットワークユーザに対するサービスとして、クラウドアプリケーションがある。クラウドアプリケーションとは、ネットワークに接続されたクラウドサーバを通じて機能やサービスを提供するアプリケーションプログラムであり、クライアント端末装置側では、クラウドサーバで処理したアプリケーションプログラムの結果として、例えば画像データや音声データを受け取り表示または再生する。
【０００４】
上述のクラウドアプリケーションでは、クラウドサーバでアプリケーションプログラムの描画処理を行うため、ゲーム専用機や高速なグラフィック処理能力を有するパーソナルコンピュータと比べ処理能力が低いポータブルゲーム機やスマートフォン等に対してもサービスの提供が可能となる。すなわち、サービスを利用することができるクライアント端末装置の数が増えるため、より多くのユーザに対してサービスを提供することが可能となる。
【０００５】
例えば、特許文献１では、クライアント端末装置の描画性能等の処理能力に依存せずに、ユーザがプレイ可能なゲームが開示されている。特許文献１のようなゲームでは、サーバ装置はクライアント端末装置においてなされた操作の情報を取得し、この情報を用いてゲームプログラムを実行して描画したゲーム画像を、クライアント端末装置に対して提供している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−２４３７０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１のようなゲームでは、サーバ装置においてゲームプログラムが実行されるため、リアルタイムにセーブデータを保存する仕組みを用いない限り、このゲームプログラム中において許可された条件下（いわゆるセーブポイント）でないとユーザがプログラムの進行状況を保存することが困難となる。
【０００８】
また、サーバ装置において動作するゲームプログラムにリアルタイムにセーブデータを保存する機能がない場合、特にネットワークに非対応のローカルな環境で用いられるゲームプログラムの場合、リアルタイムにセーブデータを保存するようにこのゲームプログラムを書き換えてサービスを提供することも考えられるが、ゲームプログラムを書き換える手間が発生する。
【０００９】
本発明の少なくとも一つの実施形態は、上述した関連技術における課題を解決するものであり、端末装置からの要求に従いサーバ装置が実行するアプリケーションプログラムの進行状況を適切に保存することができるインタラクティブシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、本発明の一実施形態に係るインタラクティブシステムは、ネットワークを介してサーバ装置に接続され、サーバ装置にプログラム処理を要求し、サーバ装置から処理結果を受信し表示を行う端末装置と、端末装置からの要求に従いプログラム処理を行い、処理結果を端末装置に送信するサーバ装置とを有し、端末装置が、サーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件を判断し、サーバ装置に中断信号を送信する。
【００１１】
また、上述した課題を解決するために、本発明の一実施形態に係る端末装置は、ネットワークを介してサーバ装置に接続され、サーバ装置にプログラム処理を要求し、サーバ装置から処理結果を受信し表示を行い、表示処理の実行が中断される所定の条件を判断し、サーバ装置に中断信号を送信する。
【００１２】
また、上述した課題を解決するために、本発明の一実施形態に係るサーバ装置は、ネットワークを介して端末装置に接続され、端末装置からの要求に従いプログラム処理を行い、処理結果を端末装置に送信し、端末装置からサーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件を判断した中断信号を受信し、端末装置に要求されたプログラム処理を一時中断する。
【発明の効果】
【００１３】
本発明の一実施形態によれば、端末装置からの要求に従いサーバ装置が実行するアプリケーションプログラムの進行状況を、このアプリケーションプログラムにおいて保存が許可された条件によらず適切に保存することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態に係るインタラクティブシステムのシステム構成を示した図である。
【図２】図２は、本発明の実施の形態に係る端末装置の機能構成を示したブロック図である。
【図３】図３は、本発明の実施の形態に係るサーバ装置の機能構成を示したブロック図である。
【図４】図４は、本発明の実施の形態に係る端末装置で実行されるゲーム画像表示処理を例示したフローチャートである。
【図５】図５は、本発明の実施の形態に係る端末装置で実行されるゲーム中断信号の送信処理を例示したフローチャートである。
【図６】図６は、マルチタスク処理の概念を説明する図である。
【図７】図７は、本発明の実施の形態に係る実行メモリと保存メモリの概念を説明する図である。
【図８】図８は、本発明の実施の形態に係るサーバ装置で実行されるゲーム画像生成送信処理を例示したフローチャートである。
【図９】図９は、本発明の実施の形態に係るサーバ装置で実行されるゲームプログラム一時中断処理を例示したフローチャートである。
【図１０】図１０は、本発明の実施の形態に係るサーバ装置で実行されるゲームプログラム一時中断処理を例示した他のフローチャートである。
【図１１】図１１は、本発明の実施の形態に係るサーバ装置で実行されるゲームプログラム再開処理を例示したフローチャートである。
【図１２】図１２は、本発明の実施の形態に係る端末装置で実行されるゲーム中断信号の送信処理を例示した他のフローチャートである。
【図１３】図１３は、本発明の実施の形態に係るサーバ装置で実行されるゲーム画像生成送信処理を例示した他のフローチャートである。
【図１４】図１４は、本発明の実施の形態に係るサーバ装置で実行されるゲームプログラム再開処理を例示したフローチャートである。
【図１５】図１５は、本発明の実施の形態に係る端末装置で実行されるゲーム中断信号の送信処理を例示した他のフローチャートである。
【図１６】図１６は、本発明の実施の形態に係るサーバ装置で実行されるゲーム画像生成送信処理を例示した他のフローチャートである。
【図１７】図１７は、本発明の実施の形態に係るサーバ装置で実行されるゲーム中断処理を例示した他のフローチャートである。
【図１８】図１８は、本発明の実施の形態に係るサーバ装置で実行されるゲーム中断処理を例示した他のフローチャートである。
【図１９】図１９は、本発明の実施の形態に係るサーバ装置で実行されるゲームプログラム再開処理を例示した他のフローチャートである。
【図２０】図２０は、本発明の実施の形態に係るサーバ装置で実行されるゲームプログラム再開処理を例示した他のフローチャートである。
【図２１】図２１は、本発明の実施の形態に係るサーバ装置で実行されるゲームプログラム一時中断処理を例示した他のフローチャートである。
【図２２】図２２は、本発明の実施の形態に係るサーバ装置で実行されるゲームプログラム一時中断処理を例示した他のフローチャートである。
【図２３】図２３は、本発明の実施の形態に係るサーバ装置で実行されるゲーム中断処理を例示した他のフローチャートである。
【図２４】図２４は、本発明の実施の形態に係るサーバ装置で実行されるゲーム中断処理を例示した他のフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態（以下、本実施の形態と称する。）について、図面を参照しながら以下の順序にて詳細に説明する。なお、本発明は、以下の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更が可能であることは勿論である。
１．インタラクティブシステムの構成
２．端末装置の構成
３．サーバ装置の構成
４．ゲーム画像表示処理
５．ゲーム中断信号の生成送信処理（１）
６．ゲーム画像生成送信処理（１）
７．ゲームプログラム一時中断処理（１）
８．ゲームプログラム一時中断処理（２）
９．ゲームプログラム再開処理（１）
１０．ゲームプログラム再開処理（２）
１１．ゲーム中断信号の生成送信処理（２）
１２．ゲーム中断信号の生成送信処理（３）
１３．ゲーム画像生成送信処理（２）
１４．ゲーム画像生成送信処理（３）
１５．ゲームプログラム一時中断処理（３）
１６．ゲームプログラム一時中断処理（４）
１７．ゲームプログラム再開処理（２）
１８．ゲームプログラム再開処理（３）
１９．ゲームプログラム一時中断処理（５）
２０．ゲームプログラム一時中断処理（６）
２１．ゲームプログラム一時中断処理（７）
【００１６】
＜１．インタラクティブシステムの構成＞
図１は、本実施の形態に係るインタラクティブシステムの構成を示す図である。
【００１７】
本実施の形態に係るインタラクティブシステムは、端末装置１００と、サーバ装置２００とからなり、端末装置１００とサーバ装置２００とがネットワーク３００を介して接続されている。
【００１８】
ここで、本実施の形態におけるインタラクティブシステムとは、ユーザによる端末装置の入力操作に応じてサーバ装置からゲームプログラムの処理結果が提供される、双方向型のシステムである。なお、提供されるプログラムの種別はゲームプログラムに限らず、プログラムの進行状況を保存することが求められる各種のアプリケーションプログラムや動画配信プログラムにも適用することができる。また、サーバ装置から受け取る処理結果はゲームプログラム処理の全部であっても一部であってもよい。具体的に処理結果は、例えば、ゲーム画像やゲーム音声が該当し、以下においてゲーム画像に適用して説明するが、これらに限定されるものではない。
【００１９】
まず、本実施の形態において端末装置１００は、サーバ装置２００において実行されるゲームプログラムに係るゲーム画像を符号化動画データとして受信し、受信した符号化動画データをゲーム画像として表示する。また、端末装置１００は、ユーザの操作入力情報をサーバ装置２００に送信するとともに、ゲーム画像の表示処理の実行が中断される所定の条件を判断し、中断信号をサーバ装置に送信する。
【００２０】
これにより端末装置１００は、ユーザに対してサーバ装置２００において実行されているゲームプログラムのゲーム画像を提供することができる。また、端末装置１００は、中断信号を送信することで、サーバ装置２００側で適切な中断処理をするように要求することができる。
【００２１】
なお、端末装置１００は、サーバ装置２００においてゲームプログラムの処理結果を表示することができる構成とされている。
【００２２】
また、端末装置１００は、例えばゲーム専用機、ポータブルゲーム機、スマートフォン、ＰＤＡ（Personal Digital Assistant）、タブレット等の、サーバ装置２００から受信した処理結果を表示するものであればよい。
【００２３】
次に、本実施の形態においてサーバ装置２００は、端末装置１００においてなされたユーザによる入力操作信号を受信し、この入力操作信号に応じてゲームプログラムのゲーム画像を１フレームごとに生成する。そしてサーバ装置２００は、生成したゲーム画像を圧縮、セキュリティ等を目的とした符号化を施し、得られた符号化動画データを端末装置１００に送信する。また、サーバ装置２００は、端末装置１００から中断信号を受信し、この中断信号に基づきゲームプログラムの一時中断処理を実行する。
【００２４】
なお、サーバ装置２００は、端末装置１００の操作信号を受信し、ゲームプログラムの処理結果を端末装置１００に送信する構成とされている。また、１フレームに係るゲーム画像の描画は、必ずしもサーバ装置２００において実行される必要はなく、例えばサーバ装置２００に接続された図示しない画像処理専用サーバにより実行されてもよい。また、端末装置１００においてゲーム画像の一部を描画し、サーバ装置２００で描画された画像と合成するようにしてもよい。
【００２５】
＜２．端末装置の構成＞
図２は、本実施の形態に係る端末装置１００の機能構成を示すブロック図である。
【００２６】
端末装置１００は、プログラムの実行処理を行う端末ＣＰＵ（Central Processing Unit）１０１と、端末ＣＰＵ１０１により実行されるプログラムを格納する端末ＲＯＭ（Read Only Memory）１０２と、プログラムやデータを展開する端末ＲＡＭ（Random Access Memory）１０３と、符号化されたデータを復号する端末復号部１０４と、サーバ装置２００と通信する端末通信部１０５と、端末ＣＰＵ１０１により実行されたプログラムの結果等を表示する端末表示部１０６と、ユーザにより各種の入力操作を受ける操作入力部１０７と、音声出力を行う音声出力部１０８と、プログラムやデータを固定的に保存する端末ストレージ１０９とを有する。
【００２７】
端末ＣＰＵ１０１は、端末装置１００が有する各ブロックの動作を制御する。具体的に、端末ＣＰＵ１０１は、例えば端末ＲＯＭ１０２に記録されているゲーム画像表示処理の動作プログラムを読み出し、端末ＲＡＭ１０３に展開して実行することにより、各ブロックの動作を制御する。ここで、前述の動作プログラムは、サーバ装置２００から受信した画像を表示する表示プレイヤとして機能する。ただし、端末装置１００で部分的な画像描画をすることを妨げるものではない。
【００２８】
端末ＲＯＭ１０２は、例えば読み込みのみ可能な不揮発性メモリである。端末ＲＯＭ１０２は、ゲーム画像表示処理等の動作プログラムに加え、端末装置１００が有する各ブロックの動作に必要な定数等の情報を記憶する。
【００２９】
端末ＲＡＭ１０３は、揮発性メモリである。端末ＲＡＭ１０３は、動作プログラムの展開領域としてだけでなく、端末装置１００が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【００３０】
端末復号部１０４は、後述する端末通信部１０５が受信した符号化動画データについて復号処理を行い、１以上フレームに係るゲーム画像を生成する。
【００３１】
端末通信部１０５は、端末装置１００が有する通信インタフェースである。端末通信部１０５は、ネットワーク３００を介して接続した、サーバ装置２００等の他の機器との間におけるデータ送受信を行う。データ送信時には端末通信部１０５は、ネットワーク３００あるいは送信先の機器との間で定められたデータ伝送形式にデータを変換し、送信先の機器へのデータ送信を行う。またデータ受信時には端末通信部１０５は、ネットワーク３００を介して受信したデータを、端末装置１００において読み取り可能な任意のデータ形式に変換し、例えば端末ＣＰＵ１０１の制御により端末ＲＡＭ１０３に記憶する。
【００３２】
なお、本実施の形態では端末装置１００とサーバ装置２００とは、ネットワーク３００を介して接続されるものとして説明するが、例えば端末装置１００とサーバ装置２００とが直接ケーブルにより接続される形態であってもよい。
【００３３】
端末表示部１０６は、例えばＬＣＤ（Liquid Crystal Display）等の端末装置１００が有する表示装置である。端末表示部１０６は、入力されたゲーム画像を表示領域に表示する表示制御を行う。なお、端末表示部１０６は、端末装置１００の外部にケーブル等により接続された大画面モニタ等であってもよい。
【００３４】
操作入力部１０７は、例えばタッチパネル、ゲームパッド等の端末装置１００が有するユーザインタフェースである。操作入力部１０７は、ユーザによりユーザインタフェースに対する入力操作がなされたことを検出すると、この入力操作に対応する入力操作信号を端末ＣＰＵ１０１に対して出力する。
【００３５】
音声出力部１０８は、例えばスピーカ等の端末装置１００が有する音響装置である。音声出力部１０８は、ゲーム画像とともに音声情報が提供される場合に、提供された音声情報を音声として出力する。なお、本実施の形態では、音声を出力する例を記載しないが、必要に応じて適用することが可能である。
【００３６】
端末ストレージ１０９は、端末ＲＡＭ１０３に展開された動作プログラムや、端末装置１００が有する各ブロックの動作において出力された中間データ等を固定的に記憶する格納領域として用いられる。なお、端末ストレージ１０９としてはＨＤＤ（Hard disk drive）等の各種の記憶手段を用いることができるが、ポータブルな端末装置においては不揮発性メモリを用いることが小型化、低電力化、耐衝撃性の上で好ましい。
【００３７】
＜サーバ装置２００の構成＞
図３は、本実施の形態に係るサーバ装置２００の機能構成を示すブロック図である。
【００３８】
サーバ装置２００は、プログラムの実行処理を行うサーバＣＰＵ（Central Processing Unit）２０１と、サーバＣＰＵ２０１により実行されるプログラムを格納するサーバＲＯＭ（Read Only Memory）２０２と、プログラムやデータを展開するサーバＲＡＭ（Random Access Memory）２０３と、画像処理演算を行うサーバＧＰＵ（Graphics Processing Unit）２０４と、サーバＧＰＵと接続されたサーバＶＲＡＭ（Video Random Access Memory）２０５と、データの符号化を行うサーバ符号化部２０６と、プログラムやデータを固定的に保存するサーバストレージ２０７と、端末装置１００と通信するサーバ通信部２０８とを有する。
【００３９】
サーバＣＰＵ２０１は、サーバ装置２００が有する各ブロックの動作を制御する。具体的にはサーバＣＰＵ２０１は、例えばサーバＲＯＭ２０２に記憶されている後述するゲーム画像生成送信処理等の動作プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより、各ブロックの動作を制御する。
【００４０】
サーバＲＯＭ２０２は、例えば読み込みのみ可能な不揮発性メモリである。サーバＲＯＭ２０２は、ゲーム画像生成送信処理等の動作プログラムに加え、サーバ装置２００が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【００４１】
サーバＲＡＭ２０３は、揮発性メモリである。サーバＲＡＭ２０３は、動作プログラムの展開領域としてだけでなく、サーバ装置２００が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【００４２】
サーバＧＰＵ２０４は、端末装置１００の端末表示部１０６に表示するゲーム画像の生成を行う。サーバＧＰＵ２０４は、サーバＣＰＵ２０１より描画命令を受信すると、この描画命令に基づきゲーム画像を描画し、描画したゲーム画像をサーバＶＲＡＭ２０５に格納する。
【００４３】
サーバ符号化部２０６は、サーバＶＲＡＭ２０５等に格納されたゲーム画像に対する符号化処理を行う。サーバ符号化部２０６は、例えば、符号化対象のゲーム画像をブロックに分割し、各ブロックをイントラ符号化（フレーム内符号化）あるいはインター符号化（フレーム間符号化）する。本実施の形態ではサーバ符号化部２０６は、例えば、各ブロックをＹＣｂＣｒの色チャネルごとに離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）した後、ランレングス符号化により圧縮する。
【００４４】
サーバストレージ２０７は、例えばＨＤＤ（Hard Disk Drive）等の、サーバ装置２００に着脱可能に接続される記録装置である。本実施の形態ではサーバストレージ２０７には、後述する中断信号を受信した際に、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５における実行メモリの内容を固定的に記憶する。
【００４５】
サーバ通信部２０８は、サーバ装置２００が有する通信インタフェースである。本実施の形態ではサーバ通信部２０８は、ネットワーク３００を介して接続した端末装置１００等の、他の機器との間におけるデータ送受信を行う。なお、サーバ通信部２０８は端末通信部１０５と同様に、通信仕様に従ったデータ形式の変換を行う。
【００４６】
＜４．ゲーム画像表示処理＞
本実施の形態の端末装置１００において実行されるゲーム画像表示処理について、図４のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、端末ＣＰＵ１０１が、例えば端末ＲＯＭ１０２に記録されている対応する処理プログラムを読み出し、端末ＲＡＭ１０３に展開して実行することにより実現することができる。
【００４７】
ステップＳ１０１で、端末ＣＰＵ１０１は、ユーザの入力操作部１０７からの入力操作に従い、サーバ連携プログラムを起動し、処理をステップＳ１０２へ進める。
【００４８】
ステップＳ１０２で、端末ＣＰＵ１０１は、端末通信部１０５によりサーバ装置２００との間で通信を行い相互接続を確認し、処理をステップＳ１０３へ進める。
【００４９】
ステップＳ１０３で、端末ＣＰＵ１０１は、ユーザが操作入力部２０７を操作することで入力したか、端末ＲＯＭ２０２または端末ＲＡＭ２０３に予め記録しておいた、ログイン情報をサーバ装置２００に送信し、処理をステップＳ１０４に進める。ここでログイン情報とは、少なくとも、ユーザを識別するためのユーザＩＤとパスワードとする。
【００５０】
ステップＳ１０４で、端末ＣＰＵ１０１は、送信したログイン情報に基づきサーバ装置２００から処理を提供可能なゲームプログラムのリストをサーバ装置２００から取得し、表示部１０６に表示し、ユーザが操作入力部２０７を操作することでユーザが選択したゲームプログラムを特定し、サーバ装置２００にこのゲームプログラムに係る処理とその処理結果の送信を要求する。そして、端末ＣＰＵ１０１は、処理をステップＳ１０５に進める。なお、ゲームプログラムに係る処理の一例としては、ゲーム画像の生成処理や、ゲーム音声の生成処理等、各種の処理であってもよいが、以下ではゲーム画像の生成処理として説明をするが、これらに限定するものではない。例えば、ユーザによるゲームプレイ中の入力操作もサーバ装置に対するプログラム処理の要求に含まれる。
【００５１】
ステップＳ１０５で、端末ＣＰＵ１０１は、サーバ装置２００からゲーム開始条件に関する情報を取得し、受信した情報に基づきゲーム開始条件を表示部１０６に列挙して表示し、ユーザが操作入力部２０７を操作することで選択したゲーム開始条件を特定し、サーバ装置２００にこのゲームプログラムの開始を要求する。そして、端末ＣＰＵ１０１は、処理をステップＳ１０６に進める。
【００５２】
ここで、詳細はサーバ装置２００の動作説明で行うが、ゲーム開始条件に関する情報としては、例えば、ゲームを最初から開始する、セーブポイントにおいてセーブしたデータがある場合にセーブポイントから開始する、中断データがある場合に中断データから開始する等の条件がある。複数のセーブデータや中断データがある場合にはこれらのうち何れかを選択することができるようにしてもよい。
【００５３】
ステップＳ１０６で、端末ＣＰＵ１０１は、端末通信部１０５がサーバ装置２００から符号化動画データの受信を開始し端末ＲＡＭ１０３等にバッファリングを開始する。そして、端末ＣＰＵ１０１は、ステップＳ１０７へ処理を進める。
【００５４】
ステップＳ１０７で、端末ＣＰＵ１０１は、受信して端末ＲＡＭ１０３等にバッファリングされた符号化動画データを端末復号部１０４に伝送し、端末復号部１０４にて復号処理を実行する。そして、端末ＣＰＵ１０１は、ステップＳ１０８へ処理を進める。
【００５５】
ステップＳ１０８で、端末ＣＰＵ１０１は、復号したゲーム画像を端末表示部１０６に表示する。以後、端末ＣＰＵ１０１は、ゲーム画像表示プログラムを用いてステップＳ１０６からステップ１０８に係る処理をループし、符号化動画データの受信が続く限り復号化したゲーム画像を端末表示部１０６に伝送する。
【００５６】
＜５．ゲーム中断信号の生成送信処理（１）＞
次に、本実施の形態の端末装置１００において実行されるゲーム中断信号の生成送信処理について、図５のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、端末ＣＰＵ１０１が、例えば端末ＲＯＭ１０２に記録されている対応する処理プログラムを読み出し、端末ＲＡＭ１０３に展開して実行することにより実現することができる。なお、本ゲーム中断信号の生成送信処理は、ゲーム画像表示プログラムのステップＳ１０６からステップＳ１０８と並列して処理される。
【００５７】
ステップＳ２０１で、端末ＣＰＵ１０１は、ユーザの入力操作部１０７からの入力操作に従い、ゲーム画像表示プログラム処理の中断が要求された場合又は、端末ＣＰＵ１０１の判断により強制的にゲーム画像表示プログラム処理の中断を必要とした場合、処理をステップＳ２０２に進め、中断要求が無い場合及び中断を必要としない場合、処理をステップＳ２０３に進める。
【００５８】
ステップＳ２０２で、端末ＣＰＵ１０１は、端末通信部１０５によりサーバ装置２００との間で通信を行い、サーバ装置２００で実行しているゲームプログラムがセーブ可能な所定の条件下であるか否か、いわゆるセーブポイントであるか否かを判断し、セーブ可能であると判断した場合には、ステップＳ２０４で、ユーザの入力操作信号をサーバ装置２００に送信する。ここで、詳細は後述するがサーバ装置２００では、サーバＣＰＵ２０１は、セーブポイントにおけるセーブデータを生成し、このセーブデータをサーバストレージ２０７等に保存する。
【００５９】
ステップＳ２０３で、端末ＣＰＵ１０１は、ゲーム画像表示プログラムが実行継続可能であるかを判断する。具体的には、図４において説明したゲーム画像表示プログラムがエラー等により動作していない場合等を判断して処理をステップＳ２０７に進める。また、端末ＣＰＵ１０１は、ゲーム画像表示プログラムが実行継続不可能若しくは実行していないと判断した場合も同様に、ステップＳ２０７に処理を進める。
【００６０】
一方、ステップＳ２０３で、端末ＣＰＵ１０１は、ゲーム画像表示プログラムが実行継続中であると判断した場合に、処理をステップＳ２０５に進める。
【００６１】
ステップＳ２０５で、端末ＣＰＵ１０１は、ゲーム画像表示プログラムがバックグラウンド処理されているか否かを判断する。端末ＣＰＵ１０１は、ゲーム画像表示プログラムがバックグラウンド処理されていると判断した場合、ステップＳ２０７に処理を進める。
【００６２】
一方、ステップＳ２０５で、端末ＣＰＵ１０１は、ゲーム画像表示プログラムがバックグラウンド処理されていないと判断した場合、すなわちフォアグラウンド処理されていると判断した場合、処理をステップＳ２０６に進める。
【００６３】
ここで、バックグラウンド処理について説明する。バックグランド処理とは、マルチタスク環境において、ユーザに対して端末表示部１０６等に表示されているフォアグランド処理に隠れて、端末表示部１０６等に表示されずに裏側で行われる処理のことである。バックグラウンド処理は、端末ＣＰＵ１０１のリソースを消費しつつ継続する処理である。図６に示すように、端末装置１００では、ゲーム画像表示プログラムは、オペレーティングシステム６０１上、若しくは図示しないミドルウェア上にて、マルチタスク処理されている。例えば、図６では、フォアグランド処理６０２が、ゲーム画像表示プログラムであり、バックグラウンド処理６０３が、プログラムＡ、プログラムＢ、プログラムＣ及びプログラムＤである。バックグラウンド処理中のプログラムＡがフォアグラウンド処理６０２に移行した場合、ゲーム画像表示プログラムがバックグラウンド処理へ移行することとなる。
【００６４】
ステップＳ２０６で、端末ＣＰＵ１０１は、実行のために展開されているゲーム画像表示プログラムに関する情報が実行メモリから保存メモリへ移動されたか否かを判断する。端末ＣＰＵ１０１は、ゲーム画像表示プログラムに関する情報が保存メモリへ移動されたと判断した場合、ステップＳ２０７に処理を進める。一方、端末ＣＰＵ１０１は、ゲーム画像表示プログラムに関する情報が保存メモリへ移動されていないと判断した場合、処理を終了する。具体的に、端末ＣＰＵ１０１は、端末ＲＡＭ１０３に展開されたゲーム画像表示プログラムが、端末ストレージ１０９に移動されたと判断されたか否かを判断する。
【００６５】
ここで、本実施の形態において、「移動」とは、実行メモリから保存メモリへ、メモリ内容をそのままコピーし、実行メモリのメモリ内容を開放する、すなわち、端末装置１００において、端末ＲＡＭ１０３内のゲーム画像表示プログラムに関する情報が、そのまま端末ストレージ１０９にコピーされ、端末ＲＡＭ１０３のゲーム画像表示プログラムに関する情報を開放することをいう。
【００６６】
ここで、本実施の形態における実行メモリとは、プログラムが実行される際にプログラムが読み出されるメモリであり、保存メモリと実行メモリとは異なりプログラムに関する情報を保存するために用いられるメモリである。なお、実行メモリと保存メモリは物理的に一つのものであることは妨げられないが、その性質上、読み書き速度が高速なものを実行メモリとして用い、読み書きの速度が低速なものを保存メモリとして物理的に異ならせることが好ましい。
【００６７】
例えば、実行メモリには、端末ＲＡＭ１０１が用いられ、その容量が有限である。このため、端末ＲＡＭ１０１にプログラムを多数展開すると容量を超えてしまう。ゲーム画像表示プログラム以外に、プログラムＢ、プログラムＣ、プログラムＤが実行されている場合、図７の上段に示すように、実行メモリに空きがある。しかし、図７の下段に示すように、プログラムＥ、プログラムＦを更に実行すると、空き容量が少なくなり、優先度の低いプログラムに関する情報は、保存メモリである端末ストレージ１０９に移動されることとなる。なお、本実施の形態において、移動とはメモリに記憶された情報を他のメモリに複写し、かつ元のメモリからこの情報を削除するものとする。
【００６８】
なお、保存メモリとしては、端末ストレージ１０９に限定されず、端末ＲＡＭ１０３内部に設けるようにしてもよいし、図示しない、他のメモリであってもよい。実行メモリと保存メモリとは物理的に同じメモリを用いてもよいし、用途に応じて適宜使い分けるようにしてもよい。
【００６９】
ここで、ステップＳ２０５において、端末ＣＰＵ１０１は、ゲーム画像表示プログラムに関する情報が実行メモリから排除された場合に、ゲーム画像表示プログラムの処理が終了するため、ステップＳ２０６以下の処理を実行するようにしてもよい。この場合、端末ＣＰＵ１０１は、ステップＳ２０６において、実行のために展開されているゲーム画像表示プログラムに関する情報が実行メモリから排除されたか否かを判断し、排除されていると判断した場合処理をステップＳ２０７に進める。
【００７０】
ステップＳ２０７で、端末ＣＰＵ１０１は、ゲーム画像表示プログラムの中断を判断し、中断信号をサーバ装置２００に送信する。なお、本実施の形態において、中断信号は、端末ＣＰＵ１０１におけるゲーム画像表示プログラムに係る処理が中断したという情報を含む信号か、端末装置１００とサーバ装置２００との間であらかじめ定めたＩＤ等を含む信号であればよい。
【００７１】
なお、端末装置１００が、スマートフォン等である場合、通話のための着呼応答プログラムが最優先処理される。そのため、スマートフォン等では、着信があった場合に、着呼応答プログラムがフォアグラウンド処理となり、他のプログラムがバックグラウンド処理となり、ユーザがゲームをプレイしている場合であっても、ゲーム画面の表示が中断されてしまう。そのため、ステップＳ２０５における判断処理は、中断時のゲームの進行状況を適切に保存するために有用である。
【００７２】
なお、ゲーム画像表示プログラムでは、ユーザの操作による一時停止（ポーズ）機能を設けるようにしてもよい。この場合には、ユーザの操作による一時停止要求に基づきステップＳ２０７における中断信号をサーバ装置２００に送信するようにしてもよい。
【００７３】
なお、ステップＳ２０１における、端末ＣＰＵ１０１の判断により強制的にゲーム画像表示プログラム処理の中断を必要とする場合としては、例えば、端末装置１００がスリープモードに移行した場合や、電話着呼応当による割り込み処理が発生した場合等を例示することができる。また、本実施の形態において、ステップＳ２０１、ステップＳ２０２、ステップＳ２０４は、ゲーム画像表示プログラムを構成する処理として必ずしも備える必要はない。
【００７４】
＜６．ゲーム画像生成送信処理（１）＞
サーバ装置２００において実行されるゲーム画像生成送信処理について、図８のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えばサーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲーム画像生成送信処理は、サーバ装置２００上でゲームプログラムを実行するランチャープログラムに内蔵してもよく、ランチャープログラムと並列処理するプログラムであってもよい。
【００７５】
なお、本実施の形態ではサーバ装置２００は、ゲーム画像を符号化動画データの形態で端末装置１００に提供するものとして説明する。
【００７６】
ステップＳ３０１で、サーバＣＰＵ２０１は、サーバ通信部２０８により端末装置１００との間で通信を行い相互接続を確認し、処理をステップＳ３０２に処理を進める。
【００７７】
ステップＳ３０２で、サーバＣＰＵ２０１は、端末装置１００から受信したログイン情報に基づきユーザ認証を行う。具体的に、サーバＣＰＵ２０１は、サーバストレージ２０７等に保存されているユーザＩＤとパスワードと、端末装置１００から受信したログイン情報を比較し、合致した場合にはサービス提供を受けているユーザによるログインであるとして認証を行う。
【００７８】
ステップＳ３０３で、サーバＣＰＵ２０１は、認証したユーザが登録若しくは購入等した履歴情報をサーバストレージ２０７等から取得し、提供可能なゲームプログラムの提示リストを作成し、端末装置１００に送信し、処理をステップＳ３０４に進める。
【００７９】
ステップＳ３０４で、サーバＣＰＵ２０１は、端末装置１００から選択されたゲームプログラムの情報を取得し、このゲームプログラムについて、ゲーム開始条件を判断し、開始条件に関する情報を端末装置１００に送信し、処理をステップＳ３０５に進める。
【００８０】
ステップＳ３０４における具体的なゲーム開始条件とは、詳細を後述するが、例えば、ゲームを最初から開始する、セーブポイントにおいてセーブしたデータがある場合、セーブポイントから開始する、中断データがある場合には、中断データから開始する等の条件がある。なお、複数のセーブデータや中断データがある場合にはこれらのうち何れかを選択することができるようにしてもよい。ここで、上述したセーブデータや、中断データはサーバストレージ２０７等に格納されているものとする。
【００８１】
ステップＳ３０５で、サーバＣＰＵ２０１は、端末装置１００から選択されたゲームプログラムの実行を開始する。具体的には、サーバＣＰＵ２０１は、ゲームプログラムを起動し、必要に応じてサーバＧＰＵ２０４に画像生成命令を行う。これにより、サーバＣＰＵ２０１は、ゲームプログラムの処理結果としてゲーム画像を生成する。
【００８２】
ステップＳ３０６で、サーバＣＰＵ２０１は、描画されたゲーム画像に対してサーバ符号化部２０６を用いて符号化処理命令を実行し、符号化動画データを生成する。そして、サーバＣＰＵ２０１は、処理をステップＳ３０７に進める。
【００８３】
ステップＳ３０７で、サーバＣＰＵ２０１は、ステップＳ３０７において生成した符号化動画データをサーバ通信部２０８に伝送し、端末装置１００に対して送信する。以後、サーバＣＰＵ２０１は、ゲーム画像生成送信処理としてステップＳ３０５からステップ３０７に係る処理をループし、ゲーム画像の生成が続く限り符号化動画データをサーバ通信部２０８に伝送する。なお、ステップＳ３０５からステップＳ３０７に係る処理は、数フレームごとに符号化動画データを生成し、符号化を行う処理である。
【００８４】
＜７．ゲームプログラム一時中断処理（１）＞
サーバ装置２００において実行されるゲームプログラム一時中断処理について、図９のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲームプログラム一時中断処理は、例えばサーバ装置２００が、端末装置１００から中断信号を受信したことを、サーバＣＰＵ２０１が検出した際に開始される。なお、端末装置１００では、図４で説明したゲーム画像表示プログラム、図５で説明した中断信号の送信を行うプログラム及び後述で説明する他の中断信号の送信を行うプログラムが動作しているものとして以下の説明を行う。
【００８５】
ステップＳ４０１で、サーバＣＰＵ２０１は、タイマー値Ｔ１をリセットし０としたうえで、処理をステップＳ４０２に進める。
【００８６】
ステップＳ４０２で、サーバＣＰＵ２０１は、サーバ通信部２０８を介して端末装置１００から中断信号を受信したか否かを判断する。サーバＣＰＵ２０１は、中断信号を受信していないと判断した場合には、再度ステップＳ４０２を繰り返す。一方、サーバＣＰＵ２０１は、中断信号を受信したと判断した場合、処理をステップＳ４０３に進める。
【００８７】
ステップＳ４０３で、サーバＣＰＵ２０１は、タイマー値Ｔ１に経過時間に対応する数値を加算し、処理をステップＳ４０４へ進める。
【００８８】
ステップＳ４０４で、サーバＣＰＵ２０１は、タイマー値Ｔ１が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ４０３の処理を行う。一方、サーバＣＰＵ２０１は、タイマー値Ｔ１が所定値を超えていると判断した場合には、所定時間が経過したと判断し、処理をステップＳ４０５に進める。
【００８９】
ステップＳ４０５で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムに係る実行メモリの情報を保持する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムの内容を保持する。そして、サーバＣＰＵ２０１は、処理をステップＳ４０６に進める。なお、ステップＳ４０５において、サーバＣＰＵ２０１は、保持したゲームプログラムに係る情報に保持する時刻を中断時刻として付加し、中断データとする。
【００９０】
ここで、本実施の形態において、「保持」とは、実行メモリから保存メモリへメモリ内容を移動させず、実行メモリ内の内容をそのまま継続して実行メモリ内に残す、すなわち、サーバ装置２００において、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内のゲームプログラムに関する情報を、サーバストレージ２０７へ移動せず、そのままサーバＲＡＭ２０３やサーバＶＲＡＭ２０５内に継続して残すことをいう。なお、本実施の形態において、サーバＶＲＡＭ２０５内のゲームプログラムに関する情報は、再度生成可能であるために予備的に保持するようにしてもよい。
【００９１】
ここで、本実施の形態における実行メモリとは、プログラムが実行される際にプログラムが読み出されるメモリであり、保存メモリと実行メモリとは異なりプログラムに関する情報を保存するために用いられるメモリである。なお、実行メモリと保存メモリは物理的に一つのものであることは妨げられないが、その性質上、読み書き速度が高速なものを実行メモリとして用い、読み書きの速度が低速なものを保存メモリとして物理的に異ならせることが好ましい。
【００９２】
例えば、実行メモリには、サーバＲＡＭ２０１やサーバＶＲＡＭ２０５が用いられ、その容量が有限である。このため、サーバＲＡＭ２０１にプログラムを多数展開すると容量を超えてしまうため、保存メモリであるサーバストレージ２０７に適宜プログラムに関する情報やデータを移動するようにしている。
【００９３】
なお、保存メモリとしては、サーバストレージ２０７に限定されず、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内部に設けるようにしてもよいし、図示しない、他のメモリであってもよい。実行メモリと保存メモリとは物理的に同じメモリを用いてもよいし、用途に応じて適宜使い分けるようにしてもよい。
【００９４】
ここで、実行メモリの保持について具体的に説明する。実行メモリの保持としては、ステップＳ４０４にて所定時間が経過したと判断したときの、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５の内容を、そのままサーバＲＡＭ２０３やサーバＶＲＡＭ２０５内に保持する場合がある。サーバＲＡＭ２０３には、ゲームプログラムの本体及びゲームプログラムの進行状況やバッファリング中の符号化動画データが記録されており、サーバＶＲＡＭ２０５には描画中のゲーム画像データに関する情報が記録されている。
【００９５】
すなわち、サーバＣＰＵ２０１は、サーバ装置２００において実行中のゲームプログラムの全てのメモリ情報をゲームの進行状況を含め保持するようにしている。より詳細に説明すると、選択されたゲームプログラムのためにランチャーが確保したメモリ空間すべてを保持する処理を行う。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であり、再開直後のゲーム画像の処理を早めるために予備的に保持するものとする。
【００９６】
ステップＳ４０６で、サーバＣＰＵ２０１は、ゲームプログラムの処理を停止するとともに、ステップＳ４０７で、端末装置１００への符号化動画データの送信を停止する。
【００９７】
なお、ステップＳ４０４における所定時間は、例えば、０分としてもよい。この場合、ただちにゲームプログラムの進行状況を保持することができる。
【００９８】
また、ステップＳ４０４における所定時間は、例えば、３０分程度に設定されている。これは、端末装置１００において、一時的にゲーム画像表示プログラムが中断された場合であってもすぐにゲーム画像表示プログラムが再開される場合があるからである。例えば、端末装置１００から中断信号を受信してすぐに、メモリ情報を実行メモリから保存メモリに移動する処理を開始してしまうと、後述する再起動の際にメモリを展開する時間がかかるため、ゲーム画像の送信処理が遅くなってしまうおそれがある。
【００９９】
また、ステップＳ４０５における処理は、保存メモリが実行メモリよりも処理速度が遅いメモリを使うことが多いため、一時中断処理は頻繁に発生させないように、上述したステップＳ４０４における所定時間を適宜設定することが好ましい。
【０１００】
なお、上述の処理フローにおいて、サーバＣＰＵ２０１は、端末装置１００との間で通信環境等が悪化し、端末装置１００とサーバ装置２００との間で通信が不可能と判断した場合に、上述のステップＳ４０５乃至ステップＳ４０７の処理を行うようにしてもよい。この場合も、上述したように通信不可能と判断した時から所定時間を経過するまではメモリ情報を実行メモリの保持を待つようにしてもよい。
【０１０１】
＜８．ゲームプログラム一時中断処理（２）＞
サーバ装置２００において実行されるゲームプログラム一時中断処理について、図１０のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲームプログラム一時中断処理は、例えばサーバ装置２００が、端末装置１００から中断信号を受信したことを、サーバＣＰＵ２０１が検出した際に開始される。なお、端末装置１００では、図４で説明したゲーム画像表示プログラム、図５で説明した中断信号の送信を行うプログラム及び後述で説明する他の中断信号の送信を行うプログラムが動作しているものとして以下の説明を行う。
【０１０２】
ステップＳ４１１で、サーバＣＰＵ２０１は、タイマー値Ｔ２をリセットし０としたうえで、処理をステップＳ４１２に進める。
【０１０３】
ステップＳ４１２で、サーバＣＰＵ２０１は、サーバ通信部２０８を介して端末装置１００から中断信号を受信したか否かを判断する。サーバＣＰＵ２０１は、中断信号を受信していないと判断した場合には、再度ステップＳ４１２を繰り返す。一方、サーバＣＰＵ２０１は、中断信号を受信したと判断した場合、処理をステップＳ４１３に進める。
【０１０４】
ステップＳ４１３で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムに関する実行メモリの情報を保持する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムの内容を保持する。そして、サーバＣＰＵ２０１は、処理をステップＳ４１４に進める。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であり、再開直後のゲーム画像の処理を早めるために予備的に保持するようにしてもよい。
【０１０５】
ここで、本実施の形態において、「保持」とは、実行メモリから保存メモリへメモリ内容を移動させず、実行メモリ内の内容をそのまま継続して実行メモリ内に残す、すなわち、サーバ装置２００において、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内のゲームプログラムに関する情報を、サーバストレージ２０７へ移動せず、そのままアドレス情報を含めサーバＲＡＭ２０３やサーバＶＲＡＭ２０５内に継続して残すことをいう。
【０１０６】
ステップＳ４１４で、サーバＣＰＵ２０１は、タイマー値Ｔ２に経過時間に対応する数値を加算し、処理をステップＳ４１５へ進める。
【０１０７】
ステップＳ４１５で、サーバＣＰＵ２０１は、タイマー値Ｔ２が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ４１４の処理を行う。一方、サーバＣＰＵ２０１は、タイマー値Ｔ２が所定値を超えていると判断した場合には、所定時間が経過したと判断し、処理をステップＳ４１６に進める。
【０１０８】
ステップＳ４１６で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムに係る実行メモリの情報を移動する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムの内容をサーバストレージ２０７に移動する。そして、サーバＣＰＵ２０１は、処理をステップＳ４１７に進める。なお、ステップＳ４１６において、サーバＣＰＵ２０１は、移動したゲームプログラムに係る情報の移動を行う時刻を中断時刻として付加し、中断データとする。
【０１０９】
ここで、本実施の形態において、「移動」とは、実行メモリから保存メモリへメモリ内容をそのままコピーし、実行メモリのメモリ内容を開放する、すなわち、サーバ装置２００において、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内のゲームプログラムに関する情報が、そのままサーバストレージ２０７にコピーされ、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内のゲームプログラムに関する情報を開放することをいう。
【０１１０】
ここで、本実施の形態における実行メモリとは、プログラムが実行される際にプログラムが読み出されるメモリであり、保存メモリと実行メモリとは異なりプログラムに関する情報を保存するために用いられるメモリである。なお、実行メモリと保存メモリは物理的に一つのものであることは妨げられないが、その性質上、読み書き速度が高速なものを実行メモリとして用い、読み書きの速度が低速なものを保存メモリとして物理的に異ならせることが好ましい。
【０１１１】
例えば、実行メモリには、サーバＲＡＭ２０１やサーバＶＲＡＭ２０５が用いられ、その容量が有限である。このため、サーバＲＡＭ２０１にプログラムを多数展開すると容量を超えてしまうため、保存メモリであるサーバストレージ２０７に適宜プログラムに関する情報やデータを移動するようにしている。
【０１１２】
なお、保存メモリとしては、サーバストレージ２０７に限定されず、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内部に設けるようにしてもよいし、図示しない、他のメモリであってもよい。実行メモリと保存メモリとは物理的に同じメモリを用いてもよいし、用途に応じて適宜使い分けるようにしてもよい。
【０１１３】
ここで、実行メモリから保存メモリへの移動について具体的に説明する。実行メモリから保存メモリへの移動としては、ステップＳ４１５にて所定時間が経過したと判断したときの、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５の内容を、サーバストレージ２０７内に移動する場合がある。サーバＲＡＭ２０３には、ゲームプログラムの本体及びゲームプログラムの進行状況やバッファリング中の符号化動画データが記録されており、サーバＶＲＡＭ２０５には描画中のゲーム画像データに関する情報が記録されている。
【０１１４】
すなわち、サーバＣＰＵ２０１は、サーバ装置２００において実行中のゲームプログラムの全てのメモリ情報をゲームの進行状況を含めサーバストレージ２０７に移動するようにしている。より詳細に説明すると、選択されたゲームプログラムのためにランチャープログラムが確保したメモリ空間すべてをサーバストレージ２０７に移動する処理を行う。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であり、再開直後のゲーム画像の処理を早めるために予備的にサーバストレージ２０７に移動するものとする。
【０１１５】
ステップＳ４１７で、サーバＣＰＵ２０１は、ゲームプログラムの処理を停止するとともに、ステップＳ４１８で、端末装置１００への符号化動画データの送信を停止する。
【０１１６】
なお、ステップＳ４１５における所定時間は、例えば、０分としてもよい。この場合、ただちにゲームプログラムに関する情報を直ちに移動することができる。
【０１１７】
また、ステップＳ４１５における所定時間は、例えば、３０分程度に設定されている。これは、端末装置１００において、一時的にゲーム画像表示プログラムが中断された場合であってもすぐにゲーム画像表示プログラムが再開される場合があるからである。例えば、端末装置１００から中断信号を受信してすぐに、メモリ情報を実行メモリから保存メモリに移動する処理を開始してしまうと、後述する再起動の際にメモリを展開する時間がかかるため、ゲーム画像の送信処理が遅くなってしまうおそれがある。
【０１１８】
また、ステップＳ４１６における処理は、保存メモリが実行メモリよりも処理速度が遅いメモリを使うことが多いため、一時中断処理を頻繁に発生させないように、上述したステップＳ４１５における所定時間を適宜設定することが好ましい。
【０１１９】
なお、上述の処理フローにおいて、サーバＣＰＵ２０１は、端末装置１００との間で通信環境等が悪化し、端末装置１００とサーバ装置２００との間で通信が不可能と判断した場合に、上述のステップＳ４１３やステップＳ４１６乃至ステップＳ４１８の処理を行うようにしてもよい。この場合も、上述したように通信不可能と判断した時から所定時間を経過するまではメモリ情報を実行メモリから保存メモリに移動することを待つようにしてもよい。
【０１２０】
＜９．ゲームプログラム再開処理（１）＞
サーバ装置２００において実行されるゲームプログラム再開処理について、図１１のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、端末装置１００では、図４で説明したゲーム画像表示プログラムが動作しているものとして以下の説明を行う。
【０１２１】
ステップＳ５０１で、サーバＣＰＵ２０１は、端末装置１００からの要求に応じて起動しようとするゲームプログラムについて、サーバストレージ２０７に中断データがあるか否か判断し、中断データがないと判断された場合に処理を終了する。一方、サーバＣＰＵ２０１は、中断データがあると判断した場合、処理をステップＳ５０２に進める。
【０１２２】
ステップＳ５０２で、サーバＣＰＵ２０１は、中断データの情報として中断時刻等を端末装置１００に送信する。ここで、中断データが複数ある場合にその全てについて中断データの情報を送るようにしてもよいし、最新の中断データの情報のみを送るようにしてもよいが、以下では、複数の中断データがある場合について説明を行う。サーバＣＰＵ２０１は、中断データの情報を端末装置１００に送信後、処理をステップＳ５０３に進める。
【０１２３】
ステップＳ５０３で、サーバＣＰＵ２０１は、端末装置１００から中断データを選択した情報を得た場合、処理をステップＳ５０４に進め、中断データが選択されなかった場合は処理を終了する。
【０１２４】
ステップＳ５０４で、サーバＣＰＵ２０１は、選択された中断データをサーバストレージ２０７から読み出し、サーバＲＡＭ２０３及びサーバＶＲＡＭ２０５に展開することで、中断データに対応するゲームプログラムの進行状況を一時中断時のまま再現する。なお、サーバＶＲＡＭ２０５に展開するデータが無い場合で、サーバＧＰＵ２０４による画像描写が必要な場合、ＣＰＵ２０１は、サーバＧＰＵ２０４へ再度、ゲーム画像の描写命令を行い、サーバＧＰＵ２０４に一時中断時のサーバＶＲＡＭ２０５内のゲーム画像を再生成させる。
【０１２５】
ステップＳ５０５で、サーバＣＰＵ２０１は、サーバＲＡＭ２０３及びサーバＶＲＡＭ２０５に展開したゲームプログラムの処理を再開する。
【０１２６】
以上のように、サーバ装置２００では、中断データを用いて復帰処理を行うことができるので、中断信号を受信したときのゲームプログラムの進行状況を、ゲームプログラム固有のセーブポイントによるセーブ機能を使わずに保存することができ、既存のゲームプログラムを修正する必要はない。
【０１２７】
以上で説明したように、本実施の形態のインタラクティブシステムでは、端末装置からの要求に従いサーバ装置が実行するゲームプログラムの進行状況を適切に保存することができる。
【０１２８】
また、本実施の形態のインタラクティブシステムでは、ゲームプログラム中において許可された条件下（いわゆるセーブポイント）でない場合であっても、ゲームプログラムの進行状況を保存することができる。
【０１２９】
更に、本実施の形態のインタラクティブシステムでは、ネットワークに非対応のローカルな環境で用いられるゲームプログラムの場合、ゲームプログラムを書き換えずに進行状況の保存が任意にできるようになり、特に好適なサービスを提供することができる。
【０１３０】
なお、本発明は、上述した実施の形態に限定されず、ユーザによる端末装置の入力操作に応じてサーバ装置が実行するプログラムの処理結果を端末装置に提供し、更にユーザによる端末装置の入力操作に応じてサーバ装置がプログラムを実行することを反復継続して処理する、インタラクティブなシステムに適用することができる。例えば、エミュレータによる既存アプリケーションプログラムの処理の提供や、ＶＭ（Virtual Machine）等のサービス提供にも適用することができる。
【０１３１】
＜１０．ゲームプログラム再開処理（２）＞
サーバ装置２００において実行されるゲームプログラム再開処理について、図１２のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、端末装置１００では、図４で説明したゲーム画像表示プログラムが動作しているものとして以下の説明を行う。
【０１３２】
ステップＳ５１１で、サーバＣＰＵ２０１は、端末装置１００からの要求に応じて起動しようとするゲームプログラムについて、実行メモリであるサーバＲＡＭ２０３及びサーバＶＲＡＭ２０５にゲームプログラムの中断データが保持されているか否か判断し、保持されていないと判断された場合に処理を終了する。一方、サーバＣＰＵ２０１は、サーバＲＡＭ２０３及びサーバＶＲＡＭ２０５にゲームプログラムの中断データが保持されていると判断した場合、処理をステップＳ５１２に進める。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも保持されている必要はない。
【０１３３】
ステップＳ５１２で、サーバＣＰＵ２０１は、実行メモリに保持されている情報として中断時刻等を端末装置１００に送信し処理をステップＳ５１３に進める。これにより端末装置１００を操作するユーザは、中断時刻等を知ることが可能となり、実行メモリに保持されている中断データからゲームプログラムを再開するか否かを判断する指標を得ることができる。
【０１３４】
ステップＳ５１３で、サーバＣＰＵ２０１は、端末装置１００から実行メモリに保持された中断データから再開する要求を得た場合は処理をステップＳ５１４に進め、実行メモリに保持された中断データから再開を要求されなかった場合は処理を終了する。
【０１３５】
ステップＳ５１４で、サーバＣＰＵ２０１は、サーバＲＡＭ２０３及びサーバＶＲＡＭ２０５に保持されているゲームプログラムの進行状況を再現する。これによりサーバＣＰＵ２０１は、サーバＲＡＭ２０３及びサーバＶＲＡＭ２０５に保持されているゲームプログラムの処理を再開する。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも保持されている必要はない。具体的には、サーバＶＲＡＭ２０５に展開するデータが無い場合で、サーバＧＰＵ２０４による画像描写が必要な場合、サーバＣＰＵ２０１は、サーバＧＰＵ２０４へ再度、ゲーム画像の描写命令を行い、サーバＧＰＵ２０４に中断時のサーバＶＲＡＭ２０５内のゲーム画像を再生成する処理を行う。
【０１３６】
以上のように、サーバ装置２００では、実行メモリに保持された状態からゲームプログラムが再開されるため、進行状況の保存をゲームプログラム固有のセーブポイントによるセーブ機能を使わずに実現することができ、既存のゲームプログラムを修正する必要はない。
【０１３７】
以上で説明したように、本実施の形態のインタラクティブシステムでは、端末装置からの要求に従いサーバ装置が実行するゲームプログラムの進行状況を適切に保存することができる。
【０１３８】
また、本実施の形態のインタラクティブシステムでは、ゲームプログラム中において許可された条件下（いわゆるセーブポイント）でない場合であっても、ゲームプログラムの進行状況を保存することができる。
【０１３９】
更に、本実施の形態のインタラクティブシステムでは、ネットワークに非対応のローカルな環境で用いられるゲームプログラムの場合、ゲームプログラムを書き換えずに進行状況の保存が任意にできるようになり、特に好適なサービスを提供することができる。
【０１４０】
なお、本発明は、上述した実施の形態に限定されず、ユーザによる端末装置の入力操作に応じてサーバ装置が実行するプログラムの処理結果を端末装置に提供し、更にユーザによる端末装置の入力操作に応じてサーバ装置がプログラムを実行することを反復継続して処理する、インタラクティブなシステムに適用することができる。例えば、エミュレータによる既存アプリケーションプログラムの処理の提供や、ＶＭ（Virtual Machine）等のサービス提供にも適用することができる。
【０１４１】
＜１１．ゲーム中断信号の生成送信処理（２）＞
なお、本実施の形態の端末装置１００において実行されるゲーム中断信号の生成送信処理の他の例について、図１３のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、端末ＣＰＵ１０１が、例えば端末ＲＯＭ１０２に記録されている対応する処理プログラムを読み出し、端末ＲＡＭ１０３に展開して実行することにより実現することができる。なお、本ゲーム中断信号の生成送信処理は、図４に示すゲーム画像表示プログラムのステップＳ１０６からステップＳ１０８と並列して処理される。
【０１４２】
ステップＳ６０１で、端末ＣＰＵ１０１は、ユーザの入力操作部１０７から入力操作がなされたかどうかを判断する。端末ＣＰＵ１０１は、ユーザの入力操作部１０７から入力操作がなされていないと判断した場合には、処理をステップＳ６０２に進める。一方、端末ＣＰＵ１０１は、ユーザの入力操作部１０７から入力操作があったと判断した場合には、処理を終了する。
【０１４３】
ステップＳ６０２で、端末ＣＰＵ１０１は、タイマー値Ｔ３に経過時間に対応する数値を加算し、処理をステップＳ６０３へ進める。
【０１４４】
ステップＳ６０３で、端末ＣＰＵ１０１は、タイマー値Ｔ３が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ６０１の処理を行う。一方、端末ＣＰＵ１０１は、タイマー値が所定値Ｔ３を超えていると判断した場合には、ユーザの入力操作が所定時間されていないと判断し、処理をステップＳ６０４に進める。
【０１４５】
ステップＳ６０４で、端末ＣＰＵ１０１は、ユーザがゲームをプレイしていないと判断できるため、例えば端末ＣＰＵ１０１によって動作するＯＳ（Operating System）側からアプリケーションプログラムであるゲーム画像表示プログラム側にスリープモードに入るように指示をすることでアプリケーションプログラムをスリープモードに移行させ、処理をステップＳ６０５に進める。なお、端末ＣＰＵ１０１は、スリープモードに入ったアプリケーションプログラム以外のプログラム、例えばウォッチドッグプログラム等によってスリープモードが解除されるまで、ゲーム画像表示プログラムのスリープモードを継続する。
【０１４６】
ステップＳ６０５で、端末ＣＰＵ１０１は、中断信号をサーバ装置２００に送信する。なお、本実施の形態において、中断信号は、端末ＣＰＵ１０１におけるゲーム画像表示プログラムに係る処理が中断したという情報を含む信号か、端末装置１００とサーバ装置２００との間であらかじめ定めたＩＤ等を含む信号であればよい。
【０１４７】
なお、ステップＳ６０４とステップＳ６０５の処理は入れかえても差し支えなく、同時に実行するようにしても構わない。
【０１４８】
なお、端末ＣＰＵ１０１は、端末装置１００の操作入力部１０７等の操作により電源ボタンが押下され、シャットダウン処理を行う場合に、端末装置１００をシャットダウンする前に中断信号をサーバ装置２００に送信するようにしてもよい。また、端末ＣＰＵ１０１は、上述で説明したユーザ入力の有無以外にもゲーム画像表示プログラムが中断する、着呼応答等の場合等に中断信号を生成し、サーバ装置２００に送信するようにしてもよい。
【０１４９】
＜１２．ゲーム中断信号の生成送信処理（３）＞
なお、本実施の形態の端末装置１００において実行されるゲーム中断信号の生成送信処理の他の例について、図１４のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、端末ＣＰＵ１０１が、例えば端末ＲＯＭ１０２に記録されている対応する処理プログラムを読み出し、端末ＲＡＭ１０３に展開して実行することにより実現することができる。なお、本ゲーム中断信号の生成送信処理は、図４に示すゲーム画像表示プログラムのステップＳ１０６からステップＳ１０８と並列して処理される。また、電源ボタンが押下されるまで繰り返しこの処理を行うものとする。
【０１５０】
ステップＳ６１１で、端末ＣＰＵ１０１は、ユーザの入力操作部１０７から入力操作によって電源ボタンが押下されたかどうかを判断する。端末ＣＰＵ１０１は、ユーザの入力操作によって電源ボタンが押下されたと判断した場合には、処理をステップＳ６１２に進める。ここで、電源ボタンの押下操作による端末装置１００の応答処理にはシャットダウン処理とスリープ処理とが少なくとも含まれるものとする。一方、端末ＣＰＵ１０１は、ユーザの入力操作部１０７から操作がなかったと判断した場合には、処理を終了する。なお、入力操作部１０７は、電源ボタンとして上述したタッチパネル以外にハードウェアキーを有するようにしてもよいし、特殊な入力操作を行うことにより電源ボタンを押下したとする信号を端末ＣＰＵ１０１に出力するようにしてもよい。
【０１５１】
ステップＳ６１２で、端末ＣＰＵ１０１は、中断信号をサーバ装置２００に送信する。なお、本実施の形態において、中断信号は、端末ＣＰＵ１０１におけるゲーム画像表示プログラムに係る処理が中断したという情報を含む信号か、端末装置１００とサーバ装置２００との間であらかじめ定めたＩＤ等を含む信号であればよい。
【０１５２】
ステップＳ６１３で、端末ＣＰＵ１０１は、例えば、端末装置１００のシャットダウン処理を実行し、処理を終了する。ここで、シャットダウン処理とは、端末ＣＰＵ１０１の処理を停止させ、端末装置１００全体の電源を切るものとするが、端末装置１００内部において一部の構成要素の動作が継続されることを妨げるものではない。なお、図１３で説明したステップＳ６０４と同様に、ＯＳ側からゲーム画像表示プログラム側にスリープモードに入るように指示をすることでゲーム画像表示プログラムをスリープモードに移行させ、処理を終了するようにしてもよい。この場合、スリープモードから復帰後、図４で説明したステップＳ１０３のようなログイン処理を再度する必要はなく、ゲームプログラムの再開を速やかに行うことができる。
【０１５３】
なお、ステップＳ６１２とステップＳ６１３の処理は並行して実行するようにしても構わない。すなわち、ステップＳ６１３のシャットダウン処理の一部として、ステップＳ６１２の中断信号の送信処理を行うこととしてもよい。
【０１５４】
＜１３．ゲーム画像生成送信処理（２）＞
サーバ装置２００において実行される他のゲーム画像生成送信処理について、図１５のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えばサーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲーム画像生成送信処理は、例えば、サーバ装置２００の提供するゲームプログラムに係る処理とその処理結果の送信の要求を端末装置１００から受信したことを、サーバＣＰＵ２０１が検出した際に開始されるものとして説明する。また、本ゲーム画像生成送信処理は、サーバ装置２００上でゲームプログラムを実行するランチャープログラムに内蔵してもよく、ランチャープログラムと並列処理するプログラムであってもよい。
【０１５５】
なお、本実施の形態ではサーバ装置２００は、ゲーム画像を符号化動画データの形態で端末装置１００に提供するものとして説明する。
【０１５６】
ステップＳ７０２で、サーバＣＰＵ２０１は、サーバ通信部２０８により端末装置１００との間で通信を行い相互接続を確認し、処理をステップＳ７０３に処理を進める。
【０１５７】
ステップＳ７０３で、サーバＣＰＵ２０１は、端末装置１００から受信したログイン情報に基づきユーザ認証を行う。具体的に、サーバＣＰＵ２０１は、サーバストレージ２０７等に保存されているユーザＩＤとパスワードと、端末装置１００から受信したログイン情報を比較し、合致した場合にはサービス提供を受けているユーザによるログインであるとして認証を行う。
【０１５８】
ステップＳ７０４で、サーバＣＰＵ２０１は、実行メモリ上にゲームプログラムに関する情報が保持されているか否かを判断し、保持されていると判断した場合には、処理をステップＳ７０５へ進める。サーバＣＰＵ２０１は、実行メモリ上にゲームプログラムに関する情報が保持されているか否かを判断し、保持されていないと判断した場合には、処理をステップＳ７０６へ進める。なお、ここでいう実行メモリは、サーバＲＡＭ２０２及びサーバＶＲＡＭ２０５とする。
【０１５９】
ステップＳ７０５で、サーバＣＰＵ２０１は、前回中断したゲームプログラムに関する情報を実行メモリから取得し、実行メモリ内の情報に基づきゲームプログラムを再開する処理を行い、処理をステップＳ７０７へ進める。すなわち、本ステップによって、実行メモリ内にゲームプログラムに関する情報が保持されているため、直ちにゲームプログラムの再開を行うことができる。
【０１６０】
一方、ステップＳ７０６で、サーバＣＰＵ２０１は、前回一時中断したゲームプログラムに関する情報をサーバストレージ２０７等の保存メモリから取得し、保存メモリ内の情報を端末ＲＡＭ２０３等の実行メモリに展開するとともに、展開した実行メモリ内の情報に基づきゲームを再開する処理を行い、処理をステップＳ７０７へ進める。
【０１６１】
ステップＳ７０７で、サーバＣＰＵ２０１は、再開処理後はシームレスにゲームプログラムの処理を継続実行する。具体的には、サーバＣＰＵ２０１は、ゲームプログラムによる描画処理を開始し、必要に応じてサーバＧＰＵ２０４に画像生成命令を行う。これにより、サーバＣＰＵ２０１は、ゲームプログラムの処理結果としてゲーム画像を生成する。また、サーバＣＰＵ２０１は、サーバＶＲＡＭ２０５に展開するデータが実行メモリに保持又は保存メモリに移動されていた場合は、実行メモリに保持又は保存メモリに移動されていたデータと連続するようにサーバＧＰＵ２０４に画像生成命令を行う。
【０１６２】
ステップＳ７０８で、サーバＣＰＵ２０１は、描画されたゲーム画像に対してサーバ符号化部２０６を用いて符号化処理命令を実行し、符号化動画データを生成する。そして、サーバＣＰＵ２０１は、処理をステップＳ７０９に進める。
【０１６３】
ステップＳ７０９で、サーバＣＰＵ２０１は、ステップＳ７０８において生成した符号化動画データをサーバ通信部２０８に伝送し、端末装置１００に対して送信させる。
【０１６４】
以後は、サーバＣＰＵ２０１は、ゲームプログラムを継続して通常通りの処理を行う。
【０１６５】
ここで、端末装置１００は、当初サーバ装置２００に接続されているものに限定されるものではない。すなわち、当初サーバ装置２００に接続されていたものがスマートフォン等の携帯端末装置であったとしても、次にユーザが操作する端末装置１００がゲーム専用機や高速なグラフィック処理能力を有するパーソナルコンピュータであってもよい。
【０１６６】
ユーザが移動中等にゲームをプレイする場合に異なる端末装置１００を用いることがあるため、ログイン情報が合致すれば、一定の時間内に、異なる端末装置１００からでもゲームを継続することができることは、ユーザの利便性を向上させ、時間や場所に応じて端末装置１００を変えながらゲームを継続して楽しむことが容易となる。
【０１６７】
なお、上述のように端末装置１００が異なる装置であった場合のサーバ装置２００の処理については、以下のように端末装置１００のハードウェアスペックに応じて可変とするようにしてもよい。
【０１６８】
＜１４．ゲーム画像生成送信処理（３）＞
サーバ装置２００において実行される他のゲーム画像生成送信処理について、図１６のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えばサーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲーム画像生成送信処理は、例えば、サーバ装置２００の提供するゲームプログラムに係る処理とその処理結果の送信の要求を端末装置１００から受信したことを、サーバＣＰＵ２０１が検出した際に開始される。また、本ゲーム画像生成送信処理は、サーバ装置２００上でゲームプログラムを実行するランチャープログラムに内蔵してもよく、ランチャープログラムと並列処理するプログラムであってもよい。
【０１６９】
なお、本実施の形態ではサーバ装置２００は、ゲーム画像を符号化動画データの形態で端末装置１００に提供するものとして説明する。
【０１７０】
ステップＳ７１２で、サーバＣＰＵ２０１は、サーバ通信部２０８により端末装置１００との間で通信を行い相互接続を確認し、処理をステップＳ７１３に処理を進める。
【０１７１】
ステップＳ７１３で、サーバＣＰＵ２０１は、端末装置１００から受信したログイン情報に基づきユーザ認証を行う。具体的に、サーバＣＰＵ２０１は、サーバストレージ２０７等に保存されているユーザＩＤとパスワードと、端末装置１００から受信したログイン情報を比較し、合致した場合にはサービス提供を受けているユーザによるログインであるとして認証を行う。
【０１７２】
ステップＳ７１４で、サーバＣＰＵ２０１は、端末装置１００から受信した端末固有情報に基づき端末装置のスペックを判別する。ここで、端末固有情報には、機種名、型番、描画能力、ＣＰＵ処理能力等、ハードウェアスペックを判別するに足る情報を少なくとも一つ含む。サーバＣＰＵ２０１は、端末装置のスペックが所定の能力以下であると判断した場合には、処理をステップＳ７１５へ進める。一方、サーバＣＰＵ２０１は、端末装置のスペックが所定の能力以上であると判断した場合には、端末装置１００に対して画像描写の分担処理を要求するとともに、処理をステップＳ７１９へ進める。
【０１７３】
ステップＳ７１５で、サーバＣＰＵ２０１は、前回一時中断したゲームプログラムの情報を実行メモリ又は保存メモリから取得し、一時中断した情報が保存メモリにある場合には、実行メモリに展開したうえで、実行メモリ内の情報に基づきゲームを再開する処理を行い、処理をステップＳ７１６へ進める。
【０１７４】
ステップＳ７１６で、サーバＣＰＵ２０１は、再開処理後と連続するようにゲームプログラムの処理を継続する。すなわち、端末装置１００が、ゲーム専用機や高速なグラフィック処理能力を有するパーソナルコンピュータ等でない場合には、画像生成処理を全てサーバ装置２００で処理し、生成したゲーム画像を送信するストリーミングモードとする。なお、通常の初期設定では、生成したゲーム画像を送信するストリーミングモードを用いるようにしている。また、ハードウェアスペックが判別できない場合も同様とする。
【０１７５】
ステップＳ７１７で、サーバＣＰＵ２０１は、描画されたゲーム画像に対してサーバ符号化部２０６を用いて符号化処理命令を実行し、符号化動画データを生成する。そして、サーバＣＰＵ２０１は、処理をステップＳ７１８に進める。
【０１７６】
ステップＳ７１８で、サーバＣＰＵ２０１は、ステップＳ７１７において生成した符号化動画データをサーバ通信部２０８に伝送し、端末装置１００に対して送信させる。
【０１７７】
一方、ステップＳ７１９で、サーバＣＰＵ２０１は、前回一時中断したゲームプログラムの情報を実行メモリ又は保存メモリから取得し、一時中断した情報が保存メモリにある場合には、実行メモリに展開したうえで、実行メモリ内の情報に基づきゲームを再開する処理を行い、処理をステップＳ７２０へ進める。
【０１７８】
ステップＳ７２０で、サーバＣＰＵ２０１は、再開処理後と連続するようにゲームプログラムの処理を継続する。ここで、サーバＣＰＵ２０１は、ステップＳ７１４において判別したハードウェアスペックに応じて、画像生成処理の一部を端末装置１００に分担するようにしている。すなわち、端末装置１００が、ゲーム専用機や高速なグラフィック処理能力を有するパーソナルコンピュータである場合には、画像生成処理の一部を端末装置１００で処理可能である。このため、最終的に生成されるゲーム画像のうち、少なくとも、ユーザインタフェースに関連する箇所などユーザの入力操作に対して高いレスポンスの性能を必要とする箇所の描画を端末装置１００に分担させる。例えば、ユーザの入力操作に対して高いレスポンスの性能を必要とする箇所以外をサーバＧＰＵ２０４が描画する。
【０１７９】
ステップＳ７２１で、サーバＣＰＵ２０１は、描画されたゲーム画像に対してサーバ符号化部２０６を用いて符号化処理命令を実行し、符号化動画データを生成する。そして、サーバＣＰＵ２０１は、処理をステップＳ７２２に進める。
【０１８０】
ステップＳ７２２で、サーバＣＰＵ２０１は、ステップＳ７２１において生成した符号化動画データをサーバ通信部２０８に伝送し、端末装置１００に対して送信させる。
【０１８１】
ここで、端末装置１００は、ユーザの入力操作に対して高いレスポンスの性能を必要とする箇所のみを描画し、サーバ装置２００より受信したゲーム画像に、端末装置１００自身が描画したゲーム画像の一部を重畳し、最終的なゲーム画像を生成する。これにより、端末装置１００が描画した箇所について、サーバＧＰＵ２０４が最終的に生成される画像全てを描画する場合と比較して、ユーザの入力操作を早く反映することができる。
【０１８２】
以後は、サーバＣＰＵ２０１は、端末装置１００の変更があるまで、画像描写処理を端末装置１００とサーバ装置２００とで分担しながらゲームプログラムの処理を継続する。
【０１８３】
なお、上述したゲーム画像生成送信処理（１），（２），（３）において認証したユーザが登録若しくは購入等したユーザではなく、公開を許可されたユーザ（グループ）である場合に、公開を許可されたグループの情報をサーバストレージ２０７等から取得し、公開を許可されたユーザに対して、ゲーム画像の送信を行うようにしてもよい。公開を許可されたユーザとは、ゲストユーザであったり、フレンド登録を行ったユーザ等、適宜設定することができる。例えば、プレイ中のゲーム画面をストリーミング配信する用途に用いることができる。
【０１８４】
＜１５．ゲームプログラム一時中断処理（３）＞
サーバ装置２００において実行される他のゲームプログラム一時中断処理について、図１７のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲームプログラム一時中断処理は、例えばサーバ装置２００が、中断信号を受信したことを、サーバＣＰＵ２０１が検出した際に開始される。
【０１８５】
ステップＳ８０１で、サーバＣＰＵ２０１は、サーバ通信部２０８を介して端末装置１００から中断信号を受信したか否かを判断する。サーバＣＰＵ２０１は、中断信号を受信していないと判断した場合には、再度ステップＳ８０１を繰り返す。一方、サーバＣＰＵ２０１は、中断信号を受信したと判断した場合、処理をステップＳ８０２に進める。
【０１８６】
ステップＳ８０２で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムの実行を一時中断し、処理をステップＳ８０３へ進める。
【０１８７】
ステップＳ８０３で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムに係る実行メモリの情報を保持する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムの内容をサーバＲＡＭ２０３やサーバＶＲＡＭ２０５にそのまま保持する。そして、サーバＣＰＵ２０１は、処理をステップＳ８０４に進める。なお、ステップＳ８０３において、サーバＣＰＵ２０１は、ゲームプログラムに係る情報を保持する処理を行った時刻を中断時刻として付加し、中断データとする。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも保持する必要はない。
【０１８８】
すなわち、サーバＣＰＵ２０１は、サーバ装置２００において実行中のゲームプログラムの全てのメモリ情報をゲームの進行状況を含め保持するようにしている。より詳細に説明すると、選択されたゲームプログラムのためにランチャーが確保したメモリ空間すべてをサーバＲＡＭ２０３やサーバＶＲＡＭ２０５にそのまま保持する処理を行う。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも保持する必要はない。
【０１８９】
ステップＳ８０４で、サーバＣＰＵ２０１は、タイマー値Ｔ４をリセットし０としたうえで、処理をステップＳ８０５に進める。
【０１９０】
ステップＳ８０５で、サーバＣＰＵ２０１は、タイマー値Ｔ４に経過時間に対応する数値を加算し、処理をステップＳ８０６へ進める。
【０１９１】
ステップＳ８０６で、サーバＣＰＵ２０１は、端末装置１００からサーバ通信部２０８を介してサーバ装置２００へ再接続要求があった場合、若しくは中断解除が要求された場合、処理をステップＳ８０７へ進める。一方、サーバＣＰＵ２０１は、端末装置１００からサーバ通信部２０８を介してサーバ装置２００へ再接続要求がなく若しくは中断解除の要求もない場合、処理をステップＳ８０８へ進める。
【０１９２】
ステップＳ８０７で、サーバＣＰＵ２０１は、ステップＳ８０４において、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５にそのまま保持している実行メモリの情報に基づきゲームプログラムを再開し、処理を終了する。なお、ステップＳ８０８において、サーバＶＲＡＭ２０５に展開するデータが無い場合で、サーバＧＰＵ２０４による画像描写が必要な場合、サーバＣＰＵ２０１は、サーバＧＰＵ２０４へ再度、ゲーム画像の描写命令を行い、サーバＧＰＵ２０４に中断時のサーバＶＲＡＭ２０５内のゲーム画像を再生成する処理を行う。
【０１９３】
ステップＳ８０８で、サーバＣＰＵ２０１は、タイマー値Ｔ４が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ８０５の処理を行う。一方、サーバＣＰＵ２０１は、タイマー値Ｔ４が所定値を超えていると判断した場合には、所定時間が経過したと判断し、処理をステップＳ８０９に進める。
【０１９４】
ステップＳ８０９で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムに関する実行メモリの情報を保存メモリに移動する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムに関する情報をサーバストレージ２０７に移動する。そして、サーバＣＰＵ２０１は、処理をステップＳ８１０に進める。なお、ステップＳ８０９において、サーバＣＰＵ２０１は、ゲームプログラムに関する情報を移動する処理を行った時刻を中断時刻として付加し、中断データとする。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも移動する必要はない。
【０１９５】
ここで、本実施の形態における実行メモリとは、プログラムが実行される際にプログラムが読み出されるメモリであり、保存メモリと実行メモリとは異なりプログラムに関する情報を保存するために用いられるメモリである。なお、実行メモリと保存メモリは物理的に一つのものであることは妨げられないが、その性質上、読み書き速度が高速なものを実行メモリとして用い、読み書きの速度が低速なものを保存メモリとして物理的に異ならせることが好ましい。
【０１９６】
例えば、実行メモリには、サーバＲＡＭ２０１やサーバＶＲＡＭ２０５が用いられ、その容量が有限である。このため、サーバＲＡＭ２０１にプログラムを多数展開すると容量を超えてしまうため、保存メモリであるサーバストレージ２０７に適宜プログラムやデータを保存するようにしている。
【０１９７】
なお、保存メモリとしては、サーバストレージ２０７に限定されず、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内部に設けるようにしてもよいし、図示しない、他のメモリであってもよい。実行メモリと保存メモリとは物理的に同じメモリを用いてもよいし、用途に応じて適宜使い分けるようにしてもよい。
【０１９８】
ステップＳ８１０で、サーバＣＰＵ２０１は、ゲームプログラムの処理を停止するとともに、ステップＳ８１１で、端末装置１００への符号化動画データの送信を停止する。ここで、ステップＳ８１０における、ゲームプログラムの処理を停止するとは、ランチャープログラムが確保した当該ゲームプログラムに関する情報を実行メモリから完全に開放した状態にすることをいう。
【０１９９】
なお、ステップＳ８１１は、ステップＳ８０２の後であれば適宜、処理順序を入れかえても差し支えない。
【０２００】
また、ステップＳ８０９における処理は、保存メモリが実行メモリよりも処理速度が遅いメモリを使うことが多いため、一時中断処理は頻繁に発生させないように、上述したステップ８０８における所定時間を適宜設定することが好ましい。
【０２０１】
＜１６．ゲームプログラム一時中断処理（４）＞
サーバ装置２００において実行される他のゲームプログラム一時中断処理について、図１８のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲームプログラム一時中断処理は、例えばサーバ装置２００が、ゲーム画像の生成、送信処理を行っている際に適宜実行される。
【０２０２】
ステップＳ８２１で、サーバＣＰＵ２０１は、タイマー値Ｔ５及びタイマー値Ｔ６をリセットし０としたうえで、処理をステップＳ８２２に進める。
【０２０３】
ステップＳ８２２で、サーバＣＰＵ２０１は、サーバ通信部２０８を介して端末装置１００との間で通信が途絶したかどうかを判断する。サーバＣＰＵ２０１は、通信が途絶していないと判断した場合には、再度ステップＳ８２１を繰り返す。一方、サーバＣＰＵ２０１は、通信が途絶したと判断した場合、処理をステップＳ８２３に進める。
【０２０４】
ステップＳ８２３で、サーバＣＰＵ２０１は、タイマー値Ｔ５に経過時間に対応する数値を加算し、処理をステップＳ８２４へ進める。
【０２０５】
ステップＳ８２４で、サーバＣＰＵ２０１は、タイマー値Ｔ５が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ８２２の処理を行う。一方、サーバＣＰＵ２０１は、タイマー値Ｔ５が所定値を超えていると判断した場合には、所定時間が通信が途絶していると判断し、処理をステップＳ８２５に進める。
【０２０６】
ステップＳ８２５で、サーバＣＰＵ２０１は、端末装置１００と通信が途絶しており画像データの送信ができないためゲームプログラムの実行を一時中断し、処理をステップＳ８２６へ進める。
【０２０７】
ステップＳ８２６で、サーバＣＰＵ２０１は、一時中断時のゲームプログラムに関する情報を実行メモリに保持する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムの内容をサーバＲＡＭ２０３やサーバＶＲＡＭ２０５にそのまま保持する。そして、サーバＣＰＵ２０１は、処理をステップＳ８２７に進める。なお、ステップＳ８２６において、サーバＣＰＵ２０１は、ゲームプログラムに係る情報を保持する処理を行った時刻を中断時刻として付加し、中断データとする。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも保持する必要はない。
【０２０８】
ここで、実行メモリの保持について具体的に説明する。実行メモリの保持としては、ステップＳ８２５にて一時中断時の、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５の内容を、そのままサーバＲＡＭ２０３やサーバＶＲＡＭ２０５内に保持する。サーバＲＡＭ２０３には、展開されているゲームプログラムに関する情報及びゲームプログラムの進行状況やバッファリング中の符号化動画データが記録されており、サーバＶＲＡＭ２０５には描画中のゲーム画像データに関する情報が記録されている。
【０２０９】
すなわち、サーバＣＰＵ２０１は、サーバ装置２００において実行中のゲームプログラムの全てのメモリ情報をゲームの進行状況を含め保持するようにしている。より詳細に説明すると、選択されたゲームプログラムのためにサーバＲＡＭ２０３やサーバＶＲＡＭ２０５にランチャーが確保しているメモリ空間すべてを保持する処理を行う。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも保持する必要はないことは上述で述べたとおりである。
【０２１０】
ステップＳ８２７で、サーバＣＰＵ２０１は、タイマー値Ｔ６に経過時間に対応する数値を加算し、処理をステップＳ８２８へ進める。
【０２１１】
ステップＳ８２８で、サーバＣＰＵ２０１は、サーバ通信部２０８を介して端末装置１００との間で通信が回復したかどうかを判断する。サーバＣＰＵ２０１は、通信が回復していないと判断した場合には、処理をステップＳ８２９へ進める。一方、サーバＣＰＵ２０１は、通信が回復したと判断した場合、処理をステップＳ８３０に進める。
【０２１２】
ステップＳ８３０で、サーバＣＰＵ２０１は、ステップＳ８２６において、保持した実行メモリの情報に基づきゲームプログラムを再開し、処理を終了する。
【０２１３】
つぎに、ステップＳ８２９で、サーバＣＰＵ２０１は、タイマー値Ｔ６が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ８２７の処理を行う。一方、ステップＳ８２９で、サーバＣＰＵ２０１は、タイマー値Ｔ６が所定値を超えていると判断した場合には、端末装置１００との間で通信が途絶し通信の回復の見込みもないと判断し、処理をステップＳ８３１に進める。
【０２１４】
ステップＳ８３１で、サーバＣＰＵ２０１は、端末装置１００との間で通信が途絶し通信の回復の見込みもないため、ゲームプログラムに関する情報を実行メモリから保存メモリに移動する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムの内容をサーバストレージ２０７に移動する。そして、サーバＣＰＵ２０１は、処理をステップＳ８３２に進める。なお、ステップＳ８３１において、サーバＣＰＵ２０１は、ゲームプログラムに関する情報を移動する処理を行った時刻を中断時刻として付加し、中断データとする。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも移動する必要はない。
【０２１５】
ここで、本実施の形態における実行メモリとは、プログラムが実行される際にプログラムが読み出されるメモリであり、保存メモリと実行メモリとは異なりプログラムに関する情報を保存するために用いられるメモリである。なお、実行メモリと保存メモリは物理的に一つのものであることは妨げられないが、その性質上、読み書き速度が高速なものを実行メモリとして用い、読み書きの速度が低速なものを保存メモリとして物理的に異ならせることが好ましい。
【０２１６】
例えば、実行メモリには、サーバＲＡＭ２０１やサーバＶＲＡＭ２０５が用いられ、その容量が有限である。このため、サーバＲＡＭ２０１にプログラムを多数展開すると容量を超えてしまうため、保存メモリであるサーバストレージ２０７に適宜プログラムやデータを保存するようにしている。
【０２１７】
なお、保存メモリとしては、サーバストレージ２０７に限定されず、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内部に設けるようにしてもよいし、図示しない、他のメモリであってもよい。実行メモリと保存メモリとは物理的に同じメモリを用いてもよいし、用途に応じて適宜使い分けるようにしてもよい。
【０２１８】
ステップＳ８３２で、サーバＣＰＵ２０１は、ゲームプログラムの処理を停止するとともに、ステップＳ８３３で、端末装置１００への符号化動画データの送信を停止する。ここで、ステップＳ８３２における、ゲームプログラムの処理を停止するとは、ランチャープログラムが確保した当該ゲームプログラムに関する情報を実行メモリから完全に開放した状態にすることをいう。
【０２１９】
なお、ステップＳ８２１は、タイマーカウンタの加算ループ処理の前であれば、適宜、順序を入れかえても差し支えないし、タイマー値Ｔ５とタイマー値Ｔ６を別ステップにてリセットするようにしてもよいことは言うまでもない。
【０２２０】
また、ステップＳ８３１における処理は、保存メモリが実行メモリよりも処理速度が遅いメモリを使うことが多いため、一時中断処理は頻繁に発生させないように、上述したステップ８２９における所定時間を適宜設定することが好ましい。
【０２２１】
上述したような処理は、端末装置１００が、通信環境が良好ではないエリアにいる場合や、複数の無線通信基地局の境界などにおけるハンドオーバー処理の遅延など、一時的な通信途絶がある場合に特に有効である。従って、ユーザが使用する端末装置１００に想定される通信途絶時間に基づいて、適宜タイマー値Ｔ５及びタイマー値Ｔ６を設定することが好ましい。また、端末装置１００の通信状況が悪い場合に、サーバＣＰＵ２０１が、タイマー値Ｔ５やタイマー値Ｔ６を自動的に大きく設定するようにしてもよい。また、サーバＣＰＵ２０１が、端末装置１００の通信状況を連続的にモニタリングし、タイマー値Ｔ５やタイマー値Ｔ６をリアルタイムに可変するようにしてもよい。
【０２２２】
＜１７．ゲームプログラム再開処理（２）＞
サーバ装置２００において実行される他のゲームプログラム再開処理について、図１９のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。
【０２２３】
ステップＳ９０１で、サーバＣＰＵ２０１は、端末装置１００からの要求に応じて起動しようとするゲームプログラムについて、実行メモリであるサーバＲＡＭ２０３及びサーバＶＲＡＭ２０５に一時中断した情報が保持されているか否か判断し、一時中断した情報が保持されていないと判断された場合に処理を終了する。一方、サーバＣＰＵ２０１は、一時中断した情報が保持されていると判断した場合、処理をステップＳ９０２に進める。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも保持する必要はない。
【０２２４】
ステップＳ９０２で、サーバＣＰＵ２０１は、中断時刻等を端末装置１００に送信し、処理をステップＳ９０３に進める。これにより端末装置１００を操作するユーザは、中断時刻等を知ることが可能となり、実行メモリに保持されている状態からゲームプログラムを再開するか否かを判断する指標を得ることができる。
【０２２５】
ステップＳ９０３で、サーバＣＰＵ２０１は、端末装置１００から一時中断したゲームプログラムを再開する要求を含む情報を得た場合、処理をステップＳ９０４に進め、端末装置１００から一時中断したゲームプログラムを再開する要求がなかった場合には処理を終了する。
【０２２６】
ステップＳ９０４で、サーバＣＰＵ２０１は、実行メモリであるサーバＲＡＭ２０３及びサーバＶＲＡＭ２０５に保持された一時中断した情報からゲームプログラムの処理を再開する。なお、ステップＳ９０４において、サーバＶＲＡＭ２０５に展開するデータが無い場合で、サーバＧＰＵ２０４による画像描写が必要な場合、サーバＣＰＵ２０１は、サーバＧＰＵ２０４へ再度、ゲーム画像の描写命令を行い、サーバＧＰＵ２０４に一時中断時のサーバＶＲＡＭ２０５内のゲーム画像を再生成する処理を行う。
【０２２７】
なお、上述の処理では、サーバ装置２００が端末装置１００からゲームプログラムを再開する要求を含む情報を得た場合は、実行メモリであるサーバＲＡＭ２０３及びサーバＶＲＡＭ２０５に保持された一時中断した情報からゲームプログラムの処理を再開することとしたが、一時中断した情報が実行メモリであるサーバＲＡＭ２０３及びサーバＶＲＡＭ２０５に保持されている場合、端末装置１００からサーバ装置２００へのアクセス時にサーバ装置２００が自動的にゲーム画像の生成、送信等の処理を再開するようにしてもよい。
【０２２８】
以上のように、サーバ装置２００では、実行メモリに保持された情報を用いて復帰処理を行うことで、ゲームプログラム固有のセーブポイントによるセーブ機能を使わずに、所定の条件において一時中断したゲームプログラムの再開を実現することができる。特に、既存のゲームプログラムを修正する必要はない。所定の条件とは、上述したように、端末装置１００から中断信号を受信したときや、端末装置１００との間で通信が途絶したとき等、ゲームプログラムに関する情報が実行メモリに保持又は実行メモリから保存メモリに移動される各条件である。
【０２２９】
＜１８．ゲームプログラム再開処理（３）＞
サーバ装置２００において実行される他のゲームプログラム再開処理について、図２０のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。
【０２３０】
ステップＳ９１１で、サーバＣＰＵ２０１は、端末装置１００からの要求に応じて起動しようとするゲームプログラムについて、ポーズボタン押下によるポーズ状態にあるか否かを判断し、ポーズ状態ではないと判断した場合に処理を終了する。一方、サーバＣＰＵ２０１は、ポーズボタン押下によるポーズ状態にあると判断した場合、処理をステップＳ９１２に進める。なお、ポーズボタン押下状態とは、ユーザが端末装置１００を操作して、ポーズボタンを押下し、ゲームプログラムの進行を一時停止している状態であり、次の実施の形態で説明するサーバ装置２００側が通信途絶等の理由によりポーズボタン押下信号を等価的に生成し、割り込ませた場合を含む。
【０２３１】
ここで、本実施の形態において、「ポーズ」とは、ゲームプログラムが実装する処理の一つであり、例えば、ユーザのポーズボタン押下操作により要求がなされ、ゲームの進行が一時的に停止可能な状態であれば一時停止を行うが、ゲームプログラム自体は動作を継続し、実行メモリ内の情報の保持や移動は行わない処理である。言い換えると、「ポーズ」とは、ゲームの進行状況を一時停止するのであって、実行メモリ内の情報の書き換えが行われ得る処理である。
【０２３２】
ステップＳ９１２で、サーバＣＰＵ２０１は、ゲームプログラムの進行が一時停止しているポーズ状態であることを端末装置１００に送信し、処理をステップＳ９１３に進める。
【０２３３】
ステップＳ９１３で、サーバＣＰＵ２０１は、端末装置１００からポーズボタン押下操作によりポーズ処理を解除する要求を含む情報を得た場合、処理をステップＳ９１４に進め、ポーズ処理を解除する要求が無い場合には処理を終了する。
【０２３４】
ステップＳ９１４で、サーバＣＰＵ２０１は、ポーズ処理を解除し、ポーズ機能により進行状況が一時停止しているゲームプログラムの処理を再開する。
【０２３５】
なお、ゲームプログラムの進行状況の一時停止方法として、ゲームプログラム上に実装されているポーズ処理を発動するために、ユーザによる一時停止ボタンの押下操作の如何にかかわらず、サーバＣＰＵ２０１がポーズボタン操作信号を等価的に生成してゲームプログラムに割り込ませる方法をとることができる。ポーズボタン操作信号の生成は、ランチャープログラムが行ってもよいし、他のプログラムが行うこととしてもよい。
【０２３６】
また、ゲームプログラムの進行状況の一時停止方法として、ゲームプログラム上に実装されているメニュー表示機能を発動するために、ユーザによるメニューボタンの押下操作の如何にかかわらず、サーバＣＰＵ２０１がメニューボタン操作信号を等価的に生成してゲームプログラムに割り込ませる方法をとることもできる。メニューボタン操作信号の生成は、ランチャープログラムが行ってもよいし、他のプログラムが行うこととしてもよい。
【０２３７】
ここで、本実施の形態において、「メニュー表示」とは、ゲームプログラムが実装する処理の一つであり、例えば、ユーザの操作により要求がなされ、ポーズ処理と異なり、ゲームプログラムのメニュー画面を表示する処理である。なお、メニューボタンは、必ずしもゲーム画面に表示されている必要はなく、物理的なボタンが規定されていなくともよい。このため、「メニューボタン押下操作」とは、メニューボタン操作信号を生成するあらゆる操作を含むものとする。
【０２３８】
メニュー表示は、例えば、ゲームプログラムの進行中に、各種の設定を行ったり、ゲーム内アイテムを変更したりするためのメニュー画面を表示するものであり、メニュー表示が行われることによってゲームプログラムの進行が一時停止する点で、ポーズ処理と同等の機能を有する。
【０２３９】
しかしながら、ゲームプログラムにおいて、ポーズ処理を受け付けない場合、例えば、カットシーンや動画が再生されるだけの時間帯、いわゆるムービーシーン等の場合、ポーズ処理が行われない。そのため、サーバＣＰＵ２０１は、ゲームプログラムがメニュー表示機能を実装していれば、ポーズ処理を受け付けない場合であっても、メニューボタン操作信号をゲームプログラムに割り込ませることで、ゲームプログラムの進行を一時停止させることができる。
【０２４０】
なお、他の実施の形態においてポーズ処理を行う場合に、上記のメニュー表示機能を併用若しくは代替して用いることができるものとする。
【０２４１】
以上のように、サーバ装置２００では、ゲームプログラムに実装されたポーズ処理等によってもゲームの進行状況を適宜保存することができる。ポーズ処理が解除されることで、ゲームプログラムの再開を実現することができる。特に、既存のゲームプログラムを修正する必要はない。
【０２４２】
＜１９．ゲームプログラム一時中断処理（５）＞
サーバ装置２００において実行されるゲームプログラム一時中断処理について、図２１のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲームプログラム一時中断処理は、例えばサーバ装置２００が、端末装置１００から中断信号を受信したことを、サーバＣＰＵ２０１が検出した際に開始される。また、本ゲームプログラム一時中断処理は、図１８で説明したように、例えばサーバ装置２００が、端末装置１００との間で通信途絶等になったことを、サーバＣＰＵ２０１が検出した際に開始するよう変更することも可能である。なお、端末装置１００では、図４で説明したゲーム画像表示プログラム、図５等で説明した中断信号の送信を行うプログラムが動作しているものとして以下の説明を行う。
【０２４３】
ステップＳ４２１で、サーバＣＰＵ２０１は、サーバ通信部２０８を介して端末装置１００から中断信号を受信したか否かを判断する。サーバＣＰＵ２０１は、中断信号を受信していないと判断した場合には、再度ステップＳ４２２を繰り返す。一方、サーバＣＰＵ２０１は、中断信号を受信したと判断した場合、処理をステップＳ４２２に進める。
【０２４４】
ステップＳ４２２で、サーバＣＰＵ２０１は、タイマー値Ｔ７をリセットし０としたうえで、処理をステップＳ４２３に進める。
【０２４５】
ステップＳ４２３で、サーバＣＰＵ２０１は、タイマー値Ｔ７に経過時間に対応する数値を加算し、処理をステップＳ４２４へ進める。
【０２４６】
ステップＳ４２４で、サーバＣＰＵ２０１は、タイマー値Ｔ７が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ４２３の処理を行う。一方、サーバＣＰＵ２０１は、タイマー値Ｔ７が所定値を超えていると判断した場合には、所定時間が経過したと判断し、処理をステップＳ４２５に進める。
【０２４７】
なお、ステップＳ４２４における所定値は通常０である。中断信号を受信した際には速やかに後述するポーズ処理を行うことで、ゲームプログラムの進行状況を適切に保存することができる。
【０２４８】
ステップＳ４２５で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムのポーズ処理を行う。すなわち、ＣＰＵ２０１は、ゲームプログラムに実装されているポーズ処理を発動させるため、ポーズボタン操作信号と等価な信号を生成し、ポーズ処理の要求があったものとし、この生成した信号をゲームプログラムへ疑似的に入力する。なお、サーバＣＰＵ２０１は、ゲームプログラムに実装されているポーズ処理が実行できない場合に、所定の時間経過後、例えば画像描写で数フレーム後に、メニュー画面を表示させるため、メニューボタン操作信号と等価な信号を生成し、メニュー画面の表示の要求があったものとし、この生成した信号をゲームプログラムへ疑似的に入力する。他の実施の形態でも説明したように、メニュー画面の表示はポーズ処理と同等の効果を得ることができるため、ポーズ処理が必ずしもできない場面であっても二重でゲームプログラムの一時中断を行うことが可能となる。
【０２４９】
ここで、本実施の形態において、「ポーズ」とは、ゲームプログラムが実装する処理の一つであり、例えば、ユーザの操作により要求がなされ、ゲームの進行が一時的に停止可能な状態であれば一時停止を行うが、ゲームプログラム自体は動作を継続し、実行メモリ内の情報の保持や移動は行わない処理である。言い換えると、「ポーズ」とは、ゲームの進行状況を停止するのであって、実行メモリ内の情報の書き換えが行われ得る処理である。
【０２５０】
以後、サーバＣＰＵ２０１は、ポーズボタンの入力操作によってユーザからポーズ処理の解除を要求する信号が端末装置から送信されるまで、ゲームプログラムのポーズ処理を継続する。
【０２５１】
具体的には、ステップＳ４２６で、サーバＣＰＵ２０１は、ポーズボタンの入力操作によってポーズ処理を解除する要求があるか否かを判断する。サーバＣＰＵ２０１は、ポーズ処理の解除の要求があったと判断した場合に、処理をステップＳ４２７へ進め、ポーズ処理を解除して処理を終了する。また、サーバＣＰＵ２０１は、ポーズ処理の解除の要求が無い場合は、処理をステップＳ４２６に進め、ポーズ処理を継続する。
【０２５２】
ここで、ゲームプログラムのポーズ処理中は、他の実施の形態で説明したゲーム画像生成送信処理が継続して行われているものとする。実態としては、ポーズ処理中にゲーム画像が変化することは無いことが一般的であるが、ポーズ処理中にもゲーム画面が変化することもあり、例えばポーズ処理中であることを示すアイコン等が動くこともあり得るため、ゲーム画像生成送信処理を継続する必要があるからである。なお、端末装置１００側においてポーズ処理中のゲーム画面をスクリーンショットとして保有し、このスクリーンジョットを端末装置１００側で表示することで、サーバ装置２００のゲーム画像の送信を停止するようにしてもよい。
【０２５３】
＜１９．ゲームプログラム一時中断処理（６）＞
サーバ装置２００において実行されるゲームプログラム一時中断処理について、図２２のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲームプログラム一時中断処理は、例えばサーバ装置２００が、端末装置１００から中断信号を受信したことを、サーバＣＰＵ２０１が検出した際に開始される。なお、端末装置１００では、図４で説明したゲーム画像表示プログラム、図５等で説明した中断信号の送信を行うプログラムが動作しているものとして以下の説明を行う。
【０２５４】
ステップＳ４３１で、サーバＣＰＵ２０１は、サーバ通信部２０８を介して端末装置１００から中断信号を受信したか否かを判断する。サーバＣＰＵ２０１は、中断信号を受信していないと判断した場合には、再度ステップＳ４３１を繰り返す。一方、サーバＣＰＵ２０１は、中断信号を受信したと判断した場合、処理をステップＳ４３２に進める。
【０２５５】
ステップＳ４３２で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムのポーズ処理を行う。すなわち、ＣＰＵ２０１は、ゲームプログラムに実装されているポーズ処理を発動させるため、ポーズボタン操作信号と等価な信号を生成し、ポーズ処理の要求があったものとし、この生成した信号をゲームプログラムへ疑似的に入力する。
【０２５６】
ここで、本実施の形態において、「ポーズ」とは、ゲームプログラムが実装する処理の一つであり、例えば、ユーザの操作により要求がなされ、ゲームの進行が一時的に停止可能な状態であれば一時停止を行うが、ゲームプログラム自体は動作を継続し、実行メモリ内の情報の保持や移動は行わない処理である。言い換えると、「ポーズ」とは、ゲームの進行状況を停止するのであって、実行メモリ内の情報の書き換えが行われ得る処理である。
【０２５７】
ステップＳ４３３で、サーバＣＰＵ２０１は、タイマー値Ｔ８をリセットし０としたうえで、処理をステップＳ４３４に進める。
【０２５８】
ステップＳ４３４で、サーバＣＰＵ２０１は、タイマー値Ｔ８に経過時間に対応する数値を加算し、処理をステップＳ４３５へ進める。
【０２５９】
ステップＳ４３５で、サーバＣＰＵ２０１は、タイマー値Ｔ８が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ４３４の処理を行う。一方、サーバＣＰＵ２０１は、タイマー値Ｔ８が所定値を超えていると判断した場合には、所定時間が経過したと判断し、処理をステップＳ４３６に進める。
【０２６０】
ステップＳ４３６で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムに関する実行メモリの情報を保持する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムの内容を保持する。そして、サーバＣＰＵ２０１は、処理をステップＳ４３７に進める。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であり、再開直後のゲーム画像の処理を早めるために予備的に保持するようにしてもよい。
【０２６１】
ここで、本実施の形態において、「保持」とは、実行メモリから保存メモリへメモリ内容を移動させず、実行メモリ内の内容をそのまま継続して実行メモリ内に残す、すなわち、サーバ装置２００において、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内のゲームプログラムに関する情報を、サーバストレージ２０７へ移動せず、そのままアドレス情報を含めサーバＲＡＭ２０３やサーバＶＲＡＭ２０５内に継続して残すことをいう。
【０２６２】
ステップＳ４３７で、サーバＣＰＵ２０１は、ゲームプログラムの処理を停止するとともに、ステップＳ４３８で、端末装置１００への符号化動画データの送信を停止する。
【０２６３】
なお、ステップＳ４３５における所定時間は、例えば、０分としてもよい。この場合、ただちにゲームプログラムの一時中断した情報を直ちに保持することができる。
【０２６４】
また、ステップＳ４３５における所定時間は、例えば、１５分程度に設定されている。これは、端末装置１００において、一時的にゲーム画像表示プログラムが中断された場合であってもすぐにゲーム画像表示プログラムが再開される場合があるからである。例えば、端末装置１００から中断信号を受信してすぐに、メモリ情報を保持する処理を開始してしまうと、ポーズ処理の解除と比較してゲームプログラムの進行の再開が遅れるため、ゲーム画像の送信処理が遅くなってしまうおそれがある。
【０２６５】
なお、上述の処理フローにおいて、サーバＣＰＵ２０１は、端末装置１００との間で通信環境等が悪化し、端末装置１００とサーバ装置２００との間で通信が不可能と判断した場合に、上述のステップＳ４３２やステップＳ４３６乃至ステップＳ４３８の処理を行うようにしてもよい。この場合も、上述したように通信不可能と判断した時から所定時間を経過するまではゲームプログラムをポーズ処理とし、メモリ情報を保持することを待つようにしてもよい。
【０２６６】
＜２１．ゲームプログラム一時中断処理（７）＞
サーバ装置２００において実行される他のゲームプログラム一時中断処理について、図２３及び図２４のフローチャートを用いて具体的な処理を説明する。このフローチャートに対応する処理は、サーバＣＰＵ２０１が、例えば、サーバＲＯＭ２０２に記憶された対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲームプログラム一時中断処理は、例えばサーバ装置２００が、中断信号を受信したことを、サーバＣＰＵ２０１が検出した際に開始される。
【０２６７】
ステップＳ８４１で、サーバＣＰＵ２０１は、サーバ通信部２０８を介して端末装置１００から中断信号を受信したか否かを判断する。サーバＣＰＵ２０１は、中断信号を受信していないと判断した場合には、再度ステップＳ８４１を繰り返す。一方、サーバＣＰＵ２０１は、中断信号を受信したと判断した場合、処理をステップＳ８４２に進める。
【０２６８】
ステップＳ８４２で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムの実行を一時中断し、処理をステップＳ８４３へ進める。すなわち、ＣＰＵ２０１は、ゲームプログラムに実装されているポーズ処理を発動させるため、ポーズボタン操作信号と等価な信号を生成し、ポーズ処理の要求があったものとし、この生成した信号をゲームプログラムへ疑似的に入力する。
【０２６９】
ここで、本実施の形態において、「ポーズ」とは、ゲームプログラムが実装する処理の一つであり、例えば、ユーザの操作により要求がなされ、ゲームの進行が一時的に停止可能な状態であれば一時停止を行うが、ゲームプログラム自体は動作を継続し、実行メモリ内の情報の保持や移動は行わない処理である。言い換えると、「ポーズ」とは、ゲームの進行状況を停止するのであって、実行メモリ内の情報の書き換えが行われ得る処理である。なお、ポーズボタンは、必ずしもゲーム画面に表示されている必要はなく、物理的なボタンが規定されていなくともよい。このため、「ポーズボタン押下操作」とは、ポーズボタン操作信号を生成するあらゆる操作を含むものとする。
【０２７０】
なお、ステップＳ８４２の処理にかかるポーズボタン操作信号の生成は、ランチャープログラムが行ってもよいし、他のプログラムが行うこととしてもよい。
【０２７１】
ステップＳ８４３で、サーバＣＰＵ２０１は、タイマー値Ｔ９をリセットし０としたうえで、処理をステップＳ８４４に進める。
【０２７２】
ステップＳ８４４で、サーバＣＰＵ２０１は、タイマー値Ｔ９に経過時間に対応する数値を加算し、処理をステップＳ８４５へ進める。
【０２７３】
ステップＳ８４５で、サーバＣＰＵ２０１は、端末装置１００からポーズ処理の解除を要求するポーズボタン操作信号が入力されたか否かを判断し、入力があった場合には、ステップＳ８４６において、ポーズボタン操作信号をゲームプログラムに入力し、ゲームプログラムのポーズ処理を解除し、処理を終了する。他方、サーバＣＰＵ２０１は、ポーズボタン操作信号の入力が無いと判断した場合には、処理をステップＳ８４７に進める。
【０２７４】
ステップＳ８４７で、サーバＣＰＵ２０１は、タイマー値Ｔ９が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ８４４の処理を行う。一方、サーバＣＰＵ２０１は、タイマー値Ｔ９が所定値を超えていると判断した場合には、ユーザがポーズ処理の解除を要求していないと判断し、処理をステップＳ８４８に進める。
【０２７５】
ステップＳ８４８で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムに係る実行メモリの情報を保持する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムの内容をサーバＲＡＭ２０３やサーバＶＲＡＭ２０５にそのまま保持する。そして、サーバＣＰＵ２０１は、処理をステップＳ８４９に進める。なお、ステップＳ８４８において、サーバＣＰＵ２０１は、ゲームプログラムに係る情報を保持する処理を行った時刻を中断時刻として付加し、中断データとする。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも保持する必要はない。
【０２７６】
ステップＳ８４９で、サーバＣＰＵ２０１は、タイマー値Ｔ１０をリセットし０としたうえで、処理をステップＳ８５０に進める。
【０２７７】
ステップＳ８５０で、サーバＣＰＵ２０１は、タイマー値Ｔ１０に経過時間に対応する数値を加算し、処理をステップＳ８５１へ進める。
【０２７８】
ステップＳ８５１で、サーバＣＰＵ２０１は、端末装置１００から中断解除が要求された場合、処理をステップＳ８５２へ進める。一方、サーバＣＰＵ２０１は、端末装置１００から中断解除の要求もない場合、処理をステップＳ８５３へ進める。
【０２７９】
ステップＳ８５２で、サーバＣＰＵ２０１は、ステップＳ８４８において、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５にそのまま保持している実行メモリの情報に基づきゲームプログラムを再開し、処理を終了する。なお、ステップＳ８５２において、サーバＶＲＡＭ２０５に展開するデータが無い場合で、サーバＧＰＵ２０４による画像描写が必要な場合、サーバＣＰＵ２０１は、サーバＧＰＵ２０４へ再度、ゲーム画像の描写命令を行い、サーバＧＰＵ２０４に中断時のサーバＶＲＡＭ２０５内のゲーム画像を再生成する処理を行う。
【０２８０】
一方、ステップＳ８５３で、サーバＣＰＵ２０１は、タイマー値Ｔ２が所定値を超えているかを判断し、超えていないと判断した場合には、再度ステップＳ８５０の処理を行う。他方、サーバＣＰＵ２０１は、タイマー値Ｔ２が所定値を超えていると判断した場合には、所定時間が経過したと判断し、処理をステップＳ８５４に進める。
【０２８１】
ステップＳ８５４で、サーバＣＰＵ２０１は、端末装置１００からの要求に従い実行しているゲームプログラムに関する実行メモリの情報を保存メモリに移動する処理を行う。すなわち、ＣＰＵ２０１は、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５に展開されているゲームプログラムに関する情報をサーバストレージ２０７に移動する。そして、サーバＣＰＵ２０１は、処理をステップＳ８５５に進める。なお、ステップＳ８５４において、サーバＣＰＵ２０１は、ゲームプログラムに関する情報を移動する処理を行った時刻を中断時刻として付加し、中断データとする。なお、サーバＶＲＡＭ２０５内の描画中のゲーム画像データに関する情報は、再度生成可能であるため、必ずしも移動する必要はない。
【０２８２】
ここで、本実施の形態における実行メモリとは、プログラムが実行される際にプログラムが読み出されるメモリであり、保存メモリと実行メモリとは異なりプログラムに関する情報を保存するために用いられるメモリである。なお、実行メモリと保存メモリは物理的に一つのものであることは妨げられないが、その性質上、読み書き速度が高速なものを実行メモリとして用い、読み書きの速度が低速なものを保存メモリとして物理的に異ならせることが好ましい。
【０２８３】
例えば、実行メモリには、サーバＲＡＭ２０１やサーバＶＲＡＭ２０５が用いられ、その容量が有限である。このため、サーバＲＡＭ２０１にプログラムを多数展開すると容量を超えてしまうため、保存メモリであるサーバストレージ２０７に適宜プログラムやデータを保存するようにしている。
【０２８４】
なお、保存メモリとしては、サーバストレージ２０７に限定されず、サーバＲＡＭ２０３やサーバＶＲＡＭ２０５内部に設けるようにしてもよいし、図示しない、他のメモリであってもよい。実行メモリと保存メモリとは物理的に同じメモリを用いてもよいし、用途に応じて適宜使い分けるようにしてもよい。
【０２８５】
ステップＳ８５５で、サーバＣＰＵ２０１は、ゲームプログラムの処理を停止するとともに、ステップＳ８５６で、端末装置１００への符号化動画データの送信を停止する。ここで、ステップＳ８５５における、ゲームプログラムの処理を停止するとは、ランチャープログラムが確保した当該ゲームプログラムに関する情報を実行メモリから完全に開放した状態にすることをいう。
【０２８６】
また、ステップＳ８５４における処理は、保存メモリが実行メモリよりも処理速度が遅いメモリを使うことが多いため、一時中断処理は頻繁に発生させないように、上述したステップ８５３における所定時間を適宜設定することが好ましい。
【０２８７】
なお、ステップＳ８４１における中断信号は、図１８において説明したように、所定の条件において、サーバＣＰＵ２０１が疑似的に生成するようにしてもよいものとする。
【０２８８】
なお、ステップＳ８４２における処理は、ステップＳ８４１における中断信号の受信ではなく、ユーザによる入力操作によってポーズボタンが押下され、通常のポーズボタン操作信号が端末装置１００から入力された場合に実行するようにしてもよいものとする。
【０２８９】
図２３及び図２４のフローチャートで説明したように、サーバ装置２００では、ゲームプログラムのポーズ処理、実行メモリの保持、保存メモリへの移動によって、ゲームプログラム固有のセーブ機能によらず、ゲームプログラムの進行状態を保存することができる。また、サーバ装置２００では、ゲームプログラムのポーズ処理、実行メモリの保持、保存メモリへの移動を適宜選択的に組み合わせて実行することができるようにしてもよい。
【０２９０】
上述で説明した各実施の形態において、サーバ装置２００における、ゲームプログラムのポーズ処理、実行メモリの保持、保存メモリへの移動は、各単独で実行するようにしてもよいし、任意の組み合わせを用いてもよい。すなわち、ゲームプログラムのポーズ処理（メニュー画面表示を含む）、実行メモリの保持の組み合わせ、ゲームプログラムのポーズ処理、保存メモリへの移動の組み合わせ、実行メモリの保持、保存メモリへの移動の組み合わせであってもよい。
【０２９１】
上述で説明した各実施の形態において、ゲームプログラムの進行状態を保存するとは、ゲームプログラム固有のセーブポイント等におけるセーブデータを生成する方法以外の、各種の保存態様を含み、特に、ゲームプログラムのポーズ処理（メニュー画面表示を含む）、実行メモリの保持、保存メモリへの移動によって、ゲームプログラムの進行状況を再生可能な状態に留め置くことを表すものとする。
【０２９２】
以上で説明したように、本実施の形態のインタラクティブシステムでは、端末装置からの要求に従いサーバ装置が実行するゲームプログラムの進行状況を適切に保存することができる。
【０２９３】
また、本実施の形態のインタラクティブシステムでは、ゲームプログラム中において許可された条件下（いわゆるセーブポイント）でない場合であっても、ゲームプログラムの進行状況を保存することができる。
【０２９４】
更に、本実施の形態のインタラクティブシステムでは、ネットワークに非対応のローカルな環境で用いられるゲームプログラムの場合、ゲームプログラムを書き換えずに進行状況の保存が任意にできるようになり、特に好適なサービスを提供することができる。
【０２９５】
なお、本発明は、上述した実施の形態に限定されず、ユーザによる端末装置の入力操作に応じてサーバ装置が実行するプログラムの処理結果を端末装置に提供し、更にユーザによる端末装置の入力操作に応じてサーバ装置がプログラムを実行することを反復継続して処理する、インタラクティブなシステムに適用することができる。例えば、エミュレータによる既存アプリケーションプログラムの処理の提供や、ＶＭ（Virtual Machine）等のサービス提供にも適用することができる。
【符号の説明】
【０２９６】
１００  端末装置、２００  サーバ装置、３００  ネットワーク、１０１  端末ＣＰＵ、１０２  端末ＲＯＭ、１０３  端末ＲＡＭ、１０４  端末復号部、１０５  端末通信部、１０６  端末表示部、１０７  操作入力部、１０８  端末ストレージ、２０１  サーバＣＰＵ、２０２  サーバＲＯＭ、２０３  サーバＲＡＭ、２０４  サーバＧＰＵ、２０５  サーバＶＲＡＭ、２０６  サーバ符号化部、２０７  サーバストレージ、２０８  サーバ通信部、６０１  ＯＳ、６０２  フォアグランド処理、６０３  バックグラウンド処理
【図１】
2019164781.tif 000003
【図２】
2019164781.tif 000004
【図３】
2019164781.tif 000005
【図４】
2019164781.tif 000006
【図５】
2019164781.tif 000007
【図６】
2019164781.tif 000008
【図７】
2019164781.tif 000009
【図８】
2019164781.tif 000010
【図９】
2019164781.tif 000011
【図１０】
2019164781.tif 000012
【図１１】
2019164781.tif 000013
【図１２】
2019164781.tif 000014
【図１３】
2019164781.tif 000015
【図１４】
2019164781.tif 000016
【図１５】
2019164781.tif 000017
【図１６】
2019164781.tif 000018
【図１７】
2019164781.tif 000019
【図１８】
2019164781.tif 000020
【図１９】
2019164781.tif 000021
【図２０】
2019164781.tif 000022
【図２１】
2019164781.tif 000023
【図２２】
2019164781.tif 000024
【図２３】
2019164781.tif 000025
【図２４】
2019164781.tif 000026
【手続補正書】
【提出日】平成31年4月2日(2019.4.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバ装置に接続され、前記サーバ装置にプログラム処理を要求し、前記サーバ装置から処理結果を受信し表示を行う端末装置と、
前記端末装置からの要求に従いプログラム処理を行い、処理結果を前記端末装置に送信するサーバ装置とを有し、
前記端末装置は、前記サーバ装置の処理結果を表示する表示処理の実行が、表示プログラムに基づいて実行され、前記表示プログラムの処理を一時中断した場合に、前記サーバ装置に中断信号を送信し、
前記サーバ装置は、前記中断信号を受信した場合に、所定の時間が経過するまで、前記端末装置に要求されたプログラム処理を継続し、所定の時間が経過した場合、前記端末装置に要求されたプログラム処理を一時中断するインタラクティブシステム。
【請求項２】
前記サーバ装置は、前記中断信号を受信した場合に、前記所定の時間が経過するまで、前記端末装置に要求されたプログラム処理の全てのメモリ情報を保持することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項３】
前記サーバ装置は、前記中断信号を受信した場合に、前記所定の時間が経過した場合、前記端末装置に要求されたプログラム処理の全てのメモリ情報を移動させることを特徴とする請求項１又は２に記載のインタラクティブシステム。
【請求項４】
前記サーバ装置は、前記中断信号を受信した場合に、前記端末装置に要求されたプログラム処理の処理結果の送信を一時中断することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項５】
前記サーバ装置は、前記端末装置に要求されたプログラム処理の実行に使用される情報を記憶する実行メモリと、前記実行メモリとは別の保存メモリとを有し、前記所定の時間が経過するまで、前記実行メモリに記憶された情報を前記実行メモリに保持することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項６】
前記サーバ装置は、前記端末装置に要求されたプログラム処理の実行に使用される情報を記憶する実行メモリと、前記実行メモリとは別の保存メモリとを有し、前記所定の時間が経過した場合、前記実行メモリに記憶された情報を前記保存メモリに移動することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項７】
前記サーバ装置は、所定時間、通信が途絶している場合に、所定の時間が経過するまで、前記端末装置に要求されたプログラム処理を継続し、所定の時間が経過した場合、前記端末装置に要求されたプログラム処理を一時中断する請求項１に記載のインタラクティブシステム。
【請求項８】
前記端末装置は、前記表示プログラムの処理がマルチタスク処理のうち一つのタスクであり、前記表示プログラムの処理がバックグラウンド処理に移行した場合に、前記サーバ装置に前記中断信号を送信することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項９】
前記端末装置は、前記表示プログラムの処理に使用される情報を記憶する実行メモリと、前記実行メモリとは別の保存メモリとを有し、前記表示プログラムの処理がマルチタスク処理のうち一つのタスクであり、前記表示プログラムに基づき前記実行メモリに記憶された情報を前記保存メモリに移動した場合に、前記サーバ装置に前記中断信号を送信することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項１０】
前記端末装置に要求されたプログラム処理が、前記端末装置からユーザの保存要求に従い、所定の条件でセーブデータを生成することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項１１】
ネットワークを介してサーバ装置に接続され、前記サーバ装置にプログラム処理を要求し、前記サーバ装置から処理結果を受信し表示を行い、前記サーバ装置の処理結果を表示する表示処理の実行が、表示プログラムに基づいて実行され、前記表示プログラムの処理を一時中断した場合に、前記サーバ装置に中断信号を送信する端末装置。
【請求項１２】
ネットワークを介して端末装置に接続され、前記端末装置からの要求に従いプログラム処理を行い、処理結果を前記端末装置に送信し、前記端末装置から、サーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件に基づく中断信号を受信し、所定の時間が経過するまで、前記端末装置に要求されたプログラム処理を継続し、所定の時間が経過した場合、前記端末装置に要求されたプログラム処理を一時中断するサーバ装置。
【請求項１３】
ネットワークを介して接続されたサーバ装置にプログラム処理を要求する要求工程と、
前記サーバ装置から処理結果を受信する受信工程と、
前記受信工程で受信した処理結果を表示する表示処理の実行が、表示プログラムに基づいて実行される表示工程と、
前記表示工程が中断される所定の条件を判断する判断工程と、
前記判断工程において前記表示プログラムの処理を一時中断した場合に、前記サーバ装置に中断信号を送信する中断信号送信工程とを有する端末装置の制御方法。
【請求項１４】
コンピュータに、
ネットワークを介して接続されたサーバ装置にプログラム処理を要求する処理と、
前記サーバ装置から処理結果を受信する処理と、
前記処理結果を表示する表示処理の実行が、表示プログラムに基づいて実行される処理と、
前記処理結果の表示処理が中断される所定の条件を判断する処理と、
前記表示プログラムの処理を一時中断した場合に、前記サーバ装置に中断信号を送信する処理とを実行させるプログラム。
【請求項１５】
請求項１４に記載のプログラムを記録した記録媒体。
【請求項１６】
ネットワークを介して接続された端末装置からの要求に従いプログラム処理を行うプログラム処理工程と、
前記プログラム処理工程における処理結果を前記端末装置に送信する送信工程と、
前記端末装置から、前記端末装置内におけるサーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件に基づく中断信号を受信する中断信号受信工程と、
前記中断信号を受信した場合に、所定の時間が経過するまで、前記端末装置に要求されたプログラム処理を継続し、所定の時間が経過した場合、前記端末装置から要求されたプログラム処理を一時中断する中断工程とを有するサーバ装置の制御方法。
【請求項１７】
コンピュータに、
ネットワークを介して接続された端末装置からの要求に従いプログラム処理を行う処理と、
前記プログラム処理の処理結果を前記端末装置に送信する処理と、
前記端末装置から、前記端末装置内におけるサーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件に基づく中断信号を受信する処理と、
前記中断信号を受信した場合に、所定の時間が経過するまで、前記端末装置に要求されたプログラム処理を継続し、所定の時間が経過した場合、前記端末装置から要求されたプログラム処理を一時中断する処理とを実行させるプログラム。
【請求項１８】
請求項１７に記載のプログラムを記録した記録媒体。
【請求項１９】
前記端末装置は、前記表示プログラムが展開される実行メモリを備え、
前記サーバ装置からの処理結果を表示する表示処理が、表示プログラムに基づいて実行され、この処理がマルチタスク処理のうち一つのタスクであり、前記表示プログラムの処理が前記実行メモリから排除されプログラム処理が終了する場合に、前記サーバ装置に前記中断信号を送信することを特徴とする請求項１に記載のインタラクティブシステム。
【請求項２０】
さらに、前記プログラム処理の実行に使用される情報を記憶する実行メモリと、前記実行メモリとは別の保存メモリとを有し、
前記端末装置から、中断信号を受信したとき、前記実行メモリに記憶された前記プログラム処理に関する情報を所定の時間保持する請求項１２に記載のサーバ装置。
【請求項２１】
前記所定の時間が経過するまでに、前記端末装置から、前記プログラムの処理の実行を再開する要求があった場合、前記実行メモリに保持された情報に基づき前記プログラム処理を再開する請求項２０に記載のサーバ装置。
【請求項２２】
前記端末装置との間で通信が途絶したとき、実行メモリに記憶された前記プログラム処理に関する情報を所定の時間保持する請求項１２に記載のサーバ装置。
【請求項２３】
前記所定の時間が経過するまでに、前記端末装置から、前記サーバ装置への再接続があった場合、前記実行メモリに保持された情報に基づき前記プログラム処理を再開する請求項２２に記載のサーバ装置。
【請求項２４】
前記端末装置は、複数あり、前記所定の時間が経過するまでに、一の端末装置から中断信号を受信し、他の端末装置から前記プログラム処理を実行する要求があった場合、実行メモリに保持された情報に基づき前記プログラム処理を再開し、前記他の端末装置に処理結果を送信する請求項１２に記載のサーバ装置。
【請求項２５】
前記一の端末装置と前記他の端末装置とから送信されるログイン情報が同一又は所定のグループに属する請求項２４に記載のサーバ装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
上述した課題を解決するために、本発明の一実施形態に係るインタラクティブシステム
は、ネットワークを介してサーバ装置に接続され、サーバ装置にプログラム処理を要求し、サーバ装置から処理結果を受信し表示を行う端末装置と、端末装置からの要求に従いプログラム処理を行い、処理結果を端末装置に送信するサーバ装置とを有し、端末装置は、サーバ装置の処理結果を表示する表示処理の実行が、表示プログラムに基づいて実行され、表示プログラムの処理を一時中断した場合に、サーバ装置に中断信号を送信し、サーバ装置は、中断信号を受信した場合に、所定の時間が経過するまで、端末装置に要求されたプログラム処理を継続し、所定の時間が経過した場合、端末装置に要求されたプログラム処理を一時中断する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
また、上述した課題を解決するために、本発明の一実施形態に係る端末装置は、ネットワークを介してサーバ装置に接続され、サーバ装置にプログラム処理を要求し、サーバ装置から処理結果を受信し表示を行い、サーバ装置の処理結果を表示する表示処理の実行が、表示プログラムに基づいて実行され、表示プログラムの処理を一時中断した場合に、サーバ装置に中断信号を送信する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
また、上述した課題を解決するために、本発明の一実施形態に係るサーバ装置は、
ネットワークを介して端末装置に接続され、端末装置からの要求に従いプログラム処理を行い、処理結果を端末装置に送信し、端末装置からサーバ装置の処理結果を表示する表示処理の実行が中断される所定の条件に基づく中断信号を受信し、所定の時間が経過するまで、端末装置に要求されたプログラム処理を継続し、所定の時間が経過した場合、端末装置に要求されたプログラム処理を一時中断する。