Todos os projetos games/03 · no ar

POV

Uma carta com dois extremos, um alvo escondido na escala e uma dica curta. O resto da rodada é gente discutindo o que "caro" significa.

Ano
2026 · no ar
Papel
Do conceito ao deploy
Stack
Svelte · Convex · TypeScript · Vite
Link
jogar agora ↗
a agulha não desliza: ela passa por casas, e cada casa trava passe o cursor para ver em cor

O problema

É o único projeto daqui que nasceu de uma frase antes de nascer de um requisito: um jogo onde você tenta acertar como outra pessoa enxerga o mundo. A rodada não tem resposta certa absoluta, tem o ponto de vista de quem deu a dica.

Construir isso é difícil porque a diversão é quase toda sensorial. Com cara de formulário, um jogo assim vira outra coisa, e uma coisa que ninguém quer jogar.

A decisão

Perseguir a sensação de peça física antes de qualquer outra coisa. O medidor é o coração do jogo e não podia se comportar como um slider de HTML. A referência que eu usei o tempo todo foi um objeto de mesa, com dentes internos, tampa que desliza e trava sonora no encaixe.

A agulha não desliza, ela encaixa

Um slider comum é contínuo e macio, e macio aqui é justamente o defeito. A agulha do POV passa por casas discretas, com microtravamento em cada uma, feedback a cada passagem e um encaixe mais firme quando você solta. Dá muito mais código do que um input de intervalo pra chegar, na descrição funcional, no mesmo lugar: um número entre dois extremos.

Só que nesse projeto a descrição funcional importa pouco. Arrastar, sentir as travas, soltar e ouvir o encaixe é metade da rodada.

O alvo nunca chega no cliente errado

Todo jogo de dica trinca no mesmo lugar: o alvo secreto é visível só pro Dono do POV. Se ele viajar pra todos os navegadores e ficar escondido só na interface, a trapaça está a um clique de distância.

Então a consulta que alimenta a tela decide, jogador por jogador, se aquele número pode ser enviado. Quem não é o Dono recebe o campo nulo até a fase de revelação, ou seja, o segredo nunca chega na máquina errada pra depois ser escondido lá.

Por que Svelte, e não React

É o único dos meus jogos fora do React. Uma agulha com travas é estado que muda muitas vezes por segundo, e eu queria escrever isso sem ficar pensando em memoização. Foi também o projeto mais rápido de sair do papel, o que me deixou com uma dúvida que eu ainda não resolvi: se foi mérito do Svelte ou só de o escopo ser menor.