スポンサーリンク

【LoL】クライアント クリーンアップは続く

スポンサーリンク

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

今回がその第3回目となります。(第1回のブログ第2回のブログもご覧ください)

要約:クライアントの原動力となるコードをクリーンアップするという目標に向かって着実に進んでいます。また、その過程で修正されたやっかいなバグも以下にまとめています。着実に成果はあげているものの、やるべきことはたくさん残っています。「クリーンアップ キャンペーン」はまだ続きます。

引用元: 公式





Jayce
クライアントで利用されているプラグインとEmberアプリの数を大きく減らしたの?事情をよく知らない者には、進捗は最小限に見える。バグに関しては、修正済みだったはずのバグが数パッチあとに再び発生したのをいくつか見てきたよ…

 

>>Jayce
Summoner1
プラグインの数を減らすと、潜在的に失敗する可能性のある相互作用を減らすことになる。バグのようなね。
また、馴染みのないプログラムコードを触る場合、比較的単純なパートから触り始めて、どのように動作するのかを理解しながら、少しずつより複雑なプログラムコードに触るまで、作業を進めていくと思う。クライアント・クリーンアップが続けば、より迅速な進捗が見られるようになると思う。

 

>>Summoner1
Bard
作ったときにどう動作するのか理解しておけよ。まったく。

 

>>Bard
Summoner2
今クリーンアップに取り組んでいる開発者と、クライアントを作った開発者が別である可能性はとても高い。

 

>>Summoner2
T1
大きな企業ではよくあること。プログラムコードを書いたやつが退社していなくなる。幸運なら、コメントが丁寧に書かれたプログラムコードを引き継ぐことになる。そうでないなら、Riotで働いているということになる。

 

Summoner3
数百個を超える歯車や小さなネジで組み立てられた時計を想像してみてくれ。プラグインを外すことは、時計が機能しているときにそれらのネジをひとつひとつ外していくことを意味している。時計が壊れたなら、以前よりパーツが少ないから、どのパーツが原因なのかを以前より特定しやすくなる。

 

>>Summoner3
givanse
Webプラグインの性質は、ソフトウェアエンジニアではない人にとってはとても抽象的なものであり、たとえ話をするのは難しい。でも、君の話は近いと思う。俺は好き。

 

Summoner4
または、そこら中で園児がいたずらをしまくる幼稚園で、全員よりは何人かの園児を注意深く見守るほうが、幼稚園が燃える可能性が低くなるという言い方もある。

 

>>Summoner4
givanse
これもうまく捉えた表現だね(笑)

 

Summoner5
ARAMが終わって名誉画面が固まったときにこの記事を読むのが好き。信じられる。

 

>>Summoner5
givanse
クライアントを再起動し、バグレポートボタンからクラッシュを報告してくれ。
このバグを社内で再現することができないんだ。知識に基づいた推測で修正を試みた。より多くのレポートがあれば、パターンを見つけるのに非常に助けになる。

 

Teemo
QAをやっているものとして言わせてもらうと、適切なロギングがない限り、何も検出されず、「あぁ、このバグを再現できない」ともう一度言うことになるよ。Rito、適切なロギングをすればさらに多くのバグがお前たちのパソコンで突然再現可能になるよ。

QA(Quality Assurance)は、ソフトウェアなどの開発物の品質全体を保証すること、およびその職種。
ソフトウェア品質向上プラットフォームより
ロギングとは、起こった出来事についての情報などを一定の形式で時系列に記録・蓄積すること。そのように記録されたデータのことを「ログ」(log)という。
IT用語辞典より

 

>>Teemo
givanse
プラグインごとのかなりよいロギングがあるよ。複数のプラグインの相互作用によりバグが発生している場合は特定が難しいため、プラグインの数を減らすことには高い価値がある。

 

>>givense
Teemo
100%同意だ。お前たちのバックエンドがどうなっているのか分からないけど、エラーロギングの一部にスタックログがあると思う。

 

Summoner6
俺はエラーレポートにゲーム時間の大半を費やしている。ログインすると俺のクライアントはいつもこんなだ。

 

TL
修正したという少なくとも5つのバグにまだ遭遇している。ログインのスピードは早くなったが、クライアントの右半分が表示されないから、15分は待たないといけない。ルーン選択画面はまだバグっぽく、しばしばクラッシュする。リーグボイスはマック版だとまだ機能しない。クライアントは、実際よりも多くCPUを専有している。

 

>>TL
b4r0k
やぁ、フィードバックどうもありがとう。俺は今年の2月からこのプロジェクトに参加したんだ。ルーン選択画面のバグについて、もっと詳しく教えてくれないか?どんな小さなことでも、とても有り難い。

 

>>b4r0k
TL
やぁ、返信ありがとう!チャンピオン選択画面でルーン選択画面を開くたびに5~10秒かかる。しばしばルーンの保存に失敗する。ゲーム開始1秒前じゃなくてもだ。3~5パッチごとにルーンがリセットされるけど、これは大きな問題じゃないと思っている。一般的に、ルーン選択画面を開くたびに、遅かったり、保存に失敗する。

※以下、Rioterとコメント投稿者による詳細なやりとりが続く

 

翻訳元:  reddit

 

管理忍

あちら立てればこちらが立たぬでござる。

スポンサーリンク
LoL公式

