Platform SDK: DirectX

グループ管理

DirectPlay は、セッション内のグループをサポートする。グループは、プレーヤーの論理的な集まりである。アプリケーションはメッセージをグループに送信することができる。すると、そのグループ内のすべてのプレーヤーがメッセージを受信する。プレーヤーと同じく、グループは、セッションの継続中に再利用されない一意の番号によって識別される。

グループは、セッションに参加しているプレーヤーを整理するために利用できる。たとえば、チーム別に整理することが可能である。プレーヤーは 2 つ以上のグループに属することができる。グループを破棄すると、すべてのプレーヤーがグループから削除されるが、プレーヤー自体は破棄されない。

また、グループはサブグループや、グループへのショートカットを保持することができる。CreateGroup メソッドを使用してグループを作成すると、そのグループが最上位のグループ (A とする) になる。このグループへのショートカットを、AddGroupToGroup メソッドを使用してほかのグループ (B とする) に追加することができる。グループ B を破棄すると、A へのショートカットも破棄されるが、A は最上位のグループとして残る。一方、CreateGroupInGroup メソッドを使用してグループ B 内でグループ A を作成した場合、A は最上位グループではないので、B を破棄すると、A も破棄される。

グループに送信されたメッセージは、そのグループに直接または間接的に属するすべてのプレーヤーに送られる。たとえば、Quarterback というプレーヤーを BlueOffense というグループに追加し、BlueOffense グループを BlueTeam グループに追加したとしよう。Quarterback は BlueTeam に直接追加されたわけではないが、BlueOffense に送信されたメッセージだけではなく、BlueTeam に送信されたメッセージもすべて受信する。

プレーヤーのグループを管理するための独自のシステムを実装するよりも、DirectPlay のグループ管理方法を利用した方が賢明である。DirectPlay は、サービス プロバイダのあらゆるマルチキャスティング機能を利用してグループ メッセージを送信し、メッセージ トラフィックを軽減することができる。詳細については、「ピアツーピア セッション」を参照すること。

[C++]

DirectPlay は、グループとそのメンバを管理するために不可欠な以下のメソッドを提供する。

IDirectPlay4::AddPlayerToGroup は、プレーヤーをグループに追加する。

IDirectPlay4::CreateGroup は、新しい最上位グループを作成する。

IDirectPlay4::DeletePlayerFromGroup は、プレーヤーをグループから削除する。

IDirectPlay4::DestroyGroup は、グループを破棄する。

IDirectPlay4::EnumGroupPlayers は、グループ内のプレーヤーを列挙する。

IDirectPlay4::EnumGroups は、セッション内のすべてのグループを列挙する。

DirectPlay は、グループとグループ情報を管理するための以下の追加メソッドを提供する。

IDirectPlay4::AddGroupToGroup は、グループのショートカットを既存のグループに追加する。

IDirectPlay4::CreateGroupInGroup は、既存のグループ内にグループを作成する。

IDirectPlay4::DeleteGroupFromGroup は、AddGroupToGroup を使用してグループに追加されたグループを削除する。ただし、削除されたグループは破棄されない。

IDirectPlay4::EnumGroupsInGroup は、グループ内のグループをすべて列挙する。

IDirectPlay4::GetGroupConnectionSettings は、グループの接続設定を取得する。

IDirectPlay4::GetGroupData は、グループに関連付けられたアプリケーション固有データを取得する。

IDirectPlay4::GetGroupFlags は、グループの作成方法に関する追加情報を取得する。

IDirectPlay4::GetGroupName は、グループの名前を取得する。

IDirectPlay4::GetGroupOwner は、グループの所有者を取得する。

IDirectPlay4::GetGroupParent は、CreateGroupInGroup を使用して作成されたサブグループの親の ID を取得する。

IDirectPlay4::SetGroupConnectionSettings は、グループの接続設定を行う。

IDirectPlay4::SetGroupData は、当該のコンピュータによって作成されたグループに関連付けられているアプリケーション固有データを変更する。

IDirectPlay4::SetGroupName は、当該のコンピュータによって作成されたグループの名前を変更する。

IDirectPlay4::SetGroupOwner は、グループの所有者を変更する。

[Visual Basic]

DirectPlay は、グループとそのメンバを管理するために不可欠な以下のメソッドを提供する。

DirectPlay4.AddPlayerToGroup は、プレーヤーをグループに追加する。

DirectPlay4.CreateGroup は、新しい最上位グループを作成する。

DirectPlay4.DeletePlayerFromGroup は、プレーヤーをグループから削除する。

DirectPlay4.DestroyGroup は、グループを破棄する。

DirectPlay4.GetDPEnumGroupPlayers は、グループ内のプレーヤーを列挙する。

DirectPlay4.GetDPEnumGroups は、セッション内のすべてのグループを列挙する。

DirectPlay は、グループとグループ情報を管理するための以下の追加メソッドを提供する。

DirectPlay4.AddGroupToGroup グループのショートカットを既存のグループに追加する。

DirectPlay4.CreateGroupInGroup は、既存のグループ内にグループを作成する。

DirectPlay4.DeleteGroupFromGroup は、AddGroupToGroup を使用してグループに追加されたグループを削除する。ただし、削除されたグループは破棄されない。

DirectPlay4.GetDPEnumGroupsInGroup は、グループ内のグループをすべて列挙する。

DirectPlay4.GetGroupData は、グループに関連付けられたアプリケーション固有データを取得する。

DirectPlay4.GetGroupFlags は、グループの作成方法に関する追加情報を取得する。

DirectPlay4.GetGroupLongName は、グループのログオン名または正式名を取得する。

DirectPlay4.GetGroupOwner は、グループの所有者を取得する。

DirectPlay4.GetGroupParent は、CreateGroupInGroup を使用して作成されたサブグループの親の ID を取得する。

DirectPlay4.GetGroupShortName は、グループのショートカット名またはフレンドリ名を取得する。

DirectPlay4.SetGroupConnectionSettings は、ロビー セッションにおけるグループの接続設定を行う。

DirectPlay4.SetGroupData は、当該のコンピュータによって作成されたグループに関連付けられているアプリケーション固有データを変更する。

DirectPlay4.SetGroupName は、グループのロング ネームとショート ネームを変更する。

DirectPlay4.SetGroupOwner は、グループの所有者を変更する。