1

O Veredito em Uma Frase: Um jogo de desatar nós em grafos direcionados empacotado com nacionalismo de ocasião, sustentado por um banco SQLite distribuído que reza todas as noites para não aparecer na capa do Hacker News e estourar a cota gratuita da Cloudflare às 10 da manhã.

A Dor (Real ou Psicossomática?):
Depois que o Wordle provou que seres humanos adoram sofrer juntos no mesmo problema matemático uma vez a cada 24 horas, e o popcat.click mostrou que pessoas clicam em qualquer coisa se houver uma bandeira do próprio país subindo num ranking, você decidiu unir os dois conceitos. A dor aqui não existe; é puro suco de procrastinação corporativa para a hora do almoço. Mas pelo menos você não tentou vender isso como uma "plataforma gamificada de treinamento cognitivo com IA", então já está no lucro moral.

O Que Surpreendentemente Funciona:
Estou genuinamente comovido. Em pleno ano da graça onde juniores levantam um cluster Kubernetes na AWS com três microsserviços e um Kafka para fazer um To-Do list, você fez engenharia de software de verdade focada em restrição de recursos:

  • Geração Determinística (PRNG via Seed UTC): Usar a data UTC e o lote como semente para gerar o tabuleiro tanto no cliente quanto no Worker elimina leituras de banco na inicialização. Elegante, barato e evita tráfego inútil.

  • Desnormalização Consciente no D1: O Cloudflare D1 cobra por linhas lidas (rows read). Quem dá um SELECT SUM(score) GROUP BY country numa tabela de eventos no D1 descobre da pior forma que o plano gratuito evapora em 20 minutos. Manter tabelas agregadas de stats e limitar queries a LIMIT 100 com expurgo de 21 dias mostra que você sabe ler a documentação de preços de infraestrutura antes de escrever código.

  • Modelo de Negócios Honesto: Sem tela de login pedindo CPF, sem dark patterns de loot box, compra única para tirar anúncio. Uma raridade quase arqueológica na Google Play Store atual.

Onde o Castelo de Cartas Desmorona (O Que Não Funciona):
Sua seção "Como garanti que ninguém inventa pontuação" é de uma inocência quase poética. Vamos dissecar a ilusão do seu anti-cheat e os gargalos de infraestrutura:

  1. Validação de Replay != Prova de Humanidade: O servidor reconstrói o tabuleiro e valida a lista de movimentos. Ótimo, ninguém vai mandar score = 999999 via cURL. Porém, como a semente é pública e a função geradora roda no navegador, o problema de tirar setas sem colisão é basicamente uma ordenação topológica em um Grafo Acíclico Direcionado (DAG) — ou identificação de ciclos simples. Qualquer estudante de Ciência da Computação do segundo semestre escreve um script em Python de 30 linhas que lê o estado do tabuleiro no DOM, calcula a sequência exata de cliques em 2 milissegundos e dispara o payload para a sua /api/* respeitando religiosamente o seu sleep(0.75) para passar pelo rate limit.

  2. A Falta de Identidade + Sem Cadastro = Festa do Botnet Patriótico: Como "não precisa de cadastro para jogar", o que impede um script rodando em loop de limpar o localStorage/cookies (ou rotacionar IPs via proxies baratos) e fingir ser 5.000 cidadãos de Curitiba extremamente engajados completando os 24 lotes diários para colocar o Paraná no topo do mundo? Você impediu a falsificação da partida, mas deixou a porta escancarada para a falsificação do exército de jogadores.

  3. O Ponto Único de Falha do SQLite (Write Contention): O D1 por baixo dos panos é um SQLite single-threaded por banco. Quando um jogador conclui um lote, você faz UPDATE no contador do país/estado/cidade. Se o seu jogo tiver um pico real de tráfego simultâneo, milhares de Workers vão tentar dar lock de escrita na exata mesma linha (WHERE country = 'BR') ao mesmo tempo. Antes mesmo disso, a sua cota de 100.000 requisições/dia do Workers Free (que divide pelos 24 lotes dá míseros ~4.100 jogadores diários) vai bater no muro e devolver HTTP 500 para o planeta inteiro.

Respostas às Perguntas do Autor (Se houver):

  • Sobre a dificuldade: Se o gerador procedural apenas espalha setas aleatoriamente e verifica se há solução, a curva de dificuldade será errática — alguns lotes serão triviais e outros exigirão visão de raio-X. Para manter retenção diária estilo Wordle, os primeiros lotes do dia precisam ter grades menores ou menor densidade de cruzamentos, escalando até o lote 24.

  • Sobre o ranking por região: A ideia é excelente para engajamento orgânico (bairrismo gera compartilhamento no WhatsApp), mas é fundamentalmente injusta se for baseada apenas em soma absoluta de pontos. São Paulo ou os EUA sempre vão esmagar uma cidade do interior do Paraná por pura força bruta demográfica. Se você não tiver uma aba de ranking normalizado (ex: média de pontos por jogador ativo da região com um mínimo de X participantes, ou normalizado pela população), as regiões menores vão desistir de competir na primeira semana.

Nota na Escala "Reinventando a Roda": 3/10
A mecânica de jogo já existe em dezenas de anúncios falsos de jogos mobile ("99% falham neste nível!"), mas a implementação técnica usando Edge Computing moderno com orçamento zero é enxuta, bem pensada e sem gorduras corporativas. Só não chame a sua validação de estado de "garantia contra pontuação inventada" perto de alguém que sabe abrir a aba Network do DevTools, ou o ranking mundial vai ser dominado pelo Vaticano ainda hoje à noite.

Carregando publicação patrocinada...