メイン コンテンツへスキップ
業界

シングル プレイヤー ゲームにバックエンドが必要である理由

※本ブログは、米国時間 2022 年 1 月 19 日に Johannes Ebner (Game Developer Relations)  により公開された Why should a single player game have a backend? の翻訳です。

最近あるインディ デベロッパーと話をしました。Kickstarter での資金調達に成功し、迅速に実稼働に移行し、非常に速い勢いでクローズド ベータに近づいています。来年には、フィードバックを取り入れてゲームをさらに改良する予定です。

こんな質問をしてみました。
「何が起きているかを知るのに、フィードバックとテレメトリをどうやって集めているんですか? 賢明な決定をするには、そのデータが必要ですよね」

その答えに非常に驚きました。
「Steam 実績を使用します。そうすると、プレイヤーが何をしたか追跡できるんです」

この発言を聞いて、なぜバックエンドが必要なのか、既におわかりになったかもしれません。

ゲームで起きていることを常に把握するためには、テレメトリ データと分析ダッシュボードが必要です。

しかし、それだけではないのです。この記事の残りの部分では、テレメトリと分析がなぜそれほど重要なのか、あらゆるゲームにバックエンドが必要であると言える他の様々な理由、さらに LiveOps を使用してゲームの寿命を延ばし、プレイヤーに再び関心を持ってもらう方法について説明します。良いニュースとして、これらすべてのトピックについて Azure PlayFab (英語) がどのように役立つかということもご紹介しますので、皆さんはゲームをより良くするための開発作業に集中することができます。

しかしまず、いくつかの用語を定義することから始めましょう。

バックエンドとは何か

その名称からわかるように、ゲームの “目に見えない部分” です。ソフトウェア開発においては、基本的にバックグラウンド サービスを意味します。ほとんどの場合、オンライン サービスのことを言います。

そう考えると、Xbox やその他のストアと統合しているなら、既にバックエンド統合を行っていると言えます。

ほとんどの場合、ゲームは 1 つ以上のバックエンドを使用し、HTTP API を介してサービスに HTTP 要求を送信して応答を受け取ることでバックエンドに接続し、多くの場合 JSON または別の一般的な形式で表されるペイロードを伴います。

次に応答とペイロードはゲーム内で使用されます。

バックエンド プロバイダーは通常この機能を SDK にまとめて、ゲーム内でバックエンドを使いやすくしています。私たちはこれをバックエンド プラットフォームである PlayFab によって行い、UnrealUnity などの主要なゲーム エンジンに SDK を提供するとともに、複数のプログラミング言語フレームワークを準備しています。

あらゆるゲームでバックエンドを使用するべき理由

次に、バックエンドを使用するべきいくつかの理由について説明していきます。

テレメトリと分析

バックエンドに投資すべき最も重要な理由は、ゲームで起きていることを知るためです。これは、開発中でさえ重要になる場合があります。開発チームが自分たちの時間および機能に対する投資を可視化するためや、社外のパートナーまたはプロジェクトの潜在的な投資家にデータを提供するためであれ、重要だと言えるのです。ゲーム開発者として、または潜在的なパブリッシャーや投資パートナーとの会話の手がかりとして、非常に興味深い情報が常にたくさん見つかることでしょう。

テレメトリと分析を、単純にゲームに質問をする手段と見なしてください。思い付く質問は分析ソリューションによって回答される必要がありますが、分析ソリューションがあなたの質問に答えられるようにするには、テレメトリを収集して、それに合わせて提供する必要があります。

分析とテレメトリのデータ フロー

分析とテレメトリのデータ フロー

ゲームについて答えられなければならない、一般的な質問には、以下のようなものがあります。
 * どのエラーが発生するか?
 * どの UI 要素、マップ、機能などが使用されているか?
 * これらはどのように使用されているか?
 * 何がまったく使用されていないか?
 * プレイヤーはどこでプレイを停止するか?
 * プレイヤーはどれほど頻繁にプレイするか?
 * プレイ セッションはどれくらいの長さか?
 * プレイヤーはどこにいるか?
 * プレイヤーはどのような人か? (文化的な背景など)

おわかりのように、テレメトリと分析は基盤を成すものです。これはどのようなものであれ客観的な判断を下すための基盤となります。データを記録し、適切な質問を尋ねなければ、優れたビジネス上の意思決定を下すことはできません。

残念ながら、テレメトリと分析は、初めてゲームを制作するデベロッパーの場合は特に、後付けになることが多いものです。多くのデベロッパーは、ゲームが何らかの形式で一般公開されてからやっと、この機能の実装しようとします。

しかし、テレメトリの構築は、最初から行うべきことなのです。それで、データを収集する非常に単純な方法を選択して、テレメトリを収集することを習慣にするようにしてください。もしかしたら、それをあらゆる新機能の必須要件とすることもできる可能性があります。

最後に、データを「見る」ことも必要です。大量のデータを収集しても、決してそれを見ることのない大手ゲーム デベロッパーが存在します。このようなチームは、もし時間を取って問いを作り出し、収集したデータを使ってその問いについての答えを検討するようにしていたなら、もっと成功できたでしょう。Zynga、Miniclip、King といった企業が非常に速く、これほど大成功を収めたのは、参入した市場のためだけではなく、他のどの企業よりもゲームを分析し最適化することに努力を注いでいたからでもあります。

チェックリスト:

  1. テレメトリを収集しやすくする
  2. プロジェクトの最初から収集を開始する
  3. 収集したデータを分析しやすくする
  4. 以下のことを新機能の必須要件にする
  5. 質問をする
  6. テレメトリを収集する
  7. 分析を定義する

PlayFab でテレメトリと分析を実装する

テレメトリと分析は非常に重要なので、私たちはこれを Azure PlayFab のあらゆる機能に組み込んでいます。

