ゲームシステムをサポートするバックエンドを構築するのは簡単ではありませんし、自社でのサーバーの構築、ホスト、そして(最も重要な)スケーリングのための時間、専門知識、資金がない場合もあるでしょう。
Unity's Game Backend suite 、特にUnity Gaming Services を利用することで、皆さんはコンテンツ制作に集中することができます。先に挙げた重い仕事は私たちにお任せください。Unity の Cloud Code、Cloud Save、Economy、Authentication でできることは、以下のとおりです。
ゲームに時間的な要素を組み込む最もシンプルな方法は、デバイスの時刻情報を利用することです。しかし、デバイスの時刻情報を使って不正を行うプレイヤーがいることを考えると、信頼性の低いデバイスの時刻情報では問題が生じます。
たとえば、デバイスの時刻情報を操作することで、期間限定アイテムを入手できる期間を延長させることもできてしまいます。
Cloud Code を使えばステートレスなサーバーサイドのコードを書くことができ、ゲームロジックを書くために使える、集中管理されて信頼性の高い「サーバー」時間を提供することができます。
ゲーム内の報酬を豊富に設計することで、プレイヤーを長くゲームに惹きつけることができます。Cloud Code を使用すると、ゲーム内のクーポンコードや特典アイテムを検証するスクリプトを書くことができます。
また、ゲームが稼働中であってもクーポンのロジックを変更することができ、新たにゲームクライアントのアップデートをしてもらう必要がありません。サーバーで変更を公開するだけで、クライアントに新しいクーポンの利用ルールを適用することができます。
Cloud Save を使うと、プレイヤーがクーポンを利用したかどうかを追跡できます。また、Economy を設定すれば、ゲーム内通貨やアイテムなどのリソースを贈ることができます。
特にモバイルゲームでは、デイリー報酬は、ゲーム内のさまざまなアイテムを獲得させつつ、プレイヤーに繰り返しゲームを遊んでもらうための効果的な方法と言えます。
Cloud Code は他の Unity サービスと統合されているため、デイリー報酬のロジックを構築するのに最適なツールです。Economy でアイテムや通貨を、Remote Config で確率を定義し、Cloud Code で基礎となるアルゴリズムを記述することができます。
これにより、ゲームクライアントを更新することなく、その場でデイリー報酬のロジックを変更することができます。
プレイヤーは、ゲーム内の実績や購入した商品はすべて保存されていてほしいと思っています。また、プレイヤーのゲームの進行状況については、そのまま保存されるだけでなく、そのプレイヤーだけに関連づけられていて、どのデバイスでプレイしても同じものが共有されていていなければなりません。
Cloud Save、Economy、Remote Config、Authentication を組み合わせることで、プレイヤーの進行状況を自動的に保存し、アカウントと連動させることが可能です。
Authentication を使用すると、プラットフォームアカウントでのサインインを設定できるため、プレイヤーは Google、Facebook、Apple、Steam など各種プラットフォームのアカウントでサインインして、どのデバイスからでもゲームの続きをプレイできるようになります。
ゲーム内経済を設計したら、それを守る方策もしっかりと組み立てる必要があります。悪意のあるプレイヤーの中には、ゲーム内の報酬やアプリ内課金を得るために、他人になりすまそうとする人もいます。
Economy と Authentication を連携させれば、不正を行おうとするプレイヤーに操作できないユニークなトークンや ID を使って各プレイヤーを識別することが可能です。こうすることで、どのプレイヤーがログインしていて、その時のプレイヤーの通貨やアイテムの所有状況を知ることができます。
Cloud Code を追加することで、このプロセスサーバーを権威サーバーとし、ゲーム内経済に保護レイヤーをもう 1 枚追加することができます。
ゲームのライブアップデート、バグ修正、改良をロールアウトすることは、しばしば複雑なリリースプロセスを伴います。
Cloud Code を使ってゲーム内ロジックをゲームクライアントから切り離すことで、すべてのプレイヤーに対して変更を即座に有効にすることができます。ゲームロジックをクライアントデバイスから切り離せば、プレイヤーがすでにインストールしたバージョンをアップデートするよう要求せずとも、ゲームロジックをアップデートすることができます。
モバイルゲームで多くのオンラインサービスを利用すると、インターネット経由で何度もデータを送信することになります。このため、プレイヤーが使っている回線速度が遅い場合、プレイヤーに与える体験が不快なものになることがあります。
通常、Economy や Cloud Save のようなサービスに変更を加える場合、サーバーからデータを読み込んで、デバイス上で何が起こるかを決定することになります。その結果得られたデータをサーバーに送り返す必要があります。
Cloud Code では、情報の往復は 1 回だけで、変更はサーバー上で直接実施されます。これにより、インターネット回線の速度に関係なく、すべてのプレイヤーがよりストレスなくプレイできるようになります。
Unity エンジンを使ってマルチプレイヤーゲームを開発する場合、エディターに統合されたツールを活用することで、ゲームを安全に構築、テストし、一貫した技術スタックを維持することができます。
Unity のRelay サービスとAuthentication を使用すると、Relay で接続しているプレイヤーを、匿名サインインとプラットフォームごとのサインインのいずれかの方法で認証できます。
これらのツールにより、サードパーティのソリューションや専用のゲームサーバーを必要とせずに、マルチプレイヤーゲームを構築、テスト、運用することができます。
マルチプレイヤーゲームを開発する場合、プレイヤー同士がつながり、一緒に遊ぼうとしてくれるように、ゲームの機能をよく考える必要があります。
特定のロビー、パーティ、マッチにどのようなプレイヤーを集めるかをよく理解すれば、プレイヤーの体験に大きな影響を与えることができます。
Unity の Lobby と Matchmaker サービスを Authentication と組み合わせることで、特定のタイプのプレイヤーをグループ化し、匿名で認証してつなぎ、通信を確保して、一緒に遊んでもらえるようにできます。
これらのツールは、さまざまな種類のゲームに対応できる柔軟性と、ゲーム内のプレイヤーの流入に対応できる拡張性を備えています。
Game Backend ツールやその他の Unity ゲーミングサービスの使用を開始するときには、ぜひ Game Operations サンプルをご覧になってみてください。
これに収録されているサンプルシーンとそこで使われているスクリプトファイルを見ることで、さまざまなツールを組み合わせて、ゲーム開発でよく出会う課題を解決する方法を学ぶことができます。各サンプルシーンで解決している課題は以下の通りです。
Unity ゲーミングサービスと、現在ベータ版として提供中の構成製品については、こちらのページをご覧ください。
Is this article helpful for you?
Thank you for your feedback!