GS2 Blog

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

OpenID Connect による引き継ぎ処理の実装がより便利になりました

はじめに GS2-Account はアカウント管理をするためのマイクロサービスで、匿名アカウントの発行や認証機能を持ちます。 匿名アカウントの引き継ぎ情報の管理機能も用意されています。OpenID Connect とは Twitter が提唱した OAuth を標準化した技術で、認可…

非同期処理とリトライと冪等性

今回の記事は普段の GS2 のアップデート告知とは少し毛色が異なり、技術的なトピックを扱うエントリーです。gs2.hatenablog.comこちらで告知した消費アクションの分岐処理を実装するにあたって、どのようなアプローチで課題に向き合ってきたのかを解説しよう…

ギルドマスターが引退した時にギルドメンバーからギルドマスターを選出する仕組みを追加しました

はじめに GS2-Guild はゲームプレイヤー同士で協力プレイをするためのチームを結成するためのマイクロサービスです。 機能追加の背景 ギルドマスターが一人しかいない状況で、ギルドマスターがゲームを引退してしまった時、ギルドメンバーは脱退する以外の選…

検証アクションと消費アクションが区別されるようになりました

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

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

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

ギルドへの参加を拒否するユーザーIDリストを設定できるようになりました

はじめに GS2-Guild はゲーム内のギルド機能を実現するための機能です。 機能追加の背景 ギルドから除籍したプレイヤーが再度ギルドに参加申請が出せるため、UXが良くない状況がうまれてしまっていました。 追加された機能の詳細 ギルドのパラメーターに ign…

GS2のログインアカウントを多要素認証で保護できるようになりました

はじめに 多要素認証とは、ログインIDとパスワードに加えて、追加のなんらかの情報に基づいて本人からのアクセスであることを確認することで、アカウントの保護を強固にする仕組みです。 一般にワンタイムパスワードが用いられることが多く、GS2 の多要素認…

GS2-Friend のフレンド申請の上限処理が改善されました

はじめに GS2-Friend はゲーム内のプレイヤー同士の関係を管理するマイクロサービスで、単方向のフォロー、双方向のフレンドを管理できます。 フレンドは申請を出し、承認されることで関係を構築できますが、フォローは承認プロセスなしで関係を構築できます…

GS2-Schedule に新しい繰返しの種類が追加されました

はじめに GS2-Schedule はゲーム内のイベントのスケジュールを管理するマイクロサービスです。 スケジュールには全てのプレイヤーが同じ期間をイベント期間とする絶対期間や、チュートリアル終了後24時間のようなプレイヤーごとに異なる相対期間の期間を設定…

GS2-Account に他プラットフォームにおけるIDを保持し検索する機能が追加されました

はじめに GS2-Account はゲームにログインするためのアカウントを管理します。 GS2-Account が発行するアカウントは匿名アカウントと呼ばれるタイプのアカウントで、このアカウントに引き継ぎ情報として他プラットフォームのIDを保持してデータを引き継ぎで…

C# SDK にカオスモードが追加されました

はじめに GS2-SDK に「カオスエンジニアリング」のための機能が追加されました。カオスエンジニアリング とは Netflix が提唱した開発手法です。 Netflix は皆さんもよく知る動画配信サービスですが、本番環境のサーバーをランダムに停止する「カオスモンキ…

GS2-Money2 の提供を開始しました。

はじめに GS2-Money は課金通貨の残高を管理するマイクロサービスです。 機能追加の背景 GS2-Money は課金通貨の残高を管理するマイクロサービスですが、1つのネームスペースで1つの通貨(日本円/米ドルなど)しか扱えないため、グローバル展開する際の扱い…

GS2-Buff で絶対値による補正を適用できるようになりました

はじめに GS2-Buff はゲーム内のイベントの一環として、クエスト報酬を2倍にしたり、クエストに挑戦可能なスタミナ消費量を減らしたりする各種補正を各マイクロサービスのマスターデータを書き換えることなく設定できる仕組みです。 機能追加の背景 GS2-Buff…

シーズンマッチメイキング機能を追加しました

はじめに GS2-Matchmaking は対戦相手を見つけるためのマイクロサービスです。 GS2-Matchmaking がこれまで提供してきたマッチメイキングシステム(スタンダードマッチメイキング)はリアルタイム対戦を行う相手を探すことを想定して実装されました。 機能追…

新しいランキングシステムを公開しました

はじめに これまでも GS2-Ranking というランキングの仕組みを提供していました。 サービスの初期に設計したサービスということもあり、その後の機能拡張で最も歪みが生じていたマイクロサービスでもありました。利用者からのフィードバックの反映に技術的負…

GS2-Mission がカウンター以外のプロパティと連携して達成判定ができるタスクを定義できるようになりました

はじめに GS2-Mission はゲーム内のミッション(トロフィーや実績ともいわれる)機能を提供します。 機能追加の背景 これまで、GS2-Mission で定義できるタスクはカウンターの値が目標値を超えた時に達成とする仕組みとして提供されてきました。 しかし、ミ…

