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 emhttps://developers.plicflix.com/llms-full.txt. Cada página também existe em Markdown: some.mdao endereço (ex.:/docs/COMECE.md). A API está descrita emhttps://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_…) enomedo 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
- 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.
- 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.
- Poder mudar os cabeçalhos HTTP da página do jogo (
Content-Security-Policye 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 ambientePLICFLIX_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:
- confira
jogo== o seu slug; - ache ou crie a conta pelo
jogador.id(fixo para essa pessoa no seu jogo) e atualize onome; - 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; - 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)
- Crie uma conta de jogador em
https://plicflix.come confirme o e-mail (o código chega por e-mail). - No painel do jogo → aba Testadores → adicione o e-mail dessa conta.
- Rode o jogo (pode ser em
http://localhost:4100, se esse for o endereço cadastrado). - Abra
https://plicflix.comcom 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
- 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. - 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 oplicflix.js, a rota de status responde. - 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.jscarregado antes do jogo (cópia sem mudança ou a CDN). -
Plicflix.entrar("/sua/rota")quandoPlicflix.dentro(). - A rota do servidor troca o token com
PLICFLIX_CHAVE(só no servidor) e conferejogo. - A conta ligada a
jogador.id(único), sem senha utilizável, nome atualizado a cada entrada. -
Content-Security-Policy: frame-ancestors 'self' https://plicflix.come nenhumX-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.aoSairsalvando 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.progressodurante o carregamento ePlicflix.errose não der para abrir. -
Plicflix.onde({ texto, area, ponto })a cada troca de lugar. -
Plicflix.aoIrParalevando até o amigo pelojogador_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.
