2024-01-01から1年間の記事一覧
はじめに GS2におけるトランザクションとは、何らかのリソースを消費して、なんらかのリソースを入手する一連の操作を指します。 たとえば「スタミナを消費してクエストを開始状態にする」であったり「クエストの開始状態を削除する代わりに、クエストのクリ…
前回好評だった「冪等性と非同期実行」の続編にあたる記事です。gs2.hatenablog.com私たちが提供している Game Server Services はバックエンドに Lambda + DynamoDB といったフルマネージドサービスを活用した、いわゆるサーバーレスアーキテクチャで実装さ…
はじめに GS2-Mission はゲーム内のミッション機能を実現するためのマイクロサービスです。 機能追加の背景 デイリーミッションのような毎日の日課となるシステムはなるべく効率的に受け取れるようにすることでプレイヤーのプレイ体験を最適化できます。 し…
はじめに GS2-Friend はゲーム内のフレンドやフォロワー、プロフィールの値を管理できるマイクロサービスです。 機能追加された背景 最近のゲーム仕様としてプレイヤーの名前を変更するのに一定のコストが必要なケースが増えています。 この仕様を実現するに…
はじめに GS2-Schedule はゲーム内のイベントスケジュールを管理するマイクロサービスです。 イベントには大きく2種類存在し、すべてのプレイヤーを対象とした絶対時間でイベント期間を定義するものと、プレイヤーごとに対象期間が異なるトリガーが引かれて…
はじめに GS2-Mission はゲーム内のミッション機能を実現するためのマイクロサービスです。 ミッションを表現するために、ミッションタスク と ミッションカウンター という2つのエンティティを持ち クエストクリア時に ミッションカウンター を上昇させ、ミ…
はじめに GS2-Exchange はゲーム内のリソースの交換処理を実装するためのマイクロサービスです。 GS2-Exchange はコスト上昇型交換という機能を持っており、これは名前の通り交換を実行するたびに交換に必要なコストが増えていきます。 具体的にはスタミナを…
はじめに GS2-Account はアカウント管理をするためのマイクロサービスで、匿名アカウントの発行や認証機能を持ちます。 匿名アカウントの引き継ぎ情報の管理機能も用意されています。OpenID Connect とは Twitter が提唱した OAuth を標準化した技術で、認可…
今回の記事は普段の GS2 のアップデート告知とは少し毛色が異なり、技術的なトピックを扱うエントリーです。gs2.hatenablog.comこちらで告知した消費アクションの分岐処理を実装するにあたって、どのようなアプローチで課題に向き合ってきたのかを解説しよう…
はじめに GS2-Guild はゲームプレイヤー同士で協力プレイをするためのチームを結成するためのマイクロサービスです。 機能追加の背景 ギルドマスターが一人しかいない状況で、ギルドマスターがゲームを引退してしまった時、ギルドメンバーは脱退する以外の選…
はじめに GS2 においてプレイヤーの操作は最終的に「何かのリソースを消費」し「何らかのリソースを得る」という処理として表現されます。 何かのリソースを消費する処理を「消費アクション」と呼び、何かのリソースを得る処理を「入手アクション」と呼び、…
はじめに GS2 においてプレイヤーの操作は最終的に「何かのリソースを消費」し「何らかのリソースを得る」という処理として表現されます。 何かのリソースを消費する処理を「消費アクション」と呼び、何かのリソースを得る処理を「入手アクション」と呼び、…
はじめに GS2-Guild はゲーム内のギルド機能を実現するための機能です。 機能追加の背景 ギルドから除籍したプレイヤーが再度ギルドに参加申請が出せるため、UXが良くない状況がうまれてしまっていました。 追加された機能の詳細 ギルドのパラメーターに ign…
はじめに 多要素認証とは、ログインIDとパスワードに加えて、追加のなんらかの情報に基づいて本人からのアクセスであることを確認することで、アカウントの保護を強固にする仕組みです。 一般にワンタイムパスワードが用いられることが多く、GS2 の多要素認…
はじめに GS2-Friend はゲーム内のプレイヤー同士の関係を管理するマイクロサービスで、単方向のフォロー、双方向のフレンドを管理できます。 フレンドは申請を出し、承認されることで関係を構築できますが、フォローは承認プロセスなしで関係を構築できます…
はじめに GS2-Schedule はゲーム内のイベントのスケジュールを管理するマイクロサービスです。 スケジュールには全てのプレイヤーが同じ期間をイベント期間とする絶対期間や、チュートリアル終了後24時間のようなプレイヤーごとに異なる相対期間の期間を設定…
はじめに GS2-Account はゲームにログインするためのアカウントを管理します。 GS2-Account が発行するアカウントは匿名アカウントと呼ばれるタイプのアカウントで、このアカウントに引き継ぎ情報として他プラットフォームのIDを保持してデータを引き継ぎで…
はじめに GS2-SDK に「カオスエンジニアリング」のための機能が追加されました。カオスエンジニアリング とは Netflix が提唱した開発手法です。 Netflix は皆さんもよく知る動画配信サービスですが、本番環境のサーバーをランダムに停止する「カオスモンキ…
はじめに GS2-Money は課金通貨の残高を管理するマイクロサービスです。 機能追加の背景 GS2-Money は課金通貨の残高を管理するマイクロサービスですが、1つのネームスペースで1つの通貨(日本円/米ドルなど)しか扱えないため、グローバル展開する際の扱い…
はじめに GS2-Buff はゲーム内のイベントの一環として、クエスト報酬を2倍にしたり、クエストに挑戦可能なスタミナ消費量を減らしたりする各種補正を各マイクロサービスのマスターデータを書き換えることなく設定できる仕組みです。 機能追加の背景 GS2-Buff…
はじめに GS2-Matchmaking は対戦相手を見つけるためのマイクロサービスです。 GS2-Matchmaking がこれまで提供してきたマッチメイキングシステム(スタンダードマッチメイキング)はリアルタイム対戦を行う相手を探すことを想定して実装されました。 機能追…
はじめに これまでも GS2-Ranking というランキングの仕組みを提供していました。 サービスの初期に設計したサービスということもあり、その後の機能拡張で最も歪みが生じていたマイクロサービスでもありました。利用者からのフィードバックの反映に技術的負…
はじめに GS2-Mission はゲーム内のミッション(トロフィーや実績ともいわれる)機能を提供します。 機能追加の背景 これまで、GS2-Mission で定義できるタスクはカウンターの値が目標値を超えた時に達成とする仕組みとして提供されてきました。 しかし、ミ…
はじめに GS2-Inbox はゲーム内のプレゼントボックス機能を実現するためのマイクロサービスで、すべてのプレイヤーにプレゼントを配布するための仕組みとしてグローバルメッセージ機能があります。グローバルメッセージ機能はマスターデータでメッセージデー…
はじめに GS2-Schedule はゲーム内のイベント開催期間を管理するマイクロサービスです。なかでも、相対期間イベントとはプレイヤーごとに異なるイベント期間を設定するもので、チュートリアル突破後24時間を特別な期間とするような仕様を実現するために使用…
はじめに ゲームにはプレイヤー同士が長期の協力プレイをするための仕組みとして、ギルドやクランという仕組みが導入されるケースがあります。 GS2 にはこれまでこのような仕組みを実現する方法がありませんでした。 追加された機能の詳細 新しく追加された …
はじめに GS2-Identifier は GS2 のAPI呼び出しのための権限管理をするためのサービスです。 プロジェクトに対して複数のクレデンシャル(APIキー)を発行でき、それぞれに呼び出し可能なAPI権限を設定できます。 機能追加の背景 これまでは、呼び出し可能なAP…
はじめに GS2-Account はゲームが必要とする認証機能を提供するサービスです。 機能追加の背景 「久しぶりゲームを再開してくれたプレイヤーにカムバックボーナスを付与したい」というようなニーズがあります。 このようなニーズを満たすために認証時のスク…
はじめに GS2 はさまざまなマスターデータやユーザーデータを取り扱います。 イベントやサブスクリプションの特典として、各種パラメーターに補正値を適用したいことがあります。例えば、イベント期間中は「スタミナ消費量半減」「クエスト報酬2倍」「スタミ…
はじめに GS2-Inventory はアイテムの所持数量を管理するマイクロサービスです。 なかでも巨大インベントリは 64bit整数値 の範囲を超えるアイテムの所持数量を管理するマイクロサービスです。クッキークリッカーを代表するインフレ系ゲームのようなゲームで…