O Desafio
O objetivo deste projeto foi desenvolver um jogo estratégico no estilo Reigns (focado em mecânicas de "swipe" de cartas para escolhas binárias) ambientado em uma agência de inteligência governamental.
O desafio técnico consistia em equilibrar dinamicamente quatro pilares vitais de tensão (Legalidade, Poder Político, Opinião Pública e Orçamento) enquanto mantínhamos a persistência fluida e assíncrona do progresso do jogador (dossiês de personagens desbloqueados, segredos e histórico de baixas) em um banco de dados na nuvem.
A Solução
Desenvolvemos a aplicação inteiramente com Next.js 16 (App Router) e TypeScript, integrando o Supabase para gerenciar autenticação anônima (permitindo jogar instantaneamente sem logins burocráticos) e gravação rápida de dados de rodadas.
O deploy foi desenhado para a infraestrutura da Cloudflare Pages através do OpenNext e Wrangler, transformando as rotas da aplicação em Cloudflare Workers serverless. Isso garante carregamento sob 300ms de qualquer lugar do mundo e alta tolerância a picos de tráfego, sem custos mensais de servidores dedicados.
Diferencial & Bastidores
A interface foi concebida como um terminal operacional de espionagem, com tema escuro cyberpunk profundo, fontes técnicas e indicadores em formato de líquido animado. A lógica das cartas (`cards.ts`) implementa eventos complexos, onde cada decisão tem impacto imediato nas facções internas do jogo.
O jogo foi desenhado para ser mobile-first, mas a interface encapsula-se de maneira refinada no desktop, simulando uma tela de console de comando que mantém a imersão. Toda a interação tátil de arrasto foi programada para simular feedback físico nativo, proporcionando uma experiência rica para o usuário final.
Principais Resultados
- Arquitetura Full-Stack serverless ultra-rápida implementada com OpenNext e Cloudflare.
- Autenticação anônima e banco de dados Supabase de baixa latência integrados nativamente.
- Interface cyberpunk responsiva com micro-animações fluidas nos indicadores de tensão.
- Excelente retenção de dados históricos com o Dossiê de Agentes e Registro de Baixas.