GS2-Inbox のグローバルメッセージに受取可能期間を設定できるようになりました

はじめに GS2-Inbox はゲーム内のプレゼントボックス機能を実現するためのマイクロサービスで、すべてのプレイヤーにプレゼントを配布するための仕組みとしてグローバルメッセージ機能があります。グローバルメッセージ機能はマスターデータでメッセージデー…

GS2-Schedule の相対期間イベントに絶対期間を組み合わせられるようになりました

はじめに GS2-Schedule はゲーム内のイベント開催期間を管理するマイクロサービスです。なかでも、相対期間イベントとはプレイヤーごとに異なるイベント期間を設定するもので、チュートリアル突破後24時間を特別な期間とするような仕様を実現するために使用…

ギルド機能の提供を開始しました

はじめに ゲームにはプレイヤー同士が長期の協力プレイをするための仕組みとして、ギルドやクランという仕組みが導入されるケースがあります。 GS2 にはこれまでこのような仕組みを実現する方法がありませんでした。 追加された機能の詳細 新しく追加された …

リソースレベルのアクセス制御ができるようになりました

はじめに GS2-Identifier は GS2 のAPI呼び出しのための権限管理をするためのサービスです。 プロジェクトに対して複数のクレデンシャル(APIキー)を発行でき、それぞれに呼び出し可能なAPI権限を設定できます。 機能追加の背景 これまでは、呼び出し可能なAP…

GS2-Account の認証時のスクリプトに前回ログインからの経過時間が渡るようになりました

はじめに GS2-Account はゲームが必要とする認証機能を提供するサービスです。 機能追加の背景 「久しぶりゲームを再開してくれたプレイヤーにカムバックボーナスを付与したい」というようなニーズがあります。 このようなニーズを満たすために認証時のスク…

GS2の各種パラメーターに補正値を適用する GS2-Buff が公開されました

はじめに GS2 はさまざまなマスターデータやユーザーデータを取り扱います。 イベントやサブスクリプションの特典として、各種パラメーターに補正値を適用したいことがあります。例えば、イベント期間中は「スタミナ消費量半減」「クエスト報酬2倍」「スタミ…

GS2-Inventory の巨大インベントリのアイテム入手・消費時のスクリプトを実装できるようになりました

はじめに GS2-Inventory はアイテムの所持数量を管理するマイクロサービスです。 なかでも巨大インベントリは 64bit整数値 の範囲を超えるアイテムの所持数量を管理するマイクロサービスです。クッキークリッカーを代表するインフレ系ゲームのようなゲームで…

GS2-Quest でクエスト失敗時の報酬量調整が可能となりました

はじめに GS2-Quest はインゲームの挑戦料・報酬・クリア状況を管理するためのマイクロサービスです。 今回の更新で解消された課題 GS2-Quest はクエストごとに報酬として「クリア時に得られる報酬」「初めてクリアした時に得られる報酬」「失敗した時に得ら…

GS2-Exchange の非同期交換に待機時間の部分スキップ機能が追加されました

はじめに GS2-Exchange はなんらかの対価としてプレイヤーが所持するリソースを消費して、何らかのリソースを入手するための交換処理を実装するためのマイクロサービスです。GS2-Exchange の交換には即時交換と、非同期交換の2モードが存在し非同期交換モー…

時刻補正が可能なAPIの種類が追加されました

はじめに 運営型のゲームにおいてイベントのような時刻に関わる処理は重要な要素です。 プロジェクトによってはQAのためにメンテナンスモードにしてプレイヤーを追い出し、サーバーの時刻設定を変更して動作確認するという話すら聞いたことがあり、時刻が関…

シーズンレーティング機能の提供を開始しました

はじめに 近年のPvPゲームではシーズンごとにランクマッチが実施され、ブロンズ→シルバー→ゴールド→プラチナ のように昇格していくスタイルが一般化しました。 GS2 も元々レーティング機能は持っていましたが、シーズンで区切ることはできず、ランクではなく…

パフォーマンスチューニング用のツール提供を開始しました

はじめに 通信時間を最適化する一番のポイントは通信処理の並列化です。 依存関係のないデータ取得ではなるべく並列化することで、通信の待ち時間を最適化できます。ただ、今の実装が最適化できているかどうかを正確に判断するのは困難が伴います。 追加され…

GS2-Script でトランザクションを発行できるようになりました

はじめに GS2-Script は GS2 の機能を拡張するもので、任意のタイミングでクライアントから呼び出せるようなものではなく レベルアップした時や、アカウント引き継ぎを登録したときなどあらかじめ用意されたトリガーと関連づけることで、イベント駆動で実行…

GS2-Inventory のシンプルインベントリに入手・消費時のスクリプトを設定できるようになりました

はじめに GS2-Inventory はプレイヤーの所持品を管理するマイクロサービスです。 なかでも、シンプルインベントリはアイテム所持数の上限やインベントリの容量といった機能は持たない代わりに複数のアイテムをまとめて増減できる特徴があります。機能の詳細…

(C) Game Server Services, Inc.