クライアント クリーンアップ:チャンピオン選択&試合終了時

チャンピオン選択と試合終了時における問題の改善に取り組んでいます。

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

本日のアップデートは、シリーズ第5回目のブログとなります。(第1回第2回第3回第4回合わせてご参照ください。)

TL;DR:クライアントの起動時間とアーキテクチャの改善が完了したため、ついにチャンピオン選択に取り掛かります。また、「試合終了時」を新たな優先事項として採用しました。

チャンピオン選択に取り掛かる

3月にこのブログシリーズを開始したとき、クライアントのブートストラップタイムとチャンピオン選択時の応答時間を順に解決するという、2つの主要な目標についてお話しました。9月には、90%のプレイヤーのブートストラップタイム(クライアントの起動時間)を15.5に短縮することを達成し、ついにチャンピオン選択に取り掛かると発表しました。

そしてこちらが最初のアップデートです。

チャンピオン選択におけるメモリ使用量

私たちはクライアントの残りの部分(統合すべきEmberアプリ、最適化すべきコード、修正すべきバグなど)と同様に、チャンピオン選択にも修繕が必要であると予想していました。深く掘り下げていくうちに、予期せぬタイプの問題が見つかりました。チャンピオン選択(およびクライアント)のメモリ使用量が、同じプレイセッションで実行するたびに増加するのです。

90パーセンタイルの場合、以下のようになります。

  • チャンピオン選択を初めて実行すると、クライアントのメモリ使用量が481MBに跳ね上がります。
  • 2回目は56MB上昇します。
  • 3回目以降は、15MBから25MBまでの小幅な上昇が生じます。
  • graphcomms.jpg

1回のセッション中に試合を行えば行うほど、最終的には再起動がほぼ必須になるまでクライアントの動作が重くなっていきます。

クライアントのメモリリークの存在は今に分かったことではないのですが、私たちはその一部がチャンピオン選択で発生しているものであると今回分かったのです。発生しているメモリリークの大きさと範囲を鑑みて、アプローチの変更が必要となりました。私たちは当初計画されていた取り組みと並行して、現在、クライアント全体のメモリリークをより効率的に特定して対処できるようにする、より専門的なデベロッパーツールの実装に取り​​組んでおり、改善の実現にかかる時間を短縮しているところです。

並行して、と言いましたが、進捗はわずかではあるものの、パッチ10.23でチャンピオン選択のパフォーマンスに初めて小規模な改善を施す予定です。サモナースペルとワードスキンの選択が改善され、開いた際にEmberアプリが追加で作成されないようになりました。これにより、プレイヤーがチャンピオン選択画面でスペルとワードスキンを設定した際に、メモリ使用量が測定可能な範囲でわずかに減少します(〜1.6 MB)。これらは、私たちが発見した最も初期のメモリリークの2つであり、それらを修正することは、近い将来に大きなメモリリークへ取り組むための導入として優れた方法でした。年末までに、より分かりやすい改善が実装できると見込んでいます。

チャンピオン選択におけるUX/UIの見直し

チャンピオン選択を作り直す際、壊れているものを修復する以外に私たちが行うことは、プレイヤーが気にかけていている部分と、そうでない部分(それゆえに削減や削除が可能な部分)の特定です。その論理的根拠は、チャンピオン選択がゲームで繰り返し行われる重要な体験であるため、複雑さが少ないほど問題が発生する可能性が減少するということです。プレイヤーの調査データを活用し、チャンピオン選択のユーザー体験(UX)とユーザーインターフェイス(UI)に関して何が重要かを調べます。また、クライアント内の指標を追加して、プレイヤーのアクティビティデータによるこれらの調査を強化しています。

以下に示すのは、初期の結果の一部と、それに対して私たちが実施したもの、もしくは実施予定のものです。

  • プレイヤーは、特にチャンピオンのピックとバンに関して、ボタンのクリックが認識されたかどうかをより速く明確にしたいと考えています。この明確さを実現するために、インターフェースが提供する視覚的および聴覚的フィードバックの速度と信頼性を向上させます。
  • プレイヤーは、サモナースペルやワードスキンの選択方式に重要性を見出していません。そこで、上記のメモリリークの問題を修正することに加えて、関連するアニメーションを削除することにしました。
  • 遠隔測定法を追加して、チャンピオン選択で試合の準備に必須ではない特定の機能をプレイヤーが使用する頻度を確認します。これらの機能が「あれば便利」のカテゴリーに分類される場合は、パフォーマンスの向上を最大化するために削除する可能性があります
    • エモートパネル
    • チャンピオンのお気に入り登録
    • ミッション

チャンピオン選択画面への移行

プレイヤーの皆さんからご指摘を受けた最大の問題点の1つは、チャンピオン選択画面への移行時に多くの問題が発生する可能性があることです。プレイヤーが目の前の試合に集中する準備ができていると感じられるようにするためには、チャンピオン選択の信頼性は必要不可欠です。チャンピオンのバンやピックの確定を妨げる可能性のある問題を解決することが重要です。また、何百もの試合で使用したスキン、サモナースペル、またはルーンが、知らないうちに変更されるかどうか心配する必要がないようにしたいと考えました。

この分野での作業を開始するにあたって、私たちのアプローチの主な狙いは、チャンピオン選択でプレイヤーが重要な決定を下すのに十分な時間と、バンとピックの信頼性を確保し、すべてのプレイヤーを正常に試合に参加させることです。

試合終了時

クライアントクリーンアップキャンペーンの開始当初に重点を置いていた分野ではありませんでしたが、試合終了(勝利/敗北画面で[続行]を押してから試合終了時のゲームロビーを操作できるようになるまでの間に発生する全てのこと)が、ブートストラップタイムやチャンピオン選択の応答性および信頼性とほぼ同等のストレスが溜まる箇所として持ち上がりました。私たちは以下の2つの不満点の改善に注力しています。

  1. クライアントがすぐに名誉画面に移行するのではなく、試合終了後しばらくの間「再接続」ボタンに留まり続ける不具合が報告されています。この問題の原因は現在調査中です。
  2. プレイヤーが勝利/敗北画面からクライアントに戻ると、クライアントがロックされ、名誉画面や試合後のロビーを表示したり操作したりできなくなることがあります。こちらにはいくつかの有力な修正案を用意しており、パッチ10.23で実装される予定です。

設定とポップアップ通知のバグ

チャンピオン選択と試合終了時の問題に取り組んでいる間にも、過去のいくつかのパッチにおける設定のバグ報告の急増にも対処してきました。これには、チャンピオン選択時にサモナースペルが記憶されない不具合や、古いポップアップ通知が何度も(そして何度も何度も何度も)表示されることなどが含まれます。これらの不具合を探し出すのは、控えめに言っても長い道のりでした。いくつかのチームが、ほぼ同時にバックエンドシステムの更新に独自に取り組んでおり、散在するエッジケースの束を作成し、少なくとも設定の不具合の一形式を経験している多くのプレイヤーの状況を一つにまとめて最悪の状況を作り出してくれました。前回のブログ以降、これらの問題の大部分を軽減するために役立つ3つの独立した改善策を導入しました。パッチ10.21で最新の修正が行われています。

チャンピオン選択と試合終了時の両方に大幅な改善を続けていますが、プレイヤーに大きな損害を与えるバグが発生した場合は社内チームと協力して探し出し対処していきます。

今回のアップデートは以上です!年末までにやるべきことはまだ山積みです。パッチごとにクライアントをより良いものにするため最善を尽くしておりますので、今しばらくお待ちください。