Executando verificação de segurança...
7

Criei um jogo multiplayer de pega-pega no navegador

Estava buscando ideias de novos projetos para o meu portfólio. E acabei esbarrando nesse video do Filipe e, uma das ideias que mais me chamou atenção foi a do jogo multiplayer. A ideia inicial era copiar o mesmo jogo, mas pensei:

“E se eu fizesse um jogo de pega-pega?”

  • Regras simples
  • Todo mundo já sabe jogar
  • E, convenhamos, extremamente divertido

Foi o suficiente pra me convencer a começar.

Primeiros passos

Como sou dev web (React/Next.js no dia a dia), comecei pelo front: criei um canvas, coloquei um quadradinho se mexendo com WASD e pronto — tinha um "player".

Depois fui para o servidor: Node.js + Socket.io, porque é a combinação mais popular e bem documentada pra realtime. A primeira versão funcionava bem em localhost, mas quando testei com dois players, veio o primeiro bug: cada um só via a si mesmo se mexendo.

A solução foi mover a lógica de movimentação para o servidor e apenas transmitir os estados. A refatoração resolveu de cara, agora todo mundo via o mesmo jogo em tempo real.

Infra e Latência

Hora de testar de verdade.

  • Frontend: deploy na Vercel (grátis, fácil e rápido)
  • Backend: Render (também grátis, mas o servidor ficava em Oregon/EUA)

Resultado: ~200ms de delay em todas as interações. Impossível de jogar.

Foi aí que descobri o Partykit. Ele roda em cima das edges da Cloudflare, o que significa que o servidor nasce perto do jogador. Migrei toda a lógica de Node/Express para PartyKit e, para minha surpresa, deu certo de primeira. O delay praticamente sumiu.

O jogo em si

Ainda é um MVP, mas já dá pra brincar:

  • Um player é o “pegador”, os outros correm
  • Quando alguém é pego, os papéis se invertem
  • Interface simples em Canvas
  • Funciona bem pra jogar de bobeira, seja numa call do Discord ou enquanto outro jogo mais pesado carrega

→ Link pra testar: https://chaseio.vercel.app
→ Repositórios no Github:
Front: https://github.com/rafaelpzoucas/chase.io
Back: https://github.com/rafaelpzoucas/server-chase.io

Não precisa cadastro, não tem propaganda. É só abrir, enviar o link para os amigos e jogar.

Próximos passos

Agora quero:

  • Polir a UI e as regras do jogo
  • Criar experiência mobile
  • Testar limites de jogadores por sala
  • E claro, ouvir feedback da comunidade
  • Pretendo refatorar o código. Na pressa de colocar o jogo funcionando, acabei deixando a organização de lado, então tem bastante espaço pra melhorar a estrutura.

Esse projeto nasceu como “exercício de portfólio”, mas acabou ficando mais divertido do que eu esperava. Se tiver curiosidade, entra aí, joga uma partida e me diz o que achou.

Carregando publicação patrocinada...
1
1

Me diverti muito com um amigo, mas o delay tava meio alto.
Demoramos para entender que o pega fica mudando tbm, sem necessariamente ter que pegar alguem

1

Cara que legal que gostaram!
Pena que estava com delay, pelo jeito vou precisar fazer alguns ajustes pra melhorar isso.

O pega fica mudando acada 10s quando tem so 2 jogadores, dai fica mais justo. Mas experimenta jogar com mais pessoas de uma vez, fica muito caotico e divertido.

Valeu pelo feedback!

0
1
Conteúdo excluído
1

Fala Rodrigo blz? Cara, eu já estou usando keydown e keyup. Ainda tem um delayzinho mesmo mas acredito que seja só o tempo de resposta do servidor mesmo