Unity x PlayFab 導入しやすい! ただし注意点も
最近流行りのPlayFabについて知見が溜まってきたので共有したいと思います。
本記事はPlayFabを導入しようか迷っている方に向けて、導入のメリットと注意点について紹介できればと思っています。
また、既に利用している人は、注意点の項目を読むことで、意外な知見が得られるかもしれません。
PlayFabとは
PlayFabはライブ ゲームを構築して運用するための完全な LiveOps バックエンド プラットフォーム」です。と公式サイトにはあります。
つまりは、ネットワークデータベースとそのAPIをまとめたもの、というように理解しています。
導入のメリット
導入が簡単です。 クライアントエンジニアでも扱うことが容易である。
自前でデータベース管理用のAPIを用意しなくて良いです。
当方はクライアントエンジニアなので細かくは知りませんが、
通常、自前でデータベースを用意する際、そのデータを何処において、ロードしてきて、エラー判別して、
と様々なフローを定義する必要があるかもしれません。
その他、セキュリティへの配慮やデータが飛ぶことがあるかもしれません。
そのあたりをやってくれるのはとても助かります。
導入方法
正直、PlayFab公式さんが丁寧なリファレンスを用意してくれているので、手順通りに進めれば何も困ることはないと思います。
ざっくり書くと、SDKをunitypackageとしてインポートして、PlayFabで作ったidを入力すれば準備完了です。
注意点
アイテムカタログのアイテムとバンドルについて
同じ一意のitemIdによって識別されますが、内部の挙動が若干異なります。
アイテムはそのまま内容が見れるのに対してバンドルはアイテムをまとめたものなので当然付加情報があります。
具体的な中身はバンドルの中身を見ればわかりますが、アイテムの配列は一階層潜ったところにありますね。
また、バンドルにはドロップテーブルを指定することも出来ます。
これを利用して、バンドルを購入することで自動的にドロップテーブルから抽選が行われます。
この挙動はリファレンスに明確な記述はありません。ただ、オススメするとか書いてあるので、察してください。
仮想通貨をユーザに付与する場合も、1セットにまとめたい場合はバンドルが扱えます。
ストアの挙動について
ストア内にあるアイテム一覧は料金とitemIdを羅列しただけの簡素なものとなっています。
PlayFabにはセグメントという概念があり、これはAndroidユーザとiOSユーザというように区切りを付けることが出来ます。
ただ、このセグメントに関しては、PlayFab側で、区切りに使用するパラメータがある程度決められており、開発側で決められないので柔軟性に欠けるというのが現状の認識です。
例えば、PlayFab上のデータである課金金額による区切りは可能ですが、
このユーザはこのアイテムをいくつ持っているかという区切りは不可能です。
行いたい場合、自前で工夫をする必要があるでしょう。