Dev
クライアント:次は「チャンピオン選択」

クライアントのブートストラップタイム改善は今回で一段落し、次はチャンピオン選択に取り組みます。

Dev作者Riot Cactopus, Riot Am1t, Riot A Huevo
  • クリップボードにコピーされました

今年の初め、私たちはリーグ・クライアントのパフォーマンス改善のため、内部で行っている作業の進捗を隔月でお伝えしていくことをお約束しました。

今回はその第4回目となります。(123回のブログもご覧ください)

要約:クライアントのブートストラップタイムについてはある程度改善できたため、今後はチャンピオン選択など、優先度の高い部分への取り組みにより力を入れていきます。またクライアントとその問題点について、プレイヤーの皆さんへのアンケート調査から得られたデータの一部もご紹介したいと思います。

クライアントのブートストラップタイム

今年初頭、私たちは「クライアントのブートストラップタイム(ゲームクライアントが起動するまでにかかる時間)を、処理の遅いPC上でも15秒まで短縮する」と宣言しました。

あれから多くの時間を費やしてクライアントのアーキテクチャを奥底まで掘り返し、クライアントを動かしているプラグインやアプリの数々に潜んでいた問題点を一掃しました。さらにここ数週間でいくつかのブレイクスルーもあり、掲げた目標にかなり近づくことができました。

timeseries_JA.jpg

現在、ブートストラップは90パーセンタイルのプレイヤーでおよそ18.5秒にまで短縮されています。要するに、約90%のプレイヤーの皆さんのブートストラップタイムがさらに短縮されたということです(ここ最近のパフォーマンス向上については、遅いマシンをお使いのプレイヤーの皆さんの方が実感しやすいものとは思いますが)。

過去の記事でもお話したように、新型コロナウィルス感染症の流行の影響によりプレイヤーのトラフィックが増大し、ブートストラップタイムが逆に増加してしまったことがありました。上のグラフで急増が見られる部分は、今年の3月頃に当たります。

この急増の後もずっと地道に改善作業を続けていましたが、最も大きな改善に成功したのはごく最近、パッチ10.16でのことです。これについては担当チームによる2つの打開策が鍵となりました。

まず、クライアント内に含まれている68個のプラグインが、それぞれどの程度ブートストラップタイムに影響しているか調査する機能を、パッチ10.14で実装しました。そこで一部のプラグインが、その他のものより大きな問題を起こしていることが判明しました。60個のプラグインはすべて合わせてもロード時間の内の25%しか取っていない一方で、たった8個のプラグインが75%ものロード時間を占めていたことが分かったのです。

ここで得られた結果によって、統廃合すべきプラグインの選定がとても楽になりました。またこの統合作業と並行して、さらに別のアプローチも取ってみることにしました。パッチ10.16から「実際にプレイヤーが使おうとするまで、特定のプラグインやEmberアプリの読み込みを保留する」という解決策を本格的に導入したのです。

こうしてブートストラップタイムについては当初の目標にかなり近づけられたため、ようやく「チャンピオン選択画面の操作感と安定性、さらにその他の重要な部分の改善」という当キャンペーンの次のフェーズへと進む見通しが立ちました。

この計画の詳しい内容についてお話する前に、世界中のプレイヤーの皆さんにご回答いただいたクライアントに関するアンケート調査の結果を、ここで一部ご紹介したいと思います。

クライアントに関する意見のアンケート調査結果

皆さんはきっとこう思われていることでしょう。「本当にライアット…クライアントについて今更アンケートを取る必要ある?出来が悪いって分かってるじゃん!」

そしてそれも当然、と言わざるを得ません…。ですが今回は各種の不具合について、より細やかな意見が欲しかったのです。種々の問題点がそれぞれどの程度認知されているか?その中で特に不満が多いものはどれか?こういった疑問に対する答えが得られれば、今後の作業をより効率よく進めていけるようになります。さらに、クライアント周辺についてのご意見を情報として残していくことで、皆さんのご意見の時間経過による変化を確認することもできるのです。

