GS2 Blog

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

GS2-Experience にランクに応じた報酬加算機能が追加されました

はじめに

GS2-Experience は経験値と経験値に基づくランクを管理する機能を提供します。

機能追加の背景

近年、ランクに応じて放置報酬が増えるような仕様が増えています。
というのも、放置ゲームはインフレしていくのがゲーム仕様の性であるため、報酬が一定だとキャラクターを成長させる資源に魅力を感じられなくなってしまうため
ゲームの進捗にあわせて、報酬もインフレさせていく必要があるためです。

追加された機能の詳細

GS2-Experience の経験値モデルに AcquireActionRate というフィールドが追加されました。
ここではランクアップ閾値のように、各ランクごとの報酬の補正値を指定できます。
例えば、以下のような値を指定します。

ランク 補正値
1 1.0
2 1.2
3 1.5
4 2.0
5 2.8

経験値モデルは複数の補正値テーブルを持つことができます。
同じランクを使って、複数パターンの補正値テーブルを使い分けできるようにするためです。

報酬に先程定義した係数を適用するためのトランザクションアクションが追加されています。

Gs2Experience:MultiplyAcquireActionsByUserId

説明
namespaceName string ネームスペース名
userId string #{userId} と設定することでログイン中のユーザーIDに置換されます
experienceName string 経験値モデルの名前
propertyId string プロパティID
rateName string 報酬加算テーブル名
acquireActions AcquireAction[] 入手アクションリスト

こちらの acquireActions に指定した報酬が experienceName で指定した経験値モデルの rateName で指定した補正値テーブルを使用して数量が補正されます。

Unity からの使用例

補正処理の実行

補正処理はトランザクションアクションを通じて実行します

補正値テーブルの取得

    var domain = gs2.Experience.Namespace(
        namespaceName: "namespace-0001"
    ).ExperienceModel(
        experienceName: "experience-0001"
    );
    var item = await domain.ModelAsync();
(C) Game Server Services, Inc.