4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

サムザップ #2Advent Calendar 2019

Day 5

運用中のスマホゲームに起きがちな不具合とその対策案

Last updated at Posted at 2019-12-06

本記事は、サムザップ Advent Calendar 2019 #2 の12/5の記事です。

スマホゲームの企画・運営事業を行っているサムザップで、エンジニアマネージャーをしています北島です。
私は今まで、ゲームの不具合を減らすことに取り組んでくることが多かったです。
今回は、その経験から運用中のゲームタイトルで起きがちな不具合とその対策案について、個人的な意見をまとめます。

#起きがちな不具合

私の担当しているゲームタイトルの直近半年間の不具合を分析したところ、
以下のような原因の不具合が多いということが分かりました。

  • マスターデータの不備
  • バッチ系の不具合
  • 画像内の文言や要素の間違い

あくまで、これはひとつのゲームタイトルの不具合を分析した結果であり、
システムやインフラの構成、ゲームのジャンルや運用の仕方などで、起きる不具合は変わってきます。
とはいえ、マスターデータの不備による不具合はどのタイトルでも多い印象がありますし、
ある程度、似たようなところはあるのではないでしょうか。

#マスターデータの不備

私の感覚では、マスターデータ系の不具合がどのゲームタイトルも一番多いのではないかと思っています。
業界の永遠の課題でもあります。
マスターデータはレベルデザインの担当者や企画職などの非エンジニアが作成することも多いと思いますが、
エンジニア側も企画職が作成したデータを何のチェックもせずに受け入れるわけにはいきません。
私としては、以下が良いのではないかと思っています。

  • マスターデータ作成ツールのような、企画職がなるべくミスしにくいものを用意する
    • 用意した作成ツールのようなもので、企画分掌でのデータのバリデートをする
  • 企画職が作成したマスターデータの型チェックや数値のMin,Maxの範囲チェックなど、エンジニア側はエンジニア分掌でバリデートをする

弊社ではマスターデータにCSVを用いていることが多いのですが、
長年ゲームの運用を続けた結果、とあるイベントを実施するためには、CSVが50個も必要という状態になったことがあります。
細かな設定ができるようにするのは良いことですが、細かくすればするほどデータは複雑になり、当たり前ですが不具合が起きる可能性は高まります。
よって、できるだけ単純なデータに抑えるのも重要と言えます。
この時、50個のCSVを単純化して減らすことができたら良かったのですが、
単純化する際のシステム側の影響範囲が大きく、不具合リスクが高いと弊社では判断しました。
結局、必要最低限のデータを入力することで、自動で50個のCSVを作成するツールを作るという、
マスターデータを自動で作成するマスターデータを作るという方法でこの時は回避しました。

#バッチ系の不具合

ランキングを作成するバッチ、イベントの報酬アイテムを配布するバッチなど、
大量のデータを取得・更新するバッチですが、不具合の起きやすい部分でもあります。
不具合が起きやすい理由は、以下が考えられます。

  • プレイヤーの状態によって更新する条件が変わる等、パターンが多くチェックが難しい場合が多い
  • 本来は大量のデータを更新するバッチだが、dev環境では大量のデータが用意しづらい
  • 故に、ダミーデータを用いたチェックなど、手を抜きがち

prd環境のデータを簡単にdumpしてバッチを検証する環境にimportできるようなツールを作成する、バッチの実行結果をファイルに出力し、そのファイルを読み込むと綺麗に表示してくれるツールを作成するなど、なるべく面倒な部分を排除し、エンジニアやQAが手を抜かないようにするのが効くと思っています。

#画像内の文言や要素の間違い

ガチャやショップなどの販売画面に表示している画像において、
実際に販売している内容とは異なるキャラクターやアイテムなどの画像や文言を表示してしまうような不具合です。
販売画面での不具合は、クリティカルな不具合になる可能性が高く、なるべく避けたい不具合ではあります。
これの対策としては、以下が考えられます。

  • 画像ファイル名にルールを決めコード側で自動で出し分ける
    • 例えば、ガチャで特定のキャラクターをピックアップするような内容の画像であれば、画像名に「_character10」というようなキャラクターのIDを付けます。
    • そして、全キャラクター分の画像を用意し、マスターデータを元にプログラム側で表示する画像を自動で出し分けするようにします
    • 全パターンの画像を用意しておく必要があるので、パターンが少ない場合のみ有効な手段になります
  • 画像そのものをチェックすることを行う
    • 画像を組み込んで実装が完了した画面でのチェックをすることが普通だと思います
    • そのチェックも必要ですが、画像そのものだけをチェックすることで不具合を発見できる確率が上がります
  • なるべく画像内に文言などを入れないようにする
    • ガチャやショップなどの販売画面は、訴求したい内容を文言で入れたい場合がどうしてもあります
    • なので難しい場合も多いですが、不具合を減らすという観点ではなるべく単純な画像にすべきです

#最後に

今回は、運用中のスマホゲームに起きがちな不具合とその対策案について、個人的な意見をまとめました。
不具合は、ゲームを遊んで下さるお客様にも、ゲームを運用する運営にとっても悪でしかありません。
少しでも不具合のない世界にしていきたいですね。

明日は、@hiroyuuki さんの記事です。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?