GS2 Blog

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

【新機能】GS2 SDK for Unity がパワーアップしました

みなさんこんにちは。GS2 CEOの丹羽です。

本日は GS2 SDK for Unity の大幅なパワーアップについてお知らせします。
これまで、Unity から GS2 のサービスをご利用いただくには GS2 SDK アセットをインポートし、手順に従ってコーディングを行うことでゲームにネットワーク機能を組み込んできました。

GS2 SDK はより Unity Editor との統合を進め、より簡単にゲームにネットワーク機能を組み込めるようになったことをお知らせします。
本日時点では GS2-Account と GS2-Money の機能をより簡単に組み込めるよう uGUI によるインターフェースやエラーハンドリングの実装が含まれた状態のプレハブが提供されます。
今後対応サービスを拡充していきますが、とりあえずこの2つの機能であればプログラムを一切記述せず GS2 の機能をゲームに組み込めるようになりました。


【GS2】QuickStart GS2-SDK for Unity

こちらの動画がその手順をまとめたものです。
約7分の動画で GS2 SDKプラグインインストールから、GS2-Account 機能の組み込み。ログイン/機種変更時のアカウント引き継ぎの動作確認までを行っています。

是非お試しいただき、フィードバックをください。

それでは、また。

【登壇情報】Gaming Tech Night #2 re:Born (再始動)

みなさんこんにちは。GS2の丹羽です。

開催直前となってしまいましたが、来週AWS主催のイベントの登壇情報です。
gamingtechnight.connpass.com

f:id:kazutomo:20180117174727p:plain

題目はシンプルに『サーバレスアーキテクチャ入門』です。
これまで Serverlessconf などに登壇した際に、ゲーム開発に携わっている方がどのくらいいるか確認してきましたが、それほど多くなかったということもあり、
今回のイベントはゲーム開発者を対象としたイベントですので、サーバレスアーキテクチャって何?これからサーバレスアーキテクチャを実践してみたい。という方を対象とした内容にしました。

ざっくり見出しを紹介すると、こんな感じです。

  • サーバレスアーキテクチャとは?
  • マネージドサービス?フルマネージドサービス?
  • これがAWSのフルマネージドサービス
  • フルマネージドサービスを使えばいいというわけではない
  • 『サーバレスは本質的な開発に注力出来る』というのはまやかし

見出しに興味がわいたら是非上記ページからエントリーしてください。
イベント終了後にこのブログで資料を公開しますので、予定が付かずイベントに参加出来ない場合も見に来てください。
読者登録しておくと更新時に連絡が行くようになります。

それでは、また。

【新サービス公開】GS2-Limit 回数制限管理サービス

みなさん、こんにちは。GS2 CEOの丹羽です。

本日は新サービスの公開を告知します。
GS-Limit はゲーム内のアクション回数に回数制限をつける時に実行回数をサーバサイドで管理する仕組みです。

これによって、アカウントあたり1回だけ購入出来る商品。のような機能を実現出来ます。
また、回数制限にはリセット周期を定義することも出来ますので、
例えば、毎日3回だけ挑戦出来るデイリークエストの挑戦条件判定や、毎週1回だけ無料でガチャが引ける場合の条件判定といったものを実現することも可能です。

使い方は簡単で、Unity SDK を使用する場合は

yield return Gs2.Limit.Up(
    r =>
    {
        if (r.Error != null)
        {
            // 例外が発生
        }
        Debug.Log("Counter Value: " + r.Result.Count);
    },
    Session,                // ゲームセッション
    LimitName,           // 回数制限名
    CounterName);    // カウンター名

これで回数制限をインクリメント出来ます。結果にはカウントアップ後の実行回数も返ります。
制限回数をオーバーした場合は r.Error に ConflictException が返ります。

カウントアップせずに現在のカウント値を取得するには

yield return Gs2.Limit.Get(
    r =>
    {
        if (r.Error != null)
        {
            // 例外が発生
        }
        Debug.Log("Counter Value: " + r.Result.Count);
    },
    Session,                // ゲームセッション
    LimitName,           // 回数制限名
    CounterName);    // カウンター名

これで取得出来ますので、カウントアップ前に条件の確認をすることも出来ます。

