uloggdDesenvolvedores
Portal do desenvolvedoruloggd
ComeçarRecursosArcade
Portal do desenvolvedoruloggdArcadeHospedagemO frameSDKIdentidadeVerificação em outras linguagensEventos de dadosTestesPolítica de revisãoDeveres de privacidadeEngines

Arcade

Leve um jogo web que você hospeda aos jogadores do uloggd, dentro do uloggd, com uma identidade verificada para cada jogador que aceitar.

O Arcade roda jogos web no uloggd.com. Você hospeda o jogo na sua própria origem HTTPS; o uloggd lista o jogo, abre essa URL num frame, numa página feita só para ele, e, quando o jogador aceita, entrega ao jogo uma identidade de curta duração assinada pelo uloggd. O uloggd nunca hospeda, intermedeia nem serve os arquivos de um jogo.

O Arcade está numa prévia só para convidados. Publicar está aberto às contas da lista da prévia. A documentação e o SDK são abertos a todos, então dá para construir e testar um jogo no simulador antes de receber o convite (veja Status da prévia).

Como as peças se encaixam

  • O jogo é o seu site, na própria origem: um subdomínio por jogo. Ele roda num frame com sandbox em https://uloggd.com/{lang}/arcade/{slug}/play, de outro site em relação ao uloggd.
  • O SDK, @uloggd/arcade-sdk, conversa com a página do uloggd em volta do frame. Ele recebe o contexto, pede o consentimento do jogador, obtém tokens de identidade, entra em tela cheia e fica sabendo quando o jogo vai fechar.
  • O seu servidor verifica os tokens de identidade offline, com as chaves públicas do uloggd, e recebe eventos de dados quando um jogador revoga, esquece o jogo, troca o apelido ou exclui a conta.
  • O portal, na seção Arcade do seu aplicativo, tem cinco páginas: Visão geral, onde você ativa o Arcade, Página da loja, Lançamentos, Dados dos jogadores e URL de desenvolvimento, onde você abre o jogo no uloggd a partir da sua própria máquina. Toda mudança na página da loja e toda URL nova passa pela revisão de um moderador nomeado antes de chegar aos jogadores.

O que os jogadores veem, e o que você recebe

  • Só joga quem está conectado. Durante a prévia, um jogador do Arcade tem pelo menos 16 anos, e todo jogo tem uma autoclassificação ClassInd de L a 16, aplicada na hora de abrir o jogo.
  • O jogo recebe um id por jogo (sub), diferente em cada jogo, e um apelido que o jogador escolhe. Nunca o e-mail, a conta do uloggd, a idade ou a data de nascimento.
  • Os seus servidores veem o endereço IP e o navegador do jogador, como qualquer site vê. A página da loja e o aviso do primeiro jogo contam isso ao jogador.
  • Não há monetização na v1: nem compras, nem anúncios.

Quem pode publicar

O banco confere cada condição quando você ativa o Arcade num aplicativo:

  • a conta está na lista da prévia;
  • a verificação em duas etapas está ligada, e esta sessão entrou com ela;
  • o e-mail está verificado, e a conta tem pelo menos 30 dias;
  • você tem 18 anos ou mais;
  • você aceitou os termos de desenvolvedor do Arcade atuais;
  • a conta não está banida do site, e a equipe não a bloqueou para publicar.

Um aplicativo do Arcade é um dos seus aplicativos de desenvolvedor, então conta para o limite de 10 aplicativos por conta. Ativar o Arcade reserva o slug do aplicativo, o endereço da página da loja.

Quando os termos mudam. O uloggd registra a versão dos termos de desenvolvedor do Arcade que você aceitou, com um resumo do texto. Quando sai uma versão nova, a Visão geral pede que você a leia e aceite. Até lá, você continua podendo editar rascunhos, verificar URLs, usar a URL de desenvolvimento, retirar um envio e remover um jogo, e os jogos que já estão no ar continuam no ar; mas enviar um lançamento ou a página da loja, e tornar um lançamento ao vivo, respondem 403 forbidden com reason terms_required.

Bloqueio para publicar. A equipe pode bloquear uma conta para publicar. Uma conta bloqueada não ativa o Arcade, não edita, verifica, envia nem torna ao vivo nada e não salva uma URL de desenvolvimento: essas ações respondem 403 forbidden com reason publisher_blocked. Ela continua podendo retirar um envio e remover um jogo. Para pedir que um bloqueio seja revisto, escreva para o contato da página Sobre nós.

Status da prévia

  • Durante a prévia, publicar é só para convidados: o Arcade só é ativado nos aplicativos de uma conta da lista da prévia, e uma conta fora dela recebe not_allowlisted.
  • Para pedir um convite, escreva para o contato da página Sobre nós.
  • A chave de identidade em uso é arc-2026-10 (veja Chaves públicas atuais).
  • O SDK está na versão 0.2.0: módulos ES, CommonJS e um build para uma tag script comum (veja SDK).

