Sistemas de jogo

Ranking no jogo: classificação, rodadas e recompensas

Como funciona o ranking pronto do iDos Games: placares com rodadas, recompensas por posição e por pontos, proteção contra pontuações infladas, e como configurá-lo no painel.

O ranking é um sistema de classificação pronto: placares com rodadas e recompensas por posição e por pontos. O servidor conta pontuações, posições e recompensas. Você configura os placares no painel, e o jogo envia resultados e mostra a classificação.

O que o jogador vê

  • Placares em abas: cada um com um cartão mostrando a pontuação do jogador, a posição e a contagem até o fim da rodada.
  • Os melhores jogadores, com o jogador destacado e medalhas para os três primeiros.
  • Recompensas por posição e recompensas por pontos em janelas; as por pontos são recolhidas ali mesmo.
  • Uma janela com a recompensa da última rodada: ela aparece sozinha quando uma rodada termina, com um botão "Pegar".
  • Um botão "Jogar" no cartão se o jogo tiver um modo em que se ganham pontos.
  • Um selo na aba quando há uma recompensa à espera.
Rankings
12 450
320
Semanal!
Temporada
Minha pontuação12 840
Posição#7
Termina em 2d 04:13
Recompensas
Jogar
ShadowFox25 120
2Mira22 980
3KnightOwl19 400
4Pixel_Pete15 210
5Luna14 030
6Arrow13 115
7Você12 840
8Grizzly11 900
Cada ranking ativo é uma aba; o selo indica uma recompensa à espera.
O cartão do jogador: pontuação, posição e a contagem até o fim da rodada.
As recompensas por posição e pontos abrem daqui; “Jogar” leva ao modo de jogo.
Medalhas para os três primeiros; o jogador fica destacado na lista.
Exemplo. A tela do ranking: o cartão do jogador com o tempo da rodada e a lista do topo.

Como um placar é montado

  • Rodadas. Um placar se repete em ciclos (por exemplo toda semana), corre por um cronograma ou como uma sequência de rodadas.
  • Como a pontuação é contada. A soma de todos os resultados, o melhor resultado, o melhor tempo ou o último valor.
  • Recompensas por posição: por faixas de posição no fim de uma rodada: 1º lugar, 2º a 3º, 4º a 10º e assim por diante.
  • Recompensas por pontos: marcos dentro de uma rodada: "faça 1000 pontos nesta semana".

De onde vêm os pontos

Os pontos vêm das fontes definidas no placar:

  • Um resultado vindo do jogo (ClientScore). O jogo envia um número, por exemplo a pontuação de uma corrida. ⚠ Defina limites na fonte: um máximo por envio, um máximo por dia e uma pausa entre envios. Sem essa fonte o placar não aceita nenhum número do jogo.
  • Eventos que o servidor conta sozinho, por exemplo compras ou missões concluídas. Esses não podem ser falsificados pelo jogo.

Passo 01Adicione um ranking ao seu projeto

Diga ao programador de IA: "Adicione um ranking semanal pela melhor pontuação". Ele instala o sistema pronto e ensina o jogo a enviar o resultado. A aba aparece para os jogadores quando pelo menos um placar estiver ativo no painel.

Passo 02Configure um placar

Abra o painel, escolha seu projeto e vá em Operações ao vivo → v2 → Ranking.

  1. Aperte Adicionar ranking e defina o ID, por exemplo weekly_score.
  2. Escolha o cronograma das rodadas e como a pontuação é contada.
  3. Adicione uma fonte de pontos. Se o jogo envia os pontos, use ClientScore com limites.
  4. Defina as recompensas por posição e, se quiser, as recompensas por pontos.
  5. Aperte Salvar.

O botão IA da página abre um assistente: descreva o placar com palavras, ele propõe as mudanças, e você revisa e salva.

Passo 03Teste e lance

Envie alguns resultados na versão de teste e veja a posição mudar. As configurações vão para o app ao vivo em uma ação separada; veja publicação e links.

Para desenvolvedores

O ranking funciona por meio de client.leaderboard no @idosgames/core.

TypeScript
// Enviar um resultado: o servidor aplica a regra de contagem e os limites
const sub = await client.leaderboard.submitScore('weekly_score', 150)
if (!sub.ok) return showError(sub.error)
sub.data.NewScore // a pontuação depois da contagem

// Uma tela com vários placares: listas do topo e o progresso do jogador em uma requisição
const overview = await client.leaderboard.getOverviewBatch(['weekly_score', 'season_pvp'])

// Recolher tudo o que está à espera: recompensas por posição e por pontos
await client.leaderboard.claimAllRewardsBatch(['weekly_score', 'season_pvp'])
  • O SDK recusa sozinho uma pontuação zero ou negativa, sem fazer requisição.
  • Pegue a nova pontuação em NewScore na resposta: com "melhor resultado", um resultado pior não muda a pontuação.
  • O ranking de amigos é getFriendsLeaderboard(leaderboardID).

Todos os campos estão descritos na habilidade leaderboard-system, servida pelo servidor MCP do SDK.

Perguntas frequentes

Um jogador pode trapacear mandando uma pontuação enorme pelo jogo?

Não, se o placar estiver bem configurado. Um placar só aceita números do jogo por uma fonte ClientScore, e essa fonte tem limites: um máximo por envio, um máximo por dia e uma pausa entre envios.

Quantos rankings um jogo pode ter?

Vários. Cada placar ativo é uma aba separada da tela de ranking, com sua própria rodada e recompensas.

Existe ranking de amigos?

Sim. O SDK devolve o mesmo placar filtrado pelos amigos do jogador.

Veja também

Crie o seu próprio jogo

Descreva a ideia em uma frase: o programador de IA cria o jogo, e ele vai ao ar com um link próprio.