Caputchin
Développement de jeu personnalisé

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 :

AxeCe qu'il personnaliseSchéma
LocaleLes 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.
SkinCouleurs, 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.
ConfigurationOptions 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 :

TypeValeur
stringTexte libre.
booleantrue ou false.
numberN'importe quel nombre fini.
rangeUn nombre dans un min et un max.
listL'une d'un ensemble fixe d'options.
linkUne URL http/https.
colorUne couleur hex ou rgb().
imageUne URL d'image ou un téléversement.
audioUne URL audio ou un téléversement.
videoUne 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

Sur cette page