JP2005353012A - ネットワーク化されたセッションにおけるパーティ間の対話の制限 - Google Patents

ネットワーク化されたセッションにおけるパーティ間の対話の制限 Download PDF

Info

Publication number
JP2005353012A
JP2005353012A JP2004176217A JP2004176217A JP2005353012A JP 2005353012 A JP2005353012 A JP 2005353012A JP 2004176217 A JP2004176217 A JP 2004176217A JP 2004176217 A JP2004176217 A JP 2004176217A JP 2005353012 A JP2005353012 A JP 2005353012A
Authority
JP
Japan
Prior art keywords
participant
online session
session
party
filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004176217A
Other languages
English (en)
Other versions
JP4583078B2 (ja
Inventor
Damon V Danieli
ブイ.ダニエリ デーモン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to JP2004176217A priority Critical patent/JP4583078B2/ja
Publication of JP2005353012A publication Critical patent/JP2005353012A/ja
Application granted granted Critical
Publication of JP4583078B2 publication Critical patent/JP4583078B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】 フィルタを使用してオンラインセッションの参加者の間の対話を制御。
【解決手段】 オンラインセッションの各参加者は、オンラインセッションで対話を制限することを望む他のユーザのリストを有する。各リストは、ハッシュされて参加者のフィルタが作成される。ブロックのために、オンラインセッションのホストは、セッションの全参加者のフィルタの論理ORをとってセッションフィルタを作成する。オンラインセッションの現在の参加者の各識別子をハッシュしてユーザフィルタを作成する。オンラインセッションのホストはセッションフィルタを検査して参加予定者がブロックされるかどうかを決定する。ブロックされない場合、ユーザフィルタは参加予定者に送信されて、ブロックフィルタに対して検査される。
【選択図】 図8

Description

本発明は、ゲームなどのオンラインセッションにおける人々の対話を制御する技術に関し、具体的には、各人物を表すデータを備えるフィルタと参加予定者を表す対応データとの比較結果を受けて、オンラインセッションの参加者が対話をしたくない人物に対して、ブロック、および/またはゴースティング(ghosting)、および/またはミューティング(muting)のいずれかを行うことに関する。
1人または複数の他の人と一緒に非電子ゲームをする際、社会的対話(social interaction)をたくさん行うことにより、プレイヤーの楽しみは増す。言語コミュニケーションもまた、ゲームプレイの要素である。なぜならば、ゲーム中にプレイヤーが敵に対して行う批評は、敵の集中力を失わせ、下手に行動させることができ、これに対して、チームメンバに対する批評は元気を与え、これによってプレイの質が高まるからである。したがって、ゲームをプレイする人々のコミュニケーションおよびその他の形式の対話は、ゲーム体験上、明らかに重要な要素である。
ゲームプレイにとって重要なプレイヤー同士の言葉のやり取りは、インターネットおよび他のネットワークリンクを介してプレイする電子ゲームの重要な要素になった。現在では、異なるサイトにいるプレイヤーは、インターネットまたは他のネットワークを使った音声伝達(すなわちボイスオーバーIP)用に開発された技術と類似する技術を利用することにより、言葉を使ってお互いにコミュニケーションをとることができる。機能の多くおよびボイスオーバーIPの技術の多くは、電子ゲームのプレイヤーがネットワークを介して言語コミュニケーション(verbal communication)を行う方式に適用可能であり、また、使用されてきた。言語コミュニケーションは、インターネットおよび他のネットワークを介してゲームする楽しみを増す。システムは、音声データがコンピューティング装置間で直接ネットワークを介して転送されるピアツーピアモードで動作することができ、あるいは、音声サーバを使用して、1のゲームプレイヤーコンピュータから音声データを受信し、この音声データを、ネットワークを介してゲームをプレイするためにネットワークに接続された1つまたは複数の他のコンピュータに転送する。
各パーソナルコンピュータ(PC)が1人のプレイヤーだけをサポートするPCゲームシステムとは対照的に、マルチプレイヤーゲーム機(multiplayer game console)は、各ゲーム機上で複数のプレイヤーをサポートする。音声通信システムは、1つのゲームをプレイする複数ユーザの言語コミュニケーションを可能にするゲーム機のために開発された。言語コミュニケーションは、同一のゲーム機のプレイヤーの間で行われるか、あるいは、直接またはインターネットなどのネットワークを介した通信によって結合される異なるゲーム機のプレイヤーの間で行われる。
一般的にゲームプレイ中の言語コミュニケーションは魅力的な特徴ではあるが、特定のユーザによってそれが濫用または悪用されると、ゲームをする1人または複数の他のプレイヤーが不快な思いをする場合がある。プレイヤーを不快にさせる原因は、特定のプレイヤーによる口汚いののしりまたは性的にあからさまな表現の使用の繰り返し、あるいは、プレイヤーが社会的に容認できないと感じる表現または批評である。プレイヤーは、ある種の口の利き方に対して各々違った反応を示すので、特定のプレイヤーと言語コミュニケーションを行うことによってプレイヤーが不快な思いをする原因は、実質的に限りない。そうは言うものの、特定のプレイヤーの言語コミュニケーションを不快と感じるプレイヤーが、さらなる言語コミュニケーション及び/又はその特定の他のプレイヤーとの他の種類の対話を回避できるようにすることが重要であろう。
音声コミュニケーションに加えて、オンラインセッションの参加者は、他の方法で対話(interact)できる。例えば、仮想環境またはゲーム内の第1のプレイヤーは、第1のプレイヤーの一部の行為(または行為の失敗)の結果として、その環境内の第2のプレイヤーの状態に影響を及ぼす場合がある。ゲーム中のプレイヤーは、戦闘中またはその他の敵対闘争中に頻繁に対話する。なぜならば、多くのゲームは、プレイヤー間のある種の競争にベースにしているからである。多人数参加型ゲームにおいては、別のプレイヤーが容認できないと感じるやり方で行動したプレイヤーは、大体の場合、他のプレイヤーと対話しないで参加することができる。しかし、対話を防ぐか又は制限することにより、一方のプレイヤーを他方のプレイヤーからは見えなくし、かつ/または、一方のプレイヤーが他方のプレイヤーの状態に影響を与えることを妨げることができるべきである。参加者が少人数のセッションでは、プレイヤー間の対話を単純に制御したり、制限したりするのが今なお実行可能な代替案ではあるが、嫌がられるプレイヤーが参加することをブロックすることが望ましい場合もある。
したがって、オンラインゲーム又はオンラインセッションでの他のパーティとのコミュニケーション(音声、ビデオ、又はチャット)又は他の種類の対話を抑制することによって、ある者が、不愉快と感じる別のパーティが、自分が参加するゲームまたは他の種類のオンラインセッションに参加することをブロックすること、又は、不快とみなされる別のパーティを「ゴースト」化できるようにしなければならない。一方向のゴースト化において、不快と思われる別のパーティをゴースト化した者は、ゴースト化されたパーティの存在に気付いていて、かつ/または、それを判断できなければならないが、ゴースト化されたパーティは、自分がゴースト化されたことに気付いてはならず、さらに、ゴースト化した者がオンラインセッションに存在することに気付いてはならない。双方向ゴースト化では、ゴースト化されたパーティおよびゴースト化した者のいずれも、他方の存在に気付いてはならず、また、それを判断できてはならない。同様に、双方向ブロックが許可される場合、参加予定者は、ブロックされるパーティが既に参加者であるときには、ゲームまたは他の種類のオンラインセッションに参加できないようにする必要がある。従来技術は、プレイヤーが、匿名で、ネットワークを介してプレイされる特定のゲーム上の不快なプレイヤーをブロック又はゴースト化できるようにする機構を提供していない。その特定のゲームとは、特に、多人数参加型ゲームであり、そこでは、プレイヤーの数および潜在的に大きいブロック/ゴースト化されるプレイヤーのリストの数が、実装できないほどの複雑さを作り出すと考えられる。
したがって、これらの目標を実現するにあたり過度の負荷をもたらさないで、ブロックおよび/またはゴースト化、および/またはミュートをオンラインセッションで実行することを可能にする技術に対するニーズが明らかに存在する。この概念は、オンラインゲームに制限されるのではなく、むしろ、音声セッション、テキストチャットセッション、ネットワーク化された電話コミュニケーション、ピアツーピアネットワーキング等の、参加者の間の対話がある多数の他の種類のオンラインセッションにも適用できるはずである。
本発明は、オンラインセッションの参加者の間の対話を制御する効果的な技術を提供するために開発された。本発明は、最初はオンラインゲームの参加者に適用されるが、明らかに、他の種類のオンラインセッションの参加者間の対話の制御に適用可能である。この技術は、セッションへの参加を望む参加予定プレイヤーが、既にゲームに参加している1人または複数の人のブロッキングリストに含まれるという理由により、そのプレイヤーをブロックすべきかどうかを判定するのに適用でき、あるいは、多人数参加型ゲームのプレイヤーの対話の制御に適用できる。したがって、この技術は、他のプレイヤーの振る舞いを不快と感じるプレイヤーに対して不快なプレイヤーをゴースト化できるようにすることによって、多数のプレイヤーが参加する仮想環境世界等のオンラインセッションに適用することができる。例えば、オンラインセッションの参加者が、別のプレイヤーによってゴースト化される時に、ゴースト化したプレイヤーは、ゴースト化されたプレイヤーに気付いているが、ゴースト化されたプレイヤーは、ゴースト化したプレイヤーに気付かず、決して対話しない。
本発明で適用される方法では、オンラインセッションの各参加者および各参加予定者は、参加者がオンラインセッションでの対話を制限することを望む各人の固有識別子を含むブロックリスト、および/またはミュートリスト、および/またはゴーストリストを有することができる。この方法は、参加予定者(または、多人数参加型セッションの特定の参加者)が、オンラインセッションのいずれかの参加者の1つまたは複数のこれらリスト上にあるかどうかの判定を単純化するステップと、いずれかの参加者が、参加予定者(または特定の参加者)の1つ又は複数のこれらリスト上にあるかどうかの判定を単純化するステップとを採用する。いずれかの状況が存在すると、しかるべきアクションがとられる。参加者間の対話制限については、様々な種類のものが考えられる。例えば、対話が制限されることによって、ゴースト化された参加者がゴースト化した参加者からは見えなくなり、又は、パーティ間でコミュニケーションができなくなり、又は、ブロックされたパーティがセッションに参加することすらできなくなる。
具体的に言うと、本発明によれば、オンラインセッションの参加者の間の対話を制限する方法は、オンラインセッションへの参加が制限される人のインジケータに複数のハッシュ関数を適用した結果を表すために設定されるビットを備えるセッションフィルタを作成するステップを含む。ハッシュ関数は、オンラインセッションの参加予定者(または現在の参加者)のインジケータにも適用され、テスト結果が判定される。次に、テスト結果は、セッションフィルタと比較され、テスト結果の中の規定ビットが、セッションフィルタ内でセットされているかどうかを判定し、セットされている場合には、参加予定者(または現在の参加者)と、オンラインセッションの参加者の少なくとも一人との対話が制限される。
上記したように、制限するステップは、参加予定者がオンラインセッションに参加するのをブロックするステップを備えることができる。代案として、制限するステップは、参加予定者がオンラインセッションへの参加を開始する時、すなわち、参加予定者をブロックした参加者とまさに対話しようとする時に、オンラインセッションの少なくとも1人の参加者に対して参加予定者をゴースト化するステップを含むことができる。もう1つの代案として、制限するステップは、一方が他方のミュートリストに含まれる場合に、参加者間のコミュニケーションをミュートするステップを含むことができる。
ブロッキングに関して、この方法は、さらに、オンラインセッションの参加者のインジケータに複数のハッシュ関数を適用した結果を示すためにセットされるビットを備えるユーザフィルタを作成するステップと、参加予定者がオンラインセッション中に対話を制限することを望む人のインジケータにハッシュ関数を適用した結果を示すためにセットされるビットを備えるユーザブロックフィルタを作成することが含む(すなわち、リストアップされた人が参加者であるオンラインセッションに参加しないか、又は、ユーザが既に参加者であるオンラインセッションに、リストアップされた人が参加できないようにする。)。ユーザブロックフィルタにセットされたビットは、ユーザフィルタのビットと比較されて、参加予定者が対話の制限を望む人がオンラインセッションの参加者の中に含まれるかどうかが判定される。ゴーストフィルタおよび/またはミュートフィルタは、同様に作成され、対話が制限されるオンラインセッションの他の参加者が示される。
参加予定者が参加を阻まれず、参加予定者が対話を制限することを望む人が参加者の中に含まれる場合には、この方法を用いると、参加予定者は、オンラインセッションに参加するか、又は、別のオンラインセッションを捜すかを選択的に決定できる。
参加者が対話を制限すること望む人が他の参加者の中に含まれる場合には、この方法は、代わりに、オンラインセッション中にその人に対してその参加者をゴースト化するステップを含めることができる。上述のように、ブロックまたはゴースト化は、一方向または双方向のいずれかで適用することができる。参加者はゴースト化されると、見えなくなり、ゴースト化した参加者と対話できず、また、ゴースト化した参加者の環境の状態を変更できなくなるか、あるいは、なんら特徴的な情報なしで現れるがゴースト化する参加者の環境の状態に影響を及ぼすことはできる。
本発明のもう1つの態様は、上で述べた方法のステップを実行する機械命令を有する記憶媒体を対象とする。本発明のもう1つの態様は、全般的に上で述べた方法のステップと両立する機能を実行するための、コンピューティング装置のプロセッサを有する1つまたは複数のコンピューティング装置のメモリに記憶される機械命令を実施するシステムを対象とする。
(本発明を実行する例示的システム)
図1は、本発明の様々な部分を実行するのに適したシステムの例であり、それは、Microsoft Corporation社のXBOX LIVE(商標)などのゲーミングサービスのサーバの機能の提供またはオンラインセッションに接続するのに使用されるクライアントコンピューティング装置としての動作を含む。このシステムは、処理ユニット21、システムメモリ22、およびシステムバス23を備える従来型のPC20の形式の汎用コンピューティング装置を含む。システムバスによって、システムメモリを含む様々なシステム構成要素が処理ユニット21に結合される。システムバスは、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。システムメモリには、読取専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25が含まれる。起動中などにPC20内の要素間の情報の転送を助ける基本ルーチンを含む基本入出力システム26(BIOS)は、ROM24に記憶される。PC20は、ハードディスク(図示せず)との間で読み書きを行うハードディスクドライブ27、着脱可能磁気ディスク29との間で読み書きを行う磁気ディスクドライブ28、および、コンパクトディスク読取専用メモリ(CD−ROM)または他の光学媒体などの着脱可能光ディスク31との間で読み書きを行う光ディスクドライブ30を含む。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ディスクドライブインターフェース34によってシステムバス23に接続される。ドライブおよびそれに関連するコンピュータ可読媒体は、PC20のコンピュータ可読機械命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。本明細書に記載の環境例では、ハードディスク、着脱可能磁気ディスク29、および着脱可能光ディスク31が使用されるが、当業者であれば、コンピュータによってアクセス可能なデータおよび機械命令を保存する磁気カセット、フラッシュメモリカード、デジタル多用途ディスク(DVD)、ベルヌーイカートリッジ、RAM、ROM、および類似物などの他のタイプのコンピュータ可読媒体もまた、オペレーティング環境例で使用できることを理解するであろう。
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、他のプログラムモジュール37、およびプログラムデータ38をはじめとする複数のプログラムモジュールを、ハードディスク、磁気ディスク29、光ディスク31、ROM24、またはRAM25に保存することができる。ユーザは、キーボード40およびポインティング装置42などの入力装置を介して、PC20にコマンドおよび情報を入力し、制御入力を与えることができる。ポインティング装置42として、マウス、スタイラス、無線リモートコントロール、または他のポインタを含めてもよい。以下で使用される用語「マウス」は、実際には、画面上のカーソルの位置を制御するのに有用なすべてのポインティング装置を包含する。他の入力装置(図示せず)として、マイクロホン、ジョイスティック、触覚ジョイスティック(haptic joystick)、ヨーク、フットペダル、ゲームパッド、衛星パラボラアンテナ、スキャナ、または類似物を含めることができる。これらの入出力(I/O)装置および他の入出力(I/O)装置は、システムバス23に結合されるI/Oインターフェース46を介して処理ユニット21に接続される場合が多い。用語I/Oインターフェースは、特にシリアルポート、パラレルポート、ゲームポート、キーボードポート、および/またはユニバーサルシリアルバス(USB)のために使用される各インターフェースを包含する。モニタ47または他の種類のディスプレイ装置は、ビデオアダプタ48などの適当なインターフェースを介してシステムバス23に接続される。モニタに加えて、PCは、(サウンドカードまたは他のオーディオインターフェース(図示せず)を介して)スピーカーまたはプリンタなどの他の周辺出力装置(図示せず)に結合される場合が多い。
PC20は、リモートコンピュータ49などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ49は、別のPC、(通常は、一般に、PC20によく似た形で構成される)サーバ、ルータ、ネットワークPC、ピア装置、あるいは衛星または他の一般的なネットワークノードとすることができる。リモートコンピュータ49には、通常は、PC20に関して上述した要素の多くまたはすべてが含まれるが、図1には、外部メモリ記憶装置50だけが示されている。図1に示された論理接続には、ローカルエリアネットワーク(LAN)51および広域ネットワーク(WAN)52が含まれる。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットにおいては一般的である。
LANネットワーキング環境で使用される場合、PC20は、ネットワークインターフェースまたはネットワークアダプタ53を介してLAN51に接続される。WANネットワーキング環境で使用される場合、PC20は、通常、インターネットなどのWAN52上で通信を確立するモデム54、又は、ケーブルモデム、デジタル加入者回線(DSL)インターフェース又はサービス総合デジタル網(ISDN)インターフェースなど他の手段を含む。モデム54は、内蔵または外付けとすることができるが、I/O装置インターフェース46を介して、すなわちシリアルポートを介して、システムバス23に接続されるか、バスに結合される。ネットワーク化された環境では、PC20に関して示したプログラムモジュールまたはその一部を、リモートメモリ記憶装置に記憶することができる。図示したネットワーク接続は、一例であり、無線通信およびワイドバンドネットワークリンクなどのコンピュータの間の通信リンクを確立する他の手段を使用してもよいことが理解されるであろう。ゲーミングサービス機能を提供するのに使用される1つまたは複数のサーバは、通常、上述のものによく似た1つまたは複数のコンピューティング装置を備える。しかし、このサーバは、加入ユーザに関するデータおよびゲーミングサービスの他の要素に関するデータを記憶するためのはるかに大きいハードドライブまたは他の不揮発性メモリシステムにアクセスすることができる。
(ゲーム機の例)
本発明は、様々なコンピューティング装置を一緒にオンラインセッションで接続するサービスへの参加者の間の対話制限と絡めて使用される。そのようなオンラインセッションで使用されると考えられるコンピューティング装置の1つが、ゲーム機である。図2に示すように、一例としての電子ゲーミングシステム100は、ゲーム機102を備え、コントローラ104aおよび104bなど最大4つのユーザ入力装置をサポートする。ゲーム機102は、内蔵ハードディスクドライブ(図示せず)と、光記憶ディスク108によって示される様々な形のポータブル光学記憶媒体をサポートするポータブルメディアドライブ106とを備える。適切なポータブル記憶媒体の例としては、DVDディスクおよびCD−ROMディスクがある。このゲーミングシステムでは、ゲームプログラムが、ゲーム機と共に使用するためにDVDディスクで配布されることが好ましい。しかし、他の記憶媒体を使用することや、インターネット(又は他のネットワーク)上のゲームサイトからゲームおよび他のプログラムをダウンロードすることも考えられる。
ゲーム機102の前面には、電気的にコントローラに接続するために設けられる4つのコネクタ110がある。代わりに他の種類のコネクタまたは無線接続を使用することも考えられる。電源ボタン112およびディスクトレイ排出ボタン114は、ゲーム機102の前面に置かれる。電源ボタン112は、ゲーム機に対する電気出力の印加を制御する。排出ボタン114は、ポータブルメディアドライブ106のトレイ(図示せず)を交互に開閉し、記憶ディスク108の挿入および排出を可能にする。これにより、記憶ディスク上のデジタルデータを、ゲーム機による使用のために、読み込んだり、メモリにロードしたり、ハードドライブに記憶させたりすることができる。
ゲーム機102は、オーディオ/ビジュアル(A/V)インターフェースケーブル120を介してテレビジョンまたは他のディスプレイモニタまたはスクリーン(図示せず)に接続される。電源ケーブルプラグ122は、通常の交流電源(図示せず)に接続されると、ゲーム機に電力を供給する。ゲーム機102は、データコネクタ124を備え、イーサネット(登録商標)接続を介してネットワークにデータを転送し、及び/又は、ブロードバンド接続を介してインターネットにデータを転送することができる。あるいは、モデム(図示せず)を使用して、ネットワーク及び/又はインターネットにデータを転送することも考えられる。さらに別の案として、ゲーム機を、イーサネット(登録商標)クロスオーバケーブル(図示せず)を使って別のゲーム機に直接接続させることができる。
コントローラ104aおよび104bは、各々、リード線を介して(または、その代わりに無線インターフェースを介して)ゲーム機102に接続される。図で示した実装においては、コントローラは、USB互換であり、USBケーブル130を介してゲーム機102に接続される。ゲーム機102は、ゲームソフトウェアと情報のやりとりをし、ゲームソフトウェアを制御する各種ユーザ装置を装備することができる。図2に示されるように、コントローラ104aおよび104bは、各々、2つの親指スティック132aと132b、Dパッド134、ボタン136、および2つの引き金138を備える。これらのコントローラは、単に代表的なものであり、ゲーム機102を制御するために、図2に示されたものを他のゲーミング入力制御機構に置き換えたり、図2に示されたものに他のゲーミング入力制御機構を付け加えて使用したりすることができる。
取外し可能な機能ユニットまたは機能モジュールを状況に応じてコントローラ104に挿入することによって、追加の機能を提供することができる。例えば、ユーザは、ポータブルメモリユニット(図示せず)にゲームパラメータを保存し、そのポータブルメモリユニットを別のゲーム機のコントローラに挿入することによって、その別のゲーム機でプレイするためにそのゲームパラメータを移植できる。他の取外し可能機能ユニットも、コントローラと共に使用するのに利用可能である。例えば、音声コミュニケータモジュール140を備える取外し可能機能ユニットを使用すると、ユーザは、ローカルに及び/又はネットワークを介して、他のユーザと言語コミュニケーションをすることができる。音声コミュニケータモジュール140に接続されるのが、マイク付きヘッドホン142であり、これは、入ってくる音に応答して入力信号を作るブーム・マイク144または他の種類のオーディオセンサ、およびゲーム機からの出力信号に応答して可聴サウンドを作るヘッドホン146または他の種類のオーディオ変換器を備える。さらに、音声コミュニケータ機能を、他の面で全体的にコントローラ104aおよび104bに似ているコントローラの不可欠な部分として含めることが考えられる(図示せず)。図2に示されたコントローラは、2つの取外し可能な機能ユニットまたは機能モジュールを収納するように構成されるが、その代わりに、2つより少数または多数のモジュールを使用してもよい。
ゲーミングシステム100は、ゲームをプレイすることができるが、CDおよびDVDの音楽およびビデオを再生することもできる。ゲームコントローラは、ハードディスクドライブに記憶されたデジタルデータ又は、ドライブ106内の光ストレージディスク108、オンラインソース、機能ユニットまたは機能モジュールから読み取られるデジタルデータを使用して、他の機能を実施できると考えられる。
(ゲーム機の機能的要素)
図3を見ると、機能ブロック図には、ゲーム機の構成要素と、多人数参加型ゲーム機を使った電子ゲームのプレイ中にプレイヤー間の音声または言語コミュニケーションを円滑にするために設けられる構成要素が示されている。上述したように、ゲーム機100の本実施形態においては、ゲーム機は、各々、最大4名までのプレイヤーをもつことができ、各プレイヤーに、コントローラおよび音声コミュニケータを提供することができる。音声コミュニケータモジュール140’の詳細を、関連するコントローラ104aと関連させて図示する。コントローラ104b、104c、および104d(ゲーム機100に結合される場合に)は、必要に応じて、各々、コントローラ104aに結合される音声コミュニケータモジュール140’を備えることが理解されるであろう。望ましくは、音声コミュニケータモジュール140’は、デジタル信号プロセッサ(DSP)156、アナログ−デジタル変換器(ADC)158、デジタル−アナログ変換器(DAC)161、およびUSBインターフェース163を備える。同様に、ゲーム機100から送られるデジタルサウンドデータは、コントローラ104aを介して伝えられ、USBインターフェース163に適用される。USBインターフェース163は、デジタル信号をDSP156およびDAC161に伝える。DAC161は、デジタル信号を、ヘッドホン146を駆動するために用いられるアナログ信号に変換する。
多人数参加型ゲーム機100を参照すると、複数の主要な機能要素が示されているが、他の機能要素(図示せず)もまた含まれることを理解できるはずである。具体的に言うと、ゲーム機100は、CPU150と、ROMとRAMを含むメモリ152を備える。ゲーム機100は、DSP154も備える。マイクロホン144からのアナログ信号に応答してADC158によって作成されるデジタル信号は、コントローラ104aを介してCPU150に伝えられる。CPU150は、他のローカル音声コミュニケーションモジュールへの送信、および、ゲーム機のイーサネット(登録商標)ポート(図3に図示せず)を介してブロードバンド接続された他のゲーム機への送信のために、音声ストリーム信号をエンコード処理する。
直接接続またはネットワーク接続を介してパケットとして伝えられるデジタル信号は、ゲーム機100のイーサネット(登録商標)ポートを介して(または、同一のゲーム機に接続された他の音声コミュニケーションモジュールおよびコントローラから)CPU150に入力され、そのCPUによって処理されて、データパケットがデコードされ、出力ミキシングをするDSP154に加えられるデジタルサウンドデータが再生される。DSP154からの信号は、USBインターフェース163を介する入力のために、音声コミュニケーションの受取人であるプレイヤーの所望の音声コミュニケーションモジュールに伝えられる。
(オンラインセッション環境)
図4Aおよび4Bは、オンラインセッション環境の異なる態様を示す。図4Aにおいて、概略図280は、一例としてのオンラインセッション環境が複数のクライアントコンピューティング装置またはゲーム機284a−284hを備え、それらがサーバコンピューティング装置282に接続されることを示す。データパケットは、インターネットを介して、サーバコンピューティング装置とゲーム機の間を伝送する。ゲーム機284a−284hは、各々、サーバコンピューティング装置282と通信することにより接続され、サーバコンピューティング装置282は、図4Bに示されているように、単一のサーバコンピューティング装置282を備えることができ、あるいは、結合することによりゲーミングサービスに必要な特定の機能を実行するサーバ282の複数サーバ283を含む。
インターネットと通信する様々な装置は、図4Cに示されているように、オンラインセッションのクライアントコンピューティング装置を備えることができる。そのような装置には、制限はなく、ラップトップ機286a、ワークステーション286b、PC286c、サーバ286d、携帯情報端末(PDA)286e、およびゲーム機286fが含まれる。オンラインセッションへの参加を試みるユーザは、本発明によって参加がブロックされ、あるいは、そのユーザが特定の他の参加者と対話することが制御されかつ制限される。図4Cに示された装置の1つを用いて接続するユーザが、オンラインセッションに加わり、完全に参加することを許可するか否か、又は、ユーザがオンラインセッションの他の者と対話することを制限し制御することを許可するか否かを判定する本発明で用いられる手法は、オンラインセッションに非常に多数の者が参加している場合であっても、比較的効率的である。
(サーバベースのオンラインゲームサービス)
図5は、インターネット上でサーバベースゲームセッション300を使った通信により結合される複数のクライアントコンピューティング装置100a―100uを概略的に示す。図示されていないが、クライアントコンピューティング装置100a―100tは、比較的少数のプレイヤーを有する複数の異なるオンラインセッションに接続されるか、または、数百人または数千人の参加者を有する単一の多人数参加者オンラインセッションに接続される。したがって、図5は、ユーザ間の対話が本発明に従って制限される種類のオンラインセッションに接続するユーザによって使用される複数のクライアントコンピューティング装置を表すと考えられる。
本発明のオンラインゲームへの適用例においては、クライアントコンピューティング装置100uは、参加者としてオンラインゲームセッションへ加わることを望む特定のユーザによって使用される。しかし、クライアントコンピューティング装置100uのユーザが、オンラインゲームセッションに既に参加しているユーザの1人のブロックリストに含まれている場合には、本発明は、クライアントコンピューティング装置100uのユーザが、そのオンラインゲームセッションに参加することを妨げる。または、クライアントコンピューティング装置100uのユーザが、多人数参加型オンラインゲームセッションへ参加しようとする場合に、コンピューティング装置100uのプレイヤーの対話は、別のやり方、例えば、そのユーザと、クライアントコンピューティング装置100uのユーザをゴーストリストまたはミュートリストに含めた参加者との間のコミュニケーションを防止することによって制限される場合がある。以下に説明するように、ゴースト化されるプレイヤーは、そのプレイヤーとの対話を望まない者に対して見えなくなり、又は中性(neutered)になる。クライアントコンピューティング装置100uのユーザが単純にミュート(mute)される場合は、そのユーザは、ミュートリストにそのユーザを含めたオンラインセッションの参加者とコミュニケートすることができなくなる。本発明の詳細は多少複雑であるため、用語についての下記の定義は、オンラインセッションの参加者間の対話を制限するのに用いられる本発明の様々な方法を明瞭にするのに役立つはずである。
(本発明で使用される用語の定義)
「セッション」とは、ユーザをネットワーク上のグループの中に論理的に集めたものである。ネットワークとは、インターネット、LAN、無線、テレフォニ、またはプライベートネットワーク等である。セッションには、各ユーザがネットワーク化された多人数参加型ゲームに参加するゲーミングセッション、ユーザが一緒になって、音声チャットセッションに参加するテレフォニブリッジ、テキストチャット会話、または複数の人が参加し、対話する他のオンラインセッションがある。
「サーバ」とは、オンラインセッションを動かす物理的な機械である。多人数参加型ゲームのために、サーバは、通常、データセンター内に計算装置を備える(データセンターホスティド(date−center−hosted)オンラインセッションのため)。セッションアーキテクチャに応じて、単一の多人数マルチプレイヤーサーバは、ゲーム世界の一部(「シャード(shard)」と称される場合がある。)、ゲーム世界全体、または複数のゲーム世界を主催することができる。用語「セッション」は、用語「サーバ」は当技術分野で交換可能に使用されるが、(上で定義した)論理的セッションと物理的サーバとの間には1対1の関係が必ずしも存在しないので、用語「セッション」は、用語「サーバ」の代わりに、オンラインセッションにともに使用する。
「サービス」とは、ユーザ認証、存在するセッションのリスト、ユーザポリシーリストのリポジトリ、課金、および他の管理機能を提供する中央プロセスまたは分散プロセスである。
「ユーザ」とは、オンラインセッションに含まれる人、プレイヤー、または参加者であり、例えば、多人数参加型オンラインセッションのプレイヤーである。本発明はオンラインゲームのプレイヤーとの関連において説明されるが、この応用例が限定されることを意図せず、用語「プレイヤー」が、他の種類のオンラインセッションにおける本発明の動作を理解する時に、前述の文に記された他の用語のいずれかと置き換えられると一般に考えられることが理解されるであろう。
「ブロック」とは、オンラインセッションの現在の参加者のブロックリストから作成されるブロックフィルタの論理的ORをとることによって生成されるセッションフィルタ内にある人が示される場合に、オンラインセッションにその人が参加することを防止することである。また、参加予定者のブロックリスト(ブロックフィルタ)の中に現在の参加者の誰かが含まれる場合に、オンラインセッションの設計者によって選択される実装に応じて、参加予定者に、それでもセッションに加わる機会を与えるか、又は、オンラインセッションへの参加を防止することである。
「ブロックリスト」とは、オンラインセッション内に参加することをユーザが望まない人のリストである。このリストは、サービス、ユーザのローカルハードドライブ、ユーザのローカルメモリユニット、またはユーザ固有プロパティを記憶する他のストレージに記憶される。
「セッションフィルタ」とは、参加者のブルームフィルタ(Bloom filter)またはブロックフィルタを作成するためにオンラインセッションの各参加者のブロックリストをハッシュし、次に、ブロックフィルタと論理的ORをとることによって生成されるフィルタ(以下を参照)である。ブロックフィルタは、オンラインセッションに参加することがブロックされるべき各人を示すためにセットされるビットを含み、ブロックフィルタは、通常、オンラインセッションのホストによって維持される。
「ミュート」とは、ミュートするユーザが、ミュートされたユーザに話しをすることができない場合、又は、その逆も同様な場合である。実装に応じて、ミュートは、音声チャット、テキストチャット、およびジェスチャコミュニケーションを包含する。本発明では、(あるユーザが別のユーザに話し掛けられるが、逆は不可能な)一方向ミュートを使用することができるが、この手法は、一般には使用されない。望ましくは、双方向ミュートを使用することであり、そこでは、一方のパーティが他方のパーティのミュートリストにある場合、どちらのパーティも他方のパーティとコミュニケートできないが、ミュートするユーザは、他方のユーザがミュートされていることを知り、ミュートのオンオフを切り替えることができる。しかし、ミュートされたユーザは、自分がミュートされていることを知らないことが望ましい。
「ミュートリスト」とは、オンラインセッションでコミュニケーションをとるのが受け入れられないとある人が判断した全てのユーザのユーザ固有の持続的リストである。このリストは、サービス、その人のローカルハードドライブ、その人のローカルメモリユニット、またはユーザ固有プロパティを記憶する他の記憶装置に記憶することができる。ミュートリストは、一般に、ブロックリストまたはゴーストリストと類似する。なぜならば、それぞれは、オンラインセッション中に対話がブロックまたは制限されなければならないとある人が決定した1人または複数のユーザを定義するからである。適用される制限の種類は、用語「ミュートリスト」、「ブロックリスト」、または「ゴーストリスト」によって示されるが、これらの用語は、一般に、制限される対話の特定の種類を単純に定義する。
「ゴースト化」(Ghosting)とは、ユーザ(通常はゴースト化するユーザ)が、他のユーザ(通常はゴースト化されるユーザ)の個人識別情報を見ないようにするために実行される。個人識別情報は、そのユーザに固有で唯一のものを含む。これには、ユーザネーム、パーソナルネーム、個人プロファイル、アイコンなどが含まれる。ゴースト化には、様々な置換があり、オンラインセッション設計者の選択に応じてすべてが有効であり、この選択によって、オンラインセッションに参加する人のミュートリスト、ブロックリスト、またはゴーストリストで「一致」が発生する時に実施されるポリシが決定される。実装に応じて、ユーザを「ゴースト化」するには2つの方法がある。
1.「不可視」−ゴースト化されたユーザは、ゴースト化したユーザには見えず、ゴースト化したユーザと対話することができない。したがって、目に見えないゴースト化されたユーザは、ゴースト化するユーザの世界または環境の状態に影響を及ぼすことができない。
2.「中性」−中性化されるゴースト化されたユーザは、特徴的な情報をもたないで現れ、ゴースト化したユーザとコミュニケーションをとることができない。しかし、中性化されるゴースト化されたユーザは、ゴースト化したユーザの世界の状態に影響を及ぼすことができる。
不可視ゴースト化または中性ゴースト化(あるいはその両方)の実装の選択は、設計者次第であり、どちらも、オンラインセッションのゲームまたは他のタイプの機構に応じて長所を有する。例えば、プレイヤーが互いの環境に影響を及ぼすことができないゲーム世界では、設計者は、不可視ゴースト化を実行するだけかもしれない。プレイヤーが、(一緒に怪物を倒す等の)互いの環境と対話するゲーム世界では、不可視ゴースト化は理にかなわない。なぜならば、(見えないユーザの動作に起因して)世界が変化する可能性があり、これによって、他のユーザが混乱するからである。その場合は、中性ゴースト化実装が、より論理的な選択肢である。尚、これらの選択肢は相互に排他的ではない。ゲームまたはオンラインセッションデザインは、一方のユーザを中性化すること、及び、他方のユーザを中性化されたその1のユーザから見えないようにすることを要求する場合がある。
「ゴースト化するプレイヤー対ゴースト化されたプレイヤー」―設計者が行わなければならないもう1つの選択(両方が有効でもある)が、ゴースト化したユーザが、ゴースト化されたユーザには見えなくなるか又は中性になるかどうか、または、ゴースト化されたユーザが、ゴースト化したユーザには見えなくなるか又は中性にされるかどうかである。すなわち、(おそらくより一般的な事例である)1の実施形態では、第1のパーティが第2のパーティをゴースト化すると、第1のパーティは、第2のパーティには見えなくなる。もう1つの実施形態では、第1のパーティが第2のパーティをゴースト化すると、第2のパーティは、第1のパーティには見えなくなる。(中性化にも適用される)両方の設計が有効であり、どちらを実装するかは、ゲーム設計者に委ねられる。
「ゴーストリスト」とは、オンラインセッションで特定のユーザに対してゴースト化される全てのユーザの、ユーザ固有の持続的リストである。このリストは、サービス、ユーザのローカルハードドライブ、ユーザのローカルメモリユニット、またはユーザ固有プロパティを記憶する他のストレージに記憶することができる。上述の「ブロックリスト」および「ミュートリスト」の定義を参照されたい。
「双方向ゴースト化」とは、ゴースト化されたユーザは、一緒にセッションに参加できるが、ポリシー(不可視および/または中性)が、ゴースト化したユーザとゴースト化されたユーザの両方に適用される場合である。
「一方向ゴースト化」とは、ゴースト化されたユーザが、セッションに一緒に参加できるが、ゴースト化したユーザは、ゴースト化されたユーザが存在することに気付いており、及び/又は、検出でき、ゴースト化されたユーザは、ゴースト化したユーザが存在するかどうかを判定できず、自分がゴースト化されたかどうかを判定できない場合である。
「フィルタ」とは、ユーザの組を表すデータ構造である。このデータ構造は、固有のユーザ名、固有のユーザID番号のリストの形式をとるか、または、本発明の好ましい実施形態で実行されるように、(以下に説明する)ブルームフィルタ等の構造を備える。本発明は、ほとんどの「フィルタ」を使用して動作するが、ブルームフィルタのプロパティは、本発明の好ましい形において多くの利益をもたらす。
「ブルームフィルタ」とは、誤った肯定(すなわち、人が組に含まれない時に、その人が組に含まれるという表示を返すこと)のデザイナブル(designable)の低い可能性は存在するが、誤った否定(すなわち、人が組に含まれる時に、その人が組みに含まれないという誤った表示を返すこと)の可能性を備えている、ユーザの組の集合的表示を含む固定長ビットマップである。誤った肯定の可能性は、以下で説明するように、いくつかの変数を操作し、メモリおよびCPUのトレードオフを表すパラメータを選択することによって制御することができる。
(オンラインセッションフィルタ)
参加予定者がオンラインゲームセッションに参加することがブロックされるか否かを判定するために、本発明は、上で定義されたセッションフィルタを使用する。図6は、オンラインセッションのN人の参加者のそれぞれのブロックリスト320a―320nが、セッションフィルタ326を生成するためにどのように使用されるかを示す。オンラインゲームセッションのユーザまたは参加者のブロックリストは、各々、そのユーザがオンラインセッションでの対話を望まない人を表す複数のプレイヤー固有識別子(PUID)322を含む。このケースでは、ブロックリストは、ユーザ320a―320nが既に参加しているオンラインゲームセッション(または他の種類のオンラインセッション)への参加が許可されてはならないユーザを識別する。図6に示された例では、オンラインセッションの各参加者が、自分のブロックリストにM個までのPUID322を有することができることが明らかである。この例では、特定の参加者に対してブロックされなければならないユーザを指し示すものとしてPUIDが使用されるが、他の種類の識別印を代わりに使用してもよいことは明らかである。
ある参加者がオンラインセッションに加わる時に、そのセッションがサーバベースの場合にはサーバであるかもしれないし、そうでない場合にはホストとして活動する参加者の1人であるかもしれないセッションのホストは、参加者のブロックリストを受け取り、あるいは、これらの参加者のブロックリストのブルームフィルタに対応するブルームフィルタ324a−324nを受け取る。各ブルームフィルタは、参加者によって作成され、オンラインセッションのホストに送信され、あるいは、ホストは、オンラインセッションに参加する新しい各参加者のブロックリストのブルームフィルタを作成する。オンラインセッションのホストは、ブルームフィルタ324a−324nのそれぞれを集めて論理ORをとることによって、セッションフィルタ326を作成する。ブルームフィルタ324a−324nのそれぞれの作成に関する詳細は、以下で説明する。より一般的なケースでは、ブロックリストのPUIDは、特定のユーザがブロックリストに含めることを選択し、オンラインセッションで対話したくない人のそれぞれのグローバル固有識別子(GUID)に置き換えることができる。
(フィルタパラメータ)
ユーザのコンピューティング装置は、セッションを生成するか又はセッションに加わる前に、ユーザのブロックリストにある全ユーザを集約した所定の長さのブルームフィルタを作成する。好ましい実施形態では、固有に生成される128ビットの番号(PUIDまたはGUID)が、各ユーザを識別するために使用されるので、この番号の数値処理が可能である。他の実施形態では、任意の固有のデータ型(名前、社会保険番号、ユーザ番号など)を使用して、ユーザを識別する。また、中央サーバが、ユーザのブロックリストに基づいて各ユーザのブルームフィルタを集約し、作成できると考えられる。
一つの実装例は、メモリ内で管理可能で、誤った肯定の程度を許容可能なレベルまで減らすのに十分に大きいサイズをブルームフィルタ長にセットする。1つの例として、
c*b*p≦m
が使用される。
ここで、
c=小さい定数(16がよい)
b=ブロックリスト内のユーザ数のシステム全体での平均値(例えば16ユーザ)
p=ゲームセッションのプレイヤーの最大数(ゲームの設計時に決定される)
m=ブルームフィルタビットマップのビット数である。この例では、バイト分割のために8で割り切れ、ビット最適化のために2のべき乗であるmの値を使用する。実際には、mの値のサイズは、1024ビット(128バイト)であれば十分であることがわかっている。ブルームフィルタサイズが決定されると、サイズmビットのメモリセグメントが割り当てられ、そこに0が設定される。
次に、k個のハッシング関数を、パーティのユーザブロックリスト内の各ユーザに対して適用し、ブルームフィルタ内にk個の単一ビット位置を生成する。このハッシュ関数は、すべての入力をmビットに分配し、互いに独立になるように設計される。
kの最適の数(すなわちkopt)は、確率関数の導出によって、
opt=(ln2)*(m/(b*p))
になると決定されている。しかし、kの値は、ハッシュ関数の数が減り、誤った肯定の可能性が依然として許容可能であるようにするために、kopt未満になるように選択することができる。
望ましくは、ユーザのコンピューティング装置で動作するプログラムは、リスト内の各ユーザPUIDのセキュアハッシュアルゴリズム−1(Secure Hash Algorithm−1、SHA−1)ハッシュを生成し、ブルームフィルタ内にセットされるビット位置を決定する。例えば、ブルームフィルタのサイズがmである場合、SHA−1ダイジェストの最初のlog(m)ビットは、第1のハッシュ関数に対してブルームフィルタにセットされるビット位置を表す。SHA−1ダイジェストの次のlog(m)ビットは、第2のハッシュ関数に対してセットされるビット位置を表す。プログラムは、kビットがブルームフィルタ内にセットされるまで、ユーザのコンピューティング装置での実行をk回継続する。しかし、ビットが固有である必要はない。なぜなら、一部のハッシュ関数は、(1/mの確率で)同一のビットを選択する可能性があり、このことは、ブルームフィルタアルゴリズムでは許容されるからである。
明確にするために、ユーザブロックリストから作成されるブルームフィルタをブロックフィルタと呼び、このフィルタは、ユーザのブロックリストをユーザの単一のブルームフィルタに集約する1024ビットフィルタである。
一連の各ユーザが、オンラインセッションに参加することを許可されると、新しい参加者のブロックフィルタは、ビット単位でORをとられて、セッションの全ての参加者のブロックフィルタを集約するセッションフィルタになる。好ましい実装では、セッションフィルタは、セッションホストによって記憶される。しかし、ピア−ピアオンラインセッション(peer−peer online session)などの別の実装では、その代わりに、セッションフィルタは、マッチメーキングサーバに記憶(またはマッチングメーキングサーバーからアクセス)される。
オンラインセッションのホストは、上述したのと同じ方法を使用して、オンラインセッションの参加者を示すユーザフィルタを作成する。オンラインセッションの参加者についてのユーザフィルタのサイズは、一般に、セッションフィルタより小さく、そのサイズは、セッションの参加者の数の関数であって、ブロックリストのサイズの関数ではない、すなわち:
c*p≦m
ここで、
c=小さい定数(例えば8)
p=ゲームセッション内のプレイヤーの最大人数(ゲームまたはオンラインセッションの設計時に決定される)
m=ブルームフィルタビットマップのビット数、例えば、128ビット(16バイト)のサイズを有するmを使用することは、例示的アプリケーションにとって十分であることがわかっている。
ユーザが参加者としてオンラインセッションに参加する時に、ホストは、上述のように、そのユーザPUIDの表示をオンラインセッションのユーザフィルタに追加し、ユーザフィルタを更新する。ユーザフィルタは、オンラインセッションの全ユーザを単一のブルームフィルタに集約する128ビットフィルタであることが好ましい。
ユーザは、ユーザをSHA−1ハッシュにかけ、k番目のハッシュ値の各ビット位置がブルームフィルタにセットされる(真である)ことを検査することによって、(かなりの確率で)ブルームフィルタ内に示されると判定される。すべてのハッシュ値のすべてのビット位置がセットされている(真である)場合には、このユーザがブルームフィルタに示される可能性はかなりある。しかし、ハッシュ値のビット位置のいずれかがクリアされている(偽である)場合には、(ブルームフィルタには誤った否定がないので)このユーザは、組に含まれないことが保証される。
(本発明で実行されるロジック)
図7においては、オンラインセッションのホストが実行する論理ステップが、本発明の実行と絡めて、フローチャート360に示されている。ステップ362において、ホストは、オンラインセッションに加わることを望む各参加予定者が評価する。このステップのさらなる詳細については、図8と絡めて以下に説明する。新しい各参加者がオンラインセッションに加わると、ステップ364に示されているように、オンラインセッションのホストは、次に、オンラインセッションのユーザフィルタを更新して、新しい参加者の表示を含める(図9を参照)。ステップ366において、ホストは、セッションフィルタを更新して、新しい参加者のブロックリストから生成されるブルームフィルタを含める。このステップの詳細については、以下に図10と絡めて述べる。判断ステップ368は、オンラインセッションがいっぱいになったかどうかを判定し、いっぱいではない場合には、ホストは、オンラインセッションへの参加を望む次の参加予定者の評価の準備をする。オンラインセッションがいっぱいな場合には、オンラインセッションがもはやアクティブでなくなるか、参加者の1人が離れ、別の参加予定者が加わる空席が作られるまで、このロジックは終了する。
ステップ362のさらなる詳細を、図8に示す。この図からわかるように、ステップ380において、参加予定者は、オンラインセッションに加わる意思を示す。ステップ382において、参加予定者のPUIDまたは他の適当なインジケータは、SHA−1または他の適当な一方向ハッシュ関数を使用してハッシュされる。このステップは、オンラインセッションに加わる試みの前に参加予定者によって実行されるか、又は、参加の時に参加予定者によって行われるか、又は、参加予定者がセッションへの参加の意思を示す時にオンラインセッションのホストによってされる。
ステップ384において、オンラインセッションのホストは、参加予定者のPUIDのハッシュと、ホストが維持しているセッションブロックフィルタとを比較する。この比較の最中に、参加予定者のPUIDのハッシュにセットされているビットが、セッションフィルタにセットされていないことをホストが検出すると、その参加予定者がオンラインセッションの現在の参加者の誰によってもブロックされないことが直ぐに明らかになる。しかし、参加予定者のPUIDのハッシュの全ビットが、セッションフィルタ内で見つかる場合には、この参加予定者が、オンラインセッションの現在の参加者の少なくとも1人によってブロックされている確率が比較的高い(しかし、確実ではない)。以下に説明するように、この確率を、現在の参加者のブロックリストの各々のブルームフィルタを作成する際に使用されるパラメータの関数として、任意の所望のレベルに設定することができる。したがって、判断ステップ386は、参加予定者がこの比較の結果に基づいてブロックされるかどうかがホストによって判定されることを示す。ブロックされる場合には、ステップ388は、参加予定者が現在のオンラインセッションに参加することが許可されないので、参加予定者は、参加する別のオンラインセッションをチェックすべきであることを示し、そして、このロジックは終了する。あるいは、参加予定者がブロックされない場合には、ステップ390において、ホストは、オンラインセッションの現在の参加者の表示を含んだユーザフィルタを参加予定者に送信する。参加予定者は、ステップ392に示されているように、参加予定者によって準備されたユーザブロックリストをハッシュして、ユーザブロックフィルタを準備する。
ステップ394において、参加予定者は、参加予定者のユーザブロックリスト内の各メンバのPUIDをハッシュすることによって作成されるユーザブロックフィルタと、オンラインセッションのホストから受信したユーザフィルタとを比較する。ユーザブロックリスト内のユーザのPUIDのハッシュから得られるビットの少なくとも1つがユーザフィルタに現れない場合には、そのユーザは、現在はオンラインセッションの参加者ではない。しかし、そのユーザのPUIDのハッシュの全ビットがユーザフィルタにセットされる場合には、そのユーザが参加者である可能性が高い。したがって、この比較の結果に基づいて、参加予定者は、判断ステップ396で、オンラインセッションの現在の参加者のいずれかが、参加予定者のブロックリストに含まれるかどうかを判定する。含まれる場合には、判断ステップ398は、オンラインセッションの設計者によって一方向ブロッキングが可能になっているかどうかを判定する。一方向ブロッキングが可能である場合には、参加予定者には、たとえオンラインセッションの現在の参加者の1人が参加予定者のブロックリストに含まれていても、オンラインセッションに加わる選択肢が与えられる。さもなければ、参加予定者は、ステップ388において、参加する別のオンラインセッションを調べるように指示される。しかし、一方向ブロッキングが可能な場合には、判断ステップ400は、参加予定者が依然としてこのオンラインセッションに参加することを望むかどうかを判定する。望む場合には、ステップ402は、参加予定者をオンラインセッションに参加させ、このロジックは終了する。さもなければ、このロジックは、再びステップ388で継続する。
図9は、図7のステップ364で、オンラインセッションのホストによってユーザフィルタがどのように更新されるかの詳細を示す。図9のステップ410において、ホストは、ユーザPUIDのハッシュと前のユーザフィルタの論理ORをとるか、あるいは、オンラインセッションに現在参加しているすべてのユーザPUIDのハッシュの論理ORをとる。その結果が、オンラインセッションの更新されたユーザフィルタになる。ユーザがオンラインセッションから退く場合に、ユーザフィルタを再び作成しなければならない。
図7のステップ366に示されているように、セッションフィルタを更新する時に、図10に示された詳細が実行される。図10のステップ420において、オンラインセッションのホストは、ハッシング関数をオンラインセッションの新しい参加者のブロックリスト内の各PUIDに適用して、ユーザブロックフィルタを作成する。あるいは、ユーザブロックフィルタは、新しい参加者によって以前に作成され、オンラインセッションのホストに転送される場合がある。次に、ステップ422において、ホストは、オンラインセッションのすべての参加者のユーザブロックフィルタの論理ORをとる。新しい参加者のためにユーザフィルタを更新する場合に、ホストは、単純に、新しい参加者のユーザブロックフィルタと前のセッションフィルタの論理ORをとって、更新されたセッションフィルタを作成する。しかし、ユーザが参加を停止する場合には、ステップ422を繰り返さなければならない。
図11は、オンラインセッションの現在の参加者のユーザPUID430をハッシュすることによってユーザフィルタ446を作成することに関する詳細を示す。このステップは、ブロック432に示されているように、SHA−1などのハッシュ関数を使用してユーザPUIDをハッシュすることによって実行される。異なる数を使用することができるが、図11に示された例示的な好ましい実施形態においては、ユーザのPUIDのハッシュによって、4つの2バイトセグメントA―D434の1つまたは複数にビットがセットされる。このビットフィールドは、128ビット長なので、各2バイトセグメントの7ビットだけが使用される。したがって、この例示的な好ましい実施形態では、ブロック436に示されているように、最初の4つの2バイトセグメントのそれぞれが、0000111100000111との論理ANDを取られる。最初のバイトの最下位4ビットは、16バイトブロックの「バイト」オフセットを表す。第2のバイトの最下位3ビットは、そのバイトの8ビット内のビットオフセットを表す。このマスキングによって、最適な剰余が作られ、その結果、さらなるビット演算は不要である。ブロック438は、修正されたハッシュ結果を示し、そこでは、各セグメントA―Dの7ビット440は、ハッシュの結果としてセットされた1つまたは複数のビットを含み、各セグメント内で使用されない9ビット442がそれに続く。次に、オンラインセッションのユーザフィルタを生成するために、ブロック444において、ホストは、第1のバイトのマスクされた4ビットを使用して、ビットフィールド内の16バイト位置の1つを選択し、第2のバイトのマスクされた3ビットを使用して8ビット位置の1つにビットをシフトし、その結果と前のユーザフィルタの論理ORをとって、ユーザフィルタの新しい参加者のPUIDを表すビットをセットし、更新されたユーザフィルタ446をもたらす。
さらに、図12に示されているように、セッションフィルタを生成する際に、一連の類似するステップが実行される。ブロック450に示されているように、オンラインセッションの参加者のそれぞれのブロックリスト内のユーザPUIDごとに、ステップ452において、ホストは、例えばSHA−1ハッシュ関数を使用して、PUIDをハッシュする。ハッシュ結果454は、ハッシュ結果の関数としてビットがセットされる4つの2バイトセグメントを含む。次に、ステップ456において、4つの2バイトセグメントのそれぞれは、0111111100000111と論理ANDがとられ、その結果、セグメントのそれぞれの最後の6ビットがマスクされ、4つのセグメントのそれぞれでセットされる10ビット位置460および各セグメントでマスクされる6ビット462を含む修正されたハッシュ結果458が作られる。ブロック464において、ホストは、第1のバイトのマスクされた7ビットを使用してビットフィールドの128バイト位置の1つを選択し、次に、第2バイトのマスクされた3ビットを使用して8ビット位置の1つにビットをシフトし、その結果とこの参加者の前に生成されたユーザブロックフィルタの論理ORをとって、ブロック450の現在の参加者のユーザブロックフィルタ内のPUIDを表すビットをセットする。同一のステップを、参加者のブロックフィルタのPUIDごとに繰り返して、参加者の最終的なユーザブロックフィルタ466を作る。他の参加者のそれぞれについても、対応するユーザブロックフィルタを生成する。最後に、ブロック468に示されているように、ホストは、各ユーザブロックフィルタを集めて論理ORをとって、現在のセッションフィルタ470を作成する。新しい参加者がオンラインセッションに加わる時に、新しい参加者のユーザブロックフィルタと前のセッションフィルタの論理ORをとって、新しい参加者によってブロックされるユーザの表示を含む新しいセッションフィルタを作る。
(多人数参加型オンラインゲームへの本発明の応用)
少数のプレイヤーが参加しているより小さいオンラインゲームセッションまたは限られた数の参加者を有する他の種類のオンラインゲームセッションとは対照的に、多人数参加型ゲーム環境または多数の参加者を有する同様のオンラインゲームセッションは、単にプレイヤーが別の参加者のブロックリストに含まれるので、通常は、プレイヤーの参加をブロックする必要はない。その代わりに、参加者が別のプレイヤーのミュートリストまたはゴーストリストに含まれることに基づいて、プレイヤー間のコミュニケーションを制御する機能など、他のタイプの制限された対話が効果を示す。この場合に、一般にオンラインゲームセッションの設計者によって決定されるように、対話は、2つのパーティの間のコミュニケーションを制限すること、あるいは、パーティの一方を他方に対してゴースト化することを含めることができる。しかし、ゴーストリストまたはミュートリストを、多数の参加者を有するオンラインセッションだけに適用可能にすることは意図されていない。なぜならば、これらは、少数の参加者だけを有するオンラインセッションにも適用できるからである。
図13は、オンラインゲームセッションまたは仮想環境の参加者の間の言語コミュニケーションを防ぐのに用いられるステップを示すが、このステップは、ゴースト化あるいはテキストまたは他の手段によるコミュニケーションの制限に同等に適用可能である。ステップ520において、オンラインセッションの参加予定者は、参加予定者のミュートリストからミュートフィルタを作成する。参加予定者のミュートリストは、参加予定者がオンラインセッション中にコミュニケーションをとることを望まない他の人のそれぞれの識別表示を含む。一般に、同一のプロセスが、図11に示されたユーザフィルタ446の作成に使用されるように、ミュートフィルタの作成に使用される。図13に戻って、ミュートフィルタが、参加予定者のミュートリストから一旦作られたならば、時々、これを保守する必要がある場合がある。したがって、判断ステップ522で、ミュートリストに対する変更が行われたかどうかを判定する。そうである場合には、判断ステップ524で、変更に、ミュートリストからのユーザの削除が含まれるかどうかを判定する。そうである場合には、ステップ520に従って、ミュートフィルタを再作成する必要がある。しかし、変更が、単にミュートリストへの別の人の識別表示またはPUIDの追加である場合には、ステップ526で、追加されたユーザのPUIDのハッシュと前のミュートフィルタの論理ORをとる。このステップによって、更新されたミュートフィルタが作成される。その後、または参加予定者のミュートリストに対して変更が行われていない場合には、ステップ528は、参加予定者がオンラインセッションへの参加を試みていることを示す。それを行う際に、参加予定者は、自分のPUIDまたは他の識別する印を、作成または更新されたばかりのミュートフィルタと共に、オンラインセッションのホストに送信する。ほとんどの多人数参加型ゲームまたは他の環境において、ホストは、サーバベースであるが、ピアツーピア環境で動作するより小さいオンラインセッションでは、ホストは、おそらくは同等に別の参加者である。ステップ530において、ホストは、適切なステップをふみ、参加予定者を認証し、参加予定者は、オンラインセッションに加わることができるようになる。
次に、ステップ532において、オンラインセッションホストは、セッションに加わったばかりの新しい参加者のPUIDを(まだ行われていない場合に)ハッシュし、その結果を、新しい参加者の状態および他の情報と共に記憶する。ステップ534において、ホストは、参加を試みる次の参加予定者を待ち、新しい参加予定者が検出された時にステップ528に戻り、上述の通り処理を進める。
オンラインセッションの開発者によって定義されるポリシを実施する時に、全般的に図14に示されているように、ホストおよびオンラインセッションの各参加者によって、ステップが実行される。ステップ500に示されているように、ホストは、更新された世界状態情報を、他の参加者のPUIDのハッシュと共に、継続的に各参加者に送信する。更新された世界状態情報は、通常は、オンラインゲームセッションまたは仮想環境の性質に依存し、各参加者の調子、参加者の環境内の位置、参加者の武器または保護または強さの状態などを含むことができる。判断ステップ502において、各参加者は、他の参加者がその参加者のミュートリストにあるかどうかを判定する。ミュートリストにある場合には、ステップ504において、適当な動作を実行して、オンラインセッションの設計者によって指定されたポリシを実施する。例えば、ミュートするプレイヤーは、ミュートされたプレイヤーからのすべてのコミュニケーションをブロックすることができる。ミュートするプレイヤーは、ミュートされたプレイヤーをミュート解除するオプションを有する場合がある。しかし、ミュートされたプレイヤーは、通常は、ミュートするプレイヤーがコミュニケートできるという表示を有しない。ゴースト化に適用される場合に、仮想環境または他の種類のオンラインセッションにゴースト化をどのように適用するのが最適であるかに関する設計者の判断に応じて、ゴースト化の様々なオプションを、本明細書に記載のように実行できる。
パーティの間の対話を制限する時の判定の詳細を、図15に示す。判断ステップ540において、オンラインセッションのホストは、参加者Aが参加者Bとまさに対話しようとしているかどうかを判定し、そうでない場合には、それ以上の動作はない。しかし、そのような対話がまさに行われようとしている場合には、判断ステップ542で、パーティの一方が、他方のミュートリストにある、またはミュートリストから作成されたミュートフィルタによって示されるかどうかが判定される。そうでない場合には、ステップ546で、参加者Aと参加者Bの間のすべての対話が許可され、それ以上の動作は、オンラインセッションのホストによるものに関して不要である。しかし、判断ステップ542の結果が肯定である場合には、ステップ544で、適当なポリシを実施して、オンラインセッションの2人の参加者の間の対話を制限する。その後、このロジックは完了する。
ゴースト化での対話の制限に関するオプションの要約を、図16の表548に開示する。上述のフローチャートには特に示されていないが、ゴースト化に関して図16に示された対話の制限のオプションの様々な組合せが、本発明によるオンラインセッション内で可能である。同様に、オンラインセッションに参加するプレイヤーの間のコミュニケーションをミュートまたは制御する様々なオプションならびに参加予定者がオンラインセッションに参加するのをブロックするオプションも、本発明のコンテキスト内で可能である。本発明は、より小さいオンラインセッションならびに多数の参加者を有するオンラインセッションを含むオンラインセッションの参加者の間の対話を制御する有効な方法を提供する。ブロックユーザリスト、ミュートリスト、および/またはゴーストリストから作られるフィルタの使用によって、オンラインセッションの参加者を把握するために、及び、オンラインセッションのユーザのリストに基づいてブロックされ、ミュートされ、かつ/またはゴースト化されなければならないユーザを識別するために転送され、維持されなければならないデータの量が明らかに減る。
本発明を、それを実施するのに好ましい形態と絡めて説明したが、当業者は、特許請求の範囲内で多くの変更を加えることができることを理解するであろう。したがって、本発明の範囲は、上述の説明によって決して制限されず、特許請求の範囲を参照することによってもっぱら判断される。
本発明を実施するのに適した汎用パーソナルなコンピュータ(PC)を示す機能ブロック図である。 本発明を実施できるネットワークを形成するために通信で結合される電子ゲーム装置またはPC等の複数のコンピューティング装置を示すブロック図である。 本発明が使用されるオンラインゲーミングセッションでの使用に適するゲーム機および音声コミュニケーションモジュールを示すブロック図である。 複数のクライアントコンピューティング装置がインターネットを介してサーバコンピューティング装置に結合されるオンラインセッションを示す概略ブロック図である。 本発明を実行する時に、サーバが、サーバ機能を実行する単一のコンピューティング装置または複数のコンピューティング装置であることを示すブロック図である。 本発明が実行されるオンラインセッションの間に通信で結合され得る複数のコンピューティング装置の例を示す図である。 複数のクライアントコンピューティング装置が結合されるサーバベースオンラインゲームセッションを示し、本発明を適用してクライアントコンピューティング装置がオンラインゲームに参加できないようにしたことを示す図である。 本発明に従って、オンラインセッションの複数のユーザのブロックリストから得られたブルームフィルタの論理ORをとりセッションフィルタを作る方法を示す図である。 参加予定者がオンラインセッションへの参加を許可されるかどうかを判定するために、本発明で実施されるステップの概略を示す流れ図である。 参加予定者がオンラインセッションへの参加を許可されるかどうかを判定するために適用されるロジックを示すより詳細なフローチャートである。 本発明に従ってユーザフィルタを更新するステップを示す図である。 本発明に従ってセッションフィルタを更新するステップを示すフローチャートである。 本発明でユーザフィルタがどのように生成されるかを示すブロック図である。 本発明のセッションフィルタを生成する処理を示すブロック図である。 本発明によるミュートまたはゴースト化のサーバ側実装で実施される論理ステップを示すフローチャートである。 ユーザまたはクライアントが対話を制限するポリシを実施するシステムでミュートまたはゴースト化を実施する論理ステップを示すフローチャートである。 オンラインセッションの参加者の間で対話を制限する(すなわち、ミュートするかゴースト化する)時を判定する論理ステップを示すフローチャートである。 ゴースト化での、オンラインセッションの参加者の間で対話を制限する様々なオプションをリストした表である。
符号の説明
320aから320n ブロックリスト
322 プレイヤー固有識別子(PUID)
324aから324n ブルームフィルタ
326 セッションフィルタ
430 ユーザPUID
434 2バイトセグメントAからD
446 ユーザフィルタ
454 ハッシュ結果
458 修正されたハッシュ結果
470 セッションフィルタ

Claims (64)

  1. オンラインセッションの参加者の間での対話を前記参加者のブロックリストに基づいて制御する方法であって、参加者のブロックリストは、オンラインセッションでの前記参加者との対話を特定の形で制御されなければならない1人または複数の人を識別し、
    (a)前記オンラインセッションの前記参加者のユーザブロックリストからセッションブロックフィルタを作成するステップであって、参加者の各ユーザブロックリストは、前記オンラインセッションでの前記参加者との対話は前記特定の形で制御されなければならない前記ユーザブロックリスト内の人ごとに固有識別子を含み、前記セッションブロックフィルタは、前記参加者のユーザブロックリスト内で識別されるすべての人を表す、ステップと、
    (b)前記オンラインセッションのすべての参加者を表すユーザフィルタを作成するステップであって、各参加者は、固有識別子を用いて示される、ステップと、
    (c)参加予定者を前記オンラインセッションの前記セッションブロックフィルタ内で表される人と比較して、参加予定者による前記オンラインセッションの参加者との対話を前記特定の形で制御しなければならないかどうかを判定し、そうである場合に、第1の動作を行うステップと、
    (d)参加予定者に関するユーザブロックフィルタを作成し、前記オンラインセッションで参加予定者との対話を前記特定の形で制御されなければならない人を表すステップと、
    (e)参加予定者の前記ユーザブロックフィルタで示される人を前記オンラインセッションの前記参加者に関する前記ユーザフィルタと比較し、前記オンラインセッションの参加者は参加予定者の前記ユーザブロックリストに含まれるかどうかを判定し、そうである場合に、第2の動作を行うステップであって、前記第1の動作および前記第2の動作を適用して、前記オンラインセッションの参加予定者と参加者との間の対話を制御するステップと
    を含むことを特徴とする方法。
  2. 前記第1の動作を行う前記ステップは、参加予定者が前記オンラインセッションに参加することをブロックするステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記第2の動作を行う前記ステップは、参加予定者が参加できる別のオンラインセッションを判定することを試みるステップを含むことを特徴とする請求項2に記載の方法。
  4. 前記第2の動作を行う前記ステップは、前記第1の動作は行われない場合に限って行われ、参加予定者が前記オンラインセッションに参加することをブロックするステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記第2の動作を行う前記ステップは、前記第1の動作は行われない場合に限って行われ、参加予定者が前記オンラインセッションに参加するかどうかを選択的に決定できるようにするステップを含むことを特徴とする請求項1に記載の方法。
  6. 参加予定者が参加するかどうかを選択的に決定できるようにする前記ステップは、参加予定者が、参加する他のオンラインセッションを見つけられない場合に限って生じることを特徴とする請求項5に記載の方法。
  7. 前記第1の動作を実行する前記ステップは、前記オンラインセッション中に、参加予定者を、参加者のユーザブロックリストに前記参加予定者を含めた前記参加者に対して、ゴースト化するステップを含むことを特徴とする請求項1に記載の方法。
  8. 前記第2の動作を実行する前記ステップは、前記オンラインセッション中に、参加予定者を、前記参加予定者のユーザブロックリストに含まれた参加者に対して、ゴースト化するステップを含むことを特徴とする請求項7に記載の方法。
  9. ゴースト化する前記ステップは、前記オンラインセッションでのゴースト化された参加者とゴースト化する参加者との間の識別情報の通信および転送を防止するステップを含むことを特徴とする請求項8に記載の方法。
  10. ゴースト化されたすべての参加者が前記ゴースト化する参加者の識別表示を判定するのを妨げるステップをさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記セッションブロックフィルタは、前記ユーザブロックリスト内の人のそれぞれの前記固有識別子に関連するが異なる数学関数を反復して適用することによって決定される前記セッションブロックフィルタ内のビット位置をセットすることによって、前記参加者の前記ユーザブロックリスト内で識別されるすべての人を表し、前記ユーザフィルタは、前記オンラインセッションの各参加者の前記固有識別子に前記関連するが異なる数学関数を反復して適用することによって決定される、前記ユーザフィルタ内でセットされるビット位置を含み、参加予定者を前記セッションブロックフィルタ内で表される人と比較する前記ステップは、
    (a)前記オンラインセッションの参加予定者の固有識別子に前記関連するが異なる数学関数を反復して適用して、前記セッションブロックフィルタ内の対応するビット位置を判定するステップと、
    (b)参加予定者について判定された前記対応するビット位置を、前記オンラインセッションの前記セッションブロックフィルタ内でセットされたビット位置と比較するステップと
    を含むことを特徴とする請求項1に記載の方法。
  12. 前記関連するが異なる数学関数は、ハッシュを含むことを特徴とする請求項11に記載の方法。
  13. 参加予定者について判定された前記対応するビット位置を比較する前記ステップは、マッチメーキングサーバ、セッションホスト、および参加予定者とピアツーピアであるコンピューティング装置の1つで実行されることを特徴とする請求項11に記載の方法。
  14. 参加予定者について判定された前記対応するビット位置は、前記セッションブロックフィルタ内でセットされている場合に、参加予定者は前記オンラインセッションの少なくとも1人の参加者のユーザブロックリストに含まれるかなりの可能性はあるが、参加予定者について判定された前記対応するビット位置のいずれかは、前記セッションブロックフィルタ内でセットされていない場合に、参加予定者は前記オンラインセッションの参加者のすべてのユーザブロックリストに含まれないことを特徴とする請求項11に記載の方法。
  15. 前記セッションの参加者が参加予定者の前記ユーザブロックリストに現れる場合であっても、参加者予定者がセッションに加わることを許可するオプションを前記オンラインセッション内で選択的に有効にするステップをさらに含むことを特徴とする請求項1に記載の方法。
  16. 前記オンラインセッションは、ネットワークを介して前記参加者によってプレイされるゲームを含むことを特徴とする請求項1に記載の方法。
  17. 請求項1に記載のステップを実行する機械命令を有することを特徴とする記憶媒体。
  18. オンラインセッションの参加者の間での対話を前記参加者のユーザブロックリストに基づいて制御するシステムであって、参加者のユーザブロックリストは、オンラインセッションでの前記参加者との対話を特定の形で制御されなければならない1人または複数の人を識別し、
    (a)複数のコンピューティング装置であって、各コンピューティング装置は、前記オンラインセッションの少なくとも1人の参加者に関連し、機械命令が記憶されたメモリに結合されたプロセッサを含み、前記複数のコンピューティング装置のそれぞれは、その中のプロセッサに結合され、ネットワークを形成するために通信で接続されるインターフェース装置を含み、前記複数のコンピューティング装置の少なくとも1つは、前記オンラインセッション内で参加予定者に関連する、複数のコンピューティング装置と、
    (b)1つまたは複数のメモリに記憶された機械命令を実行して複数の機能を実行する、前記複数のコンピューティング装置内の1つまたは複数のプロセッサであって、
    (i)前記オンラインセッションの前記参加者の前記ユーザブロックリストからセッションブロックフィルタを作成することであって、参加者の各ユーザブロックリストは、前記オンラインセッションでの前記参加者との対話は前記特定の形で制御されなければならない前記ユーザブロックリスト内の人ごとに固有識別子を含み、前記セッションブロックフィルタは、前記参加者の前記ユーザブロックリスト内で識別されるすべての人を表し、
    (ii)前記オンラインセッションのすべての参加者を表すユーザフィルタを作成することであって、各参加者は、固有識別子を用いて示され、
    (iii)前記参加予定者を前記オンラインセッションの前記セッションブロックフィルタ内で識別される人と比較し、前記参加予定者による前記オンラインセッションの参加者との対話を前記特定の形で制御しなければならないかどうかを判定し、そうである場合に、第1の動作を行うことと、
    (iv)前記オンラインセッションで前記参加予定者との対話を前記特定の形で制御されなければならない人を表すために前記参加予定者に関するユーザブロックフィルタを作成することと、
    (v)前記参加予定者の前記ユーザブロックフィルタで示される前記人を前記オンラインセッションの前記参加者に関する前記ユーザフィルタと比較し、前記オンラインセッションの参加者は前記参加予定者の前記ユーザブロックリストに含まれるかどうかを判定し、そうである場合に、第2の動作を行うことであって、前記第1の動作および前記第2の動作を適用して、前記オンラインセッションの前記参加予定者と参加者との間の対話を制御することと
    を含むことを特徴とするシステム。
  19. 前記セッションブロックフィルタは、
    (a)前記オンラインセッションのマッチメーキングサーバコンピューティング装置、
    (b)前記オンラインセッションのセッションホストコンピューティング装置、
    (c)参加者コンピューティング装置
    の1つである前記複数のコンピューティング装置の間のコンピューティング装置によって作成されることを特徴とする請求項18に記載のシステム。
  20. 前記ユーザブロックフィルタは、
    (a)前記オンラインセッションのマッチメーキングサーバコンピューティング装置、
    (b)前記オンラインセッションのセッションホストコンピューティング装置、
    (c)参加者コンピューティング装置
    の1つである前記複数のコンピューティング装置の間のコンピューティング装置によって作成されることを特徴とする請求項18に記載のシステム。
  21. 前記第1の動作を実行することは、前記参加予定者が前記オンラインセッションに参加することをブロックすることを含むことを特徴とする請求項18に記載のシステム。
  22. 前記第2の動作を実行することは、前記参加予定者が参加できる別のオンラインセッションを判定することを試みることを含むことを特徴とする請求項18に記載のシステム。
  23. 前記第2の動作は、前記第1の動作が行われない場合に限って行われ、前記参加予定者が前記オンラインセッションに参加することをブロックすることを含むことを特徴とする請求項18に記載のシステム。
  24. 前記第2の動作は、前記第1の動作が行われない場合に限って行われ、前記参加予定者が前記オンラインセッションに参加するかどうかを選択的に決定できるようにすることを含むことを特徴とする請求項18に記載のシステム。
  25. 前記参加予定者が、参加する他のオンラインセッションを見つけられない場合に限って、前記参加予定者は、参加するかどうかを選択的に決定できることを特徴とする請求項24に記載のシステム。
  26. 前記第1の動作は、前記オンラインセッション中に、参加予定者を、参加者のユーザブロックリストに前記参加予定者を含めた前記参加者に対して、ゴースト化することを含むことを特徴とする請求項18に記載のシステム。
  27. 前記第2の動作は、前記オンラインセッション中に、参加予定者を、前記参加予定者の前記ユーザブロックリストに含まれた参加者に対して、ゴースト化することを含むことを特徴とする請求項26に記載のシステム。
  28. ゴースト化することは、前記オンラインセッションでのゴースト化された参加者とゴースト化する参加者との間の識別情報の通信および転送を防止することを含むことを特徴とする請求項27に記載のシステム。
  29. 前記機械命令は、前記プロセッサが、ゴースト化された参加者が前記ゴースト化する参加者の識別表示を判定するのを妨げることを特徴とする請求項28に記載のシステム。
  30. 前記セッションブロックフィルタは、前記ユーザブロックリスト内の人のそれぞれの前記固有識別子に関連するが異なる数学関数を反復して適用することによって決定される前記セッションブロックフィルタ内のビット位置をセットすることによって、前記参加者の前記ユーザブロックリスト内で識別されるすべての人を表し、前記ユーザフィルタは、前記オンラインセッションの各参加者の前記固有識別子に前記関連するが異なる数学関数を反復して適用することによって決定される、前記ユーザフィルタ内でセットされるビット位置を含み、
    (a)前記オンラインセッションの前記参加予定者の固有識別子に前記関連するが異なる数学関数を反復して適用して、前記セッションブロックフィルタ内の対応するビット位置を判定することと、
    (b)前記参加予定者について判定された前記対応するビット位置を、前記オンラインセッションの前記セッションブロックフィルタ内でセットされたビット位置と比較することと
    によって、前記参加予定者を前記セッションブロックフィルタ内で表される人と比較することを特徴とする請求項18に記載のシステム。
  31. 前記関連するが異なる数学関数は、ハッシュを含むことを特徴とする請求項30に記載のシステム。
  32. 前記参加予定者について判定された前記対応するビット位置を比較することは、マッチメーキングサーバコンピューティング装置、セッションホストコンピューティング装置、および前記参加予定者のコンピューティング装置とピアツーピアであるコンピューティング装置の1つで実行されることを特徴とする請求項30に記載のシステム。
  33. 参加予定者について判定された前記対応するビット位置は、前記セッションブロックフィルタ内でセットされている場合に、参加予定者は前記オンラインセッションの少なくとも1人の参加者のユーザブロックリストに含まれるかなりの可能性はあるが、参加予定者について判定された前記対応するビット位置のいずれかは、前記セッションブロックフィルタ内でセットされていない場合に、参加予定者は前記オンラインセッションの参加者のすべてのユーザブロックリストに含まれないことを特徴とする請求項30に記載のシステム。
  34. 前記オンラインセッションは、ネットワークを介して前記参加者によってプレイされるゲームを含むことを特徴とする請求項18に記載のシステム。
  35. オンラインセッションに関する第1のパーティと第2のパーティとの間の対話を制限する方法であって、
    (a)前記オンラインセッションでの前記第1のパーティとの対話が制限されなければならない人を示す、前記第1のパーティのフィルタを作成するステップと、
    (b)前記第2のパーティに関するインジケータに基づいてテスト結果を作成するステップと、
    (c)前記テスト結果と前記フィルタを比較して、前記第2のパーティが前記フィルタ内で示される前記人の間に含まれるかどうかを判定し、そうである場合に、前記オンラインセッションでの前記第1のパーティと前記第2のパーティとの間の対話を制限するステップと
    を含むことを特徴とする方法。
  36. 制限する前記ステップは、前記第1のパーティを含む前記オンラインセッションへの前記第2のパーティの参加をブロックするステップを含むことを特徴とする請求項35に記載の方法。
  37. 制限する前記ステップは、前記オンラインセッションで前記第1のパーティに対して前記第2のパーティをゴースト化するステップを含むことを特徴とする請求項35に記載の方法。
  38. 前記第2のパーティは、前記オンラインセッション中に前記第1のパーティに不可視であることを特徴とする請求項37に記載の方法。
  39. 前記第1のパーティは、前記オンラインセッション中に前記第2のパーティに不可視であることを特徴とする請求項37に記載の方法。
  40. 制限する前記ステップは、前記オンラインセッションで前記第2のパーティに関して前記第1のパーティをゴースト化するステップを含むことを特徴とする請求項35に記載の方法。
  41. 前記第1のパーティは、前記オンラインセッション中に前記第2のパーティに不可視であることを特徴とする請求項40に記載の方法。
  42. 前記第2のパーティは、前記オンラインセッション中に前記第1のパーティに不可視であることを特徴とする請求項40に記載の方法。
  43. 制限する前記ステップは、前記第1及び前記第2のパーティの一方から前記第1及び前記第2のパーティの他方へのコミュニケーションを防ぐステップを含むことを特徴とする請求項35に記載の方法。
  44. 制限する前記ステップは、特徴的な情報と関連付けられずに、前記第1および前記第2のパーティの少なくとも一方が、前記オンラインセッション内で他方の状態に影響を及ぼすことができるようにするステップを含むことを特徴とする請求項35に記載の方法。
  45. 前記第1のパーティおよび前記第2のパーティの両方は、前記オンラインセッションに参加できるようにされ、制限する前記ステップは、
    (a)前記第1のパーティが、前記第2のパーティが前記オンラインセッションに参加するのを知るようになることを可能にするステップと、
    (b)前記第1のパーティが前記オンラインセッションに参加していることを前記第2のパーティが判定することを防止するステップと、
    (c)前記第1のパーティと前記第2のパーティとの間の対話が制限されていることを前記第2のパーティが判定することを防止するステップと
    を含むことを特徴とする請求項35に記載の方法。
  46. 制限する前記ステップは、少なくとも、
    (a)前記第2のパーティが前記オンラインセッションに参加することをブロックするステップと、
    (b)前記オンラインセッション内での前記第1のパーティと前記第2のパーティとの間のコミュニケーションを防止するステップと、
    (c)前記オンラインセッションの間に前記第1のパーティに関する識別情報を第2のパーティが受信することを防止するステップと
    を含むことを特徴とする請求項35に記載の方法。
  47. (a)前記オンラインセッションで前記第2のパーティとの対話を制限されなければならない人を示す前記第2のパーティに関するフィルタを作成するステップと、
    (b)前記第1のパーティのインジケータに基づいたテスト結果を作成するステップと、
    (c)前記第1のパーティの前記インジケータに基づく前記テスト結果を前記第2のパーティに関する前記フィルタと比較し、前記第1のパーティが前記第2のパーティに関する前記フィルタで示される前記人の中にあるかどうかを判定し、そうである場合に、前記オンラインセッションでの前記第1のパーティと前記第2のパーティとの間の前記対話を双方向で制限するステップと
    をさらに含むことを特徴とする請求項35に記載の方法。
  48. (a)前記オンラインセッションの参加者を示すユーザフィルタを作成するステップと、
    (b)前記第2のパーティが前記オンラインセッション中に対話を制限することを望む人を示すユーザブロックフィルタを作成するステップと、
    (c)前記ユーザブロックフィルタを前記ユーザフィルタで示される前記参加者と比較し、前記第2のパーティは対話を制限することを求める人は前記オンラインセッションの前記参加者の中にあるかどうかを判定するステップと
    をさらに含むことを特徴とする請求項35に記載の方法。
  49. 前記第2のパーティが前記オンラインセッションの参加者から除外されており、前記第2のパーティが対話の制限を求める人が前記参加者に含まれる場合に、前記オンラインセッションに参加するかどうかを前記第2のパーティが選択的に決定できるようにするステップをさらに含むことを特徴とする請求項48に記載の方法。
  50. 対話を制限する前記ステップは、オンラインセッションホストによって実行されることを特徴とする請求項35に記載の方法。
  51. 請求項35に記載のステップを実行する機械命令を有することを特徴とする記憶媒体。
  52. 請求項36に記載のステップを実行する機械命令を有することを特徴とする記憶媒体。
  53. オンラインセッションに関する第1のパーティと第2のパーティとの間の対話を制限するシステムであって、
    (a)複数の機械命令を記憶するメモリと、
    (b)他のコンピューティング装置と通信して使用される、ネットワークに結合されたネットワークインターフェースと、
    (c)前記メモリおよび前記ネットワークインターフェースに結合されたプロセッサであって、
    (i)前記オンラインセッションでの前記第1のパーティとの対話が制限されなければならない人を示す、前記第1のパーティに関するフィルタにアクセスすることと、
    (ii)前記第2のパーティのインジケータに基づいてテスト結果を判定することと、
    (iii)前記テスト結果を前記フィルタと比較し、前記第2のパーティが前記フィルタによって示される前記人に含まれるかどうかを判定し、そうである場合に、前記オンラインセッションでの前記第1のパーティと前記第2のパーティとの間の対話を制限することと
    を含む複数の機能を実行するために前記機械命令を実行するプロセッサと
    を含むことを特徴とするシステム。
  54. 前記機械命令は、前記プロセッサに、前記第1のパーティに関する前記フィルタを作成させることを特徴とする請求項53に記載のシステム。
  55. 前記プロセッサは、
    (a)前記第2のパーティが前記オンラインセッションに参加することをブロックすることと、
    (b)前記オンラインセッション内での前記第1のパーティと前記第2のパーティとの間のコミュニケーションを防止することと、
    (c)前記オンラインセッション中に前記第1のパーティに関する識別情報を第2のパーティが受信することを防止することと
    の少なくとも1つを行うことによって前記対話を制限することを特徴とする請求項53に記載のシステム。
  56. 前記プロセッサは、前記オンラインセッションで前記第1のパーティに対して前記第2のパーティをゴースト化することによって対話を制限することを特徴とする請求項53に記載のシステム。
  57. 前記プロセッサは、前記オンラインセッションで前記第2のパーティに対して前記第1のパーティをゴースト化することによって対話を制限することを特徴とする請求項53に記載のシステム。
  58. 前記プロセッサは、前記オンラインセッション中に前記第1のパーティと前記第2のパーティとの間のコミュニケーションを防止することによって対話を制限することを特徴とする請求項53に記載のシステム。
  59. 前記プロセッサは、特徴的な情報と関連付けられずに、前記第1及び前記第2のパーティの少なくとも一方は、前記オンラインセッション内で他方の状態に影響を及ぼすことができるようにすることによって対話を制限することを特徴とする請求項53に記載のシステム。
  60. 前記機械命令によって、前記プロセッサは、前記第1のパーティおよび前記第2のパーティの両方が前記オンラインセッションに参加できるようにし、前記プロセッサは、
    (a)前記第1のパーティが、前記第2のパーティが前記オンラインセッションに参加することを知るようになることを可能にすることと、
    (b)前記第1のパーティが前記オンラインセッションに参加していることを前記第2のパーティが判定することを防止することと、
    (c)前記第1のパーティと前記第2のパーティとの間の対話は制限されていることを前記第2のパーティが判定することを防止することと
    によって対話を制限することを特徴とする請求項53に記載のシステム。
  61. オンラインセッションの参加者の間の対話を前記参加者のブロックリストに基づいて制御する方法であって、参加者のブロックリストは、オンラインセッションでの前記参加者との対話を特定の形で制御されなければならない1人または複数の人を識別し、
    (a)前記オンラインセッションの参加者のユーザブロックリストからセッションブロックフィルタを作成するステップであって、参加者の各ユーザブロックリストは、前記オンラインセッションで前記参加者との対話を前記特定の形で制御されなければならない前記ユーザブロックリスト内の各人の固有識別子を含み、前記セッションブロックフィルタは、前記参加者の前記ユーザブロックリストで識別されるすべての人を表す、ステップと、
    (b)参加予定者を前記オンラインセッションの前記セッションブロックフィルタで表される前記人と比較し、参加予定者による前記オンラインセッションの参加者との対話が前記特定の形で制御されなければならないかどうかを判定し、そうである場合に、前記オンラインセッションの参加予定者と参加者との間の対話を制御するために適用される第1の動作を実行するステップと
    を含むことを特徴とする方法。
  62. (a)前記オンラインセッションの全参加者を表すユーザフィルタを作成するステップであって、各参加者は、固有識別子によって示される、ステップと、
    (b)前記オンラインセッションでの参加予定者との対話を前記特定の形で制御されなければならない人を表すために参加予定者に関するユーザブロックフィルタを作成するステップと、
    (c)参加予定者の前記ユーザブロックフィルタで示される前記人を前記オンラインセッションの前記参加者に関する前記ユーザフィルタと比較し、前記オンラインセッションの参加者が参加予定者の前記ユーザブロックリストに含まれるかどうかを判定し、そうである場合に、第2の動作を適用して、前記オンラインセッションでの参加予定者と参加者との間の対話をさらに制御するステップと
    をさらに含むことを特徴とする請求項61に記載の方法。
  63. オンラインセッションの参加者の間の対話を制御する方法であって、
    (a)前記オンラインセッションの全参加者を表すユーザフィルタを作成するステップであって、各参加者は、固有識別子によって示される、ステップと、
    (b)前記オンラインセッションでの参加予定者との対話を前記特定の形で制御されなければならない人を表すために前記参加予定者に関するユーザブロックフィルタを作成するステップと、
    (c)前記参加予定者の前記ユーザブロックフィルタで示される前記人を前記オンラインセッションの前記参加者に関する前記ユーザフィルタと比較し、前記オンラインセッションの参加者が前記参加予定者の前記ユーザブロックリストに含まれるかどうかを判定し、そうである場合に、第1の動作を適用して、前記オンラインセッションでの前記参加予定者と参加者との間の対話を制御するステップと
    を含むことを特徴とする方法。
  64. (a)前記オンラインセッションの参加者のユーザブロックリストからセッションブロックフィルタを作成するステップであって、参加者の各ユーザブロックリストは、前記オンラインセッションで前記参加者との対話を前記特定の形で制御されなければならない前記ユーザブロックリスト内の各人の固有識別子を含み、前記セッションブロックフィルタは、前記参加者の前記ユーザブロックリストで識別されるすべての人を表す、ステップと、
    (b)前記参加予定者を前記オンラインセッションの前記セッションブロックフィルタで表される前記人と比較し、前記参加予定者による前記オンラインセッションの参加者との対話が前記特定の形で制御されなければならないかどうかを判定し、そうである場合に、第2の動作を適用して、前記オンラインセッションの前記参加予定者と参加者との間の対話をさらに制御するステップと
    をさらに含むことを特徴とする請求項62に記載の方法。
JP2004176217A 2004-06-14 2004-06-14 ネットワーク化されたセッションにおけるパーティ間の対話の制限 Expired - Fee Related JP4583078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004176217A JP4583078B2 (ja) 2004-06-14 2004-06-14 ネットワーク化されたセッションにおけるパーティ間の対話の制限

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004176217A JP4583078B2 (ja) 2004-06-14 2004-06-14 ネットワーク化されたセッションにおけるパーティ間の対話の制限

Publications (2)

Publication Number Publication Date
JP2005353012A true JP2005353012A (ja) 2005-12-22
JP4583078B2 JP4583078B2 (ja) 2010-11-17

Family

ID=35587420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004176217A Expired - Fee Related JP4583078B2 (ja) 2004-06-14 2004-06-14 ネットワーク化されたセッションにおけるパーティ間の対話の制限

Country Status (1)

Country Link
JP (1) JP4583078B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007201928A (ja) * 2006-01-27 2007-08-09 Kyocera Corp 通信システム、無線通信端末及び表示制御方法
JP2008083835A (ja) * 2006-09-26 2008-04-10 Softbank Mobile Corp コミュニケーションシステム、コミュニケーションプログラムおよびコミュニケーション方法
JP2010530287A (ja) * 2007-06-21 2010-09-09 マイクロソフト コーポレーション ライブ・ゲーム・ロビー

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040197A (ja) * 1996-07-19 1998-02-13 Fujitsu Ltd 通信管理装置
JP2002140278A (ja) * 2000-10-31 2002-05-17 Sony Corp 情報処理装置および方法、並びに記録媒体
JP2002153677A (ja) * 2000-11-17 2002-05-28 Square Co Ltd 情報端末、情報提供サーバ、オンラインゲーム方法および記録媒体
JP2004151966A (ja) * 2002-10-30 2004-05-27 Nec Corp サーバ、コミュニティサービス用サーバ、そのシステム、サービス方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040197A (ja) * 1996-07-19 1998-02-13 Fujitsu Ltd 通信管理装置
JP2002140278A (ja) * 2000-10-31 2002-05-17 Sony Corp 情報処理装置および方法、並びに記録媒体
JP2002153677A (ja) * 2000-11-17 2002-05-28 Square Co Ltd 情報端末、情報提供サーバ、オンラインゲーム方法および記録媒体
JP2004151966A (ja) * 2002-10-30 2004-05-27 Nec Corp サーバ、コミュニティサービス用サーバ、そのシステム、サービス方法及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007201928A (ja) * 2006-01-27 2007-08-09 Kyocera Corp 通信システム、無線通信端末及び表示制御方法
JP4693641B2 (ja) * 2006-01-27 2011-06-01 京セラ株式会社 通信システム、無線通信端末及び表示制御方法
JP2008083835A (ja) * 2006-09-26 2008-04-10 Softbank Mobile Corp コミュニケーションシステム、コミュニケーションプログラムおよびコミュニケーション方法
JP2010530287A (ja) * 2007-06-21 2010-09-09 マイクロソフト コーポレーション ライブ・ゲーム・ロビー

Also Published As

Publication number Publication date
JP4583078B2 (ja) 2010-11-17

Similar Documents

Publication Publication Date Title
KR101130495B1 (ko) 네트워크 세션의 가입자들 간의 상호 작용 제한
US6905414B2 (en) Banning verbal communication to and from a selected party in a game playing system
US7503006B2 (en) Visual indication of current voice speaker
JP5129940B2 (ja) ロールプレイシステム
RU2419844C2 (ru) Настройка интерактивных игровых сеансов внеигрового контекста
EP1519531A2 (en) Server control of peer to peer communications
US8650253B2 (en) System and method for integrating ancillary content into applications
US8944917B2 (en) Multi-tier online game play
JP2004062865A (ja) 自動フィードバックとプレーヤ拒否の方法およびシステム
US20040093372A1 (en) Challenge and response interaction between client and server computing devices
KR20080086881A (ko) 컴퓨터-기반 게임 그룹 상호작용을 위한 방법, 컴퓨터-기반게임 환경 내에서의 그룹 상호작용을 위한 시스템 및 게임콘솔
US20100035692A1 (en) Avatar closet/ game awarded avatar
US8152644B2 (en) Data stream processing
JP2010523206A (ja) コンテキストゲーマーオプションメニュー
WO2022095741A1 (zh) 获取游戏道具的方法和装置
JP4583078B2 (ja) ネットワーク化されたセッションにおけるパーティ間の対話の制限
JP6069637B2 (ja) ゲーム機、それに用いられる制御方法及びコンピュータプログラム
US9056250B2 (en) Systems and methods for handling communication events in a computer gaming system
WO2012081302A1 (ja) ゲームシステム、ゲームシステムの制御方法、プログラム及び情報記憶媒体
Bura et al. Making Multiplayer Games

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100824

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100831

R150 Certificate of patent or registration of utility model

Ref document number: 4583078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees