Analisando propostas

Vira Arena

Publicado em 10 de Setembro de 2025 dias na TI e Programação

Sobre este projeto

Aberto

🎯 Visão rápida

Partida de pênaltis em cartas. Cada jogador começa com 10 cartas idênticas (mesma composição para ambos). A partida consiste em 5 rodadas por jogador (cada rodada: um chuta, o outro defende; depois invertem). Cartas básicas representam direções de chute/defesa; VIPs são cartas consumíveis especiais compradas com $VIRA.

1) Regras básicas (definitivas)

Cada jogador recebe 10 cartas (configurável). As cartas são as mesmas para ambos (mesma composição).

A partida tem 5 turnos de ataque para cada jogador (total de 10 cobranças, alternando roles).

Em cada turno:

Kicker (quem vai chutar) joga uma carta face-down (escolhe direção: esquerda, centro, direita — ou outro esquema de zonas).

Defensor precisa escolher uma carta de defesa (face-down também) para tentar bloquear.

Revela-se ambas as cartas; se a defesa coincidir com a direção do chute → defesa; caso contrário → gol.

Ao final das 5 cobranças por cada jogador, soma-se gols; quem fez mais vence.

Empate → Pênalti de Ouro (morte súbita): cada jogador alterna cobranças até desempatar (mesma mecânica).

2) Cartas básicas (sugestão inicial — ajustável)

Cada carta básica é direção e pode ser usada tanto para chute quanto para defesa. Exemplo de composição sugerida (por jogador):

4 × Esquerda

3 × Centro

3 × Direita
(=10 cartas) — essa distribuição gera trade-offs estratégicos (ex.: Muitos "esquerda" força previsibilidade). Ajustável para balanceamento.

Quando uma carta é usada (como chute ou defesa) ela é descartada para o resto da partida.

3) Cartas vip (consumíveis, pagas em $vira)

todas são consumíveis (uma vez por compra / uso por partida), pagas com $vira. Podem ser remuneradas via compra direta, prêmio ou caixas.

VIPs já definidos (do seu texto):

Visão Noturna

Efeito: revela a carta que o adversário jogou naquele turno (ou seja, o defensor vê qual direção o kicker escolheu antes de jogar a defesa).

Uso: deve ser ativada após o kicker jogar face-down e antes do defensor confirmar a defesa.

Restrição: uso uma vez por partida por jogador (se comprado).

Pagamento: $VIRA (valor sugerido abaixo).

Super Muralha

Efeito: bloqueia qualquer chute naquele turno (independente da direção).

Uso: ativado pelo defensor no lugar de jogar uma carta de defesa (consome o turno de defesa).

Restrição: uma vez por partida. Não requer combinar com carta de defesa.

Observação: Super Muralha não pode bloquear um Gol de Ouro (ver abaixo) se tornar impossível tecnicamente for desejado; mas seu enunciado original diz que “defende qualquer chute” — então por padrão bloqueia tudo, exceto se você explicitamente quiser Gol de Ouro invulnerável (descrição abaixo).

Gol de Ouro

Efeito: garante gol automático naquele chute e vale 2 gols (ponto duplo).

Uso: ativado pelo kicker ao jogar (substitui um chute normal).

Restrição: uma vez por partida (consumível).

Interação: por sua descrição “faz o gol de qualquer jeito e vale 2” — Gol de Ouro é inquestionável, ou seja, não pode ser bloqueado por Super Muralha. (Se você preferir que Super Muralha bloqueie até Gol de Ouro, avise — eu adapto as regras.)

Observação: VIPs são cartas separadas das 10 básicas — quando usadas não gastam as cartas básicas (gastam a carga VIP e consomem um dos 5 turnos de chute/defesa).

4) Fluxo de turno detalhado (implementação)

Para cada sub-rodada (ex.: Jogador A chuta, jogador B defende):

Início do turno (server emite turn.start, mostra quem é kicker/defender).

Kicker joga: escolhe e envia carta (ID da carta ou tipo) ao servidor — marcada face-down (servidor armazena sem revelar). Tempo limite sugerido: 20s.

Defensor decide:

Pode usar Visão Noturna (se possuir) — paga $VIRA e servidor retorna carta do kicker (revelada só para o defensor).

Agora o defensor joga sua carta de defesa ou usa Super Muralha (se possuir). Tempo limite sugerido: 20s.

Revelação & resolução: servidor revela ambas, aplica VIPs (por prioridade definida abaixo), registra resultado (gol/defesa), atualiza placar e notifica os dois clientes com animação.

Próxima sub-rodada (agora o papel se inverte).

Tempos e falhas: se um jogador desconectar/estourar tempo:

Default: auto-play por servidor (joga carta aleatória do mano / usa VIP se configurado para auto-use) ou abandono com perda automática — escolha do jogo. Recomendo grace period 15–30s + auto-play.

5) Prioridade / Resolução de efeitos (regras técnicas)

Ordem de resolução em cada sub-rodada:

Kicker já jogou a carta (face-down).

Visão Noturna (se for utilizada pelo defensor) revela a carta do kicker antes da jogada de defesa — portanto, influência direta.

Defensor joga carta de defesa ou ativa Super Muralha.

Gol de Ouro, se usado pelo kicker naquele mesmo salto, é resolvido: garante 2 gols independentemente da defesa (ou, se preferir, pode ser configurado para ser passível de Super Muralha — defina a regra).

Caso normal: se direção defesa == direção chute → defesa; senão → gol.

Se houver conflito de VIPs (ex.: Defensor tentou usar Super Muralha mas kicker ativou Gol de Ouro): regras acima determinam o resultado; defina se Gol de Ouro é invulnerável.

