GS2 Blog

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

利用料金改定(50%〜85%の値下げ)のお知らせ

はじめに

GS2 の利用料金は 1API リクエストあたり 0.02円 というシンプルな料金でサービスを提供してきました。
サービス開始当時よりプログラムの最適化が進んだり、多くの皆様にサービスをご利用いただいていることでコスト効率が高まってきたため、値下げを実施することになりました。

新しい料金プラン

基本的なAPIリクエスト単価

プロジェクトのリクエスト数に応じて割引を適用されるようになりました。
これによって、たくさん利用すればするほど安くサービスをご利用いただけるようになります。

ティアー(リクエスト数) 価格
- 100,000,000 0.01円
100,000,001 - 500,000,000 0.008円
500,000,001 - 2,500,000,000 0.006円
2,500,000,001 - 7,500,000,000 0.004円
7,500,000,001 - 0.003円

また、最低ティアーの単価が 0.01円 に設定されましたので、全ての利用者の皆様が 50% の値下げとなります。
75億リクエスト/月 を超える大規模な利用をいただくケースでは、75億リクエストを超える部分に関して現在の料金と比較して 85% の値下げとなります。

そのほか、スクリプト実行時間、ログ出力についても同等の階層型料金を導入しています。

年間先払い(利用量コミットメント)

新たに年間先払いのプランを用意することになりました。
年間先払いは 100,000,000 リクエスト/月 を 360万円/年(0.003円/リクエスト相当) 単位で契約が可能です。
月々の実際のリクエスト数が契約時のコミットメント量を下回ったとしても返金はありません。

しかし、年間契約の単価は非常に安く設定されているため、多少コミットメントを下回ったとしてもコミットメントした方が安く利用できます。

前提:
1,000,000,000 リクエスト/月 の利用をコミットメントする場合
先払い金: 3,600万円

例1:
500,000,000 リクエスト/月(コミットメントを下回った場合)
月々の支払額: 0円/月
総額: 3,600万円 + 0円/年(0円 * 12ヶ月) = 3,600万円
通常利用料金では 420万円/月 = 5,040万円/年 となるため、実際の利用料がコミットメント量を下回ったとしても、1,440万円/年 の節約

値下げのインパクトについて

0.02円/リクエスト という価格は一般的なゲームサイクルを持つスマホゲームで MAUあたり 15円〜30円 が目安となる利用料金でした。
これは、自社でゲームサーバーを運用するのと大きく乖離しないことを意識して設定されています。

今回の価格改定で、MAUあたり 5円〜15円 が目安となり、多くの場合は自社でゲームサーバーを運用するよりも安くサービスをご利用いただける価格帯になります。
GS2を利用することは開発の効率化だけでなく、コスト効率を高める点でも活用いただけるようになりましたので、是非とも積極的にご活用いただけますと幸いです。

ゲームの規模に応じた代表的なコスト例を以下のページで示していますので、ご参考ください。
gs2.io

新料金の運用開始タイミング

2025年10月の利用料金(2025年11月請求分)から新しい料金プランに基づいた価格で請求を開始します。

GS2-Exchange の一定期間待機後の報酬受け取り機能で、報酬受け取り時のスクリプトトリガーを追加

この更新は2025年2月12日の更新内容です

はじめに

GS2-Exchange は何らかのリソースを消費して、何らかのリソースを入手する機能を提供します。
なかでもリソースを消費した後、現実時間が一定期間経過してから、何らかのリソースを入手できるようにする設定が可能です。

GS2-Script は GS2 の機能を拡張するための仕組みです。
GS2-Exchange であれば交換実行時に呼び出されるスクリプトを設定でき、引数に交換対象のレートや交換回数が渡ってくるので、それらの値を使用して追加の処理を実装することが可能です。

機能追加の背景

これまで GS2-Exchange には交換実行時のスクリプトはありましたが、一定期間経過後に報酬を受け取る時のスクリプトは設定できませんでした。

追加された機能の詳細

GS2-Exchange のネームスペース設定に acquireAwaitScript が追加されました。

スクリプトの引数は以下のドキュメントを参照してください。

docs.gs2.io

GS2-Schedule の相対期間イベントの期間設定に既存の絶対期間のイベントの期間を参照できるようになりました

この更新は2025年2月3日の更新内容です

はじめに

GS2-Schedule はゲーム内のイベントスケジュールを管理するマイクロサービスです。
イベントには「絶対期間」と「相対期間」の2種類の期間設定が存在します。

絶対期間

全てのプレイヤーが同じ期間を共有するイベント開催期間。
2025/1/1 10:00 - 2025/1/7 10:00
というような期間を設定するものです。

相対期間

プレイヤーごとに異なるイベント開催期間。
チュートリアル突破から24時間
というような期間を設定するものです。

機能追加の背景

ゲーム内でシーズンパス機能を実装するときには、サブスクリプション購入時から30日という設定ではなく
「現在のシーズンの終了まで」を相対イベント期間とするような設定をしたくなりますが、そのような設定を簡単に行う方法がありませんでした。

追加された機能の詳細

docs.gs2.io

相対期間イベントを開始する triggerStrategyrepeatCycleEnd, repeatCycleNextStart, absoluteEnd の3つの値と、基準となる eventId の指定が追加されました。

