PlayFabのデータ保存

始めに

オンライン接続した複数人によりワールドを共有するゲームを作りたいと思っている。 その為にはデータの共有方法を考える必要がある。 例えばクラウドサービス等での構築が考えられるが、管理が大変だし性能はそこまで要らない予定をしている。

利用している PlayFab 上でもデータの保存が出来るが、 どの程度まで出来るのかを調べる事にする。

条件(予定)

※ PlayFab のマッチングは最大100人

タイトルに属するデータ

タイトルオブジェクト

タイトルデータ

https://qiita.com/_y_minami/items/3396f832d868d52bbbaf

タイトルデータは値を設定してから反映されるまで、最大で15分のタイムラグがあります。そのため、タイトルデータは動的に更新されるようなデータの管理には適しません。

タイトルエンティティオブジェクト

タイトルエンティティファイル

https://learn.microsoft.com/en-us/gaming/playfab/features/entities/entity-files

プレイヤー毎のエンティティファイルには登録UIがあるが、タイトルにはない。 https://community.playfab.com/questions/65017/title-entity-file-upload-in-game-manager.html

プレイヤーがタイトルデータを取得する。 https://community.playfab.com/questions/54481/can-a-player-gets-a-file-of-a-title-entity.html

更新速度

プレイヤーに属するデータ

プレイヤーオブジェクト

プレイヤーファイル

グループ

グループオブジェクト

共有グループデータ

グループエンティティオブジェクト

グループエンティティファイル

その他

https://community.playfab.com/questions/53372/read-and-write-frequently-updated-data.html

少数のソースから更新され、少数のソースによってアクセスされるデータである場合は、エンティティ オブジェクトまたはファイルが最適である可能性があります。

https://community.playfab.com/questions/610/208128657-What-s-the-maximum-length-for-the-string-type-title-data-.html

すべてのプレーヤー間で共有する必要がある大規模なデータの場合は、通常、Content API メソッドを使用することをお勧めします

CDNについて

https://learn.microsoft.com/ja-jp/gaming/playfab/features/pricing/meters/file-reads

https://qiita.com/simplestar/items/47dcfaa213a62a7aa360

最後に

条件を満たすのはタイトルエンティティファイルとなる。

しかし10個までなので、ワールド毎にファイルを分けると上限一杯使ってしまう。 複数ワールドを1ファイルに束ねる事も考えられるが実装は複雑になる。

次点としてはプレイヤーファイルになる。しかしこの場合はプレイヤーが所有するワールドという事になりゲーム性が変わる。

これらを踏まえて設計を進める。

top