GS2-Limit の利用料金は完全従量制で

カウンターの取得 1円/1,000回
カウンターの操作 3円/1,000回
カウンターマスタのエクスポート 1円/回

で利用出来ます。

GS2-Limit は本日よりご利用いただけます。

それでは、また。

【新サービス公開】イベントスケジュール管理機能

みなさんこんにちは。GS2 CEOの丹羽です。

gs2.hatenablog.com

こちらで告知していたイベントスケジュール管理機能を公開しましたのでお知らせします。
機能の説明について同じ話をしても意味が無いので、今回は実装例を紹介します。

イベントマスターデータの管理については以下のページを参照してください。

イベントマスタフォーマット - GS2 Documents

現在有効なイベントの一覧を取得する場合のサンプル

yield return Gs2.Schedule.List(
    r =>
    {
        if (r.Error != null)
        {
            // 例外が発生
        }
        foreach (var eve in r.Result.Events)
        {
            Debug.Log("name: " + eve.Name);        // イベント名
            Debug.Log("meta: " + eve.Meta);        // メタデータ
            Debug.Log("begin: " + eve.Begin);    // 開始日時
            Debug.Log("end: " + eve.End);        // 終了日時
        }
    },
    Session,                            // ゲームセッション
    ScheduleName,                        // スケジュール名
    new []{EventName1, EventName2});    // イベント名のリスト(省略することで全件取得)

現在有効なイベントを取得する場合のサンプル

yield return Gs2.Schedule.Get(
    r =>
    {
        if (r.Error != null)
        {
            // 例外が発生
        }
        Debug.Log("name: " + r.Result.Name); // イベント名
        Debug.Log("meta: " + r.Result.Meta); // メタデータ
        Debug.Log("begin: " + r.Result.Begin); // 開始日時
        Debug.Log("end: " + r.Result.End); // 終了日時
    },
    Session, // ゲームセッション
    ScheduleName, // スケジュール名
    EventName1);        // イベント名

アカウント登録時に相対時間のイベントを開始する

schedule_client = client('schedule')  –- GS2-Schedule のクライアントを初期化
result = schedule_client.pull_trigger({
    scheduleName="schedule-0001", -- スケジュール名 
    triggerName="trigger-0001", -- トリガー名
    userId="user-0001", -- ユーザID
    action="pull_again" -- トリガーの引き方
})
result = {permit=not result.isError} -- トリガーを引くのに失敗した場合失敗とする

このスクリプトを GS2-Script に登録し GS2-Account のアカウント登録イベントでフックすることで、
アカウント登録時にイベントの開始トリガーを引くことが出来ます。


利用料金は完全従量制で

イベントの取得 1円/1,000件
トリガーの操作 3円/1,000回
イベントマスタのエクスポート 1円/回

API呼び出し回数 3円/1,000回

と非常に扱いやすい内容になっています。

それでは、また。

【新サービス発表】イベントスケジュール管理サービス

みなさん、こんにちは。GS2の丹羽です。

本日は近日公開予定の新サービス GS2-Schedule を発表いたします。
GS2-Schedule はゲーム内のイベントの管理を行うマイクロサービスです。

イベントは2種類定義することが可能です。
1つ目は絶対時間、2つ目は相対時間です。

絶対時間は開始日時/終了日時を明示してイベントの開催期間を定義出来ます。
相対時間はユーザ毎にトリガーを引いてから一定期間をイベントの開催期間と定義するものです。

前者は一般的なクリスマスやお正月にあわせたイベント開催に、
後者はチュートリアル突破後24時間限定のイベントなどの定義に使用出来ます。

マスターデータはGS2のマネージメントコンソールで定義することも出来ますが、
マスターデータは最終的にJSON形式のファイルにエクスポートして、実サービスに適用するように設計されています。
これは、開発環境で作成したマスターデータを製品環境に適用するコストを最小に抑えるためと、
イベントの定義をGS2のマネージメントコンソールだけでなく、独自のツールを使ってフォーマットに沿ったJSONを出力することでも定義出来るようにするためです。

