クラウドセーブ入門
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Cloud Save は、JSON 形式またはバイナリ形式で任意のゲームデータを保存するストレージを提供するサービスです。ゲームデータは、ゲームクライアント、ゲームサーバー、または管理ポータルから更新、置換、取得、削除できます。
Cloud Save を利用することで、以下を保存できます:
- ゲームテーマの設定
- イベント設定
- ゲーム情報/ニュース
- プレイヤーのセーブゲームデータ
- プレイヤーキャラクターの属性
- プレイヤーのゲーム設定
Cloud Save サービスは、さまざまなストレージシナリオをサポートしており、ゲームのストレージニーズに複数のオプションを提供します。
このセクションでは、Cloud Save サービスの主要な概念、サポートされている機能、およびサービスを活用するためのベストプラクティスについて学習します。
主要な概念
統合をできるだけシームレスにするために、このサービスの設計で使用されている主要な概念を理解することが重要です。
Cloud Save のタイプ
ゲームデータは、2 種類の Cloud Save に保存できます。
- JSON: ゲームデータを人間が読める文字またはテキスト形式で保存します。これは人間またはコンピュータが簡単に理解できます。通常、フォーマットや文字のエスケープのために追加のスペースが必要です。
最適なパフォーマンスのために、各レコードのサイズを 1 MB 以下に制限することをお勧めします。ゲームでそれ以上が必要な場合は、代わりにバイナリ Cloud Save にレコードを保存することをお勧めします。
- Binary: ゲームデータを実行可能ファイルに保存します。これは解釈または操作するために特殊なシステムまたはツールが必要です。データがよりコンパクトな形式で保存されるため、通常はスペース効率が高くなります。バイナリ Cloud Save は、jpeg、jpg、png、bmp、gif、mp3、webp、bin などのファイルタイプをサポートしています。
最適なパフォーマンスのために、各レコードのサイズを 100 MB 以下に制限することをお勧めします。
アクセスレベル
Cloud Save に保存されるデータには、2 つのアクセスレベルがあります。
- プレイヤーアクセス可能レコード: プレイヤーが使用するゲームデータを指します。このデータは、プレイヤーがアクセスおよび編集できます。例えば、プレイヤーのセーブゲームデータなどです。
- 管理者レコード: ゲームサーバーが使用する機密性の高いゲームデータを指します。このデータは、管理者のみがアクセスおよび編集でき、プレイヤーには表示されません。例えば、アイテムを見つける確率などのゲームプレイにおけるランダム化された変数などです。
レコードタイプ
ゲームデータは、次の 2 種類のレコードのいずれかに保存できます。
- ゲームレコード: グローバルタイトル用途(ゲーム名前空間レベル)のゲームデータを保存するために使用されます。例えば、テーマ設定、イベント設定、ゲーム情報/ニュース、および同様のグローバルデータなどです。
- プレイヤーレコード: 特定のプレイヤーの用途(ユーザーレベル)のゲームデータを保存するために使用されます。例えば、プレイヤーのセーブゲームデータ、プレイヤーキャラクターのカスタマイズ、プレイヤーのゲーム設定などです。
レコードキー
レコードキーは、レコードの識別子またはタイトルとして使用できます。ゲームレコードキーとプレイヤーレコードキーは一意である必要があります。
メタデータ
メタデータにより、ゲームクライアントまたはゲームサーバーは、Cloud Save レコードの動作を定義できます。レコードメタデータは、フィールド名 __META を使用してリクエストボディで定義されます。メタデータは、特に定義されていない場合、デフォルト値が割り当てられます。ゲームクライアントは限られた範囲の Cloud Save レコードをサポートしていますが、ゲームサーバーは __META で利用可能なすべてを定義できます。
プレイヤーアクセス可能レコードの書き込み権限 (set_by)
このメタデータは、どの当事者がレコードを変更できるかを示します。このメタデータは、管理者エンドポイントでのみ使用できます。指定可能な値は以下のとおりです。
- Server: レコードはサーバーによってのみ変更できます。
- Client: レコードはクライアントまたはサーバーのいずれかによって変更できます。これがデフォルト値です。
プレイヤーアクセス可能レコードの読み取り権限 (is_public)
このメタデータは、レコードが公開されているかどうかを示し、管理者エンドポイントとパブリックエンドポイントの両方で使用できます。指定可能な値は以下のとおりです。
- Public: レコードは他のプレイヤーがアクセスできます。
is_publicフィールドに表示される値はTrueです。 - Private: レコードは他のプレイヤーがアクセスできません。
is_publicフィールドに表示される値はFalseです。
カスタム検証
Cloud Save では、ニーズに応じてカスタマイズできる検証ロジックを使用できます。カスタム検証は、クラウドセーブレコードの作成/更新または取得時にデフォルトの検証ロジックを上書きします。
Cloud Save サービスの追加検証
このセクションでは、ゲームクライアントとゲームサーバーの両方から Cloud Save サービスレコードを作成、更新、削除する方法について説明します。前のセクションで説明した set_by および is_public フィールドを使用して、追加の検証を追加することを選択できます。以下の追加検証を理解することで、動作を理解し、Cloud Save サービスを最適に活用する方法が容易になります。
読み取り権限に基づく (is_public)
| 管理者 | レコード所有者プレイヤー | 他のプレイヤー | |
|---|---|---|---|
| Public | 読み取り | 読み取り | 読み取り |
| Private | 読み取り | 読み取り | n/a |
書き込み権限に基づく (set_by)
| ゲームレコード | パブリックエンドポイント | 管理者エンドポイント |
|---|---|---|
| Server | n/a | 変更 |
| Client | 変更 | 変更 |
| プレイヤーレコード | 管理者 | レコード所有者プレイヤー | 他のプレイヤー |
|---|---|---|---|
| Public | 変更 | 変更 | n/a |
| Private | 変更 | 変更 | n/a |
書き込み権限
パブリックプレイヤーレコードの作成時に設定される書き込み権限は、レコード所有者の権限を決定します。
- 書き込み権限が SERVER として指定されている場合、プレイヤーはレコードへの読み取りアクセス権を持ちますが、変更することはできません。
- CLIENT として指定されている場合、プレイヤーは変更できます。
これらのプレイヤーレコードタイプの詳細については、以下の記事を参照してください:
管理者レコード
プレイヤーアクセス可能レコード以外に、Cloud Save サービスは、管理者レコードでプレイヤーから制限的にデータを保存することをサポートしています。以下の表は、管理者レコードのアクセス権限についてより理解を深めるのに役立ちます。
| レコードタイプ | パブリックエンドポイント | 管理者エンドポイント |
|---|---|---|
| 管理者プレイヤーレコード | - | 読み取り、変更 |
| 管理者ゲームレコード | - | 読み取り、変更 |
ベストプラクティス
Cloud Save サービスを使用する最適なシナリオは、ゲームクライアント/サーバーから取得または更新できるゲームの追加情報を保存する必要がある場合です。
特定のプレイヤー情報を保存する必要があるユースケースがある場合は、Cloud Save のパブリックプレイヤーレコードを利用できます。
数値のみを保存する必要がある場合、おそらくさらなる統合に必要な場合は、Cloud Save を使用する必要がないかもしれません。これは、Statistics の値を利用でき、これらの値はリーダーボード、実績、マッチメイキングなどの他のサービスと統合できるためです。