repeatCycleEnd: eventId で指定されたイベントの現在の繰り返し期間の終了まで有効な相対期間イベントを開始
repeatCycleNextStart: eventId で指定されたイベントの次回イベント開始まで有効な相対期間イベントを開始
absoluteEnd: eventId で指定されたイベントの絶対期間の終了まで有効な相対期間イベントを開始

GS2-Mission のカウンターを特定のスコープの値だけリセットする機能が追加されました

この更新は2025年1月30日の更新内容です

はじめに

GS2-Mission はデイリーミッションやウィークリーミッション、実績といった機能を実現するマイクロサービスです。

機能追加の背景

GS2-Mission のカウンターはスコープという概念を持ち、1つのカウンターに複数の切り口での値を保持することができます。

たとえば「クエストをクリアした回数」というカウンターがあった時、カウンターの値は
「毎日0時にリセットされるカウンター値」「毎週月曜日0時にリセットされるカウンター値」「イベントAの開催期間のみカウントアップされるカウンター値」「累積のカウントアップ値」というように複数の値を持つことが可能で、ミッションタスクは各スコープを達成判定に利用できます。

これまでは、このカウンター値をリセットするときは全てのスコープの値をリセットする形でしか利用することができませんでした。

追加された機能の詳細

スコープを指定してカウンター値をリセットする機能が追加されました。

    var result = await gs2.Mission.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Counter(
        counterName: "counter-0001"
    ).ResetCounterAsync(
        new EzScopedValue[] {
            new EzScopedValue()
                .WithResetType("daily"),
            new EzScopedValue()
                .WithResetType("weekly"),
        }
    );

GS2-Limit の回数制限リセット間隔に「一定日数ごと」が追加されました

この更新は2025年1月30日の更新内容です

はじめに

GS2-Limit はゲーム内の操作に回数制限を設けることのできるマイクロサービスです。

機能追加の背景

回数制限は一定間隔でリセットすることが可能で、毎日・毎週・毎月 リセットが可能でした。
ここに「一定日数ごと」という設定ができず、3日ごとにリセットというような条件は設定できませんでした。

追加された機能の詳細

docs.gs2.io

GS2-Limit のマスターデータである LimitModelresetTypedays が追加されました。
days を指定すると、追加で anchorTimestampdays の2つのパラメーターを指定する必要があります。

anchorTimestamp は経過日数を計算する基準点で、基準点は現在より過去でも未来でもどちらでも問題ありません。
days にはリセットする間隔を日数で指定します。

GS2-Mission にタスクの達成再評価のみを行うAPIが追加されました

この更新は2025年1月26日の更新内容です

はじめに

GS2-Mission はデイリーミッションや、ウィークリーミッション、実績といった機能を実現するマイクロサービスです。

機能追加の背景

GS2-Mission のミッションタスクまたはミッショングループには挑戦可能な期間として、GS2-Schedule のイベントを関連づけることが可能です。
イベントと関連づけることで、イベントの開催期間のみ達成可能なミッションを作成可能です。

このイベント期間のミッションタスクには、カウンターと関連づけることになりますがカウンターの値はミッションタスクのイベント期間設定とは異なる設定でカウントアップが可能です。

たとえば、クエストを累計10000回クリアする というようなミッションを期間限定ミッションで追加した時に、カウンターはローンチ以降ずっと蓄積してきたクエストの累計クリア回数のカウンターを参照して達成判定を行うことが可能です。
しかし、タスクの達成判定はカウンターの値が操作された時なので、累計10000回クリアという条件を達成した状態でミッションタスクのイベント開催期間になっても直ちに達成状態にはならずに、次にクエストクリア回数のカウンターが上昇した時になっていました。

追加された機能の詳細

カウンターの上昇を伴わずにイベントの達成状況を再評価するAPIが追加されました。

    var result = await gs2.Mission.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Complete(
        missionGroupName: "mission-group-0001"
    ).EvaluateCompleteAsync(
    );
    var item = await result.ModelAsync();

この機能をイベント開催期間に入った時に呼び出すことで、カウンターの操作をしなくてもミッションの達成状況を再評価することが可能となりました。

GS2-Account の OIDC 機能で id_token 以外の値を取得できるようになりました

この更新は2025年1月23日の更新内容です

はじめに

GS2-Account は匿名アカウントを管理し、引き継ぎ情報を紐づけることで匿名アカウントの復元が行えるマイクロサービスです。
OIDC(Open ID Connect) に準拠したIDプロバイダーのアカウントとの連携をサポートしており、Google Account や Apple Account、Facebook Account といった一般的な SNS のアカウントの認証情報を使用してデータの引き継ぎを容易に行えるようになっています。

機能追加の背景

データの引き継ぎだけであれば、これまで提供していた id_token を取得するだけで十分だったのですが、OIDC で認証した後でかくIDプロバイダーのAPIを呼び出して追加の情報を取得したい場合は、認可の範囲を広げたり、APIを呼び出すためのアクセストークンを追加でゲームから取得できる必要がありました。

追加された機能の詳細

GS2-Account のマスターデータである TakeOverTypeModeladditionalScopeValues で、追加で取得する認可の範囲を指定できるようになりました。

さらに additionalReturnValues で認可シーケンスで受け取った追加のパラメーターをゲーム内から取得可能になりました。

docs.gs2.io

(C) Game Server Services, Inc.