カスタムゲームのダッシュボードスキーマ
マーケットプレイスのゲームは、各カスタマイズプリセットが設定できるフィールドを宣言する caputchin.json マニフェストを出荷します。カスタムゲームにはマニフェストがないので、あなたがそのフィールドスキーマをダッシュボードで宣言します。カスタムゲームごとに、軸ごとに一度それを定義し、それに対してプリセットを作ります。そこから、マーケットプレイスのゲームとちょうど同じように、同じプラン階層で 解決されて適用されます。
このページは、そのスキーマのリファレンスです。ゲームそのものを作ることについては セルフホストのゲームを作る を、顧客側の登録の流れについては カスタムゲーム を参照してください。
軸ごとに 1 つのスキーマ
カスタムゲームのスキーマは 軸ごと に宣言され、3 つの軸は独立です:
| 軸 | 何をカスタマイズするか | スキーマ |
|---|---|---|
| 言語 | ゲームの翻訳された文字列。 | 暗黙:ロケールのフィールドは常にプレーンテキストなので、宣言するものは何もありません。文字列のプリセットを直接作ります。 |
| スキン | 色、視覚アセット、表現のつまみ。 | スキンのプリセットが設定できる、色、アセット、スカラー(トグル / 数値 / 範囲 / 選択肢)のフィールドを宣言します。 |
| 構成 | ゲームプレイのオプション(難易度、数、トグル)。 | 構成のプリセットが設定できるオプションのフィールドを宣言します。 |
ゲームが実際に使う軸についてだけ、スキーマを定義します。スキーマのない軸は、単にその種のカスタマイズ可能なフィールドを持ちません。
フィールド型
スキーマは、それぞれ型を持つ、名前付きフィールドのセットです。フィールド型は、カスタマイズの残りが使うのと同じセットです。カスタマイズスキーマリファレンス が、すべての型とそれが受け付ける値の権威ある説明です。手短に:
| 型 | 値 |
|---|---|
string | 自由なテキスト。 |
boolean | true か false。 |
number | 任意の有限の数値。 |
range | 最小と最大の中の数値。 |
list | 固定のオプションのセットの 1 つ。 |
link | http/https の URL。 |
color | hex か rgb() の色。 |
image | 画像の URL かアップロード。 |
audio | 音声の URL かアップロード。 |
video | 動画の URL かアップロード。 |
言語は string だけを使います(リゾルバーはロケールのスキーマをまったく検証しません)。スキンと構成は、作られた値を、あなたが宣言するスキーマに対して検証し、その型に合わない値を落とします。
スコープ:スキーマがどこにあるか
カスタムゲームのスキーマは、スコープ、チームかサイトキー に設定されます。上書き と同じスコープモデルです。チームとその 1 つのサイトキーが、同じゲームと軸についてスキーマを宣言すると、その軸について サイトキーのスキーマがチームのものを置き換えます(フィールドごとのマージではなく、軸まるごとの置き換え)。これは、カスタマイズの残りが最も具体的なものが勝つで解決されるのを映します。
アセットは絶対 URL
遊べるゲームを自分でホストするので、相対的なアセットのパスを解決するためのプラットフォームのバンドルがありません。スキンのプリセットのどの image、audio、video の値も、絶対 URL でなければなりません。(マーケットプレイスのゲームはバンドル相対のパスを使えます。カスタムゲームはできません。)
プリセットがどうゲームに届くか
スキーマとプリセットが存在すると、Caputchin は各訪問者のために軸ごとに 1 つのプリセットを解決し(サイトキー、チーム、あなたの既定にわたって最も具体的なものが勝つ)、解決済みの値を ゲームファクトリーのコンテキスト を通じてあなたのゲームに届けます:ctx.locale、ctx.skin、ctx.config。あなたのゲームは、自分のフィールド名をそれらのオブジェクトから読みます。スキーマは、ダッシュボードのエディターが正しい入力を示すようにし、値が訪問者に届く前にそれを検証するものです。
あわせて読む
- カスタマイズスキーマリファレンス:すべてのフィールド型とその受け付ける値を完全に。
- カスタムゲーム:カスタムゲームの登録と、そのスキーマの定義。
- セルフホストのゲームを作る:ファクトリーのコンテキストから解決済みのプリセットを読む。
- チームの上書き:スキーマが従うスコープモデル。