Caputchin
Personalização de jogo

Personalize o skin de um jogo

Ver como Markdown

Um jogo vem com uma aparência padrão. Na aba Skin do editor do jogo você pode sobrescrever suas cores, trocar seus ativos visuais (imagens e, onde o jogo os usa, áudio e vídeo), e definir quaisquer controles não-cor que o autor expôs (um botão, um número, uma escolha) para que o desafio combine com sua marca, e a mudança se aplica ao jogo renderizado.

A personalização de skin está disponível do plano Alpha em diante (Alpha, Troop, Apex).

Defina cores, ativos e outros controles

Abra o jogo na página Jogos de uma chave de site (ou da equipe), depois a aba Skin. A aba mostra os slots que o autor do jogo expôs. A maioria são cores e ativos, mas um autor também pode expor um botão (ligado/desligado), um número (muitas vezes com um mínimo e um máximo), ou uma escolha de uma lista fixa. Defina uma cor com um valor hex ou rgb(); defina um ativo fazendo upload de um arquivo ou colando uma URL (veja abaixo); defina os outros slots com o controle mostrado. Deixe um slot intocado e ele mantém o valor empacotado do jogo.

Como um skin é escolhido em tempo de execução

Cada preset declara o modo em que funciona: claro, escuro ou any (lê bem em ambos os fundos). Há um padrão por modo, então o jogo fica certo qualquer que seja o modo que o aparelho do visitante prefere. Um preset marcado any é elegível para ser o padrão de claro, escuro, ou ambos. Escolher um acontece em duas etapas.

Primeiro o widget decide qual skin pedir:

  1. O atributo skin do widget, se a página definiu um: um nome exato de preset (por exemplo midnight), ou o atalho light / dark.
  2. Senão, a preferência de sistema do visitante (prefers-color-scheme), que resolve para light ou dark.

Depois o servidor casa isso contra os presets, após mesclar suas substituições (chave de site sobre equipe sobre o conjunto empacotado do jogo). Um nome exato de preset no atributo vence de imediato. Senão, para o modo escolhido o servidor pega o primeiro preset, na ordem de declaração, que é elegível para esse modo e marcado como padrão (um preset é elegível quando seu modo é esse modo ou any); se nenhum está marcado como padrão ele pega o primeiro preset elegível.

Como um preset any é elegível para os dois modos, você pode fazer um skin ser o padrão em todo lugar, ou dar a um modo um skin dedicado e deixar um skin any cobrir o outro. Na aba Skin um skin any aparece tanto sob o grupo claro quanto o escuro, e você o define como o padrão de um ou de ambos.

No elemento <caputchin-game> você também pode passar um objeto skin inline: um objeto JSON escrito como o valor do atributo, por exemplo skin='{"primary":"#7c3aed"}'. O widget o envia ao servidor como o sinal de skin daquela montagem, e o servidor o faz parse e o sobrepõe aos presets resolvidos, então suas cores e ativos inline vencem tudo acima (incluindo suas substituições de equipe e de chave de site). É uma propriedade do seu próprio markup, então funciona em qualquer plano. A checkbox <caputchin-widget> não aceita um skin inline; seu atributo skin aceita só light / dark ou um nome de preset. Veja nossa filosofia para saber por que essa autoria por embed é grátis.

Um slot de ativo (imagem, áudio ou vídeo) aceita ou um arquivo enviado por upload ou uma URL que você cola:

  • Upload: o Caputchin guarda um instantâneo do arquivo. Ele fica congelado, então não vai mudar a menos que você faça upload de novo.
  • Link: você cola uma URL https para um arquivo que você hospeda. Ela é ativa, então substituir o arquivo nessa URL atualiza o jogo no próximo carregamento.

Como o jogo roda em um frame em sandbox, um ativo linkado só carrega se sua origem for permitida. O Caputchin cuida disso por você: ele permite exatamente as origens para as quais seus presets de skin apontam, e nada mais. Você não muda nenhuma política por conta própria.

Cada tipo de ativo aceita um conjunto fixo de formatos (por exemplo PNG, JPEG, WebP, SVG e GIF para imagens). Os formatos exatos e as regras de cor estão na referência de esquema.

O que se aplica, e onde

As substituições de skin resolvem no servidor, o mais específico vence: um preset de chave de site vence o preset da equipe, que vence o skin empacotado do jogo. Você pode estender um preset empacotado e sobrescrever só os slots que quer, herdando o resto.

Como um valor de skin chega ao jogo

O servidor resolve seu skin (suas substituições mescladas sobre o conjunto empacotado) e entrega o resultado ao código do próprio jogo, que se desenha com ele. Cores e URLs de ativos chegam como texto; um botão chega como um true / false de verdade, um número como um número de verdade, uma escolha como a string escolhida. O autor do jogo decide como cada valor é usado, então o que um slot de fato muda depende do jogo. Você não escreve nenhum CSS para o jogo: ele roda em um frame em sandbox que você não consegue estilizar da sua página.

O shell do widget (a moldura do Caputchin ao redor do jogo, e a checkbox autônoma) é diferente: seu skin resolvido também é exposto à sua página como propriedades CSS personalizadas chamadas --cpt-skin-<token>, que você pode ler ou sobrescrever a partir da sua própria folha de estilo. Essa superfície, e como fazer white-label do shell, é coberta em Estilize o widget com CSS. Essas variáveis são só do shell; elas não carregam o skin de um jogo.

Veja também

Nesta página