[Pitch] Drift Kings: fiz um jogo de drift multiplayer que roda no navegador, com anti-cheat por re-simulação no servidor
Fala, pessoal!
Quero mostrar o Drift Kings, um jogo que eu venho construindo: um "survivor" de carro onde o drift é a sua arma — os pneus traseiros destroem os inimigos, a polícia chega e você tem que fugir enquanto sobe combos. É grátis, sem cadastro obrigatório e roda no PC e no celular.
👉 Jogar: https://drift-kings.direcionadigital.workers.dev
PTBR
[https://youtu.be/uk7uMBgICPo]
EN
[https://youtu.be/F71AZceA0Xc]
O que tem no jogo
- 7 carros com habilidades diferentes, garagem e upgrades
- Roleta diária grátis (com pity), loja de pinturas/kits
- Jogue em grupo com amigos no servidor ou em uma sala de conexão direta (P2P)
- Ranking diário, semanal e mensal
- 5 idiomas (PT-BR, EN, ES, ZH, RU)
A parte técnica (que acho que interessa aqui)
Stack: Phaser 4 + Vite + TypeScript no cliente; API em Cloudflare Workers + D1 (SQLite) + Durable Objects.
Anti-cheat por determinismo. A simulação do jogo é determinística: o cliente envia só a seed e o log de inputs da corrida, e a API re-simula a partida inteira no servidor para validar a pontuação e as recompensas. Se o resultado não bate, a corrida não vale. Isso mata praticamente todo "editar memória pra ter 1 milhão de pontos".
Multiplayer com servidor no leste dos EUA e Multiplayer P2P sem servidor de jogo. Na "conexão direta", quem cria a sala vira o host: a lógica da sala roda no navegador dele e os outros conectam via WebRTC DataChannel (só STUN). Ele tem ranking separado.
Doação vira item. Webhook do Ko-fi: quem doa coloca a tag do jogador na mensagem e recebe Nitro + Grana automaticamente; assinantes ganham bônus.
Login opcional com Clerk (convidado continua funcionando) e i18n com arquivos JSON por idioma + teste que garante que nenhuma chave ficou sem tradução.
O que eu queria de vocês
- Feedback de jogabilidade (controle no celular principalmente)
- Quem manja de WebRTC: experiências com NAT simétrico só com STUN?
- Bugs, claro 😅
Valeu por lerem! Respondo tudo nos comentários.