(57)【要約】本発明は、概してオンラインポータルに向けられ、より具体的にはオンラインロビーを提供するシステムおよび方法に向けられる。一実施形態において、複数のエンドユーザを有するオンラインポータルは、ロビー内に位置する複数のエンドユーザおよび複数のグラフィカルアバターによってアクセスが可能な三次元グラフィカルロビーを生成し表示するように構成されるサービスフレームワークを含む、クライアントソフトウェアによってアクセスが可能であり、それぞれのアバターは、複数のエンドユーザのうち少なくとも１人によって制御され、エンドユーザは、他のエンドユーザによって制御されるグラフィカルアバターを閲覧可能である。さらに、複数のエンドユーザによる選択のために利用可能なサービスフレームワークに対して１つ以上のサービスを提供するように構成されるサービスレンダリングユニットモジュールも含まれる。
2009510561.tif 000002
【特許請求の範囲】
【請求項１】
複数のエンドユーザを有し、エンドユーザのワークステーションにインストールされるクライアントソフトウェアによるアクセスが可能なオンラインポータルであって、該クライアントソフトウェアは、
ロビー内に位置する複数のエンドユーザおよび複数のグラフィカルアバターによってアクセスが可能な三次元グラフィカルロビーを生成し表示するように構成されるサービスフレームワークであって、それぞれのアバターは、該複数のエンドユーザのうちの少なくとも１人によって制御され、エンドユーザは、他のエンドユーザによって制御されるグラフィカルアバターを閲覧することができ、さらに該エンドユーザは、該他のエンドユーザによって制御される１つ以上の該グラフィカルアバターを相互にフィルタすることができるサービスフレームワークと、
該複数のエンドユーザによる選択のために利用可能な複数の独立サービスを該サービスフレームワークに提供するように構成されるサービスレンダリングユニットモジュールと、
ロビーおよびアバターデータを該サービスフレームワークに提供するように構成され、該複数のエンドユーザによる選択のために利用可能な該１つ以上の独立サービスを表示するように構成されるロビーモジュールと、
を含む、オンラインポータル。
【請求項２】
前記１つ以上のサービスは、コンピュータゲームである、請求項１に記載のクライアントソフトウェア。
【請求項３】
前記コンピュータゲームは、大規模マルチプレイヤーオンラインゲームを含む、請求項２に記載のクライアントソフトウェア。
【請求項４】
前記１つ以上のサービスレンダリングユニットを管理し、該１つ以上のサービスレンダリングユニットからのデータを該サービスレンダリングユニットモジュールに提供するように構成される、サービスレンダリングユニットマネージャをさらに含む、請求項１に記載のクライアントソフトウェア。
【請求項５】
前記エンドユーザのワークステーションは、プラットフォームを含み、前記１つ以上のサービスレンダリングユニットは、該エンドユーザのワークステーションの前記プラットフォームと直接インターフェースするサービスレンダリングユニットを含む、請求項１に記載のクライアントソフトウェア。
【請求項６】
前記１つ以上のサービスレンダリングユニットは、前記サービスレンダリングユニットの動作に一連の規則を確立する１つ以上のスクリプトを実行するように構成されるサービスレンダリングユニットを含む、請求項１に記載のクライアントソフトウェア。
【請求項７】
ロビーおよびアバターデータを前記ロビーモジュールに提供するように構成されるロビーマネージャをさらに含む、請求項１に記載のクライアントソフトウェア。
【請求項８】
チャットモジュールをさらに含む、請求項１に記載のクライアントソフトウェア。
【請求項９】
ユーザが１つ以上のキーワードによって他のアバターを検索することを可能にするキーワード検索モジュールをさらに含む、請求項１に記載のクライアントソフトウェア。
【請求項１０】
オンラインポータルを複数のエンドユーザに提供する方法であって、
該複数のエンドユーザによってアクセスが可能な複数の三次元グラフィカルロビーを生成するステップと、
該グラフィカルロビー内で制御するために、該複数のエンドユーザのそれぞれに対するアバターを生成するステップであって、該複数のエンドユーザは、それぞれ互いのアバターを閲覧可能である、ステップと、
それぞれのエンドユーザが、１人以上の該複数のエンドユーザの該アバターを相互にフィルタすることを可能にするステップと、
該グラフィカルロビー内において、該複数のエンドユーザによってアクセスが可能な複数の独立サービスを提供するステップと
を含む、方法。
【請求項１１】
前記アバターをフィルタすることを望むエンドユーザのビューからアバターをフィルタするステップをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記フィルタされたアバターのビューから、前記エンドユーザのアバターをフィルタするステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
それぞれのアバターがプロフィールを含み、前記方法は、ユーザが前記アバターのプロフィール上でキーワード検索を行うことを可能にするステップをさらに含む、請求項１０に記載の方法。
【請求項１４】
前記キーワード検索は、該キーワード検索に関連するプロフィールの一覧を生成し、前記方法は、該一覧から前記ユーザをフィルタしたアバターに関連する１つ以上のプロフィールを削除するステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記複数の独立サービスは、カードゲーム、ファーストパーソンシューティングゲームまたはオンライン小売店のうちの少なくとも１つを含む、請求項１０に記載の方法。
【請求項１６】
前記独立サービスのうちの少なくとも１つは、前記複数のグラフィカルロビーの１つのみにおいて利用可能である、請求項１０に記載の方法。
【請求項１７】
エンドユーザが１人以上の他のエンドユーザとのチャットセッションに参加することを可能にする、それぞれのエンドユーザ用のチャットモジュールを提供するステップをさらに含む、請求項１０に記載の方法。
【請求項１８】
広域エリアネットワーク上にわたって複数のエンドユーザに対しアクセス可能なオンラインポータルであって、
複数の三次元グラフィカルロビーを生成し、該グラフィカルロビー内で制御するために該複数のエンドユーザのそれぞれに対しアバターを生成し、かつ該グラフィカルロビー内に該複数のエンドユーザによってアクセスが可能な複数の独立サービスを提供するように構成されるサーバと、
該広域エリアネットワークにわたって該サーバに通信によって接続され、該アバター、該複数の三次元グラフィカルロビーおよび該複数の独立サービスにアクセスするように構成される、それぞれのエンドユーザと関連するクライアントソフトウェアプログラムと
を含む、オンラインポータル。
【請求項１９】
前記サーバは、前記アバターをフィルタすることを望むエンドユーザのビューからアバターをフィルタするように構成されるフィルタモジュールをさらに含む、請求項１８に記載のオンラインポータル。
【請求項２０】
前記フィルタモジュールは、前記フィルタされたアバターのビューから前記エンドユーザのアバターをフィルタするようにさらに構成される、請求項１９に記載のオンラインポータル。
【請求項２１】
それぞれのアバターは、プロフィールを含み、前記サーバは、ユーザが該アバターのプロフィール上でキーワード検索を行うことを可能にするように構成される検索エンジンをさらに含む、請求項１８に記載のオンラインポータル。
【請求項２２】
前記検索エンジンは、前記キーワード検索に関連するプロフィールの一覧を生成するように構成され、前記サーバは、前記一覧から前記ユーザをフィルタしたアバターと関連する１つ以上のプロフィールを削除するようにさらに構成される、請求項２１に記載のオンラインポータル。
【請求項２３】
前記複数の独立サービスは、カードゲーム、ファーストパーソンシューティングゲームまたはオンライン小売店のうちの少なくとも１つを含む、請求項１８に記載のオンラインポータル。
【請求項２４】
前記独立サービスのうちの少なくとも１つは、前記複数のグラフィカルロビーの１つのみにおいて利用可能である、請求項１８に記載のオンラインポータル。
【請求項２５】
エンドユーザが１人以上の他のエンドユーザとのチャットセッションに参加することを可能にする、それぞれのエンドユーザ用のチャットモジュールをさらに含む、請求項１８に記載のオンラインポータル。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術分野は、オンラインポータルに関し、より具体的にはオンラインロビーを提供するシステムおよび方法に関する。
【背景技術】
【０００２】
オンラインコミュニティは、娯楽産業に大きく寄与するものとなり、増大するブロードバンドの能力がその成長を後押ししている。こうしたオンラインコミュニティの多くは、趣味やゲームなどの特定の関心亊によって組織されている。オンラインコミュニティの大きなものの１つに、大規模マルチプレイヤーオンラインゲーム（Ｍａｓｓｉｖｅ  Ｍｕｌｔｉｐｌａｙｅｒ  Ｏｎｌｉｎｅ  Ｇａｍｅ；ＭＭＯＧ）があり、これは数百人、数千人のプレーヤーが、通常はインターネットを介して、各自の接続するゲームワールドにおいて、同時に相互通信することを可能にするコンピュータゲームの一種である。通常、こうした種類のゲームは、オンライン上のマルチプレイヤー限定のパーシステントワールド（ｐｅｒｓｉｓｔｅｎｔ  ｗｏｒｌｄ）で行われる。これは、他のプレーヤーがいるいないにかかわらずゲームが継続することを意味する。
【０００３】
ＭＭＯＧは、通常、三次元仮想現実を提供し、プレーヤーはこの仮想現実において、アバターを通して交流する。このアバターは、概して、あるアバターが他のアバターに対して持つことのできる「強さ」などの有利性の種類を示す、関連特性を有する。例えば、第１のアバターが第２のアバターよりも大きい強さを有する場合、この第１のアバターは、ゲームから第２のアバターを妨害したり、排除したりすることができる。アバターの有利性は、タスクの完了や、一般的なＭＭＯＧへの継続参加によって獲得され得る。それゆえ、ＭＭＯＧにおいて成功するためには、頻繁な利用が必要となり、それゆえ一時的なオンラインプレーヤーに参加意欲を失わせる。さらに、ＭＭＯＧにおいては、すべてのプレーヤーが参加すべき汎用ゲームが１つしか存在しない。
【０００４】
別の種類のオンラインコミュニティはチャットルームであり、これは、このチャットルームにアクセスする相手の画面上にほぼ即時に表示されるメッセージをタイプすることによって、人々が互いに「会話」することのできる、ウェブサイトまたはオンラインサービス上の場所またはページである。これらの種類のコミュニティは、オンライン参加者が相互に通信し、出会うことを可能にする。しかし、これらは通常テキストベースであり、視覚的に魅力的なものではない。
【０００５】
いくつかの場合において、代替的なオンラインシステムが望まれるであろう。
【発明の開示】
【課題を解決するための手段】
【０００６】
本発明は、概してオンラインポータルに向けられ、より具体的にはオンラインロビーを提供するシステムおよび方法に向けられる。一実施形態において、複数のエンドユーザを有するオンラインポータルは、エンドユーザのワークステーションにインストールされるクライアントソフトウェアによってアクセスが可能である。
【０００７】
このクライアントソフトウェアは、ロビー内に位置する複数のエンドユーザおよび複数のグラフィカルアバターによってアクセスが可能な三次元グラフィカルロビーを生成し表示するように構成されるサービスフレームワークを含み、それぞれのアバターは、複数のエンドユーザのうち少なくとも１人によって制御され、エンドユーザは、他のエンドユーザによって制御されるグラフィカルアバターを閲覧することができる。このオンラインポータルは、複数のエンドユーザによる選択のために利用可能なサービスフレームワークに対して１つ以上のサービスを提供するように構成されるサービスレンダリングユニットモジュールと、ロビーおよびアバターデータをそのサービスフレームワークに提供するように構成され、複数のエンドユーザによる選択のために利用可能なこの１つ以上のサービスを表示するように構成されるロビーモジュールとをさらに含む。
【０００８】
本発明の他のシステム、方法、特徴および利点は、下記の図および詳細な説明の検討に際して当業者にとって明白であり、また明白となるであろう。すべてのかかる追加のシステム、方法、特徴および利点がこの説明に含まれ、本発明の範囲に含まれ、添付の請求項によって保護されることが意図される。
【発明を実施するための最良の形態】
【０００９】
本発明の、上記の、ならびに他の利点および目的がいかにして得られるかをよりよく理解するために、上記を簡単に説明した本発明のより具体的な説明が、その具体的な実施形態を参照して示され、これらは添付の図面に図示される。この図における要素は、必ずしも原寸に比例するとは限らず、本発明の原理を図示することに重要性が置かれることに留意されたい。また、図において、類似の参照番号は異なる図においても対応する部分を指す。しかし、類似の部分は、常に類似の参照番号を有するとは限らない。また、すべての図解は概念を伝えることを意図しており、相対的な大きさ、形状および他の詳細な特質は、文字通りまたは正確にというよりは、概念的に図示され得る。
【００１０】
一実施形態において、オンラインポータルは、複数のオンラインユーザに提供される。図１ａを参照すると、オンラインポータルは三次元ロビー１０を含み、オンラインユーザはロビー１０内を移動するグラフィカルアバター２０を提供される。また、エンドユーザは、ロビー１０にアクセスする他のユーザによって制御されるアバター３０を閲覧し、これと交流することができる。しかし、それぞれのアバターは関連プロフィールを有しており、特定のユーザが１つ以上の特定のプロフィールを有する１つ以上のアバター３０との閲覧または交流を望まない場合、このオンラインポータルは、図１ｂに示されるように、この１つ以上のアバター３０をこの特定のユーザのビューから除去することができる。例えば、アバター３０のプロフィールにおける１つの要素はフィードバックスコアであり得、特定のエンドユーザが閲覧したくない場合、または特定のフィードバックスコアよりも低いスコアを有するアバター３０に閲覧されたくない場合、かかるアバター３０はビューからフィルタされ得、ユーザのアバター２０はかかるアバター３０のビューからフィルタされ得る。プロフィールは、例として性別、参加期間、フィードバックスコア、コメント、説明などの任意の数の要素を含み得る。
【００１１】
ロビー１０は、架空の環境および／または実生活の環境を描写するように構成され得る。例えば、図１ａに示されるロビー１０は、ロンドンの通りを示す。他のロビー１０は、種々の都市を示し得、この種々の都市の地図に非常によく似たレイアウトを含み得る。オンラインポータルは、多数のこれらのロビー１０を含み、ユーザがこれらのロビー１０の任意の数にアクセスすることを可能にし得る。
【００１２】
他のアバター２０を閲覧しこれと交流することに加え、ロビー１０はまた、ユーザにゲームなどの数多くのサービスを提供する。かかるサービスは、ロビー１０内において１つ以上のグラフィカル画像として示され得、ユーザがこの１つ以上の画像に近づき、このユーザのアバター２０を介してサービスに参加することを可能にする。かかるサービスは独立の、すなわち単一のゲームの一部分ではあり得ず、カードゲーム、スポーツゲーム、ファーストパーソンシューティングゲーム（ｆｉｒｓｔ  ｐｅｒｓｏｎ  ｓｈｏｏｔｉｎｇ  ｇａｍｅ）、オンラインショッピングおよび旅行予約サービスを含み得る。
【００１３】
図２を参照すると、かかるロビー１０およびサービスを提供するシステム１００が示される。システム１００は、サーバからユーザのワークステーション（図示せず）にダウンロードが可能なクライアントソフトウェアプログラム７０を含む。クライアントソフトウェアプログラム７０は、ロビー１０と選択されたサービスとに対してユーザインターフェース１０５を生成するサービスフレームワーク１１０を含む。サービスフレームワーク１１０は、少なくともサービスレンダリングユニット（「ＳＲＵ」）モジュール１２０およびロビーモジュール１３０の少なくとも２つのソフトウェアコンポーネントから提供されるデータに基づいてユーザインターフェース１０５を生成する。サービスフレームワーク１１０は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）フレームワークおよび／またはダイナミックウェブページなどの、当該分野において公知のグラフィカルユーザインターフェースフレームワークの形式であり得る。ロビーモジュール１３０は、サービスフレームワーク１１０にデータを提供し、三次元ロビー１０、ユーザのアバター２０および他のユーザによって制御される任意のフィルタされていないアバター３０を生成するソフトウェアコンポーネントである。ロビーモジュール１３０からのデータは、ロビーマネージャ１５０から提供される。ユーザがどのロビー１０にアクセスしているか、ユーザが制御しているアバター２０、およびロビー１０にアクセスしている他のアバター３０に関する情報は、遠隔的に位置し、インターネットなどのネットワーク６０によってアクセスが可能なサーバ１６０から、クライアント／サーバアプリケーションプログラムインターフェース（「ＡＰＩ」）１１５を介して読み出される。代替の実施形態において、ＡＰＩ１１５は、サーバ１６０上にあってもよい。ロビー１０およびアバター２０／３０情報１４５は、種々のコンポーネントからアクセスされることになるソフトウェアプログラム７０によって格納される。クライアントソフトウェアプログラム７０は、ユーザがそのポータルの他のユーザとのリアルタイムのオンラインチャットセッションに参加することを可能にするチャットモジュール１１１をさらに含む。チャットモジュール１１１は、好ましくはサービスフレームワーク１１０を介してユーザにチャットセッションを提示し、クライアント／サーバＡＰＩ１１５に連結し、サーバ１６０とリアルタイムのデータを送受信する。
【００１４】
ＳＲＵモジュール１２０は、ユーザによって選択されたサービスをサービスフレームワーク１１０に提供するソフトウェアコンポーネントである。ＳＲＵは、サービスを実行する仮想マシンであり、ＳＲＵからのデータは、ＳＲＵモジュール１２０からのアクセスのためにＳＲＵマネージャ１４０から提供される。いくつかの状況において、特定のサービスは、ユーザがアクセスしているロビー１０、およびユーザを表すアバター２０の種類に基づいたルックアンドフィールを有することが望ましい。かかる状況においては、ＳＲＵマネージャ１５０がロビー１０およびアバター２０／３０アバター情報１４５にアクセスして、ルックアンドフィールを決定し得る。例えば、このサービスがオンラインゴルフゲームである場合、本サービスは情報１４５にアクセスして、ユーザがカリフォルニアのペブルビーチを表すロビー１０にアクセスしていることを決定することができる。この場合、このオンラインゴルフゲームは、ペブルビーチリゾートのゴルフコースを表すコースを提供することになる。いくつかの状況において、特定のサービスは、特定のロビー１０においてのみ利用可能であり得る。例えば、マージャンゲームは中国の都市を表すロビー１０内においてのみ利用可能である。
【００１５】
図３を参照すると、ＳＲＵマネージャ１４０の実装が示されている。ＳＲＵマネージャは、ＳＲＵモジュール１２０によって１つ以上のＳＲＵ２１０／２２０／２３０／２４０にアクセスするために使用される、オープンサービスのインターフェースであるアプリケーションプログラムインターフェース（「ＡＰＩ」）２００を含み得る。ＳＲＵは、特定のサービスを実行する汎用プログラムであり、オープンサービスインターフェースＡＰＩ２００に準拠する。上述のように、ＳＲＵは、旅行予約システム、オンラインショッピングセンターなどのオンラインサービス、またはカードゲーム、スポーツゲームなどのゲーム、またはＭＭＯＧなどのファーストパーソンシューティングゲームであり得る。
【００１６】
さらに、ＳＲＵは柔軟な環境において開発され得、これは唯一の必要要件が、ＳＲＵがオープンサービスインターフェースＡＰＩ２００をサポートすることであることを意味する。例えば、ＳＲＵは、プラットフォーム依存ソフトウェア開発キット（「ＳＤＫ」）またはＡＰＩ５５（ＭｉｃｒｏｓｏｆｔのＳＤＫ、概してＷｉｎｄｏｗｓ（登録商標）などのＭｉｃｒｏｓｏｆｔのプラットフォームに依存する）を使用して開発され得る。かかるＳＲＵは、「ＳＲＵ」ダイレクト、または「ＳＲＵ−Ｄ」２１０と称され、これはプラットフォーム依存ＡＰＩ５５と直接インターフェースする。
【００１７】
あるいは、または加えて、当業者に理解されうるように、ＳＲＵはクライアントソフトウェアシステム７０に含まれるプラットフォームに依存しない仮想マシン５０を利用して開発され得る。この仮想マシン５０は、ロビー１０用の三次元エンジンと、ＳＲＵの開発に有用な多岐にわたる機能性を提供するプラットフォームアブストラクト層（「ＰＡＬ」）を含み得る。例えば、仮想マシンはＳＲＵ用のオンラインコミュニケーション能力またはグラフィカルオブジェクトを提供し得る。仮想マシン５０を利用するＳＲＵは、プラットフォームＡＰＩ５５と間接的にインターフェースする「ＳＲＵ−Ｉ」２２０と称され得る。
【００１８】
加えて、ＳＲＵは、あらかじめ決められたスクリプトを使用して開発され得るサブサービス向けのサービス構造であり得る。かかるＳＲＵは、「ＳＲＵ−Ｓ」２３０と称され得る。例えば、ＳＲＵ−Ｓは、一般的なカードゲームであることができ、ゲームのルールはあらかじめ決められたスクリプトを使用して構築され得る。図４を参照すると、ＳＲＵ−Ｓ２３０を実装するアプローチが示されている。ＳＲＵ−Ｓ２３０は、ＳＲＵ−Ｓ  ＳＤＫ３００から開発されたスクリプト３２０を実行するように構成される共通構造である。デベロッパは、スクリプトフレームワーク３１０内に送り込まれるスクリプトエディタ３３０とともに供給され、これによってスクリプト３２０を生成する。デバッガ３４０は、好ましくはスクリプトをデバッグするように含まれる。一例において、ＳＲＵ−Ｓはカードゲーム構造であり得、ポーカー、ブリッジ、ソリティアなどのカードゲームのルールは、スクリプト３２０として実装される。
【００１９】
実装され得る別の種類のＳＲＵは、ＳＲＵ−Ａ２４０であり、これはアバター２０用のエンジンを提供する。ＳＲＵ−Ｓ２３０とＳＲＵ−Ａ２４０は、いずれもＳＲＵ  ＡＰＩ２５０を介してロビーおよびアバター情報１４５にアクセスし、これも三次元エンジンおよびＰＡＬ５０にアクセスを提供する。
【００２０】
図５を参照すると、ロビーマネージャ１５０の実装が示されている。ロビーマネージャ１５０は、ロビー１０とアバター２０／３０にエンジンを提供するＳＲＵ−Ｌ４００を含む。ＳＲＵ−Ｌ４００は、ロビーＡＰＩ４１０を介してアバター情報１４５ならびに三次元エンジンおよびＰＡＬ５０へのアクセスを提供され得る。また、ロビーマネージャ１５０は、ユーザがあるロビー１０から別のものに変更したいときにディスプレイを提供するサブプログラムである、ハイパーワールドモジュール（ｈｙｐｅｒ−ｗｏｒｌｄ  ｍｏｄｕｌｅ）４２０を提供されることができる。例えば、ユーザがロンドンを表すロビー１０から、北京を表すロビー１０に変更したい場合、ハイパーワールドモジュール４２０は、トランザクション中に飛行機のアイコン、広告、および／または告知を表示することができる。当業者には理解されるように、ロビーマネージャ１５０およびその種々のサブコンポーネントは、ＭｉｃｒｏｓｏｆｔのＤｉｒｅｃｔＸなどの当該分野において公知のサードパーティの三次元プログラミングツールを使用して実装されることができ、生成されたロビーモジュール１３０は、三次元ＤｉｒｅｃｔＸオブジェクトの形式であり得る。このハイパーワールドモジュール４２０は、当該分野において公知のバナープログラムであり得る。
【００２１】
図６を参照すると、例示的なサーバ１６０が説明されている。サーバ１６０は、ＭｉｃｒｏｓｏｆｔのＮＴサーバまたはＵｎｉｘ（登録商標）サーバなどの１つ以上の物理的拡張可能サーバマシンに、当該分野において公知の、好ましくはオブジェクト指向のプログラミングツールである任意のプログラミングツールを使用して実装されることができる。サーバコンポーネント１６０は、上述のように、クライアント／サーバＡＰＩ１１５を介して種々のサーバ１６０と通信する上記に記載のクライアントソフトウェアプログラム７０などを介して、例としてインターネットなどのグローバルコンピュータネットワークなどのネットワーク上の１つ以上のユーザからアクセスが可能である。このＡＰＩは、インターネット上で一般的に使用されるプロトコルであるＴＣＰ／ＩＰなどのネットワークプロトコルとインターフェースで接続するネットワークトランスポート層を含むことができる。サーバ１６０は、クライアントソフトウェアプログラム７０とサーバ１６０との間の直接的かつ持続的なネットワーク接続を維持するセッションサーバ６２５コンポーネントを含む。このセッションサーバ６２５は、当該分野において公知のネットワーク管理コンポーネントを含む。以下に記載される他のコンポーネントの多くは、セッションサーバ６２５コンポーネントを介してクライアントソフトウェアプログラム７０とデータを交換する。セッションサーバ６２５は、システム１００にアクティブに参加しているユーザの一覧と、アクティブユーザのアバターまたはキャラクタの一覧をアバターのプロフィールとともに維持する。
【００２２】
サーバ１６０は、性別、スキルおよび獲得した装備などのユーザのプロパティまたはプロフィールをデータベース６８０からキャッシュするサーバコンポーネントである、ユーザ管理サーバ６００をさらに含む。新規ユーザがログインするといつでも、この新規ユーザのプロフィールはキャッシュされる。さらに、ユーザ管理サーバ６００はまた、ログインしたユーザの初期位置を、ロビーセルサーバ６３５によって使用されることになる仮想世界内に格納し、これは以下により詳細に記載される。ユーザ管理サーバ６００はまた、接続が切断されたり、失われたりした場合にユーザが復元され得る、デフォルトのユーザ位置を含み得る。
【００２３】
また、サーバ１６０は、システム１００によって確立された仮想世界内にユーザのアバターの位置を維持する、１つ以上のロビーセルサーバ６３５を含む。この仮想世界は、仮想世界内においてロビーを画定する基礎的な構成ユニットである「タイル」によって定義され、単一のタイルは、ユーザが動画のスクリーンから見ることのできる大きさの面積を有し得る。ロビーセルサーバ６３５は、タイルによって画定される仮想世界の地図を維持し、システム１００にアクティブに参加しているユーザのアバターの位置は、ユーザのアバターが論理的に位置づけられる仮想世界内においてこのタイルによって画定される。この情報はクエリされ、好ましくは非持続的な接続を通してクライアントソフトウェア７０によって更新される。また、この情報は、当業者には理解されるように、好ましくは持続的な接続を介してセッションサーバ６２５によってクエリが行われ更新される。また、ロビーセルサーバ６３５は、仮想世界の特定のタイル内で発生したイベントを維持する。例えば、マウスの動きなどによるユーザ入力に応じてアバターがタイル内における位置や場所を変更した場合、例として同一のタイル内などの、閲覧スコープ内における他のアバターはこの変更を通知され、他のアバターのクライアントソフトウェアプログラム７０はこの変更を更新される。セッションサーバ６２５は、アバターのクライアントソフトウェアプログラム７０から変更を受け取り、変更を行い、以下に記載されるロビーセルサーバ６３５および他のコンポーネントにこの変更を送る。ロビーセルサーバ６３５は、変更を処理し（例えば、変更の距離を計算し）、誰がこの変更によって更新されるべきか決定するという処理を行い、セッションサーバ６２５およびメッセージキャストサーバ６１５などの、以下に記載される他のコンポーネントを介して、ユーザ管理サーバ６００、セッションサーバ６２５および対応するクライアントソフトウェアプログラム７０に処理した変更を送る。持続的な接続はセッションサーバ６２５とすべての利用可能なロビーサーバ６３５との間において維持され、その結果、システム１００の仮想世界内におけるアバターの位置にしたがって、場所、外観またはアクションなどのアバターイベントが適切なロビーセルサーバ６３５に受け渡される。これらの更新全てが終了したら、イベントをトリガするユーザのクライアントソフトウェアプログラム７０は、動きなどのイベントを確認し得る。好ましくは、システム１００内において、１つまたは２つのロビーセルサーバ６３５の複製が、耐障害性の目的において維持される。
【００２４】
サーバ１６０は、負荷の大きいクライアントデータを維持するために複数のロビーセルサーバ６３５を含むことができる。かかる場合、サーバ１６０は、複数のロビーセルサーバ６３５に負荷がどのように分配されているかを監視し管理するセル分配サーバ６３０をさらに含むことができ、それによってそれぞれのロビーセルサーバ６３５は、数多くのタイル内のイベントを維持する。当業者であれば、あるタイルは他よりも評判がよく、他のタイルよりもより多くのアバター、およびより多くの活動／イベントを伴うことを理解するであろう。かかるタイルは、大きな処理能力を必要とし得る。これらのタイルを扱うロビーセルサーバ６３５は、セル分配サーバ６３０から割り当てられる、管理するタイルが、他のロビーセルサーバ６３５よりも少ないことがある。この割り当ては、セル分配サーバ６３０からロビーセルサーバ６３５およびセッションサーバ６２５に送られる。
【００２５】
サーバ１６０は、ロビーセルサーバ６３５の変形である１つ以上のＳＲＵサーバ６０５をさらに含むが、ロビーでなくＳＲＵにサービスを提供する。オンラインゲームに特化したＳＲＵサーバ６０５は、少なくとも２種類ある。当該分野において公知のサードパーティ三次元プログラミングツールを使用して開発されることのできる、ファーストパーソンシューティング（「ＦＰＳ」）ゲーム専用のＦＰＳ  ＳＲＵサーバ６０５がある。ＦＰＳ  ＳＲＵサーバ６０５は、ピアツーピア（「Ｐ２Ｐ」）接続を複数のユーザ間に提供することができる。トポロジーは、複数のホストを含む。従来のシステムは、単純性のためにＰ２Ｐトポロジーに１つのホストのみの使用を含むが、しかし、かかる構造は性能のボトルネックおよび単一障害点を作り出すおそれがある。複数のホストを有する現行のトポロジーは、これらの問題に取り組み、多数のユーザをサポートする拡張可能なシステムを提供する。また、複数のホストは、当該分野において公知の、インターネット高速ブロードバンドサービスが完全に対象としていないインターネットサービスプロバイダ（「ＩＳＰ」）ピアリングなどのトランスポートコントロールプロトコル（「ＴＣＰ」）ホットラインソリューションを使用して、全体の性能を強化することができる。単純なＦＰＳゲームは、サーバ１６０から離れたクライアントマシンに位置するＳＲＵサーバ６０５上に実装されることができる。言い換えれば、システム１００のユーザは、自らのクライアントマシンのシステム１００内にＦＰＳゲームを作成し構築することができる。
【００２６】
また、例としてＭＭＯＧゲームなどの大きな地図を使うオンラインゲームのために設計された、当業者には理解され得るジオマトリックス（ｇｅｏｍａｔｒｉｘ）ＳＲＵサーバ６０５もある。このジオマトリックスＳＲＵサーバ６０５は、フレーム同期などの特徴を含み、また、対応するＭＭＯＧを制御するロジックも含む。持続的なＰ２Ｐ接続は、好ましくは、上述のように、ユーザがＳＲＵサービスに参加する場合に、クライアントプログラム７０とＳＲＵサーバ６０５との間で維持される。ユーザは、ＳＲＵサーバ６０５との接続を、セッションサーバ６２５を介して開始し得る。ユーザのクライアントソフトウェアプログラム７０のＳＲＵマネージャ１４０は、ＳＲＵモジュール１２０のクライアント／サーバＡＰＩ１１５を介してＳＲＵサーバ６０５と直接通信し、これはサーバおよび／または他のユーザとのオンラインデータ交換を必要とする。ＳＲＵサーバ６０５の１つ以上の複製は、耐障害性の目的のために維持される。
【００２７】
また、サーバ１６０は、ゲームロジックサーバ６１０を含む。ロジック、ルールまたはサーバ１６０上に存在するコンテンツを必要とするサービスやゲームがある。ロジック、ルールまたはコンテンツをオンライン上で格納する理由には、セキュリティとオンラインゲームトーナメントの管理がある。ゲームロジックサーバ６１０は、特定のゲームの特定の時間における動的な実行の予定を決めるスケジューリングプログラムをさらに含むことができる。このゲームロジックサーバ６１０は、当該分野において公知の、ロジック、ルールおよびコンテンツを定義するＬｕａやＰｙｔｈｏｎなどのスクリプト言語の記述をサポートするために実装される。
【００２８】
サーバ１６０は、グローバルメッセージ、グループメッセージまたはプライベートメッセージをサーバ１６０のコンポーネントからクライアントソフトウェアプログラム７０へ送信するメッセージキャストサーバ６１５をさらに含み、かかるメッセージキャスティングプログラムは当該分野において公知である。
【００２９】
サーバ１６０は、アバターのプロフィールおよび他のユーザからのフィードバックに基づいて、それぞれのアバターにフィルタ一覧を計算するフィルタコレクタ６５５をさらに含む。この計算の結果は、ロビーセルサーバ６３５に提供され、これが計算を関連するクライアントソフトウェアプログラム７０に転送し、この関連するソフトウェアプログラム７０に通知してフィルタをコンピュータ画面に適用させる。フィルタプレプロセッサ６６０は、計算の速度を上げるために異なるフィルタの計算に一般的なデータをキャッシュするために使用され得る。また、ランキングサーバ６５０は、その計算においてフィルタコレクタ６５５によって使用され得、ランキングサーバ６５０は、対応するユーザの行為やシステム１００内における活動、行われたゲームの成績および特定のアバターの他のユーザのフィードバックに基づいて、ランキング情報を特定のアバターに提供する。
【００３０】
ポータルから提供されるトランザクションベースのサービスにおいては、金銭による購買などのトランザクションを維持するために、クライアントトランザクションサーバ６４０がサーバ１６０に含まれる。このクライアントトランザクションサーバ６４０は、当該分野において公知のアカウント管理プログラムを利用して実装され得る。アバタープロフィールやクライアントトランザクションなどのユーザ固有のデータや、利用可能なサービスなどのサービス固有データは、サーバ１６０内の個別のデータベース６８０および６７５にそれぞれ格納される。データベース管理システムまたはデータベースブローカ６４０は、データベース６７５／６８０を管理し、サーバ１６０内の種々のコンポーネントによってデータベース６７５／６８０にアクセスするためにサーバ１６０内に含まれる。好ましくは、サーバ１６０はまた、頻繁にアクセスされるデータオブジェクトを、迅速なアクセスのためにメモリに格納するデータベースブローカ６４０に連結するオブジェクトキャッシュ６２０を含む。これらのサーバ１６０内の記述された種々のコンポーネントは、他のサーバコンポーネントにアクセスするユニフォームを提供するネットワークアブストラクトレイヤ（「ＮＡＬ」）を利用する。
【００３１】
サーバ１６０に含まれる他のコンポーネントは、サーバ１６０内におけるクライアントソフトウェアプログラム７０による、不正な活動がないか、活動を監視するセキュリティモニタ６６５、ファイルおよび／またはデータベース内にユーザ活動のログを記録するログシステム６７０、およびクライアントソフトウェアプログラム７０上のチャットモジュール１１１のユーザ間にリアルタイムのチャットセッションを提供するチャットサーバ６４５を含む。ポータルシステムにおいて使用されることができる他のサーバは、サーバ管理ツール６９５およびノンプレイングキャラクタ（「ＮＰＣ」）サーバ６９０を含む。ＮＰＣサーバ６９０は、例えば、ペットや通りのゲームガイドなどの、仮想世界内においてコンピュータ操作されるすべてのキャラクタやアバターをシミュレートしトリガする。
【００３２】
図７を参照すると、望まれないユーザをビューからフィルタする、ロビーセルサーバ６５５に実装され得るプロセスが示されている。ポータルの動作中において、複数のエンドユーザ（アクションブロック７１０）に利用可能なロビーが生成される。アバターは、それぞれの参加エンドユーザ（アクションブロック７２０）に生成される。特定のロビー内の特定のユーザに対し、サーバ１６０は、ロビー（アクションブロック７４０）内の他のすべてのアバターを見つけ、否定的なフィードバックなどの望ましくないプロフィールを有する他のアバターがいないか、または特定のユーザに、望ましくないアバターであると具体的に特定されていないか（決定ブロック７４０）決定する。もしそうであった場合、このポータルは、この望ましくないアバターを、特定のユーザのビューからフィルタし（アクションブロック７５０）、この特定のユーザのアバターを、この望ましくないアバターのビューからフィルタする（アクションブロック７６０）。続いて、ポータルは、フィルタされていないアバターを特定のユーザ（アクションブロック７７０）に表示する。それゆえ、フィルタリング技術は相互的であり、すなわち、アバターおよびそれらの対応するユーザが、相互に閲覧可能にするためには、同一のタイル上に位置している場合は特に、両方のアバターが相互にフィルタされないことが必要である。
【００３３】
加えて、サーバ１６０は、他のアバターを検索する検索エンジンをさらに含み得、これはロビーセルサーバ６５５内に実装され得る。検索エンジンのプロセス８００は、図８に示される。ユーザは、アバターやアバターのグループを、アバターのプロフィールと比較されるキーワード検索によって検索し得る（アクションブロック８１０）。続いて、サーバ１６０は、当業者には理解されるように、すべてのアバターのプロフィールを検索し、関連するアバター、すなわち、キーワードを含むかまたはキーワードに近い情報を含むプロフィールを持つアバターの一覧を取り出す（アクションブロック８２０）。好ましくは、この一覧は関連性の高い順に並べかえられる。次に、この一覧は、サブミットしているユーザをビューからフィルタしているアバターを検索する（決定ブロック８３０）。次に、サブミットしているユーザをビューからフィルタしているアバターがあった場合、これらのアバターは一覧から削除される（アクションブロック８４０）。次に、最終的な一覧が、サブミットしているユーザに送られる（アクションブロック８５０）。関連性のスコアは、一覧内のそれぞれのアバターと関連する。次に、ユーザは、一覧が概観するには長すぎる場合、これを絞りこむことができる（アクションブロック８６０）。
【００３４】
ポータルは仮想世界であるため、検索されたアバターがそのときこのビュー範囲にない場合、検索されたアバターは検索を行なった（ｓｕｂｍｉｔｔｉｎｇ）ユーザのビュー範囲内に再配置されない。したがって、検索プロセス８００は、検索されたアバターがサブミットしているユーザのビュー範囲に接近している場合にのみ行われ得る。それゆえ、検索プロセス８００は、実世界の行動をシミュレートする遅延結果を提供し得る。
【００３５】
上記の明細書において、本発明は、具体的な実施形態を参照して説明された。しかし、これらの種々の修正および変更が、本発明の広範囲な精神と範囲から逸脱することなく可能であることは明白となろう。例えば、本願において記載されるプロセスのアクションの具体的な順序および組み合わせは、単なる説明であって、本発明は、異なるあるいは追加のプロセスのアクション、または異なる組み合わせまたは順序のプロセスのアクションを用いて実施され得ることを、読み手には理解されよう。例えば、上述の実施形態は、ユーザとの相互通信のためにユーザのコンピュータにインストールされたクライアントソフトウェアを含むが、しかし、ユーザのコンピュータにインストールされたクライアントソフトウェアのかわりに、もしくはこれに追加して、ユーザインターフェースはブラウザベースであり得、サーバ１６０はウェブサーバとして、またはウェブサーバに連結して実装され得る。さらなる例として、一実施形態のそれぞれの特徴は、他の実施形態に示される他の特徴と組み合わされ得る。加えて、および明らかに、特徴は要求に応じて加減され得る。したがって、本発明は添付の請求項およびその均等物に照らす場合を除き、制限されるものではない。
【図面の簡単な説明】
【００３６】
【図１ａ】図１ａは、本発明の好ましい実施形態によるグラフィカルロビーの図である。
【図１ｂ】図１ｂは、本発明の好ましい実施形態による別のグラフィカルロビーの図である。
【図２】図２は、本発明の好ましい実施形態によるコンピュータシステムの図である。
【図３】図３は、本発明の好ましい実施形態による別のコンピュータシステムの図である。
【図４】図４は、本発明の好ましい実施形態による別のコンピュータシステムの図である。
【図５】図５は、本発明の好ましい実施形態による別のコンピュータシステムの図である。
【図６】図６は、本発明の好ましい実施形態によるサーバシステムの図である。
【図７】図７は、本発明の好ましい実施形態によるフィルタプロセスの図である。
【図８】図８は、本発明の好ましい実施形態による検索プロセスの図である。
【図１Ａ】
2009510561.tif 000003
【図１Ｂ】
2009510561.tif 000004
【図２】
2009510561.tif 000005
【図３】
2009510561.tif 000006
【図４】
2009510561.tif 000007
【図５】
2009510561.tif 000008
【図６】
2009510561.tif 000009
【図７】
2009510561.tif 000010
【図８】
2009510561.tif 000011
【国際調査報告】
2009510561.tif 000012