plicflixdevelopers
Entrar Criar conta

Comece aqui: do zero ao jogo publicado

Este é o roteiro completo para pôr um jogo no plicflix. Foi escrito para ser seguido ao pé da letra, por uma pessoa ou por uma IA. Cada passo diz o que fazer, onde, e como saber que deu certo.

Para IAs: a lista de todas as páginas em texto puro está em https://developers.plicflix.com/llms.txt, e tudo junto em https://developers.plicflix.com/llms-full.txt. Cada página também existe em Markdown: some .md ao endereço (ex.: /docs/COMECE.md). A API está descrita em https://developers.plicflix.com/openapi.json.

O que é o plicflix (em 30 segundos)

  • Um app de assinatura de jogos (web, Android, iOS). O jogador paga a assinatura e joga os jogos parceiros.
  • O plicflix nunca hospeda o seu jogo. O app abre o seu endereço (iframe na web, WebView no celular) com a tela de carregamento do plicflix na frente e a bolha do plicflix (avisos, amigos, sair) por cima.
  • O jogador já chega logado: o app manda um token de uso único; o seu servidor troca o token na API do plicflix e recebe só id (pf_…) e nome do jogador.
  • Fora do app, o seu site ou app nativo pode ter o botão "Entrar com Plicflix" (OAuth 2.0 + PKCE): chega o mesmo jogador pf_…. Isso é opcional e pode vir depois do passo 11. Veja OAUTH.
  • Você recebe 60% do líquido de cada assinante, dividido entre os jogos que ele jogou, pelo tempo ativo (veja REGRAS).

Os endereços

o quê endereço
este portal (cadastro, painel, documentação) https://developers.plicflix.com
o app (onde jogadores e testadores jogam) https://plicflix.com
a API (o seu servidor chama) https://api.plicflix.com
o SDK do navegador (CDN) https://sdk.plicflix.com/plicflix.js
a origem que vai no seu frame-ancestors https://plicflix.com
suporte suporte@plicflix.com

Não existe um "ambiente de testes" separado: você testa no plicflix de verdade, como testador do seu próprio jogo ainda não publicado (passo 8). Só você e quem você indicar enxergam o jogo até a equipe publicar.

Requisitos do jogo

  1. Ter uma versão web (HTML5: JavaScript, WebAssembly, Unity WebGL, Godot Web, Flutter web…) num endereço seu. Jogos só nativos (sem versão web) ainda não entram.
  2. De preferência, ter um servidor (qualquer linguagem). É ele quem troca o token com a chave secreta e guarda o progresso. Sem servidor dá para integrar (MOTORES), com limitações.
  3. Poder mudar os cabeçalhos HTTP da página do jogo (Content-Security-Policy e cookies). Hospedagens estáticas como Netlify, Vercel e Cloudflare Pages deixam, por arquivo de configuração.

O roteiro

1. Criar a conta de desenvolvedor

  • Onde: https://developers.plicflix.com/cadastro.
  • O quê: o seu nome, o e-mail, uma senha (10 ou mais caracteres) e o estúdio (nome, CPF ou CNPJ — com ou sem pontuação —, país, site). Aceite os termos.
  • Deu certo quando: você cai no painel e chega um e-mail de boas-vindas com o link de confirmar o endereço e a fatura da taxa de entrada.

2. Pagar a taxa de entrada

  • Onde: no painel, a fatura aparece logo no topo (/faturas/{id}).
  • Como: enquanto o pagamento on-line não está ligado, responda ao e-mail da fatura (ou escreva para suporte@plicflix.com) com o número da fatura: mandamos o Pix ou o boleto. A equipe dá baixa e você recebe o e-mail "Pagamento confirmado".
  • Enquanto isso: você já pode ler toda a documentação, baixar o SDK e os exemplos e montar a integração. Só cadastrar jogo e gerar a chave esperam o pagamento.

3. Gerar a chave de integração

  • Onde: painel → Gerar chave.
  • O quê: uma chave pk_…. Aparece uma vez. Guarde no seu servidor como variável de ambiente PLICFLIX_CHAVE. Nunca ponha no navegador, no app nem no git.
  • Perdeu? Gere outra: a antiga para de funcionar na hora.

4. Cadastrar o jogo

  • Onde: painel → Novo jogo (/jogos/novo).
