GS2 Blog

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

2024-01-01から1年間の記事一覧

トランザクション処理を同期実行できるようになりました

はじめに GS2におけるトランザクションとは、何らかのリソースを消費して、なんらかのリソースを入手する一連の操作を指します。 たとえば「スタミナを消費してクエストを開始状態にする」であったり「クエストの開始状態を削除する代わりに、クエストのクリ…

冪等性で挑む、非同期処理のパフォーマンスチューニング

前回好評だった「冪等性と非同期実行」の続編にあたる記事です。gs2.hatenablog.com私たちが提供している Game Server Services はバックエンドに Lambda + DynamoDB といったフルマネージドサービスを活用した、いわゆるサーバーレスアーキテクチャで実装さ…

GS2-Mission の報酬を一括受け取りができるようになりました

はじめに GS2-Mission はゲーム内のミッション機能を実現するためのマイクロサービスです。 機能追加の背景 デイリーミッションのような毎日の日課となるシステムはなるべく効率的に受け取れるようにすることでプレイヤーのプレイ体験を最適化できます。 し…

GS2-Friend のプロフィール更新を入手アクションで設定できるようになりました

はじめに GS2-Friend はゲーム内のフレンドやフォロワー、プロフィールの値を管理できるマイクロサービスです。 機能追加された背景 最近のゲーム仕様としてプレイヤーの名前を変更するのに一定のコストが必要なケースが増えています。 この仕様を実現するに…

GS2-Schedule にトリガーが引かれてからの経過時間で検証する VerifyAction が追加されました

はじめに GS2-Schedule はゲーム内のイベントスケジュールを管理するマイクロサービスです。 イベントには大きく2種類存在し、すべてのプレイヤーを対象とした絶対時間でイベント期間を定義するものと、プレイヤーごとに対象期間が異なるトリガーが引かれて…

GS2-Mission に特定の条件を満たしてからのカウンター上昇量を求めるスコープが追加されました

はじめに GS2-Mission はゲーム内のミッション機能を実現するためのマイクロサービスです。 ミッションを表現するために、ミッションタスク と ミッションカウンター という2つのエンティティを持ち クエストクリア時に ミッションカウンター を上昇させ、ミ…

GS2-Exchange のコスト上昇型交換処理のコスト計算スクリプトで 64bit整数値 以上の値を扱えるようになりました

はじめに GS2-Exchange はゲーム内のリソースの交換処理を実装するためのマイクロサービスです。 GS2-Exchange はコスト上昇型交換という機能を持っており、これは名前の通り交換を実行するたびに交換に必要なコストが増えていきます。 具体的にはスタミナを…

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整数値 の範囲を超えるアイテムの所持数量を管理するマイクロサービスです。クッキークリッカーを代表するインフレ系ゲームのようなゲームで…

(C) Game Server Services, Inc.