Todos os projetos

Drink Game

em desenvolvimento

Jogo de cartas multiplayer em tempo real, com as telas sincronizadas. Projeto pessoal, desenvolvido com IA para acelerar a implementação.

Em desenvolvimento: o servidor das partidas pode estar fora do ar em alguns momentos.

Seis cartas do baralho em leque: ás de paus, 9 de copas, 7 de ouros, rei de espadas, 10 de ouros e dama de copas, cada uma com a sua regra
O baralho: 52 cartas, cada valor com um desafio
Tela Jogadores: Ana, Bruno, Carla e Diego cadastrados na ordem da rodada Vez de Ana: carta virada para baixo esperando o toque, com o próximo shot em 28 minutos Carta 7 de ouros revelada com a regra do Jogo do Pi
Jogadores · vez de Ana · carta revelada
Combo de naipe: segunda carta de ouros seguida, a regra vale em dobro Carta K: o jogador escreve uma regra nova, que fica fixa no topo da tela pelo resto da rodada Partida encerrada, com o botão para começar uma nova
Combo de naipe · carta K cria a regra da rodada · fim de partida
tipo
Projeto pessoal · acelerado com IA
licença
Código aberto
stack
React 19 · Vite · Express · Prisma · MySQL
hospedagem
Cloudflare Workers

A ideia

Um baralho de 52 cartas com um desafio para cada valor. Dá para jogar num celular só, passando de mão em mão, ou em grupo, cada pessoa no seu aparelho, com todas as telas mostrando a mesma partida.

Decisões

  1. O navegador nunca é dono do estado

    A partida inteira vive no backend, em MySQL via Prisma. Cada aparelho se reconcilia com ela.

    Por quê: em jogo de grupo alguém sempre bloqueia a tela, perde sinal ou recarrega a página. Como o estado não morava naquele celular, ele volta direto para a partida certa.

  2. Backend sem estado em memória

    Até o sorteio periódico de carta é um UPDATE atômico condicional no banco. Não existe timer rodando no processo.

    Por quê: o processo pode reiniciar ou ter mais de uma instância sem perder nada. Se duas requisições tentam sortear ao mesmo tempo, a condição do UPDATE garante que só uma consegue.