O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019

1.243 visualizações

Publicada em

Game Server Services(GS2) はゲームサーバーに割いていた開発リソースを削減し、ゲームを面白くすることにリソースを集中し、より短い期間でより価値の高いゲームを世の中に提案していける環境づくりを目標として開発されました。
かつてゲームエンジンを自社開発していた時代から、汎用ゲームエンジンを使った開発に開発スタイルは変化しました。サーバー分野でもこの変化が起こる日は間近です。
本セッションでは GS2 を使ったサーバー開発をしないゲーム開発をについて解説します。

Publicada em: Tecnologia
  • Login to see the comments

  • Seja a primeira pessoa a gostar disto

Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019

  1. 1. Game Server Services ではじめる サーバ開発運用しないゲーム開発
  2. 2. 自己紹介 代表取締役社長CEO 丹羽 一智 新卒で株式会社セガに入社、携帯電話向けのゲームおよびサーバ開発業 務に従事。約3年勤める 任天堂株式会社に入社、ニンテンドー3DSのOS開発や、ゲームサーバの 開発・運用。Nintendo Switchのサーバシステム設計などに従事。約7年 間勤める 2016年9月 Game Server Services 株式会社を設立
  3. 3. 会社概要 事業内容 ゲームサーバを、初期費用・運用費用など一切かからず、サーバアクセ ス1回あたり 0.02円 で使用出来るクラウドサービス。 パズドラ / モンスト のようなゲームをサーバ開発 / 運用 することなく リリース出来る。 代表的なゲーム関連企業の株主 DeNA KLab Venture Partners ワンダープラネット
  4. 4. なぜ GS2 が必要か
  5. 5. コードを書くことには責任が伴う コードを書くことで責任が発生する バグがないか? 脆弱性がないか? スケールするか?
  6. 6. ゲーム開発者の負うべき責任 ゲームを面白く ゲームを遊べる状態を維持
  7. 7. 構築から利用へ ゲームのコアバリューに関係のないものは責任を負って構築する のではなく、責任を他者に転嫁して利用するようにしましょう。 ゲームサーバの多くの要素は“当たり前に存在するもの”であり、 新たな価値を生み出しません。
  8. 8. 今のゲームサーバに足りないもの 汎用ゲームエンジンはゲーム開発 シーンで過去10年で最もイノベー ティブな存在でした。 開発効率を向上させ、ゲーム開発 の敷居を大幅に引き下げました。 ゲームサーバの分野には開発環境 の改善が不足しています。
  9. 9. GS2 が提供する価値
  10. 10. サーバダウンの恐怖から解放 GS2は AWS と GCP のハイブリッドクラウドで提供します。 秒間10万アクセスを超える負荷テストを実施しそれ以上のアク セスを受け入れられることを確認しました。 これはローンチ時に未曾有のアクセスが発生し、1,000台以上の サーバーを用意したというSINoALICEのピーク時のアクセスの2 倍以上※です。 ※ CEDEC 2018 公演より
  11. 11. 先行投資なし GS2 は初期費用無しで採用できます。 従来はゲームサーバの初期開発には開発リソースが必要で、外部 委託する場合は数百〜数千万円の初期投資が必要でした。 これらのコストはゲームを面白くするための開発に活用できます。
  12. 12. 運用費なし 通常、サーバの保守運用費として継続的に費用が発生します。 GS2は利用料金に運用費が含まれるため、追加の費用は発生しま せん。 GS2はフルサーバレスアーキテクチャを採用。 AWS スタートアップ アーキテクチャオブ・ザ・イヤー受賞 GS2の責任で動作しているサーバは1台もない アプリケーションコードより下のサーバに関する全ての責任は AWS/GCPが負っている 世界で最も優れた監視運用体制でGS2のインフラは提供される
  13. 13. ゼロスケール GS2 はサーバのAPI呼び出し回数など利用状況に応じて料金が計 算されます。 GS2は大量のアクセスを捌くためのスケーリングは当然ながら、 ゲームサーバーを使用していないときには一切費用が発生ないゼ ロスケールまでをサービスとして提供します。
  14. 14. ゲームのニーズに合わせてカスタマイズ GS2では、アカウント新規登録時、レベルアップ時、クエストク リア時など様々なイベントをトリガーとしてサーバサイドでスク リプトを実行できます。 この仕組みを使うことでゲームの特徴にあわせてゲームサーバー の動作を自由に拡張できます。
  15. 15. チート対策に頭を悩ませない GS2は不正行為に対して強固な設計になっています。 所持品や課金通貨の不正な入手など、あってはならない不具合を 生み出せないよう設計されています。 → 後ほど解説
  16. 16. 様々な言語向けSDKを提供 ゲームエンジン向けSDKを提供。 Unity, Unreal Engine4, cocos-2dx ゲーム内から利用するだけでなく独自の管理ツールを作りたい場 合は。各言語向けSDKも。 Java, PHP, Python, Ruby, Node.js(JavaScript), C#, C++
  17. 17. GS2 の概念
  18. 18. わかりやすいAPI Unity のゲームにアカウント機能を導入する場合は7種類のAPI を意識するだけでOK! Gs2Account.Create() アカウントの新規作成 – ユーザID/パスワードを発行 Gs2Account.Authentication() ユーザID/パスワードでアカウントを認証 Gs2Account.AddTakeOverSetting() データ引き継ぎ用 ID/パスワード を登録 Gs2Account.ListTakeOverSettings() データ引き継ぎ用 ID/パスワード の一覧を取得 Gs2Account.UpdateTakeOverSetting() データ引き継ぎ用 ID/パスワード を更新 Gs2Account.DeleteTakeOverSetting() データ引き継ぎ用 ID/パスワード を削除 Gs2Account.DoTakeOver() データ引き継ぎ用を実行
  19. 19. わかりやすいAPI 管理用のAPI も提供。ゲーム向けAPIキーでは使用できないよう に設定可能。 管理用APIの例(一部) Gs2Account.DescribeAccounts() 存在するアカウントの一覧取得 Gs2Account.DeleteAccount() アカウントの削除 Gs2Account.DescribeTakeOversByUserId() ユーザIDを指定して引き継ぎ情報一覧取得
  20. 20. 必要な機能を組み合わせて実装 アカウント管理 経験値・ランク管理 プレゼントボックス 所持品管理 回数制限管理 抽選処理 マッチメイキング 課金通貨管理 クエスト管理 リアルタイム対戦 ミッション管理 イベントスケジュール管理 ゲーム内ストア管理 スタミナ管理 パーティ編成管理 テキストチャット フレンド管理 バージョン管理
  21. 21. 用例A GS2 が提供する機能をそのまま利用する。
  22. 22. 用例A アカウント管理
  23. 23. 用例A SDKが提供するAPIを呼び出すだけで実装できて、すぐにゲーム に導入可能。
  24. 24. 用例B GS2 が提供する様々な機能を連携させて利用する。
  25. 25. 用例B ゲーム内ストア イベント期間1回だけ 買える商品 イベント スケジュール管理 商品販売期間 回数制限管理 商品購入回数 所持品管理 買った商品 課金通貨管理 所持してる通貨量
  26. 26. 用例B 複雑な仕様を実現しようと思うと必要となるパターン。 GS2 ではこのパターンでの利用を前提に設計しており、多くの 場合は設定項目で連携するサービスのID※を指定するだけで連携 できる様になっている。 ※ イベントスケジュールのイベントID ストアに陳列した商品を購入するために必要なアイテムID 購入したら手に入るアイテムのID
  27. 27. 用例C 全く新しい仕組みを作り出す。
  28. 28. 用例C クエスト管理 1日1回だけ 進行できるクエスト 回数制限管理 今日の クエスト進行回数 所持品管理 プレイヤーの所持品 イベント スケジュール管理 公開中のログボ サーバスクリプト クエストの終端に 来たら進行状況を リセット ログインボーナスシステム
  29. 29. 用例C GS2 が提供するコンポーネントを組み合わせることで、全く新 しいゲームサーバシステムが生まれます。
  30. 30. GS2 の提供するサービスの紹介
  31. 31. アカウント管理 データの引き継ぎに対応 ID/パスワード ソーシャルアカウント 自社でアカウント管理の仕組みがある場合は使わなくても他の GS2の機能を利用可能
  32. 32. 課金通貨管理 資金決済法の前払式支払手段(自家型)に対応 通貨の単価ごとに数量を管理 未使用残高が自動計算 二次通貨の管理にも対応
  33. 33. 経験値・ランク管理 ランクアップテーブルを登録するとランクを自動計算 単純なレベルだけでなく経験を積み上げてランクをあげる仕組 み全般で使用可能 信頼度 クエストを3回クリアするとスキップチケットが使えるようになる クリア回数を経験値とする ランク2になるとスキップチケットが使える
  34. 34. プレゼントボックス 事前登録ボーナスを届ける お詫びの品を届ける 所持品管理サービスやスタミナ管理サービスと連携すれば溢れ たリソースを自動的にプレゼントボックスに届けることが可能
  35. 35. 所持品管理 消費型アイテム ガチャチケット、スタミナドリンク 資産 キャラクター、ゲーム内通過 素材 強化素材、進化素材 : 様々なものを所持品として管理 所持品枠の拡張機能あり
  36. 36. 回数制限管理 行動回数のカウンター 商品の購入回数 クエストの挑戦回数 ガチャの抽選回数 リセット間隔を設定可能 毎日X時 毎週X曜日 X時 毎月X日 X時 リセットしない
  37. 37. 抽選処理 排出確率テーブルを設定するだけで利用可能 重みベースの確率設定 アイテムA(重み1), アイテムB(重み3)に設定すると アイテムA(25%), アイテムB(75%)と処理される 排出コンテンツに排出確率テーブルを指定可能 1段目 SSR/SR/R のようなレアリティ抽選 2段目 各レアリティのコンテンツを抽選
  38. 38. クエスト管理 進行管理・前提クエストのクリア判定などに対応 パーティメンバーに特定キャラが編成されているか? スクリプトによる判定処理の拡張で対応可能 クエストの報酬を抽選可能 レアモンスターの出現判定 クエスト開始時に乱数シードと入手可能なコンテンツの最大量 クエスト終了時に実際に入手したコンテンツの数量を報告
  39. 39. ミッション管理 実績(トロフィー)に相当する機能 クエストのクリア報酬などでミッションのカウンターを操作 カウンターが閾値を超えたときにミッション達成 カウンターには「デイリー」「ウィークリー」といったスコー プを設定可能 ミッション達成時にサーバからプッシュ通知 ミッションの報酬受取、カウンターの操作に期間を設定可能
  40. 40. イベントスケジュール管理 ゲーム内イベントの管理 絶対期間・相対期間のイベントに対応 相対期間の場合は開始トリガーを引く必要あり ログイン時のパラメータで時間のオフセットを指定できる QA担当は1日進んだ状態でプレイできる
  41. 41. ゲーム内ストア管理 現金で課金通貨 / 現金で相対期間イベントのトリガー 課金通貨でガチャ / 課金通貨で所持品枠の拡張 ゲーム内通貨で進化素材 / ゲーム内通貨でスタミナ 様々なリソースを IN/OUT に指定可能 販売期間の設定が可能 複数商品をグルーピング。購入条件を満たす最初の商品が陳列 ステップガチャ、購入するたび売価が高くなる商品
  42. 42. スタミナ管理 時間経過で回復するスタミナ値の管理 二段階の上限値を設定可能 50/100 の状態で 100回復アイテムを使うと 150/100 になる その場合でも 999/100 を上限とする 999 を超えるとプレゼントボックス送り 回復間隔・回復量・最大値 は経験値ランク管理と連携可能 建築系ゲームの資源回収にも応用可能
  43. 43. マッチメイキング 属性値の範囲で条件を設定 ゲームモード、レーティング、地域など ロールで条件を設定 盾役1、回復役1、攻撃役2 でマッチメイキング ホワイトリスト フレンドのみ参加できるルーム ブラックリスト このプレイヤーとは一緒に遊びたくない
  44. 44. リアルタイム対戦 初期はパケットリレーサーバとして提供 サーバで動かすロジックを変更できるように サーバでロジックを動かせるとレイドバトルなどを実装できる ボスの体力をサーバで管理 サーバでダメージ計算 ボスが死んだら参加者に報告
  45. 45. GS2 のサービス連携と不正対策の仕組み
  46. 46. スタンプシート GS2 内のサービス間を連携させる仕組みとして、スタンプシー トシステムを提供。 スタンプシートシステムは、稟議のようなもの。
  47. 47. 対価と報酬 スタンプシートには対価と報酬が設定されています。 たとえば、1回だけ100円で買える1,000個の課金通貨を購入する としましょう。 その場合のスタンプシートは以下のようになります。 報酬:課金通貨 1,000 個を入手する件 対価: 100円支払う 対価: 購入回数を 1回増やす
  48. 48. 対価を払うとスタンプがもらえる GS2-Money に スタンプシートと、AppStore や PlayStore で購 入したときに発行されるレシートを持っていきます。 すると、GS2-Money はレシートを検証して、スタンプシートに スタンプを押してくれます。 報酬:課金通貨 1,000 個を入手する件 対価: 100円支払う 対価: 購入回数を 1回増やす
  49. 49. すべてのスタンプが揃ったら すべてのスタンプが揃ったら報酬を受け取りに行きます。 報酬を受け取るとスタンプシートは二度と使えないよう破棄され ます。 報酬:課金通貨 1,000 個を入手する件 対価: 100円支払う 対価: 購入回数を 1回増やす
  50. 50. チート対策 GS2 内のリソースの増加は基本的にこのスタンプシートを通し て行います。 対価を払わなければ報酬がもらえない仕組みによって不正行為を 行えなくします。 報酬:課金通貨 1,000 個を入手する件 対価: 100円支払う 対価: 購入回数を 1回増やす まだスタンプ揃ってないけど、 持っていくぜ これでは報酬は払えませんな
  51. 51. チート対策 スタンプシートには改ざん検出機能があり、不正にスタンプシー トを改ざんしても報酬は払い出されません。 対価: 100円支払う 対価: 購入回数を 1回増やす 内容を書き換えたろ 報酬:課金通貨 1,,000 個を入手する件 改ざんされてますな これでは報酬は払えませんな 報酬:課金通貨 1,000,000,000,000,000 個を入手する件
  52. 52. チート対策 対価を改ざんした場合も同様に、スタンプを押してもらえません。 対価: 1円支払う 対価: 購入回数を 1回増やす えーい。なら対価を変えてやる 報酬:課金通貨 1,000 個を入手する件 改ざんされてます これではスタンプは押せません
  53. 53. GS2 のマスターデータ管理
  54. 54. マスターデータ管理 サービスごとにJSON形式でマスターデータ管理 ゲーム内ストアは 購入に必要なリソースのIDと数量 そして、入 手できるリソースのIDと数量 を設定。 リソースが何者かはしらない。 リソースのマスターデータは所持品管理のサービスなどに設定。 GS2の管理画面で登録してエクスポートもできるが、独自のツー ルで定められた形式のJSONファイルを出力してもOK。
  55. 55. もちろん Excel でも Excel のマクロを使用して JSON 形式で出力すれば、Excel ベー スのマスターデータ管理も可能。
  56. 56. GS2 を利用した開発・運営の流れ
  57. 57. GS2-Deploy GS2 を利用した開発・運営をサポートするのが GS2-Deploy で す。 GS2-Deploy はGS2内で作成したいリソースを宣言的に記述する ことで、自動的に作成・更新・削除してくれる機能です。 この宣言ファイルのことをテンプレートと呼びます。
  58. 58. 自動的に環境を作成 テンプレートを GS2-Deploy にアップロードすると、自動的に 必要となるリソース(サーバの設定)が作成されます。 この機能は開発環境と製品環境で内容を揃えるときに活用できま す。 開発期間も、テンプレートさえ共有していれば、開発者ごとに別 の環境を利用することができます。 テンプレートは YAML形式のテキストファイルなので Git で管 理できます。
  59. 59. 環境の削除 アップロードしたテンプレートを削除するだけで、その定義に よって作成されたリソースがまとめて削除されます。
  60. 60. GS2-Deploy を使ったイベント運営 テンプレートはアカウントに対して1つではなく、複数定義する ことができます。 ゲームを構成する基本的なテンプレートとは別にイベント開催用 のテンプレートを作成し、イベントが終わったらテンプレートを 削除することでイベント関連のリソースをまとめて削除できます。 復刻イベントを開催するときも過去のテンプレートを使えばすぐ に復刻できます。
  61. 61. カスタマーサポート サポート業務に即した管理画面を用意したい場合があります。 GS2-SDK を使うと独自の管理画面を作成できます。 GS2の提供する管理画面もSDKを使用して開発されています。
  62. 62. ロードマップ
  63. 63. 第二世代GS2 を来週火曜日公開 現在サービス中の第一世代GS2から更に発展した第二世代GS2が 今月β公開されます。(本公演の内容は第二世代の内容) β期間は提供されているすべての機能を無料で試していただくこ とができます。 フィードバックも受け付け、フィードバックいただいた内容は正 式サービス開始までに優先度をつけて対応していきます。
  64. 64. 年内正式サービス開始 年内に正式サービスを開始します。 正式サービス開始で変わること - 99.99% のSLA - 日本リージョン以外に北米・欧州リージョンの提供開始 - 利用料が発生 - 毎月2万円まで無料 (APIリクエスト100万回相当)
  65. 65. 新発表 Cloud Weave
  66. 66. Cloud Weave Cloud Weave はGS2-Deployのテンプレートリポジトリです。 Unity Editor をはじめとした ゲームエンジンのIDE上のボタン 一つで GS2-Deploy にアップロードし反映できます。 GS2-DeployCloud Weave テンプレート テンプレート 検索/選択 アップロード
  67. 67. 機能特化の管理画面 テンプレートが提供する機能の視点でわかりやすい管理画面も含 むことで、より開発体験を良くしていきます。 ログインボーナスをインストール ログインボーナス管理 1日目の報酬 2日目の報酬 : 1日目の報酬は何にしようかな
  68. 68. 最後に
  69. 69. 会場にブースを出しています 詳しい説明を聞いてみたい!という場合はお立ち寄りください。 - 大阪会場 18 - 東京会場 26 Webサイトのお問い合わせページからも随時承っています。 https://gs2.io/
  70. 70. Good-bye, dedicated servers. https://gs2.io/

×