GS2-Schedule は今後GS2のマイクロサービスと連携することで本領を発揮します。
たとえば、今後GS2の開発マイルストーンには、ガチャ/アイテムショップ/お知らせ といったサービスの開発が計画されています。
これらのサービスと GS2-Scedule を連携されることで、イベント期間のみガチャを解放したり、チュートリアル突破後24時間限定でショップで買える商品を定義することが出来るようになる計画です。

料金や機能の詳細はサービス提供開始にあわせて後日発表しますので、しばらくお待ちください。

それでは、また。

【事例紹介】株式会社スタジオリール SOCCER DUEL ONLINE

f:id:kazutomo:20171124153120j:plain

SOCCER DUEL ONLINE について

サッカーとチェスを組み合わせたオンライン対戦ゲーム。
相手との読み合いが勝利へのカギとなる。
思考型のゲームだが、試合はリアルタイムで進むため、意外と忙しい。
海外をメイン市場に据えた商品。

基本無料。
消費型アイテム課金制。
アプリ内広告あり。

GS2 が選ばれた理由

資金決済法に対応する課金通貨購入、管理してくれるサービスを探していたところ、GS2を見つけました。
SOCCER DUEL ONLINE は Unity で開発を進めており、Unity 向けの SDK を提供している GS2 はすぐに導入できました。
また、初期費用を低く抑えたいと考えており、初期費用が一切必要無い GS2 はその点でも魅力的でした。
ゲームサーバの多くは様々な機能がオールインワンになっているものが多いのですが、
GS2 は機能単位で契約して使用できるため、余計な機能に費用が発生することがないのが魅力的でした。

GS2 に対する開発面での感想

サンプルを見ながらスムーズに組み込むことができました。
何カ所か実装中につまずいたこともあったのですが、丁寧にサポートしていただけました。
今後導入する方のためにコミュニティがあるといいと思います。つまづいたところなどを共有したいです。

GS2 に対する運用面での感想

REST API であらゆる機能がアクセス出来るようになっており、好きなように運営ツールも作れそうなのはとてもよい。
反面、マネージメントコンソールでは 絞り込み・ソートなどの検索まわり・エクスポート機能 といった機能が不足していると感じる。
今後の改善に期待しています。

GS2 に対する費用面での感想

トライアル期間として十分な無料枠があることで導入検討しやすかったです。おかげでリリース直前まで費用が一切かかりませんでした。
ただ、API呼び出し回数などで費用計算されるため、リリース後に、実際はどの程度の費用が発生するかの見積もりが難しかったです。

GS2全体を通しての感想

正直に申し上げて、現時点でのGS2は採用実績が乏しく採用するにあたっては不安がありました。
しかし、いろいろな質問をサポートに問い合わせた際に、設計面や思想まで含めて丁寧に答えていただけたことで安心感につながりました。

GS2 CEO の丹羽さんと直接お会いする機会がありましたが、誠実で信頼のできる方でした。
今ではGS2を選んで良かったと思っています。


Game Server Services は現在アカウント登録していただいた皆様に 30,000円分のクーポン(有効期限: 登録日から3ヶ月間)をプレゼントしています。
この機会にお試しください。
gs2.io

SOCCER DUEL ONLINE

SOCCER DUEL ONLINE

  • studio R.E.E.L
  • ゲーム
  • 無料

play.google.com

【新機能公開】GS2-Script によるサービス間の連携機能を公開

みなさん、こんにちは。GS2 CEO の丹羽です。

先日告知していた GS2-Script によるサービス間の連携機能を公開しました。
これにより、GS2 のマイクロサービス間をサーバレスで繋いで利用できるようになります。

利用例は以下のようになります。
f:id:kazutomo:20171122095120p:plain

f:id:kazutomo:20171122095135p:plain

スクリプトの実装・編集はマネージメントコンソール上で行えます。
引数はドロップダウンボックスでイベントの種類を選択するだけで、適切なパラメータのサンプル値が設定されます。

f:id:kazutomo:20171122110449p:plain

GS2-Script の API リファレンスは以下でご確認いただけます。
GS2-Script 内で使用できるAPIリファレンス - GS2 Documents

今後も GS2 ではゲーム開発者の皆さんがサーバレスでゲーム開発が出来るよう機能の拡充を進めます。

それでは、また。

(C) Game Server Services, Inc.