まず、本発明の概要を説明する。本発明の実施例として、情報処理システムの一例であるゲームシステムを示す。ゲームシステムでは、ユーザがゲームプレイ中に、ゲームソフトウェアにより予め設定された条件(ミッション)をクリアすると、ゲームソフトウェアより、達成した条件に応じたアイテムが付与される。ミッションは、たとえばレーシングゲームにおいて特別なレースで優勝することや、格闘ゲームにおいて特定の敵キャラクタを倒すことなど、ゲームソフトウェアにおいて適宜設定される。
本実施例において、付与されるアイテムを「トロフィ」と呼ぶ。トロフィの種類は複数存在し、本実施例では、ブロンズ、シルバー、ゴールド、プラチナの4つのグレード(種類)のトロフィを用意する。ゲームソフトウェアは、ブロンズ、シルバー、ゴールドの3つのグレードに対して、この順に難易度の高いミッションを割り当てる。したがって、ブロンズトロフィには達成しやすいミッションが割り当てられ、またゴールドトロフィには達成が困難なミッションが割り当てられることになる。なおプラチナトロフィは、ゲーム中の個々のミッションには対応せず、たとえばゲームソフトウェアが用意した全てのミッションをクリアすると、システムソフトウェアが、プラチナトロフィをユーザに付与する。
ユーザは、ネットワーク上の達成度管理サーバを介して、自身の獲得トロフィを、他のユーザの獲得トロフィと比較できる。達成度管理サーバは、ユーザの獲得トロフィを管理し、たとえばユーザが複数のゲーム装置でゲームプレイした場合には、それぞれのゲーム装置で獲得したトロフィを集約して、それぞれのゲーム装置におけるトロフィ獲得情報を同期(ファイル同期)させる。またトロフィの種類ごとにポイントが設定されており、ユーザは、ポイントの獲得数を増やすことで、自身のゲームプレイヤとしてのレベルを上げることができる。
なおトロフィ獲得情報のファイル同期は、ユーザが製品版のゲームソフトウェアを用いて獲得したトロフィを対象として行われ、体験版のゲームソフトウェアを用いて獲得したトロフィは対象とされない。すなわち、本実施例の情報処理システムでは、ユーザが体験版ゲームをプレイして、トロフィを獲得することはできるが、そのトロフィ獲得情報は、達成度管理サーバにより同期されず、つまりポイントとして加算されない。これにより、製品版を購入したユーザとの公平性を担保する。なお、体験版ゲームをプレイすることで獲得したトロフィは、ゲーム装置上では、表示態様は製品版ゲームのプレイで獲得したトロフィとは区別されるものの、視認可能に表示され、ユーザは、トロフィを獲得したことの確認はできるようにされている。
なお、ここで製品版のゲームソフトウェアは、ユーザが正規に購入したものだけでなく、たとえば期限付きでユーザが正規にレンタルしたものも含む。一方で、たとえば製品版と同じゲームソフトウェアが、1日限定などの期限付きで体験版として配布されるような場合、このゲームソフトウェアは、本実施例における製品版には該当しない。つまり、本実施例において、製品版のゲームソフトウェアは、実行することに対してユーザに正当な権限が与えられているソフトウェアであることを意味する。すなわち、本実施例において、製品版であるか否かは、正当な権限の有無により特定され、したがってユーザが料金を支払ってレンタルされたゲームソフトウェアも、製品版として扱われる。また、たとえば別のユーザのセーブデータをロードして、ゲームソフトウェアを実行するような場合、このユーザは、セーブデータを利用することに対して正当な権限を有していないため、本実施例では、製品版のゲームソフトウェアとは異なる扱いとする。
図1は、本発明の実施例にかかる情報処理システムを示す。情報処理システム1は、ゲームコントローラ40と、ゲームプログラムを実行するゲーム装置10と、ゲーム装置10による処理結果を画像出力する表示機器12とを備える。ゲーム装置10は、ゲーム専用機であってもよいが、エミュレータをインストールしてゲーム装置として動作するコンピュータであってもよい。ゲームコントローラ40は、ユーザにゲーム装置10への操作入力を行わせる入力インタフェース装置である。ゲームコントローラ40は、無線により操作入力を送信するものであってもよく、またケーブルでゲーム装置10に接続されるものであってもよい。表示機器12はスピーカを有するテレビであってよい。表示機器12は、ゲーム装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。ゲーム装置10はルータ15を介して、ネットワーク16に接続する提供サーバ17および達成度管理サーバ18と通信可能に接続されており、所望のデータを送受信することができる。提供サーバ17は、ゲーム制作者やゲーム販売会社などにより運営されて、ゲーム装置10に対して、ゲームソフトウェアおよびゲームソフトウェアの実行に関する権利情報および付加情報を提供する。権利情報および付加情報を含んだファイルを、権利ファイルと呼ぶ。達成度管理サーバ18は、ゲーム達成度を管理する主体により運営されて、ユーザがゲームで獲得したトロフィを管理する。
提供サーバ17から提供される権利情報は、暗号化されたゲームソフトウェアをデコードするための鍵情報を含む。また付加情報は、ダウンロードしたゲームソフトウェアの実行に関するライセンス情報を含み、たとえば製品版であるのか、または体験版であるのかを特定する情報が含まれる。また、レンタル形式でダウンロードされている場合には、付加情報に、レンタル版であること、またレンタル有効期間の開始時刻および終了時刻などが含まれる。ゲーム装置10は、付加情報を取得することで、ダウンロードしたゲームソフトウェアが製品版であるか、体験版であるか、またはレンタルコンテンツであるかを認識できる。一般に、体験版である場合には、製品版と比してゲーム機能の実行に制限が課され、一方、レンタル版である場合には、製品版と同じ機能が実行されることになる。
ゲームソフトウェアは、体験版であることを認識すると、予めコーディングされているプログラムにしたがって機能を制限する。なお、機能制限をするか否かはベームソフトウェアに依存し、体験版であっても、機能制限を行わない仕様であってもよい。たとえば、製品版と同じ機能を、期間限定で実行させる体験版のソフトウェアである場合、権利情報には、プレイ可能な期間が書き込まれ、また付加情報には、体験版であることが書き込まれる。これにより、限定された期間が過ぎると、ゲームソフトウェアをデコードすることができず、ユーザは、ゲームをプレイできなくなる。なお、製品版の機能を一部制限しつつ、期間制限なしに実行させる体験版のソフトウェアである場合、権利情報には、プレイ可能な期間は書き込まれず、付加情報に、体験版であることが書き込まれる。
本実施例では、提供サーバ17が、製品版のゲームソフトウェアの機能を制限せず、プレイ期間を制限したものを、体験版のゲームソフトウェアと称してゲーム装置10に無償で提供する。ゲーム装置10が、ゲームコントローラ40から供給されるユーザの指示により、体験版のゲームソフトウェアを提供サーバ17よりダウンロードすると、ユーザはダウンロードしたゲームソフトウェアを体験版としてプレイすることができ、気に入れば提供サーバ17にアクセスして製品版を購入できる。
このとき、ゲーム装置10は、製品版のゲームソフトウェアをダウンロードするのではなく、プレイ期間の制限がない権利情報と、製品版であることを記述した付加情報とを含んだ権利ファイルを取得するだけでよい。ゲーム装置10は、この権利ファイルを取得すると、体験版のゲームソフトウェアを、製品版のゲームソフトウェアとして扱うことができる。換言すると、ゲーム装置10は、製品版の権利ファイルを取得することで、ダウンロードしていたゲームソフトウェアを、製品版として扱えるようになる。たとえば、体験版のゲームソフトウェアに、「1日のみ利用可能」というプレイ期間の制限が課されている場合、製品版の権利ファイルを取得することで、プレイ期間の制限が解除され、ゲーム装置10は、いつでもゲームソフトウェアを実行できるようになる。なお、ダウンロードしているゲームソフトウェアがレンタルコンテンツである場合、付加情報に、プレイ期間にたとえば1ヶ月の延長期間が記述された権利ファイルを取得することで、ユーザは、1ヶ月間、ゲームをプレイできるようになる。この場合、1ヶ月が経過してレンタル期間が過ぎると、たとえばゲームソフトウェアが自動的にゲーム装置10から削除されて、ユーザがプレイできなくなるようにしてもよい。
このように情報処理システム1では、製品版のゲームソフトウェアを、権利情報でプレイ期間を制限して体験版としてダウンロードさせることで、製品版の再度のダウンロードを不要とさせる。これにより、製品版ゲームソフトウェアのダウンロードの手間をなくすことができるとともに、ゲーム装置10の記憶装置に同一ゲームのソフトウェアを二重に記憶させる無駄も解消できる。また、製品版のゲームソフトウェアを、たとえば付加情報でプレイ期間を制限してレンタル版と称してダウンロードさせることで、ユーザに、その有効期間内であれば、製品版のゲームソフトウェアをプレイさせることができる。
情報処理システム1では、ユーザがゲームプレイ中に、ゲームソフトウェアにより予め設定された条件(ミッション)をクリアすると、その条件に応じたトロフィが付与される。ユーザのトロフィ獲得情報はゲーム装置10の記憶装置に記録されるとともに、ゲームソフトウェアが製品版(またはレンタル版)であれば、すなわち正当な権限を有するユーザによるトロフィの獲得であれば、達成度管理サーバ18に送信されて蓄積される。達成度管理サーバ18は、ネットワーク上のユーザを特定するアカウントIDをもとに、ユーザごとにトロフィ獲得情報を蓄積する。たとえば、一人のユーザが複数のゲーム装置10でプレイした場合、達成度管理サーバ18は、アカウントIDが同じであれば、過去に蓄積されたトロフィ獲得情報に、新しいトロフィ獲得情報をマージして集約していく。同時に達成度管理サーバ18は、マージしたトロフィ獲得情報を、一人のユーザの複数のゲーム装置10に送信し、各ゲーム装置10と達成度管理サーバ18との間で、トロフィ獲得情報の同期がとられる。
図2は、ゲーム装置10のハードウェアブロック図を示す。ゲーム装置10は、電源ボタン20、LED22、システムコントローラ24、デバイスコントローラ30、メディアドライブ32、ハードディスクドライブ34、スイッチ36、無線インタフェース38、メインコントローラ100、メインメモリ102および出力処理部104を有して構成される。
電源ボタン20は、ユーザからの操作入力が行われる入力部であって、ゲーム装置10への電源供給をオンまたはオフするために操作される。LED22は、電源のオンまたはオフの状態を点灯表示する。システムコントローラ24は、電源ボタン20の押下状態または非押下状態を検出し、電源オフの状態から押下状態への状態遷移を検出すると、メインコントローラ100を起動して、オペレーティングシステムのブートシーケンスを立ち上げるとともに、LED22を点灯制御する。ゲーム装置10に電源ケーブルが差し込まれている場合、システムコントローラ24は、電源オフの状態であってもスタンバイモードを維持して、電源ボタン20の押下を監視する。
デバイスコントローラ30は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するLSI(Large-Scale Integrated Circuit)として構成される。図示のように、デバイスコントローラ30には、システムコントローラ24、メディアドライブ32、ハードディスクドライブ34、スイッチ36およびメインコントローラ100などのデバイスが接続される。デバイスコントローラ30は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。ハードディスクドライブ34は、内蔵ハードディスクを駆動して、データの書込/読出を行う。内蔵ハードディスクは、データを記憶する記憶装置として機能する。メディアドライブ32は、ゲームソフトウェアを記録した読出専用の記録媒体50が装着されると、記録媒体50を駆動して認識し、記録媒体50から必要なデータを読み出すドライブ装置である。記録媒体50は、光ディスクや光磁気ディスクなどのメディアであってよい。
スイッチ36は、イーサネットスイッチ(イーサネットは登録商標)であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ36は、ネットワーク16を介して、提供サーバ17からゲームソフトウェア、権利ファイルを受信する。またスイッチ36は、達成度管理サーバ18との間でトロフィ獲得情報などの所期のデータを送受信する。またスイッチ36は無線インタフェース38に接続し、無線インタフェース38は、Bluetooth(登録商標)プロトコルやIEEE802.11プロトコルなどの通信プロトコルで無線通信機能をもつゲームコントローラ40と接続する。ゲームコントローラ40に入力されたユーザの操作情報は、無線インタフェース38、スイッチ36、デバイスコントローラ30を通じてメインコントローラ100に供給される。
メインコントローラ100は、マルチコアCPUを備え、1つのCPUの中に1つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはPPU(Power Processing Unit)と呼ばれ、残りのプロセッサコアはSPU(Synergistic-Processing Unit)と呼ばれる。メインコントローラ100では、ゲーム装置10を効率よく使用するための機能、環境を提供し、装置全体を統括的に制御するオペレーティングシステム(以下、単に「OS(Operating System)」と呼ぶ)が実行される。本実施例におけるゲーム装置10のOS階層は、上位から、ユーザ層、カーネル(Kernel)層、ハイパーバイザ(Hypervisor)層の3階層をとり、ユーザ層、カーネル層とハイパーバイザ層のソフトウェアが一体となって、ゲーム装置10の「OS」として機能する。
電源ボタン20により電源投入されると、システムコントローラ24は、デバイスコントローラ30を経由して、メインコントローラ100および出力処理部104に電源を供給する。メインコントローラ100に電源が供給されると、PPUは、まずOSのブートローダを実行して、ハイパーバイザ層を起動する。つづいて、PPUは、OSのカーネル層を起動し、さらにユーザ層を起動して、ハードディスクドライブ34または記録媒体50から供給されるデータの受入態勢を整える。これにより、メインコントローラ100は、ゲームプログラムを実行できる。
メインコントローラ100は、メインメモリ102に接続するメモリコントローラを備える。PPUはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各SPUに効率的に割り当てる。なお、PPU自身がタスクを実行してもよい。SPUはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。メインメモリ102およびローカルメモリは、RAM(ランダムアクセスメモリ)として構成される。SPUは制御ユニットとして専用のDMA(Direct Memory Access)コントローラをもち、メインメモリ102とローカルメモリの間のデータ転送を行うことで、データを高速にストリーム処理でき、また出力処理部104に内蔵されるフレームメモリとローカルメモリの間で高速なデータ転送を実現できる。
出力処理部104は、表示機器12に接続されて、アプリケーションの処理結果である映像信号および音声信号を出力する。出力処理部104は、画像処理機能を実現するGPU(Graphics Processing Unit)を備える。GPUは、HDMI(High Definition Multimedia Interface)を採用し、映像信号をデジタル出力できる。
本実施例で説明するゲーム装置10の処理機能は、ゲームに限らず、他のアプリケーションを実行する情報処理装置に適用できる。情報処理装置では、システムソフトウェア、アプリケーションソフトウェアおよびアイテム管理ユーティリティが実行される。以下、情報処理装置の一例として、システムソフトウェア、ゲームソフトウェアおよびアイテム管理ユーティリティにより実現されるゲーム装置10の処理機能を説明する。
ゲームソフトウェアは、ユーザによるゲーム進行において、予め設定したゲームのプレイ条件の達成を検出すると、ゲーム装置10にインストールされているアイテム管理ユーティリティを呼び出して、ユーザにアイテム(トロフィ)を与える。
具体的には、ゲーム装置10のハードディスクドライブ34に、ゲームソフトウェアが用意した全てのトロフィIDと、トロフィが獲得されたか否かを獲得フラグ値で示すトロフィ獲得テーブルを用意しておく。初期状態では、獲得フラグ値は0に設定されている。ゲームソフトウェアが、達成した条件に対応するトロフィIDをアイテム管理ユーティリティに渡すと、アイテム管理ユーティリティが、該当するトロフィIDの獲得フラグ値を参照し、フラグ値が1であれば変更せず、0であれば1に設定する。獲得フラグ値が1に設定されたトロフィIDは、トロフィ獲得情報を構成する。これによりゲームソフトウェアが、設定した条件の達成を検出すると、トロフィ獲得テーブルを更新し、トロフィ獲得情報を増やしていく。
また、トロフィ獲得テーブルには、トロフィの獲得時に、ゲームソフトウェアが所定の環境下で実行されているか否かを示す属性情報(属性フラグ)が含まれる。所定の環境下であるか否かは、たとえば権利ファイルに含まれる付加情報によって判断される。たとえば、付加情報に、製品版またはレンタル版であることを示す情報が含まれている場合、属性フラグ値は1に設定される。一方で、付加情報に、体験版であることを示す情報が含まれている場合、属性フラグ値は0に設定される。なお、付加情報に、製品版またはレンタル版であることを示す情報が含まれている場合であっても、たとえばユーザ本人以外の別のユーザのセーブデータが使用されている場合には、そのときに獲得されたトロフィの属性フラグ値は0に設定される。後述するが、この場合は、第2の属性フラグが設けられ、その値が0に設定されてもよい。
なお、トロフィ獲得時のゲームソフトウェアが体験版であって、属性フラグ値が0に設定されていた場合であっても、その後、ユーザが製品版の権利ファイルを獲得し、ゲームソフトウェアが製品版にアップグレードされた場合には、属性フラグ値は1に変更される。これにより、体験版で獲得したトロフィも、製品版の権利ファイルの取得後は、製品版で獲得したトロフィとして扱われ、達成度管理サーバ18における獲得情報のマージの対象となる。なお、別人のセーブデータを利用してトロフィを獲得した場合、そのトロフィはマージの対象とはならない。
アイテム管理ユーティリティは、達成度管理サーバ18にトロフィ獲得情報を送信する。達成度管理サーバ18は、ユーザのアカウントIDをもとに、過去に蓄積しているトロフィ獲得情報に、新たなトロフィ獲得情報をマージして蓄積する。なお、このマージ処理は、ゲームごとに行われるのではなく、トロフィごとに行われる。つまり、仮に、マージ時点では、ゲーム装置10で実行しているゲームソフトウェアが体験版であったとしても、そのゲームで獲得したトロフィのうち、製品版のゲームのプレイ中に獲得されたトロフィが存在する場合には、そのアイテムは、マージ処理の対象となる。
またアイテム管理ユーティリティは、達成度管理サーバ18からトロフィ獲得情報を送信される。たとえば、ユーザが複数のゲーム装置10を用いてゲームプレイをする場合、1つのゲーム装置10で獲得したトロフィ獲得情報が、別のゲーム装置10において同期される。これにより、複数のゲーム装置10で同じゲームをする場合であっても、トロフィ獲得情報は、複数のゲーム装置10および達成度管理サーバ18にて同期されることになる。ここで同期とは、複数の情報処理装置間で、記憶するトロフィ獲得情報を、同じ状態、たとえば更新された最新の状態に保つことを意味する。なお本実施例では、トロフィIDと獲得フラグ値の組み合わせが同期されればよく、属性フラグ値については必ずしも同期される必要はない。
図3は、アイテム(トロフィ)の管理処理を実行する情報処理システム1の機能ブロック図を示す。ゲーム装置10は、システムソフトウェア200、ゲームソフトウェア300およびアイテム管理ユーティリティソフトウェア(以下、「アイテム管理ユーティリティ」)400を実行する。システムソフトウェア200は、オペレーティングシステム(OS)であって、ゲーム装置10における表示処理機能などをもつ。アイテム管理ユーティリティ400は、ゲームソフトウェア300が情報処理システム1を利用するための関数を提供する。ゲームソフトウェア300は、アイテム設定情報60aのインストール処理、アイテム獲得情報70aの生成処理、達成度管理サーバ18からアイテム設定情報60b、アイテム獲得情報70bを取得する処理を、アイテム管理ユーティリティ400の関数を用いて行う。
達成度管理サーバ18は、コントローラ500および記憶装置80を備え、記憶装置80には、最新のアイテム設定情報60bと、情報処理システム1に登録している複数のユーザのアイテム獲得情報70b、70c、70dが保持されている。以下では、アイテム獲得情報70bが、ゲーム装置10のユーザのアイテム獲得情報であり、アイテム獲得情報70c、70dは、別ユーザのアイテム獲得情報であるとする。
ゲームソフトウェア300は、その起動時にアイテム管理ユーティリティ400から「トロフィ登録機能」を呼び出す。これにより、記録媒体50またはハードディスクドライブ34に記録されているゲームソフトウェアに含まれている所定のファイル(以下、「アイテムファイル」とよぶ)から、アイテム設定情報60を取り出し、ハードディスクドライブ34にインストールする。これによりゲームソフトウェア300は、トロフィを獲得可能な状態となる。なお、このインストール処理は、一度実行されればよく、したがってゲームソフトウェア300の最初の起動時に実行される。
このとき情報処理システム1が提供するサービスにサインインしていれば、トロフィ登録機能は、達成度管理サーバ18においてユーザのアカウントIDに紐付けられているアイテム獲得情報70bをチェックする。達成度管理サーバ18におけるアイテム獲得情報70bに、ハードディスクドライブ34に保持しているアイテム獲得情報70aで特定されるトロフィ以外のトロフィが含まれている場合、トロフィ登録機能は、そのアイテム獲得情報70bを取得し、ハードディスクドライブ34に追加保存する。このときトロフィ登録機能は、アイテム獲得情報70aとアイテム獲得情報70bの差分を取得することで、転送データ量を削減できる。
なお、トロフィ登録機能は、アイテム獲得情報70aに、達成度管理サーバ18におけるアイテム獲得情報70bで特定されるトロフィ以外のトロフィが含まれている場合、属性フラグ値が1に設定されているアイテム獲得情報70aを達成度管理サーバ18に送信し、一方で、属性フラグ値が0に設定されているアイテム獲得情報70bを達成度管理サーバ18に送信しない。このように送信するアイテム獲得情報70aを定めることで、達成度管理サーバ18には、製品版で獲得されたアイテム獲得情報70bのみが蓄積されることになる。
また、達成度管理サーバ18におけるアイテム設定情報60bが最新のものに更新されている場合、トロフィ登録機能は、そのアイテム設定情報60bを取得し、ハードディスクドライブ34に上書き保存する。
アイテム設定情報60は、各トロフィを表す画像(トロフィ画像)、各トロフィの名称と説明文などの属性を含む。なおアイテム設定情報60は、トロフィ数を増やす更新が行われてもよく、したがってアイテム管理ユーティリティ400のトロフィ登録機能は、達成度管理サーバ18に対してアイテム設定情報60が更新されているかチェックする機能をもつ。アイテム設定情報60は、1つのアイテムファイルに格納されて、記録媒体50やハードディスクドライブ34に記録されるゲームソフトウェアに含まれる。1つのトロフィは、以下の属性をもつ。
(1)トロフィID
トロフィを識別するためのID
(2)名称/詳細情報
トロフィの名前と説明文
(3)グレード (種類)
ブロンズ/シルバー/ゴールド/プラチナのいずれか
(4)プラチナリンク
そのトロフィの獲得がプラチナトロフィを獲得するための条件に含まれるか。
アイテム設定情報60に複数のトロフィが含まれる場合、以上示した(1)〜(4)の属性、およびトロフィ画像は、アイテム設定情報60においてトロフィの数だけ設定されている。
システムソフトウェア200は、アイテム管理ユーティリティ400により供給されるアイテム設定情報60aおよびアイテム獲得情報70aを利用して、トロフィの獲得状況を示す画面の生成など、GUI(グラフィカルユーザインタフェース)を用いて、表示機器12の表示画面を生成する。なおトロフィ獲得テーブルにおいて、属性フラグ値が0に設定されているトロフィは、属性フラグ値が1に設定されているトロフィとは異なる態様で表示される。これにより、ユーザに対して、トロフィが体験版のソフトウェアで獲得したものであることを提示できる。
以下に、ゲーム装置10の詳細を説明する。
図4は、図3に示したゲーム装置10の詳細構成を示す。ゲーム装置10は、システムソフトウェア200、ゲームソフトウェア300およびアイテム管理ユーティリティ400を実行する。
システムソフトウェア200は、オペレーティングシステム(OS)として動作し、特別アイテム獲得条件達成判定部202、メッセージ生成部204、アイテム情報取得部210、達成度導出部220、レベル導出部222および表示処理部230を備える。アイテム情報取得部210は、アイテム設定情報取得部212およびアイテム獲得情報取得部214を有する。表示処理部230は、アイコン画像表示部232、達成度情報表示部234、レベル情報表示部236、獲得アイテム表示部238およびメッセージ表示部240を有する。
アイテム管理ユーティリティ400は、登録処理部402、通信部404、アイテム情報供給部406、特別アイテム処理部410、アイテムID取得部420、プレイアイテム獲得処理部422および実行情報保持部430を備える。特別アイテム処理部410は、特別アイテム獲得処理部412、アイテム獲得状況調査部414、特別アイテムID通知部416およびアイテムID取得部418を有する。ゲームソフトウェア300は、アプリケーション実行部302、条件達成検出部304およびアイテムID通知部306を備える。
図4において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、メインコントローラ100には1つのPPUと複数のSPUとが設けられており、PPUおよびSPUがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
上記したトロフィ登録機能は、登録処理部402により実行される。登録処理部402は、所定のタイミングで、通信部404を介して、達成度管理サーバ18におけるアイテム獲得情報70bを確認する。このとき、登録処理部402は、ハードディスクドライブ34に保有していないトロフィのアイテム獲得情報70が達成度管理サーバ18に存在すれば、そのアイテム獲得情報70を取得する。また登録処理部402は、ハードディスクドライブ34に保有しているトロフィのアイテム獲得情報70のうち、達成度管理サーバ18に保有されていないものがあれば、そのアイテム獲得情報70を通信部404から送信する。
なお、登録処理部402は、属性フラグ値を参照し、属性フラグ値0のアイテム獲得情報70は通信部404から送信せず、属性フラグ値1のアイテム獲得情報70のみを、通信部404から達成度管理サーバ18に送信する。これにより達成度管理サーバ18は、製品版ゲームソフトウェアで獲得されたトロフィの獲得情報70のみを取得するようになる。すなわち、情報処理システム1においては、ゲーム装置10と達成度管理サーバ18の間で、製品版ゲームソフトウェアで獲得されたトロフィのアイテム獲得情報70が同期されることになる。
ゲームソフトウェア300は、ゲームを実行させる実行プログラムと、実行プログラムが利用するゲームデータと、ゲームの実行に関する設定情報などを定めるパラメータ情報を少なくとも含んでいる。実行プログラムは、ゲームを進行させるためのプログラムである。ゲームデータは、ゲームで展開されるステージのデータや、キャラクタデータなどを含む。なお、実行プログラムとゲームデータとをあわせて、ゲームプログラムと呼ぶこともある。
パラメータ情報は、ゲームの描画解像度やペアレンタルロック機能にかかるアクセス制限年齢情報など、ゲーム装置10の動作を定めるためのデータである。パラメータ情報は、実行プログラムの起動前にゲーム装置10に読み込まれて、出力解像度の設定や、ペアレンタルロック機能による実行プログラムの実行可否判定などに用いられる。
ハードディスクドライブ34には、ゲームソフトウェアの権利情報75および付加情報77が登録される。権利情報75は、ゲームソフトウェアをデコードするための鍵情報を含み、また、ゲームソフトウェアがプレイ期間を制限する体験版である場合には、制限するプレイ期間を含んでいる。付加情報77は、ゲームソフトウェアに関する情報、たとえば製品版であるか、体験版であるか、またはレンタル版であるかを特定する情報を含んでいる。
ユーザがゲームコントローラ40を操作してゲームの実行要求を入力すると、システムソフトウェア200が権利情報75を確認し、プレイ期間が制限されているか判断する。このとき、プレイ期間が制限されており、且つプレイ期間を過ぎていれば、ゲームプログラムは起動されない。なお、プレイ期間が制限されていない場合、またはプレイ期間が制限されているが、プレイ期間内である場合、ゲームプログラムが鍵情報によりデコードされて、アプリケーション実行部302がゲームプログラムを起動する。
以下において、まずトロフィの獲得処理について説明し、続いて獲得したトロフィの表示処理について説明する。
<トロフィ獲得処理>
登録処理部402が、記録媒体50またはハードディスクドライブ34に記録されているゲームソフトウェアに含まれているアイテムファイルから、アイテム設定情報60を取り出し、ハードディスクドライブ34にインストールする。これによりトロフィ獲得処理が開始可能となる。
ゲームソフトウェア300において、アプリケーション実行部302が、ユーザによるゲームコントローラ40の操作入力を受けて、ゲームプログラムを実行する。本実施例において、ゲームソフトウェア300は、トロフィを獲得するためのプレイ条件を予め設定する。この条件は、「ミッション」と呼ばれ、ミッションの内容はユーザに公開されてもよく、また非公開とされてもよい。各ミッションには、ミッション達成の際にユーザに付与するトロフィのID(アイテムID)が対応付けられる。
ゲームソフトウェア300は、ユーザによるゲームの進行において、予め設定したゲームのプレイ条件の達成を検出すると、アイテム管理ユーティリティ400を呼び出し、アイテムIDをアイテム管理ユーティリティ400に通知する。ゲームプログラムには、この処理がコーディングされている。各ミッションの内容と、ミッション達成の際にユーザに付与するトロフィのID(アイテムID)とは、一対一に対応づけられる。図5は、ミッション内容とアイテムIDの関係の一例を示す。
条件達成検出部304は、ゲームの進行状況から、ミッションが達成されたこと、すなわちゲームにおいて予め設定されたゲームのプレイ条件が達成されたことを検出する。この検出処理は、ゲームプログラムにハードコーディングされており、ミッションが達成されると、そのミッションに対応付けられたアイテムIDを取得する処理がゲームプログラムに書き込まれている。条件達成の検出は、アイテムIDを取得することに相当する。アイテムID通知部306は、取得したアイテムIDをアイテム管理ユーティリティ400に通知する。
アイテム管理ユーティリティ400において、アイテムID取得部420は、通知されたアイテムIDを取得し、プレイアイテム獲得処理部422に渡す。プレイアイテム獲得処理部422は、アイテムIDを用いて、アイテム獲得情報70を生成する。アイテム獲得情報70は、アイテムを獲得したことを示す情報であり、アイテム獲得時のゲームプログラムが所定の環境下で実行されているか否かを示す属性フラグ値が含まれる。実行情報保持部430は、付加情報77に含まれる情報を実行情報として保持し、プレイアイテム獲得処理部422は、実行情報保持部430に保持される実行情報を参照して、アイテム獲得情報70を生成し、ハードディスクドライブ34に格納する。実行情報保持部430は、実行中のゲームプログラムが製品版であるか、体験版であるか、またはレンタル版であるかを特定する実行情報を保持する。アイテム獲得情報70は、以下に示すテーブルの形式で生成される。
図6は、トロフィ獲得テーブルを示す。トロフィ獲得テーブルは、アイテムIDと、アイテム獲得の有無を示す獲得フラグ値と、獲得したアイテムの属性情報を特定する属性フラグ値とを対応付けて記録する。獲得フラグ値0は、アイテムが獲得されていないことを示し、獲得フラグ値1は、アイテムが獲得されていることを示す。
属性フラグは、獲得したアイテムが、所定の環境下でゲームプログラムが実行されたときに獲得したものであるか否かを示す情報である。ここで、所定の環境とは、ユーザがゲームプログラムを実行するのに正当な権限を有している環境を意味し、具体的には、製品版またはレンタル版のゲームプログラムが実行されている環境であり、および/またはユーザが正当なユーザアカウントIDを有している環境である。この環境でゲームプログラムが実行されているときにアイテムが獲得されると、属性フラグ値が1に設定され、一方で、体験版のゲームプログラムの実行中や、ユーザがゲスト用のアカウントIDでゲームプレイしているときにアイテムが獲得されると、属性フラグ値が0に設定される。
属性フラグ値は、獲得したアイテムに関する処理、および獲得したアイテムの画像に関する処理に利用される。獲得アイテムに関する処理として、属性フラグ値は、アイテム獲得情報70を、達成度管理サーバ18などの他の情報処理装置と同期させるか、または同期させないかを定める情報として扱われる。また獲得したアイテムの画像に関する処理として、属性フラグ値は、アイテム画像を標準態様で表示するか、または標準態様とは異なる態様で表示するかを定める情報として扱われる。ここで標準の表示態様とは、製品版で獲得したアイテム画像の表示態様である。
ミッションが達成されると、そのミッションに対応するアイテムIDの獲得フラグ値が1に設定される。具体的には、プレイアイテム獲得処理部422が、アイテムID取得部420からアイテムIDを受け取ると、そのアイテムIDに対応付けられている獲得フラグ値が1であるかチェックし、1であれば変更せず、0であれば1に設定する。このとき、プレイアイテム獲得処理部422は、実行情報保持部430に保持されている実行情報を参照する。実行情報保持部430は、ハードディスクドライブ34から付加情報77を読み出して保持したキャッシュであってよい。なお、プレイアイテム獲得処理部422は、ハードディスクドライブ34に保持されている付加情報77を参照してもよい。この場合、ハードディスクドライブ34は、実行情報である付加情報77を保持した保持部として機能する。
プレイアイテム獲得処理部422は、実行情報を参照して、所定の環境とは異なる環境下でゲームプログラムが実行されていることを認識すると、アイテムIDに対応付ける属性フラグ値を0に設定する。一方、実行情報により、所定の環境下でゲームプログラムが実行されていることを認識すると、プレイアイテム獲得処理部422は、属性フラグ値を1に設定する。図6に示す例では、アイテムID「1」と「3」のアイテム獲得時のゲームソフトウェアが体験版であったために、属性フラグ値がそれぞれ0に設定されている状態が示されている。以上のように、ハードディスクドライブ34に記憶されるアイテム獲得情報70は、アイテムIDと獲得フラグ値と属性フラグ値とを対応付けた情報となる。
プレイアイテム獲得処理部422は、アイテムID取得部420からアイテムIDを受け取ると、その都度、実行情報保持部430に保持される実行情報を参照して、属性フラグ値を決定する。したがって、プレイアイテム獲得処理部422は、ゲームにおいて条件が達成されるたびに、実行情報保持部430に保持されている実行情報を参照して、獲得したアイテムの属性フラグ値を決定し、アイテム獲得情報70を生成する。
本実施例のゲーム装置10は、ユーザが体験版でゲームプレイしている最中に、製品版の権利ファイルの購入を可能とする仕組みを有している。ゲーム装置10は、ゲームコントローラ40から入力される権利ファイルの取得要求を、提供サーバ17に送信する。取得要求には、ゲームソフトウェアを特定する識別情報が含まれる。提供サーバ17は、権利ファイルの取得要求を受信すると、ゲームソフトウェアの識別情報をもとにゲーム購入画面の構成データを生成して、ゲーム装置10に送信する。ゲーム装置10は、購入画面を表示機器12に表示し、ユーザが、購入画面に設けられた購入ボタンを選択操作すると、提供サーバ17に、ゲームソフトウェアの識別情報を含めた購入要求が送信される。これを受けて提供サーバ17は、ユーザに課金するとともに、製品版の権利ファイルを返信する。登録処理部402は、受信した権利ファイルを、その識別情報をもとにハードディスクドライブ34にディレクトリを作成して保持させる。既述したように、ハードディスクドライブ34に保持された権利ファイルの付加情報77は、実行情報保持部430に読み出される。
このように情報処理システム1では、プレイ開始時にはゲームソフトウェアが体験版であっても、プレイ途中には製品版に変更されることがある。そのため、実行情報保持部430は、プレイ条件の達成のたびに、実行情報保持部430の実行情報を参照して、実行中のゲームプログラムが製品版であるか、体験版であるか、またはレンタル版であるかを確認するようにしている。プレイアイテム獲得処理部422は、実行情報保持部430の実行情報を参照して、属性フラグ値を設定し、アイテム獲得情報70を生成する。生成したアイテム獲得情報70は、ハードディスクドライブ34に記憶される。
なお、実行情報保持部430に保持されている実行情報が、ゲームプログラムが所定の環境下で実行されていることを示す場合、プレイアイテム獲得処理部422は、同一ゲームに関して既に生成したアイテム獲得情報70に含まれる、ゲームプログラムが所定の環境とは異なる環境下で実行されたときにユーザが獲得したアイテムであることを示す情報を、ゲームプログラムが所定の環境下で実行されたときにユーザが獲得したアイテムであることを示す情報に変更する。すなわちプレイアイテム獲得処理部422は、実行情報保持部430に保持されている実行情報が製品版またはレンタル版であることを示す場合に、当該ゲームにおけるトロフィ獲得テーブルにおいて、獲得フラグ値が1に設定されている属性フラグ値を、すべて1に設定する。すなわち、属性フラグ値0を、属性フラグ値1に変更して、体験版で獲得したトロフィを、製品版で獲得したトロフィに変更する。このように、ユーザが製品版の権利ファイルを購入した場合には、体験版で獲得したトロフィを、製品版で獲得したトロフィとして扱うことで、製品版のユーザになったことに対する特典を与えることができる。
なお、プレイアイテム獲得処理部422が獲得処理を行うアイテムは、ブロンズ、シルバー、ゴールドの3種類のトロフィであり、プラチナトロフィは含まれない。プラチナトロフィのアイテムIDは“0”であり、ブロンズ、シルバー、ゴールドのアイテムIDは“1”以上が割り当てられる。このようにゲームソフトウェア300は、ブロンズ、シルバー、ゴールドの3種類のトロフィをユーザに付与することができる。一方、プラチナトロフィは、システムソフトウェア200によりユーザに付与される。
特別アイテム獲得条件達成判定部202は、プレイアイテム獲得処理部422によりアイテムの獲得処理がなされると、アイテム獲得状況調査部414に、アイテムの獲得状況を調査させる。アイテム獲得状況調査部414は、アイテム設定情報60およびアイテム獲得情報70を参照して、アイテムの獲得状況を調査し、特別アイテム獲得条件達成判定部202に通知する。特別アイテム獲得条件達成判定部202は、アイテム獲得状況調査部414の調査結果をもとに、特別アイテムを獲得するためのアイテム獲得条件が達成されたか否かを判定する。通常、このアイテム獲得条件は、複数のアイテム(トロフィ)を獲得したことに設定されている。
前述したように、トロフィには、属性として「プラチナリンク」の情報が設定されている。プラチナリンクの情報は、フラグ値として設定されており、フラグ値1は、そのトロフィの獲得がプラチナトロフィを獲得するための条件に含まれることを意味し、フラグ値0は、そのトロフィの獲得がプラチナトロフィを獲得するための条件に含まれないことを意味する。アイテム設定情報60は、アイテムを追加する場合に更新されるが、デフォルトのアイテム設定情報60においては、全てのアイテムのプラチナリンクのフラグ値が1に設定され、追加アイテムのフラグ値は0に設定されるようにしてもよい。
アイテム獲得状況調査部414は、アイテム設定情報60を参照して、プラチナリンクのフラグ値(以下、プラチナフラグ値)が1に設定されているアイテムIDを抽出し、続いてトロフィ獲得テーブルを参照して、抽出した全てのアイテムIDの獲得フラグ値が1であるか調査する。
プラチナフラグ値が1のアイテムに獲得されていないものがあれば、アイテム獲得状況調査部414は、その調査結果を特別アイテム獲得条件達成判定部202に通知する。これを受けて特別アイテム獲得条件達成判定部202は、特別アイテム、すなわちプラチナトロフィを獲得するためのアイテム獲得条件が達成されていないことを判定する。
一方、プラチナリンクが設定されているアイテムの全てが獲得されていれば、アイテム獲得状況調査部414は、トロフィ獲得テーブルを参照して、獲得したアイテム全ての属性フラグ値が1であるか調査する。プラチナリンクが設定されているアイテムの全ての属性フラグ値が1であれば、アイテム獲得状況調査部414は、その調査結果を特別アイテム獲得条件達成判定部202に通知し、特別アイテム獲得条件達成判定部202は、製品版またはレンタル版ゲームソフトウェア上でアイテム獲得条件が達成されたことを判定する。一方、プラチナリンクが設定されている全ての獲得アイテムのうち、1つでも属性フラグ値が0のものが存在すれば、アイテム獲得状況調査部414は、その調査結果を特別アイテム獲得条件達成判定部202に通知し、特別アイテム獲得条件達成判定部202は、体験版ゲームソフトウェア上で、アイテム獲得条件が達成されたことを判定する。
なおアイテム獲得状況調査部414による調査機能を、特別アイテム獲得条件達成判定部202が有してもよい。この場合、特別アイテム獲得条件達成判定部202は、アイテム情報供給部406からアイテム設定情報60およびアイテム獲得情報70を供給されて、アイテムの獲得状況を調査する。
プラチナトロフィの獲得条件が達成された場合、特別アイテム獲得条件達成判定部202は、プラチナトロフィのアイテムIDを、属性フラグ値とともに、アイテムID取得部418に通知する。このアイテムID値は0である。また、属性フラグ値は、製品版またはレンタル版ゲームソフトウェア上でアイテム獲得条件が達成された場合は1であり、体験版ゲームソフトウェア上でアイテム獲得条件が達成された場合は0である。アイテムID取得部418は、通知されたアイテムIDおよび属性フラグ値を取得し、特別アイテム獲得処理部412に渡す。特別アイテム獲得処理部412は、アイテムIDを用いて、アイテム獲得情報70を生成し、具体的にはトロフィ獲得テーブルにおいてアイテムID0の獲得フラグ値を1に設定し、属性フラグ値を、通知された値に設定する。
このとき特別アイテム獲得条件達成判定部202は、特別アイテムID通知部416に、アイテムID0をゲームソフトウェア300に通知させることを指示する。特別アイテムID通知部416は、プラチナトロフィのアイテムID0をゲームソフトウェア300に通知し、これを受けてアプリケーション実行部302は、ゲーム画面中に、プラチナトロフィを取得したことを示すメッセージを表示させてもよい。
なお、このメッセージは、システムソフトウェア200によりゲーム画面に表示されてもよい。プラチナトロフィの獲得条件が達成されると、メッセージ生成部204は、特別アイテム獲得条件達成判定部202からの指示を受けて、プラチナトロフィ獲得に関するメッセージを生成する。このとき、属性フラグ値に応じたメッセージを生成してもよい。たとえば、属性フラグ値が0の場合、すなわち体験版ゲーム上でプラチナトロフィが獲得された場合には、「プラチナトロフィ獲得おめでとう(体験版ですので、達成度管理サーバ上でのポイントにはカウントされません)」というメッセージが生成される。メッセージ表示部240は、生成されたメッセージを、実行中のゲーム画面中の所定の領域に重畳表示させる。これにより、仮にゲームソフトウェア300が、プラチナトロフィ獲得のメッセージを表示しない場合であっても、システムソフトウェア200がゲーム画面に重畳表示するため、ユーザは、メッセージを確認する機会をもつことができる。
このようにゲーム装置10では、ゲームのミッションを達成した結果としてゲームソフトウェア300がブロンズ、シルバー、ゴールドのトロフィをユーザに付与し、また、ブロンズ、シルバー、ゴールドのトロフィをユーザが獲得した結果としてシステムソフトウェア200がプラチナのトロフィをユーザに付与する。これによりプラチナトロフィのプレミアム感をだすことができる。システムソフトウェア200がプラチナトロフィ獲得処理を行うことで、ゲームソフトウェア300の処理負荷を軽減でき、またゲーム開発者の開発負担も軽減できる。
本実施例の情報処理システム1では、体験版でゲームを実行して、トロフィを獲得した後、製品版の権利ファイルを正規に購入すれば、トロフィ獲得テーブルにおいて、属性フラグ値は1に更新される。したがって、多くのケースにおいて、トロフィ獲得テーブル中に獲得済みトロフィの属性フラグ値0と1とが混在することは少なく、通常は、0または1のいずれかに統一される。
しかしながら、たとえば友人にゲームソフトウェアの記録媒体50を借りてきて、メディアドライブ32に差し込んでゲームを行った場合、獲得したトロフィの属性フラグは1に設定されるが、その後、記録媒体50を友人に返却し、提供サーバ17から体験版のゲームソフトウェアをダウンロードして、ゲームをするケースも想定される。その場合、体験版のゲームソフトウェアで獲得したトロフィには、属性フラグが0に設定される。このような場合、1つのゲームのトロフィ獲得テーブルにおいて、属性フラグ値の0と1とが混在することがある。
またユーザが、複数の場所でゲームをする場合、たとえば第1のゲーム装置10aでは体験版をプレイし、第2のゲーム装置10bでは製品版をプレイするような場合にも、体験版を実行する第1のゲーム装置10aでは、1つのゲームのトロフィ獲得テーブルにおいて、属性フラグ値の0と1とが混在することがある。以下、図3および図4を参照しながら、2台のゲーム装置10a、10bと、達成度管理サーバ18との間で、アイテム獲得情報70を同期する処理を説明する。
図7は、ゲーム装置10a、10bおよび達成度管理サーバ18におけるトロフィ獲得テーブルを示す。ゲーム装置10aのハードディスクドライブ34a、およびゲーム装置10bのハードディスクドライブ34bのそれぞれに、トロフィ獲得テーブルが格納されている。なお、ゲーム装置10aでは、体験版のゲームプログラムが実行され、ゲーム装置10bでは、製品版のゲームプログラムが実行されて、アイテム獲得情報が生成されたものとする。また図7に示す例では、達成度管理サーバ18は、ゲーム装置10aおよびゲーム装置10bと接続されておらず、達成度管理サーバ18の記憶装置80には、アイテム獲得情報が同期されていない。
図8は、ゲーム装置10aと達成度管理サーバ18が接続されて、ゲーム装置10aと達成度管理サーバ18との間で、アイテム獲得情報の同期処理が行われる状況を示す。ゲーム装置10aにおいて、登録処理部402は、通信部404を介して、達成度管理サーバ18におけるアイテム獲得情報を確認する。登録処理部402は、ハードディスクドライブ34aに保有していないトロフィのアイテム獲得情報が達成度管理サーバ18に存在すれば、そのアイテム獲得情報を取得する。この場合、達成度管理サーバ18にはアイテム獲得情報が存在していないため、登録処理部402は、アイテム獲得情報を取得しない。また登録処理部402は、ハードディスクドライブ34aに保有しているトロフィのアイテム獲得情報のうち、達成度管理サーバ18に保有されていないものがあれば、そのアイテム獲得情報を通信部404から送信する。このとき登録処理部402は、属性フラグ値に応じて、アイテム獲得情報を送信するか否かを決定する。具体的に登録処理部402は、属性フラグ値を参照し、属性フラグ値1のアイテム獲得情報は送信し、属性フラグ値0のアイテム獲得情報は送信しないことを決定する。ハードディスクドライブ34aには、属性フラグ値0のアイテム獲得情報しか存在しないため、通信部404からアイテム獲得情報は送信されない。
図9は、図8に示す状況から、ゲーム装置10aと達成度管理サーバ18の接続が解除され、ゲーム装置10bと達成度管理サーバ18が接続されて、ゲーム装置10bと達成度管理サーバ18との間で、アイテム獲得情報の同期処理が行われる状況を示す。ゲーム装置10bにおいて、登録処理部402は、通信部404を介して、達成度管理サーバ18におけるアイテム獲得情報を確認する。登録処理部402は、ハードディスクドライブ34bに保有していないトロフィのアイテム獲得情報が達成度管理サーバ18に存在すれば、そのアイテム獲得情報を取得する。この場合、達成度管理サーバ18にはアイテム獲得情報が存在していないため、登録処理部402は、アイテム獲得情報を取得しない。また登録処理部402は、ハードディスクドライブ34bに保有しているトロフィのアイテム獲得情報のうち、達成度管理サーバ18に保有されていないものがあれば、そのアイテム獲得情報を通信部404から送信する。このとき登録処理部402は、属性フラグ値を参照し、属性フラグ値0のアイテム獲得情報は通信部404から送信せず、属性フラグ値1のアイテム獲得情報は通信部404から送信する。登録処理部402は、アイテムID1,2,4のアイテム獲得情報をハードディスクドライブ34bから読み出し、通信部404から達成度管理サーバ18に送信させる。これにより、達成度管理サーバ18は、アイテムID1,2,4のアイテム獲得情報を記憶装置80に記録する。
図10は、図9に示す状況から、ゲーム装置10bと達成度管理サーバ18の接続が解除され、ゲーム装置10aと達成度管理サーバ18が接続されて、ゲーム装置10aと達成度管理サーバ18との間で、アイテム獲得情報の同期処理が行われる状況を示す。ゲーム装置10aにおいて、登録処理部402は、通信部404を介して、達成度管理サーバ18におけるアイテム獲得情報を確認する。登録処理部402は、ハードディスクドライブ34aに保有していないトロフィのアイテム獲得情報が達成度管理サーバ18に存在すれば、そのアイテム獲得情報を取得する。このとき、登録処理部402は、属性フラグ値が0に設定されているアイテム獲得情報は保有していないアイテムと認識して、ハードディスクドライブ34aに保有していないアイテム獲得情報を達成度管理サーバ18に問い合わせる。この場合、達成度管理サーバ18には、アイテムID1,2,4のアイテム獲得情報が存在しているため、登録処理部402は、通信部404を介して、達成度管理サーバ18に送信要求を送る。達成度管理サーバ18は、要求を受けたアイテム獲得情報をゲーム装置10aに送信し、登録処理部402は、このアイテム獲得情報を取得する。取得したアイテム獲得情報は、ハードディスクドライブ34aのトロフィ獲得テーブルに書き込まれる。
以上のようにして、複数のゲーム装置10a、10bおよび達成度管理サーバ18の間で、アイテム獲得情報が同期処理される。図10に示されるように、体験版のゲームプログラムが実行されるゲーム装置10aにおいては、獲得フラグ値1が設定されたアイテム獲得情報において、属性フラグ値の0と1とが混在することもある。以下、属性フラグ値に応じたトロフィの表示処理を説明する。
<トロフィ表示処理>
ユーザからのトロフィ表示要求を受けて、アイテム情報供給部406が、アイテム設定情報60およびアイテム獲得情報70を含むアイテム情報をハードディスクドライブ34から読み出し、アイテム情報取得部210に供給する。アイテム設定情報取得部212がアイテム設定情報60を取得し、アイテム獲得情報取得部214がアイテム獲得情報70を取得する。
達成度導出部220は、アイテム獲得情報70とアイテム設定情報60を用いてポイントを算出し、算出したポイントをもとにゲームの達成度を導出する。トロフィの種類にはブロンズ、シルバー、ゴールド、プラチナの4種類が用意されているが、各種類に対して以下のようにポイントが設定されている。
ブロンズ 10ポイント
シルバー 30ポイント
ゴールド 100ポイント
プラチナ 200ポイント
デフォルトのアイテム設定情報60では、たとえば全てのトロフィのポイント総計が1000ポイント前後となるように、トロフィの種類および数の配分が割り当てられている。これは、後述するユーザレベルを導出する際に、ゲーム間での不公平をなくすためである。以上の関係を記述したポイント設定テーブルは、ハードディスクドライブ34に保持されており、達成度導出部220は、アイテム情報供給部406を通じて、ポイント設定テーブルを取得する。
達成度導出部220は、アイテム設定情報60に含まれるトロフィの種類別の個数を抽出し、総ポイントを算出する。たとえば、ブロンズトロフィが20、シルバートロフィが10、ゴールドトロフィが3、プラチナトロフィが1あれば、総ポイントは1000(=20×10+10×30+3×100+1×200)となる。
次に達成度導出部220は、アイテム獲得情報70に含まれる獲得済みトロフィの種類別の個数を抽出し、獲得ポイントを算出する。このとき、達成度導出部220は、アイテム獲得情報70に含まれる獲得済みトロフィのうち、属性フラグ値が1に設定されているトロフィと、属性フラグ値が0に設定されているトロフィとを分けて、獲得ポイントを算出する。たとえば、属性フラグ値が1に設定されている獲得済みトロフィのうち、ブロンズトロフィが16個、シルバートロフィが8個、ゴールドトロフィが1個、プラチナトロフィが0個であれば、獲得ポイントは500(=16×10+8×30+1×100)となる。また、属性フラグ値が0に設定されている獲得済みトロフィとして、ゴールドトロフィが1個であれば、獲得ポイントは100(=1×100)となる。
達成度導出部220は、ゲームの達成度を(製品版における獲得ポイント/総ポイント)×100として算出し、ここでは50%(=100×500/1000)を導出する。なお、達成度導出部220は、体験版における獲得ポイントも加味したゲームの達成度も算出し、ここでは60%(=50%+10%)と導出する。
ゲームの達成度を(獲得ポイント/総ポイント)×100として導出することで、達成度導出部220は、ミッションの難易度を加味した達成度を導出できる。たとえば獲得ポイントでゲームの達成度を表現すると、総ポイントが加味されていないため、達成度を表現することはできない。また獲得トロフィ数で達成度を表現しても、難易度が加味されていないため、正確な達成度とはいえない。このように達成度導出部220は、客観性のあるゲーム達成度を導出することができる。導出した達成度は、達成度情報表示部234に送られる。達成度情報表示部234は、導出した達成度を表示機器12に表示する。
なお複数のゲームについてのアイテム設定情報60およびアイテム獲得情報70がハードディスクドライブ34に格納されている場合には、達成度導出部220は、複数のゲームの達成度を導出する。これにより達成度情報表示部234は、複数のゲームの達成度を表示機器12に表示することができる。
図11は、ゲーム達成度を表現する画面例を示す。達成度表示画面260では、ゲーム達成度が達成度インジケータ250および達成度数値252により表現される。達成度表示画面260は、表示処理部230により生成される。
アイコン画像表示部232が、アイコン画像258a〜258eを達成度表示画面260中に配置する。アイコン画像258a、258bは、システムソフトウェア200が用意した画像であり、アイコン画像258c、258d、258eは、アイテム設定情報60から抽出された画像である。アイコン画像258bの下階層の領域、すなわちアイコン画像258c、258d、258eが表示される領域には、ユーザが過去にプレイして、トロフィを獲得したゲームのアイコン画像258が表示される。各アイコン画像258c、258d、258eの右隣には、ゲームタイトルが表示され、各ゲームタイトルの下に達成度インジケータ250が表示され、さらに右隣には、達成度数値252が表示される。なお達成度表示画面260では、複数のゲームのそれぞれについて達成度インジケータ250および達成度数値252によるゲーム達成度が表示されており、なかでもDEFベースボールの達成度が100%であって、プラチナトロフィを獲得したことを示すプラチナトロフィ画像254が示されている。
この例では、ABCレーサーの達成度数値252が50%と表示され、その横に、「体験版のポイントを加算すると60%」との表示されている。達成度インジケータ250では、50%を表現する半分が色づけされ、60%の位置に点線が描かれている。これは、達成度の50%分は、製品版のゲームソフトウェアで獲得されたが、達成度の10%分は、体験版のゲームソフトウェアで獲得されたことを示している。ユーザは、この達成度を見て、ABCレーサーの製品版の権利ファイルを購入すれば、すぐに達成度が60%に上がることを知ることができる。このような表示により、製品版権利ファイル購入のインセンティブを高めることができる。
図12は、獲得したトロフィを表現する画面例を示す。獲得トロフィ表示画面266では、獲得したトロフィが、トロフィ画像268a〜268dおよびトロフィ画像262a〜262dにより表現される。獲得トロフィ表示画面266は、図11のアイコン画像258cに対してユーザから詳細画面の表示指示がなされると、表示処理部230により生成される。
アイコン画像表示部232がアイコン画像258cを、獲得アイテム表示部238が、トロフィ画像268a〜268d、トロフィ画像262a〜262dを、獲得トロフィ表示画面266中に配置する。トロフィ画像268a〜268dは、アイテム設定情報60から抽出されたアイコン画像であり、トロフィ画像262a〜262dは、システムソフトウェア200が用意した画像である。たとえばトロフィ画像262a〜262dは、ブロンズ、シルバー、ゴールドのいずれかの配色がなされて構成されている。獲得アイテム表示部238は、アイコン画像258cで示されるゲームのアイテム獲得情報70から、ユーザが獲得したトロフィのアイテムIDを抽出し、アイテム設定情報60において、そのアイテムIDに対応付けられているトロフィ画像268および説明情報264を取得して、獲得トロフィ表示画面266中のトロフィ画像262の右隣に配置する。これによりユーザは、これまでどのトロフィを取得し、またトロフィの種類と、達成したミッションの内容を、獲得トロフィ表示画面266の表示情報から知ることができる。
このように獲得アイテム表示部238は、アイテム獲得情報70を用いて、獲得したトロフィ画像を獲得トロフィ表示画面266に表示するが、ここで、トロフィ画像268cおよびトロフィ画像262cには、それぞれ、体験版のゲームソフトウェアで取得されたトロフィであることを示すマーク269a、269bが付加される。この付加処理は、獲得トロフィに対応付けられた属性フラグ値が0の場合に行われ、これにより、製品版で獲得したトロフィ画像268、262の標準態様の表示と比較して、異なる態様の表示とされる。なお、製品版で獲得したトロフィ画像と表示態様が異なればよく、たとえば表示色を異ならせたり、またぼかした表示としたり、さらには、全く違うトロフィ画像を用いたりしてもよい。このように、体験版で獲得したトロフィ画像は、製品版で獲得したトロフィ画像と異なる表示態様で表示される。ユーザは、獲得トロフィ表示画面266を見ると、獲得したトロフィ画像をきれいに揃えたいと思うようになるため、製品版の権利ファイルの購入意欲を高める効果がある。
図13は、自分と他人のゲーム達成度を比較する画面例を示す。達成度比較画面270では、自分と他人の少なくとも一方がアイコンを獲得しているゲームについて、達成度導出部220が、製品版のゲームソフトウェアを実行して獲得したアイテム獲得情報70から達成度を導出し、表示処理部230が達成度比較画面270を生成する。図11に示した達成度表示画面260では、体験版のゲームソフトウェアを実行して獲得したトロフィも用いて、トータルの達成度をユーザに仮提示していたが、図13に示す達成度比較画面270では、製品版購入のユーザとの公平を担保するために、製品版のゲームで獲得したトロフィのみを、達成度の比較対象としている。
登録処理部402が通信部404を介して達成度管理サーバ18から他の特定のユーザのアイテム獲得情報70を取得し、ハードディスクドライブ34に格納する。他のユーザは、ゲーム装置10においてネットワークアカウントIDが記録されているユーザである。これにより登録処理部402は、他のユーザのアカウントIDを達成度管理サーバ18に通知し、アイテム獲得情報70を取得できる。このとき、他のユーザのアイテム獲得情報70に、ゲーム装置10が有していないゲームのものが含まれていれば、登録処理部402は、そのゲームのアイテム設定情報60についても達成度管理サーバ18から取得する。なお、他のユーザのアイテム獲得情報70には、体験版で獲得したトロフィの獲得情報は含まれていない。
アイテム情報取得部210は、達成度管理サーバ18から取得したアイテム設定情報60およびアイテム獲得情報70を取得し、達成度導出部220に供給する。達成度導出部220は、自分と他人のゲームの達成度を導出する。プレイしたことのないゲームについては、達成度が0とされる。達成度情報表示部234は、自分と他人のゲームの達成度を達成度比較画面270中に並べて表示する。達成度比較画面270において、フォーカス領域に配置されたアイコン画像258cに対しては、自分と他人の達成度インジケータ250a、250bが表示される。また、各アイコン画像258に対して、ゲームタイトルが表示され、また自分と他人の達成度数値252が表示される。
図13に示す達成度比較画面270では、自分はJKLサッカーをやったことがない、もしくは獲得アイテムがないために、達成度が0%表示となっている。このように、自分の獲得アイテムがないゲームについても、ゲームタイトルと、他人の達成度数値252を表示することで、その人が、どれだけゲームをやり込んでいるか知ることができる。
図14は、ユーザレベルを表現する画面例を示す。レベル表示画面272では、情報処理システム1に登録されている全ユーザの中での自分のレベルを確認するために、ユーザレベルと、これまで獲得したトロフィ数が示される。図14中のインジケータは、現レベルにおいて、次のレベルに到達するポイント数を100%としたときの獲得ポイントの割合を表現している。
レベル導出部222は、ハードディスクドライブ34に格納されている全てのゲームのアイテム獲得情報70とアイテム設定情報60を用いてポイントを算出し、算出したポイントをもとにユーザレベルを導出する。このときレベル導出部222は、体験版のゲームソフトウェアで獲得したトロフィについては、ポイント算出の対象とせず、製品版のゲームソフトウェアで獲得したトロフィのみを、ポイント算出の対象とする。なお、この区別は、既述したように、トロフィ獲得テーブルの属性フラグ値にもとづいて行われる。1つのゲームのポイントの算出処理については、達成度導出部220に関連して説明したとおりであり、この算出処理を全てのゲームについて実行して、集計することで、全ゲームの獲得ポイント数を導出できる。
ユーザレベルは、獲得ポイント数が増えると、レベル1から順にあがっていく。たとえば、100ポイントを1つのレベルの単位とすると、獲得ポイント数が620ポイントであれば、レベル導出部222は、レベルが6であり、レベル6における達成度が20%であることを導出する。レベル導出部222は、導出結果をレベル情報表示部236に送り、レベル情報表示部236は、レベル表示画面272において、レベルの数値を6と表示し、またレベル6における達成度20%をインジケータ表示する。
ここでは、図14に示すレベル表示画面272のユーザレベルを、システムソフトウェア200におけるレベル導出部222が導出することとしたが、レベル導出部222の機能は、達成度管理サーバ18のコントローラ500が実現してもよい。達成度管理サーバ18は、ゲーム装置10と同期をとることで最新のアイテム獲得情報70を保有しているため、コントローラ500は、各ユーザのユーザレベルと、各ユーザがこれまで獲得したトロフィ数を導出できる。したがってコントローラ500は、記憶装置80に格納されているユーザごとのゲームのアイテム獲得情報70と、各ユーザがトロフィを獲得したゲームのアイテム設定情報60とを用いてポイントを算出し、各ユーザの最新のレベルを導出する。達成度管理サーバ18がレベル導出機能をもつことで、たとえば各レベルにおけるユーザの分布を作成するなど、統計的な処理を行うこともでき、各ユーザが自分の相対的なレベルを把握しやすくなるという利点がある。
図3に示したように、アイテム獲得情報70aは、達成度管理サーバ18に送信され、またアイテム獲得情報70bがゲーム装置10に送信されることで、ゲーム装置10とアイテム獲得情報70の間で、それぞれアイテム獲得情報70a、70bが同期される。既述したようにユーザレベルは、情報処理システム1において、各ユーザのトータルのゲーム技量を評価するための指標となるため、達成度管理サーバ18においても、製品版のゲームソフトウェアを実行したときに獲得したトロフィのみが評価対象とされる。したがって、ゲーム装置10は、アイテム獲得情報70aを達成度管理サーバ18に送信する際、属性フラグ値が0の獲得情報は除外して、属性フラグ値が1の獲得情報のみを送信する。これにより、達成度管理サーバ18において、体験版で獲得したトロフィが、ユーザレベルの算出に用いられる状況を回避できる。
なお、ゲーム装置10は、達成度管理サーバ18に対して、属性フラグ値も含めたトロフィ獲得テーブルを送信し、達成度管理サーバ18は、属性フラグ値が0のトロフィを算出対象から外すことで、ユーザレベルを導出してもよい。
図15は、アイテム獲得処理のフローチャートを示す。図15に示すフローチャートにおいては、各部の処理手順を、ステップを意味するS(Stepの頭文字)と数字との組み合わせによって表示する。また、Sと数字との組み合わせによって表示した処理で何らかの判断処理が実行され、その判断結果が肯定的であった場合は、Y(Yesの頭文字)を付加して、例えば、(S10のY)と表示し、逆にその判断結果が否定的であった場合は、N(Noの頭文字)を付加して、(S10のN)と表示する。なお、フローチャートにおける表示の意味は、他の図面に示すフローチャートでも同じである。
ゲームソフトウェア300において、アプリケーション実行部302が、ユーザによるゲームコントローラ40の操作入力を受けて、ゲームプログラムを実行する(S10)。条件達成検出部304は、ゲームの進行状況から、ゲームにおいて予め設定されたゲームのプレイ条件が達成されたか検出する(S12)。条件達成検出部304は、ミッションが達成されたことを検出すると(S12のY)、その条件に対してハードコーディングされているアイテムIDを取得する。なお、アイテムIDを取得したことをもって、プレイ条件の達成が検出されてもよい。アイテムID通知部306は、取得したアイテムIDをアイテム管理ユーティリティ400に通知する(S14)。なおゲームのプレイ条件が達成されなければ(S12のN)、アイテムIDは通知されない。
アイテム管理ユーティリティ400において、アイテムID取得部420は、通知されたアイテムIDを取得し、プレイアイテム獲得処理部422に渡す。プレイアイテム獲得処理部422は、アイテムIDおよび実行情報保持部430に保持されている実行情報を用いて、アイテム獲得情報70を生成して、アイテム獲得処理を実行する(S16)。このときアイテム獲得状況調査部414は、アイテム設定情報60およびアイテム獲得情報70を参照して、アイテムの獲得状況を調査し、システムソフトウェア200における特別アイテム獲得条件達成判定部202に通知する(S18)。
特別アイテム獲得条件達成判定部202は、アイテム獲得状況調査部414の調査結果をもとに、特別アイテムを獲得するためのアイテム獲得条件が達成されたか否かを判定する(S20)。具体的には、プラチナフラグ値が1のアイテムに獲得されていないものがあれば、特別アイテム獲得条件達成判定部202は、アイテム獲得条件が達成されていないことを判定する(S20のN)。一方で、プラチナフラグ値が1のアイテムが全て獲得されていれば、特別アイテム獲得条件達成判定部202は、アイテム獲得条件が達成されたことを判定する(S20のY)。このとき特別アイテム獲得条件達成判定部202は、獲得したアイテムの属性フラグ値を参照し、属性フラグ値0が1つでも存在していれば、特別アイテムの属性フラグ値を0に設定する。なお全てのアイテムの属性フラグ値が1であれば、特別アイテムの属性フラグ値を1に設定する。特別アイテム獲得条件達成判定部202は、特別アイテムのアイテムIDおよび属性フラグ値をアイテム管理ユーティリティ400に通知し(S22)、特別アイテム獲得処理部412は、アイテムIDおよび属性フラグ値を用いて、アイテム獲得情報70を生成する(S24)。ゲームが終了するまで(S26のN)、このアイテム獲得処理は行われ、ゲームが終了すると(S26のY)、アイテム獲得処理は終了する。
図16は、獲得トロフィ表示画面生成のフローチャートを示す。獲得アイテム表示部238が、獲得したトロフィを表現するトロフィ画像を取得すると(S30)、そのトロフィの属性フラグ値を参照する(S32)。属性フラグ値が1の場合(S32のY)、獲得アイテム表示部238は、トロフィ画像を画面中の所定位置に配置する。一方、属性フラグ値が0の場合(S32のN)、獲得アイテム表示部238は、トロフィ画像にマークを付加し(S34)、マークとともにトロフィ画像を画面中の所定位置に配置する(S36)。獲得アイテム表示部238は、表示するトロフィの全てに対して、S30〜S36の処理を実行する。
以上、本発明を実施例をもとに説明した。実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施例で説明したように、実行情報保持部430は、実行中のアプリケーションプログラムが製品版であるか、体験版であるか、またはレンタル版であるかを特定する実行情報を保持している。さらに実行情報保持部430は、セーブデータを利用してアプリケーションプログラムが実行されている場合に、そのセーブデータが本人のものであるか、または別人のものであるかを特定する情報を保持してもよい。この場合、プレイアイテム獲得処理部422は、属性情報として、セーブデータが本人のものであるか否かを特定する第2の属性フラグ値を含めて、トロフィ獲得テーブルを生成する。セーブデータが本人のものである場合、第2の属性フラグ値は1に設定され、セーブデータが本人のものでない場合、第2の属性フラグ値は0に設定される。アイテム獲得情報の同期処理は、実施例で説明した属性フラグ値と、この第2の属性フラグ値とがともに1である場合に行われ、またアイテム画像の標準態様での表示は、同様に、実施例で説明した属性フラグ値と、この第2の属性フラグ値とがともに1である場合に行われるようにされてもよい。
実施例では、ゲームプレイ途中に、ゲームソフトウェアが体験版から製品版に変更された場合に、プレイアイテム獲得処理部422が、実行情報保持部430に保持されている実行情報を参照して、トロフィ獲得テーブルにおいて、属性フラグ値0を属性フラグ値1に変更して、体験版で獲得したトロフィを製品版で獲得したトロフィに変更した。たとえば、ユーザが製品版の記録媒体50を購入して、メディアドライブ32に挿入した場合、実行情報保持部430が記録媒体50から製品版であることを特定する実行情報を取得して保持することで、プレイアイテム獲得処理部422は、ゲームプレイ前に、実行情報を参照して、トロフィ獲得テーブルにおける属性フラグ値0を属性フラグ値1に変更してもよい。このとき、実行情報保持部430に保持されている実行情報は、ゲームプログラムが所定の環境下で実行可能であることを示しており、プレイアイテム獲得処理部422は、このような実行情報に基づいて、トロフィ獲得テーブルにおける属性フラグ値0を属性フラグ値1に変更することも可能である。