Game Server Servicesのご紹介
当社は、ゲーム開発において必須要件となったオンライン機能を実現するために必要となるゲームサーバーを汎用化し、ゲーム開発者に提供しています。
現在はゲームサーバーはゲームタイトルごとに専用に設計・実装され、個別に運用されています。サーバーを複数のタイトルで共通化して利用するケースはほとんどありません。
Game Server Services は高いレベルで汎用化することでこの問題を解決し、ゲーム開発者がゲーム開発に専念できる環境を提供しています。
GS2-Exchange にコスト上昇型交換レート機能を追加しました
GS2-Exchangeはマイクロサービスで、対価と報酬を交換する機能を持ちます。今回、交換するたびにコストが上昇していくパターンをネイティブでサポートする機能が追加されました。これまでコスト上昇型の交換レートを設定するためには、複数の交換レートや回数制限を設定する必要がありましたが、今回のアップデートでより簡単にこのような仕様を満たせるようになりました。新たに追加されたコスト上昇型交換レートは、線形、非線形、そしてユーザー定義の計算式に対応し、それぞれに必要なパラメーターを設定することで使用できます。
GS2-Inventory にシンプルインベントリ機能を追加しました
GS2-Inventoryはアイテムの所持数量を管理する機能を提供しますが、これまではアイテムの種類ごとに増減処理を行う必要があり、APIの呼び出しがアイテムの種類数だけ必要でした。このため、API呼び出し回数によって料金が決定される、GS2の利用料金が増加し、通信回数の増加によりユーザー体験が損なわれる可能性がありました。
新たに追加されたシンプルインベントリ機能では、これらの問題を解決します。従来のインベントリが持つ、いくつかの機能を削ることで複数のアイテムを同時に増減できるようになり、複数のアイテムの消費については、指定したアイテムのいずれか一つでも残量が足りない場合、全てのアイテムの消費が中止され、エラー応答がされます。
ログインボーナス機能を追加しました
新たにログインボーナス機能が追加されました。従来、ログインボーナスはGS2-Quest等を利用する形で実装されていましたが、新機能ではログインボーナスの実装に最適化されたマイクロサービスです。
スケジュールモードとストリーミングモードの2つのモードがあります。スケジュールモードでは特定のイベントと関連付けてログインボーナスを実装しますが、ログインを忘れた場合、その日のボーナスはスキップされます。ストリーミングモードでは、ログインを忘れても順番にログインボーナスを受け取ることが可能です。また、繰り返し設定や取り逃がし補填の機能も提供されています。
GS2-Showcase にランダム陳列棚機能が追加されました
GS2-Showcaseに新たにランダム陳列棚機能を追加しました。この機能は、ゲーム内ストアで商品が一定時間ごとにランダムに入れ替わることを可能にします。具体的には、陳列される可能性のある商品をマスターデータに登録し、それぞれの商品に対して対価、報酬、抽選重み、購入可能回数を設定します。抽選重みは商品が選ばれる確率を制御し、購入可能回数は商品が入れ替わるまでの期間中に何回購入できるかを決定します。
さらに、商品の抽選回数、抽選内容のリセット間隔、陳列棚の商品を購入可能とする期間を設定することが可能です。また、ランダム陳列棚の再抽選をマネタイズの一環として活用できます。
ランダムなパラメーターを管理する GS2-Enchant の提供を開始しました
GS2が新機能、GS2-Enchantの提供を開始しました。GS2-Enchantは、ゲーム内の武器やキャラクターに固有のパラメーターを持たせることを可能にします。これまではGS2-Inventoryのスクリプトで乱数を求め、GS2-Experienceに経験値として格納するといった方法が用いられていましたが、新機能によりハックなしに固有のパラメーターを設定できます。
この機能はバランスパラメーターとレアリティパラメーターの2つの種類に対応しています。また、再抽選機能を持ち、全パラメーターまたは一部のパラメーターを再抽選できるようになり、プレイヤーはより効率的にパラメーターを選定できます。これによりゲームバランスの破壊なく、マネタイズのチャンスも生まれます。
ステートマシン管理機能が追加されました
GS2はステートマシン管理機能を追加し、ゲームの複雑化に対応しました。これは、ゲームの進捗管理に新たな可能性をもたらします。例えば、ゲームの中で複数のプレイフェーズがある場合や、特定のゲーム内状態の進行度を詳細に追跡する必要がある場合に役立ちます。 新機能は、ゲーム内の状態変数を細かく管理し、ステートマシンに対するイベントを受け付けることで、ステートの遷移を管理します。
ゲーム開発者は、ステートの定義や状態変数の使用方法を自由に決定できます。これにより、ゲームの詳細な進捗状況をサーバーサイドで管理し、より詳細な分析データを集めることが可能となります。
ステートマシンの定義には新たに開発されたGS2 States Language(GSL)が使用されます。GSLは、ステート遷移の定義やGS2-Scriptの実行など、ゲーム進行に必要な要素を管理します。ステートはTask、WaitTask、SubStateMachineTask、PassTask、ErrorTaskの5種類があり、ゲームの進行状況や結果に応じて適切なステートに遷移します。
GS2-StateMachine の CDK 拡張が公開されました
GS2-StateMachineのステートマシン定義言語GSLを各種プログラミング言語から生成できるよう、CDK (Cloud Development Kit)への拡張が公開されました。この拡張は、開発者が慣れ親しんだプログラミング言語でステートマシンを定義し、GSLを記述できるようにすることを目指しています。
C#, Java, PHP, Python, TypeScriptでのリリースがされています。各種プログラミング言語のステートマシン定義は、GSLで利用可能なTask、SubStateMachineTask、WaitTask、PassTask、ErrorTaskの定義構文を採用しています。これにより、GS2-StateMachineのステートマシンを簡単に作成し、CDKのStackに反映することが可能になりました。