PlayFab では、テレメトリ イベントと PlayStream イベントがあります。

PlayStream

PlayStream イベントはアクションにつながるため、イベント発生時にルールを使用して応答し、アクションを実行できます。それらは次に PlayFab Insights に取り込まれ、そこで PlayFab の組み込みの分析機能を使用するか、データ サイエンティストによるさらに深い分析を得るために、Azure Synapse Analytics や Azure Databricks のようなその他のシステムにエクスポートすることができます。多数の既製のイベントがありますが、独自のイベントを作成することもできます。カスタム イベントを作成して送信するには、以下のようなわずか数行のコードで済みます。

カスタム イベントを作成して送信するわずか数行のコード

テレメトリ イベント

PlayFab のテレメトリ イベントは、PlayStream をバイパスして、Insights ストアに直接移動します。これは、ゲーム内でそれらのイベントに基づいてアクションを取る必要がなく、分析のみの目的で使用するのでとても便利です。

LiveOps と開発の俊敏性

ゲームの開発中、そしてリリース後でさえも、値のバランスを微調整し、新しい項目を追加し、既存の項目を変更できるようにしたいと考えるでしょう。また、プレイヤーとやりとりをし、追加した変更や課題について通知し、プレイヤーたちの満足度を維持したいと思うことでしょう。

プレイヤーの満足度を維持することは、ゲームの寿命と ROI を最大化するためにできる最も重要なことの 1 つです。リリースされたときにピークを迎え、数か月後にはほぼゼロにまで落ちるようなゲームは作りたくないはずです。

しかし、どのような変更を行うべきなのか、進むべき道をどうすれば知ることができるでしょうか? 別の不可欠なツールは、実験する能力です。PlayFab を使用すれば、新機能の多変量テストを容易に実行して、プレイヤーが最も好みそうなことや、特定の目標に最も適したものを確認することができます。

PlayFab で LiveOps を実装する

ゲーム データ

PlayFab は、ゲーム全体のストア (タイトル データ) から、プレイヤーまたはそのキャラクターのためのインベントリ、さらにはゲームごとまたは同じパブリッシャーのゲームにまたがった固有のプレイヤー データまで、データを格納しそれを更新するためのオプションを多数提供します。

ゲーム全体のストア (タイトル データ)
ゲームにまたがった固有のプレイヤー データ

他にも多数のプレイヤー専用のユース ケースとオプションがあります (上記のマーキングされたタブをご覧ください)。

プレイヤーとのエンゲージメント

PlayFab のエンゲージメント機能セットにより、プレイヤーとエンゲージするためのオプションをさらに多く用意できます。

タイトル ニュース

タイトル ニュースを使うと、ローカライズされ、特定の時点でパブリッシュされるペイロードを備えたタイトルのニュースを設定できます。マイクロソフトの SDK を使用すると、ニュースを引き出してゲームに表示できます。たとえば、ゲームのメイン メニューなどです。

タイトル ニュース編集画面

タイトル ニュース

メール テンプレート

その他の方法でプレイヤーと連絡を取りたい場合は、メール テンプレート (英語) を使用して行います。

メール テンプレート編集画面

メール テンプレート

プッシュ通知のテンプレート

プッシュ通知のテンプレートを使用すると、プレイヤーのモバイル デバイスにプッシュ通知を送信できます。

プッシュ通知のテンプレート

プッシュ通知のテンプレート

セグメント化

セグメント化は、プレイヤーをサブグループに分割するプロセスです。定義されたプレイヤーのグループに対して特定のアクションを実行できるため、これは重要な機能です。

1 つの例ですが、現在はゲームをしていないプレイヤー、つまり離脱したプレイヤーに対して、メールを送信して、ゲームに復帰させたいと考えています。たとえば、復帰祝いの特典を付与することにするかもしれません。

優れたセグメント化ツールは、セグメント化を自動で行えます。しかし、セグメント化を行うには、セグメント化ツールもアクセス可能な、ゲームとプレイヤーに関するデータが必要です。PlayFab はここで強力な選択肢となります。その理由は、セグメントを使って実験を行い、異なるセグメントに異なるバリエーションの新機能/再作成された機能を表示できるからです。

セグメント化の方法について、たとえば次のようなアイデアがあります。

  • 最もプレイされている
  • 最も課金額が高い
  • 復帰プレイヤーへの特典
  • 解約を検討しているプレイヤーに対する対応
  • プレイヤーが解約する前に行動
  • 特別な注意が必要なプレイヤーにセグメントを保持
  • 潜在的な不正利用者
  • モデレーター
  • セグメントでの実験 (上記参照)
  • セグメントごとの別個のストア

PlayFab でセグメントを実装する

PlayFab では、UI ベースのエディターを使用して簡単にセグメントを定義できます。このエディターにより、あるセグメントに移動するためにプレイヤーが満たす必要のある条件を指定できます。

セグメントの編集

セグメントの編集

次にルールを使用してこれらのセグメントに対して対応できます。たとえば、アイテムを付与したり、CloudScript 関数を使用してバックエンド コードを実行したり、前述のようにプッシュ通知を送信することができます。

上記の例では、一定期間ログインしていないプレイヤーにはゲーム内のアイテムが付与されています。

この機能を活用する方法については、PlayFab のセグメント化に関するドキュメントを参照してください。

結論

この記事では、シングル プレイヤー ゲームでバックエンドが必要な多くの理由を調査し、Azure PlayFab に組み込みのサービスがどのように役立つかについて考察しました。

まだ始めていない場合、PlayFab を使った構築を今すぐ無料で始めましょう。そして適切な意思決定を行い、長期間にわたってプレイヤーのエンゲージメントを維持するために必要な洞察を入手しましょう。