Portfólio GD GitHub Vamos conversarConversar
← Todos os projetos

Jogos & experimentos

Dedo Nervoso

Jogo de toques para Android: 60 segundos, uma meta de pontos e um dedo com pressa. Com chefes, missões, ranking online e duelo ao vivo.

AndroidKotlinCanvasFirebaseFirestoreRealtime Database
Jogo para Android · versão 1.3.1Criado e implementado por mim

Telas reais

O jogo, tela por tela.

Capturas do jogo rodando no celular.

Tela de abertura com o personagem Dedo Nervoso e as palavras velocidade, precisão e reflexo

Tela 1 de 8

Um dedo com pressa.

A abertura apresenta o personagem e o tom do jogo: rápido, barulhento e bem-humorado.

  • Arte e identidade próprias
  • Sons para cada ação: 47 efeitos
  • Abre direto, sem cadastro
Tela inicial do jogo com a fase 22, o desafio diário, o próximo chefe, a lista de amigos e o botão jogar

Tela 2 de 8

O que jogar agora, logo de cara.

A tela inicial mostra a fase atual e a meta, o desafio do dia, o próximo chefe e os amigos que estão jogando.

  • Nível, moedas e progresso no topo
  • Loja, conquistas e upgrades
  • Arena da semana ao lado do botão de jogar
Contagem regressiva antes da fase 22, com a meta de 4.890 pontos

Tela 3 de 8

Três, dois, um.

Cada fase começa com a meta na tela: nesta, fazer 4.890 pontos em 60 segundos.

  • Relógio e progresso da meta no topo
  • Escudos e mãos: proteções compradas com moedas
  • Pausa a qualquer momento
Partida em andamento com combo 24, multiplicador de 1,5, 8,7 toques por segundo e uma zona de moeda

Tela 4 de 8

Quanto mais ritmo, mais vale cada toque.

O combo sobe com o ritmo e multiplica os pontos. As zonas que aparecem na tela dão moedas, tempo ou combo.

  • Combo 24, multiplicador de 1,5
  • 8,7 toques por segundo medidos na hora
  • Estrelas pelo tempo em que a meta é batida
Tela de missões com o desafio diário e três missões em andamento

Tela 5 de 8

Um desafio novo por dia.

O desafio diário e as missões dão moedas e experiência, e a sequência de dias aumenta a recompensa.

  • Sobreviver aos STOPs, ativar o FRENZY, fazer toques
  • Moedas compram upgrades
  • Experiência sobe o nível do jogador
Tela de duelo com os itens lento, relógio e stop e um amigo para desafiar

Tela 6 de 8

Sessenta segundos contra um amigo.

Quem faz mais pontos vence. Quando uma bola cai, manter o ritmo pedido captura um item para jogar no rival.

  • Lento: os toques do rival valem metade
  • Relógio: o rival perde três segundos
  • Stop: um STOP surpresa na tela dele
Ranking da Arena com as abas global, semana, amigos e pontos

Tela 7 de 8

A Arena decide o ranking.

A Arena dura 60 segundos, não aceita upgrades e é igual para todos durante a semana. É ela que conta no ranking.

  • Global, da semana e entre amigos
  • Ranking online ou só deste aparelho
  • O servidor confere a pontuação antes de aceitar
Perfil do jogador com nível 14, conquistas, código de amigo e estatísticas

Tela 8 de 8

Seus números e seu código de amigo.

O perfil guarda nível, conquistas e estatísticas, e o código de amigo serve para convidar e duelar.

  • 18 de 25 conquistas neste perfil
  • Maior combo: 972 toques seguidos
  • Pico de 16,7 toques por segundo

O desafio

Onde tudo começou.

Fazer um jogo de reflexo que prenda além da primeira partida: precisa responder ao toque sem atraso, ter progressão que dê vontade de voltar e um ranking em que não dê para trapacear.

A solução

Da ideia à implementação.

Criei o jogo inteiro em Android nativo, sem motor de jogos: desenho direto na tela, sons próprios, fases com meta de pontos, chefes, upgrades, missões e conquistas. O modo online usa Firebase para ranking, amigos por código e duelos ao vivo.

Como funciona

Por dentro do fluxo.

Cada fase dá 60 segundos para bater uma meta. Tocar no ritmo sobe o combo e o multiplicador; zonas especiais dão moedas, tempo e combo, e acertar o centro vale um PERFECT. Quando aparece um STOP, tocar custa tempo. A cada dez fases vem um chefe, que foge e ataca. A Arena é igual para todos durante a semana e é o que conta no ranking; no duelo, quem mantém o ritmo captura itens e joga no rival.

  1. 1Toque no ritmo
  2. 2Combo e multiplicador
  3. 3Meta da fase
  4. 4Moedas e upgrades
  5. 5Arena da semana
  6. 6Ranking e duelos

Jogador

  • Toca no ritmocombo, zonas e PERFECT
  • Evita o STOPtocar custa tempo

Jogo em Kotlin

  • Desenho na telaCanvas, sem motor de jogos
  • Regras da fasemeta, chefes e upgrades
  • Sons47 efeitos
  • Progressoguardado no aparelho

Firebase

  • Login anônimosem cadastro
  • Firestorejogadores e ranking
  • Realtime Databaseconvites e duelos ao vivo

Regras no servidor

  • Só o dono gravacada um no seu registro
  • Tetos de pontuaçãovalor impossível é recusado
  • Intervalo mínimorecorde só após uma partida
O jogo funciona sem internet; o modo online entra para ranking, amigos e duelos.

Por dentro do código

O ranking não aceita pontuação impossível.

Trecho das regras de segurança do banco, publicadas no Firebase.

1Quem valida é o servidor.firestore.rules

O aplicativo fala com o Firebase por HTTP, sem biblioteca pesada. Como o jogo roda no celular de quem joga, as regras do banco conferem cada gravação: só o dono do registro escreve, os valores têm teto e um recorde novo da Arena não pode chegar antes de uma partida inteira.

firestore.rules
// Cada jogador só grava o próprio registro, com valores plausíveis.
function owner(uid) { return signedIn() && request.auth.uid == uid; }
function count(x, max) { return x is int && x >= 0 && x <= max; }

// Uma partida da Arena dura 60 s: recorde novo não chega antes disso.
function oneArenaMatchLater() {
  return request.time > resource.data.updatedAt + duration.value(55, 's');
}
// A Arena não tem upgrades: o teto fica bem abaixo do da campanha.
function arenaScore(x) { return count(x, 500000); }

Em resumo

  • Android nativo em Kotlin, sem motor de jogos: 4 MB
  • Fases, chefes, upgrades, missões e 25 conquistas
  • Ranking online global, semanal e de amigos
  • Duelo ao vivo de 60 segundos, com itens para atrapalhar o rival
  • Regras no servidor recusam pontuação impossível
  • Em português e inglês

Minha parte

Criei tudo: as regras do jogo, o desenho na tela, os sons, a progressão, o modo online e as regras de segurança do ranking.

Resultado e situação

Jogo completo, na versão 1.3.1, com APK de 4 MB para Android 8.0 ou mais novo. As telas abaixo são do jogo rodando no celular. Ranking global, semanal e de amigos, duelos ao vivo e 25 conquistas funcionando.

Contexto do projeto

Projeto autoral. O APK é instalado fora da Play Store: o Android pede para você permitir a instalação do arquivo. O aplicativo usa só internet e vibração, e o jogo funciona sem o modo online.