(57)【要約】ゲーム装置において共用ゲーム・データ・ファイルとの対話を可能にする方法が提供される。この方法は、共用ゲーム・データ・ファイルに関連する1つまたは複数の動作を実行する論理を設ける段階と、共用ゲーム・データ・ファイル内の第1のゲームに関連するデータが第2のゲームにおける動作に影響を与えるのを可能にする共用ゲーム・データ・ファイルによって、1つまたは複数の動作のうちのある動作をゲーム装置に実行させる論理を設ける段階とを含む。
2006516415.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム装置において共用ゲーム・データ・ファイルとの対話を可能にする方法であって、
共用ゲーム・データ・ファイルに関連する1つまたは複数の動作を実行する論理を設ける段階と、
共用ゲーム・データ・ファイル内の第1のゲームに関連するデータが第2のゲームにおける動作に影響を与えるのを可能にする共用ゲーム・データ・ファイルによって1つまたは複数の動作のうちのある動作をゲーム装置に実行させる論理を設ける段階とを含む、方法。
【請求項２】
1つまたは複数の動作を実行する論理がゲーム媒体上に含まれる、請求項1記載の方法。
【請求項３】
ゲーム媒体が、少なくともCDROM、DVD、携帯電話、およびカートリッジを使用することを含む、請求項2記載の方法。
【請求項４】
共用ゲーム・データ・ファイルが、第1のゲームのゲーム状態データを含む、請求項1記載の方法。
【請求項５】
動作が、第1のゲームのプレーヤーによる前の成績に関する共用ゲーム・データ・ファイルに記憶されているデータを用いて第2のゲームにおけるプログラム・フロー・パスを形成する段階を含む、請求項1記載の方法。
【請求項６】
プログラム・フロー・パスが、前の成績による第2のゲームのレベルにプレーヤーがアクセスするのを可能にする段階を含む、請求項5記載の方法。
【請求項７】
1つまたは複数の動作が非同期動作である、請求項1記載の方法。
【請求項８】
1つまたは複数の動作が、共用ゲーム・データ・ファイルからのデータの読み取りおよび共用ゲーム・データ・ファイルへのデータの書き込みといった読取り動作および書込み動作を含む、請求項1記載の方法。
【請求項９】
ゲーム装置において共用ゲーム・データ・ファイルと対話するための方法であって、
第1のゲーム用の第1のゲーム・アプリケーションにおいて、1つまたは複数の関数のうちの、共用ゲーム・データ・ファイルに関連する動作を実行する論理を含む関数に対する要求を受信する段階と、
ゲーム装置が共用ゲーム・データ・ファイルによって動作を実行するのを可能にする関数にゲーム装置がアクセスできるようにする段階とを含み、共用ゲーム・データ・ファイルは、第1のゲームにおける動作に影響を与えるのに用いられる、共用ゲーム・データ・ファイル内の第2のゲームに関連するデータを含む、方法。
【請求項１０】
1つまたは複数の関数がゲーム媒体上に含まれる、請求項9記載の方法。
【請求項１１】
ゲーム媒体が、CDROM、DVD、携帯電話、およびカートリッジのうちの少なくとも1つを含む、請求項10記載の方法。
【請求項１２】
共用ゲーム・データ・ファイルは、第1のゲームのゲーム状態データを含む、請求項9記載の方法。
【請求項１３】
ゲーム・アプリケーションに関連付けされ、動作に影響を与えるのに用いるべきデータを判定するのには使用できないゲームIDを、ゲーム装置に与える段階、をさらに含む、請求項9記載の方法。
【請求項１４】
動作が、第1のゲームのプレーヤーによる前の成績に関する共用ゲーム・データ・ファイルに記憶されているデータを用いてゲームにおけるプログラム・フロー・パスを形成する段階を含む、請求項9記載の方法。
【請求項１５】
プログラム・フロー・パスが、前の成績によるゲームのレベルにプレーヤーがアクセスするのを可能にする段階を含む、請求項14記載の方法。
【請求項１６】
1つまたは複数の動作が、共用ゲーム・データ・ファイルからのデータの読み取りおよび共用ゲーム・データ・ファイルへのデータの書き込みといった読取り動作および書込み動作を含む、請求項9記載の方法。
【請求項１７】
ゲーム装置において共用ゲーム・データ・ファイルを使用する方法であって、
各関数が共用ゲーム・データ・ファイルに関連する動作を実行する論理を含む1つまたは複数の関数を、ゲーム装置における第1のゲーム用のゲーム・アプリケーションから読み取る段階と、
共用ゲーム・データ・ファイルによって1つまたは複数の動作を実行する段階とを含み、1つまたは複数の動作は、第1のゲーム用の共用ゲーム・データ・ファイルからデータを読み取るかまたはこの共用ゲーム・データ・ファイルにデータを書き込む段階を含み、共用ゲーム・データ・ファイルは、第2のゲームによって書き込まれたデータをすでに含んでいる、方法。
【請求項１８】
動作を実行する段階が、第2のゲームについて記憶されているデータを読み取る段階を含み、読み取られたデータは、第1のゲームにおける動作に影響を与えるのに用いられる、請求項17記載の方法。
【請求項１９】
ゲーム・アプリケーションからのゲームIDを判定する段階と、
ゲームIDを用いて、共用ゲーム・データ・ファイルに記憶されているどのデータを使用すべきかを判定する段階とをさらに含む、請求項17記載の方法。
【請求項２０】
ユーザーIDを判定する段階と、
ユーザーIDを用いて、共用ゲーム・データ・ファイルに記憶されているどのデータを使用すべきかを判定する段階とをさらに含む、請求項17記載の方法。
【請求項２１】
1つまたは複数の動作が、第1または第2のゲーム用の共用ゲーム・データ・ファイルからのデータの読み取りおよび共用ゲーム・データ・ファイルへのデータの書き込みといった読取り動作および書込み動作を含む、請求項17記載の方法。
【請求項２２】
共用ゲーム・データ・ファイルを含むゲーム装置と対話するゲームに関連するゲーム・アプリケーションであって、
共用ゲーム・データ・ファイルを用いて動作を実行するのに使用できる1つまたは複数の関数を含むゲーム論理と、
1つまたは複数の関数のうちのある関数に対する要求を受信し、ゲーム装置がこの関数を使用し、共用ゲーム・データ・ファイルを用いてこの関数に関連する動作を実行することができるように、ゲーム装置がこの関数にアクセスできるようにする、ゲーム装置とのインターフェースとを含み、共用ゲーム・データ・ファイルは、第2のゲームにおける動作に影響を与えるのに用いられる第1のゲームのデータを含む、ゲーム・アプリケーション。
【請求項２３】
ゲーム装置に対してゲーム・アプリケーションを識別するゲームIDをさらに含む、請求項22記載のゲーム・アプリケーション。
【請求項２４】
ゲーム・アプリケーションが、共用ゲーム・データ・ファイルのデータを用いてゲームにおけるゲーム・フローに影響を与える論理を含む、請求項22記載のゲーム・アプリケーション。
【請求項２５】
ゲーム・フローが、ゲームにおける1つまたは複数のレベルを含む、請求項24記載のゲーム・アプリケーション。
【請求項２６】
共用ゲーム・データ・ファイルが第1のゲームのゲーム状態データを含む、請求項22記載のゲーム・アプリケーション。
【請求項２７】
共用ゲーム・データ・ファイルにデータを記憶する際または共用ゲーム・データ・ファイル内のデータにアクセスする際に使用できるタグを供給するように構成されたタグ・ハンドラーをさらに含む、請求項22記載のゲーム・アプリケーション。
【請求項２８】
共用ゲーム・データ・ファイルにデータを記憶する際または共用ゲーム・データ・ファイル内のデータにアクセスする際に使用できるチェックサム・サービスを行うように構成されたチェックサム・ハンドラーをさらに含む、請求項22記載のゲーム・アプリケーション。
【請求項２９】
共用ゲーム・データ・ファイルにデータを記憶する際または共用ゲーム・データ・ファイル内のデータにアクセスする際に使用できる暗号化サービスを行うように構成された暗号化ハンドラーをさらに含む、請求項22記載のゲーム・アプリケーション。
【請求項３０】
ゲーム・アプリケーションおよびゲーム装置との間で共用ゲーム・データ・ファイルに基づく通信を行うように構成されたファイル・システムI/Oをさらに含む、請求項22記載のゲーム・アプリケーション。
【請求項３１】
ゲーム装置とゲーム・アプリケーションとの間で通信を行うように構成されたファイル・システムI/Oをさらに含む、請求項22記載のゲーム・アプリケーション。
【請求項３２】
ゲーム装置に含まれる共用ゲーム・データ・ファイルであって、
第1のゲームに関連付けされ、第1のゲームに関連するゲーム論理を用いて共用ゲーム・データ・ファイルに書き込まれた第1のデータと、
第2のゲームに関連付けされ、第2のゲームに関連するゲーム論理を用いて共用ゲーム・データ・ファイルに書き込まれた第2のデータとを含み、
第1のゲームに関連する第1のデータは、第2のゲームにおける動作に影響を与えるように第2のゲームによって使用され、第2のゲームに関連する第2のデータは、第2のゲームにおける動作に影響を与えるように第1のゲームによって使用される共用ゲーム・データ・ファイル。
【請求項３３】
第1および第2のデータがそれぞれ、1人または複数のユーザー用のデータを含む、請求項32記載の共用ゲーム・データ・ファイル。
【請求項３４】
第1および第2のデータが、それぞれ第1および第2のゲームのユーザーによる成績に関するデータを含む、請求項32記載の共用ゲーム・データ・ファイル。
【請求項３５】
共用ゲーム・データ・ファイルが、第1のゲームおよび第2のゲームのゲーム状態データを含む、請求項32記載の共用ゲーム・データ・ファイル。
【請求項３６】
第1のデータが、第1のゲームに関連する第1の製品ID（PID）を含み、第2のデータが、第2のゲームに関連する第2のPIDを含み、第1のPIDは第1のデータを識別するのに用いられ、第2のPIDは第2のデータを識別するのに用いられる、請求項32記載の共用ゲーム・データ・ファイル。
【請求項３７】
第1および第2のゲーム・データが索引に記憶される、請求項32記載の共用ゲーム・データ・ファイル。
【請求項３８】
内蔵ゲームが、対応するゲーム媒体がゲーム・システムと電子的に通信する際にユーザーと対話できるように動作させるゲーム・システムにおいて、持続する共用ゲーム状態を生成する方法であって、
ゲーム・システムにおける第1のゲーム用のゲーム記憶装置の外部にデータを共用ゲーム状態として記憶し、第1のゲームがもはやプレーされなくなった後でも共用ゲーム状態が持続するようにする段階と、
第2のゲームを動作させる際に、第1のゲームによって作成された部分を含む共用ゲーム状態を用いて、第2のゲームによる動作に影響を与える段階とを含む方法。
【請求項３９】
第1のゲーム以外の第2のゲームまたは第3のゲーム中に共用ゲーム状態を修正する段階をさらに含む、請求項38記載の方法。
【請求項４０】
ゲーム媒体がCDROMまたはDVDであり、ゲーム媒体は、CDROMまたはDVDがゲーム・システムのCDROM読取り装置またはDVD読取り装置内に位置しているためゲーム・システムと電子的に通信する、請求項38記載の方法。
【請求項４１】
ゲーム状態を記憶する段階が、共用ゲーム状態を記憶するゲームのプレーヤーの成績に関するデータを記録する段階を含む、請求項38記載の方法。
【請求項４２】
成績がスポーツのゲームにおける結果に関係しており、かつ共用ゲーム状態がスポーツのゲームにおける生成を反映する、請求項41記載の方法。
【請求項４３】
成績には、経過ゲーム・プレー時間、非ゲーム・プレー時間、完了したスポーツ競技のスコア、達成された競争認識のレベルが含まれる、請求項42記載の方法。
【請求項４４】
内蔵ゲームが、対応するゲーム媒体がゲーム・システムと電子的に通信する際にユーザーと対話できるように動作させるゲーム・システムにおいて、複数のゲームに対してそれぞれの異なる成績を有するプレーヤーに様々なゲームを経験させる方法であって、
第1のゲームを実行する際に、第1のゲームに関するプレーヤーの成績の表示を共用ゲーム状態データセットに記憶する段階と、
第2のゲームを実行する際に、第2のゲームに関するプレーヤーの成績の表示を共用ゲーム状態データセットに記憶する段階と、
第1のゲームを実行する際に、第1のゲーム以外のゲームの少なくとも1つの成績を含む共用ゲーム状態データセットの少なくとも一部を、第1のゲームを実行するプロセッサからアクセスできるメモリに読み込む段階と、
第1のゲームを実行する際に、共用ゲーム状態の少なくとも一部に基づく複数のプログラム・フロー・パスからプログラム・フロー・パスを決定する段階とを含む、方法。
【請求項４５】
プログラム・フロー・パスを決定する段階が、複数のゲーム・レベルのうちのどのレベルからゲームを始めるかを決定する段階であり、このゲーム・レベルは、より低いレベルから始まるプレーヤーより多くの成績を有するプレーヤーに対して、より高いレベルである、請求項44記載の方法。
【請求項４６】
十分な成績を有することを共用ゲーム状態に反映しているプレーヤーに対して、十分な成績を有さないことを共用ゲーム状態に反映しているプレーヤーには与えられない機能を与える段階をさらに含む、請求項44記載の方法。
【請求項４７】
十分な成績を有することを共用ゲーム状態に反映しているプレーヤーに対して、十分な成績を有さないことを共用ゲーム状態に反映しているプレーヤーには与えられない挑戦権を与える段階をさらに含む、請求項44記載の方法。
【請求項４８】
十分な成績を有することを共用ゲーム状態に反映しているプレーヤーに対して、十分な成績を有さないことを共用ゲーム状態に反映しているプレーヤーには与えられない賞またはボーナスを与える段階をさらに含む、請求項44記載の方法。
【請求項４９】
プレーヤーが、ゲーム・コードを実行することによって一度に1つのゲームをプレーし、ゲームをプレーする際に、ゲームにおいて指摘されたタスクを完了する、ゲーム内蔵ゲームを実行する装置であって、
あるゲームに関連付けされ、かつそのゲームに固有の装置である、複数のゲーム用のゲーム状態記憶装置と、
複数のゲームのうちの少なくとも各ゲームが、現在プレーされているゲームにおいて完了した指摘されたタスクを反映するように共用ゲーム状態の読み取り書き込みを行うことができる、複数のゲーム用の共用ゲーム状態記憶装置と、
以前に現在のゲーム以外のゲームを実行することによって作成された共用ゲーム状態の少なくとも一部を含む共用ゲーム状態を読み取り、読み取った共用ゲーム状態に基づいてゲーム・フローを分岐させる、現在のゲームのゲーム論理とを含む装置。
【請求項５０】
共用ゲーム状態を読み取るゲーム論理は、装置に固有であり、複数のゲームおよび複数のゲーム以外のゲームと一緒に使用可能である記憶デバイスに対して読取りおよび書込みを行う関数とのアプリケーション・プログラミング・インターフェースを含む、請求項49記載の装置。
【請求項５１】
共用ゲーム状態を管理する共用ゲーム状態管理論理と、
ゲーム・コードで実現され、共用ゲーム状態管理論理では実現されないより低いレベルの関数を実行するように共用ゲーム状態管理論理のフックを供給するコールバック開始論理とをさらに含む、請求項49記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
本発明は、概してビデオ・ゲームに関し、特にそれぞれの異なるゲーム・タイトル間でゲーム状態を共用することに関する。なお本出願は、2002年12月20日に出願され、参照として本明細書に全体的に組み入れられる、「Using Shared Files In A Game Console Or Computer For Cross-Game State Sharing」 (Atty. Docket No. 019491-008400US)という名称の米国特許仮出願第60/435,490号に対する優先権を主張する。
【背景技術】
【０００２】
ビデオ・ゲームでは一般に、ゲーム状態を保存することができる。たとえば、プレーヤーがビデオ・ゲームを一旦オフにし、後でゲームに戻ってゲーム内の同じ場所から再開することを望んでいる場合、プレーヤーはゲーム状態を保存することができる。保存されるゲーム状態は通常、ゲームのプログラマによって決定され、現在のプレー時間、現在のレベル、現在の位置、プレーヤーの能力、プレーヤーの過去の成績（たとえば、プレーヤーはすでに特定のタスクを解決している）、およびプレーヤーの取得物（ポイント、インプリメント、値など）によって決定される。レジスタの現在の値やゲームによって使用されるRAM位置のような保存されない他のゲーム状態があるが、一般に、プログラマは、保存時または保存の直前のゲームの状態が保存されたという認識をプレーヤーに与えるのに十分な重要な変数をゲーム状態に含める。
【０００３】
「ゲームを保存する」とは言っても、ゲーム・プログラム事態を保存する必要はなく、ゲームの状態が保存されることを理解されたい。通常ゲーム・プログラムは、ゲーム・カートリッジ、CDROM（コンパクト・ディスク−読取り専用メモリ）、DVD（デジタル・バーサティル・ディスク）などの非揮発性読取り専用形態でプレーヤーに与えられ、そのため、保存する必要がない。本明細書では、語「ゲーム媒体」は、形式にかかわらずゲーム・プログラムが与えられる媒体を指す。通常、ゲーム・プログラムの一部または全体は、ゲーム媒体から高速RAMおよびCPUなどの処理ユニットにロードされ、少なくとも一部がゲーム媒体自体ではなくRAMから与えられるゲーム・プログラム命令に従って動作する。しかし、記憶装置を効率的に使用し、ゲームの使用をゲーム媒体を所有しているプレーヤーに制限するために、通常一度に1つのゲームしか実行できず、しかもゲーム媒体を処理ユニットに結合したときにしか実行できない。
【０００４】
ビデオ・ゲームをプレーするための一般的なプラットフォームはゲーム・コンソールである。ゲーム・コンソールは、ゲームをプレーするのに適した入出力を含むコンピュータであり、ゲーム・プログラムを含むある記憶素子に挿入するかまたは取り付けるかあるいは接続するための装置と、ゲーム・コンソールによって様々な時間にそれぞれの異なるゲームをプレーできるように記憶素子を切り換えるユーザーの能力とを含む。ゲーム・コンソールは、複数のゲーム・コンソールが相互に通信するのを可能にするハードウェアを含んでよい。
【０００５】
普及しているゲーム・コンソールには、Microsoft Corporationから販売されているXbox(商標)コンソール、Sonyから販売されているSony Playstation(商標)2コンソール、Nintendo Corporationから販売されているNintendo Game Cube(商標)(NCG)コンソールが含まれる。汎用コンピュータ、携帯電話、および他のゲーム装置を用いて、このようなプラットフォームをサポートするビデオ・ゲームをプレーすることもできる。特に明示しないかぎり、語「ゲーム・コンソール」は、パーソナル・コンピュータもしくはその他の汎用コンピュータまたはコンピューティング装置がゲーム・プログラムを実行するのに用いられるとき、このようなコンピュータまたは装置まで広げることができることを理解されたい。
【０００６】
典型的なゲームは非揮発性の読取り専用媒体上に設けられるので、ゲーム状態をこのようなゲーム媒体上に保存することはできない。ゲーム状態に対処するために、コンソールは一般に、あるゲーム書込み可能記憶装置を備えている。コンソールによっては、この書込み可能記憶装置は、プレーヤーがゲーム状態、および場合によってはその他のデータを記憶するために挿入するメモリ・カードの形をしている。他のコンソールでは、ハード・ドライブなどの固定内部記憶装置が設けられている。
【０００７】
典型的なビジネス構成では、ある会社がゲーム・コンソールを設計し、製造し、販売し、このようなコンソール上で動作できるゲームが他の会社によって販売されている。ビデオ・ゲームを開発し、配布し、販売する多数のゲーム開発者がある。ゲームを開発する多数の独立した開発者にもかかわらず個々のゲームのデータを保護するために、コンソールは通常、それぞれの異なるゲーム・プログラムの固有のコードを割り当てるかまたは識別し、それぞれの異なるゲームに別個の記憶域を与える。たとえば、「Racing Game 2004」という名称のレーシング・ゲームに「R023」というゲームIDを割り当て、一方、「Football Franchising 2004」という名称のフットボール戦略ゲームには「F011」というゲームIDを割り当てることができる。ゲーム・プログラムは、ゲーム状態を記憶するとき、記憶のためのゲーム・コンソール・ルーチンを呼び出し、そのゲームIDおよび記憶すべきゲーム状態データを与えることができる。ゲーム・プログラムは、その後ゲーム状態を復元したいとき、ゲーム状態データを読み取りそのゲームIDを与えるゲーム・コンソール・ルーチンを呼び出すことができる。
【０００８】
ある開発者のゲームが他の開発者のゲームに悪影響を与えたり、共通の開発者のゲーム同士が悪影響を与え合ったりしないように、ゲーム・コンソール製造業者は通常、ゲーム・プログラムがゲーム・コンソール上で動作できるようにする前にゲーム・プログラムを試験または証明し、そのように試験および／または証明された各製品にゲームIDを与えている。各製品は通常、他の製品のゲームIDに対して一意になるようにコンソール製造業者から与えられるかまたは何らかの方法で生成されるそれぞれの異なるゲームIDを有する。本明細書では、「タイトル」は、特定の開発者による特定のゲームを指し、「製品」は特定のゲームを指す。たとえば、「Madden NFL 2003」(商標)は、Electronic Arts of Redwood City, Californiaから提供されているタイトルであり、このタイトルは、Xbox(商標)の「Madden NFL 2003」(商標)ゲームやPlaystation 2(商標)の「Madden NFL 2003」(商標)のようないくつかの製品で具現化することができる。ゲーム・タイトルの様々なバージョンは通常、それぞれの異なるタイトルとみなされる。たとえば、「Madden NFL 2003」(商標)タイトルと「Madden NFL 2004」(商標)タイトルは異なるタイトルである。
【０００９】
いくつかのゲーム・コンソールは、ゲーム・プログラムがどんなデータにアクセスできるかを制限せず、したがって、場合によっては、ゲーム・プログラムは、他のゲームによって記憶されたゲーム・コンソール記憶域からデータを読取ることができる。しかし、多くのゲーム・コンソールは、これを防止するか、または読取り時にゲーム・プログラムによって作成されない選択されたデータセットの読取りのみを可能にしている。
【００１０】
ゲーム状態をコンパートメント化することによって、様々な開発者が信頼できるゲーム・プログラムを開発できるが、このようなコンパートメント化は、ゲームが複数のゲームにわたる状態を使用するのを妨げる。
【発明の開示】
【００１１】
発明の概要
本発明の態様は概して、ゲーム装置において共用ゲーム・データを使用することに関する。
【００１２】
一態様では、ゲーム装置において共用ゲーム・データ・ファイルとの対話を可能にする方法が提供される。この方法は、共用ゲーム・データ・ファイルに関連する1つまたは複数の動作を実行する論理を設ける段階と、共用ゲーム・データ・ファイル内の第1のゲームに関連するデータが第2のゲームにおける動作に影響を与えるのを可能にする共用ゲーム・データ・ファイルによって1つまたは複数の動作のうちのある動作をゲーム装置に実行させる論理を設ける段階とを含む。
【００１３】
他の態様では、共用ゲーム・データ・ファイルを含むゲーム装置と対話するゲームに関連するゲーム・アプリケーションが提供される。ゲーム・アプリケーションは、共用ゲーム・データ・ファイルを用いて動作を実行するのに使用できる1つまたは複数の関数を含むゲーム論理と、1つまたは複数の関数のうちのある関数に対する要求を受信し、ゲーム装置がこの関数を使用し、共用ゲーム・データ・ファイルを用いてこの関数に関連する動作を実行することができるように、ゲーム装置がこの関数にアクセスできるようにする、ゲーム装置とのインターフェースとを含み、共用ゲーム・データ・ファイルは、第2のゲームにおける動作に影響を与えるのに用いられる第1のゲームのデータを含む。
【００１４】
他の態様では、ゲーム装置に含まれる共用ゲーム・データ・ファイルが提供される。共用ゲーム・データ・ファイルは、第1のゲームに関連付けされ、第1のゲームに関連するゲーム論理を用いて共用ゲーム・データ・ファイルに書き込まれた第1のデータと、第2のゲームに関連付けされ、第2のゲームに関連するゲーム論理を用いて共用ゲーム・データ・ファイルに書き込まれた第2のデータとを含み、第1のゲームに関連する第1のデータは、第2のゲームにおける動作に影響を与えるように第2のゲームによって使用され、第2のゲームに関連する第2のデータは、第2のゲームにおける動作に影響を与えるように第1のゲームによって使用される。
【００１５】
本発明の主要な利点については、明細書の残りの部分および添付の図面に関してさらに理解することができる。
【００１６】
発明の詳細な説明
図1は、本発明の一態様によるユーザーに1つまたは複数のゲームを提供するゲーム・システム10を示している。システム10は、1つまたは複数のゲーム媒体12（ゲームA、ゲームB、ゲームC）、ゲーム装置14、およびディスプレイ16を含んでいる。
【００１７】
1つまたは複数のゲーム媒体12は、ユーザーにゲームを提供するようにゲーム装置14によって使用できるあらゆるゲーム・アプリケーションを含んでいる。各ゲーム媒体12は、ゲームA、ゲームB、ゲームCとして示されるゲームを実現する論理を含んでいる。一態様では、ゲーム装置14によって与えられるゲームは電子ビデオ・ゲームである。ゲームはそれぞれ、CDROM、デジタル・バーサティル・ディスク（DVD）、ゲーム・カートリッジ、任意の記憶媒体などの媒体上に個々に記憶されている。ゲームAなどのゲームは、ゲーム装置14に挿入または結合されるか、あるいはゲーム装置14と通信し、したがって、ゲーム装置14は、ゲーム媒体12上にあるゲーム・アプリケーションを読み取ることができる。
【００１８】
ゲーム装置14は、CPUおよびデータ記憶装置を含むコンピューティング装置である。ゲーム装置14は、ゲーム装置14が1つまたは複数のゲーム媒体12上に含まれていないゲームを実現できるようにネットワークに接続することができる。したがって、ゲームA、ゲームB、およびゲームCは、ネットワークを通してアクセスすることができ、ゲーム媒体12上に個々に記憶することはできない。ゲーム媒体12上のゲーム・アプリケーションによって実現されるゲームは、ディスプレイ16上に表示される。ゲーム・アプリケーションは、ユーザーがプレーできるゲームを実現するためにゲーム装置14が使用するソフトウェア・コードを含むものと理解されよう。ユーザーは、ユーザー入出力（I/O）装置を通してゲーム・アプリケーションおよびゲーム装置14と対話する。
【００１９】
図2は、本発明によるゲーム装置14の態様を示している。当業者にはゲーム装置14の他の変形態様が理解できることを理解されたい。図示のように、ゲーム装置14は、ゲーム装置14の他の構成要素と対話すると共にゲーム装置14の外部構成要素と対話する処理ユニット20を含んでいる。ゲーム媒体12と通信するゲーム媒体読取り装置22が含まれている。ゲーム媒体読取り装置22は、CDROM、DVDを読み取るCDROMユニットもしくはDVDユニット、またはゲーム媒体12からデータを受信しかつゲーム媒体12からデータを読み取る他の任意の読取り装置であってよい。
【００２０】
ゲーム装置14は、I/O 32、ユーザーI/O 36、ディスプレイI/O 38、ネットワークI/O 40などの入出力を動作可能にする様々な構成要素も含んでいる。I/O 32は記憶装置24と対話し、かつ装置28を通して取外し可能な記憶媒体26と対話し、ゲーム装置14用の記憶装置を実現する。処理ユニット20は、I/O 32を通じて通信し、ゲーム状態データや任意の共用データ・ファイルなどのデータを記憶する。ゲーム装置14は、記憶装置24および取外し可能な記憶媒体26だけでなく、ランダム・アクセス・メモリ（RAM）34も含んでいる。RAM 34は、ゲームをプレーしているときのように、頻繁にアクセスされるデータに使用することができる。
【００２１】
ユーザーI/O 36は、処理ユニット20とゲーム・コントローラなどのユーザー装置との間でコマンドを送受信するのに用いられる。ディスプレイI/O 38は、プレー中のゲームからの画像を表示するのに用いられる入出力関数を与える。ネットワークI/O 40は、ネットワーク用の入出力関数に用いられる。ネットワークI/O 40は、ゲームをオンラインでプレーしているかゲームにオンラインでアクセスしている場合に使用することができる。
【００２２】
ゲーム装置14は、クロック42、フラッシュ・メモリ44、読取り専用（ROM）46、その他の構成要素などのゲームと一緒に使用できる他の特徴を含んでもよい。ゲーム装置14に他の構成要素を設けることができ、かつ当業者にはゲーム装置14の他の変形態様が理解されることが理解されよう。
【００２３】
ゲーム装置14がゲーム媒体12を読み取り、ゲームを実現する際、情報をゲーム媒体12から読み取り、RAM 34などのメモリ装置に記憶することができる。さらに、記憶装置24、ROM 46、ネットワーク（図示せず）におけるサーバ、または取外し可能な記憶媒体26からデータを読み取り、RAM 34に記憶することができる。データはRAM 34に存在すると記載されているが、データをRAM 34に記憶する必要がなく、処理ユニット20からアクセスできる他のメモリに記憶するか、またはゲーム媒体12や記憶装置24のようないくつかの媒体間に分散できることが理解されよう。
【００２４】
図3は、本発明の一態様によるゲームを実現するようにRAM 34に記憶できるデータの例を示している。たとえば、ゲーム・コード60、ゲーム変数62、ゲーム装置データ64、およびその他のデータをゲーム媒体12からダウンロードしRAM 34に記憶することができる。当業者には、ゲーム装置14がゲームを実現するのを可能にする他のデータをRAM 34に記憶できることが理解されよう。
【００２５】
ゲーム・コード60は、ゲームを実現するのに用いられるゲーム媒体12上に存在する任意の論理であってよい。ゲーム・コード60は、ゲーム論理70、ライブラリ関数72、およびファイルI/O関数74を含む。ゲーム論理70は、ゲームのあらゆる関数を提供するのに用いられる。ライブラリ関数72は、ゲームを実現するのに用いられるあらゆる関数を含む。ファイルI/O関数74は、入出力関数を実行するのに処理ユニット20によって使用される。
【００２６】
ゲーム変数62は、ゲームに特有の変数であり、様々なユーザーにゲームの変形態様を提供するように処理ユニット20によって使用される。各変数は、ゲーム装置14が、ゲームをプレーするユーザーによる処置に基づいてゲームの変形態様を実現するのを可能にする。
【００２７】
ゲーム装置データ64は、ゲーム・コード60が設計されたゲーム・コンソールに固有のデータである。たとえば、ゲーム・コード60の様々な変形態様を、それぞれの異なるゲーム装置14によってサポートされるそれぞれの異なるプラットフォーム向けに設計することができる。特に特定のゲーム装置14用の特定のプラットフォーム上でゲーム・コード60を動作させるのに必要なデータをゲーム装置データ64に含めることができる。他のデータ66は、ゲームに使用される任意の他のデータであってよい。
【００２８】
ゲーム媒体12上に存在するゲームをゲーム装置14上でプレーする際、ゲームの状態およびゲームの他の任意の関連局面に関するデータを生成することができる。ゲーム状態データは次いで、記憶装置24、取外し可能な記憶媒体26、RAM 34、ゲーム装置14からアクセスできる他の任意の記憶媒体などの記憶装置に記憶される。ゲーム状態データは次いで、ユーザーが最後にゲームをプレーしその状態を保存したときと同じ状態のゲームを実現するようにゲーム装置14によって別の時間に使用することができる。たとえば、ゲーム状態データは、ユーザーが、ユーザーが完了したのと同じレベルで続行するのを可能にするデータ、ユーザーが得たある成績に関連するデータなどを含んでよい。ゲーム状態データが必ずしも、ゲームが最後に停止された場所とまったく同じ場所からゲームを開始せず、ゲームが最後に停止されたかまたはその状態が保存されたときに対するあるレベルでまたはある時間にゲームを開始できることに留意されたい。
【００２９】
ゲーム状態データが記憶されるだけでなく、共用ゲーム状態データも記憶することができる。共用ゲーム状態データは、複数のゲームについてゲーム・コード60によって読み取られかつ書き込むことのできる共用ゲーム状態ファイルに記憶される。共用ゲーム状態ファイルに存在するデータは、第1のゲームが第2のゲームからの共用データを使用するゲームを実現できるようにゲーム・コード60によって使用することができ、この場合、第2のゲームから得た共用データは第1のゲームにおける動作に影響を与える。
【００３０】
図4は、本発明の一態様によるゲーム・コードと共用ゲーム状態ファイル402との対話を示す概略ブロック図400を示している。図示のように、図4は、第1のゲーム・コード404、第2のゲーム・コード406、および第3のゲーム・コード408を含んでいる。ゲーム・コード404、406、および408はそれぞれ、異なるゲームに対応している。たとえば、ゲーム・コード404はレーシング2004ゲームに対応し、ゲーム・コード406はフットボール2004ゲームに対応し、ゲーム・コード408は同じフットボール・ゲームであるがゲームの2005バージョンに対応する。ゲーム・コード404、406、および408はそれぞれ、異なるゲーム媒体12上に存在する。さらに、ゲーム・コードの各部分をRAM 34に読み込むことができる。各ゲーム・コード404、406、および408は、ゲームを一意に識別するのに用いることのできる製品I.D. （PID）を含んでいる。たとえば、ゲーム・コード404のPIDは「Racing 2004」であり、ゲーム・コード406のPIDは「Football 2004」であり、ゲーム・コード408のPIDは「Football 2005」である。これらのPIDが例示的な目的で使用されており、PIDを数、文字、32ビットの整数のような他の表現で表現できることを理解されたい。
【００３１】
必要に応じて、ゲーム装置14とゲーム・コード404、406、および408は対話し、記憶装置24に記憶する必要のあるデータを与える。たとえば、ゲーム・コード404、406、または408は、ゲーム装置インターフェース401を通してゲーム装置14によって読み取られる。一態様では、各ゲーム・コード404、406、および408は、記憶装置24内の各ゲーム・コードに固有のゲーム状態データを含む固有のファイルを有している。ゲーム状態データは記憶装置24に記憶されているが、RAM 34、取外し可能な記憶媒体26、ネットワークにおけるサーバのような任意の媒体にゲーム状態データを記憶できることが理解されよう。図示のように、ゲーム・コード404はゲーム状態ファイル410に関連付けされ、ゲーム・コード406はゲーム状態ファイル412に関連付けされ、ゲーム・コード408はゲーム状態ファイル414に関連付けされている。各ゲーム状態ファイル410、412、および414はその対応するゲーム・コードPIDによって一意に識別される。
【００３２】
一態様では、各ゲーム・コード404、406、または408はそれぞれの異なる時間に記憶装置24内の各ファイルにアクセスすることができる。たとえば、データがアクセスされ、かつ／またはゲーム状態ファイル410および／もしくは共用ゲーム状態ファイル402に記憶されるレーシング2004ゲームを、ユーザーによってプレーすることができる。次いで、ユーザーは、データがアクセスされ、かつ／またはゲーム状態ファイル412および／もしくは共用ゲーム状態ファイル402に記憶されるフットボール2004ゲームをプレーすることができる。フットボール2004ゲームをプレーする間、レーシング2004ゲームのデータを読み取り、フットボール2004ゲームによって使用することができる。
【００３３】
ゲーム装置14は、個々のゲーム状態データを記憶するだけでなく、共用ゲーム状態データを共用ゲーム状態ファイル402に記憶する。共用ゲーム状態ファイル402に記憶されているデータは、必要に応じて、ゲーム・コード404、ゲーム・コード406、および／またはゲーム・コード408から得たデータを含んでよい。したがって、共用ゲーム状態ファイル402は、それぞれの異なるゲームに関連するデータを記憶するように構成されている。たとえば、レーシング2004ゲーム・アプリケーション、フットボール2004ゲーム・アプリケーション、およびフットボール2005ゲーム・アプリケーションから得たデータを共用ゲーム状態ファイル402に記憶することができる。したがって、複数のゲーム・コードは、ゲームに関連するデータを読み取り、共用ゲーム状態ファイル204に書き込むことができる。ゲーム状態データについてのゲームの様々な変形態様間の適合性を保証するように、共用ゲーム状態ファイル402にバージョン番号を含めてもよい。
【００３４】
ゲームがプレーされる際（たとえば、ゲーム・コード404に関連するゲーム）、ゲーム装置14はディスプレイ16を通してユーザーにゲームを提供するゲーム・コード404を読み取る。ユーザーがゲームをプレーするにつれて、ゲームにおけるある成績に到達することがある。すると、ゲーム装置14は、ゲームのゲーム・コード404と通信し、ゲーム状態ファイル410および共用ゲーム状態ファイル402に記憶する必要のある適切なデータを判定する。たとえば、ユーザーがレーシング2004ゲームであるレベルに達した場合、ゲーム・コード404は成績に対応する成績データを共用ゲーム状態ファイル402に記憶することができる。ゲーム・コード406のような別のゲーム・コードは次に、共用ゲーム状態ファイル402に記憶されたゲーム・コード404に関する成績データを読み取ることができ、この成績データは、ゲーム・コード406に対応するフットボール2004ゲームにおける動作に影響を与えるようにゲーム・コード406によって使用することができる。たとえば、別のゲームである成績が得られた場合、ユーザーにあるロック解除可能な報酬またはパスワードを与えることができる。さらに、共用ゲーム状態ファイル402に別のゲーム・コードによって記憶されるデータに応じてあるレベルまたは特別な機能を実現することができる。フットボール2004をプレーする際、ゲーム・プレーに対応するデータを共用ゲーム状態ファイル402に記憶してもよい。いくつかの態様では、1つのゲームのゲーム状態も維持しているゲーム状態ファイルに共用ゲーム状態も記憶される。この場合、共用ゲーム状態に他のゲームからアクセスすることができ、または他の共用ゲーム状態ファイルが存在してよい。
【００３５】
図5は、本発明の一態様による共用ゲーム状態ファイル402の態様を示している。図示のように、共用ゲーム状態ファイル402はヘッダー・データ504、ゲーム・データ506、ゲーム・データ508、、、ゲーム・データ510、および他のデータ512を含んでいる。
【００３６】
ヘッダー・データ504は、共用ゲーム状態ファイル402を識別するのに用いられる。ヘッダー・データ504は、共用ゲーム状態ファイル402のバージョン番号を含んでもよい。
【００３７】
ゲーム・データ506、508、および510は、様々なゲームについて記憶されているそれぞれの異なるゲーム・データを示している。たとえば、ゲーム・データ506はレーシング2004ゲームのゲーム・データであってよく、ゲーム・データ508は、フットボール2004ゲームのゲーム・データであってよく、ゲーム・データ510は、フットボール2005ゲームのゲーム・データであってよい。一態様では、各ゲームはそのPIDによって識別される。さらに、各ゲーム・データ506、508、および510を、索引に記憶することができ、索引を用いて検索することができる。一態様では、ゲーム・データ506などのゲーム・データを用いて、ゲーム・データ508に関連するゲームのような別のゲームにおける動作に影響を与え、逆に、ゲーム・データ508などのゲーム・データを用いて、ゲーム・データ506に関連するゲームのような別のゲームにおける動作に影響を与える。さらに、ゲーム・データ506、508、および510を任意のゲーム・コードによって用いることができ、任意のゲーム・コードは、ゲーム・データ506、508、510または新しいゲーム・データ・エントリにデータを書き込むことができる。
【００３８】
図6は、本発明による、ゲーム・データ506のような共用ゲーム状態ファイル402内のゲーム・データの一態様を示している。上述のように、共用ゲーム状態ファイル402は、複数のゲーム用のゲーム・データを含んでよい。さらに、個々の各ゲーム・データは、それぞれの異なるユーザー用のゲーム・データを含んでよい。図示のように、ゲーム・データ506は、ユーザー1の共用ゲーム状態データ602、ユーザー2の共用ゲーム状態データ604、ユーザーXの共用ゲーム状態データ606などを含んでいる。共用ゲーム状態ファイル402内のゲーム・データは、ユーザー1、ユーザー2、、、ユーザーXのような様々なユーザーによって分類することができる。一態様では、ユーザー1の共用ゲーム状態データを用いて、ユーザー2のような他のプレーヤーによってプレーされるゲームの動作に影響を与えることができ、逆に、ユーザー2の共用ゲーム状態データを用いて、ユーザー1のような他のプレーヤーによってプレーされるゲームの動作に影響を与えることができる。しかし、たいていの場合、特定のユーザーの共用ゲーム状態データは、その特定のユーザーのみについての他のゲームにおける動作に影響を与えるのに用いられる。
【００３９】
図7は、本発明による、ゲーム・データ506などのゲーム・データの他の態様を示している。図示のように、共用スポーツ・バイオのデータがゲーム・データ506に記憶されている。一態様では、図示のように、共用スポーツ・バイオ・ファイルは各ユーザーごとに記憶することができる。ゲーム・データ506は、ユーザー1の共用スポーツ・バイオ・ファイル702およびユーザー2の共用スポーツ・バイオ・ファイル704を含んでいる。共用スポーツ・バイオ・ファイル702および704は、スポーツ・ゲームとして分類されるあるゲームのデータを含む共用ファイルを示している。さらに、アドベンチャー・ゲームのバイオ、格闘ゲームのバイオのような他のバイオを記憶してもよい。一例では、フットボール・ゲームで全「スーパー・ボール」レベルのようなあるレベルに達した場合、ユーザーおよびゲームに対応するあるデータが共用スポーツ・バイオ・ファイル702および704に記憶される。次いで、ユーザーによって他のスポーツ・ゲームがプレーされると、スポーツ・バイオ・ファイル702または704における成績に対応するデータを読み取り、第2のスポーツ・ゲームにおける動作に影響を与えるのに用いることができる。さらに、第2のスポーツ・ゲームは、第2のスポーツ・ゲームに対応するデータをゲーム・データ506に書き込むことができる。
【００４０】
図8は、本発明の態様による、ゲーム・コード用のインターフェース801とゲーム装置14との対話を示すシステム800を示している。インターフェース801は1つまたは複数の関数802を含んでいる。1つまたは複数の関数802は、共用ゲーム状態ファイル402に対する動作を実行するように処理ユニット20によって使用される動作を含む関数である。インターフェース801は、媒体12に記憶され、場合によってはRAM 34にダウンロードされる、ゲーム・コードなどの論理を含んでいる。
【００４１】
処理ユニット20からインターフェース801が呼び出されると、呼出しに関連する対応する関数802が処理ユニット20に利用可能になり、処理ユニット20は1つまたは複数の関数802における動作を実行する。関数802は、ゲーム・データ506、508、510のようなどのゲーム・データ、および共用ゲーム状態ファイル602、604、606のようなどの共用ゲーム状態ファイルにアクセスすべきか、および実行すべき動作を決定するために処理ユニット20によって使用される論理を含んでよい。たとえば、ユーザー1がインターフェース801によって実現されるゲームを使用している場合、共用ゲーム状態ファイル602はユーザー1に対応するファイルであってよい。ユーザー1がゲームをプレーする際、1つまたは複数の関数802におけるある動作をトリガすることができる。この場合、処理ユニット20は、関数802を読み取り、関数802に存在する論理を用いて、共用ゲーム状態ファイル602に対する動作を実行する。共用ゲーム状態ファイル602を用いて処理ユニット20によって実行される動作は、第1のゲームから得たデータを用いて、ユーザーがプレーしている第2のゲームにおける動作に影響を与えることができる。さらに、この動作は、複数のゲームによって書き込まれたデータがファイル402に存在するときに共用ゲーム状態ファイル402にデータを書き込む動作であってもよい。
【００４２】
図9は、一態様による共用ファイルをサポートするうえで使用できるゲーム・コード60に存在するインフラストラクチャなどのソフトウェア・インフラストラクチャを示している。図示のように、ゲーム・アプリケーション1000、タグ・ハンドラー1005、共用I/Oハンドラー1010、ファイル・システムI/Oハンドラー1015、チェックサム・ハンドラー1020、および暗号化ハンドラー1025などの構成要素が対話する。
【００４３】
特に、共用ファイルにアクセスする場合、インターフェース801の一部であってよいゲーム・アプリケーション1000は、共用ファイルへの書込みが必要であると判定することができる。この書込みは、タグ・ハンドラー1005に渡される「タグ」要素（後述）としてパッケージングされ、タグ・ハンドラー1005は、チェックサム・ハンドラー1020および／または暗号化ハンドラー1025を用いてそれぞれチャックサム・サービスおよび／または暗号化を実行する場合にこれらの構成要素を呼び出すことのできる。したがって、チェックサム・ハンドラー1020は、チェックサムを計算して書込み要求に付加することができ、暗号化ハンドラー1025は書込み要求データを暗号化することができる。タグ・ハンドラー1005は次いで、書込み要求を共用ファイルI/Oハンドラーに渡し、共用ファイルI/Oハンドラーは共用ファイルの構成に対処し、書込み要求をファイル・システムI/Oハンドラー1015に渡す。
【００４４】
一実現態様では、ゲーム設計者がゲーム・アプリケーション1000およびファイル・システムI/Oハンドラー1015を設計し、共用ファイル・インフラストラクチャ設計者がタグ・ハンドラー1005、共用ファイルI/Oハンドラー1010、チェックサム・ハンドラー1020、および暗号化ハンドラー1025を設計し、したがって、ゲーム設計者はこれらの要素に関わる必要がなくなり、共用ファイルインフラストラクチャ設計者は、ゲームが設計されたゲーム装置14に固有のものであってよい特定のゲーム動作や基本ファイルI/Oに関わる必要がなくなる。これをどのように実現するかの一例として、ファイル・システムI/Oハンドラー1015がある関数を実行したいとき、ゲーム・アプリケーション1000からコールバックが供給される。コールバックはある関数にアクセスする。したがって、ゲーム・アプリケーションからのコールバックが使用されるため、様々なゲーム・アプリケーションが、SFIO 1015からの同じ関数要求に対してそれぞれの異なるコールバックを供給することができる。ファイル・システムI/Oハンドラーは、メモリ割当ておよび他の低レベル・タスクを処理する。
【００４５】
チェックサム・ハンドラーの一例は、書き込むべきデータの32ビット・チェックサムを与え（かつファイルから読み取られたデータの32ビット・チェックサムを検証す）るプログラムである。タグ・ハンドラーの一例は、データの各「チャンク」がタグを含むタグ・ベースのフォーマットでデータを読み取り書き込む構成要素である。データが（タグ、データ）の組として記憶される場合、後半のプログラムは共用ファイルを正しく読み取り、読取り装置では理解されないタグを単に無視する。
【００４６】
ゲーム装置14によっては、共用ファイルI/Oにおいて、タイトルが（単一ゲーム・データにアクセスするための）ゲームIDや（共用ゲーム・データにアクセスするための）共用ファイルIDのような複数のゲームIDを有することが必要になる。
【００４７】
実現態様によっては、たいていの関数は非同期関数であり、したがって、開始された後にその関数を呼び出したコードに戻る。周期的に実行されるプロセスが、関数が完全であるかどうかをチェックし判定することができる。SFIOが非同期である場合、SFIOは、一度に1つの動作を実行し、ある動作を開始するのにいくつかの関数を呼び出して（たとえば、SFIO<ACTION>Start()（この場合、<ACTION>は作成、検索、書込みなどである）以下のように実現することができる。呼出し側に対して、各ACTIONは、共用モジュール・レベルの1つのアトミック動作を表すが、各ACTIONは実際には、コールバック・レベルの複数のサブアトミック動作で構成される場合がある。フレームごとにステータス・プロセスSFIOProcess()を呼び出して、すでに要求された動作の実際のステータスを判定することができる。この関数は、要求された動作の進行を追跡し、プロセスが完了したか否か、またはどのプロセスも実行されていないことを示す応答を返すそれ自体の内部状態マシンを有することができる。
【００４８】
タグ・ハンドラー
タグ・ハンドラー1005は、アプリケーション・レイヤーとI/Oレイヤーとの間でデータをフォーマットしフォーマット解除する、プラットフォームおよび製品とは無関係のインターフェースを実現する。このレイヤーは、タグに基づいてデータをパッケージし、データのチャンクをファイルに記憶することができ、あるタグを理解しない読取り装置は、そのようなタグのみのデータを、処理しようとせずにそのままにしておく。この基礎となるファイル・フォーマットの一例としてElectronic Arts' IFFファイル・フォーマットがある。たとえば、データの各チャンクは、1)タグ名、2)サイズ・インジケータ、3)チェックサム、および4)記憶されるデータとして記憶することができる。各ファイルは、各アクセス間にファイルを追跡するために読取りごとにチェックされ書込みごとに修正される固有のファイルIDを有してよい。ファイル・フォーマットの詳細を以下に示す。
【００４９】
ファイル・フォーマット
バイオ・ファイルなどの共用ゲーム状態ファイル用のフォーマットの一例を以下に示す。このフォーマットでは、ファイルは一定サイズであり、一定のフォーマットを含んでいる。あらゆる構造要素の未使用部分には、空のエントリを有効なエントリから区別する初期設定値が充填される。しかし、タグを使用すると、拡張可能であり上位互換性を有するファイル・フォーマットが実現される。タグに連結された意味およびデータが年ごとおよび製品ごとに変わらないかぎり、ファイルに追加的なデータを付加し、過去の製品をサポートしつつ将来の製品に対応することができる。タグは、上述のように、タグ・ハンドラーを使用することによってゲーム論理に対して透過的であってよい。ゲーム論理は、それが理解するタグのデータのみを要求すべきである。共用ゲーム状態ファイルは表1のように構成することができる（タグ自体のオーバヘッド、サイズ、およびチェックサムは示されていない）。
【００５０】
（表１）ファイル・フォーマット
2006516415.tif 000003
【００５１】
表2は、ゲーム状態ファイルを構成し使用する際に用いることのできるいくつかの定数をリストした表である。これらの定数の他の適切な値を本開示から逸脱せずに使用できることを理解されたい。表2および以下の表で使用されているように、「種類」の欄は、定数またはフィールドの種類を指し、それぞれ8ビット、16ビット、および32ビットの符号無し整数を指すUint8、Uint16、Uint32を含む。時間は時間値（過去のある時点からの経過秒数を表す32ビットの数など）を指し、色は色値（1色当たり8ビットのRGBとしての、アルファ無しの24ビット色値など）を指す。
【００５２】
（表２）定数
2006516415.tif 000004
【００５３】
表3、4、および5は、それぞれヘッダーT、製品T、および画像Tのフォーマットの一例を示している。
【００５４】
（表３）ヘッダーTフォーマット
2006516415.tif 000005
【００５５】
（表４）製品Tフォーマット
2006516415.tif 000006
【００５６】
（表５）画像Tフォーマット
2006516415.tif 000007
【００５７】
成績の種類「Accomp」は、さらに表6に示されているように分割することができる。
【００５８】
（表６）Accompフォーマット
2006516415.tif 000008
【００５９】
個々の製品成績アレイは、テキスト文字列として保存される製品当たり最大NUM_ACCOMPLISHMENTS個（たとえば、32個）の成績を有することができる（場合によっては主要な成績と最近の成績についての２つの別々のアレイ）。2つのアレイについては、値に関する上から5つ程度の成績が維持され、一方上から5つを維持するが、最も古い成績は新しい成績で上書きされる。このようにして、「主要な成績」と「最近の成績」の両方を表示することができる。
例
名前=「Madden NFL 2004」
成績バイオ（AccompBio）=0-31
成績テキスト（AccompText）=「8/16/3-主力選手モードでスーパーボウルに勝利」
成績値（AccompValue）=20
成績日付（AccompDate）=8/16/03 11:43:02 pm
【００６０】
個々の製品報酬アレイは、1製品当たり最大NUM_REWARDS個（たとえば、32個）のロック解除可能な報酬を有してよい。このデータは、製品固有のデータであってよく、各製品によってサポートされる必要はない。各ゲームは、それ自体の報酬および基準をセットアップすることができる。例：
名前=「Madden NFL 2004」
報酬バイオ（RewardBio）=0-31
報酬レベル（RewardLevel）=2
報酬非ロック（RewardUnlocked）=偽（FALSE）
【００６１】
報酬非ロックフィールドは、ユーザーに他のゲームで待機している報酬があるかどうかを示す。
【００６２】
製品によっては厳しいメモリ制限があり、成績のテキスト全体をメモリに記憶させない場合もある。このような製品は、このテキストを記憶するのに独自の機構を使用する。これに対処する機構の例として、各製品が、成績文字列に何バイト割り当てるかを指定することが挙げられる。これがデフォルト値未満である場合、テキストは「パックされている」とみなされる。パックされた成績テキストを使用することを選択した製品は、パック解除コールバックも行う。このパック解除コールバックは、パックされたテキストをパック解除されたテキストに変換する。このパック解除コールバックは、メモリ内のデータとカード上のデータを合体しているときに呼び出される（さらにメモリが利用可能であるとき）。この合体は、製品によって「製品データ・ロード」関数が呼び出されたときに必要に応じて自動的に行われる。成績が得られると、製品は、パックされたデータを1つのパラメータとして用いて「成績設定」関数を呼び出す。
【００６３】
共用ゲーム状態ファイルは、複数のゲームに関するプレーヤーの成績およびその他の詳細を表す「ゲーム・プレーヤー・バイオ」などの機能を実行可能にする。したがって、プレーヤーは、あるゲームである成績レベルに達すると、追加的な機能、レベルなどにアクセスすることなどによってプレートと他のゲームとの対話に影響を与えることができる。
【００６４】
共用ゲーム状態をサポートする各ゲームでは、プレーヤーがそのバイオ・ファイルの内容を見ることのできるメニュー項目を与えることができる。これには、リストされている各製品についての、個々の製品に関する成績と全体的なレベル、基本的な製品統計の表示、グローバルEAスポーツ統計、および報酬情報を含めてよい。任意の所与のレベルでは、個々の各製品は独自の特別の報酬をロック解除することを選択することができる。ユーザーが経験を積みより多くのタイトルをプレーするにつれて、バイオ・ファイルに存在する各ゲームにおけるロック解除可能な報酬が与えられる。
【００６５】
ユーザーが初めて成績を得、かつ有効な記憶装置を有すると、ゲームは、バイオ・ファイルを作成するよう求めることができる。保存されたファイルが、このファイルを作成したゲームIDに固有のファイルであり、かつこのゲームIDによってのみアクセスであるゲーム装置14では、共用ゲーム・データ・ファイルにアクセスする（読取り／書込み／修正を行う）際に使用できる「共用」ゲームIDをゲームに含めてよい。最初のタイトルがデータを書き込む際、共用アクセス・ファイルにこの共用ゲームIDがスタンプされる。
【００６６】
バイオが追跡できるそれぞれの異なるゲームの数が制限されている場合、より古いゲームを削除し、全体的なレベル値または経験値をそのままにしておくことができる。
【００６７】
ゲームについて保存される統計の例には、記録された時間数、最後にプレーされた時間、および最近の成績（成績が得られたときに保存されるゲームに依存するテキスト文字列など）が含まれる。現在のゲームが、バイオ・ファイルで参照される前の各ゲームのアイコンを表示するのを可能にするために、共用ファイル内に新しいエントリを追加する各ゲームは、そのゲームを表す画像ファイルも含む。このように、各ゲームは、バイオに存在する可能性のある他のすべてのゲームのアイコンを含む必要はない。
【００６８】
ユーザーに示される画面の例を図10〜11に示す。製品リスト画面は、バイオ・ファイル内の各ゲームから得たすべての統計の組合せである基本的な統計を示す。一態様では、バイオ・ファイルは共用ゲーム状態ファイル402内の情報に対応する。この画面上に表示される情報には、スポーツ・レベル、プレーされるスポーツ・タイトルの数、総スポーツ・ゲーム時間、およびバイオ・ファイル内の各製品のリストが含まれる。
【００６９】
スポーツ・レベルは、プレーされるスポーツ・タイトルの数およびスポーツ・ゲーム時間に基づいて算出される数であってよい。図9に示されているように、共用ゲーム・データ・ファイルとのインターフェースをとる論理を主要なゲーム論理から分離し、様々な開発経路を実現可能にすることができる。この別個の論理は、レベルを算出するための実際の公式を含んでよい。公式の例には、各ゲームが全体的なレベルに5つのレベルを追加することができ、ある時間（5時間など）にわたってゲームをプレーすると、そのゲームによって与えられるレベルが高くなる公式が挙げられる。したがって、ユーザーは総ゲーム時間の25時間にわたってゲームをプレーし、そのゲームのレベル5に到達することができる。この5つのレベルを超えるには、ユーザーは他のゲームをプレーし、その経験を積む必要がある。変形態様によっては、総ゲーム時間は、レベルを決定するが、ゲームに基づいて制限されることはない。このような変形態様では、1つのゲームに対して50時間プレーしたユーザーは別のゲームをプレーする（かつこのゲームを自分のバイオ・ファイルに保存する）までレベル5であり、別のゲームをプレーした時点でレベル10に到達する。好ましくは、より新しいゲーム用のスペースを設けるためにバイオ・ファイルからゲームを削除した場合でも、削除したゲームを通じて達成されたレベルは失われない。バイオに記憶可能なゲームの数が制限されている場合でも、プレーされ記憶された総ゲーム数および総プレー時間数をバイオ・ファイルで追跡することができる。この場合、総プレー時間は、現在バイオ・ファイルにリストされているすべてのゲームについてのプレー時間の輪にならないこともある。
【００７０】
ゲームについて記憶される基本情報には、製品リストとゲームの「ボックス・アート」を含めてよい。ユーザーがディスプレイ内のゲーム・タイトルの1つを強調表示すると、ボックス・アートは、図10に示されているように、ボックス・アート画像1050を示す。このボックス・アートは、ボックス・アートによって表されるゲーム用のゲーム媒体から共用バイオ・ファイルにコピーされ、したがって、他のゲームは、このようなゲームをロードする必要なしにそのロゴを表示することができる。一態様では、ボックス・アート画像1050は、解像度が128x128画素の8ビット画像である。スペースを節約するには、ボックス・アートの一部をバイオ・ファイルから削除するか、またはボックス・アートの一部をロードせずに統計を保存することができる。たとえば、最大で50個のゲーム・エントリがバイオ・ファイルに記憶される場合、ボックス・アートを最も新しい25個のゲームに制限することができる。いくつかの例では、ボックス・アートは記憶されない。エントリを有するがボックス・アートを有さないゲームについて画像を表示する場合、「EA Sports」ロゴなどの汎用画像を表示することができる。
【００７１】
図10に示されているように、あるゲーム上のバイオ・リストが、他のゲームにおいて賞が保留中であることを示し（たとえば、タイトル・リストの右側の星アイコン1060）、したがって、ユーザーに最近プレーされていないゲームに戻りプレーするよう促すことができる。
【００７２】
図11は、本発明の一態様による製品概要画面を示している。この概要情報は、オープン・エンド型であってよく、したがって、タイトル固有の機能やデータは必要とされない。各製品ごとに追跡される重要な統計は、表7に示されているような複数のスポーツを対象としているので、このような統計を選択することができる。
【００７３】
（表７）
2006516415.tif 000009
【００７４】
成績
成績は、各製品が望む任意のものであってよい。各製品は、それ自体の1組の成績と、それをトリガするフックとを実現することができる。ユーザーは、成績を得ると、得られた成績に関するメッセージを受け取り、ユーザーのバイオ・ファイルを更新（保存）することができる。
【００７５】
態様によっては、成績が主要な成績と最近の成績に分割され、この場合、主要な成績は最後のN個の（N=5または他の数）最高ランクの成績である。このような成績は、成績値によって降順に分類する必要がある。最近の成績は、最も新しいM個の（M=27または他のある数）最新の成績である。これらは最新の成績データによって分類する必要がある。
【００７６】
タイトルAに関する成績の例には、表に示されている例が含まれる。
【００７７】
（表８）
2006516415.tif 000010
【００７８】
タイトルBの成績の例には表9に示されている例が含まれる。
【００７９】
（表９）
2006516415.tif 000011
【００８０】
保存およびロード
タイトルがロードされると、タイトルの初期設定コードは、現在フックされているすべての記憶媒体をゲーム装置14まで探索し、最後に保存されたバイオ・ファイル・ファイルをロードする必要がある。バイオ・ファイルが一定の名前を有する場合、ユーザーの記憶媒体には1つのバイオ・ファイルのみが存在する。好ましくは、ファイルが存在しない場合に自動的にファイルが作成されることはない。その代わり、ユーザーが成績を得るか、または手動で「バイオ」メニュー・オプションにアクセスした後に初めてバイオ・ファイルを作成する必要があり、したがって、ユーザーが意図しないときにはバイオ・ファイルは作成されない。
【００８１】
ユーザーが成績を得ると、ゲームはユーザーにプロンプトを出し、バイオ・ファイルの更新も行われるゲームの保存を可能にする必要がある。タイトルが自動保存機能を有する場合、成績が得られた後またはゲームがプレーされるたびに自動保存をトリガすることができる。ゲーム・コードが、バイオ・ファイルをロードしており、成績が得られた後に同じファイルの更新を試みた場合、コードは、ファイルがまだ記憶装置上に存在していることを検証する必要がある。ファイルが存在する場合、ユーザーは、インターフェースの通常の上書きメッセージを用いて、ファイルに上書きするよう促される。ファイルが見つからない場合、バイオ・ファイルを含むメモリ・カードを再挿入するようユーザーに促す必要がある。さらに、チェックサムを用いて、メモリ・カードが取り外されたときのユーザーのバイオ・ファイルを正しく識別することができる。
【００８２】
ゲームの報酬
各タイトルは、それ自体の報酬をセットアップし、報酬の値に基づいて各報酬にレベルを割り当てることができる。ゲームが初めてバイオ・ファイルに書込みを行う際、各報酬を含むアレイを、その報酬をロック解除するのに必要なレベルと一緒に記憶する必要がある。タイトルは、報酬が獲得されたことを検出し、その報酬を実際に与える責任を負う必要がある。ただし、報酬が直ちに与えられるようにブート時にチェックした方がよい。
【００８３】
報酬の例には、表10に示されている例が含まれる。
【００８４】
（表１０）
2006516415.tif 000012
【００８５】
したがって、本発明の各態様は、ゲーム用の複数のゲーム・アプリケーションによって読み取られ書き込まれる共用ゲーム状態ファイルを提供する。次いで、共用ゲーム状態ファイル内のデータは、各ゲームにおける動作に影響を与えるように複数のゲームによって使用される。たとえば、第1のゲームは、第2のゲームのデータを用いて第1のゲームにおける動作に影響を与えることができる。
【００８６】
ハードウェアと制御論理の形で実現されるとソフトウェアとの特定の組合せを用いて本発明を説明したが、ハードウェアとソフトウェアの他の組合せも本発明の範囲内であることが認識されよう。本発明は、ハードウェアのみまたはソフトウェアのみで実現することも、それらの組合せを用いて実現することもできる。
【００８７】
上記の説明は例示的なものであり制限的なものではない。当業者には、本開示を検討したときに本発明の多数の変形態様が明らかになろう。したがって、本発明の範囲は、上記の説明を参照して決定してはならず、その代わりに出願中の特許請求の範囲とその均等物の全範囲とによって決定すべきである。
【図面の簡単な説明】
【００８８】
【図１】本発明の一態様による、ユーザーに1つまたは複数のゲームを提供するゲーム・システムを示す図である。
【図２】本発明によるゲーム装置の態様を示す図である。
【図３】本発明の一態様による、ゲームを実現するためにRAMに記憶することのできるデータの一例を示す図である。
【図４】本発明の一態様による、ゲーム・コードと共用ゲーム状態ファイルとの対話を示す概略ブロック図である。
【図５】本発明の一態様による、共用ゲーム状態ファイルの態様を示す図である。
【図６】本発明による、共用ゲーム状態ファイル内のゲーム・データの態様を示す図である。
【図７】本発明によるゲーム・データの態様を示す図である。
【図８】本発明の一態様による、ゲーム・コード用のインターフェースとゲーム装置との間の対話を示すシステムを示す図である。
【図９】一態様による共用ファイルをサポートするうえで使用できるソフトウェア・インフラストラクチャを示す図である。
【図１０】共用ゲーム状態に関してユーザーに示される画面の例を示す図である。
【図１１】共用ゲーム状態に関してユーザーに示される画面の例を示す図である。
【図１】
2006516415.tif 000013
【図２】
2006516415.tif 000014
【図３】
2006516415.tif 000015
【図４】
2006516415.tif 000016
【図５】
2006516415.tif 000017
【図６】
2006516415.tif 000018
【図７】
2006516415.tif 000019
【図８】
2006516415.tif 000020
【図９】
2006516415.tif 000021
【図１０】
2006516415.tif 000022
【図１１】
2006516415.tif 000023
【国際調査報告】
2006516415.tif 000024
2006516415.tif 000025