O que e o Stop The Game?

Stop The Game e a versao digital e multiplayer do classico jogo Stop (tambem conhecido como Adedonha), desenvolvida pela Curitiba Software e disponivel em stop.web3hub.com.br. O projeto reimagina o jogo de papel com tecnologia moderna: salas online em tempo real via SignalR, categorias sorteadas automaticamente por nivel de dificuldade, sistema de votacao peer-to-peer para contestar respostas duvidosas e um ranking global que acumula pontos entre todas as partidas.

A stack tecnica combina Angular no frontend e .NET 8 WebAPI no backend com MongoDB para persistencia. O uso de SignalR garante que todas as acoes - parar o jogo, enviar respostas, votar - acontecam em tempo real para todos os jogadores da sala simultaneamente, sem necesidade de refresh de pagina.

Como funciona: salas, letras e categorias

O fluxo de jogo do Stop The Game e fiel ao classico, mas com recursos que o papel nao permite:

Criacao de sala: o jogador cria uma sala publica ou privada para 2 a 20 participantes. Salas privadas sao exclusivas para assinantes do plano Pro. Cada sala recebe um codigo unico de 6 caracteres (sem ambiguidade visual) que pode ser compartilhado para convidar outros jogadores.

Sorteio de letra: no inicio de cada rodada, o servidor sorteia uma letra aleatoria e envia para todos os jogadores simultaneamente via SignalR. A letra aparece na tela de todos ao mesmo tempo, garantindo fairness.

Categorias por dificuldade: o jogo tem tres pools de categorias - Facil (204 categorias, 5 por rodada), Medio (498 categorias, 8 por rodada) e Dificil (294 categorias, 10 por rodada). A selecao de categorias e feita aleatoriamente a cada rodada, garantindo que dificilmente a mesma combinacao se repita. A fonte de verdade das categorias e um arquivo com 1000 opcoes curadas especialmente para o jogo.

Tempo minimo: cada rodada tem um tempo minimo de 5 segundos antes de permitir que alguem pare - evitando que jogadores mais rapidos no botao "STOP" prejudiquem quem ainda nem comecou a pensar.

Sistema de pontuacao: igual vs unica

A pontuacao do Stop The Game tem duas modalidades, fieis ao espirito competitivo do jogo de papel:

Resposta unica (10 pontos): se apenas um jogador respondeu determinada categoria com aquela palavra, ela vale 10 pontos. Isso incentiva criatividade e respostas incomuns. Resposta igual (5 pontos): se dois ou mais jogadores responderam a mesma palavra para uma categoria, todos marcam 5 pontos. Sem resposta (0 pontos): campo em branco nao marca pontuacao.

Essa dinamica cria uma tensao interessante: palavras muito obvias podem valer apenas 5 pontos se o adversario tambem pensar nelas, enquanto respostas criativas e menos comuns podem valer o dobro.

Votacao peer-to-peer: o tribunal das respostas

Um dos diferenciais do Stop The Game e o sistema de votacao para contestar respostas. Apos todos pararem, os jogadores podem questionar se uma resposta comeca com a letra certa ou se a palavra existe. Os outros jogadores votam, e por maioria simples a resposta e aceita ou invalidada.

O sistema de emojis tambem e uma feature social: durante a partida, jogadores podem enviar reacoes de 18 emojis pre-aprovados para expressar surpresa, frustracao ou comemoracao, tornando a experiencia mais interativa mesmo sem chat de voz.

Ranking global e plano Pro

O ranking global do Stop The Game e acumulativo: cada ponto marcado em qualquer partida contribui para a posicao do jogador no leaderboard geral. O ranking e publico e pode ser consultado por qualquer visitante do site, sem necessidade de cadastro.

O plano Pro (R$ 4,99/mes ou US$ 0,99/mes) desbloqueia a criacao de salas privadas ilimitadas. O pagamento e processado via Stripe com suporte a BRL e USD, e o gerenciamento de assinatura (renovacao, cancelamento, historico de faturas) e feito diretamente pelo Customer Portal da Stripe, sem necessidade de contato com o suporte.

Seguranca e arquitetura tecnica

O Stop The Game implementa protecao robusta contra abusos: autenticacao JWT de 60 minutos com refresh tokens de 30 dias, BCrypt para hash de senhas, bloqueio apos 3 tentativas falhas (CAPTCHA) e 5 tentativas (lockout 30 minutos). O backend valida membership em cada operacao do SignalR - nenhum jogador pode enviar mensagens ou votar em uma sala da qual nao faz parte.

Seis vulnerabilidades IDOR foram identificadas e corrigidas em auditoria de seguranca (30/07/2026): GetGameState, StopRound, SubmitAnswers, Vote, SendEmoji e JoinRoom passaram a validar que o userId do JWT pertence a sala antes de qualquer operacao. O SignalR usa grupos por sala e cada cliente so recebe eventos das salas onde esta conectado.

O painel administrativo separado (admin.stop.web3hub.com.br) permite ao administrador ver estatisticas, banir e desbanir usuarios e gerenciar assinaturas, tudo com autenticacao ultra-segura (2FA por WhatsApp, coleta de camera e geolocalizacao antes do login).