Começo rápido

  1. Crie um projeto Vite com npm create vite@latest, e instale o SDK, que está no npm: npm install @uloggd/arcade-sdk. Crie o cliente como no exemplo abaixo.
  2. Rode npm run dev. Aberto direto em localhost, o SDK roda no simulador, offline: um jogador falso, tokens falsos, todo comando respondido. Veja Testes.
  3. Prepare o aplicativo no portal. Em Aplicativos, abra o aplicativo e, na seção Arcade, ative o Arcade em Visão geral. Use Salvar rascunho na Página da loja e, em Lançamentos, crie um Novo lançamento com a URL que o jogo vai ter depois de publicado. Por enquanto, um rascunho basta.
  4. Teste dentro do uloggd com a URL de desenvolvimento. Em URL de desenvolvimento, defina http://localhost:5173/ com esse rascunho como lançamento base e depois Abrir no uloggd: o jogo roda no player do próprio uloggd enquanto ainda está na sua máquina (veja URL de desenvolvimento).
  5. Prepare a hospedagem. Acrescente public/.well-known/uloggd-arcade.json com o id do aplicativo que o portal mostra (veja O arquivo de prova) e envie o cabeçalho Content-Security-Policy: frame-ancestors https://uloggd.com 'self' (veja Deixe o uloggd abrir o jogo num frame). Publique em qualquer hospedagem HTTPS, uma origem por jogo.
  6. No seu servidor, copie os trechos de Identidade, que verifica os tokens de identidade, e de Eventos de dados, que recebe os eventos de dados.
  7. De volta ao portal, no lançamento, Verificar URL, Testar e Enviar para revisão, e envie também a página da loja para revisão.
  8. Depois da aprovação, Tornar ao vivo. Os jogadores encontram o jogo quando a página da loja está aprovada e um lançamento está ao vivo.
import { createArcadeSDK } from "@uloggd/arcade-sdk";

const arcade = createArcadeSDK({
  appId: "ID_DO_SEU_APLICATIVO",
  mockWhenStandalone: true,
});
const { context } = await arcade.ready();
console.log(context.mode, context.locale);

Sem bundler? O SDK também vem como um arquivo único para uma tag script comum: veja SDK.

A página da loja e os lançamentos

  • A página da loja tem o nome, a frase de apresentação, a descrição, as imagens, as tags, a classificação e quem responde pelos dados dos jogadores. Existe um rascunho por vez, e os jogadores continuam vendo a versão aprovada até um moderador aprovar a próxima. Só uma classificação mais alta vale assim que você envia.
  • Os lançamentos são o que um moderador revisa: a URL de entrada, as capacidades, os escopos, a orientação e as plataformas, os terceiros que o jogo carrega e para quê, a URL de eventos de dados e notas para quem revisa. Um lançamento em rascunho pode ser editado; um enviado nunca muda. URL, escopo, capacidade, terceiro ou URL de eventos de dados novos são um lançamento novo, e o lançamento ao vivo continua no ar enquanto isso. Retirar tira da fila um lançamento enviado.
  • Tornar ao vivo coloca um lançamento aprovado na frente dos jogadores. Antes, verifica a URL de novo, e recusa quando o provedor de hospedagem mudou desde a aprovação ou a aprovação tem mais de 90 dias. Para desfazer uma troca, torne ao vivo de novo o lançamento que estava ao vivo antes; qualquer um mais antigo passa de novo pela revisão, com Reenviar como novo lançamento.
  • Remover do Arcade, em Visão geral, encerra a página para sempre. O slug e a origem nunca vão para outra pessoa, e as evidências ficam guardadas por 180 dias. Um aplicativo de desenvolvedor com um aplicativo do Arcade só pode ser excluído depois de removido do Arcade, mesmo em rascunho: até lá, excluí-lo é recusado com 409 conflict e reason remove_from_arcade_first.

Enviar um lançamento, tornar um ao vivo, enviar a página da loja e remover o aplicativo exigem uma sessão que entrou há pouco, com a verificação em duas etapas, e cada um manda um e-mail para você. Uma sessão mais antiga recebe 403 forbidden com reason reauthentication_required: entre de novo.

A API por trás do portal

O portal lê e escreve pelas rotas de /api/v1 documentadas em Recursos: Arcade. Toda rota que mexe nos seus aplicativos ou nos jogos de um jogador é só para sessão, e recusa uma chave com 403 forbidden. O diretório, as páginas da loja e as chaves de identidade são públicos.

Para onde ir agora

  • Hospedagem: a origem, as regras da URL, o arquivo de prova e a verificação.
  • O frame: o sandbox, as permissões, o armazenamento e os parâmetros de abertura.
  • SDK: cada comando, evento, erro e código de fechamento, e o simulador.
  • Identidade: o token, como verificá-lo e as chaves públicas.
  • Verificação em outras linguagens: as mesmas conferências para servidores que não rodam JavaScript, e os códigos de recusa.
  • Eventos de dados: o que o seu servidor recebe quando um jogador revoga, esquece o jogo, troca o apelido ou exclui a conta.
  • Testes: o simulador, o modo de teste e a URL de desenvolvimento, antes de enviar.
  • Política de revisão: o que quem revisa confere e os motivos de recusa.
  • Deveres de privacidade: os campos de controlador e o que os termos pedem.
  • Engines: sem bundler, Vite, Phaser, Construct 3, Godot 4 e Unity.

Hospedagem

Onde o jogo mora, as regras que a URL precisa cumprir e as verificações que o uloggd faz nela.

Nesta página

Como as peças se encaixamO que os jogadores veem, e o que você recebeQuem pode publicarStatus da préviaComeço rápidoA página da loja e os lançamentosA API por trás do portalPara onde ir agora