初回のアンケート調査はごく一部の地域でしか行いませんでしたが、作業の進展の度合いを確認するため、(必要に応じて質問を調整、追加、削除しつつ)今後も調査を継続していきたいと考えています。

ということで、今回ここになかなか興味深い図表を色々ご用意しました。

まず最初に、私たちが調べたかったもの一つが、クライアントに対する反応の月ごとの傾向です。

chart1_JA.jpg

結果としては妥当なものですが、同様のアンケート調査を継続することで作業の進展をより正確に確認できるようになっていくことから、データとしては有益なものです。またこのデータについては、今後も公開していこうと考えています。

以降の設問では、問題点についてさらに詳しくお聞きしました。

chart2_JA.jpg

不具合の発生頻度に差はあるものの、およそ50%ものアンケート回答者が、選択肢にある問題のうち少なくとも1つを経験されていました。

次に、技術的な不具合に遭遇されたプレイヤーの皆さんに、その不具合がどの程度不快に感じられたかを「まったく不満(不快)ではなかった」から「ものすごく不満だった」までの5段階で評価していただきました。以下のグラフは、それぞれの不具合を「とても不満だった」または「ものすごく不満だった」と評価された回答者の割合です。

chart3_JA.jpg

そしてこちらはそれぞれの問題の体験報告数と、それに対して回答者が感じた不快感を散布図にしたものです。

chart4_JA.jpg

これらの図表から、2つの問題点が飛び抜けて目立っていることが分かります。

まず、チャンピオン選択でピックやバンができなくなる不具合が最も大きな問題となっています。次に、対戦結果画面でロード時間が長くなる不具合がかなり頻発しています。この情報のおかげで、次のフェーズで力を入れるべき点に確信を持つことができました。

次のステップ

今後数ヶ月間は、クライアント上で特に頻発している、特に不快な問題点の解消に取り組んでいこうと思います。というわけで「クライアント・クリーンアップ・キャンペーン」の次のステージは「チャンピオン選択」と、「対戦結果画面から名誉画面、そしてクライアントへと戻る際の移行動作」の改善です。

ではまず、チャンピオン選択についてお話しましょう。

今年2月、私たちの最終目標はチャンピオン選択でのUI/UXボタンの操作感の改善、具体的には「全プレイヤーの90パーセンタイルにおいて、『ロックイン』ボタンのような要素の応答時間を100ms以下まで高速化する」ことであると述べました。

その一方で、チャンピオン選択に関する基礎的なコンポーネントからリファクタリングを行わなければ、プレイヤーの皆さんを満足させられないこともすでに判明しています。

チャンピオン選択に関する今後の取り組みでは、以下の3点をお約束します。

  1. チャンピオン選択をよりスムーズかつ安定感のあるものにします。これについては以前からも「もっとチャンピオン選択のスナップ感を高め、操作感を良くしてほしい」というご意見を頂いていました。既存コンポーネントのリファクタリングを行って反応速度を改善し、メモリ消費を抑え、アーキテクチャを簡素化し、意図しない対戦回避を削減できるよう努めます。
  2. チャンピオン選択画面でのユーザーエクスペリエンス(UX)とユーザーインターフェース(UI)を評価し直します。デザイン担当チームと協力して、質の低いと感じられるアニメーションやリソース消費の激しいコンポーネントの中から、削除または合理化できる部分を検討します。
  3. 既知のバグを可能な限り修正します。これについては悪影響の大きいものから順に対応していきたいと思います。

またチャンピオン選択に集中的に取り組んでいる間も、名誉画面から対戦結果ロビーへの移行をスムーズにする作業に人員を割き、別途進めていく予定です。あまりに多くのプレイヤーがゲームの流れのこの部分でラグを経験していることから、現在すでに修正に向けた作業計画の検討が始まっています。

この作業については、私たちの予想より確実に時間がかかるでしょう。それでも当キャンペーンでは一貫して自分たちの仕事の内容を、社内での会話と同様に皆さんにも「正直に、はっきりと」お伝えすることを心がけていきます。

作業の進展については二ヶ月後、また新しいブログ記事でご報告したいと思います。いつもながらプレイしていただき、ありがとうございます。それではまた。



  • クリップボードにコピーされました