特許第5968366号(P5968366)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アップル インコーポレイテッドの特許一覧

特許5968366プレーヤ特有のオプションおよび統計量を有するゲームセンタを実現するための方法およびシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5968366
(24)【登録日】2016年7月15日
(45)【発行日】2016年8月10日
(54)【発明の名称】プレーヤ特有のオプションおよび統計量を有するゲームセンタを実現するための方法およびシステム
(51)【国際特許分類】
   A63F 13/798 20140101AFI20160728BHJP
   A63F 13/795 20140101ALI20160728BHJP
   A63F 13/35 20140101ALI20160728BHJP
【FI】
   A63F13/798
   A63F13/795
   A63F13/35
【請求項の数】9
【全頁数】53
(21)【出願番号】特願2014-124054(P2014-124054)
(22)【出願日】2014年6月17日
(62)【分割の表示】特願2013-503728(P2013-503728)の分割
【原出願日】2010年9月23日
(65)【公開番号】特開2014-210191(P2014-210191A)
(43)【公開日】2014年11月13日
【審査請求日】2014年6月17日
(31)【優先権主張番号】12/886,505
(32)【優先日】2010年9月20日
(33)【優先権主張国】US
(31)【優先権主張番号】61/321,861
(32)【優先日】2010年4月7日
(33)【優先権主張国】US
(31)【優先権主張番号】61/378,886
(32)【優先日】2010年8月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
(74)【代理人】
【識別番号】100092093
【弁理士】
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100082005
【弁理士】
【氏名又は名称】熊倉 禎男
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ファン オス マルセル
(72)【発明者】
【氏名】ランペル マイク
【審査官】 彦田 克文
(56)【参考文献】
【文献】 特表2008−546469(JP,A)
【文献】 特表2009−523541(JP,A)
【文献】 特開2006−158956(JP,A)
【文献】 特開2008−279049(JP,A)
【文献】 特開2008−142423(JP,A)
【文献】 特表2010−523206(JP,A)
【文献】 特開2001−340644(JP,A)
【文献】 米国特許第08997012(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00 − 13/98
(57)【特許請求の範囲】
【請求項1】
システム上でマルチプレーヤゲーミングアプリケーションを開始する段階と、
前記マルチプレーヤゲーミングアプリケーションをプレーするよう招待するためにユーザの友達の1人または複数を識別するデータを受信する段階と、
オートマッチ機能に基づいて、前記マルチプレーヤゲーミングアプリケーションをプレーするために1人または複数のオートマッチプレーヤのためのデータを受信する段階と、 前記システムのグラフィカルユーザインターフェース上に提示するためのデータを生成する段階であって、前記データは、関連する友達招待ポジション及び前記マルチプレーヤゲーミングアプリケショーンの最小要件を満たすための1つまたは複数のオートマッチプレーヤポジションとともに1人または複数の招待された友達のリストを含み、前記グラフィカルユーザインターフェース上に提示される少なくとも1つのオートマッチプレーヤポジションのためのデータ前記少なくとも1つのオートマッチプレーヤポジションのために選択可能な友達招待ポジションを提示するためのデータを含み、前記オートマッチプレーヤポジションについて友達招待オプションが選択された場合、前記少なくとも1つのオートマッチプレーヤポジションの代わりに前記友達招待ポジションを提示するために前記招待された友達に関連付けられた友達招待ポジションのためのデータが自動的に生成される、段階とを含むコンピュータ実施方法。
【請求項2】
1つまたは複数の友達招待ポジションはそれぞれ前記招待ステータス情報を含み、当該招待ステータス情報は、待機および準備完了のうちの1つを含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
待機ステータスを有するそれぞれの友達招待ポジションも、プレーヤ招待解除オプションを有する請求項2に記載のコンピュータ実施方法。
【請求項4】
前記友達招待ポジションに関連付けられている前記すでに招待されている友達の招待を解除するために友達招待ポジションに関連付けられているプレーヤ招待解除オプションの選択を受け取ることをさらに含む請求項3に記載のコンピュータ実施方法。
【請求項5】
1つまたは複数のオートマッチポジションはそれぞれが友達招待オプションに関連付けられる、請求項1に記載のコンピュータ実施方法。
【請求項6】
前記オートマッチポジションを前記友達招待ポジションで置き換えるために、友達オートマッチポジションに関連付けられている友達招待オプションの選択を受け取ることをさらに含む請求項5に記載のコンピュータ実施方法。
【請求項7】
待機ステータスを有する1人の招待された友達から招待の辞退を受信するか、または、所定の期間内に前記1人の招待された友達から受諾された招待の受信に失敗する段階と、 前記グラフィカルユーザインターフェースに提示するデータを生成する段階であって、前記データは一瞬光る友達招待ポジションを示す、段階と、
前記グラフィカルユーザインターフェースに提示するデータを生成する段階であって、前記データは前記友達によって辞退された前記友達招待ポジションを置き換えるオートマッチポジション、または、前記所定の期間内に前記招待を受諾しなかったことを示す、請求項2に記載のコンピュータ実施方法。
【請求項8】
コンピューティングシステムにより実行された場合に請求項1から7までのいずれか1項に記載のコンピュータ実施方法を前記システムに実行させる実行可能コンピュータプログラム命令を格納するコンピュータ可読媒体。
【請求項9】
請求項8に記載のコンピュータ可読媒体を有するデータ処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
優先権主張
本出願は、参照により本明細書に組み込まれている、Marcel van Osによって2010年4月7日に出願された同一出願人による米国特許出願第61/321,861号、名称「SYSTEMS AND METHODS FOR PROVIDING A GAME CENTER」、およびMarcel van Osによって2010年8月31日に出願された同一出願人による米国特許出願第61/378,886号、名称「METHODS AND SYSTEMS FOR PROVIDING A GAME CENTER」の利益を主張するものである。
本出願において開示され、請求されるべき発明は、未完成であり、Apple社のiPhone4のプロトタイプが2010年3月25日にApple社の技術者から明らかに盗まれたときにApple社の許可なく、公衆に開示された。本出願が基づく米国優先出願は、明らかな盗難の前には提出されていなかった。
本発明の実施形態は、ゲーミングアプリケーション(gaming applications)のためのプレーヤ特有のオプションおよび統計量を有するゲームセンタを実現するシステムおよび方法に関する。
【背景技術】
【0002】
このような電子デバイス、コンピューティングデバイス、ポータブルデバイス、およびハンドヘルドデバイスなどのさまざまなデバイスは、ソフトウェアによるゲーミングアプリケーションを有する。これらのデバイス同士をネットワークで接続して、マルチプレーヤゲーミング体験を達成することができる。
従来のゲーミングデバイスの1つでは、プレーヤ同士がオンラインでやり取りすることができる。このゲーミングデバイスでは、ゲームと成績をプレーヤ間で共有することができる。ゲーム機を持つユーザは、オンラインゲームサービスにアクセスして、他のプレーヤとのゲーミング体験を共有する。
しかし、この従来のアプローチは、プレーヤを接続すること、他のプレーヤとゲームをプレーすること、およびプレーヤの実績を追跡することに関して制限がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本明細書で説明されているのは、ゲームセンタを実現するための方法およびシステムである。例えば、少なくともいくつかの実施形態では、ゲームセンタモジュールは、プレーヤ特有のオプションおよび統計量を有するゲームセンタを構成する。ゲームセンタモジュールは、ユーザが友達のリストを表示し、そこから選択できるように友達オプションを備えることができる。ゲームセンタモジュールは、ユーザと選択された友達との間で一緒にプレーしたゲームのリストおよびユーザと選択された友達との間で共通である他のゲームの別のリストを含む選択された友達の友達詳細を与えることができる。
【課題を解決するための手段】
【0004】
一実施形態では、一緒にプレーしたゲームのリストは、それぞれのオプションが各ゲーム名および各ゲームに対するユーザのランキングと選択された友達のランキングとの比較を示すオプションのリストを含む。共通の他のゲームのリストは、それぞれのオプションが各ゲーム名および各ゲームに対するユーザのランキングと選択された友達のランキングとの比較を示すオプションのリストを含む。一緒にプレーしたゲームのリストまたは共通のゲームのリストの選択の後、ゲームセンタモジュールは選択されたゲームおよびリーダボードオプションに関するゲーム詳細を提示することができる。リーダボードオプションを選択すると、最上位プレーヤ、ユーザ、および適宜、選択されたゲームに対する選択された友達のランキングを含むリーダボードが生成される。
【0005】
本開示は、方法およびこれらの方法を実行するデータ処理システムを含む、これらの方法を実行するデバイス、およびデータ処理システム上で実行されたときにシステムにこれらの方法を実行させる機械可読媒体を含む。
【0006】
本発明は、例を用いて、限定することなく添付図面の図に示される。
【図面の簡単な説明】
【0007】
図1】本発明の一実施形態におけるゲームセンタを管理するためのゲームセンタモジュールを示す機能ブロック図である。
図2】本発明の一実施形態におけるクライアントシステム上に配置されているゲームセンタモジュールが備える例示的なゲーミングオプションの例示的な概要を示す図である。
図3】カスタマイズされたプレーヤ特有のオプションおよび統計量を有するゲームセンタモジュールとともにクライアントシステム上にゲームセンタを構成するコンピュータ実施方法300に対する本発明の一実施形態における流れ図である。
図4】カスタマイズされたゲーム達成オプションを有するゲームセンタモジュールとともにクライアントシステム上にゲームセンタを構成するコンピュータ実施方法400に対する本発明の一実施形態における流れ図である。
図5】友達オプションまたはゲームオプションを介してアクセスされることに基づきカスタマイズされたゲーム詳細を有するゲームセンタモジュールとともにクライアントシステム上にゲームセンタを構成するコンピュータ実施方法500に対する本発明の一実施形態における流れ図である。
図6】最近ゲームを一緒にプレーしたプレーヤとマッチングするコンピュータ実施方法600に対する本発明の一実施形態における流れ図である。
図7】友達またはゲームサービスとのオートマッチングプレーヤのユーザのリストに基づきプレーヤを招待するマルチプレーヤゲーム招待を行うコンピュータ実施方法700に対する本発明の一実施形態における流れ図である。
図8】クライアントシステムによるゲーミング招待を受けるコンピュータ実施方法800に対する本発明の一実施形態における流れ図である。
図9A】本発明の一実施形態におけるゲームセンタモジュールの起動後に生成される例示的なユーザインターフェース900を示す図である。
図9B】本発明の一実施形態におけるプロファイルオプション910を選択した後に生成される例示的なユーザインターフェース925を示す図である。
図9C】本発明の一実施形態におけるアカウント情報オプションを有する例示的なユーザインターフェース960を示す図である。
図9D】本発明の一実施形態におけるプロファイルオプション910を選択した後に生成される例示的なユーザインターフェース970を示す図である。
図10】本発明の一実施形態における友達のリスト1050を有する例示的なユーザインターフェース1000を示す図である。
図11A】本発明の一実施形態における特定の友達の友達詳細を有する例示的なユーザインターフェース1100を示す図である。
図11B】本発明の一実施形態における特定の友達の友達詳細を有する例示的なユーザインターフェース1191を示す図である。
図12】本発明の一実施形態におけるゲームのリスト1250を有する例示的なユーザインターフェース1200を示す図である。
図13】本発明の一実施形態における特定のゲームのゲーミング詳細を有する例示的なユーザインターフェース1300を示す図である。
図14A】本発明の一実施形態におけるリーダボードを有する例示的なユーザインターフェース1400を示す図である。
図14B】本発明の一実施形態におけるリーダボードを有する例示的なユーザインターフェース1491を示す図である。
図15A】本発明の一実施形態における特定のゲームに対するゲーム詳細を有する例示的なユーザインターフェース1500を示す図である。
図15B】本発明の一実施形態における特定のゲームに対するゲーム詳細を有する例示的なユーザインターフェース1582を示す図である。
図16A】本発明の一実施形態におけるリーダボードを有する例示的なユーザインターフェース1600を示す図である。
図16B】本発明の一実施形態におけるリーダボードを有する例示的なユーザインターフェース1691を示す図である。
図17】本発明の一実施形態における達成を有する例示的なユーザインターフェース1700を示す図である。
図18A】本発明の一実施形態における達成を有する例示的なユーザインターフェース1800を示す図である。
図18B】本発明の一実施形態における達成を有する例示的なユーザインターフェース1850を示す図である。
図19】本発明の一実施形態におけるユーザとの最近のマッチからの最近のプレーヤを有する例示的なユーザインターフェース1900を示す図である。
図20】本発明の一実施形態における最近のマッチからのプレーヤに対する詳細を有する例示的なユーザインターフェース2000を示す図である。
図21】本発明の一実施形態における通知(例えば、友達要求、更新)のリストを有する例示的なユーザインターフェース2100を示す図である。
図22】本発明の一実施形態における受信した友達要求に対する詳細を有する例示的なユーザインターフェース2200を示す図である。
図23】本発明の一実施形態における友達要求通信を有する例示的なユーザインターフェース2300を示す図である。
図24】本発明の一実施形態におけるアラートメッセージを示す図である。
図25】本発明の一実施形態においてマルチプレーヤゲーミングを体験しているときにゲームセンタモジュールによっても提供されるユーザインターフェースを示す図である。
図26】本発明の一実施形態においてマルチプレーヤゲーミングを体験しているときにゲームセンタモジュールによっても提供されるユーザインターフェースを示す図である。
図27】本発明の一実施形態においてマルチプレーヤゲーミングを体験しているときにゲームセンタモジュールによっても提供されるユーザインターフェースを示す図である。
図28】本発明の一実施形態においてユーザインターフェース2800上をスライドする例示的な歓迎アラート2810を示す図である。
図29】本発明の一実施形態においてユーザインターフェース2900上をスライドする例示的な達成賞2910を示す図である。
図30】本発明の一実施形態における有線もしくはワイヤレス通信チャネル3002を介してコンピューティングシステム3003と相互にやり取りするためのタッチ入力を受け付けることができるタッチI/Oシステム3001を示す図である。
図31】本発明の一実施形態におけるワイヤレス通信の機能を備えるワイヤレスシステムを示す図である。
図32】本発明の一実施形態において使用されうる、例示的なAPIアーキテクチャを示すブロック図である。
図33】アプリケーションが複数のサービスAPIを使用してサービスAまたはBを、また複数のOS APIを使用してオペレーティングシステム(OS)を呼び出すことができる、本発明の一実施形態における、「ソフトウェアスタック」の図である。
図34】本発明の一実施形態においてゲーム招待を受けた後にユーザインターフェースに提示される例示的なアラートまたは通知を示す図である。
図35】本発明の一実施形態においてゲーム招待を受けた後にユーザインターフェースに提示される例示的なアラートまたは通知を示す図である。
図36】本発明の一実施形態においてゲーム招待を受けた後にユーザインターフェースに提示される例示的なアラートまたは通知を示す図である。
図37】本発明の一実施形態におけるいくつかのシステムに合わせて設計された例示的なユーザインターフェースを示す図である。
図38】本発明の一実施形態におけるいくつかのシステムに合わせて設計された例示的なユーザインターフェースを示す図である。
図39】本発明の一実施形態におけるいくつかのシステムに合わせて設計された例示的なユーザインターフェースを示す図である。
図40】本発明の一実施形態におけるいくつかのシステムに合わせて設計された例示的なユーザインターフェースを示す図である。
図41】本発明の一実施形態におけるいくつかのシステムに合わせて設計された例示的なユーザインターフェースを示す図である。
図42】本発明の一実施形態におけるいくつかのシステムに合わせて設計された例示的なユーザインターフェースを示す図である。
図43】本発明の一実施形態においてテクスチャを有する所望のオブジェクト4300を示す図である。
図44】本発明の一実施形態におけるテンプレートオブジェクト4400を示す図である。
図45】本発明の一実施形態におけるさまざまな入力フィールド4510〜4514を持つ例示的なフォーム4500を有する例示的なユーザインターフェースを示す図である。
図46】本発明の一実施形態におけるユーザインターフェースのオブジェクトにテクスチャを追加するための例示的なコンピュータ実施方法を示す図である。
【発明を実施するための形態】
【0008】
本明細書で説明されているのは、プレーヤ特有のオプションおよび統計量を有するゲームセンタを実現するための方法およびシステムである。例えば、少なくともいくつかの実施形態では、システム上に配置されているゲームセンタモジュールは、ゲームセンタを構成する。ゲームセンタは、多数のゲーム、クライアント、プレーヤなど、またはこれらの任意の組み合わせに対する情報を提供するゲーミングシステム内の中央領域とすることができる。ゲームは、教育的であるか、または実用性があるか、または娯楽をもたらすものであるか、またはアプリケーションサービス(例えば、アプリケーションストア)によって提供される任意のカテゴリのソフトウェアアプリケーションとすることができる。
【0009】
ゲームセンタモジュールは、ユーザが友達のリストを表示し、そこから選択できるように友達オプションを備えることができる。ゲームセンタモジュールは、ユーザと選択された友達との間で一緒にプレーしたゲームのリストおよびユーザと選択された友達との間で共通である他のゲームの別のリストを含む選択された友達の友達詳細を与えることができる。
【0010】
一実施形態では、一緒にプレーしたゲームのリストは、それぞれのオプションが各ゲーム名および各ゲームに対するユーザのランキングと選択された友達のランキングとの比較を示すオプションのリストを含む。共通の他のゲームのリストは、それぞれのオプションが各ゲーム名および各ゲームに対するユーザのランキングと選択された友達のランキングとの比較を示すオプションのリストを含む。一緒にプレーしたゲームのリストまたは共通のゲームのリストの選択の後、ゲームセンタモジュールは選択されたゲームおよびリーダボードオプションに関するゲーム詳細を提示することができる。リーダボードオプションを選択すると、最上位プレーヤ、ユーザ、および適宜、選択されたゲームに対する選択された友達のランキングを含むリーダボードが生成される。
【0011】
図1に例示されているように、本発明の一実施形態において実装される一般的ネットワークトポロジーは、「クライアント」または「ピア」コンピューティングシステム120〜123のグループを含むものとしてよく、これらはそれぞれネットワーク130上で互いに、また1つまたは複数のサービス109〜114と通信する。図1に単一のネットワーククラウドとして例示されているけれども、「ネットワーク」130は、ローカルWi−Fiネットワーク(例えば、802.11nホームワイヤレスネットワークまたはワイヤレスホットスポット)、ローカルエリアイーサネット(登録商標)ネットワーク、セルラデータネットワーク、およびWiMAXネットワーク、さらに同様のものなど、インターネットおよびプライベートネットワークなどの公衆ネットワークを含むさまざまな異なるコンポーネントで構成されうる。例えば、システム120は、ネットワークリンク125によって表されているホームWi−Fiネットワークに接続することができ、システム121は、ネットワークリンク126によって表されている3Gネットワーク(例えば、ユニバーサルモバイル通信システム(「UMTS」)、高速上りパケットアクセス(「HSUPA」)など)に接続することができ、システム122は、ネットワークリンク127によって表されているWiMAXネットワークに接続することができ、システム123は、ネットワークリンク128によって表されている公衆Wi−Fiネットワークに接続することができる。システム120〜123を接続する際に使用されるローカルネットワークリンク125〜128のそれぞれを、インターネットなどの公衆ネットワークに結合することができ、これにより、公衆ネットワークを介してさまざまなシステム120〜123間で通信することが可能である。しかし、2つのシステムが同じローカルもしくはプライベートネットワーク(例えば、同じWi−Fiネットワーク)上にある場合、これら2つのシステムは、公衆ネットワークをバイパスして、そのローカル/プライベートネットワーク上で直接通信することができる。もちろん、本開示の基礎となる原理は、ネットワークタイプまたはネットワークトポロジーの特定の群に制限されないことに留意されたい。
【0012】
図1に例示されているシステム120〜123のそれぞれは、協調サービス109(例えば、ゲームサービス、音楽制作サービス、文書作成サービス)、接続データ交換(CDX)サービス110、マッチメーカサービス111、招待サービス112、アカウントサービス113、およびアプリケーションサービス114を含みうるデータサービス100と通信することができる。一実施形態では、協調サービス109を使用することで、ユーザは、協調アプリケーションと協調することができる。例えば、協調サービス109は、ユーザがマルチプレーヤゲーミングアプリケーションに対して協調することを可能にするゲームサービスであってよい。ゲームサービスは、ゲームセンタを提供するためのサービス110〜114のうちのどれかを含むか、またはアクセスすることができる。ゲームサービスは、サービス110〜114のうちのどれかを含むか、またはアクセスすることができる。例えば、ゲームサービスは、サービス111および112を含むことができる。
サービス109〜114は、サーバなどの1つまたは複数の物理的コンピューティングシステムにまたがって実行されるソフトウェアとして実装されうる。図1に示されているように、一実施形態では、サービスは、同じエンティティ(例えば、同じ会社)によって管理され、ネットワーク130上でシステム120〜123のそれぞれによってアクセス可能なより大きなデータサービス100の背景状況において実装されうる。データサービス100は、さまざまな種類のサーバ、ストレージエリアネットワーク(「SAN」)、およびデータベースを接続するローカルエリアネットワーク(例えば、イーサネット(登録商標)ベースのLAN)を備えることができる。一実施形態では、データベースは、ユーザシステム(例えば、クライアントシステム、コンピュータシステム、モバイルシステム)120〜123およびそれらのシステムのユーザに関係するデータ(例えば、ユーザアカウントデータ、システムアカウントデータ、ユーザアプリケーションデータなど)を格納し、管理する。
【0013】
一実施形態では、ゲームセンタモジュール130〜133は、それぞれのシステム120〜123上に配置される。ゲームセンタモジュールは、ゲームサービスと連携してゲームセンタを管理するゲームセンタソフトウェアアプリケーションに関連付けられる。ゲームセンタモジュールは、ゲームセンタを管理し、マルチプレーヤゲーミングのゲーミング体験を提供するためのサブモジュール(例えば、プロファイル、友達、ゲーム、通知)を備える。
【0014】
一実施形態では、ゲームセンタモジュール130〜133は、ゲームフレームワーク上に実装され、このようなゲームフレームワークとしては、Mike Lampellによって2010年4月7日に出願された同時係属出願である米国特許出願第61/321,854号、名称「APPLICATION PROGRAMMING INTERFACE, SYSTEM AND METHOD FOR COLLABORATIVE ONLINE APPLICATIONS」(整理番号P9203Z)、Jeremy Werner、Phillip Smith、Andrew H. Vyrrosによって2010年4月7日に出願された米国特許出願第61/321,842号、名称「APPARATUS AND METHOD FOR MATCHING USERS FOR ONLINE SESSIONS」(整理番号P8549Z)、Andrew H. Vyrros、Jeremy Werner、およびPatrick Gatesによって2010年4月7日に出願された米国特許出願第61/321,832号、名称「APPARATUS AND METHOD FOR INVITING USERS TO ONLINE SESSIONS」(整理番号P8547Z)、Jeff Tung、Barry A. Whitebook、Joe Abuan、Hyeonkuk Jeong、Andy Yang、およびRoberto Garciaによって2010年4月7日に出願された米国特許出願第61/321,841号、名称「APPARATUS AND METHOD FOR ESTABLISHING AND UTILIZING BACKUP COMMUNICATION CHANNELS」(整理番号P9162Z)、およびJoe Abuan、Jeff Tung、Robert Quattlebaum、Barry A. Whitebook、およびRoberto Garciaによって2010年4月7日に出願された米国特許出願第61/321,851号、名称「APPARATUS AND METHOD FOR EFFICIENTLY AND SECURELY EXCHANGING CONNECTION DATA」(整理番号P9164Z)(これ以降「同時係属出願」と称する)において説明されているものなどがあり、これらの特許文献は本出願の譲受人に譲渡され、参照により本明細書に組み込まれている。しかし、これらの同時係属出願において説明されているゲームフレームワークは、本発明の基礎となる原理に従うのに必要なものではないことに留意されたい。それに加えて、一実施形態では、本明細書で説明されている友達サービスオペレーション(例えば、友達リストの表示、友達要求の送信/受信など)は、参照により本明細書に組み込まれている、Amol Pattekar、Jeremy Werner、およびPatrick Gatesによって2010年4月7日に出願された同時係属出願である米国特許出願第61/321,848号、名称「APPARATUS AND METHOD FOR EFFICIENTLY MANAGING DATA IN A SOCIAL NETWORKING SERVICE」(整理番号P9240Z)(これ以降「友達サービスアプリケーション」と称する)で説明されている友達サービスによって管理される。
【0015】
例えば、本発明の一実施形態では、それぞれのユーザは、固有宛先信号識別子(unique destination signaling identifier)(「DSID」)または固有ハンドル(unique handle)のいずれかによって友達サービス内で識別される。一実施形態では、DSIDは、友達サービスにアカウントを有することが知られているユーザを識別するために使用される。これらのユーザは、「ネットワーク内ユーザ」と称されることがある。ハンドルは、友達サービス100にアカウントを有することが知られていないユーザを識別するために使用することができる。これらのユーザは、「ネットワーク外ユーザ」と称されることがある。これは、友達サービスにアカウントをまだ登録していないユーザおよび/または友達サービスにアカウントを有しているが、特定のハンドルをアカウントにまだ関連付けていないユーザを含みうる。
「友達」は、別のユーザからのカウントに関連付けられているかまたはリンクされているアカウントを有するユーザとして定義することができる。友達サービスオペレーションおよび「友達」を定義することに関する詳細は、同時係属の友達サービスの出願において説明されている。
【0016】
マッチメーカサービス111は、指定された条件群に基づき協調ピアツーピア(P2P)セッションに対して2つまたはそれ以上のシステムをマッチすることができる。例えば、これらのシステムのうちの2つまたはそれ以上のシステムのユーザは、特定のマルチプレーヤゲームをプレーすることに関心を持っている場合がある。このような場合、マッチメーカサービス111は、それぞれのユーザの経験レベル、それぞれのユーザの年齢、マッチ要求のタイミング、マッチが要求される特定のゲーム、およびゲームに関連付けられているゲーム特有の変数などの変数に基づきゲームに参加するシステムのグループを識別することができる。例えば、限定はしないが、マッチメーカサービス111は、特定のゲームをプレーする技量が類似のレベルにあるユーザをマッチしようとすることができる。
それに加えて、大人同士でマッチすることができ、また子供同士でマッチすることができる。さらに、マッチメーカサービス111は、ユーザ要求を、それらの要求を受け取った順序に基づき優先順位付けすることができる。本開示の基礎となる原理は、任意の特定の一連のマッチング基準または特定の種類のP2Pアプリケーションに限定されない。マッチメーカサービスに関する詳細は、同時係属の米国特許出願第61/321,842号において説明されている。
【0017】
マッチ要求に応答して、マッチメーカサービス111は、CDXサービス110と調整して、すべてのマッチ参加者が効率よく、安全にP2Pセッションを確立するために必要な接続データを受信することを確実にすることができる。
一実施形態では、招待サービス112も、協調P2Pセッションに参加するシステムを識別する。しかし、招待サービス112の場合、参加者のうちの少なくとも1人は、別の参加者によって特に識別される。例えば、システム120のユーザは、システム121のユーザとの協調セッションを特に要求することができる。マッチメーカサービス111と同様に、招待要求に応答して、招待サービス112は、その参加者群を識別し、CDXサービス110と調整して、すべての参加者が効率よく、安全にP2Pセッションを確立するために必要な接続データを受信することを確実にすることができる。
【0018】
図2は、本発明の一実施形態におけるクライアントシステム上に配置されているゲームセンタモジュールが備えるゲーミングオプションの例示的な概要を示している。ゲームセンタモジュール200は、ユーザプロファイル情報(例えば、ステータス情報、表現、アカウントデータ)を提供するためのプロファイルサブモジュール210、ユーザの友達に関係する情報(例えば、友達のリスト、友達の編集、友達とプレーするゲーム)を提供するための友達サブモジュール220、ユーザによって所有されるゲームに対するゲーミング情報提供するためのゲーミングサブモジュール230、およびさまざまな種類の通知(例えば、要求、ゲーミング更新など)を行うための通知サブモジュール240を備える。
これらのサブモジュールのそれぞれは、選択可能なオプションをユーザインターフェースに付けることができる。
【0019】
プロファイルオプションに関連付けられるプロファイルサブモジュール210は、ユーザのプロファイルエディタオプション212(例えば、アバターエディタオプション)およびアカウントデータオプション214へのアクセスを可能にする。アバターとは、コンピュータユーザまたはその分身の表現である。アバターは、コンピュータゲームで使用される三次元(3D)モデルまたはインターネットフォーラム、ソーシャルネットワーク、および他のコミュニティ上で使用される二次元(2D)アイコンまたは写真または画像またはクリップの形態をとることが多い。アバターは、オンラインインタラクティブゲーミング環境を含む、ビデオゲームで使用することもできる。アバターエディタオプションは、ユーザのアバターを作成し、編集することができる。アバター、アバター編集、およびアバターの特徴に関する詳細は、Marcel Van Osによって2010年4月7日に出願された米国特許出願第___号、名称「PERSONALIZING COLORS OF USER INTERFACES」(整理番号P9113USP1(18962−0316P01))、およびMarcel Van Osらによって2010年4月7日に出願された米国特許出願第___号、名称「AVATAR EDITING ENVIRONMENT」(整理番号P8878US1 (18962−0313001))にいて説明されており、これらの特許はすべて参照により本明細書に組み込まれている。
【0020】
友達オプションに関連付けられている友達サブモジュール220は、友達リストオプション222へのアクセスを可能にする。これらの友達は、ユーザによる編集が可能である。友達のリストは、1つまたは複数のネットワーク(例えば、ゲームセンタネットワーク)内の友人であってよい。それぞれの友達に関する特定の情報(例えば、名前、ステータス、表現)が、友達のリストに含まれる。ユーザは、友達のうちの1人を選択することによって友達に関する追加情報を取得することができる。このユーザ選択によって、選択された友達に対する友達詳細オプション224が生成される。選択された友達に対するこれらの詳細は、表現(例えば、アバター)、ステータス、統計量、友達とプレーしたゲームのリスト、友達と共通の他のゲームのリスト、友達によって所有されているが、ユーザによって所有されていないゲームのリストなどを含むことができる。ユーザは、ユーザがプレーしたい相手である友達によって所有されているゲームのうちの1つを選択することができる。一実施形態では、ユーザがこのゲームを所有していない場合、ユーザは、アプリケーションストアオプション226に自動的に誘導され、選択されたゲームにアクセスする。
【0021】
ゲーミングオプションに関連付けられているゲーミングサブモジュール230は、ゲームリストオプション232へのアクセスを可能にする。ゲームは、ゲームのリストに追加したり、またはゲームのリストから削除したりすることができる。それぞれのゲームに関する特定の情報(例えば、ゲーム製造業者、ゲーム名、評価)が、ゲームのリストに含まれうる。ユーザは、ゲームのうちの1つを選択することによってゲームに関する追加情報を取得することができる。このユーザ選択によって、選択されたゲームに対するゲーム詳細オプション234が生成される。ゲーム詳細オプション234は、オプション232から、さらにオプション224からアクセスすることができる。選択されたゲームに対するこれらのゲーム詳細は、リーダボードオプション235、達成オプション236、プレーアプリケーション/ゲームオプション237、最近プレーしたゲームオプション238、および友達に知らせる(TAF)オプション239を含むものとしてよい。
【0022】
一実施形態では、ゲーム詳細234によって与えられるこれらのオプションは、ユーザがゲーム詳細オプション234にゲームリストオプション232からアクセスしたか、友達詳細オプション224からアクセスしたかに応じて表示が異なりうる。例えば、オプション234がオプション232を介してアクセスされた場合、リーダボードオプションおよび達成オプションはユーザに関係する。オプション234がオプション224を介してアクセスされた場合、リーダボードオプションおよび達成オプションはユーザおよび友達ゲーミング統計量の比較を行う比較モードに関係する。
【0023】
通知オプションに関連付けられている通知サブモジュール240は、通知リストオプション242へのアクセスを可能にする。これらの通知は、ユーザによる編集が可能である。通知のリストは、送信される発信要求または1つまたは複数のネットワーク(例えば、ゲームセンタネットワーク)内で受信されている着信要求であってよい。通知は、特定のゲームに対するゲーミング更新、ゲームの新しいリリースに関する通知、またはリリースされる新しいゲームなどを含むことができる。それぞれの要求に関する特定の情報(例えば、名前、ステータス、表現)が、通知のリストに含まれる。ユーザは、通知のうちの1つを選択することによって通知に関する追加情報を取得することができる。このユーザ選択によって、選択された通知に対する通知詳細オプション244が生成される。一実施形態では、選択された通知(例えば、要求)に対するこれらの詳細は、友達への招待などを含むことができる。ユーザは、新しい友人を招待するために招待オプション246を選択することができる。新しい友達がオプション246で招待される場合、オプション222がアクセスされる。他のオプションおよびこれらのオプション間の関係は、図2に例示されているものに加えてゲームセンタモジュールにおいて規定されうる。図3〜8は、ゲームセンタにゲームセンタモジュールおよびゲームサービスを備えるさまざまなコンピュータ実施方法に対する例示的な流れ図を示している。
【0024】
図3は、カスタマイズされたプレーヤ特有のオプションおよび統計量を有するゲームセンタモジュールとともにクライアントシステム上にゲームセンタを構成するコンピュータ実施方法300に対する本発明の一実施形態における流れ図である。コンピュータ実施方法300は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシンまたはシステム上で実行されるようなもの)、または両方の組み合わせを備えることができる処理ロジックによって実行される。一実施形態では、コンピュータ実施方法300は、クライアントシステム上に配置されているゲームセンタモジュール200によって実行される。
【0025】
ブロック302で、処理ロジックは、ゲームセンタアプリケーションおよび関連するゲームセンタモジュールを起動するユーザ選択を受け取る。ブロック304で、処理ロジックは、グラフィカルユーザインターフェースにゲームセンタモジュールの選択可能オプション(例えば、プロファイル、友達、ゲーム、通知)を自動的に表示することができる。
ブロック306で、処理ロジックは、ゲームセンタモジュールの友達オプションのユーザ選択を受け取ることができる。ブロック308で、処理ロジックは、ユーザ選択に応答してシステムのグラフィカルユーザインターフェースに自動的に提示されるデータを送信することができる。データは、友達のリストを示す。ブロック310で、処理ロジックは、友達のリストから友達のユーザ選択を受け取ることができる。処理ロジックは、グラフィカルユーザインターフェースに自動的に提示されるデータを送信することができる。データは、ブロック312において、一緒にプレーしたゲームのリスト、共通の他のゲームのリスト、および友達によって所有されているが、ユーザによって所有されていないゲームのリストを含む選択された友達の友達詳細を示す。
【0026】
一実施形態では、一緒にプレーしたゲームのリストは、それぞれのオプションが各ゲーム名および各ゲームをプレーしている間の友達に対する一連の達成を示すオプションのリストを含む。それぞれのオプションは、各ゲームに対するユーザのランキングと選択された友達とのランキングの比較も示すことができる。ブロック314で、処理ロジックは、ゲームのリストの1つからオプションのユーザ選択を受け取ることができる。ブロック316で、処理ロジックは、一緒にプレーしたゲームからのゲームまたは共通リスト内のゲームのユーザ選択を受け取るかどうかを決定することができる。ブロック318で、処理ロジックは、グラフィカルユーザインターフェースに自動的に提示されるデータを送信することができる。データは、一緒にプレーしたゲームのリストまたは共通のゲームのリストからのゲームを受け取る場合に選択されたゲームに対するゲーム詳細を示す。次いで、ブロック320で、処理ロジックは、選択されたゲームのゲーム詳細からリーダボードオプションのユーザ選択を受け取ってもよい。リーダボードは、最上位プレーヤ、ユーザ、および選択されたゲームに対する友達のランキングを含むことができる。あるいは、リーダボードは、最上位プレーヤおよびユーザに対するランキングを含むことができる。
【0027】
別の実施形態では、処理ロジックは、ブロック314で、友達によって所有され、ユーザリストには所有されていないゲームからのゲームのユーザ選択を受け取る。この場合、ブロック322で、処理ロジックは、ユーザ選択に応答して、ユーザをアプリケーションサービス(例えば、アプリケーションストア)に自動的に誘導し選択されたゲームを購入させることができる。
【0028】
図4は、カスタマイズされたゲーム達成オプションを有するゲームセンタモジュールとともにクライアントシステム上にゲームセンタを構成するコンピュータ実施方法400に対する本発明の一実施形態における流れ図である。コンピュータ実施方法400は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシンまたはシステム上で実行されるようなもの)、または両方の組み合わせを備えることができる処理ロジックによって実行される。一実施形態では、コンピュータ実施方法400は、クライアントシステム上に配置されているゲームセンタモジュール200によって実行される。
【0029】
ゲームセンタモジュールは、起動されると、コンピュータ実施方法300のブロック302および304において説明されているように、選択可能なオプション(例えば、プロファイル、友達、ゲーム、通知)を提示する。ブロック402で、処理ロジックは、システムのグラフィカルユーザインターフェースに提示されるデータを生成することができる。データは、ゲームセンタモジュール(例えば、ソフトウェアアプリケーション)に関連付けられている選択されたゲームのゲーム詳細を示す。ゲーム詳細は、ゲーム詳細オプション(例えば、ゲーム詳細オプション234)に関連付けられており、これは上で説明され図2に例示されているように友達オプションまたはゲームオプションを介してアクセスすることができる。ゲーム詳細は、選択されたゲームに対するユーザの一連の達成を示す達成オプションを備える。ブロック404で、処理ロジックは、達成オプションのユーザ選択を受け取る。ブロック406で、処理ロジックは、グラフィカルユーザインターフェースに提示されるデータを生成することができる。データは、達成のリストおよび選択されたゲームに対するこれらの達成の完遂ステータスを含む達成データを含む。
【0030】
一実施形態では、ゲーム詳細は、ゲームオプションを介してアクセスされる。この場合、達成データは、完遂している達成の回数に基づくユーザのスコアを含む。達成データは、達成がユーザによって完遂された場合に達成アイコンがそれぞれの達成に備える達成のリストも含む。あるいは、達成が完遂していない場合に、完遂の量を示す進捗情報が与えられる。
別の実施形態では、ゲーム詳細は、友達オプションを介してアクセスされる。この場合、処理ロジックは、達成オプションのユーザ選択を受け取る前に、友達のユーザ選択を受け取る。達成オプションのユーザ選択に応答して生成される達成データは、ユーザによって完遂された達成の回数に基づくユーザのスコアと友達によって完遂された達成の回数に基づく友達のスコアとの比較を含む。達成データは、友達が達成リスト内のそれぞれの達成を完遂したかどうかに関する友達に対する指示およびユーザが達成リスト内のそれぞれの達成を完遂したかどうかに関するユーザに対する別の指示も含む。
【0031】
図5は、友達オプションまたはゲームオプションを介してアクセスされることに基づきカスタマイズされたゲーム詳細を有するゲームセンタモジュールとともにクライアントシステム上にゲームセンタを構成するコンピュータ実施方法500に対する本発明の一実施形態における流れ図である。コンピュータ実施方法500は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシンまたはシステム上で実行されるようなもの)、または両方の組み合わせを備えることができる処理ロジックによって実行される。一実施形態では、コンピュータ実施方法500は、クライアントシステム上に配置されているゲームセンタモジュール200によって実行される。
【0032】
ゲームセンタアプリケーションおよび関連するモジュールは、起動されると、コンピュータ実施方法300のブロック302および304において説明されているように、選択可能なオプション(例えば、プロファイル、友達、ゲーム、通知)を提示する。ブロック502で、処理ロジックは、友達リストオプションの生成を行わせる友達オプションのユーザ選択とその後に続く友達リストからの友達のユーザ選択を受け取るか、あるいは処理ロジックは、ゲームオプションのユーザ選択を受け取ることができる。ブロック504で、処理ロジックは、グラフィカルユーザインターフェースに提示されるデータを送信することができる。データは、ブロック502で受け取った各ユーザ選択(複数可)に基づく友達詳細またはゲームリストを示す。例えば、友達詳細は、友達リストオプションからの友達のユーザ選択に応答して生成される。あるいは、ゲームオプションのユーザ選択に応答してゲームリストが生成される。ブロック506で、処理ロジックは、選択された友達によって所有されるゲームのリストからのゲームのユーザ選択(つまり、友達詳細オプションからのゲームのユーザ選択)またはユーザによって所有されるゲームのリストからのユーザ選択(つまり、ゲームリストオプションからのゲームのユーザ選択)を受け取ることができる。ブロック508で、処理ロジックは、グラフィカルユーザインターフェースに提示されるデータを送信することができる。データは、ゲームセンタモジュールに関連付けられている選択されたゲームのゲーム詳細を示す。ゲーム詳細は、選択された友達およびユーザが友達詳細オプション(例えば、友達詳細オプション224)からゲーミング詳細にアクセスした場合の選択されたゲームに対するユーザの比較情報を含む。あるいは、ゲーム詳細は、ユーザがゲームリストオプション(例えば、ゲームリストオプション232)からゲーミング詳細にアクセスした場合の選択されたゲームに対するユーザのみに関するユーザ情報を含む。
【0033】
一実施形態では、比較情報は、選択されたゲームに対するユーザのランキングと選択された友達のランキングとの比較を示すリーダボードオプションを備える。比較情報は、選択されたゲームに対するユーザの一連の達成と選択された友達の一連の達成との比較を示す達成オプションをさらに備えることができる。
【0034】
別の実施形態では、ユーザ情報は、選択されたゲームに対するユーザのランキングを示すリーダボードオプションおよび選択されたゲームに対するユーザの一連の達成を示す達成オプションを備える。そのため、ゲーム詳細オプションは、友達詳細オプションを介してアクセスされた場合に比較モードで第1のオプション群を、ゲームリストオプションを介してアクセスされた場合に非比較モードで第2のオプション群を提示する。
図6は、クライアントシステムとともに最近ゲームを一緒にプレーしたプレーヤとマッチングするコンピュータ実施方法600に対する本発明の一実施形態における流れ図である。コンピュータ実施方法600は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシンまたはシステム上で実行されるようなもの)、または両方の組み合わせを備えることができる処理ロジックによって実行される。一実施形態では、コンピュータ実施方法600は、クライアントシステム上に配置されているゲームセンタモジュール200によって実行される。
【0035】
ゲームセンタアプリケーションおよび関連するゲームセンタモジュールは、起動されると、コンピュータ実施方法300のブロック302および304において説明されているように、選択可能なオプション(例えば、プロファイル、友達、ゲーム、通知)を提示する。ユーザは、コンピュータ実施方法500のブロック502、504、および506で説明され、また図2にも例示されているように、特定のゲームに対するゲーム詳細オプションにアクセスするために友達オプションまたはゲームオプションを選択することができる。ブロック602で、処理ロジックは、システムのグラフィカルユーザインターフェースに提示すべきデータを生成することができる。データは、ゲーミング詳細が最近のマッチオプションを有するゲームセンタモジュールに関連付けられている選択されたゲームのゲーム詳細を示す。ブロック604で、処理ロジックは、最近のマッチオプションのユーザ選択を受け取ることができる。ブロック606で、処理ロジックは、グラフィカルユーザインターフェースに提示すべきデータを生成することができる。データは、ユーザと1人または複数の他のプレーヤとの間の最近のマッチを含む最近のマッチデータを含む。データは、その1人または複数の他のプレーヤとユーザが最近プレーしたゲームを含む。例えば、データは、プレーヤおよびユーザと最近プレーした関連するゲームのリストを含むことができる。プレーヤは、友達、あるいは友達と友達でない人であってもよい。
【0036】
プレーヤのリストは、名前、ステータスメッセージ、表現(例えば、アバター)、およびユーザとの最後のマッチの日付などの、ユーザのそれぞれの友達に対するゲーミング情報を含むことができる。ユーザのそれぞれの、友達でない人に対するゲーミング情報は、名前、表現(例えば、アバター)、およびユーザとの最後のマッチの日付を含むことができる。プレーヤのリスト内のそれぞれのプレーヤは、選択可能なオプションに関連付けられている。
【0037】
ブロック608で、処理ロジックは、友達でない人に関連付けられている選択可能なオプションのユーザ選択を受け取ることができる。ブロック610で、処理ロジックは、グラフィカルユーザインターフェース詳細に提示すべきデータを生成することができる。データは、通知(例えば、友達要求を送る)オプションおよび問題を報告オプションを含む友達でない選択された人に関する詳細を含む。ブロック612で、処理ロジックは、友達要求を送るオプションのユーザ選択を受け取ることができる。ブロック614で、処理ロジックは、グラフィカルユーザインターフェースに提示すべきデータを生成することができる。データは、ユーザとゲームを最近プレーした友達でない選択された人に送信する友達要求を含む。したがって、ユーザは、ユーザとゲームを最近プレーしたプレーヤのリストに基づき友達でない人を友達となるように招待することができる。「友達」は、別のユーザからのカウントに関連付けられているかまたはリンクされているアカウントを有するユーザとして定義することができる。友達サービスオペレーションおよび「友達」を定義することに関するより詳細なことは、同時係属の友達サービスの出願において説明されている。
【0038】
図7は、友達またはゲームサービスとのオートマッチングのユーザのリストに基づきプレーヤを招待するマルチプレーヤゲーム招待を行うコンピュータ実施方法700に対する本発明の一実施形態における流れ図である。コンピュータ実施方法700は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシンまたはシステム上で実行されるようなもの)、または両方の組み合わせを備えることができる処理ロジックによって実行される。一実施形態では、コンピュータ実施方法700は、クライアントシステム上に配置されているゲームセンタモジュール200によって実行される。
【0039】
ブロック702で、処理ロジックは、ユーザ選択に応答して、システム上でマルチプレーヤゲーミングアプリケーションを起動する。ブロック704で、処理ロジックは、システムのグラフィカルユーザインターフェースに提示すべきデータを生成することができる。データは、マルチプレーヤゲーミングアプリケーションに対して1人または複数の友達を招待することをできるようにするユーザの友達のリストを有するゲーミング招待を含む。友達は、個別に、または同時に招待されてもよい。ブロック706で、処理ロジックは、マルチプレーヤゲーミングアプリケーションをプレーするよう招待するユーザの友達のうちの1人または複数を識別するデータを受信することができる(例えば、マルチプレーヤゲーミングアプリケーションをプレーするよう少なくとも1人の友達を招待するために友達のリストから少なくとも1人の友達のユーザ選択を受け取る)。ブロック708で、処理ロジックは、グラフィカルユーザインターフェースに提示すべきデータを生成することができる。データは、1人または複数の招待された友達および1人または複数のオートマッチされるプレーヤに対する招待ステータス情報を含む。招待ステータス情報は、それぞれのオートマッチされるプレーヤポジションが友達を招待オプションを有するマルチプレーヤゲーミングアプリケーションに対する最低プレーヤ要件を満たすのに必要な場合に招待された友達ポジションおよび1人または複数のオートマッチされるプレーヤのプレーヤポジションのリストを含むことができる。マルチプレーヤゲーミングアプリケーションは、典型的には、最小および最大数のプレーヤスロットまたはポジションを有する。埋められる必要がある、ユーザの友達によって埋められていない空のポジションは、ゲームセンタモジュールのオートマッチング機能によって自動的に埋めることができる。一実施形態では、ブロック706における友達のユーザ選択に応答して、一連の招待トランザクションが、同時係属出願において説明されているような招待サービス112により実装されうる。それに加えて、一実施形態では、追加のプレーヤスロットまたはポジションを埋めるために、一連のマッチメイキングトランザクションが、同時係属出願において説明されているようなマッチメイキングサービス111により実装されうる。
【0040】
一実施形態では、それぞれの友達を招待ポジションは、待機中または準備完了を含むステータス情報を有する。待機ステータスを有するそれぞれの友達を招待ポジションは、プレーヤの招待を解除オプションを有することもできる。ブロック710で、処理ロジックは、友達を招待ポジションに関連付けられているすでに招待されている友達の招待を解除するために待機ステータスを有する友達を招待ポジションに関連付けられているプレーヤの招待を解除オプションのユーザ選択を受け取ってもよい。プレーヤの招待を解除オプションのユーザ選択およびその後の確認により、ユーザは、すでに招待されている友達をマッチメーカサービスによって自動的に選択されたプレーヤまたはユーザによって選択されたプレーヤで置き換えることができる。友達を招待ポジションは、待機ステータスを有し、これは招待された友達が招待を受諾しなかったことを示す。友達が招待を受諾したことを示す、準備完了ステータスを有する友達を招待ポジションは、オートマッチプレーヤで置き換えることはできない。あるいは、友達を招待ポジションは、オートマッチオプションを有することもできる。このオプションのユーザ選択により、待機ステータスを有する友達を招待ポジションがプレーヤをオートマッチポジションで置き換えられる。
【0041】
ブロック712で、処理ロジックは、オートマッチポジションを友達を招待ポジションで置き換えるために、友達をオートマッチポジションに関連付けられている友達を招待オプションのユーザ選択を受け取ってもよい。したがって、ユーザは友達およびオートマッチされるプレーヤとのマルチプレーヤゲーミング体験を楽しむことができる。
【0042】
図8は、クライアントシステムによるゲーミング招待を受けるコンピュータ実施方法800に対する本発明の一実施形態における流れ図である。コンピュータ実施方法800は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシンまたはシステム上で実行されるようなもの)、または両方の組み合わせを備えることができる処理ロジックによって実行される。一実施形態では、コンピュータ実施方法800は、クライアントシステム上に配置されているゲームセンタモジュール200によって実行される。
【0043】
ブロック802で、処理ロジックは、ユーザのシステムにより、特定のゲームをプレーする招待をユーザの特定の友達から受け取る。ブロック804で、処理ロジックは、ユーザがその特定のゲームを所有しているかどうかを判定する。ブロック806で、処理ロジックは、グラフィカルユーザインターフェースに、ユーザがその特定のゲームを所有していない場合にその特定のゲームにアクセスするためのアクセスオプション、ゲーム招待を辞退するための辞退オプション、およびゲーム招待を破棄するための任意選択の破棄オプションを含むさまざまなオプションを提示する。破棄オプションを選択することで、ユーザは、ゲームを辞退するか、またはアクセスするかを後で決定することができる。
ブロック808で、処理ロジックは、アクセスオプション(例えば、購入、アプリケーションストア)のユーザ選択に応答して、ユーザをアプリケーションサービス(例えば、アプリケーションストア)に自動的に誘導し特定のゲームを購入させる。あるいは、処理ロジックは、アクセスオプションのユーザ選択に応答して、ユーザをアプリケーションサービスに自動的に誘導して、制限期間内にゲームの完全機能版、または機能が制限されたデモコピーに無料でアクセスできるようにすることができる。
【0044】
ブロック810で、処理ロジックは、グラフィカルユーザインターフェースに、ユーザがデバイス上の特定のゲームを所有している場合に招待を受諾し、その招待の送信者とその特定のゲームをプレーする受諾オプションを提示する。処理ロジックは、グラフィックユーザインターフェースに、招待を辞退する辞退オプションおよび適宜、一定期間招待を破棄する破棄オプションも提示する。
ブロック812で、処理ロジックは、グラフィカルユーザインターフェースに、ユーザが特定のゲームを所有しているが、ユーザによって現在使用されているデバイス上にはない場合に、招待を受諾し、その招待の送信者とのその特定のゲームをダウンロードするダウンロードオプションを提示する。処理ロジックは、グラフィックユーザインターフェースに、招待を辞退する辞退オプションおよび適宜、一定期間招待を破棄する破棄オプションも提示する。
例えば、一実施形態では、1人のプレーヤが招待を生成して別のプレーヤに送信する。
データサービス100は、その招待を受け取るプレーヤを特定し、招待サービス112が、その招待をこのプレーヤに送信し、上で説明されているようにこのプレーヤはゲームを簡単に、または素早く取得するか、またはゲームをプレーすることができる。
【0045】
図9A〜9D、10〜29、34〜42、および45は、本開示の少なくともいくつかの実施形態に従ってクライアントシステム上に配置されているゲームセンタモジュールによって提供される例示的なユーザインターフェース(例えば、グラフィカルユーザインターフェース(GUI))を例示している。図9Aは、本発明の一実施形態におけるゲームセンタモジュールの起動後に生成される例示的なユーザインターフェース900を示す図である。一実施形態では、オプション910はユーザプロファイルに関連付けられ、オプション920は友達に関連付けられ、オプション930はゲーミングアプリケーション(例えば、ゲーム)に関連付けられ、オプション940は通知に関連付けられる。
【0046】
図9Bは、本発明の一実施形態におけるプロファイルオプション910を選択した後に生成される例示的なユーザインターフェース925を示す図である。例えば、ユーザは、初期ゲームセンタユーザインターフェース900からオプション910を選択することができ、処理ロジックは、異なるプロファイルオプションを有する図9Bに例示されているユーザインターフェース925を自動的に生成して提示する。これらのプロファイルオプションは、ユーザ(例えば、Mel)に対する表現950(例えば、2Dアバター、3Dアバター)を生成するための生成/編集オプション954、ステータスメッセージ952、およびアカウント情報オプション956を含むことができる。アカウント情報は、アカウントサービス113に対するアカウントに関係するものとしてよい。
【0047】
図9Cは、本発明の一実施形態におけるアカウント情報オプションを有する例示的なユーザインターフェース960を示す図である。処理ロジックは、オプション956のユーザ選択に応答してユーザインターフェース960を生成する。一実施形態では、オプション956はユーザの電子メールアドレスを表示する。このインターフェース960は、パスワードオプション940、エイリアスオプション942、ゲーム招待オプション944、および電子メールオプション946を備える。
【0048】
図9Dは、本発明の一実施形態におけるプロファイルオプション910を選択した後に生成される例示的なユーザインターフェース970を示す図である。例えば、ユーザは、初期ゲームセンタユーザインターフェース900からオプション910を選択することができ、処理ロジックは、図9Dに例示されているユーザインターフェース970を自動的に生成して提示する。ユーザインターフェース970は、ユーザの名前またはユーザ名(例えば、MEL)、ゲームをする友達の数(例えば、55)、ユーザがプレーするゲームの数(例えば、73)、および完遂した達成の回数(例えば、15)を表示する。ユーザインターフェース970は、ユーザによって設定されるステータスメッセージ978も含む。
【0049】
図10は、本発明の一実施形態における友達のリスト1050を有する例示的なユーザインターフェース1000を示す図である。ユーザインターフェース1000は、友達オプション(例えば、オプション820)のユーザ選択に応答して生成される。友達のリスト1050は、さまざまな検索カテゴリ(例えば、名前、ニックネーム)を使用して検索オプション1060により検索することができる。友達情報(例えば、電子メール、名前、ニックネーム)を有する1つまたは複数のデータベースを検索して、名前またはニックネームで友達を見つけることができる。友達のリスト内にあるそれぞれの友達(例えば、ユーザ名1、ユーザ名2、ユーザ名3)に対する情報が、ユーザインターフェース1000に表示される。この友達情報は、ユーザ名、友達によって与えられるステータスメッセージ(例えば、「自分がこのゲームを支配した」)、友達に対するオプションの表現(REPR)、および友達によって一番最近にプレーされたゲームなどを含む。この表現は、友達に対するアバターであってもよい。オプション1070のユーザ選択により、ユーザの連絡先および関連する連絡先情報(例えば、電話番号、電子メールアドレス、URL、住所、追加フィールドなど)のリストが表示される。
【0050】
図11Aおよび11Bは、本発明の一実施形態における特定の友達の友達詳細を有する例示的なユーザインターフェース1100および1191を示す図である。ユーザインターフェース1100および1191は、友達のリスト1050から友達のユーザ選択に応答して生成される。これらのユーザインターフェースは、ユーザ名(例えば、ニックネームもしくは名前)オプション1150、友達の数、プレーしたゲームの数、達成回数、オプションの表現(例えば、アバター)1160、友達とユーザとの間で一緒にプレーしたゲームのリスト1170、友達とユーザとの間の共通の他のゲームのリスト1180、友達が所有しているが、ユーザ(例えば、Mel)は所有していないゲームのリスト1190を含む選択された友達に対する友達詳細を表示する。一緒にプレーするそれぞれのゲームについて、リスト1170は、ゲームアイコン(例えば、I4)、特定のゲームに対する友達の達成、ゲームの名前、および特定のゲームに対して友達とユーザがリーダボード上でどのようなランキングになるかの比較(例えば、自分より上位にランクしている、自分よりwaaaaaaaayだけ高いランキングを得ている、自分と同じ程度のランキング)を含むことができる。例えば、友達は、リスト1170に表示されているゲーム名4についてはユーザより上位にランクしている。
【0051】
いくつかの実施形態では、ユーザおよび友達のランキングを互いに比較して表示する。
例えば、ゲーム名4について、友達は、47パーセンタイルにランクし、ユーザは49パーセンタイルにランクする。この場合、友達およびユーザは同程度のランキングである。
別の実施形態では、ゲーム名4について、友達は第1位にランクし、ユーザは最後にランクする。この場合、友達は、自分よりwaaaaaaaayだけ高いランキングを得ている。
ゲームアイコンは、クライアントシステムにゲームアイコンがない場合にクライアントシステムまたはサーバから取り出すことができる。一実施形態では、友達が、友達の表現(例えば、アバター)に対する色を選択する。処理ロジックは、ユーザのシステム上でこの色を生成し、また友達の色に基づき補色または背景を自動的に選択する。背景色は、このユーザインターフェース1100上のテキストの少なくとも一部に対して使用することができる。
【0052】
ユーザの表現(例えば、アバター)に対するユーザ選択(例えば、色、背景パターン)または他の設定を、新しいゲーム開発者がゲームの一部としてこれらの選択を利用することができるようにブロードキャストすることができる。例えば、青色の色彩の好みを有するユーザは、自動的に、またはゲームをプレーしている最中に青色のゲームコンポーネント(例えば、アバター、自動車)を有するデフォルトによって、ユーザと新しいゲームをプレーすることができるものとしてよい。
共通のそれぞれのゲームについて、リスト1180は、ゲームアイコン(例えば、I5)、特定のゲームに対する友達の達成、ゲームの名前、および特定のゲームに対して友達とユーザがリーダボード上でどのようなランキングになるかの比較(例えば、自分より上位にランクしている)を含むことができる。例えば、友達は、リスト1180に表示されているゲーム名5についてはユーザより下位にランクしている。
【0053】
友達が所有し、ユーザ(例えば、Mel)が所有していないそれぞれのゲームについて、リスト1190は、ゲームアイコン(例えば、I6)、特定のゲームのゲーム製造業者、ゲームの名前、特定のゲームに対する評価(例えば、星5つのうちの2つ)、および特定のゲームを購入する費用を含むことができる。例えば、ゲーム名6は、星2つの評価であり、オンラインアプリケーションストアから$1.99で購入する。処理ロジックは、これらのゲームのうちの1つ(例えば、ゲーム名6)のユーザ選択に応答して、ユーザをオンラインアプリケーションストア(例えば、アプリケーションサービス114)に自動的に誘導し選択されたゲームを購入させる。
ゲームセンタモジュールは、ゲームの完全機能版を購入するためのユーザインターフェースを備えることができる。あるいは、ゲームセンタモジュールは、制限期間中にゲームの完全機能版を、または機能が制限されたデモコピーに無料でアクセスするためのユーザインターフェースを備えることができる。別の実施形態では、ゲームセンタモジュールは、サーバ(例えば、アプリケーションストア)上でゲーミングアプリケーションを一意的に識別するアプリケーションシードを備える。
【0054】
別の実施形態では、ユーザは、ユーザが持っていない特定のゲームをプレーする特定の友達から招待を受ける。上で説明されているように、ゲームセンタモジュールは、ゲームの完全機能版を購入するためのユーザインターフェースを備える。あるいは、ゲームセンタモジュールは、制限期間中にゲームの完全機能版を、または機能が制限されたデモコピーに無料でアクセスするためのユーザインターフェースを備える。さらに別の実施形態では、ゲームセンタモジュールは、サーバ(例えば、アプリケーションストア)上でゲーミングアプリケーションを一意的に識別するアプリケーションシードを備える。一実施形態では、これらの異なるオプションは、制限された権利または完全な権利を備えるためのゲーミングアプリケーションのユーザ設定に基づく。
【0055】
図12は、本発明の一実施形態におけるゲームのリスト1250を有する例示的なユーザインターフェース1200を示す図である。ユーザインターフェース1200は、ゲームオプション(例えば、オプション1230)のユーザ選択に応答して生成される。ゲームのリスト1250は、アルファベット順または一番最近にプレーした順序で並べることができる。一実施形態では、ゲームのリスト1250は、ユーザがその特定のゲームをシステムから削除した場合であっても特定のゲームを含む。
ゲームのリスト内のそれぞれのゲームに対する情報は、ユーザインターフェース1200上に表示される。このゲーム情報は、ゲームアイコン、このゲームに対するユーザ達成、ゲーム名、およびこのゲームをプレーするユーザに対するランキングを含む。例えば、ゲーム名11は、ゲームアイコン11とともに表示される。ユーザは、達成率が30/52であり、そのランクはプレーヤ1000人中250位である。あるいは、このユーザに対するランキングは、全員の間のランキングではなくユーザの友達間のランキングであってもよい。
【0056】
図13は、本発明の一実施形態における特定のゲームのゲーミング詳細を有する例示的なユーザインターフェース1300を示す図である。ユーザインターフェース1300は、ゲームのリスト1250からのゲーム(例えば、ゲーム名11)のユーザ選択に応答して生成される。このユーザインターフェースには、ゲームアイコン、リーダボードオプション1350、達成オプション1354、最近のマッチ(例えば、最近プレーした)オプション1360、および友達に知らせるオプション1370を含む選択されたゲームに対する詳細が表示される。リーダボードオプション1350は、達成回数、ユーザの表現(例えば、アバター)、およびユーザに対するランキングを含む。ユーザインターフェース1300は、プレーオプション1380も備える。オプション1380の選択により、ゲーム(例えば、ゲーム名11)がプレーされる。あるいは、ユーザがこの特定のゲーム(例えば、ゲーム名11)を有していない場合、プレーオプション1380は、ユーザをアプリケーションストアにリンクする購入オプションで置き換えられるか、またはプレーオプション1380は、アプリケーションストアまたは別の場所からゲームをダウンロードする入手するオプションで置き換えることも可能であろう。
【0057】
オプション1350の選択により、処理ロジックは本発明の一実施形態の図14Aに例示されているようにユーザインターフェース1400を生成する。ユーザインターフェース1400は、すでに選択されているゲーム名(例えば、ゲーム名11)、ユーザによってプレーされたゲームの数、リーダボード内のプレーヤの数、およびそのリーダボードの少なくとも部分的なリストを含むリーダボードである。ユーザインターフェース1400は、今日オプション1450、今週オプション1452、終日オプション1454、友達オプション1460、および全員オプション1470を備える。リーダのリストは、これらのオプションに基づきフィルタリングされ、ランク付けされる。
【0058】
いくつかの実施形態では、特定の数の最上位プレーヤがリストされ(例えば、5人)、ユーザ(例えば、Mel)がこのリストに載っていない場合、ユーザのランキングもリストされる(例えば、25位)。もっと見るオプション1480を選択して、さらに別のプレーヤランキングを表示することができる。最近プレーしたゲームオプション1490を使用して、ランキングをフィルタリングし、一番最近のゲーム(例えば、10個の一番最近のゲーム)でプレーしたプレーヤのランキングを示してもよい。
【0059】
あるいは、オプション1350の選択により、処理ロジックは一実施形態による図14Bに例示されているようにユーザインターフェース1491を生成する。ユーザインターフェース1491は、異なるリーダボード(例えば、リーダボード1、リーダボード2など)のうちから選択する選択可能なリーダボードオプション1492を備える。例えば、ゲーム名11は、それぞれに関係しない4つの異なるトラックを備えることができる。異なるリーダボードが、それぞれのトラックについて生成されうる。マージされたリーダボードは、すべてのトラックから集計されたランキングを含みうる。ユーザインターフェース1491は、今日オプション1450、今週オプション1452、および終日オプション1454を備える。リーダのリストは、これらのオプションに基づきフィルタリングされ、ランク付けされる。
友達1494は、ゲーム名11に対するMelの友達のランク付けされたリストを含む。全員1496は、ゲーム名11に対するすべてのユーザのランク付けされたリストを含む。
【0060】
いくつかの実施形態では、特定の数の最上位プレーヤがリストされ(例えば、5人)、ユーザ(例えば、Mel)がこのリストに載っていない場合、ユーザのランキングもリストされる(例えば、25位)。もっと見るオプション(例えば、1495、1497)を選択して、さらに別のプレーヤランキングを表示することができる。適宜、最近プレーしたゲームオプション1490を使用して、ランキングをフィルタリングし、一番最近のゲーム(例えば、10個の一番最近のゲーム)でプレーしたプレーヤのランキングを示してもよい。リーダボード内にランキングを作成するために、異なる種類の測定基準を定義することができる。例えば、この測定基準は、点、トップフィニッシュの数、特定の閾値内のフィニッシュの数などを含むことができる。ゲーム開発者は、これらの測定基準およびリーダボードを定義することができる。ユーザインターフェース(例えば、1400、1491)は、ユーザの便宜のためゲーム中により小さなスナップショットとして提示することができる。ゲーム中に提示されるリーダボードは、ゲーム中に選択可能な、または選択可能でないオプションを有することができる。
【0061】
図13を再び参照すると、オプション1354の選択により、処理ロジックは本発明の一実施形態の図17に例示されているようにユーザインターフェース1700を生成することがわかる。ユーザインターフェース1700は、選択されたゲーム(例えば、ゲーム名11)に関するユーザの達成を表示する。これらの達成は、ユーザによって完遂された達成の数に基づくスコアを含む(例えば、30/52、および結果として得られる180点のスコア)。ユーザインターフェース1750は、達成のリスト1750を含む。それぞれの達成は、名前、説明する行、およびユーザが達成を完遂した場合のアイコンを有する。そうでない場合、このアイコンは、達成の完遂に向けての現在の進捗率(例えば、70%、30%)を示す進捗情報で置き換えられる。このアイコンは、ユーザが達成の完遂に向けて進捗していないか、または特定の進捗閾値より低い場合に疑問符(?)が付けられる。
【0062】
図13を再び参照すると、オプション1360の選択により、処理ロジックは本発明の一実施形態の図19に例示されているようにユーザインターフェース1900を生成することがわかる。ユーザインターフェース1900は、ユーザとの最近のマッチからのプレーヤのリスト1950を含む。例えば、ユーザとの10回の一番最近のマッチからのすべてのプレーヤを表示することができる。リスト1950は、友達オプション1960またはすべてのプレーヤオプション1962の選択に基づき友達のみ、またはすべてのプレーヤを含みうる。友達でない人に比べて、友達に対してはより多くの情報を共有することができる。例えば、ユーザのそれぞれの友達に対する共有されるゲーミング情報は、名前、ステータスメッセージ、表現(例えば、アバター)、およびセッションデータ(例えば、ユーザとの最後のマッチの日付)を含むことができる。ユーザのそれぞれの、友達でない人に対する共有されるゲーミング情報は、名前、表現(例えば、アバター)、およびセッションデータを含むことができる。一実施形態では、セッションデータは、サーバから取得される。別の実施形態では、セッションデータは、友達または友達でない人について共有されない。プレーヤのリスト内のそれぞれのプレーヤは、選択可能なオプションに関連付けられている。
【0063】
すでに友達であるプレーヤの選択により、処理ロジックは選択された友達に対するユーザインターフェース1100を生成する。友達でないプレーヤの選択により、このプレーヤを友達になるように招待するために処理ロジックは本発明の一実施形態の図20に例示されているようにユーザインターフェース2000を生成する。ユーザインターフェース2000は、友達でない選択された人に対する名前、表現(例えば、アバター)、およびセッションデータを含むことができる。友達要求を送るオプション2020を、図23に例示されているように友達要求通信を有する例示的なユーザインターフェースを生成するために選択することができるか、またはこの要求を、図21に例示され、以下でさらに詳しく説明されているように要求のリストを有する例示的なユーザインターフェースに追加することができる。あるいは、ユーザインターフェース2000からオプション2060を選択することによってこの選択されたプレーヤに関する問題を報告することができる。
ユーザインターフェース2000は、適宜プレーヤ評価オプション2070を備えることもできる。ユーザは、ユーザと最近マッチしたプレーヤに対する評価を与えることができる。オプション2080の選択により、前のユーザインターフェース1900の生成が行われる。
【0064】
図13を再び参照すると、ユーザインターフェース1300からオプション1370を選択すると、処理ロジックは通信(例えば、電子メールメッセージ)を作成するためのユーザインターフェースを生成することがわかる。ユーザは、この通信を友達に送信することができる。
【0065】
図15Aは、本発明の一実施形態における特定のゲームに対するゲーム詳細を有する例示的なユーザインターフェース1500を示す図である。ユーザインターフェース1500は、ユーザの特定の友達に対する友達詳細を含むユーザインターフェース1100からのゲーム(例えば、ゲーム名11)のユーザ選択に応答して生成される。ユーザインターフェース1500には、ゲームアイコン、リーダボードオプション1550、達成オプション1560、および友達に知らせるオプション1570を含む選択されたゲームに対する詳細が表示される。リーダボードオプション1550は、前に選択された友達(例えば、Susie)とユーザとの間のランキングの比較を含む。ユーザインターフェース1500は、選択されたゲームをプレーするためのプレーオプション1580も備える。
【0066】
図15Bは、本発明の一実施形態における特定のゲームに対するゲーム詳細を有する例示的なユーザインターフェース1582を示す図である。ユーザインターフェース1582は、ユーザの特定の友達に対する友達詳細を含むユーザインターフェース1100からのゲーム(例えば、ゲーム名11)のユーザ選択に応答して生成される。ユーザインターフェース1582には、ゲーム名、ユーザ(例えば、Mel)と友達(例えば、Susie)に対する点の比較、リーダボードオプション1586、達成オプション1588を含む選択されたゲームに対する詳細が表示される。リーダボードオプション1586は、前に選択された友達(例えば、Susie)とユーザの友達に対するユーザとの間のランキングの比較(例えば、4/55、25/55)を含む。全員の間のSusieおよびユーザに対するランキング(例えば、上位15%、上位25%)も含めることができる。達成オプション1588は、Susieとユーザとの間の達成の比較(例えば、32/52、30/52)を含む。ユーザインターフェース1582は、選択されたゲームをプレーするためのプレーオプション1584も備える。
図15Aからのオプション1550の選択により、処理ロジックは本発明の一実施形態の図16Aに例示されているようにユーザインターフェース1600を生成する。ユーザインターフェース1600は、すでに選択されているゲーム名(例えば、ゲーム名11)、ユーザによってプレーされたゲームの数、リーダボード内のプレーヤの数、およびそのリーダボードの少なくとも部分的なリストを含むリーダボードである。ユーザインターフェース1600は、今日オプション1650、今週オプション1652、終日オプション1654、友達オプション1660、および全員オプション1670を備える。リーダのリストは、これらのオプションに基づきフィルタリングされ、ランク付けされる。
【0067】
いくつかの実施形態では、特定の数の最上位プレーヤがリストされ(例えば、5人)、ユーザがこのリストに載っていない場合、ユーザのランキングもリストされる(例えば、25位)。選択された友達(例えば、Susie)もランキングに含めて、Susieとユーザ(例えば、Mel)との間の比較を示すことができる。もっと見るオプション1680を選択して、さらに別のプレーヤランキングを表示することができる。適宜、最近プレーしたゲームオプション1690を使用して、ランキングをフィルタリングし、一番最近のゲーム(例えば、10個の一番最近のゲーム)でプレーしたプレーヤのランキングを示してもよい。
【0068】
図15Bを再び参照すると、オプション1586の選択により、処理ロジックは本発明の一実施形態の図16Bに例示されているようにユーザインターフェース1691を生成することがわかる。ユーザインターフェース1691は、異なるリーダボード(例えば、リーダボード1、リーダボード2など)のうちから選択する選択可能なリーダボードオプション1692を備える。あるいは、マージされたリーダボードは、すべてのリーダボードから集計されたランキングを含みうる。ユーザインターフェース1691は、今日オプション1650、今週オプション1652、および終日オプション1654を備える。リーダのリストは、これらのオプションに基づきフィルタリングされ、ランク付けされる。
友達1694は、ゲーム名11に対するMelの友達のランク付けされたリストを含む。全員1696は、ゲーム名11に対するすべてのユーザのランク付けされたリストを含む。
【0069】
いくつかの実施形態では、特定の数の最上位プレーヤがリストされ(例えば、5人)、ユーザ(例えば、Mel)がこのリストに載っていない場合、ユーザのランキングもリストされる(例えば、250位)。Susieのランキングも、特定の数の最上位プレーヤの中に入っていないとしてもリストされうる。もっと見るオプション(例えば、1695、1697)を選択して、さらに別のプレーヤランキングを表示することができる。上で説明されているように、ユーザインターフェース(例えば、1600、1691)は、ユーザの便宜のためゲーム中により小さなスナップショットとして提示することができる。
【0070】
図15Aを再び参照すると、オプション1560の選択により、処理ロジックは本発明の一実施形態の図18Aに例示されているようにユーザインターフェース1800を生成することがわかる。ユーザインターフェース1800は、ユーザおよび選択された友達に対するスコアと、完遂された達成の回数に基づくスコアとの比較を含む。例えば、ゲーム名11について、Susieは、210点を持ち、Melは、180点を持つ。ユーザインターフェース1800は、前に選択されているゲーム名(例えば、ゲーム名11)に対する達成のリストも含み、前に選択されている友達(例えば、Susie)およびユーザに対する達成を表示する。例えば、Susieは、図18に例示されているように、達成1および3を完遂しているが、Susieは、達成2および4を完遂していない。ユーザは、アイコン1および2で例示されているように、達成1および2を完遂しているが、達成3および4を完遂していない。それぞれの達成は、名前、説明する行、およびユーザが達成を完遂した場合のアイコンを有する。そうでない場合、このアイコンは、達成の完遂に向けての現在の進捗率(例えば、70%、25%)を数値およびグラフ形式で示す進捗情報で置き換えられる。
【0071】
図15Bを再び参照すると、オプション1588の選択により、処理ロジックは本発明の一実施形態の図18Bに例示されているようにユーザインターフェース1850を生成することがわかる。ユーザインターフェース1850は、ユーザおよび選択された友達に対するスコアおよび達成と、完遂された達成の回数に基づくスコアとの比較を含む。例えば、ゲーム名11について、Susieは、210点および32回の達成を有し、Melは、180点および30回の達成を有する。ユーザインターフェース1850は、前に選択されているゲーム名(例えば、ゲーム名11)に対する達成のリストも含み、前に選択されている友達(例えば、Susie)およびユーザに対する達成を表示する。例えば、Susieは、図18に例示されているように、達成1および3を完遂しているが、Susieは、達成2および4を完遂していない。ユーザは、アイコン1および2で例示されているように、達成1および2を完遂しているが、達成3および4を完遂していない。それぞれの達成は、名前、説明する行、およびユーザが達成を完遂した場合のアイコンを有する。そうでない場合、このアイコンは、達成の完遂に向けての現在の進捗率(例えば、70%、25%)を数値およびグラフ形式で示す進捗情報で置き換えられる。アイコンは、ユーザに進捗がないか、または特定の進捗閾値より低い進捗の場合に疑問符インジケータ(?)が付けられる。ゲーム名11のゲームは、プレーオプション1860の選択によりSusieとMelとの間で開始することができる。
図15Aを再び参照すると、ユーザインターフェース1500からオプション1570を選択すると、処理ロジックは通信(例えば、電子メールメッセージ)を作成するためのユーザインターフェースを生成することがわかる。ユーザは、この通信を友達に送信することができる。
【0072】
ゲームセンタモジュールおよびゲームサービスは、ユーザが通知(例えば、友達要求、ゲーム招待、ゲーム更新など)を送受信することができるゲームセンタを備える。図21〜27は、友達要求およびゲーム招待に対する例示的なユーザインターフェースを示している。
図21は、本発明の一実施形態における通知(例えば、友達要求、更新)のリストを有する例示的なユーザインターフェース2100を示す図である。通知オプション2140のユーザ選択により、図21に例示されているようなユーザインターフェース2100が生成される。ユーザインターフェース2100は、ユーザが受信または送信した通知のリスト2150を含む。オプション2160の選択では、処理ロジックは受信した通知(例えば、友達要求、更新)のリストを生成するが、オプション2162の選択では、処理ロジックは送信した通知(友達要求、更新)のリストを生成する。オプション2170のユーザ選択により、ユーザの連絡先および関連する連絡先情報(例えば、電話番号、電子メールアドレス、URL、住所、追加フィールドなど)のリストが表示される。
【0073】
一実施形態では、着信した友達要求は、電子メールアドレスに関連付けられうる。ユーザの連絡先に関連付けられているユーザのアドレス帳もしくは連絡先情報を検索して、電子メールアドレスとマッチするものを見つけることができる。マッチがあった場合、着信した友達要求により、着信した友達要求をユーザに送信したプレーヤに対する実名またはニックネームが表示される。
【0074】
一実施形態では、オプション2160が選択されると、ユーザ名22も選択される。図22は、本発明の一実施形態における受信した友達要求を有する例示的なユーザインターフェース2200を示す図である。ユーザインターフェース2200は、リスト2150からユーザ名22の選択に応答して生成される。ユーザインターフェース2200は、表現(例えば、アバター)およびこのプレーヤからのショートメッセージなどの友達要求を送信したプレーヤに関する詳細を含む。ユーザインターフェース2200は、要求を受諾するための受諾オプション2250、要求を辞退するための辞退オプション2252、要求に関する詳細を表示するための任意選択の表示オプション2254、および友達要求を破棄し、場合によっては特定の期間中または無期限に同じプレーヤからの今後の要求をブロックするための任意選択の破棄オプション2256も備える。
【0075】
一実施形態では、ユーザインターフェース2200は、オプション2250、2252、2254、および2256を備える。いくつかの実施形態では、オプション2254および2256は両方とも含まれないか、またはこれらのオプションのうちの一方のみが含まれない。いくつかの実施形態では、これらのオプションのさまざまな組み合わせも可能である。ユーザが現在の友達の友達解除を行う、友達要求を1回辞退し、このプレーヤからまた招待があっても決して受けない、または友達要求を時間で(例えば、1回招待/週)制限するオプションも備えることができる。
ユーザインターフェース2200は、招待を送信したプレーヤに関する問題を報告するための問題を報告オプション2260も備える。要求オプション2270のユーザ選択により、ユーザインターフェース2100の生成が行われる。
図23は、本発明の一実施形態における友達要求通信を有する例示的なユーザインターフェース2300を示す図である。ユーザインターフェース2300は、さまざまなユーザ選択に応答して生成されうる。例えば、ユーザインターフェース2300は、友達リストからのユーザ選択(例えば、オプション1070)、要求リスト(例えば、オプション2170)、または最近のプレーオプション(例えば、友達要求を送信2050)に応答して生成される。
【0076】
一実施形態では、ユーザインターフェース2300は、友達要求通信をプレーヤに送信するための送信オプション2350、通信を取り消すための取り消しオプション2352、選択されたプレーヤのユーザ名を表示し、電子メールアドレスに関連付けられている送信先フィールド2380、メッセージを作成するためのテキストフィールド2360、および仮想キーボード2370を備える。ユーザインターフェース2300は、電子メールメッセージを表示することができる。送信オプション2350のユーザ選択により、図24に例示されているようなアラートメッセージ2400が本発明の一実施形態のシステムのグラフィカルユーザインターフェース上に表示される。アラートメッセージ2400は、友達要求が送信されたことを指示し、友達は、受諾後にユーザの友達リストに追加される。承諾オプション2410の選択により、アラートメッセージ2400がグラフィカルユーザインターフェースから消去される。
【0077】
一実施形態では、送信先フィールド2380は、前のユーザ選択(例えば、オプション2050の選択)に基づきユーザ名を予め埋められている。あるいは、ユーザは、連絡先情報(例えば、名前、ニックネーム、エイリアス、電子メールアドレス、電話番号)をフィールド2380に入力することができる。別の実施形態では、ユーザは、オプション2354を選択して、ユーザの連絡先またはアドレス帳から招待するプレーヤに対する連絡先情報を検索することができる。ユーザは、特定のプレーヤがゲームセンタモジュールに関連付けられているゲームサービスに登録されているかどうかを連絡先情報から判定することができるものとしてよい。
【0078】
ユーザが送信オプション2350を選択した後、ゲームサービスに関連付けられているサーバが、フィールド2380内に連絡先情報を受信する。連絡先情報が電子メールアドレスがある場合、サーバは、その電子メールアドレスを使用して、ゲームサービスまたはアカウントサービスに登録されている電子メールアカウント内のマッチする電子メールを見つける。次いで、友達要求の受信者は、受信者に関連付けられているゲームセンタモジュール内に現れるプッシュ通知を受信する。連絡先情報が電子メールアドレスでない場合(例えば、エイリアス)、受信者がゲームサービスに登録されていれば連絡先情報を使用して受信者の電子メールアドレスを見つけることができる。そうでなければ、受信者がゲームサービスに登録されていない場合、受信者の電子メールアドレスを見つけるために外部ソーシャルネットワーク(例えば、Facebook、Twitter)を検索することができる。例えば、Facebookデータは、受信者、およびこの受信者の電子メールアドレスを要求するこの電子メールとともにFacebookに送信された電子メールについて取得されうる。
【0079】
一実施形態では、受信者は、クライアントシステム(例えば、Apple iPod Touch(登録商標)、Apple iPhone(登録商標)、Apple iPad(登録商標))およびゲームサービスのアカウントを持つ。友達要求を受信した後、受信者のゲームセンタモジュールが起動され、受信者は友達要求を受諾することができる。
一実施形態では、受信者はクライアントシステムを有しているが、ゲームサービスのアカウントを有していない。友達要求を受信した後、受信者のゲームセンタモジュールが起動され、受信者はゲームセンタモジュールに関連付けられているゲームサービスに加入するようにとの推奨を受け取る。別の実施形態では、受信者は、クライアントシステムを有していない。この場合、受信者は、電子メールメッセージを受信し、ゲームサービスに加入するウェブページに誘導されうる。
【0080】
図25〜27は、本発明の一実施形態においてマルチプレーヤゲーミングを体験しているときにゲームセンタモジュールによっても提供されるユーザインターフェース(例えば、グラフィカルユーザインターフェース)を示す図である。ユーザがマルチプレーヤゲーミングアプリケーションを開始した後、ユーザがマルチプレーヤゲームに対する最小数から最大数までのプレーヤを招待することを可能にするユーザインターフェース2500が生成される。ユーザインターフェース2500は、ユーザとマルチプレーヤゲームをプレーするために個別にまたは同時に招待されうるユーザの友達のリストを含む。ユーザは、オプション2570〜2573で1人または複数の友達を選択し、次いで、プレーまたは完遂オプション2560を選択するか、またはオプション2562で取り消すことができる。ユーザがオプション2560を選択した場合、ユーザインターフェース2600が生成される。ユーザインターフェース2600は、マルチプレーヤゲームに対するポジションもしくはスロット(例えば、2680、2682、2684、2686)に付けられているプレーヤのリスト2650を含む。この例におけるマルチプレーヤゲームは、4から8人のプレーヤを必要とする。他の実施形態では、4人より少ないプレーヤを必要とするか、または8人より多いプレーヤが許される場合がある。プレーヤは、招集されるプレーヤのための「ロビー」内で待機しているこの時間にピアツーピア接続を確立していてもよい。プレーヤは、互いにメッセージを交換するか、またはチャットすることができる。ユーザは、ロビー環境を制御し、消音および/またはプレーヤ音量の変更を行うことができる。
【0081】
リスト2650には、ユーザ(例えば、Mel)、招待を受け取ったが、まだ返事を出していない招待された友達(例えば、ユーザ名1)、ゲームサービスおよびマッチメーカ111によって自動的に記入される2人のオートマッチプレーヤで埋められ4つのポジションが含まれる。リスト2650は、この例では4つの追加のポジションを含むことができる。ユーザは、マルチプレーヤゲーミングアプリケーションに対してユーザの友達の1つまたは複数のファクター(例えば、ゲーミング能力)に基づき少なくとも1人の友達を選択することができる。
【0082】
マッチメーカサービスは、オートマッチングを実行することができ、さまざまなファクター(例えば、プレーヤスキルレベル、リーダボードランキング、達成スコア、ユーザの評価、ロケーション、時間帯、すぐプレーできるプレーヤ、年齢など)に基づきオートマッチプレーヤを選択することができる。
【0083】
インターフェース2600は、今すぐプレーオプション2660、取り消しオプション2662、プレーヤ追加オプション2670、およびプレーヤ削除オプション2672も備える。一実施形態では、プレーヤ追加オプション2670のユーザ選択により、ユーザインターフェース2500が生成され、ユーザは1人または複数友達を選択することによって1人または複数のプレーヤを追加することができる。プレーヤ追加オプション2670は、そのゲームに対するプレーヤの数が最大数に達した場合に無効にすることができる。プレーヤ削除オプション2672のユーザ選択により、ユーザはリスト2650内にリストされているポジションのうちの1つを埋めている1人または複数のプレーヤを選択することによって1人または複数のプレーヤを削除することができる。プレーヤを削除オプション2672は、そのゲームに対するプレーヤの数が最小数に達した場合に無効にすることができる。
【0084】
招待解除オプション2652のユーザ選択およびその後の確認により、ユーザは、現在のプレーヤ−(例えば、ユーザ名1)をマッチメーカサービスによって自動的に選択されたプレーヤまたはユーザによって選択されたプレーヤで置き換えることができる。友達を招待オプション2654または2656のユーザ選択により、ユーザはオートマッチプレーヤをユーザによって選択されたプレーヤで置き換えることができる。例えば、ユーザは、招待オプション2654を選択して、友達(例えば、ユーザ名2)を招待することができる。これらの選択によりユーザインターフェース2700が生成される。招待オプション2654に関連付けられているオートマッチポジション2684は、ユーザインターフェース2700内に招待解除オプション2754を有するポジション2784に関連付けられている友達(例えば、ユーザ名2)で置き換えられている。それに加えて、ユーザ名1は、その招待を受諾しており、ポジション2782に対するステータスが「準備完了」に更新されている。オートマッチオプション2652は、ユーザ名1が招待を受諾したのでこのポジションから削除されている。
【0085】
一実施形態では、ユーザ名1がユーザからの招待を辞退していた場合、ポジション2682または2782は、すぐに色を変え、および/また一瞬光る。次いで、ポジションはオートマッチングに戻る。招待された友達(例えば、ユーザ名1)が特定の期間内に、または特定の周期で応答できなかった場合、招待された友達はオートマッチングで置き換えられる。あるいは、招待されたプレーヤは、特定の他のプレーヤからの招待を常に辞退することができる。ユーザ選択ポジションおよびオートマッチポジションは、ユーザ選択ポジションがユーザインターフェース最上部に近いところで先頭にリストされることで順序付けられうる。
【0086】
一実施形態では、1つのプレーヤポジションが準備完了ステータスを有し、2つの他のポジションが待機ステータスを有し、残りのポジションはオートマッチングで埋められる。1人のプレーヤが今すぐプレーオプション(例えば、2660、2760)を選択した場合、ゲームは、準備完了ステータスのプレーヤおよび他のポジションに対するオートマッチングプレーヤから開始することができる。追加オートマッチングプレーヤは、ゲームの最小プレーヤ要件を満たすために必要な場合に追加することができる。プレーが待機ステータスを有する友達なしで始まっていることを示すアラートが生成されうる。一実施形態では、プレーが開始できるか、またはプレーの最中にアラートが発生しうる前に問題を解決する必要があることを示すアラートを発生させることができる。ゲームの開始時にMelがゲームから抜けるか、または接続を失った場合、自分のポジションをオートマッチプレーヤで置き換えることができる。
いくつかの実施態様では、ゲーム内でアラートを発生させる。例えば、ゲームに入ったときに、歓迎アラートがグラフィカルユーザインターフェース上をスライドするものとしてよい。図28は、本発明の一実施形態においてユーザインターフェース2800上をスライドする例示的な歓迎アラート2810を示す図である。図29は、本発明の一実施形態においてグラフィカルユーザインターフェース2900上をスライドする例示的な達成賞2910を示す図である。ユーザが達成を完遂したことに応答して達成賞2910が生成される。
一実施形態では、ユーザは、ゲーム内からプレーヤに関する問題を報告することができる。ユーザも、ゲーム内から他のプレーヤに対する評価を表示することができる。
【0087】
本開示で説明されているユーザインターフェースは、単なる例にすぎない。他の変更形態および修正形態も、本開示の範囲内にある。例えば、いくつかのユーザインターフェースは、ユーザインターフェースの下部近くに4つのオプション(例えば、プロファイルオプション、友達オプション、ゲームオプション、通知オプション)を置いて表示されている。これらのオプションは、ユーザインターフェース上の他の場所に配置するか、全く表示しないようにできる。
説明されている実施形態は、本発明の一実施形態における有線もしくはワイヤレス通信チャネル3002を介して図30に例示されているようなコンピューティングシステム3003と相互にやり取りするためのタッチ入力を受け付けることができるタッチI/Oデバイス3001を備えることができる。タッチI/Oデバイス3001を、キーボードなどの他の入力デバイスの代わりに、またはそれと組み合わせて使用することで、ユーザはコンピューティングシステム3003に入力することができる。ユーザがコンピューティングシステム3003に入力するために、1つまたは複数のタッチI/Oデバイス3001を使用することができる。タッチI/Oデバイス3001は、コンピューティングシステム3003の一体部分(例えば、ラップトップのタッチスクリーン)であるか、またはコンピューティングシステム3003から分離していてもよい。
【0088】
タッチI/Oデバイス3001は、全面的にまたは部分的に透明であるか、または半透明であるか、または非透過的であるか、または不透明であるか、またはこれらの組み合わせであるタッチセンサー式パネルを備えることができる。タッチI/Oデバイス3001は、タッチスクリーン、タッチパッド、タッチパッドとして機能するタッチスクリーン(例えば、ラップトップのタッチパッドを置き換えるタッチスクリーン)、他の入力デバイスと組み合わせた、またはこれを組み込んだタッチスクリーンもしくはタッチパッド(例えば、キーボード上に配設されたタッチスクリーンもしくはタッチパッド)、またはタッチ入力を受け取るためのタッチセンサー面を有する多次元の物体として実現されうる。
【0089】
一例では、タッチスクリーンとして実現されたタッチI/Oデバイス3001は、ディスプレイの少なくとも一部の上に部分的にまたは全面的に位置する透明および/または半透明のタッチセンサー式パネルを備えることができる。この実施形態によれば、タッチI/Oデバイス3001は、コンピューティングシステム3003(および/または他のソース)から送信されるグラフィックデータを表示する機能を有し、またユーザ入力を受け取る機能も有する。他の実施形態では、タッチI/Oデバイス3001は、タッチセンサー式コンポーネント/デバイスがディスプレイコンポーネント/デバイスと一体になっている一体化タッチスクリーンとして実現されうる。さらに他の実施形態では、タッチスクリーンは、補足データまたはプライマリディスプレイと同じグラフィックデータを表示し、タッチ入力を受け取るための補足または追加ディスプレイ画面として使用されうる。
【0090】
タッチI/Oデバイス3001は、静電容量性、抵抗性、光学的、音響学的、誘導性、機械的、化学的な測定結果に基づくデバイス3001上の1回または複数回のタッチもしくはニアタッチの場所を、またはデバイス3001の近くでの1回または複数回のタッチもしくはニアタッチの発生に関して測定されうる現象を検出するように構成されうる。ソフトウェア、ハードウェア、ファームウェア、またはこれらの組み合わせを使用して、検出されたタッチの測定結果を処理し、1つまたは複数のジェスチャを識別し、追跡することができる。ジェスチャは、タッチI/Oデバイス3001上の静止している、または静止していない、単一のまたは複数回のタッチもしくはニアタッチに対応しうる。ジェスチャは、軽く打つ、圧迫する、揺り動かす、磨く、ひねる、向きを変える、圧力を変化させて圧迫する、本質的に同時に、連続的に、または引き続き同様の操作を行うなど、タッチI/Oデバイス3001上での特定の方法により1つまたは複数の指もしくは他の物体を移動することによって実行される。ジェスチャは、限定はしないが、他の1つまたは複数の指の間または他の1つまたは複数の指による摘む、滑らせる、スワイプする、回転する、屈曲する、ドラッグする、または軽く打つ動作によって特徴付けることができる。単一のジェスチャは、1つまたは複数の手で、1人または複数のユーザによって、またはこれらの組み合わせで実行されうる。
【0091】
コンピューティングシステム3003は、グラフィックデータを使用するディスプレイを駆動して、グラフィカルユーザインターフェース(GUI)を表示することができる。
GUIは、タッチI/Oデバイス3001を介してタッチ入力を受け取るように構成されうる。タッチスクリーンとして実現される、タッチI/Oデバイス3001は、GUIを表示することができる。あるいは、GUIは、タッチI/Oデバイス3001から分離されているディスプレイ上に表示することができる。GUIは、インターフェース内の特定の場所に表示されるグラフィック要素を含むものとしてよい。グラフィック要素は、限定はしないが、仮想スクロールホイール、仮想キーボード、仮想ノブ、仮想ボタン、仮想UI、および同様のものを含むさまざまな表示される仮想入力デバイスを含む。ユーザは、グラフィカルユーザインターフェース(GUI)のグラフィック要素に関連付けられうるタッチI/Oデバイス3001上の1つまたは複数の特定の場所でジェスチャを実行することができる。他の実施形態では、ユーザは、GUIのグラフィック要素の場所と無関係な1つまたは複数の場所でジェスチャを実行することができる。タッチI/Oデバイス3001上で実行されるジェスチャは、カーソル、アイコン、メディアファイル、リスト、テキスト、画像の全部または一部、またはGUI内の同様のものなどの、グラフィック要素を直接的にまたは間接的に操作し、制御し、修正し、移動し、作動させ、開始し、または一般的に影響を及ぼすことができる。例えば、タッチスクリーンの場合、ユーザは、タッチスクリーン上のグラフィック要素の上でジェスチャを実行することによってグラフィック要素を直接的にインタラクティブに操作することができる。
【0092】
あるいは、タッチパッドは一般的に間接的なインタラクティブ操作を提供する。ジェスチャは、非表示型のGUI要素にも影響を及ぼすか(例えば、ユーザインターフェースを表示させる)、またはコンピューティングシステム3003内の他のアクションに影響を及ぼしうる(例えば、GUI、アプリケーション、またはオペレーティングシステムの状態もしくはモードに影響を及ぼす)。ジェスチャは、表示されているカーソルと連携してタッチI/Oデバイス3001上で実行されることもあれば、実行されないこともある。
例えば、ジェスチャがタッチパッド上で実行される場合、カーソル(またはポインタ)がディスプレイ画面またはタッチスクリーン上に表示され、カーソルは、タッチパッド上のタッチ入力を介して制御され、これにより、ディスプレイ画面上のグラフィックオブジェクトをインタラクティブに操作することができる。ジェスチャがタッチスクリーン上で直接的に実行される他の実施形態では、ユーザは、カーソルもしくはポインタがタッチスクリーン上に表示されてもされなくても、タッチスクリーン上でオブジェクトを直接的にインタラクティブに操作することができる。
【0093】
タッチI/Oデバイス3001上のタッチまたはニアタッチに応答して、またはそれに基づき通信チャネル3002を介してユーザにフィードバックを送ることができる。フィードバックは、光学的に、機械的に、電気的に、嗅覚により、聴覚的に、または同様の方法もしくはこれらの組み合わせにより、変化する、または変化しない方法で送信されうる。
【0094】
次に、限定はしないが、通信デバイス(例えば、携帯電話、スマートフォン)、マルチメディアデバイス(例えば、MP3プレーヤ、TV、ラジオ)、ポータブルもしくはハンドヘルドコンピュータ(例えば、タブレット、ノートブック、ラップトップ)、デスクトップコンピュータ、一体型デスクトップ、周辺機器デバイス、またはこれらの種類のデバイスのうちの2つまたはそれ以上の組み合わせを含む、システムアーキテクチャ3100を組み込むことに対応できる他の任意のシステムもしくはデバイス内に実現されうるシステムアーキテクチャの実施形態に注意を向ける。図31は、一般的に、1つまたは複数のコンピュータ可読媒体3101、処理システム3104、入出力(I/O)サブシステム3106、無線周波数(RF)回路3108、および音声回路3110を備えるシステム3100の本発明の一実施形態のブロック図である。これらのコンポーネントは、1つまたは複数の通信バスもしくは信号線3103によって結合されうる。
【0095】
図31に示されているアーキテクチャは、システム3100の1つの例示的なアーキテクチャにすぎず、システム3100は、図示されているものよりも多い、または少ないコンポーネント、または異なる構成のコンポーネントを有することも可能であることは理解されるであろう。図31に示されているさまざまなコンポーネントは、1つまたは複数の信号処理および/または特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実装することができる。
【0096】
RF回路3108は、1つまたは複数の他のデバイスへワイヤレスリンクもしくはネットワークを介して情報を送受信するために使用され、この機能を実行するためによく知られている回路を含んでいる。RF回路3108および音声回路3110は、周辺インターフェース3116を介して処理システム3104に結合される。インターフェース3116は、周辺機器と処理システム3104との間の通信を確立し維持するためのさまざまな知られているコンポーネントを備える。音声回路3110は、音声スピーカー3150およびマイクロホン3152に結合され、ユーザが他のユーザとリアルタイムで通信できるようにインターフェース3116から受信された音声信号を処理するための知られている回路を備える。いくつかの実施形態では、音声回路3110は、ヘッドホンジャック(図示せず)を備える。
【0097】
周辺インターフェース3116は、システムの入力および出力周辺機器をプロセッサ3118およびコンピュータ可読媒体3101に結合する。1つまたは複数の処理ユニット3118は、コントローラ3120を介して1つまたは複数のコンピュータ可読媒体3101と通信する。コンピュータ可読媒体3101は、1つまたは複数の処理ユニット3118が使用するコードおよび/またはデータを格納することができるデバイスまたは媒体(例えば、記憶装置デバイス、記憶媒体)とすることができる。媒体3101は、限定はしないが、キャッシュ、メインメモリ、および二次メモリを含む、メモリ階層を備えることができる。メモリ階層は、RAM(例えば、SRAM、DRAM、DDRAM)、ROM、FLASH、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、およびDVD(デジタルビデオディスク)などの磁気および/または光記憶デバイスの任意の組み合わせを使用して実装することができる。媒体3101は、コンピュータ命令またはデータを示す情報搬送信号を伝えるための伝送媒体も備えることができる(信号が変調される搬送波がある場合、またはない場合)。例えば、伝送媒体としては、限定はしないが、インターネット(ワールドワイドウェブとも称する)、イントラネット、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、ストレージエリアネットワーク(SAN)、メトロポリタンエリアネットワーク(MAN)、および同様のネットワークが挙げられる。
【0098】
1つまたは複数の処理ユニット3118は、システム3100に対してさまざまな機能を実行するために媒体3101に格納されているさまざまなソフトウェアコンポーネントを実行する。いくつかの実施形態では、ソフトウェアコンポーネントは、オペレーティングシステム3122、通信モジュール(または命令セット)3124、タッチ処理モジュール(または命令セット)3126、グラフィックスモジュール(または命令セット)3128、1つまたは複数のアプリケーション(または命令セット)3130、およびゲームセンタモジュール[または命令セット]3138を含む。一実施形態では、ゲームセンタアプリケーションは、サブモジュール(例えば、プロファイル210、友達220、ゲーム230、通知240)を含むゲームセンタモジュール3138に関連付けられる。これらのモジュール、サブモジュール、および上記のアプリケーションのそれぞれは、説明されている1つまたは複数の機能を実行するための命令セットおよび本出願で説明されている方法(例えば、本明細書で説明されているコンピュータ実施方法および他の情報処理方法)に対応する。これらのモジュール(つまり、命令セット)は、個別のソフトウェアプログラム、プロシージャ、またはモジュールとしえ実装される必要はなく、したがってさまざまな実施形態においてこれらのモジュールのさまざまなサブセットを組み合わせるか、または他の何らかの方法で再配置構成することができる。
いくつかの実施形態では、媒体3101は、上で識別されたモジュールおよびデータ構造体のサブセットを格納することができる。さらに、媒体3101は、上で説明されていない追加のモジュールをおよびデータ構造体を格納することができる。
【0099】
オペレーティングシステム3122は、一般的なシステムタスク(例えば、メモリ管理、ストレージデバイス制御、電源管理など)を制御し管理するためのさまざまなプロシージャ、命令セット、ソフトウェアコンポーネントおよび/またはドライバを備え、さまざまなハードウェアとソフトウェアコンポーネントとの間の通信を円滑に進める。
通信モジュール3124は、1つまたは複数の外部ポート3136上で、またはRF回路3108を介して他のデバイスと通信することを円滑にし、RF回路3108および/または外部ポート3136から受信されたデータを処理するためのさまざまなソフトウェアコンポーネントを備える。
【0100】
グラフィックスモジュール3128は、ディスプレイ画面上にグラフィックオブジェクトをレンダリングし、アニメーション表示し、表示するためのさまざまな知られているソフトウェアコンポーネントを備える。タッチI/Oデバイス3112がタッチセンサー式ディスプレイ(例えば、タッチスクリーン)である実施形態では、グラフィックスモジュール3128は、タッチセンサー式ディスプレイ上にオブジェクトをレンダリングし、表示し、アニメーション表示するためのコンポーネントを備える。
【0101】
1つまたは複数のアプリケーション3130として、限定はしないが、ゲームセンタアプリケーション、ブラウザ、アドレス帳、連絡先リスト、電子メール、インスタントメッセージング、ワードプロセッシング、キーボードエミュレーション、ウィジェット、JAVA(登録商標)対応アプリケーション、暗号化、デジタル権利管理、音声認識、音声複製、位置決定機能(グローバルポジショニングシステム(GPS)が備えるような)、音楽プレーヤなどを含む、システム3100にインストールされているアプリケーションが挙げられる。
タッチ処理モジュール3126は、限定はしないが、タッチI/Oデバイスコントローラ3132を介してI/Oデバイス3112からタッチ入力を受け取り、受け取ったタッチ入力を処理することを含む、タッチI/Oデバイス3112に関連付けられているさまざまなタスクを実行するためのさまざまなソフトウェアコンポーネントを備える。
【0102】
システム3100は、図3から8に関連して本明細書で説明されているような方法/機能を実行するためのサブモジュール(例えば、プロファイル210、友達220、ゲーム230、通知240)を有するゲームセンタモジュール3138を備えることができる。
一実施形態では、ゲームセンタモジュール3138は、カスタマイズされたプレーヤ特有のオプションおよび統計量を提示するように少なくとも機能しうる。例えば、ゲームセンタモジュールは、ユーザに対して、ゲームセンタ内で友達のリストを構築し修正する機能を提供することができる。ユーザは、特定の友達を選択し、その友達とプレーするゲーム、共通のゲーム、および友達が所有しているが、ユーザは所有していないゲームを表示することができる。ユーザは、それらのゲームのそれぞれに対するランキングおよび達成を表示することができる。ユーザは、これらのゲームのうちの1つを選択して、リーダボードオプションを有するゲーム詳細を生成することができる。リーダボードオプションを選択した後、ゲームセンタモジュール3138は、ユーザおよび友達に対するリーダボードを生成する。ゲームセンタモジュール3138は、友達が所有しているが、ユーザは所有していないゲームをユーザが取得できるようにする機能も備える。
【0103】
別の実施形態では、システム(例えば、3003、3100)は、ゲームセンタモジュール3138を格納するコンピュータ可読媒体(例えば、3101)、ゲームセンタモジュール3138に関連付けられている命令セットを実行する1つまたは複数の処理ユニット(例えば、3118)、および入出力デバイス(例えば、3001、3112)を備える。1つまたは複数の処理ユニットは、ゲームセンタモジュールの友達オプションの選択を受け取り、入出力デバイスに提示されるデータを送信するように構成されうる。データは、友達のリストを示す。1つまたは複数の処理ユニットは、友達のリストから友達の選択を受け取り、入出力デバイスに提示されるデータを送信するようにも構成されうる。データは、ユーザと選択された友達との間で一緒にプレーしたゲームの第1のリストおよびユーザと選択された友達との間で共通である他のゲームの第2のリストを含む選択された友達の友達詳細を示す。ゲームの第1のリストは、それぞれのオプションが各ゲーム名および各ゲームに対するユーザのランキングと選択された友達のランキングとの比較を示すオプションのリストを含むものとしてよい。ゲームの第2のリストも、それぞれのオプションが各ゲーム名および各ゲームに対するユーザのランキングと選択された友達のランキングとの比較を示すオプションのリストを含むものとしてよい。
【0104】
別の実施形態では、ゲームセンタモジュールは、友達オプションまたはゲームオプションを介してアクセスされることに基づきカスタマイズされたゲーム詳細を提示する。ゲームセンタモジュール3138は、ユーザが友達オプションを選択した場合に選択された友達およびユーザに対する比較情報を有するゲーミング詳細ならびにユーザがゲームオプションを選択した場合にユーザ情報を有するゲーミング詳細とともに選択されたゲームのゲーミング詳細を提示する。比較情報は、選択されたゲームに対するユーザのランキングと友達のランキングとの比較を示すリーダボードオプションを備えるものとしてよい。比較情報は、選択されたゲームに対するユーザの一連の達成と友達の一連の達成との比較を示す達成オプションも備えるものとしてよい。ユーザ情報は、選択されたゲームに対するユーザのランキングを示すリーダボードオプションおよび選択されたゲームに対するユーザの一連の達成を示す達成オプションを備えることができる。
【0105】
別の実施形態では、ゲームセンタモジュール3138は、ユーザに対して、特定のゲームをプレーする、ユーザの特定の友達からの招待を与えることができる。ゲームセンタモジュール3138は、ユーザがその特定のゲームを所有しているかどうかを判定し、ユーザがその特定のゲームを所有していなければ特定のゲームにアクセスするゲームオプションを提示する。
【0106】
モジュール3138は、ゲームセンタアプリケーション3130をインタラクティブに操作して、本明細書で説明されている方法および機能を提供することもできる。ジュール3138は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせとして実現されうる。モジュール3138は、媒体3101内に常駐するように示されているけれども、モジュール3138の全部または一部をシステム3100内の他のコンポーネント内に実現することができるか、または全体をシステム3100内の別のコンポーネントとして実現することもできる。
【0107】
I/Oサブシステム3106は、さまざまな機能を制御するか、または実行するためにタッチI/Oデバイス3112および1つまたは複数のI/Oデバイス3114に結合される。タッチI/Oデバイス3112は、ユーザタッチ入力を処理するためのさまざまなコンポーネント(例えば、スキャンを実行するハードウェア)を備える、タッチI/Oデバイスコントローラ2032を介して処理システム3104と通信する。1つまたは複数の他の入力コントローラ2034は、他のI/Oデバイス3114から電気信号を受信し、他のI/Oデバイス3114に電気信号を送信する。他のI/Oデバイス3114としては、物理的ボタン、ダイヤル、スライドスイッチ、スティック、キーボード、タッチパッド、追加のディスプレイ画面、またはこれらの組み合わせが挙げられる。
【0108】
タッチスクリーンとして実現される場合、タッチI/Oデバイス3112は、GUIにユーザへの視覚的出力を表示する。この視覚的出力は、テキスト、グラフィックス、ビデオ、およびこれらの組み合わせを含むことができる。視覚的出力の一部または全部が、ユーザインターフェースオブジェクトに対応しうる。タッチI/Oデバイス3112は、ユーザからのタッチ入力を受け付けるタッチセンサー面を形成する。タッチI/Oデバイス3112およびタッチスクリーンコントローラ3132(媒体3101内の関連するモジュールおよび/または命令セットとともに)は、タッチI/Oデバイス3112上のタッチまたはニアタッチ(およびタッチの移動もしくはタッチを離す動作)を検出し、追跡し、検出されたタッチ入力を、1つまたは複数のユーザインターフェースオブジェクトなどの、グラフィックオブジェクトとのインタラクションに変換する。デバイス3112がタッチスクリーンとして実現されている場合、ユーザは、タッチスクリーン上に表示されているグラフィックオブジェクトを直接的にインタラクティブに操作することができる。あるいは、デバイス3112がタッチスクリーン以外のタッチデバイス(例えば、タッチパッド)として実現されている場合、ユーザは、I/Oデバイス3114として実現されている独立したディスプレイ画面上に表示されているグラフィックオブジェクトを間接的にインタラクティブに操作することができる。
【0109】
タッチI/Oデバイス3112は、参照により本明細書にそれぞれ組み込まれている、米国特許第6,323,846号(Westermanら)、米国特許第6,570,557号(Westermanら)、および/または米国特許第6,677,932号(Westerman)、および/または米国特許出願第2002/0015024A1号において説明されているマルチタッチセンサー面に類似するものであってよい。
タッチI/Oデバイス3112がタッチスクリーンである実施形態では、タッチスクリーンはLCD(液晶ディスプレイ)技術、LPD(発光高分子ディスプレイ)技術、OLED(有機LED)、またはOEL(有機エレクトロルミネッセンス)を使用することができるが、他の実施形態では他のディスプレイ技術を使用することができる。
フィードバックは、ユーザのタッチ入力、さらには表示されている内容の、および/またはコンピューティングシステムの1つまたは複数の状態に基づきタッチI/Oデバイス3112によって供給されうる。フィードバックは、光学的に(例えば、光信号もしくは表示画像)、機械的に(例えば、触覚フィードバック、タッチフィードバック、力フィードバック、または同様のフィードバック)、電気的に(例えば、電気的刺激)、嗅覚により、聴覚的に(例えば、ビープ音など)、または同様の方法もしくはこれらの組み合わせにより、変化する、または変化しない方法で送信されうる。
【0110】
システム3100は、さまざまなハードウェアコンポーネントに給電するための電源システム3144も備え、またパワーマネージメントシステム、1つまたは複数の電源、充電システム、電源故障検出回路、電力コンバータもしくはインバータ、電力ステータスインジケータ、および典型的にはポータブルデバイス内の電力の発生、管理、および分配に関連する他のコンポーネントを備えることができる。
いくつかの実施形態では、周辺インターフェース3116、1つまたは複数の処理ユニット3118、およびメモリコントローラ3120は、処理システム3104などの単一チップ上に実装することができる。いくつかの他の実施形態では、これらは個別のチップ上に実装することができる。
【0111】
本開示のいくつかの実施形態では、システム3003またはシステム3100またはシステム3003もしくは3100の組み合わせを使用して、本開示で説明されている方法の少なくともいくつかを実装することができる。
詳細な説明のいくつかの部分は、コンピュータメモリ内に格納されているデータに対するオペレーションを含むアルゴリズムに関して提示されている。アルゴリズムは、一般的に、望む結果が得られる自己矛盾のない一連のオペレーションである。これらのオペレーションは、典型的には、物理的量の物理的操作を必要とするか、または伴う。通常、必ずというわけではないけれども、これらの量は、格納、転送、組み合わせ、比較、および他の何らかの形の操作が可能な電気的または磁気的信号の形態をとる。主に共通使用の理由から、これらの信号をビット、値、要素、記号、文字、語、数、または同様のものとして参照することがときには都合がよいことが実証されている。
しかし、これらの語および類似の語はすべて、適切な物理的量に関連付けられ、これらの量に付けられる単に便利なラベルにすぎないことを念頭におくべきである。以下の説明から明らかなように特に断りのない限り、説明全体を通して、「処理」または「コンピューティング」または「計算」または「決定(判定)」または「表示」、または同様の語句などの語を使用する説明では、システムのレジスタおよびメモリ内で物理的(電子的)量として表されているデータを操作し、システムのメモリまたはレジスタまたは他のそのような情報記憶、伝送、または表示デバイス内で物理的量として同様に表されている他のデータに変換するデータ処理システム、または類似の電子デバイスの動作およびプロセスを指すものとしてよいことは理解される。
【0112】
本開示は、本明細書で説明されているオペレーションのうちの1つまたは複数を実行するための装置に関するものとしてよい。この装置は、必要な目的のために特別に制作されうるか、またはコンピュータに格納されているコンピュータプログラムによって選択的にアクティブ化されるかもしくは再構成される汎用コンピュータを備えることができる。このようなコンピュータプログラムは、限定はしないが、フロッピィーディスク、光ディスク、CD−ROM、および光磁気ディスクを含む任意の種類のディスク、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、磁気もしくは光カード、または電子的命令を格納するのに適した任意の種類の媒体などの機械(例えば、コンピュータ)可読記憶媒体内に格納され、それぞれバスに結合されうる。
機械可読記憶媒体は、機械(例えば、コンピュータ)によって読み込むことが可能な形式で情報を格納または送信するためのメカニズムを備える。例えば、機械は、機械可読媒体(例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、読出し専用メモリ、フラッシュメモリデバイス、相変化メモリ)を使用してコードおよびデータを格納し(内部的に、またネットワーク経由で他のデバイスと)通信する。
【0113】
1つまたは複数のアプリケーションプログラミングインターフェース(API)をいくつかの実施形態で使用することができる。APIは、プログラムコードコンポーネントまたはハードウェアコンポーネント(これ以降、「API実装コンポーネント」と称する)によって実装されるインターフェースがあって、これにより異なるプログラムコードコンポーネントまたはハードウェアコンポーネント(これ以降、「API呼び出しコンポーネント」と称する)がAPI実装コンポーネントによって提供される1つまたは複数のファンクション、メソッド、プロシージャ、データ構造体、クラス、および/または他のサービスにアクセスし使用することが可能になる。APIは、API呼び出しコンポーネントとAPI実装コンポーネントとの間で受け渡される1つまたは複数のパラメータを定義することができる。
【0114】
APIを使用することで、API呼び出しコンポーネントの開発者(サードパーティ開発者であってもよい)はAPI実装コンポーネントによって提供される指定された機能を利用することができる。1つのAPI呼び出しコンポーネントがありえるか、または複数のそのようなコンポーネントがありうる。APIは、アプリケーションからのサービスの要求をサポートするためにコンピュータシステムまたはプログラムライブラリが提供するソースコードインターフェースとすることができる。オペレーティングシステム(OS)は複数のAPIを有し、これにより、このOS上で実行されているアプリケーションがこれらのAPIのうちの1つまたは複数を呼び出すことが可能であり、サービス(プログラムライブラリなど)は複数のAPIを有し、これにより、サービスを使用するアプリケーションはこれらのAPIのうちの1つまたは複数を呼び出すことができる。APIは、インタプリタで実行されうるか、またはアプリケーションがビルドされたときにコンパイルされうるプログラミング言語に関して指定することができる。
【0115】
いくつかの実施形態では、API実装コンポーネントは、複数のAPIを備えることができ、それぞれのAPIはAPI実装コンポーネントによって実装される機能の異なる側面にアクセスする異なる側面に対して異なる視点を与える。例えば、API実装コンポーネントの1つのAPIは第1の機能セットを備え、サードパーティ開発者に公開することができ、API実装コンポーネントの別のAPIは隠され(公開されず)、第1の機能セットのサブセットを備え、また第1の機能セットにはないテストまたはデバッグ機能などの、別の機能セットを備えることができる。他の実施形態では、API実装コンポーネントは、それ自体が、基本APIを介して1つまたは複数の他のコンポーネントを呼び出すことができ、したがって、API呼び出しコンポーネントであり、かつAPI実装コンポーネントでもありうる。
【0116】
APIは、API実装コンポーネントの指定された機能にアクセスし、使用するときにAPI呼び出しコンポーネントが使用する言語およびパラメータを定義する。例えば、API呼び出しコンポーネントは、APIによって公開されている1つまたは複数のAPI呼び出しまたは起動(例えば、ファンクションまたはメソッド呼び出しによって実現される)を通じてAPI実装コンポーネントの指定された機能にアクセスし、API呼び出しまたはAPI起動を介してパラメータを使用してデータおよび制御情報を受け渡す。API実装コンポーネントは、API呼び出しコンポーネントからのAPI呼び出しに応答してAPIを通じて値を返すことができる。APIがAPI呼び出しの構文および結果を定義している場合(例えば、APIの呼び出し方およびAPIの実行内容)、APIは、API呼び出しがAPI呼び出しによって指定されたファンクションをどのように実行するかを明らかにしえない。さまざまなAPI呼び出しが、呼び出し側(API呼び出しコンポーネント)とAPI実装コンポーネントとの間の1つまたは複数のアプリケーションプログラミングインターフェースを介して転送される。API呼び出しを転送することは、ファンクションコールまたはメッセージを発行すること、開始すること、起動すること、呼び出すこと、受け取ること、返すこと、またはそれに応答することを含むものとしてよい、言い換えると、転送することは、API呼び出しコンポーネントまたはAPI実装コンポーネントのいずれかによるアクションを意味するものとしてよい。ファンクションコールまたはAPIの他の起動により、パラメータリストまたは他の構造体を通じて1つまたは複数のパラメータを送るか、または受け取ることができる。パラメータは、定数、キー、データ構造体、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、配列、リスト、またはファンクションもしくはメソッドへのポインタ、またはAPIを介して受け渡しされるデータもしくは他のアイテムを参照する別の手段とすることができる。
さらに、データ型またはクラスは、APIによって提供され、API実装コンポーネントによって実装されうる。そこで、API呼び出しコンポーネントは、そのAPIで提供される定義を使用することによってそのような型もしくはクラスの変数を宣言し、そのような型もしくはクラスへのポインタを使用し、そのような型もしくはクラスの定数値を使用するか、またはインスタンス化することができる。
【0117】
一般的に、APIは、API実装コンポーネントによって提供されるサービスもしくはデータにアクセスするために、またはAPI実装コンポーネントによって提供されるオペレーションまたは計算の実行を開始するために使用されうる。例えば、API実装コンポーネントおよびAPI呼び出しコンポーネントは、それぞれ、オペレーティングシステム、ライブラリ、デバイスドライバ、API、アプリケーションプログラム、または他のモジュールのうちのどれか1つであるものとしてよい(API実装コンポーネントおよびAPI呼び出しコンポーネントは、同じであってもよいし、互いに異なる種類のモジュールであってもよいことは理解されるであろう)。API実装コンポーネントは、いくつかの場合において、少なくとも一部は、ファームウェア、マイクロコード、または他のハードウェアロジックで実現されうる。いくつかの実施形態では、APIを使用することで、クライアントプログラム(例えば、ゲームセンタアプリケーション)はソフトウェア開発キット(SDK)ライブラリによって提供されるサービスを使用することができる。他の実施形態では、アプリケーションまたは他のクライアントプログラムは、アプリケーションフレームワークによって提供されるAPIを使用することができる。これらの実施形態では、アプリケーションもしくはクライアントプログラムは、SDKによって提供され、またAPIによって提供されるファンクションもしくはメソッドへの呼び出しを組み込むか、またはSDKにおいて定義され、APIによって提供されるデータ型もしくはオブジェクトを使用することができる。アプリケーションフレームワークは、これらの実施形態において、フレームワークによって定義されたさまざまなイベントに応答するプログラムに対するメインイベントループを備える。APIを使用することで、アプリケーションはアプリケーションフレームワークを使用してイベント、およびイベントへの応答を指定することができる。いくつかの実装では、API呼び出しは、入力能力および状態、出力能力および状態、処理能力、電力状態、記憶容量および状態、通信能力などの側面に関係するものを含む、ハードウェアデバイスの能力もしくは状態をアプリケーションに報告することができ、APIは、一部はファームウェア、マイクロコード、または一部はハードウェアコンポーネントで実行される他の低水準ロジックによって実装されうる。
【0118】
API呼び出しコンポーネントは、ローカルコンポーネント(つまり、API実装コンポーネントと同じデータ処理システム上の)またはネットワーク上でAPIを通じてAPI実装コンポーネントと通信するリモートコンポーネント(つまり、API実装コンポーネントと異なるデータ処理システム上の)とすることができる。API実装コンポーネントは、API呼び出しコンポーネントとして動作することもでき(つまり、異なるAPI実装コンポーネントによって公開されているAPIへのAPI呼び出しを行うことができる)、API呼び出しコンポーネントは、異なるAPI呼び出しコンポーネントに公開されているAPIを実装することによってAPI実装コンポーネントとして動作することもできることは理解されるであろう。
【0119】
APIを使用することで、異なるプログラミング言語で書かれている複数のAPI呼び出しコンポーネントは、API実装コンポーネントと通信することができるが(したがって、APIは、API実装コンポーネントとAPI呼び出しコンポーネントとの間で呼び出しと戻りを転送するための機能を備えることができる)、APIは、特定のプログラミング言語に関して実装されうる。API呼び出しコンポーネントは、一実施形態では、OS提供者からのAPIセットおよびプラグイン提供者からの別のAPIセットおよび別の提供者(例えば、ソフトウェアライブラリの提供者)からの別のAPIセットまたは別のAPIセットの作成者などの異なる提供者からのAPIを呼び出すことができる。
【0120】
図32は、本発明の一実施形態において使用されうる、例示的なAPIアーキテクチャを示すブロック図である。図32に示されているように、APIアーキテクチャ3200は、API3220を実装するAPI実装コンポーネント3210(例えば、オペレーティングシステム、ライブラリ、デバイスドライバ、API、アプリケーションプログラム、ソフトウェア、または他のモジュール)を備える。API 3220は、API呼び出しコンポーネント3230によって使用されうるAPI実装コンポーネントの1つまたは複数のファンクション、メソッド、クラス、オブジェクト、プロトコル、データ構造体、フォーマット、および/または他の機能を指定する。API 3220は、API実装コンポーネントのファンクションがAPI呼び出しコンポーネントからデータをどのように受け取るか、およびファンクションがAPI呼び出しコンポーネントに結果をどのように返すかを指定する少なくとも1つの呼び出し規約を指定することができる。API呼び出しコンポーネント3230(例えば、オペレーティングシステム、ライブラリ、デバイスドライバ、API、アプリケーションプログラム、ソフトウェア、または他のモジュール)は、API 3220を通じてAPI呼び出しを実行して、API 3220によって指定されているAPI実装コンポーネント3210の機能にアクセスし、使用する.API実装コンポーネント3210は、API呼び出しに応答してAPI呼び出しコンポーネント3230にAPI 3220を通じて値を返すことができる。
【0121】
API実装コンポーネント3210は、追加のファンクション、メソッド、クラス、データ構造体、および/またはAPI 3220を通じて指定されていない、API呼び出しコンポーネント3230から利用できない他の機能を備えることができることは理解されるであろう。API呼び出しコンポーネント3230は、API実装コンポーネント3210と同じシステム上にあるか、またはリモートに配置することができ、ネットワークを経由してAPI 3220を使用してAPI実装コンポーネント3210にアクセスする。図32は、API 3220をインタラクティブに操作する単一のAPI呼び出しコンポーネント3230を示しているが、API呼び出しコンポーネント3230と異なる言語(または同じ言語)で書かれている可能性のある他のAPI呼び出しコンポーネントもAPI 3220を使用することができることは理解されるであろう。
【0122】
API実装コンポーネント3210、API 3220、およびAPI呼び出しコンポーネント3230は、機械可読媒体(例えば、コンピュータ可読媒体)に格納することができ、これは機械(例えば、コンピュータもしくは他のデータ処理システム)によって読み取ることができる形式で情報を格納するためのメカニズムを備える。例えば、機械可読媒体として、磁気ディスク、光ディスク、ランダムアクセスメモリ、読出し専用メモリ、フラッシュメモリデバイスなどが挙げられる。
図33は、アプリケーションが複数のサービスAPIを使用してサービスAまたはBを、また複数のOS APIを使用してオペレーティングシステム(OS)を呼び出すことができる、本発明の一実施形態における、「ソフトウェアスタック」の図である。サービスAおよびBは、複数のOS APIを使用してOSへの呼び出しを行うことができる。
【0123】
サービス2は、2つのAPIを有しており、そのうちの一方(サービス2のAPI 1)はアプリケーション1から呼び出しを受け取り、アプリケーション1に値を返すものであり、もう一方(サービス2のAPI 2)はアプリケーション2から呼び出しを受け取り、アプリケーション2に値を返すものである。サービス1(例えば、ソフトウェアライブラリとすることができる)は、OS API 1に対して呼び出しを行い、OS API 1から返却値を受け取り、サービス2(例えば、ソフトウェアライブラリとすることができる)は、OS API 1とOS API 2の両方に対して呼び出しを行い、OS API 1とOS API 2の両方から返却値を受け取る。アプリケーション2は、OS API 2に呼び出しを行い、OS API 2から返却値を受け取る。
図34〜36は、本発明の一実施形態においてゲーム招待を受けた後にグラフィカルユーザインターフェースに提示される例示的なアラートまたは通知を示す図である。最初に、ユーザのシステムがユーザの特定のプレーヤ−(例えば、ユーザの友達リストからの友達、友達でない人)から特定のゲームをプレーする招待を受ける。処理ロジックは、ゲーム招待に関連付けられているゲームが現在のシステム上のユーザによって所有されているか、所有されているが現在のシステム上にないか、またはユーザによって所有されていないかを判定する。招待は、ゲームが現在のシステム上のユーザによって所有されている場合にアラート3400の形態をとりうる。アラート3400は、その招待を送信したプレーヤのユーザ名(例えば、ユーザ名40)、ゲーム名(例えば、ゲーム名2)、およびメッセージフィールド3410を備える。招待を生成したプレーヤは、メッセージフィールド3410内にメッセージを作成する。
【0124】
ユーザがユーザの現在のシステム上でゲーム(例えば、ゲーム名2)を所有している場合、アラート3400も、特定のゲームを受諾するための受諾オプション3420、ゲーム招待を辞退するための辞退オプション3420、およびゲーム招待を破棄するための任意選択の破棄オプションを備える。破棄オプションを選択することで、ユーザは、ゲームを辞退するか、またはアクセスするかを後で決定することができる。
招待は、ユーザがそのゲームを所有しているが、ユーザによって使用されている現在のシステム上にはない場合にアラート3500の形態をとりうる。アラート3500は、その招待を送信したプレーヤのユーザ名(例えば、ユーザ名40)、ゲーム名(例えば、ゲーム名2)、およびメッセージフィールド3510を備える。招待を生成したプレーヤは、メッセージフィールド3510内にメッセージを作成する。
【0125】
アラート3500は、フレーム招待を辞退するための辞退オプション3520、オンラインアプリケーションサービス(例えば、アプリケーションストア)からゲームをダウンロードするためのダウンロードオプション3530、およびゲーム招待を破棄するための任意選択の破棄オプションも備える。破棄オプションを選択することで、ユーザは、ゲームを辞退するか、またはダウンロードするかを後で決定することができる。
招待は、ユーザがそのゲームを所有していない場合にアラート3600の形態をとりうる。アラート3600は、その招待を送信したプレーヤ(例えば、友達)のユーザ名(例えば、ユーザ名40)、ゲーム名(例えば、ゲーム名2)、およびメッセージフィールド3610を備える。アラート3500は、フレーム招待を辞退するための辞退オプション3620、オンラインアプリケーションサービス(例えば、アプリケーションストア)からゲームの安全機能版または制限版にアクセスするためのアクセスオプション3530(例えば、アプリケーションストア、購入)、およびゲーム招待を破棄するための任意選択の破棄オプション3640も備える。破棄オプション3640を選択することで、ユーザは、ゲームを辞退するか、またはダウンロードするかを後で決定することができる。
【0126】
アクセスオプション3630のユーザ選択後に、処理ロジックは、アクセスオプション(例えば、購入、アプリケーションストア)のユーザ選択に応答して、ユーザをアプリケーションサービス(例えば、アプリケーションストア)に自動的に誘導し特定のゲームを購入させる。あるいは、処理ロジックは、アクセスオプションのユーザ選択に応答して、ユーザをアプリケーションサービスに自動的に誘導して、制限期間内にゲームの完全機能版、または機能が制限されたデモコピーに無料でアクセスできるようにすることができる。一実施形態では、ゲーム招待は、ゲームに対するグラフィックアイコン、ゲーム名、ゲームに対する評価、ゲームにアクセスする能力、およびゲームを購入する際の価格のうちの少なくとも1つを含む。
図37〜42は、本発明の一実施形態におけるより大きなディスプレイを備えるシステムに合わせて設計された例示的なユーザインターフェースを示す図である。例えば、これらのシステムは、携帯電話デバイスのディスプレイに比べて大きなディスプレイを有するシステムもしくはデバイスを備えることができる。図37は、一実施形態による友達の検索可能なリストおよび追加情報とともにユーザインターフェース3700を例示している。ユーザインターフェース3700は、図10および11Bに例示されているユーザインターフェースと似た内容を備える。ユーザインターフェース3700は、検索オプション3702および友達のリスト3710を含む。オプション3704のユーザ選択により、ユーザの連絡先および関連する連絡先情報(例えば、電話番号、電子メールアドレス、URL、住所、追加フィールドなど)のリストが表示される。
【0127】
ユーザインターフェース3700は、ユーザの名前(例えば、Mel)、友人の数、プレーしたゲームの数、および達成の回数を含む、情報3720も含む。情報3720は、われわれが一緒にプレーしたゲーム3730(例えば、Melと選択された友達とが一緒にプレーしたゲーム)、共通の他のゲーム3740、およびMel 3750によって所有されていないゲームも含む。
図38は、一実施形態による特定のゲームに対する達成情報を有するユーザインターフェース3800を例示している。ユーザインターフェース3800は、ゲーム名、プレーオプション3802、友達に知らせるオプション3804、ゲームに対するランキング3806、ゲームに対する達成(例えば、18回の達成)を含む。
図39は、一実施形態による特定のゲームに対するリーダボード情報を有するユーザインターフェース3900を例示している。ユーザインターフェース3900は、異なるリーダボード(例えば、リーダボード1、リーダボード2など)のうちから選択する選択可能なリーダボードオプション3902を備える。例えば、ゲーム名15は、それぞれに関係しない4つの異なるトラックを備えることができる。異なるリーダボードが、それぞれのトラックについて生成されうる。マージされたリーダボードは、すべてのトラックから集計されたランキングを含みうる。ユーザインターフェース3900は、今日オプション3950、今週オプション3911、および終日オプション3912を備える。リーダのリストは、これらのオプションに基づきフィルタリングされ、ランク付けされる。
【0128】
友達3994は、ゲーム名11に対するMelの友達のランク付けされたリストを含む。全員3996は、ゲーム名15に対するすべてのユーザのランク付けされたリストを含む。
いくつかの実施形態では、特定の数の最上位プレーヤがリストされ(例えば、10、20)、ユーザ(例えば、Mel)がこのリストに載っていない場合、ユーザのランキングもリストされる(例えば、1900位)。もっと見るオプション(例えば、3995、3997)を選択して、さらに別のプレーヤランキングを表示することができる。
【0129】
図40は、一実施形態による特定のユーザについてプレーしたゲームを表示するユーザインターフェース4000を例示している。ユーザインターフェース4000は、ユーザ名(例えば、Mel)、ユーザに対するプレーしたゲームの数、およびユーザに対するプレーしたゲーム(例えば、24ゲームをプレーした)を含む。それぞれのゲームに対するゲーミング情報は、ゲームアイコン、ゲームに対する完遂された達成の回数、およびゲーム名を含む。
図41は、一実施形態による特定のユーザに対するゲームセンタアプリケーションを起動した後の歓迎画面を表示するユーザインターフェース4100を例示している。ユーザインターフェース4100は、ユーザ名(例えば、Mel)、ユーザによってプレーされたゲームの数に対するアイコン、友達の数、ユーザに対するプレーしたゲームの数(例えば、24ゲームをプレーした)、および達成回数を含む。
【0130】
図42は、一実施形態による通知(例えば、友達要求)のリストおよび追加情報とともにユーザインターフェース4200を例示している。ユーザインターフェース4200は、図21および22に例示されているユーザインターフェースと似た内容を備える。ユーザインターフェース4200は、ユーザが受信または送信した通知のリスト4210を含む。オプション4260の選択では、処理ロジックは受信した通知(例えば、友達要求、更新)のリストを生成するが、オプション4262の選択では、処理ロジックは送信した通知(友達要求、更新)のリストを生成する。オプション4270のユーザ選択により、ユーザの連絡先および関連する連絡先情報(例えば、電話番号、電子メールアドレス、URL、住所、追加フィールドなど)のリストが表示される。
【0131】
一実施形態では、着信した友達要求は、電子メールアドレスに関連付けられうる。ユーザの連絡先に関連付けられているユーザのアドレス帳もしくは連絡先情報を検索して、電子メールアドレスとマッチするものを見つけることができる。マッチがあった場合、着信した友達要求により、着信した友達要求をユーザに送信したプレーヤに対する実名またはニックネームが表示される。
【0132】
一実施形態では、オプション4260が選択されると、ユーザ名22も選択される。情報4230は、表現(例えば、アバター)およびこのプレーヤからのショートメッセージなどの友達要求を送信したプレーヤに関する詳細を含む。ユーザインターフェース4200も、要求を受諾するための受諾オプション4250、要求を辞退するための辞退オプション4252、およびユーザ名22に関する問題を報告するための問題を報告オプション4260を備える。追加のオプションも、図22の説明に関連して例示され説明されているように備えることができる。
【0133】
代替的一実施形態では、図37〜42に例示されているユーザインターフェースも、携帯電話デバイスにおいて使用することができる。
図43は、本発明の一実施形態においてテクスチャを有する所望のオブジェクト4300を示す図である。所望のオブジェクト4300は、終了コンポーネント4302および4304ならびにテクスチャを有するコンポーネント4306を備える。このオブジェクト4300は、より大きな所望のオブジェクトを形成するためにより小さなコンポーネントを反復する反復メソッドを使用して作成するのが困難な場合がある。
図44は、本発明の一実施形態におけるテンプレートオブジェクト4400を示す図である。テンプレートオブジェクトは、1つの次元(例えば、幅寸法)における所望のオブジェクトの拡大版とすることができる。オブジェクト4400の一部分を選択して(または他の部分をブロックするか、またはマスクして)所望のオブジェクト4300を形成することができる。例えば、コンポーネント4402、4406、および4404を選択して、所望のオブジェクト4300を形成することができる。コンポーネント4408は、オブジェクト4400からブロックされるか、または削除される。このようにして、テクスチャを持つさまざまな種類のオブジェクトを作成することができる。
図45は、本発明の一実施形態におけるさまざまな入力フィールド4510〜4514を持つ例示的なフォーム4500を示す図である。ゲーム開発者は、フォーム4500または他の種類のフォームを容易に使用し、テクスチャレイヤを適用してカスタマイズされたユーザインターフェースを作成することができる。
図46は、本発明の一実施形態におけるユーザインターフェースのオブジェクトにテクスチャを追加するための例示的なコンピュータ実施方法を示す図である。コンピュータ実施方法4600は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシンまたはシステム上で実行されるようなもの)、または両方の組み合わせを備えることができる処理ロジックによって実行される。一実施形態では、コンピュータ実施方法4600は、クライアントシステム上に配置されているゲームセンタモジュール200によって実行される。ブロック4601で、処理ロジックは、1つまたは複数の入力フィールドを持つフォームをユーザインターフェースに送る。ブロック4602で、処理ロジックは、入力フィールドの選択を受け取る。ブロック4604で、処理ロジックは、入力フィールドに関連付けられている所望のオブジェクトに追加するテクスチャレイヤの選択を受け取る。ブロック4606で、処理ロジックは、テクスチャレイヤを持つテンプレートオブジェクト(例えば、オブジェクト4400)を生成する。
テンプレートオブジェクトは、1つの次元(例えば、幅寸法)における所望のオブジェクトの拡大版とすることができる。ブロック4608で、処理ロジックは、特に幅広のテンプレートオブジェクトの一部分(例えば、4408)をブロックするか、またはマスクする。ブロック4610で、処理ロジックは、テクスチャレイヤを有する所望のオブジェクト(例えば、オブジェクト4300)を形成するためにブロックされていない部分をマージする。ブロック4612で、処理ロジックは、1つまたは複数のテンプレートオブジェクトを繰り返し使用してさまざまな種類の所望のオブジェクトを形成し、システム上で実行することができる1つまたは複数のソフトウェアアプリケーション(例えば、ゲームセンタとともに使用するためのソフトウェアゲーミングアプリケーション)に対するカスタマイズされたユーザインターフェースを作成する。
【0134】
さまざまな種類のテクスチャレイヤが、所望のオブジェクト4300もしくは他の種類のオブジェクトを形成するために使用されうる。テクスチャレイヤは、カスタマイズされたオブジェクトおよびユーザインターフェースを作成するために所望のオブジェクトの複数の部分にわたって色、強度、パターンなどを変化させることができる。
【0135】
本明細書の前述内容において、本開示は特定の実施例を参照しつつ説明されている。付属の請求項で定められているように、本開示のより広い精神と範囲から逸脱することなく本発明にさまざまな修正を加えられることは明白であろう。したがって、本明細書および図面は、制限ではなく、例示することを目的としているものとみなすべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図9D
図10
図11A
図11B
図12
図13
図14A
図14B
図15A
図15B
図16A
図16B
図17
図18A
図18B
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46