以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
図1は、本発明の実施の形態における情報処理システムについて説明するための図である。図1に示すように、本実施の形態における情報処理システムは、クラウド基盤100と、1または複数の端末102とを含む。クラウド基盤100と当該端末102は、ネットワーク101を介して接続される。
クラウド基盤100は、管理サーバ103、後述する1または複数の仮想マシン(VM)104、1または複数のデータベース(DB)105を含む。なお、ここでいうクラウド基盤100とは、いわゆるネットワーク101をベースとしたコンピュータの利用形態であって、ユーザーがコンピュータ処理をネットワーク経由で、サービスとして利用するための基盤をいう。
端末102は、図2に示すように、制御部201、通信部202、記憶部203、表示部204、操作部205を含む。なお、各部201−205は、バス206を介して接続される。
制御部201は、例えば、CPUやMPU等であって、記憶部203に格納されたプログラムに従って動作する。記憶部203は、例えば、ハードディスクやROMやRAM等の情報記録媒体で構成され、制御部201によって実行されるプログラムを保持する情報記録媒体である。また、記憶部203は、制御部201のワークメモリとしても動作する。なお、上記制御部201で処理されるプログラムは、例えば、ネットワーク101を介して、ダウンロードされて提供されてもよいし、または、CD−ROMやDVD−ROM等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。操作部205は、例えば、キーボード、マウス、コントローラ、ボタン等のインターフェースで構成され、ユーザーの指示操作に応じて、当該指示操作の内容を制御部201に出力する。表示部204は、例えば、液晶ディスプレイ、CRTディスプレイ、または有機ELディスプレイ等であって、制御部201からの指示に従い、情報を表示する。
なお、端末102の構成は一例であってこれに限定されるものではない。また、データベース105や管理サーバ103も、上記と同様の制御部201、通信部202、記憶部203を含んで構成されることから、詳細な説明については省略する。
図3は、端末の外観の一例を示す図である。図3に示すように、端末102は、例えば、操作部205として、方向キー301、複数のボタン302、アナログ操作部303を有し、また、表示部204として表示画面304を有する。
方向キー301は、例えば、上方向指示キー、下方向指示キー、右方向指示キー、左方向指示キーを有する。当該方向キー301により、ユーザーは、例えば、画面上の対象物を、上下左右に移動する等を行う。また、複数のボタン302には、それぞれ、例えば、a、b、c、d等の印をそれぞれ有する。ユーザーは、例えば、これらのボタン302を押すことにより、実行されるアプリケーションによって定められるそれぞれのボタンに応じた処理を実行することができる。
アナログ操作部303は、例えば、所定の基準位置からの傾倒操作が可能であり、ユーザーは、アナログ操作部303の基準位置からの傾き量と傾き方向に応じた入力情報を入力する。例えば、ユーザーは、アナログ操作部303を用いて、表示画面304上に表示された対象物を、当該傾き量と傾き方向に応じて、所望の方向に所望の量だけ傾ける等を行うことができる。また、表示画面304は、表示部204の表示画面304に相当し、例えば、アプリケーションに応じた画像等を表示する。
なお、図3に示した端末102の外観、操作部205及び表示部204の構成は、一例であって、これらに限られるものではない。例えば、操作部205は、表示部204に表示されたタッチパネルにより形成されてもよいし、表示部204は、CRTや液晶表示装置で形成されたモニタ等の表示画面であってもよい。更に、方向キー301、複数のボタン302、アナログ操作部303の数はその他の数であってもよいし、また、端末102は、スタートボタンやセレクトボタン(図示なし)等その他のボタンや加速度センサ等を有してもよい。
図4は、図1に示した仮想マシンを説明するための図である。図4に示すように、クラウド基盤100は、仮想マシン制御部401、仮想マシン制御部401に接続された物理マシン402群を含む。
図4に示すように、各物理マシン402上にはハイパーバイザ403が設けられ、ハイパーバイザ403上に1又は複数の仮想マシン(VM)104が立ち上げられる。なお、ハイパーバイザ403とは、汎用OSの助けを必要とせずに、各物理マシン402の上に仮想マシン104を立ち上げ、制御するソフトウェアである。また、仮想マシン104とは、公知のようにCPUとメモリのセットを仮想的に作りだしたものである。なお、各物理マシン402は、CPUやメモリ等により形成されるコンピュータであることはいうまでもない。
各仮想マシン104は、OS404とアプリケーション405を有する。なお、仮想マシン104で処理される上記プログラムは、当該アプリケーション405の1つに相当する。仮想マシン制御部401は、上記物理マシン402上に、1又は複数の仮想マシン104を生成する。これは、具体的には、ハイパーバイザ403を介して、仮想マシン104への物理マシン402のリソース(例えば、CPUの処理時間、メモリ容量等のリソース)を割り当てて、制御することによって行われる。
つまり、下記に説明する仮想マシン104におけるプログラムのインストールや実行は、実際には、物理マシン402で行われる。例えば、物理マシン402におけるメモリ等で構成される記憶部に、本実施の形態におけるプログラムを含む複数のプログラムが、記憶され、本実施の形態におけるプログラムは、実際には物理マシン402の1または複数のCPUにより、実行される。このとき、物理マシン402の1または複数のCPUは、上記複数のプログラムにも使用され、例えば、1または複数のCPUの処理時間を分割してその一部を、本実施の形態におけるプログラムの実行に割り当てられること等により実行される。なお、上記に示した仮想マシン(情報処理手段)の構成は一例であってこれに限定されるものでない。
図5は、管理サーバの機能的な構成を説明するための図である。図5に示すように、例えば、管理サーバ103は、設定画像情報配信部501、操作情報取得部502、管理情報設定部503、実行情報取得部508、サムネール画像情報生成部509、実行情報送信部510、スタート画像配信部512、仮想マシン割当部514、仮想マシン制御部515を有する。
設定画像情報配信部501は、ユーザーの指示に応じて、後述するユーザーがゲームを選択するための画面やプレイ形式を選択するための画面等のゲームの設定についての画像情報を端末102に配信する。操作情報取得部502は、後述するユーザーのゲームの選択操作指示や、グループの選択指示等のユーザーの操作指示に関する操作情報を取得する。管理情報設定部503は、グループ情報記憶部504、対戦相手情報記憶部505、トーナメント情報記憶部506、更新部507を有する。
具体的には、例えば、図6(A)乃至(H)を用いて説明する。設定画像情報配信部501は、ユーザーのゲーム選択画面要求に応じて、例えば、図6(A)に示すようなゲーム選択画面についての画像情報を、当該ユーザーに対応する端末102に配信する。ユーザーは対応する端末102の表示部204に表示された当該ゲーム選択画面を参照しつつ、所望のゲームを選択する。このとき、当該ゲーム選択画面は、各ゲームのタイトル、画像、今までに当該ゲームがプレイされた人数等の当該ゲームに関連情報を示してもよい。また、例えば、当該ゲームが、所定のゲームの一部、例えば、レースゲームの1のコース、から形成される場合は、当該コース名や複数のプレーヤーが当該ゲームの一部をクリアするまでに要した時間のうちの一番短い時間、つまり、トップタイムを表示する等についても表示してもよい。なお、当該関連情報等は、例えば、データベース105から、設定画像情報配信部501が取得する。
ゲームが選択されると、設定画像情報配信部501は、例えば、図6(B)に示すような選択されたゲームのプレイ形式等を選択するためプレイ形式選択画面についての画像情報を端末102に配信する。ユーザーは端末102の表示部204に表示された当該プレイ形式選択画面を参照しつつ、プレイ形式等を選択する。
ここで、対戦プレイが選択された場合には、設定画像情報配信部501は、例えば、図6(C)に示すような対戦相手設定画面を表示するための画像情報を端末102に配信する。例えば、ユーザーは、端末102に表示された当該対戦相手設定画面の対戦可能相手ウィンドウ601に表示された同様に対戦プレイを選択している他のユーザー名を対戦相手ウィンドウ602にドラッグすることにより、対戦相手を選択することができる。具体的には、図6(C)は、ユーザー1がユーザー2を対戦相手として選択した場合を示す。ここで、対戦可能相手ウィンドウ601には後述する当該ユーザーの動画像データ等が記録されているユーザー名を表示してもよい。この場合、例えば、ユーザーは、実際には非同期ではあるが疑似的に同期して対戦プレイ、トーナメントプレイ等を行うことができる。
対戦相手情報記憶部505は、対戦相手が決定されると、上記のようにして決定された対戦相手のユーザー識別情報を、当該ゲームの識別情報とともに対戦相手情報として関連付けて記憶する。ここで、対戦相手情報記憶部505は、更に、例えば、図7(A)に示すように、各ユーザーの選択されたゲームの習熟度等を表すランク情報を識別するためのランク識別情報や、その他の関連情報、例えば各ユーザーが登録しているフレンドリストやグループ名等を更に関連付けて記憶してもよい。
トーナメントプレイが選択された場合には、例えば、図6(E)に示すようなトーナメント設定画面を表示するための画像情報を端末102に配信する。ユーザーは、例えば、端末102に表示された当該トーナメント設定画面に表示されるノード1乃至4を選択することにより、トーナメントに参加することができる。具体的には、図6(E)は、ユーザー1がノード1をユーザー2がノード3を選択した場合を示し、ノード2とノード4については、未選択であることを示している。トーナメント表が決定(例えば、ノード1乃至4のユーザーが決定)されると、トーナメント情報記憶部506は、例えば、図7(B)に示したように、選択されたゲームのゲーム識別情報、トーナメント表のノードを識別する情報、ユーザー識別情報を関連付けて、トーナメント情報として表の形式で記憶する。なお、トーナメント情報記憶部506は、更に、トーナメント情報として、ゲーム識別情報毎に、例えば、図8に示した各ノードにノード識別情報が関連付けられた木構造を保持しており、これらに基づいて、トーナメントの各対戦において対戦するユーザーの組み合わせが決定される。ここで、トーナメントのノードには後述する当該ユーザーの動画像データ等が記録されているユーザー名を表示してもよい。この場合、例えば、ユーザーは、非同期ではあるが疑似的に同時にトーナメントプレイを行うことができる。なお、当該トーナメント情報記憶部は上記と同様に、各ユーザーのランク情報等についても関連付けて記憶してもよい。
グループ対戦プレイまたはグループトーナメントプレイが選択された場合には、例えば、図6(D)に示すようなトーナメント設定画面を表示するための画像情報を端末102に配信する。ユーザーは、例えば、端末102に表示された当該グループ設定画面に表示を参照しつつ、当該ユーザーが属するグループを選択することができる。このとき、グループに含まれるユーザーの優先順位や、各グループの代表権を有するリーダーを決定できるようにしてもよい。グループ情報記憶部504は、上記のように設定されたグループを、例えば、図7(C)に示すように、選択されたゲームのゲーム識別情報、ユーザー識別情報と、グループ識別情報を関連付けて記憶する。グループ情報記憶部504は、更に、ユーザー識別情報に加えて、グループにおけるリーダーか否かを示すリーダー識別情報、優先順位についての優先順位識別情報や、上記ランク情報等を関連付けて記憶してもよい。グループ対戦プレイやグループトーナメントプレイの形式については、例えば図6(F)(G)に示すようにユーザーにかえてグループとして対戦相手等を選択する他は、図6(C)(E)に示した場合と同様であることから、詳細な説明は省略する。なお、当該図6(F)(G)における対戦相手等の選択については、例えば、各グループのリーダーとして設定されたユーザーが行うように構成すればよい。
観戦が選択された場合には、例えば、図6(H)に示す現在各仮想マシン104で生成されている複数の画像情報をサムネール表示したサムネールメニュー画面が端末102の表示部204に表示される。そして、ユーザーが、当該サムネール表示を参照し、所望のサムネール画像を選択することにより(例えば、端末102からの指示に相当)、対応する画像情報が当該端末102の表示部204に表示される。なお、当該サムネールメニューは、上述のプレイ形式や、グループ、ユーザーのランク等を含む関連情報を併せて表示するようにしてもよいことはいうまでもない。
この場合、具体的には、実行情報取得部508が後述する各仮想マシン104で生成される画像情報を取得し、サムネール画像情報生成部509が、当該各画像情報から、図6(H)に示すような当該サムネール画像を複数配置したサムネールメニュー画面を生成するための画像情報を生成するとともに、観戦を選択したユーザーに対応する端末102に送信する。そして、ユーザーは、所望のサムネールを選択指示し、これに応じて、実行情報送信部510は、当該サムネールに対応する画像データを端末102に送信する。これにより、ユーザーは所望のゲームを観戦できる。なお、上記においては、ゲームが選択された後、プレイ形式選択画面において観戦を選択できる構成としたが、ゲーム選択画面において、観戦を選択できるように構成してもよい。
また、図6(H)に示すサムネール表示された画像情報は、実行情報記憶部511に記憶された画像情報を含んでもよい。この場合、実行情報取得部508は、実行情報記憶部511に記憶されている画像情報を取得し、サムネール画像情報生成部509が、当該画像情報から、図6(H)に示すような当該サムネール画像を複数含んだサムネールメニュー画面を生成する画像情報を生成し、観戦を選択した端末102に送信する。なお、実行情報記憶部511は、例えば、観戦しているユーザーからの操作指示に応じて、ユーザーにより指定された特定のシーンに関する画像情報を実行情報取得部508から取得し、記憶するように構成してもよい。これにより、例えば、特定シーンのプレイ集等の記憶が可能となる。また、上記においては画像情報について説明したが、当該画像情報は、動画像情報であってもよいし、その他の情報、例えば、音声情報、を含んでもよい。サムネールメニュー画面は、更に、各サムネール画像に対応する種々の情報、例えばユーザー名、当該ユーザーのランク、プレイ時間、プレイ形式等を併せて表示してもよい。また、例えば、実行情報送信部510は、上記のようにユーザーの指示(端末からの指示)に応じて、実行情報記憶部511に記憶された当該ユーザーに対応する画像情報を送信するよう構成してもよい。また、例えば、実行情報記憶部511に記憶された当該ユーザーに対応する実行情報に基づいて当該ユーザーに対応する仮想マシン104で当該ユーザーに対応する画像情報を生成し、当該画像情報を仮想マシン104または実行情報送信部510が当該ユーザーに当該画像情報を送信するよう構成してもよい。
また、実行情報記憶部511は、例えば、端末102へのユーザーのプレイ記録指示に応じて、後述する仮想マシン104の実行部806の実行情報を記憶するように構成してもよい。この場合、例えば、後述するように当該記憶された実行情報を用いて実行部806がゲームプログラムを実行することにより、あるゲームプログラムのプレイ場面のアップロードを行うことができる。
スタート画像配信部512は、上記対戦相手情報やトーナメント情報等の管理情報に応じて、各端末102にスタート画像を配信する。なお、例えば、当該スタート画像の配信は、所定のユーザー(例えば、グループのリーダー)の指示に応じて開始されるように構成してもよいし、対戦相手等の決定後、所定の期間経過した場合に開始される等としてもよい。
具体的には、例えば、選択されたゲームの識別情報がg1の場合であって、対戦相手情報が図7(A)の場合を用いて説明する。この場合、ユーザー識別情報u1乃至u3が対戦相手情報記憶部505に記憶されているので、ユーザー識別情報u1乃至u3に対応する各端末102にスタート画像を配信する。
また、例えば、選択されたゲームの識別情報がg1の場合であって、トーナメント情報が図7(B)及び図8の場合、トーナメントの一回戦は、図8よりノード識別情報n1とn2に対応するユーザーの対戦、ノード識別情報n3とn4に対応するユーザーの対戦であり、図7(B)より、ノード識別情報n1乃至n4は、それぞれユーザー識別情報u1乃至u4に対応していることから、ユーザー識別情報u1乃至u4に対応する各端末102にスタート画像を配信する。同様に、トーナメントの2回戦は、ユーザー識別情報u1とu3に対応するユーザーの対戦であることから、ユーザー識別情報u1とu3に対応する各端末102にスタート画像を配信する。なお、上記においては、トーナメントの2回戦については、1回戦で敗退したユーザー(ユーザー識別情報u2とu4に対応)は、当該2回戦を観戦しないものとして説明したが、当該ユーザーが観戦を所望する場合は、当該ユーザーに対応する端末102にもスタート画像を送信するようにしてもよい。なお、下記において当該スタート画像が送信される端末102を対象端末102と称する。
各対象端末102は、配信されたスタート画像情報に基づいたスタート画像を表示する。なお、当該スタート画像情報は、例えば、ゲーム識別情報に関連付けてスタート画像記憶部513に記憶されており、スタート画像配信部512は、選択されたゲームのゲーム識別情報に基づいて、スタート画像情報を取得するようにすればよい。
また、例えば、スタート画像記憶部513には、当該スタート画像情報に関連付けてオブジェクト画像と当該オブジェクト画像のスタート画像上の位置情報が記憶されていてもよい。この場合、スタート画像配信部512は、当該オブジェクト画像をその位置情報に従って、スタート画像情報の再生によるスタート画像に加えて表示するスタート画像情報を生成するとともに、当該スタート画像情報を配信する。なお、当該オブジェクト画像は、例えば、音声情報を有してもよいし、また、動画像であってもよい。
具体的には、例えば、選択されたゲームがレースゲームである場合の例を用いて説明する。例えば、図9(A)に示すように、スタート前のシーンが上記スタート画像であって、図9(B)に示すように、オブジェクト画像が信号のオブジェクト画像であるとすると、スタート画像配信部512は、図9(A)に示したスタート画像に、図9(B)に示したオブジェクト画像をその位置情報に応じて重ねて表示した画像(図9(C))を生成し、当該画像を対応する対象端末102に配信する。なお、当該信号のオブジェクト画像は、例えば、音声によるカウントダウンとともに、赤から青に変化するような動画像であってもよい。なお、上記においては、スタート画像があらかじめスタート画像記憶部513に記憶されている場合について説明したが、スタート画像についても後述する各仮想マシン104がプログラムの実行を開始することにより生成されるように構成してもよい。
仮想マシン割当部514は、各対象端末102に、それぞれ仮想マシン104を割り当てるとともに、選択されたゲームの識別情報を各仮想マシン104に送信する。また、仮想マシン割当部514は、更に、選択されたプレイ形式等に応じて、選択されたプレイ形式等とともに上記グループ情報、対戦相手情報、トーナメント情報等(以下管理情報と称する)を送信してもよい。これにより、各仮想マシン104は、選択されたゲームやプレイ形式、ユーザー識別情報等を把握することができる。仮想マシン制御部515は、各対象端末102に割り当てられた仮想マシン104を制御する。
具体的には、例えば、1Pプレイが選択されている場合には、仮想マシン割当部514は、当該端末102に、仮想マシン104を割り当て、仮想マシン制御部515は、当該割り当てられた仮想マシン104に選択されたゲームのゲーム識別情報及びユーザー識別情報を含む関連情報を送信するとともに、当該ゲーム識別情報を有するゲームプログラムの実行を開始するよう指示する。当該指示に応じて、当該仮想マシン104は、当該ゲームプログラムに対応して記憶されたスナップショット情報を用いて、当該ゲームプログラムの実行を開始等するが、詳細には後述する。
対戦プレイが選択されている場合には、例えば、仮想マシン割当部514は、対戦相手情報に基づき、対戦相手として選択されているユーザーに対応する各端末102にそれぞれ仮想マシン104を割り当てる。具体的には、図7(A)の場合、対戦相手情報として、ユーザー識別情報u1乃至u3が記憶されていることから、ユーザー識別情報u1乃至u3に対応する各端末102に各仮想マシン104を割り当てる。仮想マシン制御部515は、当該割り当てられた各仮想マシン104に選択されたゲームのゲーム識別情報及びユーザー識別情報等を送信するとともに、当該ゲーム識別情報を有するゲームプログラムの実行を同期して開始するよう指示する。これにより、ユーザーは、同時に対戦プレイを行うことができる。
トーナメントプレイが選択された場合には、例えば、仮想マシン割当部514は、トーナメント情報に応じて、各仮想マシン104を割り当てる。具体的には、例えば、トーナメント情報が図7(B)及び図8に示される場合において、ゲームプログラムがレースの1コースであって、当該1コースについて仮想マシン104で当該ゲームプログラムが開始され終了される場合について説明する。1回戦(回戦識別情報が1に相当)においては、ユーザ識別情報u1とu2、u3とu4に対応するユーザーの対戦であることから、仮想マシン制御部515は、ユーザ識別情報u1乃至u4に対応する各仮想マシン104にゲームプログラムを同期して開始するよう指示する。2回戦においては、仮想マシン制御部515は、ユーザ識別情報u1とu3に対応するユーザーの対戦であることから、ユーザ識別情報u1とu3に対応する各仮想マシン104にゲームプログラムの実行を同期して開始するよう指示する。なお、この場合、ユーザ識別情報u2とu4に対応するユーザーが、トーナメントの2回戦(回戦識別情報が2に相当)についても観戦することができるよう、ユーザ識別情報u1とu3に対応する仮想マシン104に、当該ゲームプログラムの実行による画像情報を、ユーザ識別情報u2とu4に対応する端末102に送信するよう指示する構成としてもよい。なお、上記は、2回戦までのトーナメントの例として説明したが、3回戦、4回戦等がある場合には、上記と同様の処理が行われることはいうまでもない。
グループ対戦が選択されている場合、仮想マシン割当部514は、グループ対戦情報に応じて、各仮想マシン104を割り当て、仮想マシン制御部515は、当該グループ対戦情報に応じて、各仮想マシン104を制御する。具体的には、例えば、図7(C)に示した場合において、ゲームプログラムがレースの1コースであって、当該1コースについて仮想マシン104で当該ゲームプログラムの実行が行われる場合について説明する。1回目の対戦では、ユーザー識別情報u1とu3に対応するユーザーの対戦であることから、ユーザー識別情報u1とu3に対応する仮想マシン104に当該ゲームプログラムの実行を開始するよう指示する。このとき、ユーザー識別情報u2とu4に対応するユーザーがユーザー識別情報u1とu2に対応するユーザーの対戦を観戦できるよう、当該ゲームプログラムの実行による画像情報をユーザー識別情報u2とu4に対応する端末102に送信するよう指示するように構成してもよい。2回目の対戦では、ユーザー識別情報u2とu4に対応するユーザーの対戦であることから、ユーザー識別情報u2とu4に対応する仮想マシン104に当該ゲームプログラムの実行を開始するよう指示する。このとき、同様に、ユーザー識別情報u1とu3に対応するユーザーがユーザー識別情報u2とu4に対応するユーザーの対戦を観戦できるように、当該ゲームプログラムの実行による画像情報をユーザー識別情報u1とu3に対応する端末102に送信するよう構成してもよい。
グループトーナメントが選択されている場合には、例えば、仮想マシン割当部514は、グループ対戦情報及びグループトーナメント情報に応じて、各仮想マシン104を割り当てる。そして、仮想マシン制御部515は、グループ対戦情報及びグループトーナメント情報に応じて、各仮想マシン104を制御する。具体的には、例えば、図7(C)、(D)に示した場合おいて、ゲームプログラムがレースの1コースであって、当該1コースについて仮想マシン104で当該ゲームプログラムの実行が開始され終了される場合について説明する。1回目の対戦においては、グループ識別情報G1とG2及びG3とG4に対応するグループの対戦であることから、各グループの優先順位が1(優先順位識別情報が1に相当)のユーザー(例えばユーザー識別情報u1とu3に対応するユーザー等)に対応する仮想マシン104に当該ゲームプログラムの実行を同期して開始するよう指示する。1回目の対戦の次の対戦は、各グループの優先順位が2のユーザー(例えば、ユーザー識別情報u2とu4に対応するユーザー等)であることから、各優先順位が2のユーザーに対応する仮想マシン104に当該ゲームプログラムを同期して開始するように指示する。2回目の対戦は、G1とG3の対戦であることから、G1とG3の優先順位が1のユーザー(例えばユーザー識別情報u1に対応するユーザー等)に対応する仮想マシン104のエミュレーションを同期して開始するよう指示する。以下同様にトーナメントが終了するまで同様の処理を行う。
なお、管理サーバ103の構成は上記に限定されるものではなく、上記構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。例えば、上記に示した対戦プレイ、トーナメントプレイ、グループ対戦プレイ、グループトーナメントプレイ等として説明した例は、一例であって、これに限定されるものではない。
例えば、トーナメントは、上記の他、総当たり戦、勝ち抜き戦、勝ち上がり戦等その他の形式であってもよい。また、トーナメント等で競われる内容は、各ユーザーがゲームで獲得したスコア、所定の期間内のスコア、あるポイントまでに要した時間、グループ全体での上記スコアや時間等が含まれる。また、上記トーナメントにおける各回の対戦は、2のユーザ毎に対戦する場合を例として説明したが、他の人数毎におこなわれるものであってもよいし、また、トーナメント表は異なる形式であってもよい。また、上記の例においては、複数人でプレイされる対戦プレイ等の場合に、仮想マシン104を同期させてゲームプログラムを実行させる例を用いて説明したが、後述するように非同期(例えば、予め記録された動画像と対戦する)で、行われるようにしてもよい。また、管理サーバ103は、上記構成に加え、例えば、上記のようなゲームプログラムの使用を各ユーザーが開始してから終了するまでの時間を管理する時間管理手段を有し、当該時間に基づいて課金情報を生成し保持してもよいし、また、月額制等で各ユーザーの使用を管理してもよい。
次に、図10を用いて各仮想マシン104の機能的な構成について説明する。図10に示すように、各仮想マシン104は、例えば、スナップショット取得部801、ゲーム取得部803、時間計測部805、実行部806、実行制御部807、チェックポイント検出部808、実行情報取得部809、処理情報実行部813、圧縮部814、送信部815、チェックポイントデータ設定部818を含む。
スナップショット取得部801は、管理サーバ103から選択されたゲームのゲーム識別情報を取得し、当該ゲーム識別情報に基づいて、スナップショット記憶部802から、当該識別情報に関連付けて記憶されたスナップショット情報を取得する。ここで、スナップショット情報とは、後述する実行部、つまり、例えば、エミュレータやシミュレータ、により再現されるゲーム機器の実行状態(メモリ、レジスタ、プログラムカウンタの値等)や、ゲーム機器が実装される場合には当該ゲーム機器の実行状態に相当する。なお、スナップショット記憶部802は、例えば、図1に示したデータベースのうち1のデータベース105に相当する。なお、スナップショット情報は、更に、上記ユーザー識別情報及び当該ユーザーのランク情報と関連付けられて記憶され、スナップショット取得部801は、管理サーバ103から取得したユーザーの識別情報及びランク情報に基づいて、スナップショット情報を取得する構成としてもよい。この場合、例えば、レースゲームの1コースについてランクが低いユーザーとランクが高いユーザーが対戦する場合、ランクが低いユーザーについては、ランクが高いユーザーよりもコースが進んだ場所からスタートさせる等、ユーザー毎にハンディをつけることができる。
ゲーム取得部803は、管理サーバ103から選択されたゲームプログラムのゲーム識別情報を取得し、当該ゲーム識別情報に基づいて、ゲーム記憶部804から対応するゲームプログラムを取得する。なお、ゲーム記憶部804は、例えば、図1に示したデータベースのうち1のデータベース105に相当する。
時間計測部805は、例えば、後述する実行部806によるゲームプログラムの実行の開始からの経過時間、チェックポイント検出部808による、あるチェックポイントの検出から他のチェックポイントの検出までの時間等、予め設定された時間を計測する。また、当該時間計測部805は、ユーザーの指示に応じて、時間の計測の開始や終了を行うように構成してもよい。
実行部806は、実行制御部807からの制御信号に応じて、ゲーム取得部803により取得されたゲームプログラムを実行する。実行制御部807は、実行部806のゲームプログラムの実行を制御する。具体的には、例えば、上記同時プレイが選択されている場合には、管理サーバ103からのゲームプログラムの実行の開始指示に応じて、実行部806の実行を開始する、または、後述するチェックポイント検出部808により、最後のチェックポイント(例えば、レースゲームのゴール画面に相当する)が検出された場合に、実行部806の実行を停止するよう指示する等である。ここで、実行部806は、例えば、当該ゲームプログラムの実行を開始する際に、スナップショット取得部801により取得されたスナップショット情報を用いる。これにより、例えば、ゲームプログラムのあらかじめ定められた所定のステージからの開始が可能となる。ここで、実行部806は、例えば、当該ゲームプログラムを対象としたゲーム機器のエミュレータやシミュレータ、または当該ゲーム機器に相当する。
実行情報取得部809は、実行部806の上記ゲームプログラムの実行により生成された実行情報を取得する。当該実行情報は、ゲームプログラムの実行により生成される画像情報や動画像情報、音声情報、実行部806の内部状態を示す情報(メモリ、レジスタ、プログラムカウンタの値等)等を含む。また、実行情報取得部809は、例えば、ユーザーの指示に応じて、実行情報記憶部810から実行情報を取得するように構成してもよいし、他の仮想マシン104の実行情報取得部809から実行情報を取得するよう構成してもよい。この場合、例えば、同一または他のユーザーの実行情報を利用することにより、プレイ場面のアップロードを行い、当該プレイ画面からゲームを実行することができる。ここで、当該実行情報記億部810に記憶された実行情報は、例えば同一または他の仮想マシン104の実行部806により生成された実行情報に相当する。また、例えば、対戦プレイ等複数人で同一のゲームが行われている場合等において、一時的にゲームを停止するようユーザーから指示された場合(例えば、ポーズボタンが押された場合)、実行情報記憶部810が当該停止されるまでの実行情報を記憶し、ゲームの再開を指示された場合には、当該停止された際の実行情報に基づいて、ゲームを再開できるように構成してもよい。この場合、当該停止や再開を指示できるユーザーは、あらかじめ設定されるように構成してもよい。
実行情報送信部811は、例えば、実行情報取得部809で取得された実行情報に含まれる画像情報を管理サーバ103に送信する。例えば、管理サーバ103は上述のように当該画像情報を、観戦を選択したユーザーに対応する端末102に送信する。また、実行情報送信部811は、管理サーバ103を介さずに直接観戦を選択したユーザーに対応する端末102に当該画像情報を送信してもよい。これにより、例えば、上述した当該ユーザーは、他のユーザーのゲームを観戦することができる。
チェックポイント検出部808は、上記実行情報に基づいて、あらかじめ設定されたチェックポイントを検出するとともに、検出したチェックポイントを識別するチェックポイント識別情報とともに当該チェックポイントに対応する処理情報のアドレスを処理情報実行部813に送信する。
具体的には、例えば、チェックポイント検出部808は、選択されたゲームのゲーム識別情報に基づいて、チェックポイントデータ記憶部812から、チェックポイントを検出するための条件情報アドレス及び処理情報アドレスを取得する。ここで、チェックポイントデータ記憶部812は、例えば、図11に示すように、ゲーム識別情報、条件情報アドレス、処理情報アドレスを表の形式で記憶しており、チェックポイント検出部808は、選択されたゲームのゲーム識別情報に基づいて、当該ゲームの条件情報アドレスを取得し、上記実行情報が当該条件情報アドレスに記憶された条件情報に合致するか否かを判断する。例えば、図11の例の場合、選択されたゲームの識別情報がg1とすると、チェックポイント検出部808は、条件情報アドレスc1乃至c4を有する各条件情報を取得し、上記実行情報が当該各条件情報に合致するか否かを判断する。
ここで、各条件情報は、上記ゲームプログラムの実行中の各チェックポイント、例えば、予め設定されたシーンやアクション等、に対応して記憶されている。チェックポイント検出部808は、上記取得された実行状態が当該各条件情報に応じた各条件に合致するか否かにより、あらかじめ設定された1または複数のチェックポイントを検出することができる。
より詳細には、例えば、当該条件情報は、特定の状況において実行部806により生成された画像情報や音声情報等のうちの全部または一部の特定のパターンや特徴量や特定のプログラムカウンタやレジスタの値等を含み、チェックポイント検出部808は、実行部806により生成された実行情報が、当該特定のパターンや特徴量等に合致するか否かを判定する。また、当該特定のパターンや特徴量等に合致するか否かについては、例えば、チェックポイント検出部808が、実行部806により生成された実行情報が、当該特定の特徴量等に対して、条件情報に含まれる所定の範囲内であるか否かを判定することにより行われる。具体的には、例えば、当該判定には、画像認識、音声認識、文字認識等を用いればよい。
ここで、例えば、選択されたゲームが上記レースゲームの例を用いて説明する。図12に示すように、例えば、レースコースの地図110を示す画像が表示され、操作対象の車の位置情報が特定の色で表示される場合には、当該レースコースの地図110を示す画像の所定の位置の色がコースの色から、当該特定の色に変化したかを特徴量として画像認識等により認識することにより、チェックポイントを検出するように構成すればよい。この場合、画像認識させる範囲は、例えば、図12に示すように、表示範囲のうちの一部の範囲111としてもよい。なお、その他の当該レースゲームの途中の特別な画像や文字等を画像認識や文字認識等することにより、チェックポイントを検出する構成であってもよい。
処理情報実行部813は、チェックポイント検出部808によりあるチェックポイントが検出された場合(ある条件情報に合致すると判断した場合)、チェックポイントデータ記憶部812に当該チェックポイント(条件情報)に関連付けて記憶されている処理情報をチェックポイントデータ記憶部812から取得する。具体的には、チェックポイント検出部808から取得した処理情報アドレスに基づいて、処理情報を取得する。そして、当該処理情報に基づいた処理を実行する。当該処理は、例えば、画像情報や音声情報等の出力処理であって、実行部806によるゲームプログラムの実行により生成された画像や音声等に加えて当該処理情報に基づく画像や音声等を出力するための処理、当該ゲームの終了後に表示される画像を出力するための処理等を含む。また、例えば、最後のチェックポイントに関連付けられた処理情報は実行部806の当該ゲームプログラムの実行を停止する処理に相当するように構成してもよい。また、例えば、当該処理情報は、例えば、所定の画像等に応じてユーザーのランク情報を認識するとともに、上記ランク情報を更新するように構成してもよい。また、チェックポイントデータ設定部818が管理サーバからの管理情報やユーザーの指示等に応じて、当該処理情報を変更または設定するように構成してもよい。また、例えば、上記対戦プレイやトーナメントプレイ等が行われている場合と、それ以外の場合(例えば、1Pプレイが選択されている場合)に応じて、異なる処理が行われるように構成してもよい。この場合、例えば、上記プレイ形式等に応じて、異なる処理情報が取得され、当該処理が実行されるように構成してもよい。
ここで、当該ゲームプログラムが、図13及び上記レースゲームの例を用いて、当該処理情報実行部813の機能的な構成の一例についてより詳細に説明する。チェックポイント検出結果送信部211は、チェックポイントを検出した結果についての情報(チェックポイント検出結果情報)を他の仮想マシン104や仮想サーバに送信する。ここで、他の仮想マシン104とは、例えば、管理サーバ103により、当該レースゲームが同期して開始されている仮想マシン104等に相当する。
具体的には、例えば、同時プレイが選択されている場合であって、チェックポイント検出部808により、例えば、順位を表示するための処理情報に関連付けられたチェックポイントが検出された際には、当該チェックポイント(条件情報)を識別するチェックポイント識別情報とともに、当該チェックポイントが検出された時間情報、及び、当該仮想マシン104の実行部806を割り当てられたユーザー識別情報を他の仮想マシン104に送信する。
また、例えば、グループ対戦プレイが選択されている場合には、最後のチェックポイント、例えば、レースのゴール画面に相当する)が検出された際には、レースが終了した旨を管理サーバ103の仮想マシン制御部515に通知する。これにより、仮想マシン制御部515は、上述した次の優先順位情報を有するユーザー識別情報に対応するユーザーの対戦を行わせるための処理を行うことができる。なお、グループトーナメントプレイの場合には、上記と同様であるため説明を省略する。
チェックポイント検出結果受信部212は、他の仮想マシン104により同一のチェックポイントが検出された際に送信されるチェックポイント識別情報、当該チェックポイントが検出された時間情報、当該他の仮想マシン104に割り当てられたユーザー識別情報を受信し、チェックポイント検出結果記憶部213に記憶する。
チェックポイント検出結果記憶部213は、また、チェックポイント検出部808が検出したチェックポイント識別情報、チェックポイントが検出された時間情報、仮想マシン104に割り当てられたユーザー識別情報も記憶する。具体的には、例えば、チェックポイント検出結果記憶部213は、これらの情報を図14に示すような表の形式で、記憶する。
ランキング情報生成部214は、当該チェックポイントが検出された際に、チェックポイント検出結果記憶部213に記憶されたチェックポイント検出結果情報を参照することにより、各ユーザーの順位を算出する。具体的には、例えば、図14の例を用いて説明する。例えば、チェックポイント検出部808が、チェックポイント識別情報aで表されるチェックポイントを検出したとする。このとき、チェックポイント検出結果記憶部213には、チェックポイント識別情報aで示されるユーザー識別情報u1乃至u4とそれぞれに対応する時間情報が記憶されている。ランキング情報生成部214は、各ユーザー識別情報u1乃至u4に対応して記憶されている時間情報を比較することにより、各ユーザーの順位を算出する。これにより、例えば、ユーザー識別情報u4の順位は4である等と算出する。
ここで、例えば、上記トーナメントプレイが選択されている場合には、ランキング情報生成部214は、チェックポイント検出結果記憶部213に記憶されている最後のチェックポイント(例えば、レースのゴール画面に相当する)のランキング情報が1に相当するユーザー識別情報をゲーム識別情報とともに管理サーバ103に送信する。管理サーバ103は、当該ユーザー識別情報に基づき、次の回の対戦の組み合わせを求めることができる。具体的には、例えば、図7(B)に示したトーナメントプレイの場合の一回戦の場合について説明する。例えば、上述のように一回戦では、ユーザー識別情報u1とu2、及び、u3とu4に対応するユーザーが対戦するが、ユーザー識別情報u1とu2に対応する仮想マシン104はユーザー識別情報u1を、ユーザー識別情報u3とu4に対応する仮想マシン104は、ユーザー識別情報u3を送信する。これにより、管理サーバ103の更新部507は、2回戦の勝者に相当するユーザー識別情報(ユーザー識別情報u1とu3に相当)を求め、回戦情報2に対応するユーザー識別情報の箇所にユーザー識別情報u1とu3と記憶させることができる。なお,上記においては、各仮想マシン104によりユーザー識別情報u1とu3が重複して管理サーバ103に送信されることから、各対戦に対応する複数の仮想マシン104のうちの1の仮想マシン104のみが送信するようにしてもよい。
出力画像生成部215は、上記処理情報に応じた出力画像を生成する。例えば、あるチェックポイントに関連付けられた処理情報が、レースがスタートしてからの時間の表示である場合には、時間計測部805からレースがスタートしてからの経過時間情報を取得し、図15に示した当該時間を示す画像113を実行部806のゲームプログラムの実行に基づく画像114に加えて表示するための画像情報を生成する。また、例えば、上述のような順位の表示である場合には、出力画像生成部215は、上記ランキング情報生成部214からの順位情報に基づき、当該仮想マシン104に対応するユーザーの順位を示す画像112を、実行部806の実行に基づく画像114に加えて表示するための画像情報を生成する。また、出力画像生成部215は、例えば、対戦プレイ等が選択されている場合には、同期して実行されている仮想マシン104の実行部806により生成された画像情報を、図16に示すような実行部806の実行に基づく画像114に加えて表示するための画像情報を生成してもよい。
また、例えば、チェックポイントが最終チェックポイントを検出した場合には、図17に示すように、出力画像生成部215は、ゴール時間をGOALTIMEの文字の表示に加えて、実行部806からの画像に重ねて表示するための画像情報を生成し、次に図18に示すようなランキング画面を表示するための画像情報を生成する。
この場合、図17を表示するための画像情報については、例えば、処理情報実行部813811は、時間計測部805からの経過時間を、実行部806により生成された画像情報に重ねて表示するような画像情報(図17の画像に相当)を生成する。また、図18を表示するための画像情報については、上述したように、例えばチェックポイント検出結果記憶部213に、最終チェックポイント識別情報に関連付けられて記憶されている時間情報やユーザー識別情報に基づいて、ランキング情報生成部214が各ユーザーのランキングを算出し、当該ランキングに基づいて、各ユーザーのランキング画面を表示するための画像情報を生成すればよい。なお、このときの画像情報は、図18に限られず、他の画像情報であってもよい。具体的には、例えば、ユーザーの属するグループ名、スコアの一覧、スコアの履歴、他のトーナメントの対戦結果等その他の関連する情報を図18に加えてまたは図18とは別に表示するようにしてもよい。
また、圧縮部814は、実行部806により生成された画像情報または出力画像生成部215から生成された画像情報を圧縮し、送信部815は、対応する端末102へ当該画像情報を送信する。具体的には、例えば、送信部815は、実際に当該仮想マシン104でゲームプログラムをプレイしているユーザーに対応する端末の他、当該ゲームプログラムの観戦を所望しているユーザーに対応するユーザー等に当該画像情報を送信する。
なお、本実施の形態は上記構成に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。具体的には、例えば、圧縮部814を有さずに、圧縮しないで上記画像情報を端末102へ送信するよう構成してもよい。また、仮想マシン104に代えて、物理マシン402を用いて構成してもよい。更に、管理サーバ103や、データベース105についても、仮想マシン104で構成してもよい。更に、上記管理サーバ103、仮想マシン104、データベース105の各機能は、一例であってこれに限定されるものではなく、管理サーバ103の一部または全部の機能を、仮想マシン104が有するように構成してもよいし、仮想マシン104の一部または全部の機能を、管理サーバ103または端末102が有するように構成してもよい等、種々の変形が可能である。
次に、図19を用いて、実行部806によるゲームプログラムの実行が開始されるまでの、端末102、管理サーバ103、仮想マシン104の処理の一例について説明する。なお、下記においては、各ユーザーが各端末102において同一の上記レースゲームを選択し、同時プレイを選択した場合について説明する。
各ユーザーは、各端末102からネットワーク101を介して、管理サーバ103に選択画面の表示を要求する(S101)。管理サーバ103は、選択画面を構成する画像情報を各端末102に配信する(S102)。具体的には、当該画像情報等は、例えば、いわゆるストリーミングにより、配信され、端末102は、当該画像情報を、画像再生プログラム等を用いて表示する。なお、ストリーミング配信の詳細については公知であるので説明を省略する。
各ユーザーは、各端末102からネットワーク101を介して、所望のゲーム選択指示を送信する(S103)。次に、管理サーバ103は、当該複数のユーザーにより選択されたゲーム識別情報に関連付けられて記憶されているスタート画像情報を、各端末102に送信する(S104)。上述のように、当該スタート画像情報により端末102に表示されるスタート画像は、例えば、図9(A)に示した初期画像や、図9(C)に示した当該スタート画像に関連するオブジェクト画像を重ねた画像である。
管理サーバ103は、各端末102に各仮想マシン104を割り当てる(S105)。上記のように、このとき、各仮想マシン104に各端末102を操作する各ユーザーを識別するユーザー識別情報を併せて送信してもよい。次に、管理サーバ103は、当該ゲームの識別情報に関連付けられて記憶されているスナップショット情報をロードするよう各仮想マシン104に指示する(S106)。当該指示に基づき、各仮想マシン104は、スナップショット記憶部802から上記スナップショット情報をロードする。次に、管理サーバ103は、当該ゲームプログラムのエミュレーションの開始を各仮想マシン104に指示する(S107)。そして、各仮想マシン104の実行部806は、同期して当該ゲームプログラムを実行する。
次に、図20を用いて、実行部806によるゲームプログラムの実行が開始されてからの各仮想マシン104の処理のフローの一例について説明する。なお、当該処理のフローは、選択されたゲームが上述のレースゲームであって、同時プレイが選択されている場合を例として説明する。
実行部806による選択されたゲームプログラムの実行(例えば、エミュレーション等)が開始される(S201)。このとき、時間計測部805は、ゲームプログラムの実行が開始されてからの経過時間の計測を開始する(S202)。実行情報取得部809は、実行部806からの実行情報の取得を開始する(S203)。チェックポイント検出部808は、当該取得された実行情報に基づき、最後のチェックポイントか否かを判定する(S204)。そして、最後のチェックポイントでないと判断した場合は、S205に進む。
チェックポイント検出部808は、中間チェックポイントか否かを判定する(S205)。中間チェックポイントであると判断した場合には、当該中間チェックポイントに関連付けて記憶されている処理情報を取得する(S206)。処理情報実行部813は、当該処理情報に基づき、時間情報を取得する(S207)。また、処理情報実行部813は、当該処理情報に基づき、ランキング情報を生成する(S208)。処理情報実行部813は、当該時間情報及びランキング情報を用いて出力画像を生成し、当該仮想マシン104に割り当てられている端末102に出力する(S209)。次にS204に戻る。
一方、最後のチェックポイントであると判断した場合は、当該最後のチェックポイントに関連付けて記憶されている処理情報を取得する(S210)。処理情報実行部813は、当該処理情報に基づき、時間計測部805から時間情報を取得するとともに、当該時間情報を用いて出力画像を生成し、当該仮想マシン104に割り当てられている端末102に出力する(S211)。そして、実行部806を停止する(S212)。処理情報実行部813は、当該処理情報に基づき、ランキング情報を生成する(S213)。処理情報実行部813は、当該時間情報及びランキング情報を用いてランキング画像情報を生成し、当該仮想マシン104に割り当てられている端末102に出力する(S214)。そして、処理を終了する。
なお、上記処理のフローは一例であって、種々の変形が可能である。例えば、上記実施の形態で示した処理と実質的に同一の処理、同一の作用効果を奏する処理又は同一の目的を達成することができる限り、各ステップの処理の順序を入れ替えてもよい。また、上記については、中間チェックポイントが1の場合について説明したが、複数の中間チェックポイントを有し、複数の中間チェックポイントに設定された異なる処理を行うように構成してもよい。また、上記は同時プレイが選択された場合におけるレースゲームの例を用いて時間や順位について表示される構成について説明したが、各チェックポイントの検出に応じてその他の情報が表示されてもよいし、所定の音楽や動画が再生されるように構成してもよい。
上記実施の形態によれば、専用の装置で実行するよう作成されたアプリケーションプログラムの改変を行うことなく、新たな機能、例えば、対戦機能のないゲームへの対戦機能、を追加することができる。
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。具体的には、上記においては、主に選択されたゲームがレースゲームの例を用いて、説明したが、その他のシューティングゲームやロールプレイングゲーム等その他のゲームに適用してもよい。例えば、シューティングゲームであれば、ゲームの一部のステージが準備されており、当該ステージをクリアした場合の文字列等を検出し、終了後に複数のプレーヤーのうち、どのプレーヤーが最も高得点であるかや、各プレーヤーが当該ステージ終了までに要した時間を表示するようにしてもよい。
また、上記においては、特定の文字や画像を認識する構成について説明したが、所定の処理、例えば、ブロックくずし等のゲームにおいては連続してブロックがくずされた数等を画像認識等して、当該数に応じたランキング画像等を出力するようにしてもよい。
また、例えば、ロールプレイングゲームであれば、特定のキャラクターを画像認識等することにより、当該キャラクターが登場した際に当該特定のキャラクターに関する情報(例えば、当該キャラクターの弱点についての情報)が表示されるように構成してもよい。この場合、例えば、図11の処理情報に代えて、条件情報アドレスに関連付けて直接当該情報を含む画像情報の画像アドレスが記憶され、当該画像アドレスに記憶されている画像情報が表示される構成としてもよい。
更に、対戦プレイやトーナメントプレイ等ユーザー同士の対戦を含むプレイ形式が選択された場合において、1または複数のプレーヤーが非同期に1または複数のプレーヤーと対戦できるように構成してもよい。この場合の変形例について、図21を用いて具体的に説明する。なお、当該変形例についても、上記レースゲームが選択された場合について説明する。
図21に示すように、当該変形例においては、仮想マシン104は、更に、動画像データ取得部816を有する。当該動画像データ取得部816で取得される動画像データは、例えば、上記レースゲームの実行部806の実行により生成された動画像データのうちの1または複数の動画像データ(例えば、あらかじめ記録された動画像情報)であり、例えば、動画像データ記憶部817に記憶されている。なお、当該動画像データ記憶部817は、例えば、データベース105のうちの1のデータベース105に相当する。当該動画像データ取得部816は、例えば、当該レースゲームの選択に応じた実行制御部807からの指示により、当該動画像データをデータベース105等から取得し、処理情報実行部813に送信する。なお、上述した選択画面において、当該1または複数の動画像データについての情報、例えば、ラップタイムやプレーヤーの名称等、が表示され、ユーザーが当該情報を参照して、所望の1または複数の動画像データを選択可能な構成としてもよい。なお、動画像データ記憶部817は、ユーザーのプレイ記録指示やチェックポイントの指定等に応じて、当該ユーザーのプレイに基づく動画像データを記憶できるように構成し、当該ユーザーや第三者が当該動画像データを視聴できるようにしてもよい。この場合、ユーザーの指示等に応じて当該動画像データを削除するように構成してもよい。
処理情報実行部813は、当該動画像データに基づいた画像情報を生成し、上記実行部806の実行による当該レースゲームの画像情報に当該画像情報を加えた画像情報を生成する。当該画像情報は、上記実施の形態と同様に端末102に送信され、端末102の表示部204に表示される。このときの表示部204に表示の一例を図16に示す。図16に示すように、例えば、実行部806の実行に基づく当該レースゲームの画像190の右上方に、動画像データに基づく画像191が表示される。なお、図16に示すような1の動画像データに基づく画像191が表示される構成に限られず、複数の動画像データに基づく画像が表示されてもよい。
また、本変形例におけるランキング情報の生成についての処理情報実行部813の機能的な構成について説明する。処理情報実行部813は、図22に示すように、チェックポイント検出結果取得部221を有し、チェックポイント検出結果記憶部222から当該動画像データに関連付けて記憶されたチェックポイント検出部808が検出したチェックポイント識別情報、チェックポイントが検出された時間情報、仮想マシン104に割り当てられたユーザー識別情報を取得し、チェックポイント検出結果記憶部213に記憶する。なお、チェックポイント検出結果記憶部222は、例えば複数のデータベース105の1のデータベース105に相当する。そして、上記実施の形態と同様に、チェックポイント検出結果記憶部213に記憶された情報に基づき、ランキング情報を生成する。
なお、本変形例のその他の構成や処理のフローの詳細については、上記実施の形態と同様であるので説明を省略する。本変形例によれば、非同期ではあっても、上記実施の形態と同様に、プレーヤーは、疑似的に他のプレーヤーと同期してレースゲームを行うことができる。
本発明は、上記実施の形態及び変形例に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態や変形例で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。具体的には、例えば、互いに矛盾しない限り上記実施の形態と上記変形例を組み合わせて構成してもよい。この場合、一部のプレーヤーについては同期して、他の一部のプレーヤーについては、非同期ではあるが、疑似的に同期して、ゲームを行うことができる。更に、上記実施の形態及び変形例はゲームプログラムを用いる場合について説明したが、これに限られず、その他のゲームプログラム以外のアプリケーションプログラムに用いてもよい。更に、上記においては、主に、同じゲームプログラムが、同時プレイやトーナメントプレイ等として複数人で実行される場合について説明したが、これに限られず、複数の仮想マシン104が複数の異なるアプリケーションプログラムを実行してもよいことはいうまでもない。
また、例えば、時間計測部805が、ユーザーの操作指示がない期間(ログアウト期間)を計測し、当該期間が所定の期間以上の場合には、管理サーバ103または他の仮想マシン104は、当該ユーザーがログアウト等したと判断してもよい。この場合、例えば当該ログアウトしたユーザーに対応する実行部806の実行を停止するようにしてもよいし、また、ランキング画面においては、ログアウトした旨を表示する等してもよい。更に、時間計測部805は、例えば、ユーザーが最初に上記実施の形態等で示したサービスを利用してからの期間を計測し、当該期間に応じて、当該ユーザーに対する課金情報や、当該サービスの利用の可否等を決定できるようにしてもよい。また、重複して実行されるゲームプログラムの数は、ユーザーの状況等、例えば、ログアウトした場合や途中で対戦をやめた場合等、に応じて増減するように構成してもよい。また、例えば、時間計測部805が、上記対戦プレイ、トーナメントプレイ等における各ユーザー同士の対戦が開始されてからの時間、あらかじめ設定されたチェックポイントが検出されてからの時間、または上記ログアウト期間等を計測し、当該時間が所定の時間に達した場合に、上記各ユーザー同士の対戦が終了、例えば、実行部806における当該ゲームプログラムの実行を停止、するように構成してもよい。この場合、例えば、当該計測される時間及び例えばゲームが終了されるまでの所定の期間は、対戦プレイやトーナメントプレイ等における場合と、それ以外の場合(例えば、1Pプレイが選択されている場合)等に応じて、異なるように構成してもよい。