ゲーム開発のクラッシュログ、原因調査で残しておきたい情報とは
ゲームのクラッシュ調査では、例外名とスタックトレースが残っていても、原因になかなか近づけないことがあります。
あるスマホゲームで、報酬画面に進むタイミングでクラッシュする不具合がありました。ログには例外名とスタックトレースが出ていましたが、端末やOS、アプリのバージョン、クラッシュする直前に何をしていたのかが曖昧でした。
この状態では、コード上で問題が起きた場所は確認できても、どの条件で発生したのかを絞りにくくなります。結果として、かなり広い範囲を手探りで確認することになり、相当手間取りました。
クラッシュログを見るときは、エラーそのものだけではなく、そのエラーがどの環境、どの操作、どのタイミングで発生したのかまで確認できるかが調査の進めやすさを左右します。
発生条件が分かると確認範囲を絞りやすい
たとえば、「報酬画面でクラッシュする」という情報だけでは、確認する範囲はかなり広くなります。
そこから、
「特定端末で発生している」
「v1.2.3から発生している」
「クエストクリア後の報酬画面で落ちる」
「通信が不安定な状態で連打したときに多い」
「同じ操作での再現率が高い」
というところまで分かると、チェックするポイントはかなり絞れます。
端末に依存する問題なのか、特定バージョンで入った変更なのか、通信処理や画面遷移のタイミングなのか。再現条件が整理されていれば、実装担当者は確認するコードや変更差分を追いやすくなります。
QAでも、どの端末と操作条件で再現確認を行うか決めやすくなります。
スタックトレースだけでは分からなかった情報が、端末、OS、バージョン、操作状況とつながることで、調査の入口がかなり変わります。
クラッシュログを見るのは開発だけではない
クラッシュログは、同じクラッシュを繰り返さないために、原因へ近づくための手がかりになります。
確認したいのは、スタックトレースだけではありません。端末情報、OS、アプリバージョン、直前の操作状況、発生件数、影響ユーザー数、再現率なども一緒に見られると、状況を整理しやすくなります。
こうした情報がつながっていると、開発者の原因調査だけではなく、QAの再現確認も進めやすくなります。
ディレクターが影響範囲を確認するときや、CSがユーザーからの問い合わせ内容と不具合を確認するときにも、共通の情報を見ながら話せます。
「クラッシュした」という事実だけでは、優先度や影響範囲を判断しにくい場合があります。何件発生しているのか、どれくらいのユーザーに影響しているのか、同じ操作でどの程度再現するのかまで分かれば、次に何を確認するか決めやすくなります。
「ログのログ」を残して次の改善につなげる
ログは品質改善の入口でもあります。
ゲームのQAやデバッグを行ったあとに、「どんなログがあって助かったか」「どんな情報がなくて調査に時間がかかったか」を記録しておくと、次の開発でログを設計するときに見返せます。
端末情報があって助かった。バージョンが分からず確認範囲が広がった。直前の操作が分かれば再現確認を進めやすかった。
こうした記録が残っていれば、新しい機能を実装するときやログを見直すときに、何を出力しておくか確認できます。経験上、この整理があるだけでも次の開発はかなり楽になります。
不具合そのもののログを残すだけではなく、「調査するときに、どのログが役立ったのか」まで残しておく。
いわば「ログのログ」です。
クラッシュが発生してから情報不足に気づくのではなく、過去の調査で不足していた情報を次のログ設計に反映できれば、同じような不具合が起きたときに確認する範囲を絞りやすくなります。
おわりに
日々の発信は、X・Bluesky・Facebookでも行っております。
記事の更新や、開発・採用・マネジメントについての短い投稿はこちらでもご覧いただけます。
X :https://x.com/itchie_tatsumi
Bluesky :https://bsky.app/profile/itchie-tatsumi.bsky.social
Facebook:https://www.facebook.com/ichino.souta
また、辰巳電子工業SS事業部では、エンジニアが安心して長く働ける環境づくりに取り組んでおります。
案件やキャリア支援、カジュアル面談にご関心のある方は、こちらもご覧ください。
いいなと思ったら応援しよう!
いただいたチップはクリエイターとしての活動費、ならびに故郷への貢献に使わせていただきます! 