時代に翻弄されるエンジニアのブログ

ゲームプログラマをやっています。仕事やゲームや趣味に関してつらつら書きたいと思います。

PlayFab 導入 Vol.2 インベントリとユーザーデータ

アイテムや、キャラ編成などの情報を保存

  • インベントリ、プレイヤーデータなど PlayFab で保存する

イベントリ

  • 報酬アイテムや課金アイテムの個数や状態を管理
    • アイテムにカスタムデータとして情報を付与できる。キャラクタの成長度合いなどを情報としてセットすることも可能
  • コレクションとストックの概念がある
    • コレクション:ただ単に保持管理をする意味
    • ストック:アイテムの個数管理をする意味
    • *どちらもインベントリ機能の中の概念であり具体的にAPIなどの名前が出るわけではない
  • アイテムの付与 API
    • GrantItemsToUser
    • サーバーからのみ実行可能
  • アイテムに対して CustomData として、KeyValue をセットできる
    • UpdateUserInventoryItemCustomData
    • サーバーからのみ実行可能
  • カタログに事前に登録する必要がある
    • SetCatalogItems、UpdateCatalogItems
    • サーバーからのみ実行可能
  • クライアントからは Purchase や Consume などの形で仮想通貨を使用する形で入手
    • サーバー サイドでは追加などをできる形でセキュリティが担保されている
  • 取得モンスターなどを管理する際に利用ができそう

ユーザーデータ

  • キャラの編成情報などユーザーに紐づくデータの保存
    • PlayFabClientAPI.UpdateUserData
  • KeyValue で 情報を設定できる

まとめ

  • キャラの強化状況やステータスなどは、インベントリのアイテムとして管理するのが良さそう
    • サーバーからしか設定できないようになっており、事前に SetCatalogItems でアイテムとして登録してIDを発行する。その後 GrantItemsToUser などで、サーバー側から付与してあげる
  • 編成情報などはプレイヤーデータとして管理するのが良さそう
    • プレイヤーデータは PlayFabClientAPI.UpdateUserData でクライアントからでも設定可能。インベントリのアイテムとして保存する方法もあるが、意図としてはユーザに紐づくためこちらを採用