GS2 Blog

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

消費アクション内で分岐処理が記述できるようになりました

はじめに

GS2 においてプレイヤーの操作は最終的に「何かのリソースを消費」し「何らかのリソースを得る」という処理として表現されます。
何かのリソースを消費する処理を「消費アクション」と呼び、何かのリソースを得る処理を「入手アクション」と呼び、一連の処理を「トランザクション」と呼んでいます。

機能追加の背景

これまで消費アクションは静的な内容を記述することしかできませんでした。
たとえば、「課金通貨を300消費」して「単発ガチャを引ける」トランザクションを発行する「ゲーム内ストアの商品」があるとします。

ここにガチャチケットの仕様を追加したとしましょう。
「ガチャチケットを1枚消費」して「単発ガチャを引ける」トランザクションを発行する「ゲーム内ストアの商品」を追加することになります。

この仕様の課題は、ゲーム内でガチャを引く時に「ガチャチケットを使うか」「課金通貨を使うか」で購入する商品を呼び分ける必要があることです。

追加された機能の詳細

消費アクションに「Gs2Distributor:IfExpressionByUserId」が追加されました。
この消費アクションは「condition」に指定した検証アクションの検証結果によって「trueActions」に指定した消費アクションか「falseActions」に指定した消費アクションか、どちらかが実行されます。

先ほどのガチャチケットと課金通貨の例に例えるなら以下のようになります。

Name: ガチャを引く商品
ConsumeActions:
  - If:
      Condition: ガチャチケットの所持数量が1以上
      TrueActions: 
        - ガチャチケットを1枚消費
      FalseActions:
        - 課金通貨を300消費
  AcquireActions:
    - 単発ガチャを引く


これでゲーム内からは「ガチャを引く商品」を購入すると、ガチャチケットもしくは課金通貨を消費して単発ガチャを引けるようになります。

(C) Game Server Services, Inc.