yuiwaiの個人開発日誌

個人的な開発の備忘録などです

tetrics - 1.3.5リリース

tetrics - 1.3.5リリースいたしました。

play.google.com

今回実装したのは、統計機能です。

トップのメニューの「Stats」から、アクセス出来ます。

 

何を統計するか、というと、現状は、上下左右の4つのフィールドに対して、どのフィールドにどれくらいのドロップ数とスコア加算があるか、という集計になります。

なぜこれを作ろうと思ったかと言いますと、知り合いから、「右と下のフィールドばかり使っている気がする」という発言があったので、じゃあ実際どうなのか可視化してみよう、となったわけです。

統計情報自体は、すでにゲーム単位で取っていて、移動や回転なども含め、プレイヤーの操作情報(入力コマンド)は集計しています。(そして、その集計データを元にスコア情報を表示しています)

ここは、tetricsの設計思想と言いますか、僕の考え方に由来したもので、入力コマンドに対する出力(イベント)に駆動して別なサブシステム(例えば今回のような統計とか、あるいはロギングとか、はたまた通信対戦なんかも考えられますね)を作りたいわけです。この方式であれば、コアのモデルを外部でイベントがどう利用されているかの関心事から分離することが出来ます。

 

と、いうわけで、今回はすでにあったゲーム内の統計情報をゲームを跨いだ継続的な統計情報に集約した上で永続化し、そのデータを可視化してみた、というものになります。本当はグラフとか表示したかったのですが、色々と間に合わなかったので、のちの課題にします。

永続化自体は前回リリースでベストスコアを保持するようにしてみたのと同じ考え方です。

yuiwai.hatenablog.jp

が、統計情報は、今後拡張されることが予想されるので、少しだけ工夫しています。

将来、データの構造が変わるとデシリアライズに失敗するので、それを防ぐためにバイナリの冒頭にバージョン情報を埋め込んでいます。これを見て、データ構造のバージョンに合わせたデシリアライズマイグレーションを行うことで、古いデータと新しいアプリの組み合わせが発生しても、壊れないように出来ます(出来ます、というだけで、まだそのような実装は入っていません)

 

次のリリースでは、対戦モードっぽい方向を攻めようかな、と考えてはいますが、まだ具体的なことは未定です。