(57)【要約】【課題】  フィルタを使用してオンラインセッションの参加者の間の対話を制御。【解決手段】  オンラインセッションの各参加者は、オンラインセッションで対話を制限することを望む他のユーザのリストを有する。各リストは、ハッシュされて参加者のフィルタが作成される。ブロックのために、オンラインセッションのホストは、セッションの全参加者のフィルタの論理ＯＲをとってセッションフィルタを作成する。オンラインセッションの現在の参加者の各識別子をハッシュしてユーザフィルタを作成する。オンラインセッションのホストはセッションフィルタを検査して参加予定者がブロックされるかどうかを決定する。ブロックされない場合、ユーザフィルタは参加予定者に送信されて、ブロックフィルタに対して検査される。【選択図】  図８
2005353012.tif 000002
【特許請求の範囲】
【請求項１】
オンラインセッションの参加者の間での対話を前記参加者のブロックリストに基づいて制御する方法であって、参加者のブロックリストは、オンラインセッションでの前記参加者との対話を特定の形で制御されなければならない１人または複数の人を識別し、
（ａ）前記オンラインセッションの前記参加者のユーザブロックリストからセッションブロックフィルタを作成するステップであって、参加者の各ユーザブロックリストは、前記オンラインセッションでの前記参加者との対話は前記特定の形で制御されなければならない前記ユーザブロックリスト内の人ごとに固有識別子を含み、前記セッションブロックフィルタは、前記参加者のユーザブロックリスト内で識別されるすべての人を表す、ステップと、
（ｂ）前記オンラインセッションのすべての参加者を表すユーザフィルタを作成するステップであって、各参加者は、固有識別子を用いて示される、ステップと、
（ｃ）参加予定者を前記オンラインセッションの前記セッションブロックフィルタ内で表される人と比較して、参加予定者による前記オンラインセッションの参加者との対話を前記特定の形で制御しなければならないかどうかを判定し、そうである場合に、第１の動作を行うステップと、
（ｄ）参加予定者に関するユーザブロックフィルタを作成し、前記オンラインセッションで参加予定者との対話を前記特定の形で制御されなければならない人を表すステップと、
（ｅ）参加予定者の前記ユーザブロックフィルタで示される人を前記オンラインセッションの前記参加者に関する前記ユーザフィルタと比較し、前記オンラインセッションの参加者は参加予定者の前記ユーザブロックリストに含まれるかどうかを判定し、そうである場合に、第２の動作を行うステップであって、前記第１の動作および前記第２の動作を適用して、前記オンラインセッションの参加予定者と参加者との間の対話を制御するステップと
を含むことを特徴とする方法。
【請求項２】
前記第１の動作を行う前記ステップは、参加予定者が前記オンラインセッションに参加することをブロックするステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２の動作を行う前記ステップは、参加予定者が参加できる別のオンラインセッションを判定することを試みるステップを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記第２の動作を行う前記ステップは、前記第１の動作は行われない場合に限って行われ、参加予定者が前記オンラインセッションに参加することをブロックするステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第２の動作を行う前記ステップは、前記第１の動作は行われない場合に限って行われ、参加予定者が前記オンラインセッションに参加するかどうかを選択的に決定できるようにするステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
参加予定者が参加するかどうかを選択的に決定できるようにする前記ステップは、参加予定者が、参加する他のオンラインセッションを見つけられない場合に限って生じることを特徴とする請求項５に記載の方法。
【請求項７】
前記第１の動作を実行する前記ステップは、前記オンラインセッション中に、参加予定者を、参加者のユーザブロックリストに前記参加予定者を含めた前記参加者に対して、ゴースト化するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記第２の動作を実行する前記ステップは、前記オンラインセッション中に、参加予定者を、前記参加予定者のユーザブロックリストに含まれた参加者に対して、ゴースト化するステップを含むことを特徴とする請求項７に記載の方法。
【請求項９】
ゴースト化する前記ステップは、前記オンラインセッションでのゴースト化された参加者とゴースト化する参加者との間の識別情報の通信および転送を防止するステップを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
ゴースト化されたすべての参加者が前記ゴースト化する参加者の識別表示を判定するのを妨げるステップをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記セッションブロックフィルタは、前記ユーザブロックリスト内の人のそれぞれの前記固有識別子に関連するが異なる数学関数を反復して適用することによって決定される前記セッションブロックフィルタ内のビット位置をセットすることによって、前記参加者の前記ユーザブロックリスト内で識別されるすべての人を表し、前記ユーザフィルタは、前記オンラインセッションの各参加者の前記固有識別子に前記関連するが異なる数学関数を反復して適用することによって決定される、前記ユーザフィルタ内でセットされるビット位置を含み、参加予定者を前記セッションブロックフィルタ内で表される人と比較する前記ステップは、
（ａ）前記オンラインセッションの参加予定者の固有識別子に前記関連するが異なる数学関数を反復して適用して、前記セッションブロックフィルタ内の対応するビット位置を判定するステップと、
（ｂ）参加予定者について判定された前記対応するビット位置を、前記オンラインセッションの前記セッションブロックフィルタ内でセットされたビット位置と比較するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記関連するが異なる数学関数は、ハッシュを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
参加予定者について判定された前記対応するビット位置を比較する前記ステップは、マッチメーキングサーバ、セッションホスト、および参加予定者とピアツーピアであるコンピューティング装置の１つで実行されることを特徴とする請求項１１に記載の方法。
【請求項１４】
参加予定者について判定された前記対応するビット位置は、前記セッションブロックフィルタ内でセットされている場合に、参加予定者は前記オンラインセッションの少なくとも１人の参加者のユーザブロックリストに含まれるかなりの可能性はあるが、参加予定者について判定された前記対応するビット位置のいずれかは、前記セッションブロックフィルタ内でセットされていない場合に、参加予定者は前記オンラインセッションの参加者のすべてのユーザブロックリストに含まれないことを特徴とする請求項１１に記載の方法。
【請求項１５】
前記セッションの参加者が参加予定者の前記ユーザブロックリストに現れる場合であっても、参加者予定者がセッションに加わることを許可するオプションを前記オンラインセッション内で選択的に有効にするステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１６】
前記オンラインセッションは、ネットワークを介して前記参加者によってプレイされるゲームを含むことを特徴とする請求項１に記載の方法。
【請求項１７】
請求項１に記載のステップを実行する機械命令を有することを特徴とする記憶媒体。
【請求項１８】
オンラインセッションの参加者の間での対話を前記参加者のユーザブロックリストに基づいて制御するシステムであって、参加者のユーザブロックリストは、オンラインセッションでの前記参加者との対話を特定の形で制御されなければならない１人または複数の人を識別し、
（ａ）複数のコンピューティング装置であって、各コンピューティング装置は、前記オンラインセッションの少なくとも１人の参加者に関連し、機械命令が記憶されたメモリに結合されたプロセッサを含み、前記複数のコンピューティング装置のそれぞれは、その中のプロセッサに結合され、ネットワークを形成するために通信で接続されるインターフェース装置を含み、前記複数のコンピューティング装置の少なくとも１つは、前記オンラインセッション内で参加予定者に関連する、複数のコンピューティング装置と、
（ｂ）１つまたは複数のメモリに記憶された機械命令を実行して複数の機能を実行する、前記複数のコンピューティング装置内の１つまたは複数のプロセッサであって、
（ｉ）前記オンラインセッションの前記参加者の前記ユーザブロックリストからセッションブロックフィルタを作成することであって、参加者の各ユーザブロックリストは、前記オンラインセッションでの前記参加者との対話は前記特定の形で制御されなければならない前記ユーザブロックリスト内の人ごとに固有識別子を含み、前記セッションブロックフィルタは、前記参加者の前記ユーザブロックリスト内で識別されるすべての人を表し、
（ｉｉ）前記オンラインセッションのすべての参加者を表すユーザフィルタを作成することであって、各参加者は、固有識別子を用いて示され、
（ｉｉｉ）前記参加予定者を前記オンラインセッションの前記セッションブロックフィルタ内で識別される人と比較し、前記参加予定者による前記オンラインセッションの参加者との対話を前記特定の形で制御しなければならないかどうかを判定し、そうである場合に、第１の動作を行うことと、
（ｉｖ）前記オンラインセッションで前記参加予定者との対話を前記特定の形で制御されなければならない人を表すために前記参加予定者に関するユーザブロックフィルタを作成することと、
（ｖ）前記参加予定者の前記ユーザブロックフィルタで示される前記人を前記オンラインセッションの前記参加者に関する前記ユーザフィルタと比較し、前記オンラインセッションの参加者は前記参加予定者の前記ユーザブロックリストに含まれるかどうかを判定し、そうである場合に、第２の動作を行うことであって、前記第１の動作および前記第２の動作を適用して、前記オンラインセッションの前記参加予定者と参加者との間の対話を制御することと
を含むことを特徴とするシステム。
【請求項１９】
前記セッションブロックフィルタは、
（ａ）前記オンラインセッションのマッチメーキングサーバコンピューティング装置、
（ｂ）前記オンラインセッションのセッションホストコンピューティング装置、
（ｃ）参加者コンピューティング装置
の１つである前記複数のコンピューティング装置の間のコンピューティング装置によって作成されることを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記ユーザブロックフィルタは、
（ａ）前記オンラインセッションのマッチメーキングサーバコンピューティング装置、
（ｂ）前記オンラインセッションのセッションホストコンピューティング装置、
（ｃ）参加者コンピューティング装置
の１つである前記複数のコンピューティング装置の間のコンピューティング装置によって作成されることを特徴とする請求項１８に記載のシステム。
【請求項２１】
前記第１の動作を実行することは、前記参加予定者が前記オンラインセッションに参加することをブロックすることを含むことを特徴とする請求項１８に記載のシステム。
【請求項２２】
前記第２の動作を実行することは、前記参加予定者が参加できる別のオンラインセッションを判定することを試みることを含むことを特徴とする請求項１８に記載のシステム。
【請求項２３】
前記第２の動作は、前記第１の動作が行われない場合に限って行われ、前記参加予定者が前記オンラインセッションに参加することをブロックすることを含むことを特徴とする請求項１８に記載のシステム。
【請求項２４】
前記第２の動作は、前記第１の動作が行われない場合に限って行われ、前記参加予定者が前記オンラインセッションに参加するかどうかを選択的に決定できるようにすることを含むことを特徴とする請求項１８に記載のシステム。
【請求項２５】
前記参加予定者が、参加する他のオンラインセッションを見つけられない場合に限って、前記参加予定者は、参加するかどうかを選択的に決定できることを特徴とする請求項２４に記載のシステム。
【請求項２６】
前記第１の動作は、前記オンラインセッション中に、参加予定者を、参加者のユーザブロックリストに前記参加予定者を含めた前記参加者に対して、ゴースト化することを含むことを特徴とする請求項１８に記載のシステム。
【請求項２７】
前記第２の動作は、前記オンラインセッション中に、参加予定者を、前記参加予定者の前記ユーザブロックリストに含まれた参加者に対して、ゴースト化することを含むことを特徴とする請求項２６に記載のシステム。
【請求項２８】
ゴースト化することは、前記オンラインセッションでのゴースト化された参加者とゴースト化する参加者との間の識別情報の通信および転送を防止することを含むことを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記機械命令は、前記プロセッサが、ゴースト化された参加者が前記ゴースト化する参加者の識別表示を判定するのを妨げることを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記セッションブロックフィルタは、前記ユーザブロックリスト内の人のそれぞれの前記固有識別子に関連するが異なる数学関数を反復して適用することによって決定される前記セッションブロックフィルタ内のビット位置をセットすることによって、前記参加者の前記ユーザブロックリスト内で識別されるすべての人を表し、前記ユーザフィルタは、前記オンラインセッションの各参加者の前記固有識別子に前記関連するが異なる数学関数を反復して適用することによって決定される、前記ユーザフィルタ内でセットされるビット位置を含み、
（ａ）前記オンラインセッションの前記参加予定者の固有識別子に前記関連するが異なる数学関数を反復して適用して、前記セッションブロックフィルタ内の対応するビット位置を判定することと、
（ｂ）前記参加予定者について判定された前記対応するビット位置を、前記オンラインセッションの前記セッションブロックフィルタ内でセットされたビット位置と比較することと
によって、前記参加予定者を前記セッションブロックフィルタ内で表される人と比較することを特徴とする請求項１８に記載のシステム。
【請求項３１】
前記関連するが異なる数学関数は、ハッシュを含むことを特徴とする請求項３０に記載のシステム。
【請求項３２】
前記参加予定者について判定された前記対応するビット位置を比較することは、マッチメーキングサーバコンピューティング装置、セッションホストコンピューティング装置、および前記参加予定者のコンピューティング装置とピアツーピアであるコンピューティング装置の１つで実行されることを特徴とする請求項３０に記載のシステム。
【請求項３３】
参加予定者について判定された前記対応するビット位置は、前記セッションブロックフィルタ内でセットされている場合に、参加予定者は前記オンラインセッションの少なくとも１人の参加者のユーザブロックリストに含まれるかなりの可能性はあるが、参加予定者について判定された前記対応するビット位置のいずれかは、前記セッションブロックフィルタ内でセットされていない場合に、参加予定者は前記オンラインセッションの参加者のすべてのユーザブロックリストに含まれないことを特徴とする請求項３０に記載のシステム。
【請求項３４】
前記オンラインセッションは、ネットワークを介して前記参加者によってプレイされるゲームを含むことを特徴とする請求項１８に記載のシステム。
【請求項３５】
オンラインセッションに関する第１のパーティと第２のパーティとの間の対話を制限する方法であって、
（ａ）前記オンラインセッションでの前記第１のパーティとの対話が制限されなければならない人を示す、前記第１のパーティのフィルタを作成するステップと、
（ｂ）前記第２のパーティに関するインジケータに基づいてテスト結果を作成するステップと、
（ｃ）前記テスト結果と前記フィルタを比較して、前記第２のパーティが前記フィルタ内で示される前記人の間に含まれるかどうかを判定し、そうである場合に、前記オンラインセッションでの前記第１のパーティと前記第２のパーティとの間の対話を制限するステップと
を含むことを特徴とする方法。
【請求項３６】
制限する前記ステップは、前記第１のパーティを含む前記オンラインセッションへの前記第２のパーティの参加をブロックするステップを含むことを特徴とする請求項３５に記載の方法。
【請求項３７】
制限する前記ステップは、前記オンラインセッションで前記第１のパーティに対して前記第２のパーティをゴースト化するステップを含むことを特徴とする請求項３５に記載の方法。
【請求項３８】
前記第２のパーティは、前記オンラインセッション中に前記第１のパーティに不可視であることを特徴とする請求項３７に記載の方法。
【請求項３９】
前記第１のパーティは、前記オンラインセッション中に前記第２のパーティに不可視であることを特徴とする請求項３７に記載の方法。
【請求項４０】
制限する前記ステップは、前記オンラインセッションで前記第２のパーティに関して前記第１のパーティをゴースト化するステップを含むことを特徴とする請求項３５に記載の方法。
【請求項４１】
前記第１のパーティは、前記オンラインセッション中に前記第２のパーティに不可視であることを特徴とする請求項４０に記載の方法。
【請求項４２】
前記第２のパーティは、前記オンラインセッション中に前記第１のパーティに不可視であることを特徴とする請求項４０に記載の方法。
【請求項４３】
制限する前記ステップは、前記第１及び前記第２のパーティの一方から前記第１及び前記第２のパーティの他方へのコミュニケーションを防ぐステップを含むことを特徴とする請求項３５に記載の方法。
【請求項４４】
制限する前記ステップは、特徴的な情報と関連付けられずに、前記第１および前記第２のパーティの少なくとも一方が、前記オンラインセッション内で他方の状態に影響を及ぼすことができるようにするステップを含むことを特徴とする請求項３５に記載の方法。
【請求項４５】
前記第１のパーティおよび前記第２のパーティの両方は、前記オンラインセッションに参加できるようにされ、制限する前記ステップは、
（ａ）前記第１のパーティが、前記第２のパーティが前記オンラインセッションに参加するのを知るようになることを可能にするステップと、
（ｂ）前記第１のパーティが前記オンラインセッションに参加していることを前記第２のパーティが判定することを防止するステップと、
（ｃ）前記第１のパーティと前記第２のパーティとの間の対話が制限されていることを前記第２のパーティが判定することを防止するステップと
を含むことを特徴とする請求項３５に記載の方法。
【請求項４６】
制限する前記ステップは、少なくとも、
（ａ）前記第２のパーティが前記オンラインセッションに参加することをブロックするステップと、
（ｂ）前記オンラインセッション内での前記第１のパーティと前記第２のパーティとの間のコミュニケーションを防止するステップと、
（ｃ）前記オンラインセッションの間に前記第１のパーティに関する識別情報を第２のパーティが受信することを防止するステップと
を含むことを特徴とする請求項３５に記載の方法。
【請求項４７】
（ａ）前記オンラインセッションで前記第２のパーティとの対話を制限されなければならない人を示す前記第２のパーティに関するフィルタを作成するステップと、
（ｂ）前記第１のパーティのインジケータに基づいたテスト結果を作成するステップと、
（ｃ）前記第１のパーティの前記インジケータに基づく前記テスト結果を前記第２のパーティに関する前記フィルタと比較し、前記第１のパーティが前記第２のパーティに関する前記フィルタで示される前記人の中にあるかどうかを判定し、そうである場合に、前記オンラインセッションでの前記第１のパーティと前記第２のパーティとの間の前記対話を双方向で制限するステップと
をさらに含むことを特徴とする請求項３５に記載の方法。
【請求項４８】
（ａ）前記オンラインセッションの参加者を示すユーザフィルタを作成するステップと、
（ｂ）前記第２のパーティが前記オンラインセッション中に対話を制限することを望む人を示すユーザブロックフィルタを作成するステップと、
（ｃ）前記ユーザブロックフィルタを前記ユーザフィルタで示される前記参加者と比較し、前記第２のパーティは対話を制限することを求める人は前記オンラインセッションの前記参加者の中にあるかどうかを判定するステップと
をさらに含むことを特徴とする請求項３５に記載の方法。
【請求項４９】
前記第２のパーティが前記オンラインセッションの参加者から除外されており、前記第２のパーティが対話の制限を求める人が前記参加者に含まれる場合に、前記オンラインセッションに参加するかどうかを前記第２のパーティが選択的に決定できるようにするステップをさらに含むことを特徴とする請求項４８に記載の方法。
【請求項５０】
対話を制限する前記ステップは、オンラインセッションホストによって実行されることを特徴とする請求項３５に記載の方法。
【請求項５１】
請求項３５に記載のステップを実行する機械命令を有することを特徴とする記憶媒体。
【請求項５２】
請求項３６に記載のステップを実行する機械命令を有することを特徴とする記憶媒体。
【請求項５３】
オンラインセッションに関する第１のパーティと第２のパーティとの間の対話を制限するシステムであって、
（ａ）複数の機械命令を記憶するメモリと、
（ｂ）他のコンピューティング装置と通信して使用される、ネットワークに結合されたネットワークインターフェースと、
（ｃ）前記メモリおよび前記ネットワークインターフェースに結合されたプロセッサであって、
（ｉ）前記オンラインセッションでの前記第１のパーティとの対話が制限されなければならない人を示す、前記第１のパーティに関するフィルタにアクセスすることと、
（ｉｉ）前記第２のパーティのインジケータに基づいてテスト結果を判定することと、
（ｉｉｉ）前記テスト結果を前記フィルタと比較し、前記第２のパーティが前記フィルタによって示される前記人に含まれるかどうかを判定し、そうである場合に、前記オンラインセッションでの前記第１のパーティと前記第２のパーティとの間の対話を制限することと
を含む複数の機能を実行するために前記機械命令を実行するプロセッサと
を含むことを特徴とするシステム。
【請求項５４】
前記機械命令は、前記プロセッサに、前記第１のパーティに関する前記フィルタを作成させることを特徴とする請求項５３に記載のシステム。
【請求項５５】
前記プロセッサは、
（ａ）前記第２のパーティが前記オンラインセッションに参加することをブロックすることと、
（ｂ）前記オンラインセッション内での前記第１のパーティと前記第２のパーティとの間のコミュニケーションを防止することと、
（ｃ）前記オンラインセッション中に前記第１のパーティに関する識別情報を第２のパーティが受信することを防止することと
の少なくとも１つを行うことによって前記対話を制限することを特徴とする請求項５３に記載のシステム。
【請求項５６】
前記プロセッサは、前記オンラインセッションで前記第１のパーティに対して前記第２のパーティをゴースト化することによって対話を制限することを特徴とする請求項５３に記載のシステム。
【請求項５７】
前記プロセッサは、前記オンラインセッションで前記第２のパーティに対して前記第１のパーティをゴースト化することによって対話を制限することを特徴とする請求項５３に記載のシステム。
【請求項５８】
前記プロセッサは、前記オンラインセッション中に前記第１のパーティと前記第２のパーティとの間のコミュニケーションを防止することによって対話を制限することを特徴とする請求項５３に記載のシステム。
【請求項５９】
前記プロセッサは、特徴的な情報と関連付けられずに、前記第１及び前記第２のパーティの少なくとも一方は、前記オンラインセッション内で他方の状態に影響を及ぼすことができるようにすることによって対話を制限することを特徴とする請求項５３に記載のシステム。
【請求項６０】
前記機械命令によって、前記プロセッサは、前記第１のパーティおよび前記第２のパーティの両方が前記オンラインセッションに参加できるようにし、前記プロセッサは、
（ａ）前記第１のパーティが、前記第２のパーティが前記オンラインセッションに参加することを知るようになることを可能にすることと、
（ｂ）前記第１のパーティが前記オンラインセッションに参加していることを前記第２のパーティが判定することを防止することと、
（ｃ）前記第１のパーティと前記第２のパーティとの間の対話は制限されていることを前記第２のパーティが判定することを防止することと
によって対話を制限することを特徴とする請求項５３に記載のシステム。
【請求項６１】
オンラインセッションの参加者の間の対話を前記参加者のブロックリストに基づいて制御する方法であって、参加者のブロックリストは、オンラインセッションでの前記参加者との対話を特定の形で制御されなければならない１人または複数の人を識別し、
（ａ）前記オンラインセッションの参加者のユーザブロックリストからセッションブロックフィルタを作成するステップであって、参加者の各ユーザブロックリストは、前記オンラインセッションで前記参加者との対話を前記特定の形で制御されなければならない前記ユーザブロックリスト内の各人の固有識別子を含み、前記セッションブロックフィルタは、前記参加者の前記ユーザブロックリストで識別されるすべての人を表す、ステップと、
（ｂ）参加予定者を前記オンラインセッションの前記セッションブロックフィルタで表される前記人と比較し、参加予定者による前記オンラインセッションの参加者との対話が前記特定の形で制御されなければならないかどうかを判定し、そうである場合に、前記オンラインセッションの参加予定者と参加者との間の対話を制御するために適用される第１の動作を実行するステップと
を含むことを特徴とする方法。
【請求項６２】
（ａ）前記オンラインセッションの全参加者を表すユーザフィルタを作成するステップであって、各参加者は、固有識別子によって示される、ステップと、
（ｂ）前記オンラインセッションでの参加予定者との対話を前記特定の形で制御されなければならない人を表すために参加予定者に関するユーザブロックフィルタを作成するステップと、
（ｃ）参加予定者の前記ユーザブロックフィルタで示される前記人を前記オンラインセッションの前記参加者に関する前記ユーザフィルタと比較し、前記オンラインセッションの参加者が参加予定者の前記ユーザブロックリストに含まれるかどうかを判定し、そうである場合に、第２の動作を適用して、前記オンラインセッションでの参加予定者と参加者との間の対話をさらに制御するステップと
をさらに含むことを特徴とする請求項６１に記載の方法。
【請求項６３】
オンラインセッションの参加者の間の対話を制御する方法であって、
（ａ）前記オンラインセッションの全参加者を表すユーザフィルタを作成するステップであって、各参加者は、固有識別子によって示される、ステップと、
（ｂ）前記オンラインセッションでの参加予定者との対話を前記特定の形で制御されなければならない人を表すために前記参加予定者に関するユーザブロックフィルタを作成するステップと、
（ｃ）前記参加予定者の前記ユーザブロックフィルタで示される前記人を前記オンラインセッションの前記参加者に関する前記ユーザフィルタと比較し、前記オンラインセッションの参加者が前記参加予定者の前記ユーザブロックリストに含まれるかどうかを判定し、そうである場合に、第１の動作を適用して、前記オンラインセッションでの前記参加予定者と参加者との間の対話を制御するステップと
を含むことを特徴とする方法。
【請求項６４】
（ａ）前記オンラインセッションの参加者のユーザブロックリストからセッションブロックフィルタを作成するステップであって、参加者の各ユーザブロックリストは、前記オンラインセッションで前記参加者との対話を前記特定の形で制御されなければならない前記ユーザブロックリスト内の各人の固有識別子を含み、前記セッションブロックフィルタは、前記参加者の前記ユーザブロックリストで識別されるすべての人を表す、ステップと、
（ｂ）前記参加予定者を前記オンラインセッションの前記セッションブロックフィルタで表される前記人と比較し、前記参加予定者による前記オンラインセッションの参加者との対話が前記特定の形で制御されなければならないかどうかを判定し、そうである場合に、第２の動作を適用して、前記オンラインセッションの前記参加予定者と参加者との間の対話をさらに制御するステップと
をさらに含むことを特徴とする請求項６２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームなどのオンラインセッションにおける人々の対話を制御する技術に関し、具体的には、各人物を表すデータを備えるフィルタと参加予定者を表す対応データとの比較結果を受けて、オンラインセッションの参加者が対話をしたくない人物に対して、ブロック、および／またはゴースティング（ｇｈｏｓｔｉｎｇ）、および／またはミューティング（ｍｕｔｉｎｇ）のいずれかを行うことに関する。
【背景技術】
【０００２】
１人または複数の他の人と一緒に非電子ゲームをする際、社会的対話（ｓｏｃｉａｌ  ｉｎｔｅｒａｃｔｉｏｎ）をたくさん行うことにより、プレイヤーの楽しみは増す。言語コミュニケーションもまた、ゲームプレイの要素である。なぜならば、ゲーム中にプレイヤーが敵に対して行う批評は、敵の集中力を失わせ、下手に行動させることができ、これに対して、チームメンバに対する批評は元気を与え、これによってプレイの質が高まるからである。したがって、ゲームをプレイする人々のコミュニケーションおよびその他の形式の対話は、ゲーム体験上、明らかに重要な要素である。
【０００３】
ゲームプレイにとって重要なプレイヤー同士の言葉のやり取りは、インターネットおよび他のネットワークリンクを介してプレイする電子ゲームの重要な要素になった。現在では、異なるサイトにいるプレイヤーは、インターネットまたは他のネットワークを使った音声伝達（すなわちボイスオーバーＩＰ）用に開発された技術と類似する技術を利用することにより、言葉を使ってお互いにコミュニケーションをとることができる。機能の多くおよびボイスオーバーＩＰの技術の多くは、電子ゲームのプレイヤーがネットワークを介して言語コミュニケーション（ｖｅｒｂａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）を行う方式に適用可能であり、また、使用されてきた。言語コミュニケーションは、インターネットおよび他のネットワークを介してゲームする楽しみを増す。システムは、音声データがコンピューティング装置間で直接ネットワークを介して転送されるピアツーピアモードで動作することができ、あるいは、音声サーバを使用して、１のゲームプレイヤーコンピュータから音声データを受信し、この音声データを、ネットワークを介してゲームをプレイするためにネットワークに接続された１つまたは複数の他のコンピュータに転送する。
【０００４】
各パーソナルコンピュータ（ＰＣ）が１人のプレイヤーだけをサポートするＰＣゲームシステムとは対照的に、マルチプレイヤーゲーム機（ｍｕｌｔｉｐｌａｙｅｒ  ｇａｍｅ  ｃｏｎｓｏｌｅ）は、各ゲーム機上で複数のプレイヤーをサポートする。音声通信システムは、１つのゲームをプレイする複数ユーザの言語コミュニケーションを可能にするゲーム機のために開発された。言語コミュニケーションは、同一のゲーム機のプレイヤーの間で行われるか、あるいは、直接またはインターネットなどのネットワークを介した通信によって結合される異なるゲーム機のプレイヤーの間で行われる。
【０００５】
一般的にゲームプレイ中の言語コミュニケーションは魅力的な特徴ではあるが、特定のユーザによってそれが濫用または悪用されると、ゲームをする１人または複数の他のプレイヤーが不快な思いをする場合がある。プレイヤーを不快にさせる原因は、特定のプレイヤーによる口汚いののしりまたは性的にあからさまな表現の使用の繰り返し、あるいは、プレイヤーが社会的に容認できないと感じる表現または批評である。プレイヤーは、ある種の口の利き方に対して各々違った反応を示すので、特定のプレイヤーと言語コミュニケーションを行うことによってプレイヤーが不快な思いをする原因は、実質的に限りない。そうは言うものの、特定のプレイヤーの言語コミュニケーションを不快と感じるプレイヤーが、さらなる言語コミュニケーション及び／又はその特定の他のプレイヤーとの他の種類の対話を回避できるようにすることが重要であろう。
【０００６】
音声コミュニケーションに加えて、オンラインセッションの参加者は、他の方法で対話（ｉｎｔｅｒａｃｔ）できる。例えば、仮想環境またはゲーム内の第１のプレイヤーは、第１のプレイヤーの一部の行為（または行為の失敗）の結果として、その環境内の第２のプレイヤーの状態に影響を及ぼす場合がある。ゲーム中のプレイヤーは、戦闘中またはその他の敵対闘争中に頻繁に対話する。なぜならば、多くのゲームは、プレイヤー間のある種の競争にベースにしているからである。多人数参加型ゲームにおいては、別のプレイヤーが容認できないと感じるやり方で行動したプレイヤーは、大体の場合、他のプレイヤーと対話しないで参加することができる。しかし、対話を防ぐか又は制限することにより、一方のプレイヤーを他方のプレイヤーからは見えなくし、かつ／または、一方のプレイヤーが他方のプレイヤーの状態に影響を与えることを妨げることができるべきである。参加者が少人数のセッションでは、プレイヤー間の対話を単純に制御したり、制限したりするのが今なお実行可能な代替案ではあるが、嫌がられるプレイヤーが参加することをブロックすることが望ましい場合もある。
【０００７】
したがって、オンラインゲーム又はオンラインセッションでの他のパーティとのコミュニケーション（音声、ビデオ、又はチャット）又は他の種類の対話を抑制することによって、ある者が、不愉快と感じる別のパーティが、自分が参加するゲームまたは他の種類のオンラインセッションに参加することをブロックすること、又は、不快とみなされる別のパーティを「ゴースト」化できるようにしなければならない。一方向のゴースト化において、不快と思われる別のパーティをゴースト化した者は、ゴースト化されたパーティの存在に気付いていて、かつ／または、それを判断できなければならないが、ゴースト化されたパーティは、自分がゴースト化されたことに気付いてはならず、さらに、ゴースト化した者がオンラインセッションに存在することに気付いてはならない。双方向ゴースト化では、ゴースト化されたパーティおよびゴースト化した者のいずれも、他方の存在に気付いてはならず、また、それを判断できてはならない。同様に、双方向ブロックが許可される場合、参加予定者は、ブロックされるパーティが既に参加者であるときには、ゲームまたは他の種類のオンラインセッションに参加できないようにする必要がある。従来技術は、プレイヤーが、匿名で、ネットワークを介してプレイされる特定のゲーム上の不快なプレイヤーをブロック又はゴースト化できるようにする機構を提供していない。その特定のゲームとは、特に、多人数参加型ゲームであり、そこでは、プレイヤーの数および潜在的に大きいブロック／ゴースト化されるプレイヤーのリストの数が、実装できないほどの複雑さを作り出すと考えられる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、これらの目標を実現するにあたり過度の負荷をもたらさないで、ブロックおよび／またはゴースト化、および／またはミュートをオンラインセッションで実行することを可能にする技術に対するニーズが明らかに存在する。この概念は、オンラインゲームに制限されるのではなく、むしろ、音声セッション、テキストチャットセッション、ネットワーク化された電話コミュニケーション、ピアツーピアネットワーキング等の、参加者の間の対話がある多数の他の種類のオンラインセッションにも適用できるはずである。
【課題を解決するための手段】
【０００９】
本発明は、オンラインセッションの参加者の間の対話を制御する効果的な技術を提供するために開発された。本発明は、最初はオンラインゲームの参加者に適用されるが、明らかに、他の種類のオンラインセッションの参加者間の対話の制御に適用可能である。この技術は、セッションへの参加を望む参加予定プレイヤーが、既にゲームに参加している１人または複数の人のブロッキングリストに含まれるという理由により、そのプレイヤーをブロックすべきかどうかを判定するのに適用でき、あるいは、多人数参加型ゲームのプレイヤーの対話の制御に適用できる。したがって、この技術は、他のプレイヤーの振る舞いを不快と感じるプレイヤーに対して不快なプレイヤーをゴースト化できるようにすることによって、多数のプレイヤーが参加する仮想環境世界等のオンラインセッションに適用することができる。例えば、オンラインセッションの参加者が、別のプレイヤーによってゴースト化される時に、ゴースト化したプレイヤーは、ゴースト化されたプレイヤーに気付いているが、ゴースト化されたプレイヤーは、ゴースト化したプレイヤーに気付かず、決して対話しない。
【００１０】
本発明で適用される方法では、オンラインセッションの各参加者および各参加予定者は、参加者がオンラインセッションでの対話を制限することを望む各人の固有識別子を含むブロックリスト、および／またはミュートリスト、および／またはゴーストリストを有することができる。この方法は、参加予定者（または、多人数参加型セッションの特定の参加者）が、オンラインセッションのいずれかの参加者の１つまたは複数のこれらリスト上にあるかどうかの判定を単純化するステップと、いずれかの参加者が、参加予定者（または特定の参加者）の１つ又は複数のこれらリスト上にあるかどうかの判定を単純化するステップとを採用する。いずれかの状況が存在すると、しかるべきアクションがとられる。参加者間の対話制限については、様々な種類のものが考えられる。例えば、対話が制限されることによって、ゴースト化された参加者がゴースト化した参加者からは見えなくなり、又は、パーティ間でコミュニケーションができなくなり、又は、ブロックされたパーティがセッションに参加することすらできなくなる。
【００１１】
具体的に言うと、本発明によれば、オンラインセッションの参加者の間の対話を制限する方法は、オンラインセッションへの参加が制限される人のインジケータに複数のハッシュ関数を適用した結果を表すために設定されるビットを備えるセッションフィルタを作成するステップを含む。ハッシュ関数は、オンラインセッションの参加予定者（または現在の参加者）のインジケータにも適用され、テスト結果が判定される。次に、テスト結果は、セッションフィルタと比較され、テスト結果の中の規定ビットが、セッションフィルタ内でセットされているかどうかを判定し、セットされている場合には、参加予定者（または現在の参加者）と、オンラインセッションの参加者の少なくとも一人との対話が制限される。
【００１２】
上記したように、制限するステップは、参加予定者がオンラインセッションに参加するのをブロックするステップを備えることができる。代案として、制限するステップは、参加予定者がオンラインセッションへの参加を開始する時、すなわち、参加予定者をブロックした参加者とまさに対話しようとする時に、オンラインセッションの少なくとも１人の参加者に対して参加予定者をゴースト化するステップを含むことができる。もう１つの代案として、制限するステップは、一方が他方のミュートリストに含まれる場合に、参加者間のコミュニケーションをミュートするステップを含むことができる。
【００１３】
ブロッキングに関して、この方法は、さらに、オンラインセッションの参加者のインジケータに複数のハッシュ関数を適用した結果を示すためにセットされるビットを備えるユーザフィルタを作成するステップと、参加予定者がオンラインセッション中に対話を制限することを望む人のインジケータにハッシュ関数を適用した結果を示すためにセットされるビットを備えるユーザブロックフィルタを作成することが含む（すなわち、リストアップされた人が参加者であるオンラインセッションに参加しないか、又は、ユーザが既に参加者であるオンラインセッションに、リストアップされた人が参加できないようにする。）。ユーザブロックフィルタにセットされたビットは、ユーザフィルタのビットと比較されて、参加予定者が対話の制限を望む人がオンラインセッションの参加者の中に含まれるかどうかが判定される。ゴーストフィルタおよび／またはミュートフィルタは、同様に作成され、対話が制限されるオンラインセッションの他の参加者が示される。
【００１４】
参加予定者が参加を阻まれず、参加予定者が対話を制限することを望む人が参加者の中に含まれる場合には、この方法を用いると、参加予定者は、オンラインセッションに参加するか、又は、別のオンラインセッションを捜すかを選択的に決定できる。
【００１５】
参加者が対話を制限すること望む人が他の参加者の中に含まれる場合には、この方法は、代わりに、オンラインセッション中にその人に対してその参加者をゴースト化するステップを含めることができる。上述のように、ブロックまたはゴースト化は、一方向または双方向のいずれかで適用することができる。参加者はゴースト化されると、見えなくなり、ゴースト化した参加者と対話できず、また、ゴースト化した参加者の環境の状態を変更できなくなるか、あるいは、なんら特徴的な情報なしで現れるがゴースト化する参加者の環境の状態に影響を及ぼすことはできる。
【００１６】
本発明のもう１つの態様は、上で述べた方法のステップを実行する機械命令を有する記憶媒体を対象とする。本発明のもう１つの態様は、全般的に上で述べた方法のステップと両立する機能を実行するための、コンピューティング装置のプロセッサを有する１つまたは複数のコンピューティング装置のメモリに記憶される機械命令を実施するシステムを対象とする。
【発明を実施するための最良の形態】
【００１７】
（本発明を実行する例示的システム）
図１は、本発明の様々な部分を実行するのに適したシステムの例であり、それは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社のＸＢＯＸ  ＬＩＶＥ（商標）などのゲーミングサービスのサーバの機能の提供またはオンラインセッションに接続するのに使用されるクライアントコンピューティング装置としての動作を含む。このシステムは、処理ユニット２１、システムメモリ２２、およびシステムバス２３を備える従来型のＰＣ２０の形式の汎用コンピューティング装置を含む。システムバスによって、システムメモリを含む様々なシステム構成要素が処理ユニット２１に結合される。システムバスは、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。システムメモリには、読取専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５が含まれる。起動中などにＰＣ２０内の要素間の情報の転送を助ける基本ルーチンを含む基本入出力システム２６（ＢＩＯＳ）は、ＲＯＭ２４に記憶される。ＰＣ２０は、ハードディスク（図示せず）との間で読み書きを行うハードディスクドライブ２７、着脱可能磁気ディスク２９との間で読み書きを行う磁気ディスクドライブ２８、および、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）または他の光学媒体などの着脱可能光ディスク３１との間で読み書きを行う光ディスクドライブ３０を含む。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれハードディスクドライブインターフェース３２、磁気ディスクドライブインターフェース３３、および光ディスクドライブインターフェース３４によってシステムバス２３に接続される。ドライブおよびそれに関連するコンピュータ可読媒体は、ＰＣ２０のコンピュータ可読機械命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。本明細書に記載の環境例では、ハードディスク、着脱可能磁気ディスク２９、および着脱可能光ディスク３１が使用されるが、当業者であれば、コンピュータによってアクセス可能なデータおよび機械命令を保存する磁気カセット、フラッシュメモリカード、デジタル多用途ディスク（ＤＶＤ）、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭ、および類似物などの他のタイプのコンピュータ可読媒体もまた、オペレーティング環境例で使用できることを理解するであろう。
【００１８】
オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム３６、他のプログラムモジュール３７、およびプログラムデータ３８をはじめとする複数のプログラムモジュールを、ハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に保存することができる。ユーザは、キーボード４０およびポインティング装置４２などの入力装置を介して、ＰＣ２０にコマンドおよび情報を入力し、制御入力を与えることができる。ポインティング装置４２として、マウス、スタイラス、無線リモートコントロール、または他のポインタを含めてもよい。以下で使用される用語「マウス」は、実際には、画面上のカーソルの位置を制御するのに有用なすべてのポインティング装置を包含する。他の入力装置（図示せず）として、マイクロホン、ジョイスティック、触覚ジョイスティック（ｈａｐｔｉｃ  ｊｏｙｓｔｉｃｋ）、ヨーク、フットペダル、ゲームパッド、衛星パラボラアンテナ、スキャナ、または類似物を含めることができる。これらの入出力（Ｉ／Ｏ）装置および他の入出力（Ｉ／Ｏ）装置は、システムバス２３に結合されるＩ／Ｏインターフェース４６を介して処理ユニット２１に接続される場合が多い。用語Ｉ／Ｏインターフェースは、特にシリアルポート、パラレルポート、ゲームポート、キーボードポート、および／またはユニバーサルシリアルバス（ＵＳＢ）のために使用される各インターフェースを包含する。モニタ４７または他の種類のディスプレイ装置は、ビデオアダプタ４８などの適当なインターフェースを介してシステムバス２３に接続される。モニタに加えて、ＰＣは、（サウンドカードまたは他のオーディオインターフェース（図示せず）を介して）スピーカーまたはプリンタなどの他の周辺出力装置（図示せず）に結合される場合が多い。
【００１９】
ＰＣ２０は、リモートコンピュータ４９などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ４９は、別のＰＣ、（通常は、一般に、ＰＣ２０によく似た形で構成される）サーバ、ルータ、ネットワークＰＣ、ピア装置、あるいは衛星または他の一般的なネットワークノードとすることができる。リモートコンピュータ４９には、通常は、ＰＣ２０に関して上述した要素の多くまたはすべてが含まれるが、図１には、外部メモリ記憶装置５０だけが示されている。図１に示された論理接続には、ローカルエリアネットワーク（ＬＡＮ）５１および広域ネットワーク（ＷＡＮ）５２が含まれる。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットにおいては一般的である。
【００２０】
ＬＡＮネットワーキング環境で使用される場合、ＰＣ２０は、ネットワークインターフェースまたはネットワークアダプタ５３を介してＬＡＮ５１に接続される。ＷＡＮネットワーキング環境で使用される場合、ＰＣ２０は、通常、インターネットなどのＷＡＮ５２上で通信を確立するモデム５４、又は、ケーブルモデム、デジタル加入者回線（ＤＳＬ）インターフェース又はサービス総合デジタル網（ＩＳＤＮ）インターフェースなど他の手段を含む。モデム５４は、内蔵または外付けとすることができるが、Ｉ／Ｏ装置インターフェース４６を介して、すなわちシリアルポートを介して、システムバス２３に接続されるか、バスに結合される。ネットワーク化された環境では、ＰＣ２０に関して示したプログラムモジュールまたはその一部を、リモートメモリ記憶装置に記憶することができる。図示したネットワーク接続は、一例であり、無線通信およびワイドバンドネットワークリンクなどのコンピュータの間の通信リンクを確立する他の手段を使用してもよいことが理解されるであろう。ゲーミングサービス機能を提供するのに使用される１つまたは複数のサーバは、通常、上述のものによく似た１つまたは複数のコンピューティング装置を備える。しかし、このサーバは、加入ユーザに関するデータおよびゲーミングサービスの他の要素に関するデータを記憶するためのはるかに大きいハードドライブまたは他の不揮発性メモリシステムにアクセスすることができる。
【００２１】
（ゲーム機の例）
本発明は、様々なコンピューティング装置を一緒にオンラインセッションで接続するサービスへの参加者の間の対話制限と絡めて使用される。そのようなオンラインセッションで使用されると考えられるコンピューティング装置の１つが、ゲーム機である。図２に示すように、一例としての電子ゲーミングシステム１００は、ゲーム機１０２を備え、コントローラ１０４ａおよび１０４ｂなど最大４つのユーザ入力装置をサポートする。ゲーム機１０２は、内蔵ハードディスクドライブ（図示せず）と、光記憶ディスク１０８によって示される様々な形のポータブル光学記憶媒体をサポートするポータブルメディアドライブ１０６とを備える。適切なポータブル記憶媒体の例としては、ＤＶＤディスクおよびＣＤ−ＲＯＭディスクがある。このゲーミングシステムでは、ゲームプログラムが、ゲーム機と共に使用するためにＤＶＤディスクで配布されることが好ましい。しかし、他の記憶媒体を使用することや、インターネット（又は他のネットワーク）上のゲームサイトからゲームおよび他のプログラムをダウンロードすることも考えられる。
【００２２】
ゲーム機１０２の前面には、電気的にコントローラに接続するために設けられる４つのコネクタ１１０がある。代わりに他の種類のコネクタまたは無線接続を使用することも考えられる。電源ボタン１１２およびディスクトレイ排出ボタン１１４は、ゲーム機１０２の前面に置かれる。電源ボタン１１２は、ゲーム機に対する電気出力の印加を制御する。排出ボタン１１４は、ポータブルメディアドライブ１０６のトレイ（図示せず）を交互に開閉し、記憶ディスク１０８の挿入および排出を可能にする。これにより、記憶ディスク上のデジタルデータを、ゲーム機による使用のために、読み込んだり、メモリにロードしたり、ハードドライブに記憶させたりすることができる。
【００２３】
ゲーム機１０２は、オーディオ／ビジュアル（Ａ／Ｖ）インターフェースケーブル１２０を介してテレビジョンまたは他のディスプレイモニタまたはスクリーン（図示せず）に接続される。電源ケーブルプラグ１２２は、通常の交流電源（図示せず）に接続されると、ゲーム機に電力を供給する。ゲーム機１０２は、データコネクタ１２４を備え、イーサネット（登録商標）接続を介してネットワークにデータを転送し、及び／又は、ブロードバンド接続を介してインターネットにデータを転送することができる。あるいは、モデム（図示せず）を使用して、ネットワーク及び／又はインターネットにデータを転送することも考えられる。さらに別の案として、ゲーム機を、イーサネット（登録商標）クロスオーバケーブル（図示せず）を使って別のゲーム機に直接接続させることができる。
【００２４】
コントローラ１０４ａおよび１０４ｂは、各々、リード線を介して（または、その代わりに無線インターフェースを介して）ゲーム機１０２に接続される。図で示した実装においては、コントローラは、ＵＳＢ互換であり、ＵＳＢケーブル１３０を介してゲーム機１０２に接続される。ゲーム機１０２は、ゲームソフトウェアと情報のやりとりをし、ゲームソフトウェアを制御する各種ユーザ装置を装備することができる。図２に示されるように、コントローラ１０４ａおよび１０４ｂは、各々、２つの親指スティック１３２ａと１３２ｂ、Ｄパッド１３４、ボタン１３６、および２つの引き金１３８を備える。これらのコントローラは、単に代表的なものであり、ゲーム機１０２を制御するために、図２に示されたものを他のゲーミング入力制御機構に置き換えたり、図２に示されたものに他のゲーミング入力制御機構を付け加えて使用したりすることができる。
【００２５】
取外し可能な機能ユニットまたは機能モジュールを状況に応じてコントローラ１０４に挿入することによって、追加の機能を提供することができる。例えば、ユーザは、ポータブルメモリユニット（図示せず）にゲームパラメータを保存し、そのポータブルメモリユニットを別のゲーム機のコントローラに挿入することによって、その別のゲーム機でプレイするためにそのゲームパラメータを移植できる。他の取外し可能機能ユニットも、コントローラと共に使用するのに利用可能である。例えば、音声コミュニケータモジュール１４０を備える取外し可能機能ユニットを使用すると、ユーザは、ローカルに及び／又はネットワークを介して、他のユーザと言語コミュニケーションをすることができる。音声コミュニケータモジュール１４０に接続されるのが、マイク付きヘッドホン１４２であり、これは、入ってくる音に応答して入力信号を作るブーム・マイク１４４または他の種類のオーディオセンサ、およびゲーム機からの出力信号に応答して可聴サウンドを作るヘッドホン１４６または他の種類のオーディオ変換器を備える。さらに、音声コミュニケータ機能を、他の面で全体的にコントローラ１０４ａおよび１０４ｂに似ているコントローラの不可欠な部分として含めることが考えられる（図示せず）。図２に示されたコントローラは、２つの取外し可能な機能ユニットまたは機能モジュールを収納するように構成されるが、その代わりに、２つより少数または多数のモジュールを使用してもよい。
【００２６】
ゲーミングシステム１００は、ゲームをプレイすることができるが、ＣＤおよびＤＶＤの音楽およびビデオを再生することもできる。ゲームコントローラは、ハードディスクドライブに記憶されたデジタルデータ又は、ドライブ１０６内の光ストレージディスク１０８、オンラインソース、機能ユニットまたは機能モジュールから読み取られるデジタルデータを使用して、他の機能を実施できると考えられる。
【００２７】
（ゲーム機の機能的要素）
図３を見ると、機能ブロック図には、ゲーム機の構成要素と、多人数参加型ゲーム機を使った電子ゲームのプレイ中にプレイヤー間の音声または言語コミュニケーションを円滑にするために設けられる構成要素が示されている。上述したように、ゲーム機１００の本実施形態においては、ゲーム機は、各々、最大４名までのプレイヤーをもつことができ、各プレイヤーに、コントローラおよび音声コミュニケータを提供することができる。音声コミュニケータモジュール１４０’の詳細を、関連するコントローラ１０４ａと関連させて図示する。コントローラ１０４ｂ、１０４ｃ、および１０４ｄ（ゲーム機１００に結合される場合に）は、必要に応じて、各々、コントローラ１０４ａに結合される音声コミュニケータモジュール１４０’を備えることが理解されるであろう。望ましくは、音声コミュニケータモジュール１４０’は、デジタル信号プロセッサ（ＤＳＰ）１５６、アナログ−デジタル変換器（ＡＤＣ）１５８、デジタル−アナログ変換器（ＤＡＣ）１６１、およびＵＳＢインターフェース１６３を備える。同様に、ゲーム機１００から送られるデジタルサウンドデータは、コントローラ１０４ａを介して伝えられ、ＵＳＢインターフェース１６３に適用される。ＵＳＢインターフェース１６３は、デジタル信号をＤＳＰ１５６およびＤＡＣ１６１に伝える。ＤＡＣ１６１は、デジタル信号を、ヘッドホン１４６を駆動するために用いられるアナログ信号に変換する。
【００２８】
多人数参加型ゲーム機１００を参照すると、複数の主要な機能要素が示されているが、他の機能要素（図示せず）もまた含まれることを理解できるはずである。具体的に言うと、ゲーム機１００は、ＣＰＵ１５０と、ＲＯＭとＲＡＭを含むメモリ１５２を備える。ゲーム機１００は、ＤＳＰ１５４も備える。マイクロホン１４４からのアナログ信号に応答してＡＤＣ１５８によって作成されるデジタル信号は、コントローラ１０４ａを介してＣＰＵ１５０に伝えられる。ＣＰＵ１５０は、他のローカル音声コミュニケーションモジュールへの送信、および、ゲーム機のイーサネット（登録商標）ポート（図３に図示せず）を介してブロードバンド接続された他のゲーム機への送信のために、音声ストリーム信号をエンコード処理する。
【００２９】
直接接続またはネットワーク接続を介してパケットとして伝えられるデジタル信号は、ゲーム機１００のイーサネット（登録商標）ポートを介して（または、同一のゲーム機に接続された他の音声コミュニケーションモジュールおよびコントローラから）ＣＰＵ１５０に入力され、そのＣＰＵによって処理されて、データパケットがデコードされ、出力ミキシングをするＤＳＰ１５４に加えられるデジタルサウンドデータが再生される。ＤＳＰ１５４からの信号は、ＵＳＢインターフェース１６３を介する入力のために、音声コミュニケーションの受取人であるプレイヤーの所望の音声コミュニケーションモジュールに伝えられる。
【００３０】
（オンラインセッション環境）
図４Ａおよび４Ｂは、オンラインセッション環境の異なる態様を示す。図４Ａにおいて、概略図２８０は、一例としてのオンラインセッション環境が複数のクライアントコンピューティング装置またはゲーム機２８４ａ−２８４ｈを備え、それらがサーバコンピューティング装置２８２に接続されることを示す。データパケットは、インターネットを介して、サーバコンピューティング装置とゲーム機の間を伝送する。ゲーム機２８４ａ−２８４ｈは、各々、サーバコンピューティング装置２８２と通信することにより接続され、サーバコンピューティング装置２８２は、図４Ｂに示されているように、単一のサーバコンピューティング装置２８２を備えることができ、あるいは、結合することによりゲーミングサービスに必要な特定の機能を実行するサーバ２８２の複数サーバ２８３を含む。
【００３１】
インターネットと通信する様々な装置は、図４Ｃに示されているように、オンラインセッションのクライアントコンピューティング装置を備えることができる。そのような装置には、制限はなく、ラップトップ機２８６ａ、ワークステーション２８６ｂ、ＰＣ２８６ｃ、サーバ２８６ｄ、携帯情報端末（ＰＤＡ）２８６ｅ、およびゲーム機２８６ｆが含まれる。オンラインセッションへの参加を試みるユーザは、本発明によって参加がブロックされ、あるいは、そのユーザが特定の他の参加者と対話することが制御されかつ制限される。図４Ｃに示された装置の１つを用いて接続するユーザが、オンラインセッションに加わり、完全に参加することを許可するか否か、又は、ユーザがオンラインセッションの他の者と対話することを制限し制御することを許可するか否かを判定する本発明で用いられる手法は、オンラインセッションに非常に多数の者が参加している場合であっても、比較的効率的である。
【００３２】
（サーバベースのオンラインゲームサービス）
図５は、インターネット上でサーバベースゲームセッション３００を使った通信により結合される複数のクライアントコンピューティング装置１００ａ―１００ｕを概略的に示す。図示されていないが、クライアントコンピューティング装置１００ａ―１００ｔは、比較的少数のプレイヤーを有する複数の異なるオンラインセッションに接続されるか、または、数百人または数千人の参加者を有する単一の多人数参加者オンラインセッションに接続される。したがって、図５は、ユーザ間の対話が本発明に従って制限される種類のオンラインセッションに接続するユーザによって使用される複数のクライアントコンピューティング装置を表すと考えられる。
【００３３】
本発明のオンラインゲームへの適用例においては、クライアントコンピューティング装置１００ｕは、参加者としてオンラインゲームセッションへ加わることを望む特定のユーザによって使用される。しかし、クライアントコンピューティング装置１００ｕのユーザが、オンラインゲームセッションに既に参加しているユーザの１人のブロックリストに含まれている場合には、本発明は、クライアントコンピューティング装置１００ｕのユーザが、そのオンラインゲームセッションに参加することを妨げる。または、クライアントコンピューティング装置１００ｕのユーザが、多人数参加型オンラインゲームセッションへ参加しようとする場合に、コンピューティング装置１００ｕのプレイヤーの対話は、別のやり方、例えば、そのユーザと、クライアントコンピューティング装置１００ｕのユーザをゴーストリストまたはミュートリストに含めた参加者との間のコミュニケーションを防止することによって制限される場合がある。以下に説明するように、ゴースト化されるプレイヤーは、そのプレイヤーとの対話を望まない者に対して見えなくなり、又は中性（ｎｅｕｔｅｒｅｄ）になる。クライアントコンピューティング装置１００ｕのユーザが単純にミュート（ｍｕｔｅ）される場合は、そのユーザは、ミュートリストにそのユーザを含めたオンラインセッションの参加者とコミュニケートすることができなくなる。本発明の詳細は多少複雑であるため、用語についての下記の定義は、オンラインセッションの参加者間の対話を制限するのに用いられる本発明の様々な方法を明瞭にするのに役立つはずである。
【００３４】
（本発明で使用される用語の定義）
「セッション」とは、ユーザをネットワーク上のグループの中に論理的に集めたものである。ネットワークとは、インターネット、ＬＡＮ、無線、テレフォニ、またはプライベートネットワーク等である。セッションには、各ユーザがネットワーク化された多人数参加型ゲームに参加するゲーミングセッション、ユーザが一緒になって、音声チャットセッションに参加するテレフォニブリッジ、テキストチャット会話、または複数の人が参加し、対話する他のオンラインセッションがある。
【００３５】
「サーバ」とは、オンラインセッションを動かす物理的な機械である。多人数参加型ゲームのために、サーバは、通常、データセンター内に計算装置を備える（データセンターホスティド（ｄａｔｅ−ｃｅｎｔｅｒ−ｈｏｓｔｅｄ）オンラインセッションのため）。セッションアーキテクチャに応じて、単一の多人数マルチプレイヤーサーバは、ゲーム世界の一部（「シャード（ｓｈａｒｄ）」と称される場合がある。）、ゲーム世界全体、または複数のゲーム世界を主催することができる。用語「セッション」は、用語「サーバ」は当技術分野で交換可能に使用されるが、（上で定義した）論理的セッションと物理的サーバとの間には１対１の関係が必ずしも存在しないので、用語「セッション」は、用語「サーバ」の代わりに、オンラインセッションにともに使用する。
【００３６】
「サービス」とは、ユーザ認証、存在するセッションのリスト、ユーザポリシーリストのリポジトリ、課金、および他の管理機能を提供する中央プロセスまたは分散プロセスである。
【００３７】
「ユーザ」とは、オンラインセッションに含まれる人、プレイヤー、または参加者であり、例えば、多人数参加型オンラインセッションのプレイヤーである。本発明はオンラインゲームのプレイヤーとの関連において説明されるが、この応用例が限定されることを意図せず、用語「プレイヤー」が、他の種類のオンラインセッションにおける本発明の動作を理解する時に、前述の文に記された他の用語のいずれかと置き換えられると一般に考えられることが理解されるであろう。
【００３８】
「ブロック」とは、オンラインセッションの現在の参加者のブロックリストから作成されるブロックフィルタの論理的ＯＲをとることによって生成されるセッションフィルタ内にある人が示される場合に、オンラインセッションにその人が参加することを防止することである。また、参加予定者のブロックリスト（ブロックフィルタ）の中に現在の参加者の誰かが含まれる場合に、オンラインセッションの設計者によって選択される実装に応じて、参加予定者に、それでもセッションに加わる機会を与えるか、又は、オンラインセッションへの参加を防止することである。
【００３９】
「ブロックリスト」とは、オンラインセッション内に参加することをユーザが望まない人のリストである。このリストは、サービス、ユーザのローカルハードドライブ、ユーザのローカルメモリユニット、またはユーザ固有プロパティを記憶する他のストレージに記憶される。
【００４０】
「セッションフィルタ」とは、参加者のブルームフィルタ（Ｂｌｏｏｍ  ｆｉｌｔｅｒ）またはブロックフィルタを作成するためにオンラインセッションの各参加者のブロックリストをハッシュし、次に、ブロックフィルタと論理的ＯＲをとることによって生成されるフィルタ（以下を参照）である。ブロックフィルタは、オンラインセッションに参加することがブロックされるべき各人を示すためにセットされるビットを含み、ブロックフィルタは、通常、オンラインセッションのホストによって維持される。
【００４１】
「ミュート」とは、ミュートするユーザが、ミュートされたユーザに話しをすることができない場合、又は、その逆も同様な場合である。実装に応じて、ミュートは、音声チャット、テキストチャット、およびジェスチャコミュニケーションを包含する。本発明では、（あるユーザが別のユーザに話し掛けられるが、逆は不可能な）一方向ミュートを使用することができるが、この手法は、一般には使用されない。望ましくは、双方向ミュートを使用することであり、そこでは、一方のパーティが他方のパーティのミュートリストにある場合、どちらのパーティも他方のパーティとコミュニケートできないが、ミュートするユーザは、他方のユーザがミュートされていることを知り、ミュートのオンオフを切り替えることができる。しかし、ミュートされたユーザは、自分がミュートされていることを知らないことが望ましい。
【００４２】
「ミュートリスト」とは、オンラインセッションでコミュニケーションをとるのが受け入れられないとある人が判断した全てのユーザのユーザ固有の持続的リストである。このリストは、サービス、その人のローカルハードドライブ、その人のローカルメモリユニット、またはユーザ固有プロパティを記憶する他の記憶装置に記憶することができる。ミュートリストは、一般に、ブロックリストまたはゴーストリストと類似する。なぜならば、それぞれは、オンラインセッション中に対話がブロックまたは制限されなければならないとある人が決定した１人または複数のユーザを定義するからである。適用される制限の種類は、用語「ミュートリスト」、「ブロックリスト」、または「ゴーストリスト」によって示されるが、これらの用語は、一般に、制限される対話の特定の種類を単純に定義する。
【００４３】
「ゴースト化」（Ｇｈｏｓｔｉｎｇ）とは、ユーザ（通常はゴースト化するユーザ）が、他のユーザ（通常はゴースト化されるユーザ）の個人識別情報を見ないようにするために実行される。個人識別情報は、そのユーザに固有で唯一のものを含む。これには、ユーザネーム、パーソナルネーム、個人プロファイル、アイコンなどが含まれる。ゴースト化には、様々な置換があり、オンラインセッション設計者の選択に応じてすべてが有効であり、この選択によって、オンラインセッションに参加する人のミュートリスト、ブロックリスト、またはゴーストリストで「一致」が発生する時に実施されるポリシが決定される。実装に応じて、ユーザを「ゴースト化」するには２つの方法がある。
【００４４】
１．「不可視」−ゴースト化されたユーザは、ゴースト化したユーザには見えず、ゴースト化したユーザと対話することができない。したがって、目に見えないゴースト化されたユーザは、ゴースト化するユーザの世界または環境の状態に影響を及ぼすことができない。
【００４５】
２．「中性」−中性化されるゴースト化されたユーザは、特徴的な情報をもたないで現れ、ゴースト化したユーザとコミュニケーションをとることができない。しかし、中性化されるゴースト化されたユーザは、ゴースト化したユーザの世界の状態に影響を及ぼすことができる。
【００４６】
不可視ゴースト化または中性ゴースト化（あるいはその両方）の実装の選択は、設計者次第であり、どちらも、オンラインセッションのゲームまたは他のタイプの機構に応じて長所を有する。例えば、プレイヤーが互いの環境に影響を及ぼすことができないゲーム世界では、設計者は、不可視ゴースト化を実行するだけかもしれない。プレイヤーが、（一緒に怪物を倒す等の）互いの環境と対話するゲーム世界では、不可視ゴースト化は理にかなわない。なぜならば、（見えないユーザの動作に起因して）世界が変化する可能性があり、これによって、他のユーザが混乱するからである。その場合は、中性ゴースト化実装が、より論理的な選択肢である。尚、これらの選択肢は相互に排他的ではない。ゲームまたはオンラインセッションデザインは、一方のユーザを中性化すること、及び、他方のユーザを中性化されたその１のユーザから見えないようにすることを要求する場合がある。
【００４７】
「ゴースト化するプレイヤー対ゴースト化されたプレイヤー」―設計者が行わなければならないもう１つの選択（両方が有効でもある）が、ゴースト化したユーザが、ゴースト化されたユーザには見えなくなるか又は中性になるかどうか、または、ゴースト化されたユーザが、ゴースト化したユーザには見えなくなるか又は中性にされるかどうかである。すなわち、（おそらくより一般的な事例である）１の実施形態では、第１のパーティが第２のパーティをゴースト化すると、第１のパーティは、第２のパーティには見えなくなる。もう１つの実施形態では、第１のパーティが第２のパーティをゴースト化すると、第２のパーティは、第１のパーティには見えなくなる。（中性化にも適用される）両方の設計が有効であり、どちらを実装するかは、ゲーム設計者に委ねられる。
【００４８】
「ゴーストリスト」とは、オンラインセッションで特定のユーザに対してゴースト化される全てのユーザの、ユーザ固有の持続的リストである。このリストは、サービス、ユーザのローカルハードドライブ、ユーザのローカルメモリユニット、またはユーザ固有プロパティを記憶する他のストレージに記憶することができる。上述の「ブロックリスト」および「ミュートリスト」の定義を参照されたい。
【００４９】
「双方向ゴースト化」とは、ゴースト化されたユーザは、一緒にセッションに参加できるが、ポリシー（不可視および／または中性）が、ゴースト化したユーザとゴースト化されたユーザの両方に適用される場合である。
【００５０】
「一方向ゴースト化」とは、ゴースト化されたユーザが、セッションに一緒に参加できるが、ゴースト化したユーザは、ゴースト化されたユーザが存在することに気付いており、及び／又は、検出でき、ゴースト化されたユーザは、ゴースト化したユーザが存在するかどうかを判定できず、自分がゴースト化されたかどうかを判定できない場合である。
【００５１】
「フィルタ」とは、ユーザの組を表すデータ構造である。このデータ構造は、固有のユーザ名、固有のユーザＩＤ番号のリストの形式をとるか、または、本発明の好ましい実施形態で実行されるように、（以下に説明する）ブルームフィルタ等の構造を備える。本発明は、ほとんどの「フィルタ」を使用して動作するが、ブルームフィルタのプロパティは、本発明の好ましい形において多くの利益をもたらす。
【００５２】
「ブルームフィルタ」とは、誤った肯定（すなわち、人が組に含まれない時に、その人が組に含まれるという表示を返すこと）のデザイナブル（ｄｅｓｉｇｎａｂｌｅ）の低い可能性は存在するが、誤った否定（すなわち、人が組に含まれる時に、その人が組みに含まれないという誤った表示を返すこと）の可能性を備えている、ユーザの組の集合的表示を含む固定長ビットマップである。誤った肯定の可能性は、以下で説明するように、いくつかの変数を操作し、メモリおよびＣＰＵのトレードオフを表すパラメータを選択することによって制御することができる。
【００５３】
（オンラインセッションフィルタ）
参加予定者がオンラインゲームセッションに参加することがブロックされるか否かを判定するために、本発明は、上で定義されたセッションフィルタを使用する。図６は、オンラインセッションのＮ人の参加者のそれぞれのブロックリスト３２０ａ―３２０ｎが、セッションフィルタ３２６を生成するためにどのように使用されるかを示す。オンラインゲームセッションのユーザまたは参加者のブロックリストは、各々、そのユーザがオンラインセッションでの対話を望まない人を表す複数のプレイヤー固有識別子（ＰＵＩＤ）３２２を含む。このケースでは、ブロックリストは、ユーザ３２０ａ―３２０ｎが既に参加しているオンラインゲームセッション（または他の種類のオンラインセッション）への参加が許可されてはならないユーザを識別する。図６に示された例では、オンラインセッションの各参加者が、自分のブロックリストにＭ個までのＰＵＩＤ３２２を有することができることが明らかである。この例では、特定の参加者に対してブロックされなければならないユーザを指し示すものとしてＰＵＩＤが使用されるが、他の種類の識別印を代わりに使用してもよいことは明らかである。
【００５４】
ある参加者がオンラインセッションに加わる時に、そのセッションがサーバベースの場合にはサーバであるかもしれないし、そうでない場合にはホストとして活動する参加者の１人であるかもしれないセッションのホストは、参加者のブロックリストを受け取り、あるいは、これらの参加者のブロックリストのブルームフィルタに対応するブルームフィルタ３２４ａ−３２４ｎを受け取る。各ブルームフィルタは、参加者によって作成され、オンラインセッションのホストに送信され、あるいは、ホストは、オンラインセッションに参加する新しい各参加者のブロックリストのブルームフィルタを作成する。オンラインセッションのホストは、ブルームフィルタ３２４ａ−３２４ｎのそれぞれを集めて論理ＯＲをとることによって、セッションフィルタ３２６を作成する。ブルームフィルタ３２４ａ−３２４ｎのそれぞれの作成に関する詳細は、以下で説明する。より一般的なケースでは、ブロックリストのＰＵＩＤは、特定のユーザがブロックリストに含めることを選択し、オンラインセッションで対話したくない人のそれぞれのグローバル固有識別子（ＧＵＩＤ）に置き換えることができる。
【００５５】
（フィルタパラメータ）
ユーザのコンピューティング装置は、セッションを生成するか又はセッションに加わる前に、ユーザのブロックリストにある全ユーザを集約した所定の長さのブルームフィルタを作成する。好ましい実施形態では、固有に生成される１２８ビットの番号（ＰＵＩＤまたはＧＵＩＤ）が、各ユーザを識別するために使用されるので、この番号の数値処理が可能である。他の実施形態では、任意の固有のデータ型（名前、社会保険番号、ユーザ番号など）を使用して、ユーザを識別する。また、中央サーバが、ユーザのブロックリストに基づいて各ユーザのブルームフィルタを集約し、作成できると考えられる。
【００５６】
一つの実装例は、メモリ内で管理可能で、誤った肯定の程度を許容可能なレベルまで減らすのに十分に大きいサイズをブルームフィルタ長にセットする。１つの例として、
ｃ＊ｂ＊ｐ≦ｍ
が使用される。
ここで、
ｃ＝小さい定数（１６がよい）
ｂ＝ブロックリスト内のユーザ数のシステム全体での平均値（例えば１６ユーザ）
ｐ＝ゲームセッションのプレイヤーの最大数（ゲームの設計時に決定される）
ｍ＝ブルームフィルタビットマップのビット数である。この例では、バイト分割のために８で割り切れ、ビット最適化のために２のべき乗であるｍの値を使用する。実際には、ｍの値のサイズは、１０２４ビット（１２８バイト）であれば十分であることがわかっている。ブルームフィルタサイズが決定されると、サイズｍビットのメモリセグメントが割り当てられ、そこに０が設定される。
【００５７】
次に、ｋ個のハッシング関数を、パーティのユーザブロックリスト内の各ユーザに対して適用し、ブルームフィルタ内にｋ個の単一ビット位置を生成する。このハッシュ関数は、すべての入力をｍビットに分配し、互いに独立になるように設計される。
ｋの最適の数（すなわちｋｏｐｔ）は、確率関数の導出によって、
ｋｏｐｔ＝（ｌｎ２）＊（ｍ／（ｂ＊ｐ））
になると決定されている。しかし、ｋの値は、ハッシュ関数の数が減り、誤った肯定の可能性が依然として許容可能であるようにするために、ｋｏｐｔ未満になるように選択することができる。
【００５８】
望ましくは、ユーザのコンピューティング装置で動作するプログラムは、リスト内の各ユーザＰＵＩＤのセキュアハッシュアルゴリズム−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ−１、ＳＨＡ−１）ハッシュを生成し、ブルームフィルタ内にセットされるビット位置を決定する。例えば、ブルームフィルタのサイズがｍである場合、ＳＨＡ−１ダイジェストの最初のｌｏｇ２（ｍ）ビットは、第１のハッシュ関数に対してブルームフィルタにセットされるビット位置を表す。ＳＨＡ−１ダイジェストの次のｌｏｇ２（ｍ）ビットは、第２のハッシュ関数に対してセットされるビット位置を表す。プログラムは、ｋビットがブルームフィルタ内にセットされるまで、ユーザのコンピューティング装置での実行をｋ回継続する。しかし、ビットが固有である必要はない。なぜなら、一部のハッシュ関数は、（１／ｍの確率で）同一のビットを選択する可能性があり、このことは、ブルームフィルタアルゴリズムでは許容されるからである。
【００５９】
明確にするために、ユーザブロックリストから作成されるブルームフィルタをブロックフィルタと呼び、このフィルタは、ユーザのブロックリストをユーザの単一のブルームフィルタに集約する１０２４ビットフィルタである。
【００６０】
一連の各ユーザが、オンラインセッションに参加することを許可されると、新しい参加者のブロックフィルタは、ビット単位でＯＲをとられて、セッションの全ての参加者のブロックフィルタを集約するセッションフィルタになる。好ましい実装では、セッションフィルタは、セッションホストによって記憶される。しかし、ピア−ピアオンラインセッション（ｐｅｅｒ−ｐｅｅｒ  ｏｎｌｉｎｅ  ｓｅｓｓｉｏｎ）などの別の実装では、その代わりに、セッションフィルタは、マッチメーキングサーバに記憶（またはマッチングメーキングサーバーからアクセス）される。
【００６１】
オンラインセッションのホストは、上述したのと同じ方法を使用して、オンラインセッションの参加者を示すユーザフィルタを作成する。オンラインセッションの参加者についてのユーザフィルタのサイズは、一般に、セッションフィルタより小さく、そのサイズは、セッションの参加者の数の関数であって、ブロックリストのサイズの関数ではない、すなわち：
ｃ＊ｐ≦ｍ
ここで、
ｃ＝小さい定数（例えば８）
ｐ＝ゲームセッション内のプレイヤーの最大人数（ゲームまたはオンラインセッションの設計時に決定される）
ｍ＝ブルームフィルタビットマップのビット数、例えば、１２８ビット（１６バイト）のサイズを有するｍを使用することは、例示的アプリケーションにとって十分であることがわかっている。
【００６２】
ユーザが参加者としてオンラインセッションに参加する時に、ホストは、上述のように、そのユーザＰＵＩＤの表示をオンラインセッションのユーザフィルタに追加し、ユーザフィルタを更新する。ユーザフィルタは、オンラインセッションの全ユーザを単一のブルームフィルタに集約する１２８ビットフィルタであることが好ましい。
【００６３】
ユーザは、ユーザをＳＨＡ−１ハッシュにかけ、ｋ番目のハッシュ値の各ビット位置がブルームフィルタにセットされる（真である）ことを検査することによって、（かなりの確率で）ブルームフィルタ内に示されると判定される。すべてのハッシュ値のすべてのビット位置がセットされている（真である）場合には、このユーザがブルームフィルタに示される可能性はかなりある。しかし、ハッシュ値のビット位置のいずれかがクリアされている（偽である）場合には、（ブルームフィルタには誤った否定がないので）このユーザは、組に含まれないことが保証される。
【００６４】
（本発明で実行されるロジック）
図７においては、オンラインセッションのホストが実行する論理ステップが、本発明の実行と絡めて、フローチャート３６０に示されている。ステップ３６２において、ホストは、オンラインセッションに加わることを望む各参加予定者が評価する。このステップのさらなる詳細については、図８と絡めて以下に説明する。新しい各参加者がオンラインセッションに加わると、ステップ３６４に示されているように、オンラインセッションのホストは、次に、オンラインセッションのユーザフィルタを更新して、新しい参加者の表示を含める（図９を参照）。ステップ３６６において、ホストは、セッションフィルタを更新して、新しい参加者のブロックリストから生成されるブルームフィルタを含める。このステップの詳細については、以下に図１０と絡めて述べる。判断ステップ３６８は、オンラインセッションがいっぱいになったかどうかを判定し、いっぱいではない場合には、ホストは、オンラインセッションへの参加を望む次の参加予定者の評価の準備をする。オンラインセッションがいっぱいな場合には、オンラインセッションがもはやアクティブでなくなるか、参加者の１人が離れ、別の参加予定者が加わる空席が作られるまで、このロジックは終了する。
【００６５】
ステップ３６２のさらなる詳細を、図８に示す。この図からわかるように、ステップ３８０において、参加予定者は、オンラインセッションに加わる意思を示す。ステップ３８２において、参加予定者のＰＵＩＤまたは他の適当なインジケータは、ＳＨＡ−１または他の適当な一方向ハッシュ関数を使用してハッシュされる。このステップは、オンラインセッションに加わる試みの前に参加予定者によって実行されるか、又は、参加の時に参加予定者によって行われるか、又は、参加予定者がセッションへの参加の意思を示す時にオンラインセッションのホストによってされる。
【００６６】
ステップ３８４において、オンラインセッションのホストは、参加予定者のＰＵＩＤのハッシュと、ホストが維持しているセッションブロックフィルタとを比較する。この比較の最中に、参加予定者のＰＵＩＤのハッシュにセットされているビットが、セッションフィルタにセットされていないことをホストが検出すると、その参加予定者がオンラインセッションの現在の参加者の誰によってもブロックされないことが直ぐに明らかになる。しかし、参加予定者のＰＵＩＤのハッシュの全ビットが、セッションフィルタ内で見つかる場合には、この参加予定者が、オンラインセッションの現在の参加者の少なくとも１人によってブロックされている確率が比較的高い（しかし、確実ではない）。以下に説明するように、この確率を、現在の参加者のブロックリストの各々のブルームフィルタを作成する際に使用されるパラメータの関数として、任意の所望のレベルに設定することができる。したがって、判断ステップ３８６は、参加予定者がこの比較の結果に基づいてブロックされるかどうかがホストによって判定されることを示す。ブロックされる場合には、ステップ３８８は、参加予定者が現在のオンラインセッションに参加することが許可されないので、参加予定者は、参加する別のオンラインセッションをチェックすべきであることを示し、そして、このロジックは終了する。あるいは、参加予定者がブロックされない場合には、ステップ３９０において、ホストは、オンラインセッションの現在の参加者の表示を含んだユーザフィルタを参加予定者に送信する。参加予定者は、ステップ３９２に示されているように、参加予定者によって準備されたユーザブロックリストをハッシュして、ユーザブロックフィルタを準備する。
【００６７】
ステップ３９４において、参加予定者は、参加予定者のユーザブロックリスト内の各メンバのＰＵＩＤをハッシュすることによって作成されるユーザブロックフィルタと、オンラインセッションのホストから受信したユーザフィルタとを比較する。ユーザブロックリスト内のユーザのＰＵＩＤのハッシュから得られるビットの少なくとも１つがユーザフィルタに現れない場合には、そのユーザは、現在はオンラインセッションの参加者ではない。しかし、そのユーザのＰＵＩＤのハッシュの全ビットがユーザフィルタにセットされる場合には、そのユーザが参加者である可能性が高い。したがって、この比較の結果に基づいて、参加予定者は、判断ステップ３９６で、オンラインセッションの現在の参加者のいずれかが、参加予定者のブロックリストに含まれるかどうかを判定する。含まれる場合には、判断ステップ３９８は、オンラインセッションの設計者によって一方向ブロッキングが可能になっているかどうかを判定する。一方向ブロッキングが可能である場合には、参加予定者には、たとえオンラインセッションの現在の参加者の１人が参加予定者のブロックリストに含まれていても、オンラインセッションに加わる選択肢が与えられる。さもなければ、参加予定者は、ステップ３８８において、参加する別のオンラインセッションを調べるように指示される。しかし、一方向ブロッキングが可能な場合には、判断ステップ４００は、参加予定者が依然としてこのオンラインセッションに参加することを望むかどうかを判定する。望む場合には、ステップ４０２は、参加予定者をオンラインセッションに参加させ、このロジックは終了する。さもなければ、このロジックは、再びステップ３８８で継続する。
【００６８】
図９は、図７のステップ３６４で、オンラインセッションのホストによってユーザフィルタがどのように更新されるかの詳細を示す。図９のステップ４１０において、ホストは、ユーザＰＵＩＤのハッシュと前のユーザフィルタの論理ＯＲをとるか、あるいは、オンラインセッションに現在参加しているすべてのユーザＰＵＩＤのハッシュの論理ＯＲをとる。その結果が、オンラインセッションの更新されたユーザフィルタになる。ユーザがオンラインセッションから退く場合に、ユーザフィルタを再び作成しなければならない。
【００６９】
図７のステップ３６６に示されているように、セッションフィルタを更新する時に、図１０に示された詳細が実行される。図１０のステップ４２０において、オンラインセッションのホストは、ハッシング関数をオンラインセッションの新しい参加者のブロックリスト内の各ＰＵＩＤに適用して、ユーザブロックフィルタを作成する。あるいは、ユーザブロックフィルタは、新しい参加者によって以前に作成され、オンラインセッションのホストに転送される場合がある。次に、ステップ４２２において、ホストは、オンラインセッションのすべての参加者のユーザブロックフィルタの論理ＯＲをとる。新しい参加者のためにユーザフィルタを更新する場合に、ホストは、単純に、新しい参加者のユーザブロックフィルタと前のセッションフィルタの論理ＯＲをとって、更新されたセッションフィルタを作成する。しかし、ユーザが参加を停止する場合には、ステップ４２２を繰り返さなければならない。
【００７０】
図１１は、オンラインセッションの現在の参加者のユーザＰＵＩＤ４３０をハッシュすることによってユーザフィルタ４４６を作成することに関する詳細を示す。このステップは、ブロック４３２に示されているように、ＳＨＡ−１などのハッシュ関数を使用してユーザＰＵＩＤをハッシュすることによって実行される。異なる数を使用することができるが、図１１に示された例示的な好ましい実施形態においては、ユーザのＰＵＩＤのハッシュによって、４つの２バイトセグメントＡ―Ｄ４３４の１つまたは複数にビットがセットされる。このビットフィールドは、１２８ビット長なので、各２バイトセグメントの７ビットだけが使用される。したがって、この例示的な好ましい実施形態では、ブロック４３６に示されているように、最初の４つの２バイトセグメントのそれぞれが、００００１１１１０００００１１１との論理ＡＮＤを取られる。最初のバイトの最下位４ビットは、１６バイトブロックの「バイト」オフセットを表す。第２のバイトの最下位３ビットは、そのバイトの８ビット内のビットオフセットを表す。このマスキングによって、最適な剰余が作られ、その結果、さらなるビット演算は不要である。ブロック４３８は、修正されたハッシュ結果を示し、そこでは、各セグメントＡ―Ｄの７ビット４４０は、ハッシュの結果としてセットされた１つまたは複数のビットを含み、各セグメント内で使用されない９ビット４４２がそれに続く。次に、オンラインセッションのユーザフィルタを生成するために、ブロック４４４において、ホストは、第１のバイトのマスクされた４ビットを使用して、ビットフィールド内の１６バイト位置の１つを選択し、第２のバイトのマスクされた３ビットを使用して８ビット位置の１つにビットをシフトし、その結果と前のユーザフィルタの論理ＯＲをとって、ユーザフィルタの新しい参加者のＰＵＩＤを表すビットをセットし、更新されたユーザフィルタ４４６をもたらす。
【００７１】
さらに、図１２に示されているように、セッションフィルタを生成する際に、一連の類似するステップが実行される。ブロック４５０に示されているように、オンラインセッションの参加者のそれぞれのブロックリスト内のユーザＰＵＩＤごとに、ステップ４５２において、ホストは、例えばＳＨＡ−１ハッシュ関数を使用して、ＰＵＩＤをハッシュする。ハッシュ結果４５４は、ハッシュ結果の関数としてビットがセットされる４つの２バイトセグメントを含む。次に、ステップ４５６において、４つの２バイトセグメントのそれぞれは、０１１１１１１１０００００１１１と論理ＡＮＤがとられ、その結果、セグメントのそれぞれの最後の６ビットがマスクされ、４つのセグメントのそれぞれでセットされる１０ビット位置４６０および各セグメントでマスクされる６ビット４６２を含む修正されたハッシュ結果４５８が作られる。ブロック４６４において、ホストは、第１のバイトのマスクされた７ビットを使用してビットフィールドの１２８バイト位置の１つを選択し、次に、第２バイトのマスクされた３ビットを使用して８ビット位置の１つにビットをシフトし、その結果とこの参加者の前に生成されたユーザブロックフィルタの論理ＯＲをとって、ブロック４５０の現在の参加者のユーザブロックフィルタ内のＰＵＩＤを表すビットをセットする。同一のステップを、参加者のブロックフィルタのＰＵＩＤごとに繰り返して、参加者の最終的なユーザブロックフィルタ４６６を作る。他の参加者のそれぞれについても、対応するユーザブロックフィルタを生成する。最後に、ブロック４６８に示されているように、ホストは、各ユーザブロックフィルタを集めて論理ＯＲをとって、現在のセッションフィルタ４７０を作成する。新しい参加者がオンラインセッションに加わる時に、新しい参加者のユーザブロックフィルタと前のセッションフィルタの論理ＯＲをとって、新しい参加者によってブロックされるユーザの表示を含む新しいセッションフィルタを作る。
【００７２】
（多人数参加型オンラインゲームへの本発明の応用）
少数のプレイヤーが参加しているより小さいオンラインゲームセッションまたは限られた数の参加者を有する他の種類のオンラインゲームセッションとは対照的に、多人数参加型ゲーム環境または多数の参加者を有する同様のオンラインゲームセッションは、単にプレイヤーが別の参加者のブロックリストに含まれるので、通常は、プレイヤーの参加をブロックする必要はない。その代わりに、参加者が別のプレイヤーのミュートリストまたはゴーストリストに含まれることに基づいて、プレイヤー間のコミュニケーションを制御する機能など、他のタイプの制限された対話が効果を示す。この場合に、一般にオンラインゲームセッションの設計者によって決定されるように、対話は、２つのパーティの間のコミュニケーションを制限すること、あるいは、パーティの一方を他方に対してゴースト化することを含めることができる。しかし、ゴーストリストまたはミュートリストを、多数の参加者を有するオンラインセッションだけに適用可能にすることは意図されていない。なぜならば、これらは、少数の参加者だけを有するオンラインセッションにも適用できるからである。
【００７３】
図１３は、オンラインゲームセッションまたは仮想環境の参加者の間の言語コミュニケーションを防ぐのに用いられるステップを示すが、このステップは、ゴースト化あるいはテキストまたは他の手段によるコミュニケーションの制限に同等に適用可能である。ステップ５２０において、オンラインセッションの参加予定者は、参加予定者のミュートリストからミュートフィルタを作成する。参加予定者のミュートリストは、参加予定者がオンラインセッション中にコミュニケーションをとることを望まない他の人のそれぞれの識別表示を含む。一般に、同一のプロセスが、図１１に示されたユーザフィルタ４４６の作成に使用されるように、ミュートフィルタの作成に使用される。図１３に戻って、ミュートフィルタが、参加予定者のミュートリストから一旦作られたならば、時々、これを保守する必要がある場合がある。したがって、判断ステップ５２２で、ミュートリストに対する変更が行われたかどうかを判定する。そうである場合には、判断ステップ５２４で、変更に、ミュートリストからのユーザの削除が含まれるかどうかを判定する。そうである場合には、ステップ５２０に従って、ミュートフィルタを再作成する必要がある。しかし、変更が、単にミュートリストへの別の人の識別表示またはＰＵＩＤの追加である場合には、ステップ５２６で、追加されたユーザのＰＵＩＤのハッシュと前のミュートフィルタの論理ＯＲをとる。このステップによって、更新されたミュートフィルタが作成される。その後、または参加予定者のミュートリストに対して変更が行われていない場合には、ステップ５２８は、参加予定者がオンラインセッションへの参加を試みていることを示す。それを行う際に、参加予定者は、自分のＰＵＩＤまたは他の識別する印を、作成または更新されたばかりのミュートフィルタと共に、オンラインセッションのホストに送信する。ほとんどの多人数参加型ゲームまたは他の環境において、ホストは、サーバベースであるが、ピアツーピア環境で動作するより小さいオンラインセッションでは、ホストは、おそらくは同等に別の参加者である。ステップ５３０において、ホストは、適切なステップをふみ、参加予定者を認証し、参加予定者は、オンラインセッションに加わることができるようになる。
【００７４】
次に、ステップ５３２において、オンラインセッションホストは、セッションに加わったばかりの新しい参加者のＰＵＩＤを（まだ行われていない場合に）ハッシュし、その結果を、新しい参加者の状態および他の情報と共に記憶する。ステップ５３４において、ホストは、参加を試みる次の参加予定者を待ち、新しい参加予定者が検出された時にステップ５２８に戻り、上述の通り処理を進める。
【００７５】
オンラインセッションの開発者によって定義されるポリシを実施する時に、全般的に図１４に示されているように、ホストおよびオンラインセッションの各参加者によって、ステップが実行される。ステップ５００に示されているように、ホストは、更新された世界状態情報を、他の参加者のＰＵＩＤのハッシュと共に、継続的に各参加者に送信する。更新された世界状態情報は、通常は、オンラインゲームセッションまたは仮想環境の性質に依存し、各参加者の調子、参加者の環境内の位置、参加者の武器または保護または強さの状態などを含むことができる。判断ステップ５０２において、各参加者は、他の参加者がその参加者のミュートリストにあるかどうかを判定する。ミュートリストにある場合には、ステップ５０４において、適当な動作を実行して、オンラインセッションの設計者によって指定されたポリシを実施する。例えば、ミュートするプレイヤーは、ミュートされたプレイヤーからのすべてのコミュニケーションをブロックすることができる。ミュートするプレイヤーは、ミュートされたプレイヤーをミュート解除するオプションを有する場合がある。しかし、ミュートされたプレイヤーは、通常は、ミュートするプレイヤーがコミュニケートできるという表示を有しない。ゴースト化に適用される場合に、仮想環境または他の種類のオンラインセッションにゴースト化をどのように適用するのが最適であるかに関する設計者の判断に応じて、ゴースト化の様々なオプションを、本明細書に記載のように実行できる。
【００７６】
パーティの間の対話を制限する時の判定の詳細を、図１５に示す。判断ステップ５４０において、オンラインセッションのホストは、参加者Ａが参加者Ｂとまさに対話しようとしているかどうかを判定し、そうでない場合には、それ以上の動作はない。しかし、そのような対話がまさに行われようとしている場合には、判断ステップ５４２で、パーティの一方が、他方のミュートリストにある、またはミュートリストから作成されたミュートフィルタによって示されるかどうかが判定される。そうでない場合には、ステップ５４６で、参加者Ａと参加者Ｂの間のすべての対話が許可され、それ以上の動作は、オンラインセッションのホストによるものに関して不要である。しかし、判断ステップ５４２の結果が肯定である場合には、ステップ５４４で、適当なポリシを実施して、オンラインセッションの２人の参加者の間の対話を制限する。その後、このロジックは完了する。
【００７７】
ゴースト化での対話の制限に関するオプションの要約を、図１６の表５４８に開示する。上述のフローチャートには特に示されていないが、ゴースト化に関して図１６に示された対話の制限のオプションの様々な組合せが、本発明によるオンラインセッション内で可能である。同様に、オンラインセッションに参加するプレイヤーの間のコミュニケーションをミュートまたは制御する様々なオプションならびに参加予定者がオンラインセッションに参加するのをブロックするオプションも、本発明のコンテキスト内で可能である。本発明は、より小さいオンラインセッションならびに多数の参加者を有するオンラインセッションを含むオンラインセッションの参加者の間の対話を制御する有効な方法を提供する。ブロックユーザリスト、ミュートリスト、および／またはゴーストリストから作られるフィルタの使用によって、オンラインセッションの参加者を把握するために、及び、オンラインセッションのユーザのリストに基づいてブロックされ、ミュートされ、かつ／またはゴースト化されなければならないユーザを識別するために転送され、維持されなければならないデータの量が明らかに減る。
【００７８】
本発明を、それを実施するのに好ましい形態と絡めて説明したが、当業者は、特許請求の範囲内で多くの変更を加えることができることを理解するであろう。したがって、本発明の範囲は、上述の説明によって決して制限されず、特許請求の範囲を参照することによってもっぱら判断される。
【図面の簡単な説明】
【００７９】
【図１】本発明を実施するのに適した汎用パーソナルなコンピュータ（ＰＣ）を示す機能ブロック図である。
【図２】本発明を実施できるネットワークを形成するために通信で結合される電子ゲーム装置またはＰＣ等の複数のコンピューティング装置を示すブロック図である。
【図３】本発明が使用されるオンラインゲーミングセッションでの使用に適するゲーム機および音声コミュニケーションモジュールを示すブロック図である。
【図４Ａ】複数のクライアントコンピューティング装置がインターネットを介してサーバコンピューティング装置に結合されるオンラインセッションを示す概略ブロック図である。
【図４Ｂ】本発明を実行する時に、サーバが、サーバ機能を実行する単一のコンピューティング装置または複数のコンピューティング装置であることを示すブロック図である。
【図４Ｃ】本発明が実行されるオンラインセッションの間に通信で結合され得る複数のコンピューティング装置の例を示す図である。
【図５】複数のクライアントコンピューティング装置が結合されるサーバベースオンラインゲームセッションを示し、本発明を適用してクライアントコンピューティング装置がオンラインゲームに参加できないようにしたことを示す図である。
【図６】本発明に従って、オンラインセッションの複数のユーザのブロックリストから得られたブルームフィルタの論理ＯＲをとりセッションフィルタを作る方法を示す図である。
【図７】参加予定者がオンラインセッションへの参加を許可されるかどうかを判定するために、本発明で実施されるステップの概略を示す流れ図である。
【図８】参加予定者がオンラインセッションへの参加を許可されるかどうかを判定するために適用されるロジックを示すより詳細なフローチャートである。
【図９】本発明に従ってユーザフィルタを更新するステップを示す図である。
【図１０】本発明に従ってセッションフィルタを更新するステップを示すフローチャートである。
【図１１】本発明でユーザフィルタがどのように生成されるかを示すブロック図である。
【図１２】本発明のセッションフィルタを生成する処理を示すブロック図である。
【図１３】本発明によるミュートまたはゴースト化のサーバ側実装で実施される論理ステップを示すフローチャートである。
【図１４】ユーザまたはクライアントが対話を制限するポリシを実施するシステムでミュートまたはゴースト化を実施する論理ステップを示すフローチャートである。
【図１５】オンラインセッションの参加者の間で対話を制限する（すなわち、ミュートするかゴースト化する）時を判定する論理ステップを示すフローチャートである。
【図１６】ゴースト化での、オンラインセッションの参加者の間で対話を制限する様々なオプションをリストした表である。
【符号の説明】
【００８０】
３２０ａから３２０ｎ  ブロックリスト
３２２  プレイヤー固有識別子（ＰＵＩＤ）
３２４ａから３２４ｎ  ブルームフィルタ
３２６  セッションフィルタ
４３０  ユーザＰＵＩＤ
４３４  ２バイトセグメントＡからＤ
４４６  ユーザフィルタ
４５４  ハッシュ結果
４５８  修正されたハッシュ結果
４７０  セッションフィルタ
【図１】
2005353012.tif 000003
【図２】
2005353012.tif 000004
【図３】
2005353012.tif 000005
【図４Ａ】
2005353012.tif 000006
【図４Ｂ】
2005353012.tif 000007
【図４Ｃ】
2005353012.tif 000008
【図５】
2005353012.tif 000009
【図６】
2005353012.tif 000010
【図７】
2005353012.tif 000011
【図８】
2005353012.tif 000012
【図９】
2005353012.tif 000013
【図１０】
2005353012.tif 000014
【図１１】
2005353012.tif 000015
【図１２】
2005353012.tif 000016
【図１３】
2005353012.tif 000017
【図１４】
2005353012.tif 000018
【図１５】
2005353012.tif 000019
【図１６】
2005353012.tif 000020