はじめに
ゲームに限った話ではありませんが、ことソーシャルゲームにおいてログデータは必要不可欠な役割を果たしています。
主に運用の段階で利用されるものですが、開発段階でもログデータは重要なデータとなります。
ログデータの種類
ログデータには、大雑把ではありますが以下のような種類が存在します。
- アウトゲームのプレイヤーアクションログ
アウトゲームにおいてどのような画面遷移を行ったかなど - インゲームのプレイヤーアクションログ
例えばRPGの戦闘だったら使用したスキルやその順番など - 課金ログ
ユーザがいつどの程度課金を行ったかなど - システムログ
APIサーバやDBサーバなどが出力するログ
ログデータの活用
上記ログデータを収集することでどういった事ができるでしょうか。
-
プレイヤー行動の理解
プレイヤーのアクションログを追跡することでゲーム内でどのような行動を取っているか把握することができます。
これによってどの機能を利用し、どのコンテンツに興味を示しているかなどを分析することで、ゲーム体験を向上させるための改善点を見つけることに役立ちます。 -
ゲームバランスの改善
プレイヤー行動の理解からゲーム内で特定の武器やキャラクターが過剰に強力に、または弱すぎていないかなどの情報を得ることができます。
これらのバランスを調整することでプレイヤーに公平なプレイ環境を与えることができます。 -
効果的な施策の実施
ユーザ行動の傾向によって、特定のセグメントにおいてどのような施策が成功したのかを理解するのに役立ちます。
またこれから実施する施策の指針とすることもできます。 -
問題の検知と対応
ゲームの運用中に限らず開発中でもシステムの問題の検知を早期に発見するのに有用です。
例えば開発段階のシステムでSQLクエリのログデータを出力していたところ、単純なAPIにも関わらず大量のクエリが流れている事がありました。
こういったことは開発時は処理データも少なく気にならない点ではありますが、扱うデータ量が増えた際にパフォーマンスの問題に直結します。
今回の場合は繰り返し処理内でクエリを発行していたことが問題であったため、繰り返し処理前に必要なデータを取得したり、更新時はbulk処理でまとめて更新を行うように修正を行いました。
ログデータ収集の例
ここでは主にアウトゲームでのデータ収集について記述します。
例えばアイテムを取得した場合いつ・なにを・どのくらいなどをイベントのトラッキングを利用してログを生成します。
こういったログは主にDBへ保存されますがこの際に気をつけておきたいのはトランザクションです。
アイテムの取得、ログの出力、どちらかが失敗した場合ログデータは意味をなさなくなるため必ず同トランザクション内で行う必要があります。
ログデータの保管
ログの性質上データは常に増え続けるためDBやサーバの容量の圧迫は避けられません。
この場合、いつどこまでのログデータを保存するか事前に設計しておく必要があると考えます。
ある程度の期間までのデータはすぐに取り出せたほうがよいため、現在のプロジェクトでは直近の期間のものはDB内、それを過ぎたらダンプしてS3などに保管ということを行っています。
おわりに
ざっくりではありますがログデータについてまとめさせていただきました。
上でも述べたようにログデータは様々な用途で使われるため、適切にデータの収集・保管について早い段階から設計に組み込んでおくことが重要です。
一緒に働く仲間を募集しています!
株式会社OGIXでは一緒に働いてくれる仲間を募集しています!
エンタメ制作集団としてゲームのみならず、未来を見据えたエンタメコンテンツの開発を行っています。
事業拡大に伴い、エンジニアさんを大募集しています。
興味のある方は下記リンクから弊社のことをぜひ知っていただき応募してもらえると嬉しいです。
▼会社について
https://www.wantedly.com/companies/company_6473754/about
▼代表インタビュー
https://www.wantedly.com/companies/company_6473754/post_articles/443064
▼東京オフィスの応募はこちら
https://www.wantedly.com/projects/1468324
▼新潟オフィスの応募はこちら
https://www.wantedly.com/projects/1468155