コメント

  1. 早くやれよ!って急かす人多いけどRiotが取り組むと言ってるんだからゆっくり待つしかないな
    まあ今まであまり取り組まなかったのが問題なんだけど

  2. バグを直すとバグが増えるゲーム

  3. 構造が複雑になればなるほど、あちらが立てばこちらが立たずってなることがしばしばあるよね。
    パズルゲームに近い

  4. こうならないように新クライアントにしたんじゃなかったのか?

  5. モルデカイザーがバグを抑えていた定期

    10
  6. Riotは嘘つきではないのです
    ただ間違えるだけなのです

  7. >大きな企業ではよくあること。プログラムコードを書いたやつが退社していなくなる。幸運なら、コメントが丁寧に書かれたプログラムコードを引き継ぐことになる。そうでないなら、Riotで働いているということになる。

    すき

  8. 今までと違って今回は直す意図がハッキリ見えるから待てるでござる
    スパゲッティは一日にして成らずでござ

  9. ユーザーがこれだけいれば多種多様なバグ報告があるだろうけどまた同時に人が多すぎる故に的を射てない報告や状況や意図が伝わらないノイズが増えてフィードバックによる病巣の特定が進まないのもまあありそう

  10. 今仕事で似たような状況になってるので他人事じゃねぇな・・・
    開発チーム頑張れ

  11. 64bit版のクライアント開発した方がいいんじゃないの
    いつまで32bitなんだ

  12. プログラマーを軽視する会社にエンジニアは居座らないでござる。この時代に行く宛はどこでもあるでござるからな。
    だから結果として初心者が構成することになり、こうなっているでござる。これは技術力の問題ではなく経営方針や社風の問題でござるから、バグの再発は確実でござるよ。

  13. プログラマーの自分としては見ていて胃が痛くなる

  14. いうて無料でやってるユーザーが待遇がどうのとかいってもな

  15. 無料でやっててもユーザーはユーザーだよ

  16. 無料ユーザーがいなければこんなゲーム流行らんわ

  17. 素人が傍から見てるとこうなったら1から作り直したほうがマシなんじゃないのって思うけど違うのかな
    ゲームクライアントを作り直すのは物凄いコストがかかるから無理なのは分かるけどロビークライアントならそこまでコストかからなさそうなもんだけど

  18. >>17
    1から作り直した結果が新クライアント、ただし機能のほとんどをコピペしてる気がするから意味はほぼない。
    あとゲームクライアントを作り直すコストは物凄くは無い、LoLの場合は過去に作った人が多分いないとか設計書が無いから苦労しているんだと想像出来る。

  19. 新新クライアントが必要でござる。

  20. 経験による修正を行なってナレッジやら修正した時のエビデンスやらをちゃんと保管してないんやろな。あとはプログラム内のコメントのルールとかがあまり機能的ではないものになってるんやろな。

  21. アメリカじゃプログラマーは花形の職業のひとつで高級取りかつ引く手あまただから、世界一プレイヤーが多いといってもLoL一本足の小さなゲーム会社のRiotが優秀なプログラマーを引き止め続けるのは難しいと思う

  22. 優秀なプログラマーって結局何が違うのでござるか?本職いたら教えてほしいでござる

  23. このクリーンアップキャンペーンが成功したとしても今のクライアント自体普通に不便だと思うから新しいの作ってほしかったな
    このクライアントを使い続ける限り設定にあの項目がないとかトークンやカギを1個ずつしか交換できないとかいう類のスレが延々と立ち続けることになる

  24. グローバルにスキルを使えるような致命的なバグの場合
    使った人がBANされるのはわかるんだけど、それで負けた人に補填されないと意味がないんだよ

  25. 俺の仕事も間違いなんかを見つけて修正する仕事だからこれの辛さがわかる
    間違っているのかうまく利用してるのか判断しないといけないすげえ神経つかう
    かなりの項目があってできたと思っても絶対に一発ではうまく行かない
    楽しくないトライアンドエラーをずっと繰り返す
    頑張ってくれとしか言えんね

  26. >>22
    本当に優秀なプログラマは並以下の人が見ても理解しやすい可読性の高いコードを書きつつ、将来的に改造がしやすい拡張性の高いものを残す。

    優秀な人とそれ以外の人が同じ目的のものを作った場合、作った直後は同じ動きをするかも知れないけど、その後改造したり移植する場合に圧倒的な差が出る。主にバグとして。

  27. 伸びてやわやわになったスパゲッティを、一本一本千切れないように丁寧に解して並べるような作業

  28. 日本とアメリカの優秀なプログラマーの基準は全然違うでござる。

    日本=可読性が低くても短く簡潔に書ける人。読めない人=知識がない=無能。

    アメリカ=誰でも読めて、かつキレイなコードをかける人。誰にでもわかるように説明出来ない=無能

    どっちでも働いたことはあるでござるが、こんな感じでござる。

  29. >>28
    分野は違うでござるがやはり傾向としては同じでござるな
    拙者の分野でも日本の専門書は簡潔に要点がまとまっているから専門家が読めば非常に分かりやすいでござるが、初学者にとっては非常に難解な本ばかりでござる
    一方で洋書はこれでもかと初学者にも分かりやすく書いてある一方でとんでもない分厚さの本が多いでござる

  30. クライアントが治ろうが中の人間の頭の中が治らないと何も変わらないんだけどな