まず、本発明の概要を説明する。本発明の実施例にかかる達成度管理システムでは、ユーザがゲームプレイ中に、ゲームソフトウェアにより予め設定された条件(ミッション)をクリアすると、ゲームソフトウェアより、達成した条件に応じたアイテムが付与される。ミッションは、たとえばレーシングゲームにおいて特別なレースで優勝することや、格闘ゲームにおいて特定の敵キャラクタを倒すことなど、ゲームソフトウェアにおいて適宜設定される。
本実施例において、付与されるアイテムを「トロフィ」と呼ぶ。トロフィの種類は複数存在し、本実施例では、ブロンズ、シルバー、ゴールド、プラチナの4つのグレード(種類)のトロフィを用意する。ゲームソフトウェアは、ブロンズ、シルバー、ゴールドの3つのグレードに対して、この順に難易度の高いミッションを割り当てる。したがって、ブロンズトロフィには達成しやすいミッションが割り当てられ、またゴールドトロフィには達成が困難なミッションが割り当てられることになる。なおプラチナトロフィは、ゲーム中の個々のミッションには対応せず、たとえばゲームソフトウェアが用意した全てのミッションをクリアすると、システムソフトウェアが、プラチナトロフィをユーザに付与する。
ユーザは、ネットワーク上の達成度管理サーバを介して、自身の獲得トロフィを、他のユーザの獲得トロフィと比較できる。達成度管理サーバは、ユーザの獲得トロフィを管理し、たとえばユーザが複数のゲーム装置でゲームプレイした場合には、それぞれのゲーム装置で獲得したトロフィを集約して、それぞれのゲーム装置におけるトロフィ獲得情報を同期させる。またトロフィの種類ごとにポイントが設定されており、ユーザは、ポイントの獲得数を増やすことで、自身のゲームプレイヤとしてのレベルを上げることができる。
なおトロフィの獲得は、ユーザのゲームプレイにより行われなければならず、したがって不正にトロフィを獲得することは許されない。そのため、たとえば他人のセーブデータを利用してゲームプレイしたときには、トロフィを獲得させないようにすることで、プレイヤ間の公平性を担保することができる。
図1は、本発明の実施例にかかる達成度管理システムを示す。達成度管理システム1は、ゲームコントローラ40と、ゲームプログラムを実行するゲーム装置10と、ゲーム装置10による処理結果を画像出力する表示機器12とを備える。ゲームコントローラ40は、ユーザにゲーム装置10への操作入力を行わせる入力インタフェース装置である。ゲームコントローラ40は、無線により操作入力を送信するものであってもよく、またケーブルでゲーム装置10に接続されるものであってもよい。表示機器12はスピーカを有するテレビであってよい。表示機器12は、ゲーム装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。ゲーム装置10はルータ15を介して、ネットワーク16に接続する達成度管理サーバ18と通信可能に接続されており、所望のデータを送受信することができる。達成度管理サーバ18は、ゲーム達成度を管理する主体により運営されて、ユーザがゲームで獲得したトロフィを管理する。
達成度管理システム1では、ユーザがゲームプレイ中に、ゲームソフトウェアにより予め設定された条件(ミッション)をクリアすると、その条件に応じたトロフィが付与される。ユーザのトロフィ獲得情報はゲーム装置10の記憶装置に記録されるとともに、達成度管理サーバ18に送信されて蓄積される。達成度管理サーバ18は、ネットワーク上のユーザのアカウントIDをもとに、ユーザごとにトロフィ獲得情報を蓄積する。たとえば、一人のユーザが複数のゲーム装置10でプレイした場合、達成度管理サーバ18は、アカウントIDが同じであれば、過去に蓄積されたトロフィ獲得情報に、新しいトロフィ獲得情報をマージして集約していく。
図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を介して、達成度管理サーバ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のハードディスクドライブ34に、ゲームソフトウェアが用意した全てのトロフィIDと、トロフィが獲得されたか否かを獲得フラグ値で示すトロフィ獲得テーブルを用意しておく。初期状態では、獲得フラグ値は0に設定されている。ゲームソフトウェアが、達成した条件に対応するトロフィIDをアイテム管理ユーティリティに渡すと、アイテム管理ユーティリティが、該当するトロフィIDの獲得フラグ値を1に設定する。獲得フラグ値が1に設定されたトロフィIDは、トロフィ獲得情報を構成する。これによりゲームソフトウェアが、設定した条件の達成を検出するたびに、トロフィ獲得テーブルを更新し、トロフィ獲得情報を増やしていく。
またユーザがネットワークのアカウントIDを保持していれば、アイテム管理ユーティリティは、達成度管理サーバ18にトロフィ獲得情報を送信する。達成度管理サーバ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の最初の起動時に実行される。
このときゲームソフトウェア300は、達成度管理システム1が提供するサービスにサインインしていれば、達成度管理サーバ18においてユーザのアカウントIDに紐付けられているアイテム獲得情報70bをチェックする。達成度管理サーバ18におけるアイテム獲得情報70bに、ハードディスクドライブ34に保持しているアイテム獲得情報70aで特定されるトロフィ以外のトロフィが含まれている場合、トロフィ登録機能は、そのアイテム獲得情報70bを取得し、ハードディスクドライブ34に追加保存する。これによりゲーム装置10と達成度管理サーバ18との間で同期をとることができる。このときトロフィ登録機能は、アイテム獲得情報70aとアイテム獲得情報70bの差分を取得することで、転送データ量を削減できる。また、達成度管理サーバ18におけるアイテム設定情報60bが最新のものに更新されている場合には、ゲームソフトウェア300は、そのアイテム設定情報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の表示画面を生成する。
以下に、ゲーム装置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を備える。特別アイテム処理部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が、記録媒体50またはハードディスクドライブ34に記録されているゲームソフトウェアに含まれているアイテムファイルから、アイテム設定情報60を取り出し、ハードディスクドライブ34にインストールする。これによりトロフィ獲得処理が開始可能となる。
ゲームソフトウェア300において、アプリケーション実行部302が、ユーザによるゲームコントローラ40の操作入力を受けて、ゲームプログラムを実行する。本実施例において、ゲームソフトウェアは、トロフィを獲得するためのゲームプレイの条件を設定する。この条件は、「ミッション」と呼ばれ、ユーザに公開されてもよく、また非公開とされてもよい。ゲームソフトウェアは、各ミッションと、ミッション達成の際にユーザに付与するトロフィのID(アイテムID)とを対応付けたテーブルを有する。図5は、ミッションとアイテムIDを対応付けたミッションテーブルの一例を示す。
ゲーム条件達成判定部304は、ゲームの進行状況を監視し、ミッション、すなわちゲームにおいて予め設定されたゲームプレイの条件が達成されたか否かを判定する。ゲーム条件達成判定部304は、ミッションが達成されたことを判定すると、ミッションテーブルから、達成したミッションに対応付けられているアイテムIDを取得する。アイテムID通知部306は、取得したアイテムIDをアイテム管理ユーティリティ400に通知する。
アイテム管理ユーティリティ400において、アイテムID取得部420は、通知されたアイテムIDを取得し、プレイアイテム獲得処理部422に渡す。プレイアイテム獲得処理部422は、アイテムIDを用いて、アイテム獲得情報70を生成する。アイテム獲得情報70は、アイテムを獲得したことを示す情報であり、具体的には以下に示す情報である。
図6は、アイテムIDと、アイテム獲得の有無の関係を示すトロフィ獲得テーブルを示す。獲得されていないアイテムには、獲得フラグ値0が設定されており、初期状態では全ての獲得フラグ値が0に設定されている。ミッションが達成されると、そのミッションに対応するアイテムIDの獲得フラグ値が1に設定される。具体的には、プレイアイテム獲得処理部422が、アイテムID取得部420からアイテムIDを受け取ると、そのアイテムIDに対応付けられている獲得フラグ値を1に設定する。以上のように、アイテム獲得情報70は、アイテムIDと獲得フラグ値の組み合わせで構成される情報となる。
なお、プレイアイテム獲得処理部422が獲得処理を行うアイテムは、ブロンズ、シルバー、ゴールドの3種類のトロフィであり、プラチナトロフィは含まれない。プラチナトロフィのアイテムIDは“0”であり、ブロンズ、シルバー、ゴールドのアイテムIDは“1”以上が割り当てられる。このようにゲームソフトウェア300は、ブロンズ、シルバー、ゴールドの3種類のトロフィをユーザに付与することができる。一方、プラチナトロフィは、システムソフトウェア200によりユーザに付与される。
特別アイテム獲得条件達成判定部202は、プレイアイテム獲得処理部422によりアイテムの獲得処理がなされると、アイテム獲得状況調査部414に、アイテムの獲得状況を調査させる。アイテム獲得状況調査部414は、アイテム設定情報60およびアイテム獲得情報70を参照して、アイテムの獲得状況を調査し、特別アイテム獲得条件達成判定部202に通知する。
前述したように、トロフィには、属性として「プラチナリンク」の情報が設定されている。プラチナリンクの情報は、フラグ値として設定されており、フラグ値1は、そのトロフィの獲得がプラチナトロフィを獲得するための条件に含まれることを意味し、フラグ値0は、そのトロフィの獲得がプラチナトロフィを獲得するための条件に含まれないことを意味する。アイテム設定情報60は、アイテムを追加する場合に更新されるが、デフォルトのアイテム設定情報60においては、全てのアイテムのプラチナリンクのフラグ値が1に設定されているものとし、追加アイテムのフラグ値は0に設定されるものとしてもよい。
アイテム獲得状況調査部414は、アイテム設定情報60を参照して、プラチナリンクのフラグ値(以下、プラチナフラグ値)が1に設定されているアイテムIDを抽出し、続いてトロフィ獲得テーブルを参照して、抽出した全てのアイテムIDの獲得フラグ値が1であるか調査する。
プラチナフラグ値が1のアイテムに獲得されていないものがあれば、アイテム獲得状況調査部414は、その調査結果を特別アイテム獲得条件達成判定部202に通知する。これを受けて特別アイテム獲得条件達成判定部202は、特別アイテム、すなわちプラチナトロフィを獲得するためのアイテム獲得条件が達成されていないことを判定する。
一方、プラチナリンクが設定されているアイテムの全てが獲得されていれば、アイテム獲得状況調査部414は、その調査結果を特別アイテム獲得条件達成判定部202に通知し、特別アイテム獲得条件達成判定部202は、アイテム獲得条件が達成されたことを判定する。
なおアイテム獲得状況調査部414による調査機能を、特別アイテム獲得条件達成判定部202が有してもよい。この場合、特別アイテム獲得条件達成判定部202は、アイテム情報供給部406からアイテム設定情報60およびアイテム獲得情報70を供給されて、アイテムの獲得状況を調査する。
プラチナトロフィの獲得条件が達成された場合、特別アイテム獲得条件達成判定部202は、プラチナトロフィのアイテムIDをアイテムID取得部418に通知する。このID値は0である。アイテムID取得部418は、通知されたアイテムIDを取得し、特別アイテム獲得処理部412に渡す。特別アイテム獲得処理部412は、アイテムIDを用いて、アイテム獲得情報70を生成し、具体的にはトロフィ獲得テーブルにおいてアイテムID0の獲得フラグ値を1に設定する。
このとき特別アイテム獲得条件達成判定部202は、特別アイテムID通知部416に、アイテムID0をゲームソフトウェア300に通知させることを指示する。特別アイテムID通知部416は、プラチナトロフィのアイテムID0をゲームソフトウェア300に通知し、これを受けてアプリケーション実行部302は、ゲーム画面中に、プラチナトロフィを取得したことを示すメッセージを表示させてもよい。
なお、このメッセージは、システムソフトウェア200によりゲーム画面に表示されてもよい。プラチナトロフィの獲得条件が達成されると、メッセージ生成部204は、特別アイテム獲得条件達成判定部202からの指示を受けて、プラチナトロフィ獲得に関するメッセージを生成する。メッセージ表示部240は、生成されたメッセージを、実行中のゲーム画面中の所定の領域に重畳表示させる。これにより、仮にゲームソフトウェア300が、プラチナトロフィ獲得のメッセージを表示しない場合であっても、システムソフトウェア200がゲーム画面に重畳表示するため、ユーザは、必ずメッセージを見る機会をもつことができる。
このようにゲーム装置10では、ゲームのミッションを達成した結果としてゲームソフトウェア300がブロンズ、シルバー、ゴールドのトロフィをユーザに付与し、また、ブロンズ、シルバー、ゴールドのトロフィをユーザが獲得した結果としてシステムソフトウェア200がプラチナのトロフィをユーザに付与する。これによりプラチナトロフィのプレミアム感をだすことができる。システムソフトウェア200がプラチナトロフィ獲得処理を行うことで、ゲームソフトウェア300の処理負荷を軽減でき、またゲーム開発者の開発負担も軽減できる。
<トロフィ表示処理>
ユーザからのトロフィ表示要求を受けて、アイテム情報供給部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に含まれる獲得済みトロフィの種類別の個数を抽出し、獲得ポイントを算出する。たとえば、ブロンズトロフィが16、シルバートロフィが8、ゴールドトロフィが2、プラチナトロフィが0あれば、獲得ポイントは600(=16×10+8×30+2×100)となる。達成度導出部220は、ゲームの達成度を(獲得ポイント/総ポイント)×100として算出し、ここでは60%を導出する。
ゲームの達成度を(獲得ポイント/総ポイント)×100として導出することで、達成度導出部220は、ミッションの難易度を加味した達成度を導出できる。たとえば獲得ポイントでゲームの達成度を表現すると、総ポイントが加味されていないため、達成度を表現することはできない。また獲得トロフィ数で達成度を表現しても、難易度が加味されていないため、正確な達成度とはいえない。このように達成度導出部220は、客観性のあるゲーム達成度を導出することができる。導出した達成度は、達成度情報表示部234に送られる。達成度情報表示部234は、導出した達成度を表示機器12に表示する。
なお複数のゲームについてのアイテム設定情報60およびアイテム獲得情報70がハードディスクドライブ34に格納されている場合には、達成度導出部220は、複数のゲームの達成度を導出する。これにより達成度情報表示部234は、複数のゲームの達成度を表示機器12に表示することができる。
図7は、ゲーム達成度を表現する画面例を示す。達成度表示画面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が示されている。
図8は、獲得したトロフィを表現する画面例を示す。獲得トロフィ表示画面266では、獲得したトロフィが、トロフィ画像268a〜268dおよびトロフィ画像262a〜262dにより表現される。獲得トロフィ表示画面266は、図8のアイコン画像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の表示情報から知ることができる。
図9は、自分と他人のゲーム達成度を比較する画面例を示す。達成度比較画面270では、自分と他人の少なくとも一方がアイコンを獲得しているゲームについて、達成度導出部220が達成度を導出し、表示処理部230が達成度比較画面270を生成する。
登録処理部402が通信部404を介して達成度管理サーバ18から他の特定のユーザのアイテム獲得情報70を取得し、ハードディスクドライブ34に格納する。ただし他のユーザは、ゲーム装置10においてネットワークアカウントIDが記録されているユーザである。これにより登録処理部402は、他のユーザのアカウントIDを達成度管理サーバ18に通知し、アイテム獲得情報70を取得できる。このとき、他のユーザのアイテム獲得情報70に、ゲーム装置10が有していないゲームのものが含まれていれば、登録処理部402は、そのゲームのアイテム設定情報60についても達成度管理サーバ18から取得する。
アイテム情報取得部210は、達成度管理サーバ18から取得したアイテム設定情報60およびアイテム獲得情報70を取得し、達成度導出部220に供給する。達成度導出部220は、自分と他人のゲームの達成度を導出する。プレイしたことのないゲームについては、達成度が0とされる。達成度情報表示部234は、自分と他人のゲームの達成度を達成度比較画面270中に並べて表示する。達成度比較画面270において、フォーカス領域に配置されたアイコン画像258cに対しては、自分と他人の達成度インジケータ250a、250bが表示される。また、各アイコン画像258に対して、ゲームタイトルが表示され、また自分の他人の達成度数値252が表示される。
図9に示す達成度比較画面270では、自分はJKLサッカーをやったことがない、もしくは獲得アイテムがないために、達成度が0%表示となっている。このように、自分の獲得アイテムがないゲームについても、ゲームタイトルと、他人の達成度数値252を表示することで、その人が、どれだけゲームをやり込んでいるか知ることができる。
図10は、ユーザレベルを表現する画面例を示す。レベル表示画面272では、達成度管理システム1に登録されている全ユーザの中での自分のレベルを確認するために、ユーザレベルと、これまで獲得したトロフィ数が示される。図10中のインジケータは、現レベルにおいて、次のレベルに到達するポイント数を100%としたときの獲得ポイントの割合を表現している。
レベル導出部222は、ハードディスクドライブ34に格納されている全てのゲームのアイテム獲得情報70とアイテム設定情報60を用いてポイントを算出し、算出したポイントをもとにユーザレベルを導出する。1つのゲームのポイントの算出処理については、達成度導出部220に関連して説明したとおりであり、この算出処理を全てのゲームについて実行して、集計することで、全ゲームの獲得ポイント数を導出できる。
ユーザレベルは、獲得ポイント数が増えると、レベル1から順にあがっていく。たとえば、100ポイントを1つのレベルの単位とすると、獲得ポイント数が620ポイントであれば、レベル導出部222は、レベルが6であり、レベル6における達成度が20%であることを導出する。レベル導出部222は、導出結果をレベル情報表示部236に送り、レベル情報表示部236は、レベル表示画面272において、レベルの数値を6と表示し、またレベル6における達成度20%をインジケータ表示する。
図7において達成度インジケータ250の一例を示したが、アイテム設定情報60が更新されてトロフィが追加された場合は、総ポイントが増えることになる。この場合に、追加トロフィ分のポイントを加算して総ポイントを算出すると、達成度が、アイテム設定情報60の更新前よりもが下がる。そこで、達成度導出部220は、達成度を計算するための総ポイントを、デフォルトのアイテム設定情報60のみから算出し、追加トロフィ分のポイントは含めない。そのため、達成度が100%の状態から、追加トロフィを取得すると、達成度は100%を超える。
図11(a)は、100%の領域を超えて110%を表現する達成度インジケータ250cを示す。達成度インジケータ250cは、100%の境界線を突き抜けて表示される。この場合、100%の領域が分かるように、たとえばインジケータ枠とインジケータとの色を変えるなどすることが好ましい。
図11(b)は、100%の領域を折り返して110%を表現する達成度インジケータ250dを示す。達成度インジケータ250dでは、0から10%の領域で、110%であることを示している。このように折り返し表示により表現することで、インジケータ枠の範囲内で表現することが可能となる。
<セーブデータの取り扱い>
以上のように本実施例の達成度管理システム1では、ゲーム装置10がトロフィを獲得し、その獲得状況を効果的に表示する。ユーザはトロフィを多く集めることで、ゲームの達成度を上げることができ、またレベルを高めることができる。そのため、達成度管理システム1では、ユーザ間の公平性が担保されなければならず、不正にトロフィを集める行為を制限する必要がある。そこでゲーム装置10は、公平性を担保する一つの方策として、他人のセーブデータを使用してトロフィを獲得することを禁止する。
ゲーム装置10において、ゲームデータのセーブ処理またはロード処理を行う際、ゲームソフトウェア300は、セーブ処理またはロード処理を実行するためのセーブデータユーティリティ関数を呼び出す。セーブデータユーティリティ関数は、セーブ用のAPI処理モジュールおよびロード用のAPI処理モジュールを構成する。
本実施例において、セーブ用のAPI処理モジュールは、ゲームデータにユーザのID情報を付加してハードディスクドライブ34にセーブする機能をもつ。またロード用のAPI処理モジュールは、ハードディスクドライブ34からセーブデータをロードする際に、セーブデータの付加情報を抽出する機能をもつ。ロード用API処理モジュールは、抽出した付加情報を、アイテム管理ユーティリティ400に引き渡す。
図12は、セーブデータユーティリティ460を備えたゲーム装置10の構成を示す。セーブ用API処理モジュール462は、データセーブ用のセーブデータユーティリティ関数がゲームソフトウェア300により呼び出されることで構成され、セーブ処理部として機能する。セーブ用API処理モジュール462は、ID取得部464、ゲームデータ取得部466および付加処理部468を有する。
ID取得部464は、セーブデータに付加するためのID情報を取得する。フラッシュメモリ510は、アカウントID保持部512、ローカルID保持部514および本体ID保持部516を有する。アカウントID保持部512は、ネットワークのアカウントIDを保持する。アカウントIDは、達成度管理サーバ18へのユーザ登録に際して付与され、そのためユーザ登録を行っていない場合、アカウントID保持部512には空のデータが書き込まれている。なお、このときユーザは、達成度管理サーバ18にアクセスすることはできない。ローカルID保持部514は、ユーザがゲーム装置10に対してローカルに設定したローカルIDを保持する。本体ID保持部516は、ゲーム装置10本体のIDを保持する。
ID取得部464は、アカウントID保持部512にアカウントIDが保持されていればアカウントIDを取得し、アカウントIDが保持されていなければローカルIDおよび本体IDを取得する。以下では、アカウントID、またはローカルIDと本体IDの組み合わせを、まとめてユーザID情報とよぶ。ゲームデータ取得部466は、ゲームソフトウェア300からアプリケーションの処理結果などのセーブすべきゲームデータを取得する。付加処理部468は、ID取得部464により取得されたユーザID情報を、ゲームデータ取得部466により取得されたゲームデータに付加情報として付加して、ハードディスクドライブ34に記憶する。これにより、セーブデータ90は、付加情報付きのゲームデータとして記憶される。
最初にゲームデータをセーブするときに付加処理部468により付加されるユーザID情報は、作成者IDとして取り扱われる。作成者IDは、その後セーブデータがロードされて実行され、セーブされるときにも、常に付加された状態を維持する。たとえば、セーブデータを最初に作成したユーザとは異なるユーザが、セーブデータを利用してゲームをプレイし、ゲームデータをセーブする場合であっても、作成者IDは、そのセーブデータに付加されたままであり、書き換えられることはない。このとき、セーブデータには、作成者IDのみが付加され、作成者とは異なるユーザのIDが付加されないようにしてもよい。つまりセーブ用API処理モジュール462は、セーブすべきゲームデータが、ロードされたセーブデータを用いてアプリケーション実行部302により実行されたゲームデータである場合に、ロードされたセーブデータに付加されていたユーザID情報を、ゲームデータに付加したハードディスクドライブ34にセーブする。なお、この場合に、セーブデータに、作成者IDと、作成者とは異なるユーザのID情報とを付加してもよい。
ロード用API処理モジュール470は、データロード用のセーブデータユーティリティ関数がゲームソフトウェア300により呼び出されることで構成され、ロード処理部として機能する。ロード用API処理モジュール470は、付加情報取得部472およびロード実行部474を備える。
付加情報取得部472は、セーブデータ90のロード実行前に、ハードディスクドライブ34に記録されたセーブデータ90から作成者IDを取得する。付加情報取得部472は、取得した作成者IDを、アイテム管理ユーティリティ400の判定部452に渡す。続いてロード実行部474は、ハードディスクドライブ34からセーブデータ90をロードする。
アイテム管理ユーティリティ400において、ID取得部450は、フラッシュメモリ510から、現在ゲームをプレイしているユーザのユーザID情報を取得する。ID取得部450は、アカウントID保持部512にアカウントIDが保持されていればアカウントIDを取得し、アカウントIDが保持されていなければローカルIDおよび本体IDを取得し、判定部452に渡す。判定部452は、付加情報取得部472から供給された作成者IDと、ID取得部450で取得されたユーザID情報との一致性を判定する。なお一致性の判定は、原則として完全一致か否かで行われる。したがって、作成者IDおよびID取得部450で取得されたユーザID情報とが、それぞれローカルIDと本体IDを含む場合には、両者が一致しているか否かで一致性が判定される。
判定部452は、作成者IDおよびID取得部450で取得されたユーザID情報とが一致していない場合にエラー判定を行い、機能制限部454に通知する。エラー判定が通知されると、機能制限部454は、プレイアイテム獲得処理部422の機能を制限する。したがってゲームソフトウェア300がミッションの達成を判定して、対応するアイテムIDをアイテム管理ユーティリティ400に送り、アイテムID取得部420がアイテムIDを取得した場合であっても、プレイアイテム獲得処理部422は、アイテムの獲得処理を実行しない。これによりゲーム装置10は、最初にセーブデータを作成したユーザとは異なるユーザがセーブデータを利用してプレイした場合には、トロフィを獲得させないこととした。これにより、たとえばレアなトロフィ獲得の直前にセーブしたデータが流通して、実質的にゲームプレイをしていないユーザがトロフィを獲得するような状況を防ぐことができる。
なおユーザは、ゲーム中ではミッションを達成しており、トロフィを獲得したと認識するため、システムソフトウェア200は、トロフィが獲得できていないことをユーザに通知することが好ましい。具体的にはアイテムID取得部420がアイテムIDを取得して機能制限部454がプレイアイテム獲得処理部422の機能を制限したタイミングで、機能制限部454が、システムソフトウェア200のメッセージ生成部204(図4参照)に対してメッセージの生成指示を発行する。メッセージ生成部204は、これを受けて、トロフィが獲得できなかった旨のメッセージを生成し、メッセージ表示部240が、ゲーム画面中の所定の領域にメッセージを重畳表示する。これによりプレイ中のユーザは、トロフィを獲得できなかったことを認識できる。なお、このメッセージは、セーブデータ90のロード時に表示されてもよい。判定部452の機能をロード用API処理モジュール470が有し、セーブデータ90の所有者IDと、セーブデータ90のロードを希望するユーザのID情報とが一致していない場合に、判定部452が、メッセージ生成部204に対してメッセージの生成指示を発行してもよい。
以上は、セーブデータ90の所有者IDと、セーブデータ90のロードを行うユーザID情報とが一致していない場合にトロフィを獲得させない仕組みであるが、ロードするセーブデータ90の種類によっては、ゲームソフトウェア300が、トロフィを獲得させるように機能制限部454の動作をオフにしてもよい。
セーブデータ90には、たとえばゲームの進行過程をセーブしたデータや、またゲーム中に登場するキャラクタや、新たなステージ(ストーリ)に関するデータなどの種類が存在する。これらのデータ種類は、たとえば拡張子により区別される。ゲームの進行過程をセーブしたデータをロードした場合には、上述したようにトロフィを獲得させないように制限することが好ましいが、キャラクタに関するデータや、新たなストーリに関するデータをロードした場合には、トロフィを獲得させてもよく、さらにいえば、新たなキャラクタをロードしたことをトロフィ獲得の条件とすることも可能である。
そこでゲームソフトウェア300において、アプリケーション実行部302は、たとえば、ロード実行部474によりセーブデータ90がロードされるとき、またはロードされる前に、セーブデータ90の拡張子から、セーブデータ90の種別を特定する。またはアプリケーション実行部302は、ロードするセーブデータ90を指定するときに、どの種別のセーブデータ90であるか分かるため、これによりセーブデータ90の種別を特定する。したがって、新たなキャラクタのセーブデータ90をロードする際には、ゲームソフトウェア300が、機能制限部454によるプレイアイテム獲得処理部422の機能を制限させる動作をオフ(停止)させてもよい。このようにロードするセーブデータ90の種別により機能制限部454の制限機能をオフすることにより、たとえば友人間でゲームキャラクタを交換しあうゲームにおいては、その交換行為後のゲームプレイでトロフィが獲得されなくなる事態を回避でき、これにより、ユーザ同士が積極的にキャラクタを交換しあうことができるようになる。
図13は、アイテム獲得処理のフローチャートを示す。ゲームソフトウェア300において、アプリケーション実行部302が、ユーザによるゲームコントローラ40の操作入力を受けて、ゲームプログラムを実行する(S10)。ゲーム条件達成判定部304は、ゲームの進行状況を監視し、ゲームにおいて予め設定されたゲームプレイの条件が達成されたか否かを判定する(S12)。ゲーム条件達成判定部304は、ミッションが達成されたことを判定すると(S12のY)、ミッションテーブルから、達成したミッションに対応付けられているアイテムIDを取得する。アイテムID通知部306は、取得したアイテムIDをアイテム管理ユーティリティ400に通知する(S14)。なおゲームプレイの条件が達成されなければ(S12のN)、アイテムIDは通知されない。
アイテム管理ユーティリティ400において、アイテムID取得部420は、通知されたアイテムIDを取得し、プレイアイテム獲得処理部422に渡す。プレイアイテム獲得処理部422は、アイテムIDを用いて、アイテム獲得情報70を生成して、アイテム獲得処理を実行する(S16)。このときアイテム獲得状況調査部414は、アイテム設定情報60およびアイテム獲得情報70を参照して、アイテムの獲得状況を調査し、システムソフトウェア200における特別アイテム獲得条件達成判定部202に通知する(S18)。
特別アイテム獲得条件達成判定部202は、アイテム獲得状況調査部414の調査結果をもとに、特別アイテムを獲得するためのアイテム獲得条件が達成されたか否かを判定する(S20)。具体的には、プラチナフラグ値が1のアイテムに獲得されていないものがあれば、特別アイテム獲得条件達成判定部202は、アイテム獲得条件が達成されていないことを判定する(S20のN)。一方で、プラチナフラグ値が1のアイテムが全て獲得されていれば、特別アイテム獲得条件達成判定部202は、アイテム獲得条件が達成されたことを判定する(S20のY)。このとき特別アイテム獲得条件達成判定部202は、特別アイテムのアイテムIDをアイテム管理ユーティリティ400に通知し(S22)、特別アイテム獲得処理部412は、アイテムIDを用いて、アイテム獲得情報70を生成する(S24)。ゲームが終了するまで(S26のN)、このアイテム獲得処理は行われ、ゲームが終了すると(S26のY)、アイテム獲得処理は終了する。
図14は、セーブデータを用いたアイテム獲得処理のフローチャートを示す。ゲームソフトウェア300において、アプリケーション実行部302が、ゲームプログラムを実行し(S40)、セーブデータのロード処理をセーブデータユーティリティ460に指示する。
セーブデータユーティリティ460において、付加情報取得部472は、セーブデータ90のロード実行前に、ハードディスクドライブ34に記録されたセーブデータ90から作成者IDを取得する(S42)。付加情報取得部472は、取得した作成者IDを、アイテム管理ユーティリティ400に渡す。続いてロード実行部474は、ハードディスクドライブ34からセーブデータ90をロードする(S44)。
アイテム管理ユーティリティ400において、セーブデータユーティリティ460からセーブデータ90の作成者IDを取得し(S46)、またフラッシュメモリ510から、現在ゲームをプレイしているユーザのユーザID情報を取得する(S48)。
ゲームソフトウェア300は、ロードしたセーブデータを用いてゲームプログラムを進行し、ゲーム条件達成判定部304は、ゲームの進行状況を監視し、ゲームにおいて予め設定されたゲームプレイの条件が達成されたか否かを判定する(S50)。ゲーム条件達成判定部304は、ミッションが達成されたことを判定すると(S50のY)、ミッションテーブルから、達成したミッションに対応付けられているアイテムIDを取得する。アイテムID通知部306は、取得したアイテムIDをアイテム管理ユーティリティ400に通知する(S52)。なおゲームプレイの条件が達成されなければ(S50のN)、アイテムIDは通知されない。
アイテム管理ユーティリティ400において、判定部452は、作成者IDと、現在のプレイヤのユーザID情報の一致性を判定し(S54)、一致していれば(S54のY)、プレイアイテム獲得処理部422が、アイテムIDを用いて、アイテム獲得情報70を生成して、アイテム獲得処理を実行する(S56)。一方、作成者IDと現在のプレイヤのユーザID情報が一致していなければ(S54のN)、機能制限部454が、プレイアイテム獲得処理部422の機能を制限する(S58)。これにより、したがってゲームソフトウェア300がミッションの達成を判定して、対応するアイテムIDをアイテム管理ユーティリティ400に送り、アイテムID取得部420がアイテムIDを取得した場合であっても、プレイアイテム獲得処理部422は、アイテムの獲得処理を実行しない。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施例においては、図10に示すレベル表示画面272のユーザレベルを、システムソフトウェア200におけるレベル導出部222が導出することとしたが、レベル導出部222の機能は、達成度管理サーバ18のコントローラ500が実現してもよい。達成度管理サーバ18は、ゲーム装置10と同期をとることで最新のアイテム獲得情報70を保有しているため、コントローラ500は、各ユーザのユーザレベルと、各ユーザがこれまで獲得したトロフィ数を導出できる。したがってコントローラ500は、記憶装置80に格納されているユーザごとのゲームのアイテム獲得情報70と、各ユーザがトロフィを獲得したゲームのアイテム設定情報60とを用いてポイントを算出することで、各ユーザのレベルを導出できる。達成度管理サーバ18がレベル導出機能をもつことで、たとえば各レベルにおけるユーザの分布を作成するなど、統計的な処理を行うこともでき、各ユーザが自分の相対的なレベルを把握しやすくなるという利点がある。
また実施例においては、各トロフィが、プラチナリンク属性として、プラチナフラグ値を有しており、プラチナフラグ値1は、そのトロフィの獲得がプラチナトロフィを獲得するための条件に含まれることを表現するものとした。実施例においては、システムソフトウェア200がユーザに付与するアイテムが1つのプラチナトロフィだけであったが、以下の変形例では、システムソフトウェア200が、ユーザに複数のアイテム(プラチナトロフィ)を付与できる仕組みを提供する。たとえば、システムソフトウェア200は、アイテムID100、101、102でそれぞれ特定される第1プラチナトロフィ、第2プラチナトロフィ、第3プラチナトロフィを、ユーザに付与する。以下、アイテムID100、101、102を、プラチナIDとよぶ。
この場合、ブロンズ、シルバー、ゴールドの各トロフィは、プラチナリンクの属性として、そのトロフィの獲得が、いずれのプラチナトロフィを獲得するための条件に含まれているか表現するプラチナ特定ID値をもつ。具体的に、あるトロフィのプラチナリンク属性として、アイテムID100が設定されていれば、そのトロフィの獲得は、第1プラチナトロフィの獲得条件に含まれる。同様に、プラチナリンク属性としてアイテムID101が設定されていれば、そのトロフィの獲得は第2プラチナトロフィの獲得条件に含まれ、プラチナリンク属性としてアイテムID102が設定されていれば、そのトロフィの獲得は、第3プラチナトロフィの獲得条件に含まれる。
この場合、特別アイテム獲得条件達成判定部202は、プレイアイテム獲得処理部422によりアイテムの獲得処理がなされると、アイテム獲得状況調査部414に、アイテムの獲得状況を調査させる。アイテム獲得状況調査部414は、アイテム設定情報60を参照して、プラチナリンク属性値(以下、プラチナ特定ID値)が、プラチナID100,プラチナID101,プラチナID102のいずれかに設定されているアイテムIDを、それぞれのプラチナIDごとに抽出する。続いてアイテム獲得状況調査部414は、トロフィ獲得テーブルを参照して、それぞれのプラチナIDごとに、抽出した全てのアイテムIDの獲得フラグ値が1であるか調査する。
各プラチナIDごとに抽出された全てのアイテムIDの獲得フラグ値が1であれば、アイテム獲得状況調査部414は、その調査結果を特別アイテム獲得条件達成判定部202に通知し、特別アイテム獲得条件達成判定部202は、そのプラチナIDについてのアイテム獲得条件が達成されたことを判定する。
プラチナトロフィの獲得条件が達成された場合、特別アイテム獲得条件達成判定部202は、プラチナトロフィのアイテムIDをアイテムID取得部418に通知する。たとえば第1プラチナトロフィの獲得条件が達成された場合は、特別アイテム獲得条件達成判定部202は、プラチナID100をアイテムID取得部418に通知する。アイテムID取得部418は、通知されたプラチナIDを取得し、特別アイテム獲得処理部412に渡す。特別アイテム獲得処理部412は、プラチナIDを用いて、アイテム獲得情報70を生成し、具体的にはトロフィ獲得テーブルにおいてアイテムID100の獲得フラグ値を1に設定する。以上のようにして、プラチナトロフィが複数存在する場合であっても、各プラチナトロフィを区別して、獲得処理を行うことが可能である。
なお、特別アイテムを獲得したことが、別の特別アイテムの獲得条件として設定されていてもよい。上記の例において、ブロンズ、シルバー、ゴールドの各トロフィが、プラチナリンクの属性として、アイテムID100またはID101のプラチナ特定ID値をもつ。ブロンズ、シルバー、ゴールドの各トロフィがもつプラチナ特定ID値は、第1プラチナトロフィ、第2プラチナトロフィを獲得するための条件として利用される。さらに、第1プラチナトロフィおよび第2プラチナトロフィが、プラチナリンク属性として、アイテムID102のプラチナ特定ID値を有してもよい。このように、第3プラチナトロフィの獲得条件が、第1プラチナトロフィおよび第2プラチナトロフィの両者が獲得されたことに設定されてもよい。
この場合、特別アイテム獲得条件達成判定部202は、特別アイテム獲得処理部412によりプラチナアイテムの獲得処理がなされると、アイテム獲得状況調査部414に、アイテムの獲得状況を調査させる。アイテム獲得状況調査部414は、アイテム設定情報60を参照して、プラチナリンク属性値(以下、プラチナ特定ID値)が、プラチナID102に設定されているアイテムID(この場合は、アイテムID101、ID102)を抽出する。続いてアイテム獲得状況調査部414は、トロフィ獲得テーブルを参照して、抽出した全てのアイテムIDの獲得フラグ値が1であるか調査する。全てのアイテムID(アイテムID101、ID102)の獲得フラグ値が1であれば、アイテム獲得状況調査部414は、その調査結果を特別アイテム獲得条件達成判定部202に通知し、特別アイテム獲得条件達成判定部202は、第3プラチナトロフィについてのアイテム獲得条件が達成されたことを判定する。これにより、特別アイテム獲得処理部412は、第3プラチナトロフィの獲得処理を行うことができる。
なお以上では、「プラチナリンク」の属性を、プラチナトロフィを獲得するための条件として利用しているが、この属性は、別の種類のトロフィに対して設定されてもよい。たとえば、この属性値は、所定のゴールドトロフィを獲得するための条件として利用されてもよく、所定のシルバートロフィを獲得するための条件として利用されてもよい。この場合、この所定のゴールドトロフィ、シルバートロフィは、特別アイテムとして取り扱われる。また上記したように、特別アイテムであるゴールドトロフィ、シルバートロフィを獲得したことが、他の特別アイテム、たとえばプラチナトロフィを獲得するための条件として利用されてもよい。