Unity を検索

Unity の Game Backend ツールの 9 つのユースケース

2022年3月11日 カテゴリ: ゲーム | 10 分 で読めます
Backend Header
Backend Header
取り上げているトピック
シェア

Is this article helpful for you?

Thank you for your feedback!

ゲームシステムをサポートするバックエンドを構築するのは簡単ではありませんし、自社でのサーバーの構築、ホスト、そして(最も重要な)スケーリングのための時間、専門知識、資金がない場合もあるでしょう。

Unity's Game Backend suite 、特にUnity Gaming Services を利用することで、皆さんはコンテンツ制作に集中することができます。先に挙げた重い仕事は私たちにお任せください。Unity の Cloud CodeCloud SaveEconomyAuthentication でできることは、以下のとおりです。

ゲームバックエンドを分解する

1. 集中管理されたサーバー時間の使用

Backend 1 - Green circuits

ゲームに時間的な要素を組み込む最もシンプルな方法は、デバイスの時刻情報を利用することです。しかし、デバイスの時刻情報を使って不正を行うプレイヤーがいることを考えると、信頼性の低いデバイスの時刻情報では問題が生じます。  

たとえば、デバイスの時刻情報を操作することで、期間限定アイテムを入手できる期間を延長させることもできてしまいます。 

Cloud Code を使えばステートレスなサーバーサイドのコードを書くことができ、ゲームロジックを書くために使える、集中管理されて信頼性の高い「サーバー」時間を提供することができます。 

2. 引き換え可能なクーポンを提供

Backend 2 - Building

ゲーム内の報酬を豊富に設計することで、プレイヤーを長くゲームに惹きつけることができます。Cloud Code を使用すると、ゲーム内のクーポンコードや特典アイテムを検証するスクリプトを書くことができます。 

また、ゲームが稼働中であってもクーポンのロジックを変更することができ、新たにゲームクライアントのアップデートをしてもらう必要がありません。サーバーで変更を公開するだけで、クライアントに新しいクーポンの利用ルールを適用することができます。

Cloud Save を使うと、プレイヤーがクーポンを利用したかどうかを追跡できます。また、Economy を設定すれば、ゲーム内通貨やアイテムなどのリソースを贈ることができます。

3. デイリー報酬のスケジュールを作成

Backend 3 - Servers

特にモバイルゲームでは、デイリー報酬は、ゲーム内のさまざまなアイテムを獲得させつつ、プレイヤーに繰り返しゲームを遊んでもらうための効果的な方法と言えます。

Cloud Code は他の Unity サービスと統合されているため、デイリー報酬のロジックを構築するのに最適なツールです。Economy でアイテムや通貨を、Remote Config で確率を定義し、Cloud Code で基礎となるアルゴリズムを記述することができます。 

これにより、ゲームクライアントを更新することなく、その場でデイリー報酬のロジックを変更することができます。

4. デバイスをまたいでプレイヤーデータを保存

Backend 4 - User chats

プレイヤーは、ゲーム内の実績や購入した商品はすべて保存されていてほしいと思っています。また、プレイヤーのゲームの進行状況については、そのまま保存されるだけでなく、そのプレイヤーだけに関連づけられていて、どのデバイスでプレイしても同じものが共有されていていなければなりません。 

Cloud SaveEconomyRemote ConfigAuthentication を組み合わせることで、プレイヤーの進行状況を自動的に保存し、アカウントと連動させることが可能です。

Authentication を使用すると、プラットフォームアカウントでのサインインを設定できるため、プレイヤーは Google、Facebook、Apple、Steam など各種プラットフォームのアカウントでサインインして、どのデバイスからでもゲームの続きをプレイできるようになります。

5. ゲーム内経済の保護

Backend 5 - Highway to events

ゲーム内経済を設計したら、それを守る方策もしっかりと組み立てる必要があります。悪意のあるプレイヤーの中には、ゲーム内の報酬やアプリ内課金を得るために、他人になりすまそうとする人もいます。 

EconomyAuthentication を連携させれば、不正を行おうとするプレイヤーに操作できないユニークなトークンや ID を使って各プレイヤーを識別することが可能です。こうすることで、どのプレイヤーがログインしていて、その時のプレイヤーの通貨やアイテムの所有状況を知ることができます。

Cloud Code を追加することで、このプロセスサーバーを権威サーバーとし、ゲーム内経済に保護レイヤーをもう 1 枚追加することができます。

6. ゲーム内のロジックを瞬時に変更

Backend 6 - Friend requests

ゲームのライブアップデート、バグ修正、改良をロールアウトすることは、しばしば複雑なリリースプロセスを伴います。

