GS2 Blog

Game Server Services(https://gs2.io/) の最新情報をお届けします

GS2-Inventory に 64bit 符号付き整数型 以上の数量管理ができる巨大インベントリ機能が追加されました

はじめに

GS2-Inventory はプレイヤーの持ち物を管理するサービスです。

機能追加の背景

インフレゲームでは徐々にアイテムの消費数量が増えていきます。
このあたりの機能を実現するために、先月 GS2-Exchange にコスト上昇型交換レート機能が追加されました。

gs2.hatenablog.com

しかし、消費する対象となるリソースがコストの上昇を行なっていくうちに GS2-Inventory で格納可能なアイテムの最大数を超えてしまう問題がありました。
この問題を解決するために、アイテムの所持数量が最大1024桁の数値という巨大な数量を扱える機能を追加しました。

追加された機能の詳細

機能としては原則、シンプルインベントリと変わりません。
ただし、シンプルインベントリは複数のアイテムをまとめて増減することができましたが、巨大インベントリは1回のAPIで更新できるのは1つのアイテムに限定されます。
その代わり、アイテムを所持可能な最大数量が大1024桁の数値まで管理することが可能です。

Unity からの使用例

アイテムの入手

アイテムの入手は GS2-Quest のクエスト報酬や、GS2-Showcase の商品販売などを通して行なってください。

アイテムの消費

    var result = await gs2.Inventory.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).BigInventory(
        inventoryName: "inventory-0001"
    ).Item(
        itemName: "item-0001"
    ).ConsumeAsync(
        consumeCount: "1"
    );

インベントリ内のアイテム一覧を取得

    var items = await gs2.Inventory.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).BigInventory(
        inventoryName: "item"
    ).ItemsAsync(
    ).ToListAsync();
(C) Game Server Services, Inc.