campo exemplo regra
nome Ilha das Luzes até 60 letras
identificador (slug) ilha-das-luzes minúsculas, números e -; não muda depois; volta como jogo na troca do token
endereço https://ilha.exemplo.com/ https; para testar, pode ser http://localhost:4100/
rota de status https://ilha.exemplo.com/saude responde 200 rápido; a vigia consulta a cada minuto
  • Deu certo quando: o jogo aparece no painel com a situação rascunho (não publicado).
  • O endereço muda depois (aba Integração → Endereço do jogo), enquanto o jogo estiver em rascunho ou recusado. O slug não muda nunca.

5. Integrar o navegador (o SDK)

Baixe plicflix.js para o seu site (sem mudar nada) e carregue antes do jogo. Na ordem:

// jogo.js — carregado com <script type="module" src="/jogo.js"> depois de <script src="/plicflix.js">
if (Plicflix.dentro()) {
  Plicflix.progresso(10, "Entrando…");                       // a tela do plicflix acompanha
  await Plicflix.entrar("/api/plicflix/entrar");             // passo 6: o SEU servidor troca o token
  Plicflix.aoSair(async () => { await salvarProgresso(); }); // o "Sair" da bolha espera (até 5 s)
  Plicflix.aoIrPara(async (destino) => levarAte(destino));   // opcional: "ir até o amigo"
}
// … carregue o jogo …
Plicflix.pronto();                                           // tira a tela de carregamento
Plicflix.onde({ texto: "Praia do Norte", area: "ilha/praia", ponto: { x: 10, y: 4 } }); // a cada troca de lugar

Referência completa: SDK. Tipos TypeScript: plicflix.d.ts.

6. Integrar o servidor (a troca do token)

Uma rota sua recebe { token, contexto } do Plicflix.entrar e faz:

POST https://api.plicflix.com/v1/ingresso/trocar
Authorization: Bearer <PLICFLIX_CHAVE>
Content-Type: application/json

{"token":"pft_…"}

Resposta 200:

{"jogador":{"id":"pf_4olrydypdwdxj3adjnzjvgss","nome":"Ana"},"jogo":"ilha-das-luzes",
 "partida":"pt_…","assinante":true,"contexto":{"ref":"plicflix","idioma":"pt-BR","plataforma":"web"}}

Depois:

  1. confira jogo == o seu slug;
  2. ache ou crie a conta pelo jogador.id (fixo para essa pessoa no seu jogo) e atualize o nome;
  3. abra a sessão com o cookie (escrito à mão, para não depender da versão da sua biblioteca de cookies) Set-Cookie: sessao=…; Path=/; HttpOnly; Secure; SameSite=None; Partitioned;
  4. responda 200.

401 = token inválido, vencido (5 min) ou já usado: peça para abrir de novo pelo plicflix. Ajudantes prontos: plicflix.mjs (Node) e plicflix.go (Go).

7. Deixar o plicflix abrir o jogo

Na página do jogo (e nas que ela abre):

Content-Security-Policy: frame-ancestors 'self' https://plicflix.com

E nenhum X-Frame-Options. Mais a rota de status respondendo 200.

Atalho: o exemplo de referência (Node, sem dependências) já faz os passos 5, 6 e 7. Rode com PLICFLIX_CHAVE=pk_… node server.mjs e compare com o seu jogo. Também em Go.

