Schéma de tableau de bord d'un jeu personnalisé
Un jeu du marketplace livre un manifeste caputchin.json qui déclare quels champs chaque préréglage de personnalisation peut régler. Un jeu personnalisé n'a pas de manifeste, donc tu déclares ce schéma de champs sur le tableau de bord à la place. Tu le définis une fois par jeu personnalisé, par axe, puis tu rédiges des préréglages contre lui ; à partir de là, il se résout et s'applique exactement comme un jeu du marketplace aux mêmes niveaux d'offre.
Cette page est la référence pour ce schéma. Pour rédiger le jeu lui-même, vois bâtir un jeu auto-hébergé ; pour le flux d'enregistrement côté client, vois jeux personnalisés.
Un schéma par axe
Le schéma d'un jeu personnalisé est déclaré par axe, et les trois axes sont indépendants :
| Axe | Ce qu'il personnalise | Schéma |
|---|---|---|
| Locale | Les chaînes traduites du jeu. | Implicite : les champs de locale sont toujours du texte simple, donc il n'y a rien à déclarer ; tu rédiges les préréglages de chaînes directement. |
| Skin | Couleurs, ressources visuelles et molettes de présentation. | Tu déclares les champs de couleur, de ressource et scalaires (bascule / nombre / plage / choix) qu'un préréglage de skin peut régler. |
| Configuration | Options de gameplay (difficulté, décomptes, bascules). | Tu déclares les champs d'option qu'un préréglage de configuration peut régler. |
Tu ne définis un schéma que pour les axes que ton jeu utilise réellement. Un axe sans schéma n'a simplement aucun champ personnalisable de ce genre.
Types de champs
Un schéma est un ensemble de champs nommés, chacun avec un type. Les types de champs sont le même ensemble que le reste de la personnalisation utilise ; la référence du schéma de personnalisation est la description faisant autorité de chaque type et des valeurs qu'il accepte. En bref :
| Type | Valeur |
|---|---|
string | Texte libre. |
boolean | true ou false. |
number | N'importe quel nombre fini. |
range | Un nombre dans un min et un max. |
list | L'une d'un ensemble fixe d'options. |
link | Une URL http/https. |
color | Une couleur hex ou rgb(). |
image | Une URL d'image ou un téléversement. |
audio | Une URL audio ou un téléversement. |
video | Une URL vidéo ou un téléversement. |
La locale n'utilise que string (et le résolveur ne valide pas du tout un schéma de locale). Le skin et la configuration valident les valeurs rédigées contre le schéma que tu déclares et laissent tomber les valeurs qui ne correspondent pas à leur type.
Portée : où vit un schéma
Un schéma de jeu personnalisé est réglé à une portée, équipe ou clé de site, le même modèle de portée que les surcharges. Quand une équipe et l'une de ses clés de site déclarent toutes deux un schéma pour le même jeu et le même axe, le schéma de la clé de site remplace celui de l'équipe pour cet axe (un remplacement d'axe entier, pas une fusion champ par champ). Cela reflète comment le reste de la personnalisation se résout selon le plus spécifique l'emporte.
Les ressources sont absolues
Parce que tu héberges le jeu jouable toi-même, il n'y a pas de bundle de plateforme contre lequel résoudre un chemin de ressource relatif. Toute valeur image, audio ou video dans un préréglage de skin doit être une URL absolue. (Un jeu du marketplace peut utiliser des chemins relatifs au bundle ; un jeu personnalisé ne peut pas.)
Comment un préréglage atteint le jeu
Une fois le schéma et les préréglages existants, Caputchin résout un préréglage par axe pour chaque visiteur (le plus spécifique l'emporte sur la clé de site, l'équipe et tes défauts) et délivre les valeurs résolues à ton jeu via le contexte de la fabrique de jeu : ctx.locale, ctx.skin, ctx.config. Ton jeu lit ses propres noms de champs sur ces objets. Le schéma est ce qui fait montrer à l'éditeur du tableau de bord les bons champs et ce qui valide les valeurs avant qu'elles n'atteignent jamais un visiteur.
Voir aussi
- Référence du schéma de personnalisation : chaque type de champ et ses valeurs acceptées, en entier.
- Jeux personnalisés : enregistrer un jeu personnalisé et définir son schéma.
- Bâtir un jeu auto-hébergé : lire les préréglages résolus depuis le contexte de la fabrique.
- Surcharges d'équipe : le modèle de portée que le schéma suit.