6) Economia & compras (sugestão de valores & limites — ajustáveis)

(Valores exemplares em $VIRA)

Visão Noturna: 100 $VIRA (consumível, 1 por partida)

Super Muralha: 200 $VIRA (consumível, 1 por partida)

Gol de Ouro: 500 $VIRA (consumível, 1 por partida)

Formas de obtenção:

Compra direta na loja (gasto $VIRA).

Prêmios em partidas/temporadas.

Caixas/loot por passes.

Importante: VIPs podem ser consumíveis off-chain. Se houver NFT (cartas raras), diferencie: NFTs permanentes (skin, efeitos cosméticos, estatísticas) — não devem quebrar equilíbrio competitivo sem custo.

Resgates: manter política de resgate por catálogo (gift cards, fidelidade) — sem usar termo “saque”.

7) ui / ux (especificações para o front)

tela de partida com 3 zonas claras: sua mão (10 cartas), área de jogo (cartas face-down/face-up), mão do adversário (miniatura).

Interações:

Drag & drop para jogar carta (ou botão “jogar”).

Mostrador de VIPs disponíveis (botões para comprar/usar).

Temporizador visível para kicker e defensor.

Animação de revelação (cartas viram, som, partículas).

Feedback claro de vitória/derrota do turno.

Notificações: “Visão Noturna ativada” (só para quem usou); quando alguém usa vip, apareça animação pública (balancear ux vs. Informação estratégica).

Log de turnos (histórico) para ver quais cartas já foram usadas.

8) Back-end / Autoridade do jogo (requisitos)

Servidor autoritativo: todas as decisões de jogo (validação de cartas, resolução de VIPs, contagem) são feitas no servidor. Clientes apenas enviam intenções.

WebSocket / realtime: para latência menor e experiência síncrona (socket events: match.create, match.join, turn.play, turn.resolve, player.disconnect, match.end).

Persistência: guardar partidas, histórico, ranking e logs para auditoria de fraudes.

Transações monetárias: compras VIPs e compras de $VIRA via Pix integradas com gateway; pagamentos aprovados devem refletir saldo do usuário imediatamente no servidor.

Autorizações: checar saldo $vira antes de permitir compra / uso de vip; bloquear uso duplicado (flag por partida).

Escalabilidade: partidas curtas → alto QPS (dimensionar autoscaling para sockets).


10) Casos de borda & validação

Tentativa de usar VIP duas vezes → negar (server-side).

Desconexão → policy: espera Xs → auto-play / forfeit.

Tentativa de jogar carta que não possui → negar e reportar (anti-cheat).

Ambos jogadores usam VIPs conflitantes → use regra de prioridade (Visão Noturna antes de defesa, Gol de Ouro resolvido como inquestionável, etc).

Replay/forgery: todas ações assinar com tokens temporários; logs imutáveis por partida.

11) Testes/QA mínimos (aceitáveis)

Partida completa com 5 turnos por lado, sem VIPs — resultados corretos.

Cada VIP testado isoladamente e em combinação (visão vs muralha vs gol de ouro).

Teste de timeout / desconexão / reconexão.

Testes de segurança: tentativa de usar carta não existente.

Testes de economia: débito $VIRA por compra e não permitir uso com saldo insuficiente.

Testes de stress com matchmaking concorrente (1500+ partidas/hora simuladas).

12) MVP — entregáveis para o freelancer

Protótipo funcional (Web/Unity/React Native) com: matchmaking simples, 1x1, 10 cartas, 5 turnos por jogador, VIPs implementados.

Backend mínimo (endpoints + sockets) autoritativo.

UI básico com animações de virar cartas e indicação de VIPs.

Painel admin para forçar resultados, ver logs e ajustar preços $VIRA.

Documentação técnica (API spec + modelo de dados + regras).

Suite de testes automatizados para regras de turno e VIPs.

13) Exemplo de partida (walkthrough)

Round 1: A é kicker. A joga Esquerda (face-down). B decide usar Visão Noturna (paga 100 $VIRA) → servidor mostra a carta de A ao B. B então coloca defesa Direita. Revela → defesa não bate → Gol A +1.

Round 2: Agora B chuta. B usa Gol de Ouro (paga 500 $VIRA) → gol automático, +2 para B. Super Muralha do A não bloqueia (regra: Gol de Ouro inquestionável).

Após 5 rodadas cada, soma-se e define vencedor; se empate vai para morte súbita (novo ciclo com mesma mecânica).

14) Pontos para o freelancer perguntar (se necessário)

(Estou incluindo só para que o dev saiba o que esclarecer contigo)

Deseja que Gol de Ouro seja realmente inquebrável por Super Muralha?

Composição final das 10 cartas (ex.: 4/3/3) — confirmar balanceamento.

Preço final em $VIRA para VIPs e se VIPs podem ser compradas DURANTE a partida ou apenas antes.

Política de desconexão (auto-play vs forfeit).

Integração NFT (sim/não) e se NFTs afetam gameplay.

Contexto Geral do Projeto

Eu tenho a patente e cnpj do jogo físico, estamos lançando esse mês, eu gostaria de fazer o jogo digital nesse formato, tenho o desejo que seja um jogo nft, pois temos o token da moeda, mas seria interessante também ter um para android e ios nesse formato para competições e-sports

Categoria TI e Programação
Subcategoria Outros
Tamanho do projeto Médio
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho uma ideia geral
Disponibilidade requerida Conforme necessário
Integrações de API Payment Processor (Paypal, Stripe, etc)

Prazo de Entrega: Não estabelecido

Habilidades necessárias