(第1の実施の形態)
実施の形態に係るゲームシステムは、ゲームプレイヤーがプレーしているゲームを他のユーザが観戦することを可能とする機能を提供する。また、ゲームシステムは、ゲームを観戦しているユーザが、ゲームに関連するアクションを実行してゲームに影響を与えることを可能とする機能を提供する。以降、ゲームをプレーするプレイヤーを「ゲームプレイヤー」といい、ゲームを観戦するユーザを「観戦プレイヤー」という。ゲームシステムは、ゲームプレイヤーの指示に応じてゲームを制御し、ゲームプレイヤーにゲーム画面を提供するとともに、ゲームプレイヤーに提供されるゲーム画面とは異なる観戦用のゲーム画面を生成し、観戦プレイヤーがゲームプレイヤーとは異なる視点からゲームを観戦することを可能とする。これにより、多くの観戦プレイヤーが気軽にゲームを観戦し、ゲームの楽しさを体験する機会を提供することができるので、ゲームの普及に寄与することができる。また、ゲームプレイヤーも、観戦プレイヤーによる介入を受けながらゲームを進行させるので、単独でのプレイとは異なる楽しさを享受することができ、長期にわたって飽きることなくゲームを楽しむことができる。
図1は、実施の形態に係るゲームシステムの全体構成を示す。ゲームシステム1は、ゲームプレイヤーがプレーするゲームを管理するゲーム管理サーバ100と、ゲームを観戦する機能を管理する観戦管理サーバ200と、観戦用のゲーム画面を配信するストリーミングサーバ300と、ゲームプレイヤー端末400と、観戦プレイヤー端末500と、それらを接続するネットワークの一例であるインターネット2を備える。ゲームプレイヤー端末400は、インターネット2を介して、ゲームプレイヤーによるゲームに関する指示をゲーム管理サーバ100に送信し、ゲーム管理サーバ100からゲーム画面を受信して表示する。観戦プレイヤー端末500は、インターネット2を介して、ストリーミングサーバ300から観戦用のゲーム画面を受信して表示する。観戦プレイヤーによるゲームに関するアクションを実行可能とする場合は、観戦プレイヤー端末500は、観戦管理サーバ200から観戦プレイヤーが実行可能なアクションを定義した観戦用ユーザインタフェースを受信し、観戦プレイヤーによるアクションの実行指示を観戦管理サーバ200へ送信する。
本実施の形態では、同一の観戦用のゲーム画面を多数の観戦プレイヤーが観戦することを想定しているので、多数の観戦プレイヤー端末500が直接ゲーム管理サーバ100と通信することを避けるために、観戦用のゲーム画面の配信はストリーミングサーバ300が、観戦プレイヤーによるアクションの管理は観戦管理サーバ200が担当する。これにより、多数の観戦プレイヤーが観戦する場合であっても、ゲーム管理サーバ100に多大な負荷がかかることを避けることができる。別の実施の形態では、ゲーム管理サーバ100が観戦管理サーバ200及びストリーミングサーバ300の機能の一部又は全部を担当してもよい。更に別の実施の形態では、観戦管理サーバ200がストリーミングサーバ300の機能を担当してもよい。
ゲームシステム1は、複数のゲームの観戦を管理してもよい。すなわち、ゲームシステム1は、異なる複数のゲームを管理する複数のゲーム管理サーバ100を備えてもよい。観戦管理サーバ200は、個々のゲーム管理サーバ100が管理するゲームの観戦を管理するためにゲーム管理サーバ100ごとに設けられてもよいし、複数のゲーム管理サーバ100により管理される複数のゲームの観戦を単一の観戦管理サーバ200が管理してもよい。後者の場合、観戦管理サーバ200は、複数のゲーム管理サーバ100により管理される複数のゲームの中から観戦プレイヤーが観戦するゲームを選択可能としてもよい。ストリーミングサーバ300も同様に、ゲーム管理サーバ100ごとに設けられてもよいし、複数のゲームの観戦画面を単一のストリーミングサーバ300が配信してもよい。
図2は、実施の形態に係るゲーム管理サーバ100の構成を示す。ゲーム管理サーバ100は、通信部130、制御部140、ゲームデータ保持部160、及びゲームプレイヤーデータベース162を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
通信部130は、インターネット2を介して、他の装置との間でデータを送受信する。制御部140は、ゲームプレイヤー端末400から受け付けたゲームプレイヤーによるゲームに関する指示に基づいてゲームを進行させる。ゲームデータ保持部160は、ゲームの進行に必要なデータなどを保持する。ゲームプレイヤーデータベース162は、ゲーム管理サーバ100が管理するゲームのゲームプレイヤーに関する情報を保持する。ゲームプレイヤーデータベース162は、例えば、ゲームプレイヤーのID、名称、アバター、属性、レベルなどの情報を保持する。
制御部140は、ゲーム制御部141、ゲーム画面生成部142、ゲームプレイヤー指示受付部143、観戦ポイント設定部144、観戦用ゲーム画面生成部145、観戦プレイヤー指示受付部146、観戦画面UI情報送信部147、及びゲームプレイヤー管理部148を含む。
ゲームプレイヤー管理部148は、ゲームプレイヤー端末400からゲームプレイヤーの情報を受け付けてゲームプレイヤーデータベース162に登録するとともに、ゲームプレイヤーデータベース162に登録された情報の変更や削除を管理する。ゲームプレイヤー管理部148は、ゲームプレイヤー端末400からゲームの開始要求を受け付けると、ゲームプレイヤー端末400からゲームプレイヤーの認証情報を取得し、ゲームプレイヤーデータベース162に登録された情報を参照して、ゲームプレイヤーを認証する。ゲームプレイヤー管理部148は、ゲームプレイヤーの認証に成功すると、ゲーム制御部141にゲームを開始させる。
ゲーム制御部141は、ゲームプレイヤーがプレーするゲームを制御するためのゲームプログラムを実行する。ゲーム制御部141は、ゲームプレイヤー端末400との間でゲームの制御に必要なデータを送受信し、ゲームを進行させる。
ゲーム画面生成部142は、ゲーム制御部141により制御されるゲームの画面を生成する。ゲーム画面生成部142は、ゲームが展開される2次元又は3次元のゲーム世界において、ゲームのキャラクタ、アイテム、オブジェクトなどが配置されたゲームフィールドをレンダリングするための視点位置及び視線方向を設定し、設定された視点位置から視線方向に見たゲームフィールドをレンダリングして、ゲーム画面を生成する。視点位置及び視線方向は、ゲームプログラムにより設定されてもよいし、ゲームプレイヤー端末400からの指示に応じて設定又は変更されてもよい。ゲーム画面生成部142は、通信部130を介して、生成したゲーム画面をゲームプレイヤー端末400へ送信する。本実施の形態では、ゲーム画面がゲーム管理サーバ100により生成される例について説明するが、別の実施の形態では、ゲーム画面はゲームプレイヤー端末400により生成されてもよい。この場合、ゲーム管理サーバ100は、ゲーム画面生成部142に代えて、ゲームプレイヤー端末400がゲーム画面を生成するために必要なデータなどをゲームプレイヤー端末400に送信する構成を備える。
ゲームプレイヤー指示受付部143は、ゲームプレイヤー端末400から、ゲームプレイヤーによるゲームに関する指示を受け付ける。ゲームプレイヤー指示受付部143は、受け付けた指示をゲーム制御部141に伝達する。ゲーム制御部141は、ゲームプレイヤー指示受付部143から伝達されたゲームプレイヤーによる指示にしたがってゲームを制御する。
観戦ポイント設定部144は、ゲーム制御部141により制御されるゲームを観戦プレイヤーが観戦するための視点を設定する。観戦ポイント設定部144は、観戦用ゲーム画面生成部145が観戦用のゲーム画面を生成するときに、ゲームフィールドをレンダリングするための視点位置を設定する。観戦ポイント設定部144は、観戦のための視点の位置として設定可能な複数の位置を予め保持しておき、それらの中から所定の条件にしたがって観戦のための視点の位置を選択してもよい。観戦ポイント設定部144は、所定の条件にしたがって観戦のための視点の位置を動的に変更してもよい。例えば、観戦のための視点が車両や飛行機などの移動体に設定される場合、観戦ポイント設定部144は、視点が設定された移動体を所定のアルゴリズムにより自動的に移動させてもよい。観戦ポイント設定部144は、所定の条件にしたがって、観戦のための視点を新たに生成し、又は、削除してもよい。例えば、観戦ポイント設定部144は、ゲームの進行によりゲームフィールドに新たにオブジェクトなどが配置されたときに、配置されたオブジェクトに視点を設定してもよい。観戦ポイント設定部144は、複数の観戦のための視点を設定し、観戦プレイヤーが観戦のための視点を切り替えられるようにしてもよい。
観戦ポイント設定部144は、観戦のための視点ごとに、観戦プレイヤーに関する条件を設定してもよい。例えば、観戦ポイント設定部144は、観戦可能な観戦プレイヤーの数の上限値を設定してもよい。この上限値は、観戦管理サーバ200又はストリーミングサーバ300の処理能力に応じて決定されてもよい。観戦ポイント設定部144は、観戦可能な観戦プレイヤーの属性を設定してもよい。例えば、ある視点においては、男性の観戦プレイヤーのみの観戦を可能とし、別の視点においては、女性の観戦プレイヤーのみの観戦を可能としてもよい。
観戦ポイント設定部144は、観戦のための視点ごとに、観戦プレイヤーが実行可能なアクションを設定する。観戦プレイヤーが実行可能なアクションは、予めゲームプログラムにより定義されていてもよいし、ゲームの進行などに応じて動的に変更されてもよい。観戦ポイント設定部144は、設定した観戦ポイントに関する情報を観戦管理サーバ200へ送信する。
観戦用ゲーム画面生成部145は、観戦ポイント設定部144により設定された視点位置を用いてゲームフィールドをレンダリングし、観戦用のゲーム画面を生成する。観戦用ゲーム画面生成部145は、生成した観戦用ゲーム画面を、配信用のストリーミングサーバ300へ送信する。観戦用ゲーム画面生成部145は、観戦プレイヤーが視線方向を変更してゲーム画面よりも広い範囲のゲームフィールドを見ることを可能とするために、実際のゲーム画面に対応する画角よりも広い範囲のゲームフィールドをレンダリングしてもよい。例えば、左右に視線方向を変更することを可能とするために、左右に広い範囲のゲームフィールドをレンダリングしてもよいし、3次元のゲームフィールドにおいて、全ての方向を見ることができるように、360度の方向のゲームフィールドを天球状にレンダリングしてもよい。
本実施の形態では、一つの観戦ポイントにおいて、複数の観戦プレイヤーがゲームを観戦できるようにする。すなわち、後述するように、観戦用ゲーム画面生成部145により生成された観戦用ゲーム画面は、ストリーミングサーバ300から複数の観戦プレイヤー端末500に配信される。したがって、観戦ポイント設定部144は、個別の観戦プレイヤーから視点位置の変更の指示を受け付けない。すなわち、観戦プレイヤーは、観戦用ゲーム画面の視点位置を変更することができない。別の実施の形態においては、観戦用ゲーム画面生成部145は、観戦プレイヤーごとに観戦用ゲーム画面を生成してもよい。この場合、観戦ポイント設定部144は、観戦プレイヤー端末500から視点位置の変更の指示を受け付けてもよい。
本実施の形態では、観戦用のゲーム画面は、ストリーミングサーバ300から観戦プレイヤー端末500へ配信されるが、別の実施の形態では、観戦用のゲーム画面は、ゲーム管理サーバ100又は観戦管理サーバ200から観戦プレイヤー端末500へ配信されてもよい。この場合、ゲーム管理サーバ100又は観戦管理サーバ200は、観戦用ゲーム画面生成部145により生成されたゲーム画面を観戦プレイヤー端末500へ配信する構成を更に備えてもよい。
本実施の形態では、観戦用ゲーム画面がゲーム管理サーバ100により生成される例について説明するが、別の実施の形態では、観戦用ゲーム画面は観戦プレイヤー端末500により生成されてもよい。この場合、ゲーム管理サーバ100は、ゲーム画面生成部142に代えて、観戦プレイヤー端末500が観戦用ゲーム画面を生成するために必要なデータなどを観戦プレイヤー端末500又は観戦管理サーバ200に送信する構成を備える。また、この場合、ストリーミングサーバ300は設けられなくてもよい。
観戦プレイヤー指示受付部146は、観戦プレイヤーによるゲームに関する指示を受け付ける。後述するように、観戦プレイヤーによるゲームへの介入を受け付ける場合、観戦管理サーバ200が観戦プレイヤーによるゲームに関するアクションを管理する。すなわち、観戦プレイヤー指示受付部146は、観戦プレイヤー端末500から直接指示を受け付けるのではなく、観戦管理サーバ200から指示を受け付ける。観戦プレイヤー指示受付部146は、観戦管理サーバ200から観戦プレイヤーによるアクションの指示を受け付けると、受け付けた指示をゲーム制御部141に伝達する。ゲーム制御部141は、指示されたアクションを実行し、ゲームに反映させる。
観戦画面UI情報送信部147は、観戦プレイヤーが観戦しているゲームに対して実行可能なアクションを規定したユーザインタフェースを観戦画面に付加するために必要な情報を観戦管理サーバ200へ送信する。観戦画面UI情報送信部147は、ゲームプログラムにより予め定義されていてもよいし、観戦ポイント設定部144により動的に設定又は変更されてもよい。
図3は、実施の形態に係る観戦管理サーバの構成を示す。観戦管理サーバ200は、通信部230、制御部240、ゲームデータ保持部260、観戦プレイヤーデータベース262、及びすれ違い通信条件保持部264を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
通信部230は、インターネット2を介して、他の装置との間でデータを送受信する。制御部240は、ゲーム管理サーバ100から受信した情報に基づいて、観戦プレイヤーによるゲームの観戦を管理する。ゲームデータ保持部260は、観戦画面の生成と、観戦プレイヤーによるアクションの管理に必要なデータなどを保持する。観戦プレイヤーデータベース262は、ゲームの観戦を要求した観戦プレイヤーに関する情報を保持する。すれ違い通信条件保持部264は、プレイヤー間のすれ違い通信に関する条件を保持する。
制御部240は、観戦要求受付部241、観戦画面UI管理部242、観戦画面生成部243、観戦プレイヤー指示集約部244、観戦プレイヤー管理部245、及びすれ違い通信管理部246を含む。
観戦要求受付部241は、観戦プレイヤー端末500からゲームの観戦要求を受け付ける。観戦要求受付部241は、ゲーム管理サーバ100からゲームを観戦するための視点に関する情報を受け付け、ゲームデータ保持部260に格納する。観戦要求受付部241は、観戦プレイヤー端末500からアクセスを受け付けると、ゲームデータ保持部260からゲームを観戦するための視点に関する情報を読み出して観戦プレイヤー端末500に提示する。観戦要求受付部241は、ゲームを観戦するための視点とゲームフィールドとの位置関係を図示してもよい。観戦要求受付部241は、ゲームを観戦するための視点ごとに、観戦するための条件が設定されている場合は、その条件を更に提示してもよい。観戦要求受付部241は、複数の視点が設定されている場合は、複数の視点の位置をゲームフィールド全体との位置関係を図示してもよい。ゲームシステム1が複数のゲーム管理サーバ100を備え、観戦管理サーバ200が複数のゲームの観戦を管理する場合は、観戦要求受付部241は、まず、観戦可能なゲームの一覧を観戦プレイヤー端末500に提示し、観戦するゲームの選択を観戦プレイヤー端末500から受け付けてもよい。
観戦プレイヤー管理部245は、観戦要求受付部241が観戦要求を受け付けた観戦プレイヤーの情報を観戦プレイヤー端末500から取得して、観戦プレイヤーデータベース262に登録する。観戦プレイヤー管理部245は、観戦プレイヤーの情報の変更又は削除を管理する。
観戦画面UI管理部242は、観戦用ゲーム画面とともに観戦プレイヤー端末500に提供される観戦用ユーザインタフェースを管理する。観戦画面UI管理部242は、ゲーム管理サーバ100から観戦用ユーザインタフェースに関する情報を取得し、ゲームデータ保持部260に格納する。観戦画面UI管理部242は、観戦要求受付部241が観戦プレイヤー端末500から観戦要求を受け付けると、観戦プレイヤーにより選択された視点における観戦用ゲーム画面に付加すべき観戦用ユーザインタフェースに関する情報をゲームデータ保持部260から読み出し、観戦画面生成部243に伝達する。
観戦画面UI管理部242は、ゲームに影響を与えない観戦プレイヤーによるアクションを定義したユーザインタフェースを観戦画面に付加してもよい。この場合、観戦画面UI管理部242は、ゲーム管理サーバ100により管理されるゲームとは直接関係しないアクションを実行可能としてもよい。例えば、観戦プレイヤーが拍手をしたり野次を飛ばしたりするアクションを実行可能としてもよい。これらのアクションは、ゲーム管理サーバ100には伝達されず、ゲームの進行には反映されないが、観戦プレイヤーの評判などを分析するために用いることができる。これらのアクションが実行されたとき、観戦画面生成部243によりアクションが実行された様子を示す観戦用ゲーム画面が生成されてもよい。
観戦画面生成部243は、観戦プレイヤー端末500において表示される観戦画面を生成する。観戦画面生成部243は、ゲーム管理サーバ100により生成され、ストリーミングサーバ300により配信される観戦用ゲーム画面と、観戦画面UI管理部242により管理される観戦用ユーザインタフェースとを含む観戦画面を生成する。観戦画面生成部243は、例えば、HTTPを用いて観戦プレイヤー端末500に送信され、観戦プレイヤー端末500のウェブブラウザにより表示されるウェブページとして、観戦画面を生成してもよい。観戦画面生成部243は、観戦プレイヤーにより選択された視点から見た観戦用ゲーム画面を配信するストリーミングサーバ300の情報を、観戦画面のウェブページに埋め込む。また、観戦画面生成部243は、その視点において観戦プレイヤーが実行可能なアクションを定義した観戦用ユーザインタフェースを記述したスクリプトなどを、観戦画面のウェブページに埋め込む。これにより、観戦プレイヤーは、専用のゲーム端末を用いなくても、ウェブページを閲覧するためのブラウザを有するパーソナルコンピュータなどを用いて観戦画面を視聴し、ゲームに関するアクションを実行することができる。観戦画面生成部243は、複数のゲームの観戦用ゲーム画面を観戦画面のウェブページに埋め込んでもよい。観戦画面生成部243は、生成した観戦画面を観戦プレイヤー端末500へ送信する。上述したように、観戦用ゲーム画面が観戦プレイヤー端末500により生成される場合は、観戦画面生成部243は、観戦用のユーザインタフェースと、観戦用ゲーム画面を生成するために必要なデータのみを観戦プレイヤー端末500へ送信してもよい。
観戦プレイヤー指示集約部244は、複数の観戦プレイヤー端末500から受け付けたアクションの指示を集約する。本実施の形態では、複数の観戦プレイヤーが同一の観戦用ゲーム画面を視聴することを想定しているので、個々の観戦プレイヤーによるアクションの実行指示を全てゲームに反映させることは望ましくない。したがって、観戦プレイヤー指示集約部244は、所定のアルゴリズムにしたがって複数の観戦プレイヤーによるアクションの実行指示を集約し、集約した指示を観戦プレイヤー全体によるアクションの実行指示としてゲーム管理サーバ100へ送信する。これにより、多数の観戦プレイヤーにゲームを観戦させつつ、観戦プレイヤーがゲームに介入する機会を提供することができる。観戦プレイヤー指示集約部244は、観戦プレイヤーによるアクションの実行指示を統計的に処理することにより、指示を集約してもよい。例えば、観戦プレイヤー指示集約部244は、複数の観戦プレイヤーによる多数決によりアクションの実行指示を決定してもよいし、平均値、重み付き平均値、中央値、最頻値などを算出することにより、アクションの実行指示を決定してもよい。また、観戦プレイヤー指示集約部244は、最もレベルが高い観戦プレイヤーの指示を観戦プレイヤー全体の指示としてもよいし、最も長い時間観戦している観戦プレイヤーの指示を観戦プレイヤー全体の指示としてもよい。
別の実施の形態では、個々の観戦プレイヤーによるアクションの実行指示が全てゲームに反映されてもよい。この場合、観戦プレイヤー指示集約部244に代えて、観戦プレイヤー端末500から受け付けた指示をゲーム管理サーバ100へ送信する構成が設けられてもよい。
すれ違い通信管理部246は、観戦プレイヤー間のすれ違い通信を管理する。すれ違い通信は、一般に、ゲーム端末のセーブデータなどに、すれ違い通信を実行する旨の情報が格納されているゲーム端末を所持するプレイヤー同士が所定の距離の範囲内に近づいたときに、ゲーム端末間で通信を行い、双方のゲーム端末において所定のイベントを発生させる仕組みのことをいう。すれ違い通信管理部246は、すれ違い通信条件保持部264からすれ違い通信を発生させる条件を読み出し、現実には所定の距離の範囲内にいないプレイヤー間であっても、所定の条件を満たしたときに、プレイヤー同士が所定の距離の範囲内に近づいたとみなして、すれ違い通信を発生させる。
すれ違い通信を発生させる条件は、例えば、同一のゲームを観戦していること、同一の視点位置からゲームを観戦していること、関連付けられた複数の視点位置のうちのいずれかからゲームを観戦していること、などであってもよい。すれ違い通信は、ゲームプレイヤー同士、観戦プレイヤー同士、ゲームプレイヤーと観戦プレイヤーとの間で発生されてもよい。すれ違い通信により発生されるイベントは、例えば、ゲームのキャラクタ、アイテム、オブジェクトなどを交換するイベント、ゲームのポイント、レベル、能力値などを互いに増加させるイベントなどであってもよい。すれ違い通信管理部246は、すれ違い通信条件保持部264に保持された条件により定義されたイベントを発生させ、すれ違い通信が発生したゲームプレイヤー又は観戦プレイヤーの端末へイベントの発生を通知する。
図4は、実施の形態に係るストリーミングサーバの構成を示す。ストリーミングサーバ300は、通信部330、制御部340、及び観戦用ゲーム画面保持部360を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
通信部330は、インターネット2を介して、他の装置との間でデータを送受信する。制御部340は、ゲーム管理サーバ100から受信した観戦用ゲーム画面を観戦プレイヤー端末500へ配信するための制御を実行する。観戦用ゲーム画面保持部360は、ゲーム管理サーバ100から受信した観戦用ゲーム画面のデータを保持する。
制御部340は、観戦用ゲーム画面取得部341及び観戦用ゲーム画面配信部342を含む。
観戦用ゲーム画面取得部341は、ゲーム管理サーバ100から観戦用ゲーム画面のデータを取得し、観戦用ゲーム画面保持部360に格納する。観戦用ゲーム画面配信部342は、観戦プレイヤー端末500からの要求に応じて、観戦用ゲーム画面のデータを観戦用ゲーム画面保持部360から読み出し、観戦プレイヤー端末500へ送信する。観戦用ゲーム画面がリアルタイムでのみ配信される場合は、観戦用ゲーム画面保持部360は、観戦用ゲーム画面のデータを一時的に格納し、観戦プレイヤー端末500へ配信した後は消去してもよい。
図5は、実施の形態に係るゲームプレイヤー端末の構成を示す。ゲームプレイヤー端末400は、入力装置420、通信部430、制御部440、ゲームデータ保持部460、及び表示装置466を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
通信部430は、インターネット2を介して、他の装置との間でデータを送受信する。入力装置420は、ゲームプレイヤーから指示入力を受け付けて制御部440に伝達する。入力装置420は、ゲームプレイヤーが指示を入力するためのボタンやキーなどを設けたコントローラであってもよい。制御部440は、ゲームプレイヤーにより実行されるゲームを制御する。ゲームデータ保持部460は、ゲームの制御に必要なデータなどを保持する。表示装置466は、制御部440により制御されるゲームの画面を表示する。
制御部440は、ゲーム画面取得部441、ゲーム画面表示部442、ゲームプレイヤー指示受付部443、及びゲームプレイヤー指示送信部444を含む。
ゲーム画面取得部441は、ゲーム管理サーバ100からゲーム画面を取得する。上述したように、本実施の形態ではゲーム管理サーバ100によりゲーム画面が生成されるが、別の実施の形態では、ゲームプレイヤー端末400によりゲーム画面が生成されてもよい。この場合、ゲームプレイヤー端末400は、ゲームフィールドをレンダリングするために必要なゲームフィールドの形状データ、ゲームフィールドに配置されるキャラクタ、アイテム、オブジェクトなどの形状データなどをゲームデータ保持部460に保持するとともに、ゲーム画面取得部441に代えて、ゲーム管理サーバ100からゲーム画面を生成するために必要なゲームに関する情報を取得する構成と、ゲーム画面を生成する構成とを備える。
ゲーム画面表示部442は、ゲーム画面取得部441がゲーム管理サーバ100から取得したゲーム画面を表示装置466に表示する。ゲームプレイヤー指示受付部443は、ゲームプレイヤーが入力装置420により入力したゲームに関する指示を受け付ける。ゲームプレイヤー指示送信部444は、ゲームプレイヤー指示受付部443が受け付けた指示をゲーム管理サーバ100へ送信する。
図6は、実施の形態に係る観戦プレイヤー端末の構成を示す。観戦プレイヤー端末500は、入力装置520、通信部530、制御部540、ゲームデータ保持部560、及び表示装置566を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
通信部530は、インターネット2を介して、他の装置との間でデータを送受信する。入力装置520は、観戦プレイヤーから指示入力を受け付けて制御部540に伝達する。入力装置520は、観戦プレイヤーが指示を入力するためのボタンやキーなどを設けたコントローラであってもよい。制御部540は、ゲームの観戦を制御する。ゲームデータ保持部560は、ゲームの観戦に必要なデータなどを保持する。表示装置566は、観戦画面などの画面を表示する。
制御部540は、観戦画面取得部541、観戦画面表示部542、観戦プレイヤー指示受付部543、及び観戦プレイヤー指示送信部544を含む。
観戦画面取得部541は、観戦管理サーバ200から観戦画面を取得する。上述したように、本実施の形態ではゲーム管理サーバ100によりゲーム画面が生成されるが、別の実施の形態では、観戦プレイヤー端末500によりゲーム画面が生成されてもよい。この場合、観戦プレイヤー端末500は、ゲームフィールドをレンダリングするために必要なゲームフィールドの形状データ、ゲームフィールドに配置されるキャラクタ、アイテム、オブジェクトなどの形状データなどをゲームデータ保持部560に保持するとともに、ゲーム管理サーバ100から観戦用ゲーム画面を生成するために必要なゲームに関する情報を取得する構成と、観戦用ゲーム画面を生成する構成とを備える。
観戦画面表示部542は、観戦画面取得部541が観戦管理サーバ200から取得した観戦画面を表示装置566に表示する。観戦プレイヤー指示受付部543は、観戦画面に、観戦プレイヤーが実行可能なアクションを定義した観戦用ユーザインタフェースが含まれる場合に、観戦プレイヤーが入力装置520により入力したアクションに関する指示を受け付ける。観戦プレイヤー指示送信部544は、観戦プレイヤー指示受付部543が受け付けた指示を観戦管理サーバ200へ送信する。
図7は、ゲームプレイヤー端末において表示されるゲーム画面の例を示す。本図は、ゲームプレイヤーがレーシングコースにおいて車を走行させるレーシングゲームのゲーム画面の例を示す。ゲーム管理サーバ100は、レーシングゲームのゲームプログラムを実行し、ゲームプレイヤーの車の後方に設定された視点位置から走行方向に見たレーシングコースをレンダリングし、ゲーム画面600を生成してゲームプレイヤー端末400へ送信する。ゲームプレイヤー端末400のゲーム画面取得部441は、ゲーム管理サーバ100からゲーム画面を取得し、ゲーム画面表示部442は、取得したゲーム画面600を表示装置466に表示する。ゲームプレイヤー端末400は、ゲームプレイヤーからハンドル、アクセル、ブレーキなどの操作指示を受け付けて、ゲーム管理サーバ100へ送信する。ゲーム管理サーバ100は、ゲームプレイヤー端末400から受け付けた指示にしたがって、ゲームプレイヤーの車を制御する。
図8は、観戦プレイヤー端末において表示される観戦要求受付画面の例を示す。観戦管理サーバ200の観戦要求受付部241は、図7に示したゲームの観戦要求を受け付けるために、レーシングコース全体と、観戦プレイヤーが観戦可能な複数の視点位置とを示す観戦要求受付画面610を観戦プレイヤー端末500へ送信する。観戦プレイヤー端末500は、観戦要求受付画面610を表示し、観戦プレイヤーから観戦する視点の位置の選択を受け付け、観戦管理サーバ200へ送信する。
図9は、観戦プレイヤー端末において表示される観戦画面の例を示す。観戦管理サーバ200の観戦要求受付部241が、観戦プレイヤー端末500から視点の選択を受け付けると、観戦画面生成部243は、指示された視点から見た観戦用ゲーム画面と、その視点における観戦用ユーザインタフェースとを含む観戦画面620を生成して観戦プレイヤー端末500へ送信する。観戦プレイヤー端末500の観戦画面取得部541は、観戦管理サーバ200から観戦画面620を取得し、観戦画面表示部542は、観戦画面620を表示装置566に表示する。観戦画面620には、観戦用ゲーム画面622と、観戦用ユーザインタフェース624が表示されている。観戦用ユーザインタフェース624は、カメラ切替ボタン626を含む。観戦プレイヤーは、カメラ切替ボタン626を入力することにより、視点の位置を変更することができる。
図10は、観戦プレイヤー端末において表示される観戦画面の例を示す。図9の観戦画面620において、観戦プレイヤー指示受付部543がカメラ切替ボタン626の入力を受け付けると、観戦プレイヤー指示送信部544は、受け付けた指示を観戦管理サーバ200へ送信する。観戦管理サーバ200の観戦画面UI管理部242は、観戦プレイヤー端末500から受け付けた指示にしたがって、その観戦プレイヤーの視点の位置を変更し、観戦画面生成部243は、新たな視点に対応する観戦画面630を生成して観戦プレイヤー端末500へ送信する。観戦プレイヤー端末500は、観戦管理サーバ200から取得した観戦画面630を表示する。これにより、図10に示すように、観戦画面630が表示装置566に表示される。観戦画面630には、図9とは異なる観戦用ゲーム画面632と、観戦用ユーザインタフェース634が表示されている。観戦用ユーザインタフェース634は、カメラ切替ボタン636と、ビンを投げるアクションを実行するためのボタン638を含む。観戦プレイヤーは、ボタン638を入力することにより、レーシングコースにビンを投げ入れて、ゲームプレイヤーを妨害することができる。
図11は、観戦プレイヤー端末において表示される観戦画面の例を示す。図10の観戦画面630において、観戦プレイヤー指示受付部543がボタン638の入力を受け付けると、観戦プレイヤー指示送信部544は、受け付けた指示を観戦管理サーバ200へ送信する。観戦管理サーバ200の観戦プレイヤー指示集約部244は、観戦プレイヤー端末500から受け付けた指示を集約し、実行するアクションを決定する。観戦プレイヤー指示集約部244が、観戦プレイヤーの視点の位置において、ビンをレーシングコースに投げ入れるアクションを実行すると決定した場合、観戦プレイヤー指示集約部244は、ビンを投げ入れるアクションの実行指示をゲーム管理サーバ100へ送信する。ゲーム管理サーバ100の観戦プレイヤー指示受付部146は、観戦管理サーバ200からの指示を受け付けて、ゲーム制御部141へ伝達する。ゲーム制御部141は、受け付けた指示にしたがって、レーシングコースにビンを投げ入れるアクションを実行する。これにより、図11に示すように、観戦画面640において、ビン644がレーシングコースに投げ入れられる様子が観戦用ゲーム画面642に表示される。
図12は、ゲームプレイヤー端末において表示されるゲーム画面の例を示す。ゲーム制御部141が、受け付けた指示にしたがって、レーシングコースにビンを投げ入れるアクションを実行すると、ゲーム画面生成部142は、その様子を示すゲーム画面650を生成してゲームプレイヤー端末400へ送信する。ゲームプレイヤー端末400のゲーム画面取得部441は、ゲーム画面650を取得し、ゲーム画面表示部442は、取得したゲーム画面650を表示装置466に表示する。これにより、図12に示すように、ゲーム画面650において、ビン652がレーシングコースに投げ入れられる様子が表示される。
図13は、ゲームプレイヤー端末において表示されるゲーム画面の例を示す。本図は、タワーディフェンス型のゲームのゲーム画面の例を示す。ゲームプレイヤーは、巣穴から出てくるモンスターから自身の城を守るために、城の周囲に攻撃用タワーを配置することができる。ゲーム管理サーバ100のゲームプレイヤー指示受付部143が、ゲームプレイヤー端末400から、攻撃用タワーを配置する指示を受け付けると、ゲーム制御部141は、指示された位置に攻撃用タワーを配置し、ゲームプレイヤーデータベース162にその旨を示すデータを登録する。これにより、ゲーム画面660において、ゲームフィールドに新たに攻撃用タワー662が配置される。
このとき、観戦ポイント設定部144は、新たに配置された攻撃用タワー662に、観戦のための視点を設定する。観戦画面UI情報送信部147は、新たに設定された攻撃用タワー662の視点において、観戦プレイヤーがモンスターを射撃するアクションを実行するための観戦用ユーザインタフェースの情報を観戦管理サーバ200へ送信する。観戦管理サーバ200は、ゲーム管理サーバ100から取得した情報に基づいて、新たに攻撃用タワー662の視点において観戦する要求を受け付ける。これにより、観戦プレイヤーは、攻撃用タワー662に視点を変更し、攻撃用タワー662からモンスターを射撃する射撃手としてゲームに参加することが可能となる。
図14は、観戦プレイヤー端末において表示される観戦画面の例を示す。観戦プレイヤーが攻撃用タワー662に視点を変更すると、攻撃用タワー662からゲームフィールドを見た観戦用ゲーム画面を含む観戦画面670が表示装置566に表示される。観戦プレイヤーは、方向キーなどにより照準672を移動させ、ボタンなどにより射撃を行うことができる。観戦プレイヤーによる射撃のアクションの実行指示は、観戦プレイヤー端末500から観戦管理サーバ200を介してゲーム管理サーバ100へ送信され、ゲームに反映される。このとき、観戦画面670に観戦プレイヤーのアバターが表示され、観戦プレイヤーのアバターがアクションを実行する様子が表示されてもよい。観戦プレイヤーのアバターは、観戦管理サーバ200の観戦画面生成部243により観戦画面に描画されてもよいし、観戦プレイヤー端末500の観戦画面表示部542により観戦画面に重畳されてもよい。
図15は、観戦プレイヤー端末において表示される観戦画面の例を示す。図13に示したゲームにおいて、装甲ヘリコプターの視点における観戦画面680が観戦プレイヤーに提供される。装甲ヘリコプターは、ゲーム管理サーバ100の観戦ポイント設定部144により移動される。すなわち、観戦プレイヤーは自ら視点位置を移動させることはできず、自動的に移動される装甲ヘリコプターとともに移動する。上述したように、観戦用ゲーム画面生成部145が予め広い画角の観戦用ゲーム画面を生成しておくことにより、観戦プレイヤーが視線方向を変更することができるようにしてもよい。観戦プレイヤーは、視線方向を変更しながらモンスターを探索し、発見したモンスターを射撃することができる。
モンスターの攻撃により装甲ヘリコプターが破壊されると、ゲーム制御部141は装甲ヘリコプターが破壊されたことを観戦ポイント設定部144に伝達し、観戦ポイント設定部144は装甲ヘリコプターの視点が削除されたことを観戦管理サーバ200に伝達する。これにより、装甲ヘリコプターの視点は削除され、観戦プレイヤーは強制的に別の視点に移動される。観戦ポイント設定部144は、例えば、破壊された装甲ヘリコプターの視点においてゲームを観戦していた観戦プレイヤーを、ゲームフィールド全体を俯瞰する視点に移動させ、図16に示すように、ゲームフィールド全体を俯瞰する観戦用ゲーム画面を含む観戦画面690を観戦プレイヤー端末500に表示させる。観戦プレイヤー管理部245は、ゲームフィールド全体を俯瞰する視点に変更された後、所定の条件を満たすと、再び、観戦プレイヤーが装甲ヘリコプターに視点を変更することを許可してもよい。例えば、装甲ヘリコプターが破壊されてから所定の時間が経過すると、再び装甲ヘリコプターの視点に変更することを許可してもよい。装甲ヘリコプターがモンスターにより攻撃されたとき、所定の条件を満たすと、装甲ヘリコプターが破壊される前に観戦プレイヤーの視点を他の位置に変更し、死亡を回避することができるようにしてもよい。観戦プレイヤー管理部245は、例えば、観戦プレイヤーが所定の金額を課金した場合に、観戦プレイヤーの視点を他の位置に変更してもよい。
装甲ヘリコプターの視点において観戦している複数の観戦プレイヤーのうち、所定の観戦プレイヤーが装甲ヘリコプターを操縦することを可能としてもよい。例えば、観戦画面UI管理部242は、装甲ヘリコプターの視点において観戦している複数の観戦プレイヤーのうち、最もレベルが高い観戦プレイヤーに送信する観戦画面にのみ、装甲ヘリコプターを操縦するアクションを実行するためのユーザインタフェースを付加する。観戦プレイヤー指示集約部244は、ユーザインタフェースを介して装甲ヘリコプターを操縦するアクションの実行指示を受け付け、ゲーム管理サーバ100へ送信する。同様に、装甲車の視点が提供され、代表の観戦プレイヤーが装甲車を操縦することができるようにしてもよい。
別の例では、ロールプレイングゲームにおいて、武器や防具などのアイテムを売買するバザー会場が観戦のための視点として設定されてもよい。バザー会場の視点において観戦する観戦プレイヤーが、自身のアイテムを他の観戦プレイヤーとの間で交換することができるようにしてもよい。
別の例では、ロールプレイングゲームにおいて、ゲームプレイヤーのパーティーのメンバーであるノンプレイヤーキャラクタが観戦のための視点として設定されてもよい。この場合、観戦プレイヤーがいないときには、ノンプレイヤーキャラクタはゲーム管理サーバ100により制御され、観戦プレイヤーがいるときには、その観戦プレイヤーがノンプレイヤーキャラクタを制御するようにしてもよい。ノンプレイヤーキャラクタを制御する観戦プレイヤーがプレイヤーズキャラクタの戦闘に参加したときに、報酬としてポイントや能力値などが観戦プレイヤーに与えられるようにしてもよい。
このように、観戦プレイヤーがゲームに関するアクションを実行する機能を提供することにより、観戦プレイヤーも実際に能動的にゲームを体験することができるので、ゲームの内容を理解することができるとともに、ゲームの世界観を味わうことができる。観戦プレイヤーは、一部の機能のみを制御すればよいので、高いスキルが要求されるゲームであっても、気軽に楽しむことができる。このように、気軽にゲームを楽しむ機会を広く提供することができるので、ゲームの普及を促進することができる。
観戦画面において、観戦プレイヤーに、ゲームプレイヤーには提示されない情報が提示されてもよい。例えば、ロールプレイングゲームにおいて、ゲームフィールドに隠されたアイテムや敵キャラクタの位置や種類などが観戦画面に提示されてもよい。これにより、観戦プレイヤーに、単にゲームを観戦するだけでなく、いわゆる「神の視点」からゲームプレイヤーのプレーを観戦して楽しむことができる。
図17は、実施の形態に係るゲーム制御方法の手順を示すシーケンス図である。ゲームプレイヤーが、ゲームプレイヤー端末400を用いてゲーム管理サーバ100へアクセスし、ゲームの開始を要求すると(S10)、ゲーム管理サーバ100のゲーム制御部141がゲームの制御を開始し(S12)、ゲーム画面生成部142がゲーム画面を生成して(S14)、ゲームプレイヤー端末400へ送信する(S16)。ゲームプレイヤー端末400のゲーム画面取得部441がゲーム画面を取得すると、ゲーム画面表示部442が表示装置466にゲーム画面を表示する(S18)。ゲームプレイヤー端末400のゲームプレイヤー指示受付部443が入力装置420からゲームプレイヤーの指示を受け付けると(S20)、ゲームプレイヤー指示送信部444がゲーム管理サーバに指示を送信する(S22)。ゲーム管理サーバ100のゲームプレイヤー指示受付部143は、ゲームプレイヤー端末400から指示を受け付けると、ゲーム制御部141に伝達する。
ゲーム管理サーバ100の観戦ポイント設定部144は、観戦用ゲーム画面を生成するための観戦ポイントを設定する(S144)。ゲーム管理サーバ100の観戦用ゲーム画面生成部145は、観戦ポイントにおける観戦用ゲーム画面を生成し(S26)、ストリーミングサーバ300に送信する(S28)。ゲーム管理サーバ100の観戦画面UI情報送信部147は、観戦管理サーバ200に観戦画面UI情報を送信する(S30)。観戦管理サーバ200の観戦要求受付部241は、観戦プレイヤー端末500からアクセスを受け付けると、観戦プレイヤー端末500に観戦可能な観戦ポイントを提示する(S32)。観戦プレイヤー端末500が観戦ポイントを選択して観戦管理サーバ200に観戦を要求すると(S34)、観戦管理サーバ200の観戦画面生成部243は、観戦用ユーザインタフェースを含む観戦画面を生成して観戦プレイヤー端末500に送信する(S36)。観戦プレイヤー端末500の観戦画面取得部541は、観戦画面を取得すると、観戦画面に含まれる観戦用ゲーム画面の送信をストリーミングサーバ300に要求する(S38)。ストリーミングサーバ300の観戦用ゲーム画面配信部342は、要求された観戦用ゲーム画面を観戦プレイヤー端末500に送信する(S40)。観戦プレイヤー端末500の観戦画面表示部542は、観戦用ゲーム画面と観戦用ユーザインタフェースを含む観戦画面を表示装置566に表示する(S42)。観戦プレイヤー端末500の観戦プレイヤー指示受付部543が入力装置520から観戦プレイヤーの指示を受け付けると(S44)、観戦プレイヤー指示送信部544が観戦管理サーバ200に指示を送信する(S46)。観戦管理サーバ200の観戦プレイヤー指示集約部244は、複数の観戦プレイヤー端末500から指示を受け付けて、それらの指示を集約してゲーム管理サーバ100へ送信する指示を決定し(S48)、決定した指示をゲーム管理サーバ100に送信する(S50)。ゲーム管理サーバ100の観戦プレイヤー指示受付部146は、観戦管理サーバ200から指示を受け付けると、ゲーム制御部141に伝達する。ステップS12に戻り、ゲーム管理サーバ100のゲーム制御部141は、ゲームプレイヤーから受け付けた指示と、観戦プレイヤーから受け付けた指示に基づいてゲームを制御する(S12)。
(第2の実施の形態)
第2の実施の形態では、観戦プレイヤーが、ゲームプレイヤーが実行しているゲームに関連したミニゲームを実行し、ミニゲームを介して、ゲームプレイヤーが実行しているゲームに参加することを可能とする技術について説明する。第2の実施の形態に係るゲームシステムの全体構成は、図1に示した第1の実施の形態に係るゲームシステムの全体構成と同様である。第2の実施の形態において、観戦プレイヤー端末500は、観戦中のゲームの進行状況に応じて実行可能なミニゲームを観戦管理サーバ200から取得し、取得したミニゲームを実行する。観戦プレイヤー端末500は、ミニゲームの実行結果を観戦管理サーバ200へ送信し、観戦管理サーバ200は、観戦プレイヤー端末500におけるミニゲームの実行結果をゲーム管理サーバ100へ送信する。ゲーム管理サーバ100は、観戦プレイヤー端末500におけるミニゲームの実行結果に応じて、ゲームプレイヤー端末400のプレイヤーが実行しているゲームに影響を与える。これにより、観戦プレイヤーは、ゲームプレイヤーが実行しているゲームを観戦するだけでなく、ゲームの進行状況に応じて観戦プレイヤーに許される範囲でゲームに影響を与えることができるので、ゲームの興趣性を向上させることができる。また、多くの観戦プレイヤーが気軽にゲームを観戦し、ゲームの楽しさを体験する機会を提供することができるので、ゲームの普及に寄与することができる。また、ゲームプレイヤーも、観戦プレイヤーによる介入を受けながらゲームを進行させるので、単独でのプレイとは異なる楽しさを享受することができ、長期にわたって飽きることなくゲームを楽しむことができる。
図18は、第2の実施の形態に係るゲーム管理サーバ100の構成を示す。第2の実施の形態に係るゲーム管理サーバ100は、図2に示した第1の実施の形態に係るゲーム管理サーバ100の構成のうち、観戦プレイヤー指示受付部146及び観戦画面UI情報送信部147に代えて、ミニゲーム情報送信部150、ミニゲーム結果受付部151、及びミニゲーム実行可否判定部152を備える。その他の構成及び動作は、第1の実施の形態と同様である。
ミニゲーム実行可否判定部152は、ゲーム制御部141により制御されるゲームの進行状況に応じて、観戦プレイヤーによるミニゲームの実行の可否を判定する。ゲームデータ保持部160は、観戦プレイヤーが実行可能なミニゲームの識別情報などのデータと、ミニゲームが実行可能となる条件を示すデータとを対応付けて格納する。ミニゲーム実行可否判定部152は、ゲームデータ保持部160を参照して、ミニゲームが観戦プレイヤーにより実行可能か否かを判定する。ミニゲーム情報送信部150は、観戦プレイヤーが実行可能なミニゲームに関する情報を観戦管理サーバ200へ送信する。ミニゲーム情報送信部150は、ゲームプレイヤー端末400から、観戦プレイヤーによる援護を要求されたときに、観戦管理サーバ200へミニゲームに関する情報を送信し、観戦プレイヤーによるミニゲームの実行を受け付けるよう観戦管理サーバ200へ指示してもよい。ミニゲームのプログラムは、観戦管理サーバ200から観戦プレイヤー端末500へ送信される。
ミニゲーム結果受付部151は、観戦プレイヤー端末500において実行されたミニゲームの結果を観戦管理サーバ200から受け付けて、ゲーム制御部141へ伝達する。ゲーム制御部141は、ミニゲームの結果に応じて、制御しているゲームに所定の影響を与える。例えば、ミニゲームに成功した旨の結果を受け付けると、そのミニゲームの実行の契機となったゲームの状況が好転するような影響を与え、ミニゲームに失敗した旨の結果を受け付けると、ゲームの状況が好転しない、又は、悪化するような影響を与えてもよい。
図19は、第2の実施の形態に係る観戦管理サーバ200の構成を示す。第2の実施の形態に係る観戦管理サーバ200は、図3に示した第1の実施の形態に係る観戦管理サーバ200の構成のうち、観戦プレイヤー指示集約部244に代えて、ミニゲーム管理部250を備える。その他の構成及び動作は、第1の実施の形態と同様である。
ミニゲーム管理部250は、ゲーム管理サーバ100から、観戦プレイヤー端末500が実行可能なミニゲームの情報を取得し、観戦画面UI管理部242に伝達する。観戦画面UI管理部242は、観戦プレイヤー端末500へ送信する観戦画面に、実行可能なミニゲームに関する情報と、ミニゲームを実行する旨の指示を観戦管理サーバ200へ送信するためのユーザインタフェースを表示する。観戦プレイヤー端末500からミニゲームを実行する旨の要求を受け付けると、ミニゲーム管理部250は、要求されたミニゲームのプログラムをゲームデータ保持部260から読み出して、観戦プレイヤー端末500へ送信する。ミニゲーム管理部250は、ミニゲームのプログラムを実行した観戦プレイヤー端末500から、ミニゲームの実行結果を取得し、ゲーム管理サーバ100へ送信する。
図20は、第2の実施の形態に係る観戦プレイヤー端末500の構成を示す。第2の実施の形態に係る観戦プレイヤー端末500は、図6に示した第1の実施の形態に係る観戦プレイヤー端末500の構成のうち、観戦プレイヤー指示受付部543及び観戦プレイヤー指示送信部544に代えて、ミニゲーム取得部550、ミニゲーム制御部551、及びミニゲーム結果送信部552を備える。その他の構成及び動作は、第1の実施の形態と同様である。
ミニゲーム取得部550は、観戦管理サーバ200から提供される観戦画面に設けられた、ミニゲームの実行を要求するためのユーザインタフェースを介して、観戦管理サーバ200へミニゲームの実行を要求し、観戦管理サーバ200からミニゲームのプログラムを取得する。ミニゲーム制御部551は、観戦管理サーバ200から取得したミニゲームのプログラムを実行し、入力装置520から入力される観戦プレイヤーの指示に基づいてミニゲームを制御する。ミニゲーム結果送信部552は、ミニゲームの結果を観戦管理サーバ200へ送信する。
図21は、観戦プレイヤー端末において表示される観戦画面の例を示す。都市開発型のシミュレーションゲームにおいて、ゲーム管理サーバ100のゲーム制御部141は、ゲームプレイヤーからの指示に応じて都市に施設を建設し、人口の増減や都市の発展及び衰退などをシミュレートする。観戦ポイント設定部144は、都市を俯瞰する視点を設定し、観戦用ゲーム画面生成部145は、設定された視点から見た都市の画像をレンダリングする。観戦管理サーバ200の観戦画面生成部243は、観戦用ゲーム画面生成部145により生成され、ストリーミングサーバ300により配信される観戦用ゲーム画面を表示する観戦画面を生成し、観戦プレイヤー端末500へ送信する。観戦プレイヤー端末500の観戦画面取得部541は、観戦管理サーバ200から観戦画面を取得し、観戦画面表示部542は、取得した観戦画面を表示装置566に表示する。
ゲーム管理サーバ100のゲーム制御部141によるシミュレーションにおいて、都市に建設された施設において市民による暴動が発生したことがシミュレートされると、ミニゲーム実行可否判定部152は、ミニゲームが実行可能となる条件が満たされたと判定し、ミニゲーム情報送信部150は、暴動を起こした市民を鎮圧するためのシューティングゲームに関する情報を観戦管理サーバ200へ送信する。観戦管理サーバ200の観戦画面UI管理部242は、ミニゲームを実行する旨の指示を観戦管理サーバ200へ送信するためのユーザインタフェースを観戦画面に追加する。図21の例において、観戦用ゲーム画面700中の暴動が発生した地点に、暴動が発生した旨の通知702が表示される。観戦プレイヤーが、この通知702にタッチすると、観戦プレイヤー端末500のミニゲーム取得部550は、観戦管理サーバ200にミニゲームの実行を要求する。観戦管理サーバ200のミニゲーム管理部250は、観戦プレイヤーが実行可能なミニゲームとして、暴動を起こした市民を鎮圧するためのシューティングゲームをゲームデータ保持部260から読み出し、観戦プレイヤー端末500へ送信する。
図22は、観戦プレイヤー端末において表示される観戦画面の例を示す。観戦プレイヤー端末500のミニゲーム制御部551は、観戦管理サーバ200から取得したミニゲームを実行する。ミニゲーム制御部551は、ミニゲームの画面712を観戦用ゲーム画面710に重畳させて表示し、入力装置520から観戦プレイヤーの指示入力を受け付ける。観戦画面表示部542は、ミニゲームの実行中も、ストリーミングサーバ300から観戦用ゲーム画面710を取得して、ミニゲームの画面712の背後に表示し続ける。ミニゲームの実行中に、観戦プレイヤーが観戦用ゲーム画面710にタッチすると、ミニゲーム制御部551は、ミニゲームの実行を一時停止するとともに、ミニゲームの画面712を半透明又は非表示にし、観戦プレイヤーが観戦用ゲーム画面710の全体を見ることができるようにしてもよい。観戦画面がウェブページとして提供される場合、ミニゲームはウェブページを閲覧するためのウェブブラウザ上で実行可能なプログラムとして提供されてもよい。別の例において、ミニゲームは、観戦画面を視聴するためのアプリケーションとは異なるアプリケーションとして提供されてもよい。
図23は、ゲームプレイヤー端末において表示されるゲーム画面の例を示す。観戦プレイヤー端末500においてミニゲームが終了すると、観戦プレイヤー端末500のミニゲーム結果送信部552は、ミニゲームの結果を観戦管理サーバ200に送信する。観戦管理サーバ200のミニゲーム管理部250は、観戦プレイヤー端末500から取得したミニゲームの結果をゲーム管理サーバ100へ送信する。ゲーム管理サーバ100のミニゲーム結果受付部151は、観戦管理サーバ200からミニゲームの結果を受け付けてゲーム制御部141に伝達する。ゲーム制御部141は、観戦プレイヤーがミニゲームに成功した場合、都市のシミュレーションにおいて、市民の暴動を鎮圧させる。ゲーム制御部141は、ゲーム画面720中の暴動が発生していた地点に、暴動が観戦プレイヤーによって鎮圧された旨の通知722を表示する。ゲームプレイヤーが、この通知722にタッチすると、ゲーム制御部141は、観戦プレイヤーに対してお礼のメッセージを送信するためのユーザインタフェースを表示し、ゲームプレイヤーから受け付けたメッセージを観戦管理サーバ200を介して観戦プレイヤー端末500へ送信する。観戦プレイヤーがミニゲームに失敗した場合、引き続き市民の暴動が発生している状況をシミュレートする。
ミニゲームは、ゲームプレイヤーが都市に設置した建築物を建築するゲームであってもよい。ゲーム管理サーバ100のゲーム制御部がゲームプレイヤーからの指示に応じて都市に建築物を設置したときに、ミニゲーム実行可否判定部152は、ミニゲームが実行可能となる条件が満たされたと判定し、ミニゲーム情報送信部150は、建築物を建築するためのミニゲームの情報を観戦管理サーバ200へ送信する。ゲーム制御部141は、観戦プレイヤーがミニゲームに成功した場合、ミニゲームに失敗した場合よりも短い時間で建築物を完成させる。ゲーム制御部141は、ミニゲームの成績に応じて、完成した建築物の品質を決定してもよい。例えば、複数の品質の建築物を用意しておき、ミニゲームの成績が良好であるほど良好な品質の建築物を設置してもよい。
ゲームプレイヤーがロールプレイングゲームを実行しているときに、観戦プレイヤーが、ゲームフィールドに設置された罠などのギミックを解除するためのミニゲームを実行可能としてもよい。ゲームプレイヤーがゲームフィールドに設置されたギミックを発見し、ギミックの解除を要求すると、ゲーム管理サーバ100のミニゲーム実行可否判定部152は、ミニゲームが実行可能となる条件が満たされたと判定し、ミニゲーム情報送信部150は、ギミックを解除するためのミニゲームの情報を観戦管理サーバ200へ送信する。観戦プレイヤーがミニゲームに成功すると、ゲーム制御部141は、ゲームフィールドに設置されたギミックを解除し、ミニゲームに失敗すると、ギミックを解除しない。観戦プレイヤーが、ゲームフィールドにギミックを設置するためのミニゲームを実行可能としてもよい。この場合、観戦プレイヤーがミニゲームに成功すると、ゲーム制御部141は、ゲームフィールドにギミックを設置し、ミニゲームに失敗すると、ギミックを設置しない。
ゲームプレイヤーがロールプレイングゲームを実行しているときに、観戦プレイヤーが、アイテムやキャラクタなどを生成してゲームプレイヤーに与えるためのミニゲームを実行可能としてもよい。ゲーム管理サーバ100のミニゲーム実行可否判定部152は、観戦プレイヤーによるミニゲームの実行を常時可能とし、観戦管理サーバ200の観戦画面UI管理部242は、ミニゲームの実行を指示するためのユーザインタフェースを観戦画面に常時表示させる。観戦プレイヤーは、任意のタイミングで、ミニゲームを実行することができる。観戦プレイヤーがミニゲームに成功すると、ゲーム制御部141は、ミニゲームの種類に応じて、アイテムやキャラクタなどをゲームプレイヤーに与える。この場合も、ゲーム制御部141は、ミニゲームの成績に応じて、与えるアイテムやキャラクタなどを決定してもよい。
ミニゲームは、曲に合わせて操作入力を行うゲームであってもよい。ミニゲームに使用される曲は、ゲームプレイヤーが実行しているゲームのテーマ曲など、ゲームに関連した曲であってもよいし、ゲームに関連した企画とのタイアップ曲であってもよいし、応援歌などであってもよいし、ゲームプレイヤーにより選択された曲であってもよい。ミニゲームにおいて、応援歌などに合わせて観戦プレイヤーが拍手したりメガホンを振ったりして、ゲームプレイヤーを応援しているような演出を行ってもよい。ゲーム制御部141は、ミニゲームの成績に応じて、ゲームプレイヤーに利益を与える。ゲーム画面生成部142又は観戦用ゲーム画面生成部145は、ミニゲームの結果を取得した後に、観戦プレイヤーのアバターが曲に合わせて踊っている様子をゲーム画面又は観戦用ゲーム画面に表示してもよい。このとき、ミニゲームの成績が良好であった場合は、アバターが曲に合わせて踊り、良好でなかった場合は、アバターがうまく踊れていない様子を表示してもよい。複数の観戦プレイヤーによるミニゲームの結果を取得し、複数の観戦プレイヤーのアバターを同時に表示してもよい。これにより、観戦プレイヤー間で一体感を共有させることができる。
ミニゲームは、観戦プレイヤーが観戦するための視点の位置を変更するためのゲームであってもよい。例えば、ミニゲームは、ギミックや敵キャラクタなどが配置されたゲームフィールドにおいて、キャラクタを移動させるゲームであってもよい。ゲーム管理サーバ100の観戦ポイント設定部144は、ミニゲームにおいてキャラクタがたどり着いた位置に観戦ポイントを設定してもよい。これにより、観戦プレイヤーが観戦ポイントを変更する際にも、興趣性を向上させることができる。より良好にゲームを観戦することが可能な位置に観戦ポイントを変更するためのミニゲームの難易度を、その他の観戦ポイントに変更するためのミニゲームの難易度より高くしてもよい。設定可能な観戦ポイントが複数ある場合には、ミニゲームにおいて、到達すべき位置を観戦ポイントに応じて複数設定してもよい。
観戦管理サーバ200のミニゲーム管理部250は、同一のゲームプレイヤーが実行しているゲームに関連する同一のミニゲームを、複数の観戦プレイヤーが同時に並行して実行可能としてもよい。この場合、複数の観戦プレイヤーによるミニゲームの実行結果のうち、所定の条件に合致するもの、例えば、最初にミニゲームに成功した結果のみが、ゲーム管理サーバ100により制御されるゲームに反映されてもよい。ミニゲーム管理部250は、最初にミニゲームに成功した観戦プレイヤーに利益を与えてもよい。また、ゲーム管理サーバ100のゲーム画面生成部142又は観戦用ゲーム画面生成部145は、ミニゲームを実行した複数の観戦プレイヤーの結果をゲーム画面又は観戦用ゲーム画面に表示してもよい。
第1の実施の形態のゲームシステムでは、観戦プレイヤー端末500が観戦プレイヤーから受け付けた指示入力は、観戦管理サーバ200を介してゲーム管理サーバ100へ送信され、ゲーム管理サーバ100のゲーム制御部141においてゲームに反映されたが、第2の実施の形態のゲームシステムでは、観戦プレイヤー端末500がミニゲームのプログラムを取得して実行するので、観戦プレイヤーから指示を入力すると、ゲーム管理サーバ100を経ることなく、観戦プレイヤー端末500において実行されているミニゲームに即座に反映される。これにより、ミニゲームの実行により観戦プレイヤーがゲームに関与する機会を提供しつつ、ミニゲームの実行中は通信の遅延に起因する応答の遅延を低減することができる。また、ミニゲームを観戦プレイヤー端末500に配信して実行させるので、ゲーム管理サーバ100及び観戦管理サーバ200の負荷の増大を抑制することができる。
ミニゲームの実行後に、ミニゲームの結果がゲームに反映されるまでの間、ミニゲームの結果をゲームに反映させていることを示す演出が観戦プレイヤーに提示されてもよい。例えば、アイテムを生成するミニゲームに成功した後、生成されたアイテムがゲームプレイヤーに与えられるまでの間、アイテムを輸送中であることを示す演出が提示されてもよい。この演出は、観戦プレイヤー端末500のミニゲーム制御部551により実行されてもよいし、観戦管理サーバ200のミニゲーム管理部250又は観戦画面生成部243により実行されてもよいし、ゲーム管理サーバ100のゲーム画面生成部142又は観戦用ゲーム画面生成部145により実行されてもよい。
上述したロールプレイングゲームのアイテムやキャラクタなどを生成するミニゲームの場合など、ミニゲームの結果を直後にゲームに反映させる必要がない場合、観戦プレイヤー端末500のミニゲーム取得部550は、取得したミニゲームをゲームデータ保持部560に格納しておき、ミニゲーム制御部551は、任意のタイミングでミニゲームをゲームデータ保持部560から読み出してオフラインで実行し、実行結果をゲームデータ保持部560に格納してもよい。ミニゲーム結果送信部552は、通信部530が観戦管理サーバ200と通信可能となったときに、ゲームデータ保持部560からミニゲームの結果を読み出し、観戦管理サーバ200へ送信してもよい。ミニゲーム取得部550は、異なる複数のミニゲームを取得してゲームデータ保持部560に格納してもよい。これにより、観戦プレイヤーは、通信が可能でない環境であっても、ミニゲームをローカルで実行して楽しむことができる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。