‘Warriors of Typing’のエントリ

Warriors of Typing #4 -冬の陣-が開催された。知る限りWT4になってから初めての大会なので、ラグ問題とか配信映えとかが気になってリアルタイムで配信を視聴。

WT4開発時、大会用に複数のゲームが観戦できる機能を用意しようと思ったけど、作るのが大変すぎて見送った。でも今回、ジェイさんしろさんαさんも同時配信していて、なるほど、ゲーム配信ってこういう仕組みでみんなでたくさんの画面を配信して、それぞれ見たい配信を見るのか、って納得。

ラグについては公式だと少しラグが目立っていて、他の配信だとLAN対戦と遜色ない感じだった。公式配信は3人対戦になるから少し重いのか、他に何か原因があるのか。確かに3人以上のラグ評価はしていない。

あと、ジェイさんのところで、ワード途中で打てなくなる問題があったが、おそらく入力ミスでTAB、Enterの組合せが押されたものだと思う。見た目どのボタンを押せるかも分からないのでEnter禁止したいけど、そういうことはできるのかな。

あと、ルール画面表示の時に結構時間がかかってるなあ、と思ったけど、何百回もゲームをやって記録が多くなってくると重くなっているのか。この辺りも直したい。

3/2のWarriors of Typing #0を観戦。たのんさん企画のタイピングオンライン対戦で、ウェザタイを使ってもらっている。定期的にやっていきたいとのことなので、今後にも期待というかウェザタイも頑張らないと。配信はTwitchで観られるので是非。

最初の話では、WT3.5でポート開放が不要になったのもきっかけということだったが、確かにこういう形だと、ポート開放があると難しい。いくつかの試合が同時進行なのでホストを一人でやることはできないし、接続が安定しないと大会がその都度中断されてしまう。

たのんさんも今回は#0でお試しと言っていたが、ウェザタイ的にもWT3.5が本格的に使われるのは初めてなので、サーバ負荷等、貴重なデータを取ることができた。大会中のサーバ負荷についてはCPU/Disk/Traffic特に問題なし。不安だった同時対戦についても、2人対戦を4試合同時くらいでは問題なし。むしろ、既に安定していると思っていたロビーサーバの方で対戦接続時にエラーが発生する現象があり、開始時間が遅れた。てことで今日、昔作ったロビー負荷テストクライアントをC#に移植してテストして、かなり負荷をかけてみると同じ現象が発生した。対戦開始時、対戦相手を検索するときにプレイヤー情報が入っていないときがあってエラーが出る。ただ、大会ではこんな負荷はかかってなかったしなあ、と思ってその視点でログを解析した結果、ようやく原因が判明。ロビーに入るときにパスワードが間違っているとクライアント側でエラーメッセージが出るのだが、これにOKを押さないと、ロビーサーバ上、プレイヤー情報がないメンバーが入ってきてエラーになってしまう。その人がOKを押せば直るのだが、その状態で放置するとその間は誰も対戦ができなくなっていた。たぶん初期からの問題。

あとはRTC2018でも起きていた、対戦が終了すると対戦相手がいなくなってしまう現象がまだ起きている。一応WT3.5で怪しそうな所は直したのだが、まだダメみたい。現象が発生したときの全員分のリプレイでもないと直せそうにない。

で、VTuber配信やオフライン大会など、新しい使い方が出る度にいろいろ改善したいことが出てくるが、今回もいくつかある。開発が間に合ってないけど。

  • ロビーのチャットのフォントサイズを変更できるようにする
  • 運営機能。ワードなどの設定を中央から強制したり、対戦結果を収集するなど
  • ゲスト側のルール画面に、ホスト側のワード数を反映させる
  • 観戦用のラグなしモード。リアルタイムから少しだけ遅れるが、対戦相手の打つ様子がスムーズに表示される機能
  • 上記を応用して、1フレーム内の打鍵を個別に扱うことで、ラグが大きいときに同着になる問題が改善できる。

2019/03/02にWTオンライン大会「Warriors of Typing」が開かれるとのこと。運営Twitter参照。

運営者さんからは、ポート開放の手間がないWT3.5を使いたいという打診が少し前にあって、WT3.5での対戦実績がないから少し不安なものの、OKを返している。とりあえずWTサーバが落ちるとどうしようもなくなるため、1分ごとに監視して落ちてたら再起動する、という保険は打っておいた。

ちなみにWT3.5はまだ開発版。Windowsデスクトップ版ではテストは完了しているのだが、Windowsストア、Android、iOS、Macが一通りそろってから正式版にしようかと考えている。今のままだと、Mac版の人とWindows版の人がデフォルトでは対戦できなくなってしまうので。まあ、今の使われ方ではそこまで気にしなくていいだろうけど。