#無料で始める!「龍が如く」を面白くするための高速デバッグログ分析と自動化
##講演者
阪上 直樹 さん(株式会社セガゲームス)
##講演内容
###デバッグログ
- 開発時に発生するログ
- printf出力したものやプレイログ(移動ログやダメージなど)
###デバッグログ分析
行うきっかけはゲームの品質を上げたい&面白くしたいため
####品質を上げるためのログ
- 強制終了するほどでもないが警告レベルの問題発生を確認したい。
- 実行頻度の低い関数の実態調査
####面白くするためにのログ
- ゲームの進行度・経験値のログ
- 分析したら客観的にバランス調整ができるかも?
###デバッグログ分析用の環境を構築
- Fluentd
- ログ収集や加工を行う
- Elasticsearch
- 全文検索エンジン
- JSON形式でデータを蓄積
- スキーマレス
- Kibana
- 可視化・BIツール
すべて無料のOSSで構築している
###運用
ログファイルを監視して1行ずつFluentdにJSON形式で送信する常駐アプリを作成・運用を行っている。
また、ログには必ずタイプを指定して他のところに別のデータが紛れ込まないように注意を行っている。
####問題と解決
- ログ送信機能を組み込んでもらうことが出来なかった。
- QAエンジニアが直接アプリ側に実装
- ログの分析ツールの起動が面倒
- URLクリックだけで確認できる環境を用意
###エラー検知
アプリテスト中に例外が発生した際、各種環境に送信を行う
BTSにバグ報告を行ったり、その際に出たログをFluentdに送信を行っている
バグ報告時に必要な項目は自動入力&その際のスクリーンショットも自動添付するようにし、
報告のコストを下げている
###オートテスト
夜間など使用していないPCを使いオートテストを行っている。
この際、ゲームパッドの擬似入力以外は行わないようにしている。
コリジョン抜けのチェックなどをこれで見つけることが可能。
###自動化とデバッグログ分析
オートテストを使って、その際に出たログを収集・分析を行う。
このときのログ情報を気軽に閲覧できるようにしている。
テストプレイ時のログ情報を自動分析を行い、ゲームバランスの調整を行っている。
###デバッグログ分析の活用事例
-
エラー検出
-
メモリ使用率(グラフ・ヒートマップ)
-
コリジョン抜け
-
オートテストの結果集計
-
ゲームバランス調整
-
桐生が死んだマップ
-
成長ログ
-
死亡回数と蓄積ダメージ
バランス調整を行うために死亡回数等に関してはリアルタイムで監視を行っている。
その際、想定以上にゲームオーバーになっている場合はテスターに直接ヒアリングするようにする
###工数
- ログサーバ設置(2~3日)
- ログ送信と分析(Kibana)(2~3週間)
- ログ分析結果を見やすくする努力(2~3ヶ月)
###課題
ログ分析ツールの周知徹底が必要
プログラマを介さずに誰でもログ分析できるようにしたい
ログ送信機能自体の高速化
###感想
自動化とログ分析を用いて品質の向上とバランス調整を行っている点は参考になりました。
面白いものを作るという点はこの業界の共通事項だと思いますので、
組み込めそうなことを時間があれば取り組んでみたいと思いました。