Cloud Code を使ってゲーム内ロジックをゲームクライアントから切り離すことで、すべてのプレイヤーに対して変更を即座に有効にすることができます。ゲームロジックをクライアントデバイスから切り離せば、プレイヤーがすでにインストールしたバージョンをアップデートするよう要求せずとも、ゲームロジックをアップデートすることができます。

7. ストレスのないユーザー体験の構築

Backend 7 - Users joined

モバイルゲームで多くのオンラインサービスを利用すると、インターネット経由で何度もデータを送信することになります。このため、プレイヤーが使っている回線速度が遅い場合、プレイヤーに与える体験が不快なものになることがあります。

通常、EconomyCloud Save のようなサービスに変更を加える場合、サーバーからデータを読み込んで、デバイス上で何が起こるかを決定することになります。その結果得られたデータをサーバーに送り返す必要があります。

Cloud Code では、情報の往復は 1 回だけで、変更はサーバー上で直接実施されます。これにより、インターネット回線の速度に関係なく、すべてのプレイヤーがよりストレスなくプレイできるようになります。

8. マルチプレイヤーゲームへの P2P の導入

Backend 8 - Tunnel

Unity エンジンを使ってマルチプレイヤーゲームを開発する場合、エディターに統合されたツールを活用することで、ゲームを安全に構築、テストし、一貫した技術スタックを維持することができます。 

Unity のRelay サービスとAuthentication を使用すると、Relay で接続しているプレイヤーを、匿名サインインとプラットフォームごとのサインインのいずれかの方法で認証できます。

これらのツールにより、サードパーティのソリューションや専用のゲームサーバーを必要とせずに、マルチプレイヤーゲームを構築、テスト、運用することができます。

9. 互換性のあるパーティやロビーの作成

Backend 9 - City

マルチプレイヤーゲームを開発する場合、プレイヤー同士がつながり、一緒に遊ぼうとしてくれるように、ゲームの機能をよく考える必要があります。 

特定のロビー、パーティ、マッチにどのようなプレイヤーを集めるかをよく理解すれば、プレイヤーの体験に大きな影響を与えることができます。 

Unity の LobbyMatchmaker サービスを Authentication と組み合わせることで、特定のタイプのプレイヤーをグループ化し、匿名で認証してつなぎ、通信を確保して、一緒に遊んでもらえるようにできます。 

これらのツールは、さまざまな種類のゲームに対応できる柔軟性と、ゲーム内のプレイヤーの流入に対応できる拡張性を備えています。

Game Backend ツールのその他の使用方法について

Game Backend ツールやその他の Unity ゲーミングサービスの使用を開始するときには、ぜひ Game Operations サンプルをご覧になってみてください。 

これに収録されているサンプルシーンとそこで使われているスクリプトファイルを見ることで、さまざまなツールを組み合わせて、ゲーム開発でよく出会う課題を解決する方法を学ぶことができます。各サンプルシーンで解決している課題は以下の通りです。

  • Loot Boxes - Cloud Code を使用して Economy による通貨の付与を実行し、Economy で扱う通貨をランダムに、プレイヤーへの報酬として与える。
  • Daily Rewards - 通貨やアイテムを一定時間ごとにランダムにプレイヤーに与える。
  • Starter Pack - Cloud Code を使って 1 回だけ購入できるアイテムを実装し、プレイヤーがスターターパックを購入できるようにする。
  • Seasonal Events - 時限式の特別なイベントに基づいて、ゲームのコンテンツをリモートで更新する。
  • AB Test Level Difficulty - 難易度に関わる特定の変数(この場合、レベルアップに必要な経験値の量)のどのバリエーションを取れば、ゲームがプレイヤーにとって最も魅力的になるかを判断するために、プレイヤーを複数のテストグループに分割してテストする。
  • Idle Clicker Game - 暇つぶしのクリッカーゲームやソーシャルゲームのように、サーバーの権威ゲーム状態をリアルタイムで更新する。
  • Cloud AI Mini Game - Unity ゲーミングサービス上で動作し、永続的な状態、通貨による報酬、統計、および簡単な AI を搭載したシステムと対戦するシンプルな三目並べゲームにおいて、サーバー側の権威ゲームプレイを実現する。
  • Command Batching - ゲームコマンドをキューにまとめ、サーバー上で一括処理することで、ゲームプレイ中に発生するサーバー呼び出しの量と頻度を削減する。
  • Battle Pass - 無料プレイヤーと課金プレイヤーのそれぞれについて、季節ごとにポイントに応じた報酬を与えるシステムを提供する。

Unity ゲーミングサービスと、現在ベータ版として提供中の構成製品については、こちらのページをご覧ください。

2022年3月11日 カテゴリ: ゲーム | 10 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

取り上げているトピック
関連する投稿