Microsoft DirectX 8.0 (Visual Basic) |
快適なゲーム体験の提供とは、通常、最新情報やその他の情報を、ターゲットの処理能力を超えない範囲で、できる限り速く送信することを意味する。Microsoft® DirectPlay® プロトコルと非同期メッセージングを組み合わせると、メッセージング方法を動的に最適化して、ユーザーに快適なゲーム体験を提供することができる。
メッセージングの大半では、DirectPlay8Peer.SendTo、DirectPlay8Client.Send、または DirectPlay8Server.SendTo メソッドを使用する。これらのメソッドは、通常、メッセージ カテゴリに関係なく非同期に動作する。メソッドからは即座に復帰し、メッセージが実際に送信されると、DirectPlay からメッセージ ハンドラの DirectPlay8Event.SendComplete メソッドが呼び出される。
一方、DPNSEND_SYNC フラグを設定すれば、メッセージを同期で送信できる。その場合、Send および SendTo メソッドはメッセージが実際に送信されるまでブロックする。
DirectPlay プロトコルのスロットリング メカニズムでは、クライアントの処理能力を超える速度でメッセージが渡されないことが保証される。ただし、流出用のキューにメッセージが入る頻度は制御されない。このため、未送信メッセージのキューに大量のメッセージが溜まってしまうことがある。この状況はメッセージの送信頻度を抑えることによって避けることができるが、こうするとユーザーに提供されるゲーム体験の品質が不必要に低下しかねない。最もよいメッセージング方法は、ターゲットの処理能力を超えない範囲で、メッセージをできる限り速く送信することである。
メッセージング方法を最適化するためのヒントは、以下のようになる。