8. Testar como testador (sem publicar)

  1. Crie uma conta de jogador em https://plicflix.com e confirme o e-mail (o código chega por e-mail).
  2. No painel do jogo → aba Testadores → adicione o e-mail dessa conta.
  3. Rode o jogo (pode ser em http://localhost:4100, se esse for o endereço cadastrado).
  4. Abra https://plicflix.com com a conta testadora → fileira "Em teste (só você vê)" → Jogar. Testador não precisa de assinatura.

Deu certo quando:

  • o jogo abre dentro do app sem pedir login e com o seu apelido;
  • a tela de carregamento do plicflix some sozinha (o seu pronto());
  • a bolha do plicflix aparece por cima e dá para arrastar;
  • Sair do jogo (no menu da bolha) fecha em menos de 5 s e o progresso ficou salvo;
  • no painel, aba Integração, ficaram verdes "Entrada pelo SDK" e "Tela de carregamento".

Teste também no celular (o app web do plicflix funciona no navegador do celular) e, se puder, no Safari.

9. Montar a vitrine

No painel do jogo:

  • aba Vitrine: frase de chamada, descrições, gêneros, tags, classificação indicativa, plataformas e cor;
  • aba Imagens e vídeo: banner, pôster, logo transparente, 3 a 12 capturas e o trailer (opcional).

Tudo é conferido no envio, com a qualidade mínima (VITRINE): o painel diz exatamente o que está fora do padrão. A aba Como vai ficar mostra a prévia no app.

10. Conferir e enviar para revisão

  1. Ponha o jogo no endereço público com https e troque no painel (aba Integração → Endereço do jogo), se estava em localhost. Espere a vigia ver o servidor no ar (até 2 minutos): "Servidor no ar" fica verde.
  2. Aba Integração → Conferir agora. O verificador visita o jogo como o app faria: HTTPS, a página responde, o iframe é permitido para https://plicflix.com, a página carrega o plicflix.js, a rota de status responde.
  3. Com a lista de conferência sem nenhum item obrigatório faltando → Enviar para revisão.

Deu certo quando: a situação vira em revisão e chega o e-mail "Recebemos o …". A equipe responde por e-mail, em geral em até 3 dias úteis: publicado (o jogo entra no catálogo de todos) ou recusado com o motivo (corrija e envie de novo).

11. Depois de publicado

  • Mantenha a rota de status respondendo: fora do ar, o app não deixa abrir.
  • Responda aos casos de reclamação em até 48 horas úteis (REGRAS): chega um e-mail quando um caso abre.
  • Acompanhe o repasse em GET /v1/parceiro/repasses (API).
  • Atualize a vitrine quando quiser (novas capturas, textos): não precisa de nova revisão para isso.

A lista final (copie e marque)

Obrigatório

  • plicflix.js carregado antes do jogo (cópia sem mudança ou a CDN).
  • Plicflix.entrar("/sua/rota") quando Plicflix.dentro().
  • A rota do servidor troca o token com PLICFLIX_CHAVE (só no servidor) e confere jogo.
  • A conta ligada a jogador.id (único), sem senha utilizável, nome atualizado a cada entrada.
  • Content-Security-Policy: frame-ancestors 'self' https://plicflix.com e nenhum X-Frame-Options.
  • Cookie da sessão com SameSite=None; Secure; Partitioned (e apagado ao sair da conta).
  • Plicflix.pronto() quando o jogador puder jogar.
  • Plicflix.aoSair salvando o progresso (até 5 s).
  • Rota de status respondendo 200.
  • Endereço público com https.
  • Vitrine completa com a qualidade mínima.

Recomendado

  • Plicflix.progresso durante o carregamento e Plicflix.erro se não der para abrir.
  • Plicflix.onde({ texto, area, ponto }) a cada troca de lugar.
  • Plicflix.aoIrPara levando até o amigo pelo jogador_id, decidido no servidor.
  • Um botão "Chamar amigos" com Plicflix.abrirAmigos().

Erros comuns

sintoma causa conserto
tela branca dentro do app; o console fala em frame-ancestors o frame-ancestors não tem https://plicflix.com, ou há X-Frame-Options ajuste os cabeçalhos (passo 7)
Plicflix.entrar dá 401 token vencido (mais de 5 min), já trocado, de outro estúdio ou chave errada abra de novo pelo app; confira PLICFLIX_CHAVE e o PLICFLIX_API
entra, mas ao recarregar pede login o cookie sem SameSite=None; Secure; Partitioned passo 6.3
a tela de carregamento fica 12 s e some sozinha o jogo não chama Plicflix.pronto() chame quando o jogador puder jogar
"Sair do jogo" demora 5 s o aoSair não terminou salve mais rápido ou salve sempre, e no aoSair só feche
await dá erro de sintaxe o script não é módulo <script type="module"> ou um arquivo .js com type="module"
o jogo não aparece no app a conta não é testadora, ou o e-mail não foi confirmado passo 8
"Endereço público" vermelho o endereço ainda é localhost publique o jogo num https e troque no painel

Ajuda

suporte@plicflix.com. Diga o identificador do jogo e o que você já tentou.