(57)【特許請求の範囲】
【請求項１】
ネットワークと、
該ネットワークに結合される複数のユーザ装置であって、各ユーザ装置が、各ユーザの少なくとも１つのユーザアクションに対応する情報を受信し、前記ネットワークを使用して前記各ユーザの前記少なくとも１つのユーザアクションに対応する前記情報を送信し、前記ネットワークを使用してビデオゲームコンテンツを受信し、該ビデオゲームコンテンツを表示するように構成される複数のユーザ装置と、
ネットワークに結合されるサーバであって、１つ又は複数のユーザアクションに対応する情報を複数のユーザ装置から受信し、ビデオゲームコンテンツを、表示のために前記複数のユーザ装置に送信するように構成されるサーバと、を備え、
前記サーバは、
ビデオゲームと複数の事前符号化マクロブロックを記憶するメモリであって、前記事前符号化マクロブロックは、前記ビデオゲームのビデオフレームのサブセクションに対応するビデオゲームコンテンツを含み、前記サーバにおいて前記ビデオゲームの実行を開始する前に圧縮及び記憶される、メモリと、複数の組になったユーザが前記ビデオゲームを略同時にプレイするように、前記ビデオゲームを実行し、かつ、前記事前符号化マクロブロックのうちの１または複数を使用してビデオゲームコンテンツを生成するように構成されるコントローラと、を備え、各組のユーザは１人又は複数のユーザを含み、前記サーバは、各組のユーザの前記ビデオゲームの各ゲーム状態を記憶し、
前記１つ又は複数のユーザアクションに対応する前記情報は、帯域外通信サブチャネルを使用して前記ネットワークで通信される、インタラクティブビデオゲームサーバシステム。
【請求項２】
ネットワークと、
該ネットワークに結合される複数のユーザ装置であって、各ユーザ装置が、各ユーザの少なくとも１つのユーザアクションに対応する情報を受信し、前記ネットワークを使用して前記各ユーザの前記少なくとも１つのユーザアクションに対応する前記情報を送信し、前記ネットワークを使用してビデオゲームコンテンツを受信し、該ビデオゲームコンテンツを表示するように構成される複数のユーザ装置と、
ネットワークに結合されるサーバであって、１つ又は複数のユーザアクションに対応する情報を複数のユーザ装置から受信し、ビデオゲームコンテンツを、表示のために前記複数のユーザ装置に送信するように構成されるサーバと、を備え、
前記サーバは、
ビデオゲームと複数の事前符号化マクロブロックを記憶するメモリであって、前記事前符号化マクロブロックは、前記ビデオゲームのビデオフレームのサブセクションに対応するビデオゲームコンテンツを含み、前記サーバにおいて前記ビデオゲームの実行を開始する前に圧縮及び記憶される、メモリと、複数の組になったユーザが前記ビデオゲームを略同時にプレイするように、前記ビデオゲームを実行し、かつ、前記事前符号化マクロブロックのうちの１または複数を使用してビデオゲームコンテンツを生成するように構成されるコントローラと、を備え、各組のユーザは１人又は複数のユーザを含み、前記サーバは、各組のユーザの前記ビデオゲームの各ゲーム状態を記憶し、
前記サーバはケーブルテレビシステム内のヘッドエンドユニット内にある、インタラクティブビデオゲームサーバシステム。
【請求項３】
ネットワークと、
該ネットワークに結合される複数のユーザ装置であって、各ユーザ装置が、各ユーザの少なくとも１つのユーザアクションに対応する情報を受信し、前記ネットワークを使用して前記各ユーザの前記少なくとも１つのユーザアクションに対応する前記情報を送信し、前記ネットワークを使用してビデオゲームコンテンツを受信し、該ビデオゲームコンテンツを表示するように構成される複数のユーザ装置と、
ネットワークに結合されるサーバであって、１つ又は複数のユーザアクションに対応する情報を複数のユーザ装置から受信し、ビデオゲームコンテンツを、表示のために前記複数のユーザ装置に送信するように構成されるサーバと、を備え、
前記サーバは、
ビデオゲームと複数の事前符号化マクロブロックを記憶するメモリであって、前記事前符号化マクロブロックは、前記ビデオゲームのビデオフレームのサブセクションに対応するビデオゲームコンテンツを含み、前記サーバにおいて前記ビデオゲームの実行を開始する前に圧縮及び記憶される、メモリと、複数の組になったユーザが前記ビデオゲームを略同時にプレイするように、前記ビデオゲームを実行し、かつ、前記事前符号化マクロブロックのうちの１または複数を使用してビデオゲームコンテンツを生成するように構成されるコントローラと、を備え、各組のユーザは１人又は複数のユーザを含み、前記サーバは、各組のユーザの前記ビデオゲームの各ゲーム状態を記憶し、
前記ネットワークを使用して前記サーバから前記複数のユーザ装置に送信される前記ビデオゲームコンテンツに対応するデータの通信速度が、所定の下限と所定の上限との間の範囲を有する、インタラクティブビデオゲームサーバシステム。
【請求項４】
ネットワークと、
該ネットワークに結合される複数のユーザ装置であって、各ユーザ装置が、各ユーザの少なくとも１つのユーザアクションに対応する情報を受信し、前記ネットワークを使用して前記各ユーザの前記少なくとも１つのユーザアクションに対応する前記情報を送信し、前記ネットワークを使用してビデオゲームコンテンツを受信し、該ビデオゲームコンテンツを表示するように構成される複数のユーザ装置と、
ネットワークに結合されるサーバであって、１つ又は複数のユーザアクションに対応する情報を複数のユーザ装置から受信し、ビデオゲームコンテンツを、表示のために前記複数のユーザ装置に送信するように構成されるサーバと、を備え、
前記サーバは、
ビデオゲームと複数の事前符号化マクロブロックを記憶するメモリであって、前記事前符号化マクロブロックは、前記ビデオゲームのビデオフレームのサブセクションに対応するビデオゲームコンテンツを含み、前記サーバにおいて前記ビデオゲームの実行を開始する前に圧縮及び記憶される、メモリと、複数の組になったユーザが前記ビデオゲームを略同時にプレイするように、前記ビデオゲームを実行し、かつ、前記事前符号化マクロブロックのうちの１または複数を使用してビデオゲームコンテンツを生成するように構成されるコントローラと、を備え、各組のユーザは１人又は複数のユーザを含み、前記サーバは、各組のユーザの前記ビデオゲームの各ゲーム状態を記憶し、
前記コントローラは、前記各組のユーザの各ユーザの前記少なくとも１つのユーザアクションに対応する前記各ゲーム状態の変化に従い、前記事前符号化マクロブロックのうちの１つ又は複数を使用して前記ビデオゲームコンテンツを動的に生成し、前記サーバから前記各ユーザ装置に送信される現在のビデオゲームコンテンツは、少なくとも、前記サーバから前記各ユーザ装置に送信された前のビデオゲームコンテンツに対する差分情報を含み、
前記コントローラにより動的に生成される前記ビデオゲームコンテンツは、前記サーバから前記複数のユーザ装置に送信されるビデオゲームコンテンツに対応するデータの通信速度が所定の制限値以上であることを保証するためのヌルブロックを含む、インタラクティブビデオゲームサーバシステム。
【請求項５】
前記コントローラは、前記ビデオゲームの１つ又は複数のインスタンスを実行するように構成され、前記コントローラにより実行される前記ビデオゲームのインスタンスは、前記ゲーム状態を複数保持する、請求項１乃至４のいずれか１項に記載のシステム。
【請求項６】
前記ビデオゲームコンテンツは、時間領域多重化を使用して前記サーバから前記複数のユーザ装置の各ユーザ装置に送信される、請求項１乃至４のいずれか１項に記載のシステム。
【請求項７】
前記コントローラは、前記各組のユーザの各ユーザの前記少なくとも１つのユーザアクションに対応する前記各ゲーム状態の変化に従い、前記事前符号化マクロブロックのうちの１つ又は複数を使用して前記ビデオゲームコンテンツを動的に生成し、前記サーバから前記各ユーザ装置に送信される現在のビデオゲームコンテンツは、少なくとも、前記サーバから前記各ユーザ装置に送信された前のビデオゲームコンテンツに対する差分情報を含む、請求項１乃至３のいずれか１項に記載のシステム。
【請求項８】
前記事前符号化マクロブロックはＭＰＥＧ対応である、請求項１乃至４のいずれか１項に記載のシステム。
【請求項９】
前記事前符号化マクロブロックは離散コサイン変換（ＤＣＴ）を使用して符号化される、請求項１乃至４のいずれか１項に記載のシステム。
【請求項１０】
前記事前符号化マクロブロックは離散コサイン変換（ＤＣＴ）を使用して符号化され、前記ビデオゲームコンテンツの動的生成は、２つ以上の事前符号化マクロブロックに対応するＤＣＴ係数をリアルタイムで相関付けることを含む、請求項４又は７に記載のシステム。
【請求項１１】
ビデオゲーム用のビデオゲームコンテンツを生成する方法であって、ネットワークを介して複数の組になったユーザに対応する複数のユーザ装置と接続するサーバシステムにおいて；
前記複数のユーザ装置から情報を受信するステップであって、各ユーザ装置からの前記情報は各ユーザからの少なくとも１つのユーザアクションに対応するステップと、
前記複数の組になったユーザがビデオゲームを略同時にプレイするように、複数の事前符号化マクロブロックの少なくとも１つを使用して前記複数の組になったユーザに向けてビデオゲームコンテンツを生成するステップであって、前記複数の事前符号化マクロブロックは、前記サーバにおいて前記ビデオゲームの実行を開始する前に圧縮及び記憶され、かつ、前記ビデオゲームのビデオフレームのサブセクションのためのビデオゲームコンテンツを含み、各組のユーザは１人又は複数のユーザを含み、前記サーバシステムは、各組のユーザの前記ビデオゲームの各ゲーム状態を記憶するステップと、
ビデオゲームコンテンツを、表示のために前記複数のユーザ装置に送信するステップと、
組となったユーザのうちの１人のユーザからの少なくとも１つのユーザアクションに従って前記組となったユーザの前記各ゲーム状態における変化を判定するステップと、
を含み、
前記ビデオゲームコンテンツは、前記各ゲーム状態の前記変化に従って、前記複数の事前符号化マクロブロックのうち少なくとも１つを使用して動的に生成され、
前記動的に生成されるビデオゲームコンテンツは、前記サーバから前記複数のユーザ装置に送信されるビデオゲームコンテンツに対応するデータの通信速度が所定の制限値以上であることを保証するためのヌルブロックを含む、方法。
【請求項１２】
ビデオゲーム用のビデオゲームコンテンツを生成する方法であって、ネットワークを介して複数の組になったユーザに対応する複数のユーザ装置と接続するサーバシステムにおいて；
前記複数のユーザ装置から情報を受信するステップであって、各ユーザ装置からの前記情報は各ユーザからの少なくとも１つのユーザアクションに対応するステップと、
前記複数の組になったユーザがビデオゲームを略同時にプレイするように、複数の事前符号化マクロブロックの少なくとも１つを使用して前記複数の組になったユーザに向けてビデオゲームコンテンツを生成するステップであって、前記複数の事前符号化マクロブロックは、前記サーバにおいて前記ビデオゲームの実行を開始する前に圧縮及び記憶され、かつ、前記ビデオゲームのビデオフレームのサブセクションのためのビデオゲームコンテンツを含み、各組のユーザは１人又は複数のユーザを含み、前記サーバシステムは、各組のユーザの前記ビデオゲームの各ゲーム状態を記憶するステップと、
ビデオゲームコンテンツを、表示のために前記複数のユーザ装置に送信するステップと、
を含み、
少なくとも１つ又は複数のユーザアクションに対応する前記情報は、帯域外（ＯＯＢ）サブチャネルを使用してネットワークにおいて通信される、方法。
【請求項１３】
ビデオゲーム用のビデオゲームコンテンツを生成する方法であって、ネットワークを介して複数の組になったユーザに対応する複数のユーザ装置と接続するサーバシステムにおいて；
前記複数のユーザ装置から情報を受信するステップであって、各ユーザ装置からの前記情報は各ユーザからの少なくとも１つのユーザアクションに対応するステップと、
前記複数の組になったユーザがビデオゲームを略同時にプレイするように、複数の事前符号化マクロブロックの少なくとも１つを使用して前記複数の組になったユーザに向けてビデオゲームコンテンツを生成するステップであって、前記複数の事前符号化マクロブロックは、前記サーバにおいて前記ビデオゲームの実行を開始する前に圧縮及び記憶され、かつ、前記ビデオゲームのビデオフレームのサブセクションのためのビデオゲームコンテンツを含み、各組のユーザは１人又は複数のユーザを含み、前記サーバシステムは、各組のユーザの前記ビデオゲームの各ゲーム状態を記憶するステップと、
ビデオゲームコンテンツを、表示のために前記複数のユーザ装置に送信するステップと、
を含み、
前記サーバはケーブルテレビシステム内のヘッドエンドユニット内にある、方法。
【請求項１４】
ビデオゲーム用のビデオゲームコンテンツを生成する方法であって、ネットワークを介して複数の組になったユーザに対応する複数のユーザ装置と接続するサーバシステムにおいて；
前記複数のユーザ装置から情報を受信するステップであって、各ユーザ装置からの前記情報は各ユーザからの少なくとも１つのユーザアクションに対応するステップと、
前記複数の組になったユーザがビデオゲームを略同時にプレイするように、複数の事前符号化マクロブロックの少なくとも１つを使用して前記複数の組になったユーザに向けてビデオゲームコンテンツを生成するステップであって、前記複数の事前符号化マクロブロックは、前記サーバにおいて前記ビデオゲームの実行を開始する前に圧縮及び記憶され、かつ、前記ビデオゲームのビデオフレームのサブセクションのためのビデオゲームコンテンツを含み、各組のユーザは１人又は複数のユーザを含み、前記サーバシステムは、各組のユーザの前記ビデオゲームの各ゲーム状態を記憶するステップと、
ビデオゲームコンテンツを、表示のために前記複数のユーザ装置に送信するステップと、
を含み、
前記サーバから前記複数のユーザ装置に送信されるビデオゲームコンテンツに対応するデータの通信速度は、所定の下限と所定の上限とを範囲とする、方法。
【請求項１５】
組となったユーザのうちの１人のユーザからの少なくとも１つのユーザアクションに従って前記組となったユーザの前記各ゲーム状態における変化を判定するステップをさらに備え、
前記ビデオゲームコンテンツは、前記各ゲーム状態の前記変化に従って、前記複数の事前符号化マクロブロックのうち少なくとも１つを使用して動的に生成される請求項１２乃至１４のいずれか１項に記載の方法。
【請求項１６】
前記事前符号化マクロブロックは離散コサイン変換（ＤＣＴ）を使用して符号化され、前記ビデオゲームコンテンツの動的生成は、２つ以上の事前符号化マクロブロックに対応するＤＣＴ係数をリアルタイムで相関付けることを含む、請求項１１又は１５に記載の方法。
【請求項１７】
更に、前記ビデオゲームの１つ又は複数のインスタンスを実行するステップを含み、
前記ビデオゲームのインスタンスは、前記ゲーム状態を複数保持する、請求項１１乃至１４のいずれか１項に記載の方法。
【請求項１８】
更に、前記ビデオゲームコンテンツを、時間領域多重化を使用して前記サーバから前記複数のユーザ装置の各ユーザ装置に送信するステップを含む、請求項１１乃至１４のいずれか１項に記載の方法。
【請求項１９】
前記事前符号化マクロブロックはＭＰＥＧ対応である、請求項１１乃至１４のいずれか１項に記載の方法。
【請求項２０】
前記事前符号化マクロブロックは離散コサイン変換（ＤＣＴ）を使用して符号化される、請求項１１乃至１４のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、一般にインタラクティブビデオゲームシステムに関し、特に、マルチプレーヤインタラクティブビデオゲームシステムに関する。
【背景技術】
【０００２】
背景
ビデオゲームは、エンターテイメントの人気の形態である。２人以上の個人が共通の擬似環境で同時にプレイするマルチプレーヤゲームは、特に、インターネットとも呼ばれるワールドワイドウェブ（ＷＷＷ）等のネットワークを使用して互いに対話できるユーザ数が増えるにつれて、ますます一般的になりつつある。ビデオゲームをネットワーク環境で実施するには、いくつかの問題がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
具体的には、ビデオゲーム、特に高品質グラフィックスを提供するものは、ネットワークで利用できるデータ速度通信能力のかなりの割合を占める最大データ速度を有するデータストリームを発生させ得る。データ速度は、各ゲームのゲーム状態が変更される、又は更新される頻度に依存して時間に応じて大幅に変化し得る。高データ速度と時間変化するデータ速度とのこの組み合わせが、衛星システム、ケーブルテレビシステム、又はインターネット等のネットワーク環境での費用効果的かつ効率的な資源の割り振りを難しくし得る。このようなネットワーク環境でのビデオゲームシステムでは、性能が低下しないことを保証するには、さらなる帯域幅オーバヘッド並びにハードウェア及びソフトウェアの冗長性の形のさらなる余裕が必要であり得る。これらシステムの問題は、マルチプレーヤゲームの場合に悪化する。したがって、ビデオゲームをネットワーク環境で実施する改良されたシステムが必要である。
【課題を解決するための手段】
【０００４】
概要
ビデオゲームシステムは、ネットワーク、ネットワークにそれぞれ結合された複数のユーザ装置及びサーバを含む。複数の各ユーザ装置は、各ユーザの少なくとも１つのユーザアクションに対応する情報を受信し、ネットワークを使用して少なくとも１つのユーザアクションに対応する情報を送信し、ネットワークを使用してビデオゲームコンテンツを受信し、ビデオゲームコンテンツを表示するように構成される。サーバは、ユーザアクションに対応する情報を複数のユーザ装置のうちの１つ又は複数から受信し、ビデオゲームコンテンツを送信するように構成される。サーバは、ビデオゲームを記憶するメモリ及び組になったユーザがビデオゲームを略同時にプレイするようにビデオゲームを実行するように構成されるコントローラを含む。
【０００５】
各組のユーザは１人又は複数のユーザを含むことができる。各組のユーザは、ビデオゲームの各ゲーム状態を有する。コントローラは、ビデオゲームの１つ又は複数のインスタンスを実行するように構成することができる。コントローラにより実行されるビデオゲームの各インスタンスは、複数の各ゲーム状態を保持する。
【０００６】
ビデオゲームコンテンツは、サーバから複数のユーザ装置の各ユーザ装置に、時間領域多重化を使用して送信することができる。
【０００７】
メモリは、複数の事前符号化されたブロックをさらに記憶することができる。事前符号化されたブロックは圧縮することができ、ビデオゲームのビデオフレームのサブセクションに対応することができる。コントローラは、各組のユーザの各ユーザの少なくとも１つのユーザアクションに対応し、かつ／又は前のビデオゲームコンテンツの送信から経過した時間に対応する各ゲーム状態の変化に従い、事前符号化されたブロックのうちの１つ又は複数を使用してビデオゲームコンテンツを動的に生成することができる。サーバから各ユーザ装置に送信される現在のビデオゲームコンテンツは、サーバから各ユーザ装置に送信された前のビデオゲームコンテンツに対する差分情報を含むことができる。
【０００８】
いくつかの実施形態では、ビデオゲームシステムは、ネットワーク、ネットワークにそれぞれ結合されたユーザ装置及びサーバを含む。ユーザ装置は、少なくとも１つのユーザアクションに対応する情報を受信し、ネットワークを使用して少なくとも１つのユーザアクションに対応する情報を送信し、ネットワークを使用してビデオゲームコンテンツを受信し、ビデオゲームコンテンツを表示するように構成される。サーバは、少なくとも１つのユーザアクションに対応する情報を受信し、ビデオゲームコンテンツを送信するように構成される。サーバは、ビデオゲーム及び複数の事前符号化ブロックを記憶するメモリを含む。事前符号化されたブロックは圧縮され、ビデオゲームのビデオフレームのサブセクションに対応する。コントローラは、ビデオゲームを実行し、少なくとも１つのユーザアクション及び／又は前のビデオゲームコンテンツを送信してからの経過時間に対応するゲーム状態の変化に従い、事前符号化ブロックのうちの１つ又は複数を使用してビデオゲームコンテンツを動的に生成するように構成される。サーバからユーザ装置に送信される現在のビデオゲームコンテンツは、サーバからユーザ装置に送信された前のビデオゲームコンテンツに対する差分情報を含む。
【０００９】
事前符号化ブロックはマクロブロックを含むことができる。事前符号化ブロックはＭＰＥＧ対応であることができる。事前符号化ブロックは、離散コサイン変換（ＤＣＴ）を使用して符号化することができる。ビデゲームコンテンツの動的生成は、２つ以上の事前符号化ブロックに対応するＤＣＴ係数をリアルタイムで相関付けることを含むことができる。
【００１０】
少なくとも１つのユーザアクションに対応する情報は、帯域外通信チャネルを使用してネットワーク内で通信することができる。
【００１１】
サーバは、ケーブルテレビシステム内のヘッドエンドユニット内にあってよい。ユーザ装置はセットトップボックスであってよい。
【００１２】
ビデオゲームコンテンツは、完全なビデオフレームの部分セットに対応する更新をユーザ装置が受信したときにリアルタイムで表示することができる。
【００１３】
ビデオゲームシステムは、ビデオゲームに対応する注文情報を受信したときにネットワークアドレスをユーザ装置に割り当てるように構成することができる。
【００１４】
ネットワークを使用してサーバからユーザ装置に送信されるビデオゲームコンテンツに対応するデータ速度は、所定の下限と所定の上限との間の範囲を有することができる。コントローラが動的に生成するビデオゲームコンテンツは、データ速度が所定の下限以上であることを保証するためのヌルブロックを含むことができる。
【００１５】
ビデオゲームシステムは、１つ又は複数の追加のユーザ装置を含むことができる。各ユーザ装置は、各ユーザに対応するビデオゲームコンテンツを受信して表示する。２人以上のユーザが、ビデオゲームの１つのインスタンスを同時に独立してプレイすることができ、事前符号化ブロックの少なくとも部分セットを共有することができる。２人以上の各ユーザは、ビデオゲームの対応する各ゲーム状態を有することができる。
【００１６】
本発明をより理解するために、添付図面に関連してなされる以下の詳細な説明を参照すべきである。
【００１７】
同様の参照番号は図面全体を通して対応する部分を指す。
【発明を実施するための最良の形態】
【００１８】
実施形態の詳細な説明
これより、例を添付図面に示す実施形態を詳細に参照する。以下の詳細な説明では、本発明の完全な理解を提供するために多くの特定の詳細について述べる。しかし、本発明をこれら特定の詳細なしで実施可能なことが当業者には理解されよう。場合によっては、本発明の態様を不必要に曖昧にしないように、周知の方法、手順、構成要素、及び回路を詳細に説明していない。
【００１９】
衛星システム、ケーブルテレビシステム（ＣＡＴＶ）、インターネット、広域ネットワーク、ローカルエリアネットワーク、及び／又は電話システム等のネットワークを使用してインタラクティブビデオゲームを提供する改良されたシステムを記載する。後述するように、システムは、ビデオゲームイメージのフレーム及び／又はフィールドに対応するビデオゲームコンテンツの効率的なデジタル化を利用して、通信帯域幅を低減し、それにより、サポート可能なプレーヤ数又はユーザ数を増大させる。ビデオゲームという用語は、ビデオゲーム、コンピュータにより実施される他の形のレクリエーションアプリケーションプログラム、並びにニュース、天気、及び／又はスポーツ等の非レクリエーションアプリケーションプログラムを含む。プレーヤ又はユーザはビデオゲームに参加する人を指す。
【００２０】
特に、システムは、受信される各ユーザ又は各組のユーザの各ユーザアクションに基づいてビデオゲームのゲーム状態の変化を判断する。システムは、事前符号化ブロックを使用して、ゲーム状態の変化に従い、対応するビデオゲームコンテンツを動的に生成する。システムは、現在のビデオゲームコンテンツをユーザ装置に送信し、表示させる。現在のビデオゲームコンテンツは、ユーザ装置に送信された前のビデオゲームコンテンツに対する差分情報に対応することができる。システムでは、複数組のユーザがビデオゲームの１つの実行可能コピーを同時に独立してプレイすることができる。各組のユーザは１人又は複数のユーザを含むことができ、ビデオゲームの各ゲーム状態を有する。このようにして、システムは、資源利用効率及び全体的な費用効果を向上させる。
【００２１】
図１は、ケーブルテレビシステムでの既存のコンテンツ配信システム１００を示すブロック図である。ヘッドエンド１１０（図２を参照してさらに後述する）が、ネットワーク１１６を介して複数の加入者又は顧客に結合される。各加入者は、コンテンツを受信してテレビ１２０で表示するためのセットトップボックス（ＳＴＢ）１１６を有する。ＳＴＢ１１６は、クライアントソフトウェアを実行するクライアント１１８を含む。ヘッドエンド１１０は、サーバ１１２及びウィンドウズ（Ｗｉｎｄｏｗｓ）リナックス（Ｌｉｎｕｘ）、ユニックス（Ｕｎｉｘ）、ソラリス（Ｓｏｌａｒｉｓ）等のオペレーティングシステムを使用する複数のサーバ１１４を含む。アプリケーションがコンテンツサーバ１１４で実行されて、コンテンツを加入者に提供する。例えば、コンテンツサーバ１１４は、ブラウザに対応する命令を実行することができる。各ブラウザ画面は、コンテンツデータストリームを各加入者に提供するようにスクレープすることができる。したがって、別個のブラウザ又はソフトウェアスタックが各加入者に対して実施される。すなわち、コンテンツの１コピーが各加入者の各ブラウザで実行される。コンテンツ配信システム１００が、マルチプレーヤ又はマルチユーザのビデオゲームの実施に利用される場合、ブラウザ及び／又はビデオゲームの別個のインスタンスが各プレーヤ又は各ユーザに対して実行される。これとは対照的に、図４を参照して後述するシステムは、各ユーザとコンテンツの実行コピーとの間に多対一の対応を有することができる。
【００２２】
改良されたビデオゲームシステム及びケーブルテレビシステム等のシステムへの統合方法について説明するために、ケーブルテレビシステム構造の全体像についてこれより考察する。図２は、ケーブルテレビシステム２００の一実施形態を示す。配信・システム管理装置（図示せず）に結合されたネットワーク２１０が、１本又は複数本の光ファイバケーブル等の光ファイバ通信リンク２１２を介してヘッドエンド２１４に結合される。ケーブルテレビシステム２００は追加のヘッドエンドを含むことができる。各ヘッドエンドは、サービスを１０００〜５００，０００人の加入者に提供する。ヘッドエンド２１４は、光ファイバ通信リンク２１２を介して複数のハブ２１６に結合される。ヘッドエンド２１４及びハブ２１６は、任意に、１本又は複数本の光ファイバケーブルを含むことができる光ファイバ通信リング２１８とリンクすることができる。光ファイバ通信リング２１８は、高密度波長分割多重通信プロトコルを利用することができる。
【００２３】
ハブ２１６−１等の各ハブは、光通信リンク２１２を介してノード２２０等の１つ又は複数のサービスグループ又はノードに結合される。ノード２２０は、サービスを近傍の２００〜２０００人の加入者に提供する。ノード２２０等の各ノードは、同軸ケーブル２２２及び増幅器２２４等の１つ又は複数の増幅器を介して、加入者２２６等の１人又は複数の加入者に結合される。ケーブルテレビシステム２００は、ウィルス等の不正プログラム又はコンテンツがシステムに入り、ハブ２１６及び／又はヘッドエンド２１４内の１つ又は複数のコンピュータに感染するのを防ぐ１つ又は複数のファイアウォール２２８を含んでもよい。
【００２４】
ケーブルテレビシステム２００等のケーブルテレビシステムは、時分割多重化及び周波数分割多重化を使用してアナログ信号及びデジタル信号の通信をサポートする。周波数分割多重化を、ケーブルテレビシステムでのサブチャネルの一実施形態３００を示す図３に示す。ケーブルテレビシステムは帯域幅３１０をサポートすることができる。例示的な実施形態では、帯域幅は８００ＭＨｚであってよい。帯域幅３１０は、ナローキャストサブチャネル３１６等の複数のナローキャストサブチャネル、２つ以上のブロードキャストサブチャネル３１４、及び２つ以上の帯域外（ＯＯＢ）サブチャネル３１２に細分される。複数のナローキャストサブチャネルは、ビデオオンデマンド（ＶＯＤ）及び／又はビデオゲーム等のデジタルサービスに使用することができる。ＯＯＢサブチャネル３１２の１つ又は複数での信号は、データオーバケーブルサービスインタフェース仕様（ＤＯＣＳＩＳ：Ｄａｔａ  Ｏｖｅｒ  Ｃａｂｌｅ  Ｓｅｒｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）もしくはケーブルモデムフォーマット、デジタルオーディオビデオインターオペラビリティカウンシル（ＤＡＶＩＣ：Ｄｉｇｉｔａｌ  Ａｕｄｉｏ  Ｖｉｄｅｏ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  Ｃｏｕｎｃｉｌ）フォーマット、及び／又はモトローラ（Ｍｏｔｏｒｏｌａ）提供のフォーマット規格等の独自フォーマット規格を利用することができる。
【００２５】
例示的な実施形態では、２５６レベル直交振幅変調（ＱＡＭ）が使用される場合、およそ６ＭＨｚの帯域幅を有するナローキャストサブチャネル３１６等の各ナローキャストサブチャネルは、およそ３８Ｍｂｐｓのデジタルデータ又はそれぞれがデータ速度３．７５Ｍｂｐｓを有するおよそ１０個のデジタルチャネルに相当する。１〜４Ｍｂｐｓを利用するビデオゲームの場合、ナローキャストサブチャネル３１６は１０〜３０のビデオゲームデータストリームに相当する。
【００２６】
各ブロードキャストサブチャネル３１４は１つのアナログテレビチャネルに対応する。例示的な実施形態では、各ブロードキャストサブチャネルはおよそ６ＭＨｚの帯域幅を有し、アナログテレビ信号はＮＴＳＣフォーマットで送信される。しかし、他の実施形態は、ＰＡＬ又はＳＥＣＡＭ等の別のフォーマットを利用してもよい。各ＯＯＢサブチャネル３１２は、およそ１Ｍｂｐｓのビット速度又はデータ速度に対応することができる。
【００２７】
これより、改良されたビデオゲームシステムに注意を向ける。図４は、ケーブルテレビシステム４００の一実施形態を示すブロック図である。いくつかのコンテンツデータストリームを各加入者に送信することができ、そして各加入者は、サービスを注文したり、又はビデオゲーム内でのユーザアクションを送信したりすることができる。アナログテレビ信号等の衛星信号を、衛星アンテナ４３８を使用して受信することができる。アナログ信号をアナログヘッドエンド４４０で処理し、無線周波（ＲＦ）結合器４３４に結合し、ネットワーク１１６を介してＳＴＢ１１６−１に送信することができる。さらに、信号を衛星受信器４４２で処理し、マルチプレクサ（ＭＵＸ）４４４に結合し、ＱＡＭ４３２を使用してデジタルフォーマットに変換し、無線周波（ＲＦ）結合器４３４に結合し、ネットワーク１１６を介してＳＴＢ１１６−１に送信することができる。ビデオオンデマンド（ＶＯＤ）サーバ４１８が、注文された映画に対応する信号をスイッチ４２６−２に提供することができ、スイッチ４２６−２は信号をＱＡＭ４３２−１に結合して、デジタルフォーマットに変換する。これらデジタル信号は無線周波（ＲＦ）結合器４３４に結合され、ネットワーク１１６を介してＳＴＢ１１６−１に送信される。ＳＴＢ１１６−１は、後述するビデオゲームコンテンツに対応する信号を含む１つ又は複数の信号をテレビ１２０−１に表示することができる。図４は１人の加入者ＳＴＢ１１６−１及びテレビ１２０−１を示しているが、他の実施形態では、１つ又は複数のＳＴＢ及び／又はテレビをそれぞれ有するさらなる加入者が存在してよい。
【００２８】
ケーブルテレビシステム４００は、アプリケーションサーバ４１４及び複数のゲームサーバ４１６を含むこともできる。アプリケーションサーバ４１４及び複数のゲームサーバ４１６は、ヘッドエンド２１４（図２）等のヘッドエンドに配置することができる。アプリケーションサーバ４１４１及び複数のゲームサーバ４１６の１つのインスタンス又はグループが図４に示されるが、他の実施形態は、１つ又は複数のヘッドエンド内にさらなるインスタンスを含んでよい。アプリケーションサーバ４１４及びゲームサーバ４１６のうちの１つ又は複数は、１つ又は複数のビデオゲームに対応するビデオゲームコンテンツを提供することができる。アプリケーションサーバ４１４は、データベース内のゲーム関連情報にアクセスし、かつ／又はゲーム関連情報をデータベースにログ記録することができる。アプリケーションサーバ４１４は、報告及び価格付けに使用することもできる。ゲームサーバ４１６内の１つ又は複数のゲームエンジン８３２（図８及び図１０）が、事前符号化ブロックを使用してビデオゲームコンテンツを動的に生成するように設計される。例示的な実施形態では、ゲームサーバ４１６（図８及び図１０）はＭＰＥＧ符号化を使用する。
【００２９】
ビデオゲームコンテンツはスイッチ４２６−２に結合され、ＱＡＭ４３２−１においてデジタルフォーマットに変換される。これらデジタル信号は無線周波（ＲＦ）結合器４３４に結合され、ネットワーク１１６を介してＳＴＢ１１６−１に送信される。アプリケーションサーバ４１４は、インターネット４１０を介して、マルチプレーヤサーバ４１２に記憶されるデータベース内の永久的なプレーヤデータ又はユーザデータにアクセスすることもできる。アプリケーションサーバ４１４１及び複数のゲームサーバ４１６について、図５を参照してさらに後述する。
【００３０】
ＳＴＢ１１６−１は、１つ又は複数のユーザアクションに対応する情報を受信し、情報をゲームサーバ４１６のうちの１つ又は複数に送信する、ゲーム４３６等のクライアントアプリケーションを含むことができる。ゲームアプリケーション４３６は、テレビ１２０−１上のビデオフレームを更新する前に、ビデオゲームコンテンツを記憶することもできる。ＳＴＢ１１６−１について、図９を参照してさらに後述する。
【００３１】
ケーブルテレビシステム４００は、ＳＴＢ制御機構４２０、オペレーションサポートシステム４２２、及び課金システム４２４を含むこともできる。ＳＴＢ制御機構４２０は、ＯＯＢサブチャネル３１２−１（図３）等のＯＯＢサブチャネルを使用して受信される各ビデオゲームに関連するユーザアクション等の１つ又は複数のユーザアクションを、リターンパルス振幅（ＰＡＭ）復調器４３０及びスイッチ４２６−１を使用して処理することができる。オペレーションサポートシステム４２２は、各ビデオゲーム等の各サービスへの加入者注文を処理し、課金システム４２４を更新することができる。ＳＴＢ制御機構４２０、オペレーションサポートシステム４２２、及び／又は課金システム４２４は、スイッチ４２６−１及び信号をＯＯＢサブチャネルに適したフォーマットに変換するＯＯＢモジュール４２８を介し、ＯＯＢサブチャネルを使用して加入者と通信することもできる。別法として、オペレーションサポートシステム４２２及び／又は課金システム４２４は、電話システムにより提供されるような別の通信リンクを介して加入者と通信することもできる。
【００３２】
ケーブルテレビシステム４００で送受信される各種信号は、パケットベースのデータストリームを使用して通信することができる。例示的な実施形態では、パケットの一部はインターネットプロトコルを利用することができる。いくつかの実施形態では、ネットワーク１１６等のネットワーク及びケーブルテレビシステム４００内の構成要素間の結合は、ワイヤレスエリアネットワーク、ローカルエリアネットワーク、同軸ケーブル、陸線及び／又は光ファイバ等の伝送線の１つ又は複数のインスタンスを含むことができる。いくつかの信号は、一般電話サービス（ＰＯＴＳ）及び／又は総合デジタル通信網（ＩＳＤＮ）等のデジタル電話網を使用して通信することができる。ワイヤレス通信は、アナログ携帯電話システム（ＡＭＰＳ：Ａｄｖａｎｃｅｄ  Ｍｏｂｉｌｅ  Ｐｈｏｎｅ  Ｓｙｓｔｅｍ）、汎欧州デジタル移動電話方式（ＧＳＭ：Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、符合分割多元アクセス（ＣＤＭＡ）、及び／又は時分割多元アクセス（ＴＤＭＡ）を使用する携帯電話網、並びにＷｉＦｉとしても知られるＩＥＥＥ８０２．１１通信プロトコル及び／又はブルートゥース（Ｂｌｕｅｔｏｏｔｈ）通信プロトコルを使用するネットワークを含むことができる。
【００３３】
図４はケーブルテレビシステムを示すが、記載のシステム及び方法は衛星ベースのシステム、インターネット、電話システム、及び／又は地上波テレビ放送システムで実施することもできる。ケーブルテレビシステム４００は、追加の要素を含んでもよく、かつ／又は１つ又は複数の要素がなくてもよい。さらに、２つ以上の要素を１つの要素に組み合わせてもよく、かつ／又はケーブルテレビシステム４００内の１つ又は複数の要素の位置を変更してもよい。
【００３４】
図５は、ビデオゲームシステム５００の一実施形態を示すブロック図である。ヘッドエンド１１０−１は、複数のゲームサーバ５１４、アプリケーションサーバ５１６、ゲームアセット管理システム５１８、セッション資源管理（ＳＲＭ）５２０、ゲームビジネス管理システム５２２、及び課金システム４２４を含む。ヘッドエンド１１０−１内の通信は、１本又は複数本の光ファイバケーブル及び／又はギガビットイーサネット接続を介して行うことができる。ヘッドエンド１１０−１は、ネットワーク５１２を介してオペレーションセンタ５１０及びステージングセンタ５２６に結合される。ネットワーク５１２での通信は暗号化することができる。いくつかの実施形態では、ネットワーク５１２は仮想私設ネットワークであってよい。オペレーションセンタ５１０はマルチプレーヤサーバ４１２を含む。配信又はステージングセンタ５２６はゲーム配信サーバ５２８を含む。
【００３５】
ヘッドエンド１１０−１は、１つ又は複数のビデオゲームの１人又は複数のユーザにも結合される。各ユーザは、少なくとも１つのテレビ１２０−１及びＳＴＢ１１６−１を有する。ＳＴＢ１１６−１は、ゲーム４３６等のクライアントアプリケーションを含むことができる。双方向通信リンク５２４−１を１つ又は複数のゲームサーバ５１４とＳＴＢ１１６−１との間に実施することができる。しかし、各方向での帯域幅又はデータ速度は非対称であってよい。例えば、ヘッドエンド１１０−１からＳＴＢ１１６−１により速いデータ速度を利用することが可能であり得る。ＳＴＢ１１６−１からゲームサーバ５１４−３等のゲームサーバ５１４のうちの１つへのデータストリームは、１つ又は複数のビデオゲームでの１つ又は複数のユーザアクションに対応する情報を含むことができる。ＳＴＢ１１６−１は、ＯＯＢサブチャネル３１２−１を使用してアプリケーションサーバ５１６との双方向通信を有することもできる。
【００３６】
アプリケーションサーバ５１６は、ビデオゲーム配信（ビデオゲームのロード）、課金及びビジネスインフラ（統合）を管理する。新しいビデオゲームのテストが完了した後、ゲーム配信サーバ５２８は、新しいビデオゲームの配信準備が整うようにヘッドエンド１１０−１等の１つ又は複数のヘッドエンドを変更する。ゲームアセット管理システム５１８は、新しいビデオゲームをフェッチして配信する。ゲームアセット管理システム５１８は、関連する価格付け情報をゲームビジネス管理システム５２２に記憶するとともに、１つ又は複数の事前符号化ブロック等の新しいビデオゲームに対応するコンテンツ及び実行可能ビデオゲーム命令をゲームサーバ５１４に記憶する。ゲームアセット管理システム５１８は、ビデオゲームを含むように拡張された映画用フォーマットであるアセット配信インタフェースをサポートする。ゲームアセット管理システム５１８は、各ビデオゲームの発行者、各ビデオゲームの説明、各ビデオゲームの名称、ビット速度又はデータ速度等の各ビデオゲームの１つ又は複数の性能特性を含むビデオゲームのメタデータを含むこともできる。
【００３７】
ゲームビジネス管理システム５２２は、価格付け、使用期間（１日単位の課金、無制限の使用等）、及び１つ又は複数のビデオゲームのパッケージとしてのレンタルに可能なバンドリングを処理する。ＳＲＭ５２０は、各ユーザとの通信に使用するための資源を割り振り、各ビデオゲームが注文されたことに応答して初期プロセスを処理する。ＳＲＭ５２０はＶＯＤに対応するもの以外のビット速度又はデータ速度をサポートすることもできる。
【００３８】
各ユーザが各ビデオゲームを注文した場合、ケーブルテレビシステムは、オペレーションサポートシステム４２２（図４）を介して、ＳＴＢ１１６−１とヘッドエンド１１０−１、特にＳＲＭ５２０との間に通信を確立する。データパケット等の通信のルーティングには、インターネットプロトコルアドレスを使用することができる。いくつかの実施形態では、ルックアップテーブルにより提供されるような固定のアドレスマッピングがあってよい。他の実施形態では、動的に割り当てられるネットワークアドレスを使用してよい。これらはセッションゲートウェイ６１４（図６Ａ）により提供することができる。
【００３９】
注文プロセス中、各ビデオゲームを開始する前に、認証、課金、支払い、及びセキュリティデータ等の追加の情報を各ユーザから要求することができる。さらに、アプリケーションサーバ５１６は、マルチプレーヤサーバ４１２内のユーザメタデータ等の永久的なユーザ情報にアクセスすることができる。プレーヤメタデータは、保存されているビデオゲーム状態、ランキング、及び／又は高得点を含むことができる。
【００４０】
次に、アプリケーションサーバ５１６は、各ユーザをゲームサーバ５１４−３等の各ゲームサーバに割り当てることができ、各ゲームサーバは次に、各ユーザを各ゲームサーバ５１４−３内のゲームエンジン８３２（図８）等の各ゲームエンジンに割り当てる。各ユーザには、ゲームサーバ５１４の空き容量及び／又は他のビデオゲームユーザもしくは参加者の可用性に基づいて各ゲームサーバ５１４−３を割り当てることができる。例えば、マルチプレーヤビデオゲームに現在利用できる十分なユーザがいないことがある。十分なユーザがいない場合、ユーザには、十分なプレーヤが集まるまで待つか、又はプレイする別のビデオゲームを選択するという選択肢を与えることができる。割り当てられる各ゲームサーバ５１４−３は、ユーザメタデータの少なくとも一部に従ってもよい。例えば、各ユーザには、各ユーザのスキルレベルに基づいて各ゲームサーバ５１４−３及び／又は各ビデオゲームの各インスタンスを割り当てることができる。各ユーザは、各ユーザのＳＴＢ１１６−１のネットワークアドレスに基づいて、又は各ビデオゲーム注文時に各ユーザにより入力される数値識別子により識別することができる。別法として、各ユーザは、初級者、中級者、上級者又はエキスパート等の競いたいスキルレベルを指定することができる。
【００４１】
各ビデオゲームでの１つ又は複数のユーザアクションは、種々の通信パス及び／又はフォーマットを使用してＳＴＢ１１６−１から各ゲームサーバ５１４−３に通信することができる。ユーザアクションは、双方向通信リンク５２４−１を使用してＳＴＢ１１６−１から各ゲームサーバ５１４−３に直接通信することができる。別法として、１つ又は複数のユーザアクションは、ＯＯＢサブチャネル３１２−１を使用して通信することができる。ユーザアクションは、汎用ストリーム制御プロトコル（ＧＳＣＰ：Ｇｅｎｅｒａｌ  Ｓｔｒｅａｍ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）又は変更の加えられたＧＳＣＰを使用して通信することができる。ＧＳＣＰは、ＳＴＢ１１６−１から各ゲームサーバ５１４−３にキーストロークを通信するためのフォーマットである。ＳＴＢ１１６−１は、軽量ストリーム制御プロトコル（ＬＳＣＰ）と呼ばれるＶＯＤプロトコルを拡張したものをサポートすることもできる。ＬＳＣＰは、矢印キー又はナビゲーションキー、選択、及びＯＫに加えて追加のキーイベントをサポートする。
【００４２】
いくつかの実施形態では、各ユーザは、電話システム又はワイヤレス通信リンクにより提供されるように、ＯＯＢサブチャネル３１２−１又はバックチャネルを使用して同じビデオゲーム又は別のビデオゲームの１人又は複数の追加ユーザとオーディオチャットすることが可能であり得る。いくつかの実施形態では、オーディオチャットはＤＯＣＳＩＳフォーマットを利用することができる。
【００４３】
ゲームサーバ５１４は、静的又は共有されるゲームアセット及び動的処理の組み合わせを使用してビデオゲームコンテンツを１人又は複数のユーザに提供する。ゲームサーバ５１４は複数の事前符号化ブロックを含む。例示的な一実施形態では、事前符号化ブロックはＭＰＥＧマクロブロックである。各ブロックは１６×１６ピクセル要素に対応する。標準定義のＮＴＳＣビデオの場合、６４０本の水平線及び４８０本の垂直ピクセルがある。したがって、完全なビデオフレームは、４０個のマクロブロックをそれぞれ含む３０の水平スライスに相当する。事前符号化ブロックは、離散コサイン変換（ＤＣＴ）を使用して圧縮することができる。事前符号化ブロックは、クロミナンス／ルミナンス又はＹＵＶフォーマットで記憶することができる。各事前符号化ブロックは個々に圧縮することができる。しかし、事前符号化ブロックは、近傍マクロブロックから独立して圧縮されない。
【００４４】
処理の動的な部分では、ゲームサーバ５１４は、１つ又は複数のユーザアクションに基づくゲーム状態の変化に従って事前符号化ブロックを動的にステッチ又は相関付ける。各組のユーザのゲーム状態はゲームの現在の状態を表し、ゲームサーバが、ゲーム状態に影響するユーザアクションに応答して、前のゲーム状態及び最近のユーザアクションの両方に矛盾しないように、ビデオゲームを１人又は複数のユーザの視点から進展させるビデオゲームコンテンツを生成するのに十分な情報を提供する。事前符号化ブロックがＭＰＥＧ対応マクロブロックの場合、対応するＤＣＴ係数は、データストリームが生成され、ＳＴＢ１１６−１に送信されるときにリアルタイムで相関付けられ、又はインタリーブされる。送信される現在のビデオゲームコンテンツは、少なくともビデオフレームの部分セット等の、ＳＴＢ１１６−１に送信されて表示された前のビデオゲームコンテンツに対する差分情報を含む。いくつかの実施形態では、ビデオフレーム内の１つ又は複数のオブジェクト又は事前符号化ブロックの移動に基づいて、動き補償を利用することができる。いくつかの実施形態では、ゲームサーバ５１４のうちの１つ又は複数は、送信されたビデオゲームコンテンツに追加のグラフィックスをリアルタイムでブレンドすることもできる。ビデオゲームコンテンツはオーディオを含むこともできる。オーディオ情報は、事前に圧縮されるブロックを含むこともできる。例示的な一実施形態では、ドルビーオーディオ符号化−３（ＡＣ３）等のドルビーオーディオ符号化フォーマットが使用される。
【００４５】
ビデオゲームコンテンツは、時間領域多重化を使用して各ユーザに送信することができ、この場合、ビデオゲームコンテンツは一連のタイムスライスで送信される。いくつかの実施形態では、１人又は複数のユーザに送信されるビデオゲームコンテンツは、略同じであり得る。他の実施形態では、２人以上のユーザが異なるビデオゲームコンテンツを受信し得る。ビデオゲームコンテンツは、１つ又は複数のサブチャネルを使用して１人又は複数のユーザに送信することができる。
【００４６】
図５は１つのヘッドエンド１１０−１を示すが、他の実施形態では、１つ又は複数の追加のヘッドエンドがあってもよい。ビデオゲームシステム５００は追加の要素を含んでもよく、又は１つ又は複数の要素をなくしてもよく、２つ以上の要素を１つの要素に組み合わせてもよく、かつ／又はビデオゲームシステム５００内の１つ又は複数の要素の位置を変更してもよい。さらに、２つ以上の要素間の通信を追加してもよく、又はなくしてもよい。
【００４７】
上述したように、さらなる実施形態は、ビデオゲームシステム５００の１つ又は複数の要素の位置を再配置することができる。図６Ａ及び図６Ｂは、ビデオゲームシステム６００及びビデオゲームシステム６５０のこのような実施形態を示すブロック図である。さらに、図６Ａ及び図６Ｂにおいて双方向通信リンク５２４−２が追加され、アプリケーションサーバ５１６とゲームアセット管理システム５１８が結合され、プレーヤ管理システム６１２とゲームビジネス管理システム５２２とが結合され、図６ＡにおいてＯＯＢサブチャネル３１２−１がセッション資源管理５２０に結合されるなど、要素間の通信も変更される。
【００４８】
実施形態５００、６００、及び６５０等の上述したビデオゲームシステムは、特に、手法が複数ユーザに拡張されるときに、効率的な資源の割り振り及び全体的な費用効果を提供することができる。例えば、いくつかの実施形態では、複数組のユーザが各ビデオゲームの１つのインスタンス又は１つのコピーを略同時に、かつ独立してプレイすることが可能であり得る。各組のユーザは、各ゲーム状態を共有する１人又は複数のユーザを含むことができる。したがって、各ビデオゲームのコントローラは、複数の各ゲーム状態を保持するように構成されるか、又はそのように構成可能である。このようにして、ビデオゲームシステムは、各ビデオゲームの１つのインスタンス又は１つのコピーを使用して複数の並列ゲームをサポートすることができる。例示的な一実施形態では、複数組のユーザにアレンジされた１００人以上のユーザが、ビデオゲームの１つのコピーをプレイすることができる。これは、複数のユーザが、同時に実行されているビデオゲームの複数のコピー間で通信することにより、共有される仮想環境内で競い合う既存のマルチユーザ又はマルチプレーヤビデオゲームとは対照的である。
【００４９】
図７は、マルチユーザビデオゲーム用のビデオゲームシステム７００の一実施形態を示すブロック図である。ゲームサーバ５１４−１がオペレーションセンタ５１０及びアプリケーションサーバ５１６に結合される。オペレーションセンタ５１０はマルチプレーヤサーバ４１２を含み、マルチプレーヤサーバ４１２は、ユーザメタデータ等の永久的なユーザデータを記憶することができる。アプリケーションサーバ５１６は、プレーヤ管理サーバ７１０及びプレーヤ管理サーバアプリケーションプログラミングインタフェース（ＡＰＩ）７１２を含む。ゲームサーバ５１４−１は、マルチプレーヤＡＰＩ７１４、マルチプレーヤテスト７１６、並びにブラックジャック７２０、バックギャモン７２２、及びスペード７２４等の複数のビデオゲームの複数のロビー７１８を含む。ロビー７１８−１等の各ロビーは、少なくとも部分的に、ネットワーク１１６（図４）上の各ビデオゲームをプレイしたいユーザと他のユーザとのマッチングを可能にするアプリケーションインタフェースを含むことができる。いくつかの実施形態では、ロビー７１８は、各種ビデオゲームをプレイできるいわゆるテーブルをいくつか含む。こういった実施形態では、ロビー７１８は、少なくとも部分的に、ユーザが利用できるテーブルを見て（ユーザのセットトップボックス１１６により実施されるグラフィカルユーザインタフェースを介して）、各テーブルに参加して１人又は複数のさらなるユーザとビデオゲームをプレイできるようにするアプリケーションインタフェースである。
【００５０】
図７では、１人又は複数のユーザが各ビデオゲームを選択し、プレーヤ管理サーバ７１０によりロビー７１８−１等の対応するロビーに結合されて、各ビデオゲームのプレイに関心のある他のユーザと対戦する。いくつかのビデオゲームは、テーブル又はユーザを各ユーザが選択する望ましさの程度を高く、又は低くする選択肢、又は属性、又は特徴を有することができる。このような属性は、他のユーザのランキング、ランキング以外の属性で示されるスキルレベル、最小賭け金額（ポーカーゲーム等のギャンブルを含むビデオゲームの場合）を含むことができる。こういった属性のいくつか又はすべては、マルチプレーヤサーバ４１２に記憶することができる。ユーザは、対応するロビー内で共にマッチングされると、実際のビデオゲームプレイに移行する。
【００５１】
図８は、ビデオゲームシステム８００の一実施形態を示すブロック図である。ビデオゲームシステム８００は、少なくとも１つのデータプロセッサ、ビデオプロセッサ、及び／又は中央演算処理装置（ＣＰＵ）８１０と、１つ又は複数の任意のユーザインタフェース８１４と、他のコンピュータ、サーバ、及び／又は１つもしくは複数のＳＴＢ（図４のＳＴＢ１１６−１等）と通信するための通信インタフェース又はネットワークインタフェース８２０と、メモリ８２２と、これら構成要素を互いに結合する１つ又は複数の信号線８１２と、を含むことができる。ユーザインタフェース８１４は、１つ又は複数のキーボード８１６及び／又はディスプレイ８１８を有することができる。１つ又は複数の信号線８１２は、１つ又は複数の通信バスを構成する。
【００５２】
メモリ８２２は、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、１つ又は複数のフラッシュディスクドライブ、１つ又は複数の光ディスクドライブ、及び／又は１つ又は複数の磁気ディスク記憶装置を含め、高速ランダムアクセスメモリ及び／又は不揮発性メモリを含むことができる。メモリ８２２は、基本的なシステムサービスを処理し、ハードウェア依存タスクを実行するための手続き（又は命令セット）を含む、リナックス（ＬＩＮＵＸ）、ユニックス（ＵＮＩＸ）、又はウィンドウズ（ＷＩＮＤＯＷＳ）等のオペレーティングシステム８２４を記憶することができる。メモリ８２２は、通信手続き（又は命令セット）をネットワーク通信モジュール８２６に記憶することもできる。通信手続きは、ＳＴＢ１１６−１（図４）等のＳＴＢを使用して１人又は複数のユーザと通信するため、かつビデオゲームシステム８００内の他のサーバ及びコンピュータと通信するために使用される。
【００５３】
メモリ８２２は、アプリケーションサーバモジュール４１４（又は命令セット）、ゲームアセット管理システムモジュール５１８（又は命令セット）、セッション資源管理モジュール５２０（又は命令セット）、ゲームビジネス管理システムモジュール５２２（又は命令セット）、課金システムモジュール４２４（又は命令セット）、プレーヤ管理システムモジュール６１２（又は命令セット）、セッションゲートウェイモジュール６１４（又は命令セット）、１つ又は複数のゲームサーバモジュール４１６（又は命令セット）、マルチプレーヤサーバモジュール４１２（又は命令セット）、及びゲーム配信サーバ５２６（又は命令セット）を含む要素又はこのような要素の部分セットもしくは上位セットを含むこともできる。ゲームアセット管理システムモジュール５１８は、１つ又は複数のビデオゲームに対応する事前符号化ブロック及び実行可能コードを含むゲームデータベース８２８を含むことができる。プレーヤ管理システムモジュール６１２は、ユーザの氏名、アカウント情報、トランザクション情報、ＳＴＢ１１６−１（図４）でのビデオゲームの表示をカスタマイズするためのプリファレンス、プレイしたビデオゲームの高得点、プレイしたビデオゲームのランキング及び他のスキルレベル情報、一時停止され、後で再開できるビデオゲームの永続的に保存されているゲーム状態等の情報を含むプレーヤ情報データベース８３０を含むことができる。ゲームサーバモジュール４１６の各インスタンスは、１つ又は複数のゲームエンジンモジュール８３２及び１つ又は複数の圧縮エンジンモジュール８３６を含むことができる。ゲームエンジンモジュール８３２は、１つ又は複数のビデオゲームをプレイしている１組又は複数組のユーザに対応するゲーム状態８３４を含むこともできる。
【００５４】
図８は、いくつかの離散アイテムとしてビデオゲームシステム８００を示しているが、本明細書において説明した実施形態の構造概略ではなく、むしろビデオゲームシステムに存在しうる各種特徴の機能的な説明を目的としている。実際には、当業者に認められるように、ビデオゲームシステム８００の機能は、多数のサーバ又はコンピュータに分散してよく、この場合、各グループのサーバがこれら機能の特定の部分セットを実行する。図８において別個に示されるアイテムを組み合わせてもよく、いくつかのアイテムを分けてもよい。例えば、図８において別個に示されるいくつかのアイテムを１つのサーバで実施してもよく、１つのアイテムを１つ又は複数のサーバで実施してもよい。ビデオゲームシステム内の実際のサーバ数並びにゲームサーバモジュール４１６及びゲームエンジンモジュール８３２等の特徴がサーバにどのように割り振られるかは、実施態様毎に異なり、システムに記憶される情報量並びに／又はシステムがピーク使用期間中及び平均使用期間中に処理しなければならないデータトラフィック量に一部依存し得る。ゲームサーバ４１６について、図１０を参照してさらに後述する。
【００５５】
図９は、ＳＴＢ１１６−１（図４）等のセットトップボックス（ＳＴＢ）９００の一実施形態を示すブロック図である。ＳＴＢ９００は、ネットワーク１１６を使用して注文情報及びユーザアクションに対応する情報を送信し、ビデオゲームコンテンツを受信する。受信された信号はネットワークインタフェース９１０を使用して処理されて、ヘッダ及びビデオゲームコンテンツを含むデータストリーム内の他の情報が取り除かれる。その結果得られる信号はチューナー９１２において処理されて１つ又は複数のサブチャネルに対応する周波数が選択され、そしてデコーダ９１４において処理される。例示的な一実施形態では、デコーダ９１４はＭＰＥＧ２デコーダである。他の実施形態では、デコーダ９１４は、ＭＰＥＧ対応デコーダ又は別のビデオ圧縮規格のデコーダであってよい。デコーダ９１４から出力されたビデオゲームコンテンツは、ディスプレイドライバ９１６を使用してディスプレイ９２２の駆動に適したフォーマットに変換される。ゲームコントローラ９２４に入力されるユーザアクションは、デバイスインタフェース９１８により受信され、ネットワークインタフェース９１０に転送されて送信される。ＳＴＢ９００は、任意に、キーボード、ボタン、及び／又は液晶ディスプレイもしくは他のディスプレイ等のユーザインタフェース９２０を含むことができる。
【００５６】
ゲームコントローラ９２４は、ソニープレイステーション（Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ）（登録商標）、任天堂（Ｎｉｎｔｅｎｄｏ）（登録商標）、セガ（Ｓｅｇａ）（登録商標）、及びマイクロソフトＸボックス（Ｍｉｃｒｏｓｏｆｔ  Ｘｂｏｘ）（登録商標）により提供されるもの等の専用ビデオゲームコンソール又はパーソナルコンピュータであることができる。ゲームコントローラ９２４は、１つ又は複数のユーザアクションに対応する情報をゲームパッド、キーボード、ジョイスティック、マイクロホン、マウス、１つもしくは複数のリモコン、１つもしくは複数の追加のゲームコントローラ、又は音声認識技術を含むインタフェース等の他のユーザインタフェースから受け取ることができる。ディスプレイ９２２は、テレビ、コンピュータ、又はビデオゲームコントローラ９２４もしくは携帯電話等の携帯装置の陰極線管又は液晶ディスプレイであることができる。
【００５７】
ＳＴＢ９００は、リナックス（Ｌｉｎｕｘ）、ＯＳ９、又はウィンドウズ（Ｗｉｎｄｏｗｓ）等の埋め込みオペレーティングシステム又は産業又は商用装置での使用に適したリアルタイムオペレーティングシステム（例えば、ウィンドリバーシステムズインク（Ｗｉｎｄ  Ｒｉｖｅｒ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．）によるＶｘワークス（ＶｘＷｏｒｋｓ））を有することができる。
【００５８】
いくつかの実施形態では、ＳＴＢ９００は、ビデオゲームコンテンツを表示する前に、受信したビデオゲームコンテンツに対してスムーズ化操作を実行することができる。いくつかの実施形態では、受信されたビデオゲームコンテンツは、受信されるとリアルタイムでディスプレイ９２２に表示される。他の実施形態では、ＳＴＢ９００は、完全なビデオフレームを受信するまで、受信したビデオゲームコンテンツを記憶する。次に、完全なビデオフレームがディスプレイ９２２に表示される。
【００５９】
図１０は、ビデオゲームシステム１０００の一実施形態を示すブロック図である。セッション資源管理５２０は、必要な場合には適当なネットワークアドレッシングを含むセッションセットアップ要求１０１０を受け取り、アプリケーションサーバ５１６にルーティングすることができる。ビデオゲームシステム１０００は複数のゲームサーバ５１４も含む。ゲームサーバ５１４は互いに結び付けられて、ゲームサーバ５１４−１等の各ゲームサーバの各負荷状況を報告する。負荷情報（例えば、各ゲームサーバ内でアクティブなビデオゲーム状態の数に基づくメトリック等の、各ゲームサーバの１つ又は複数のアクティビティメトリック）がアプリケーションサーバ５１６に渡され、アプリケーションサーバ５１６は、ビデオゲーム処理のために１つ又は複数のユーザを異なるゲームサーバ５１４にリダイレクトする。このようにして、ビデオゲームシステム１０００はゲームサーバ５１４の負荷を平衡させることができる。
【００６０】
ビデオゲームシステム１０００及びゲームサーバ５１４のうちの１つ又は複数は、同時に実行されているチェス、チェッカー、及び／又はトランプ等の１つ又は複数のビデオゲームをサポートすることができる。さらに、上述したように、各ビデオゲームは、複数組のユーザが各ビデオゲームを独立して、かつ略同時にプレイできるように実行することができる。
【００６１】
ゲームサーバ５１４−１等の各ゲームサーバは、対応するゲーム状態を更新できるように１つ又は複数のユーザアクション１０１２に対応する情報を処理するユーザアクション管理１０１４、１つ又は複数のゲームエンジン８３２、ビデオデータストリーム及び／又はオーディオデータストリームのインタフェースを提供する圧縮ストリーム合成ＡＰＩ０１６、圧縮エンジン８３６（ＭＰＥＧ２等）、並びにデータストリーム１０２０（データパケット等）を１つ又は複数のＳＴＢに出力するデータストリームモジュール１０１８を含む。さらに、各ゲームサーバ５１４は、１つ又は複数のビデオゲームストリーム１０２４を受信するゲームストレージ１０２２を含むことができる。ゲームストレージ１０２２は、１つ又は複数のビデオゲームの事前符号化ブロック及びビデオゲーム実行可能命令を記憶することができる。ゲームストレージ１０２２は、１つ又は複数のビデオゲームの１組又は複数組のユーザに対応する１つ又は複数のゲーム状態を記憶することもできる。
【００６２】
いくつかの実施形態では、ゲームサーバ５１４のうちの１つ又は複数は、等量のプロセッサ時間を各ビデオゲームの各インスタンス及び／又は各ビデオゲームの各組のユーザに提供してよい。他の実施形態では、各ビデオゲームの各インスタンス及び／又は各ビデオゲームの各組のユーザには、対応する各ゲーム状態が未変更の場合にはプロセッサ時間が提供されなくてよい。各ユーザのユーザアクション１０１２が受信されない場合、ゲームサーバ５１４のうちの１つ又は複数は、予め規定された時間間隔が経過した後に、ビデオゲームコンテンツをＳＴＢ１１６０−１（図４）等の各ＳＴＢに提供することができる。ゲームサーバ５１４は、受信されるユーザアクション１０１２に対応する情報に基づく割り込み駆動処理をサポートすることもできる。
【００６３】
ゲームサーバ５１４は、ウィンドウズエクスプローラ（Ｗｉｎｄｏｗｓ  Ｅｘｐｌｏｒｅｒ）、ネットスケープナビゲータ（Ｎｅｔｓｃａｐｅ  Ｎａｖｉｇａｔｏｒ）、又はファイアフォックス（ＦｉｒｅＦｏｘ）からのモジラ（Ｍｏｚｉｌｌａ）等のブラウザアプリケーションを実行して、各ビデオゲームに対応する命令を実行することができる。しかし、ブラウザアプリケーションは、ゲームサーバ５１４内のビデオゲームコンテンツをレンダリングしないように構成することができる。ビデオゲームコンテンツのレンダリングは不必要であり、この理由は、コンテンツはゲームサーバにより表示されず、このようなレンダリングの回避により、各ゲームサーバが、回避されない場合に可能なよりも多くのゲーム状態を保持することが可能になるためである。
【００６４】
ゲームサーバ５１４は、１つ又は複数のプロセッサを有することができる。ビデオゲームは、複数のプロセッサにより並行して実施することができる。ゲームは、マルチスレッドオペレーティングシステムで実施することもできる。
【００６５】
ゲームサーバ５１４のうちの１つ又は複数から１人又は複数の各ユーザに送信されるデータストリーム１０２０は、所定の下限と所定の上限とを範囲とするビット速度又はデータ速度を有することができる。図１１は、時間１１１０の関数としてデータ速度１１１２を有するデータストリーム１０２０の一実施形態を示すブロック図である。データ速度１１１２は時間により変化するが、下限１１１４と上限１１１６との間に保たれる。このような範囲付きデータ速度１１１２は、ビデオゲームシステム４００（図４）等のビデオゲームシステムでの資源のより効率的な割り振り及び全体的な費用効果を提供できるようにする。特に、範囲付きデータ速度１１１２により、１人又は複数のユーザの各データストリームが、システム又はネットワーク１１６（図４）等のネットワークで利用できる資源のかなりの割合を一時的に利用することを防ぐことができる。事前符号化ブロック及びビデオゲームコンテンツがＭＰＥＧ２等のＭＰＥＧ準拠の圧縮を使用して符号化される実施形態では、完全に独立したビデオフレームを表し、より高いデータ速度１１１２に相当するイントラ符号化フレーム又はＩフレームは送信されない。データストリームは、特定の時間間隔中に、別個のイントラ符号化マクロブロックを予測符号化フレーム又はＰフレームに含むことができる。これは、データ速度１１１２を範囲内に保つのを助けることができる。これら実施形態でのＭＰＥＧ規格への対応性を確保するために、予測されるが符号化されないマクロブロック等のヌルフレーム又はトランスポートパケットを、Ｉフレームの代わりに送信することができる。ヌルフレーム又はトランスポートパケットをビデオゲームコンテンツにも追加して、データ速度１１１２が下限１１１４以上であることを保証することができる。例示的な実施形態では、上限１１１６は、Ｉフレームを含む対応するＭＰＥＧデータストリームの０．０３、０．１、０．１６、０．２５、又は０．３３であり得る。データストリーム１０２０は、毎秒３０枚のＰフレームを含むことができる。いくつかの実施形態では、これら技法の利用を通して実現される伝送帯域幅の節減により、既存のビデオゲームシステムに対してゲームエンジン８３２（図１０）当たりのユーザ数又はユーザの組数を２０倍に増大することができる。
【００６６】
Ｐフレームのみが特定の時間間隔中に送信される実施形態では、いくらかの情報がＭＰＥＧ圧縮中に失われたり、いくらかの情報が各Ｐフレームで繰り返されなかったり、ネットワーク障害又は通信障害により送信中に失われる恐れがあるため、誤差伝搬に関連する問題が存在し得る。この問題は、表示されたビデオフレームを既知の「良好」な状態にリセットすることによる誤差修正の形としてＩフレーム等の完全なビデオフレームを送信することにより対処することができる。このような完全なビデオフレームは、定期的に、又は予め規定された時間間隔が経過した後に送信することができる。別法として、イントラ符号化マクロブロックの個々のストライプを定期的に送信することができ、それにより、フレーム全体が予め規定された速度で、又は予め規定された速度以上の速度（例えば、少なくとも毎秒１回）でフレッシュなビデオフレームでリペイントされる。
【００６７】
これより、改良されたビデオゲームシステムを利用する動作方法のいくつかの実施形態に注意を向ける。図１２は、ビデオゲームシステム１２００でのプロセスの一実施形態を示す流れ図である。ユーザアクションに対応する情報をユーザ装置から受信する（１２１０）。前のビデオゲームコンテンツに対する差分情報が求められる（１２１２）。ユーザアクションに対応するゲーム状態の変化が求められる（１２１４）。ビデオゲームコンテンツが、ゲーム状態の変化及び／又は経過時間、例えばビデオゲームコンテンツの前のバージョンが動的に生成されてからの経過時間に従い、１つ又は複数の事前符号化ブロックを使用して動的に生成される（１２１６）。ビデオゲームコンテンツがユーザ装置に送信される（１２１８）。ビデオゲームコンテンツが表示される（１２２０）。流れ図１２００は、より少数の動作又は追加の動作を含んでもよい。さらに、２つ以上の動作を組み合わせてもよく、かつ／又は動作の順序を変更してもよい。
【００６８】
図１３は、ビデオゲームシステム１３００でのプロセスの一実施形態を示す流れ図である。ユーザアクションに対応する情報をユーザから受信する（１３１０）。ユーザアクションに対応する情報がサーバに送信される（１３１２）。ビデオゲームコンテンツをサーバから受け取る（１３１４）。ビデオゲームコンテンツが表示される（１３１６）。流れ図１３００は、より少数の動作又は追加の動作を含んでもよい。さらに、２つ以上の動作を組み合わせてもよく、かつ／又は動作の順序を変更してもよい。
【００６９】
図１４は、ビデオゲームシステム１４００でのプロセスの一実施形態を示す流れ図である。ネットワークを使用して、組になったユーザに対応する複数のユーザ装置からの情報を受信する（１４１０）。各ユーザからの情報は、各ユーザからの１つのユーザアクションに対応する。各組のユーザのビデオゲームでの各ゲーム状態の変化が判断される（１４１２）。ゲーム状態の変化は、各ユーザアクションに対応する。各組のユーザのビデオゲームコンテンツが、各組のユーザが１つのビデオゲームを略同時にプレイするように動的に生成される（１４１４）。ビデオゲームコンテンツが、複数のユーザ装置に送信される（１４１６）。ビデオゲームコンテンツが表示される（１４１８）。流れ図１４００は、より少数の動作又は追加の動作を含んでもよい。さらに、２つ以上の動作を組み合わせてもよく、かつ／又は動作の順序を変更してもよい。
【００７０】
記載のシステム及び方法は、ハードウェア及び／又はソフトウェアで実施することができる。命令は、高水準手続き型言語、オブジェクト指向プログラミング言語、又はアセンブリ言語、又は機械語で実施することができる。プログラミング言語は、コンパイラ型であってもよく、又はインタプリタ型であってもよい。さらに、汎用マイクロプロセッサ、特定用途マイクロプロセッサ、並びに特定用途向け集積回路を利用してよい。
【００７１】
本発明の特定の実施形態の上記説明は、例示及び説明のために提示されたものである。網羅的である、すなわち本発明を開示された厳密な形態に限定する意図はない。むしろ、多くの変更及び変形が上記教示に照らして可能であることを理解されたい。実施形態は、本発明及び意図する特定の用途に適した各種変更を有する各種実施形態を当業者が最良に利用できるように、本発明の原理及びその実際の応用を最良に説明するために選択され、説明されたものである。
【図面の簡単な説明】
【００７２】
【図１】既存のコンテンツ配信システムを示すブロック図である。
【図２】ケーブルテレビシステムの一実施形態を示すブロック図である。
【図３】ケーブルテレビシステムでのサブチャネルの一実施形態を示すブロック図である。
【図４】ケーブルテレビシステムの一実施形態を示すブロック図である。
【図５】ビデオゲームシステムの一実施形態を示すブロック図である。
【図６Ａ】ビデオゲームシステムの一実施形態を示すブロック図である。
【図６Ｂ】ビデオゲームシステムの一実施形態を示すブロック図である。
【図７】ビデオゲームシステムの一実施形態を示すブロック図である。
【図８】ビデオゲームシステムの一実施形態を示すブロック図である。
【図９】セットトップボックスの一実施形態を示すブロック図である。
【図１０】ビデオゲームシステムの一実施形態を示すブロック図である。
【図１１】時間変化するデータ速度を有するデータストリームの一実施形態を示すブロック図である。
【図１２】ビデオゲームシステムでのプロセスの一実施形態を示す流れ図である。
【図１３】ビデオゲームシステムでのプロセスの一実施形態を示す流れ図である。
【図１４】ビデオゲームシステムでのプロセスの一実施形態を示す流れ図である。
【図１】
0005405819.tif 000002
【図２】
0005405819.tif 000003
【図３】
0005405819.tif 000004
【図４】
0005405819.tif 000005
【図５】
0005405819.tif 000006
【図６Ａ】
0005405819.tif 000007
【図６Ｂ】
0005405819.tif 000008
【図７】
0005405819.tif 000009
【図８】
0005405819.tif 000010
【図９】
0005405819.tif 000011
【図１０】
0005405819.tif 000012
【図１１】
0005405819.tif 000013
【図１２】
0005405819.tif 000014
【図１３】
0005405819.tif 000015
【図１４】
0005405819.tif 000016