久々に 3 人の開発者が集まったので 3 人対戦をテスト。私は普通の電話回線,1 人は ISDN,もう一人はフレッツ ISDN でルータ経由。ルータ経由の人はウェザタイポートを全てそのマシンに行くように設定済み(のはず)。
で結果だが,タイトルまでは行くものの,そこからスタートできない。リターンを押しても反応なし。2 人対戦や,ローカル 4 人対戦では可能なので原因不明。で,とりあえず詳細ログを取り,解散。
いろいろ見ていると,どうやらユーザー情報(ハンデとか)を送る部分で止まっているらしい。これは ver1.0 のときはなかったので,あの頃はうまくいっていたというのも納得だ。詳しく言うと
IDirectPlay8::SendTo()
から返ってこないらしい。ので,その後のメッセージ交換が一切行われなくなるらしい。とりあえずこのユーザー情報送信部分を移動させ,回避するようにしてみた。
しかし,再び 3 人対戦でのテストをしなければならないので,直ったとは言えないのである。一人は帰省中だしなかなか難しい。LAN とかで再現してくれればすぐ解決できると思うんだけどなあ。