Lista de verificação de qualidade para os serviços relacionados a jogos do Google Play

A qualidade influencia o sucesso do seu jogo a longo prazo em termos de instalações, resenhas, avaliações, engajamento e retenção de jogadores. Antes de publicar seu jogo, é importante verificar se ele atende às expectativas básicas dos jogadores e tem recursos interessantes e uma interface do usuário intuitiva e bem projetada.

Este documento ajuda você a se concentrar nos principais aspectos relacionados à qualidade, ao conjunto de recursos e à IU que podem ter um impacto significativo no sucesso do seu jogo. Cada uma dessas áreas é apresentada com uma lista de verificação de requisitos mínimos, práticas recomendadas e melhorias. Para oferecer o melhor produto possível aos jogadores, siga as recomendações da lista de verificação sempre que possível.

1. Login

As tarefas da lista de verificação abaixo se aplicam à implementação do recurso de login do jogador no seu jogo. Saiba mais sobre o funcionamento do login e o processo de implementação em Conceitos de login. Para exemplos de código da implementação do login em jogos para dispositivos móveis, consulte Como implementar o recurso de login no Android.

ID Importância Descrição
1.1 Obrigatório Use os serviços relacionados a jogos do Google Play no login dos jogadores.
1.1.1. Conecte jogadores automaticamente quando o jogo for iniciado e use o login manual como backup

Os jogos precisam implementar o login silencioso para ajudar os jogadores a serem autenticados e autorizados rapidamente para usar o conjunto completo de recursos fornecidos pelos serviços relacionados a jogos do Google Play. Se o login silencioso falhar, seu app deverá solicitar que os jogadores façam login interativamente. Ao usar o login interativo, os jogadores podem optar por fazer login no jogo, e o Play Games garante que o perfil esteja configurado corretamente para uso no jogo. A combinação de login silencioso e interativo resulta nas taxas de login mais altas com o mínimo de atrito do usuário.

Se o jogador optar por não fazer login, essa decisão deve ser lembrada e ele não deve receber novas solicitações. Em vez disso, forneça um botão de login. É importante que o botão de login seja fácil de encontrar. Ele precisa estar acessível na tela principal ou de configurações. Esse botão não pode ficar escondido em vários níveis do menu de jogos. Continue tentando fazer login automático dos jogadores sempre que eles iniciarem o jogo. Eles podem mudar as preferências e fazer login automaticamente.

1.2 Obrigatório Não solicite escopos que não sejam do Play Games ao criar seu cliente de login. Isso permite que os jogadores façam login automaticamente no jogo, já que solicitar escopos que não sejam do Play Games força os usuários a usar o login interativo.

Se você já está solicitando escopos que não são do Google Play Games, remova todos os escopos desnecessários da sua GoogleSignInOptions junto com as APIs que você não usa mais. Se você precisar solicitar outros escopos (por exemplo, se quiser ver o e-mail de um usuário para fins de marketing), faça isso em um momento relevante e não como parte do processo de login.

// This is the proper way to do it
GoogleSignInOptions signInOption = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
1.3 Obrigatório Permita que os jogadores permaneçam conectados.

Depois que o jogador fizer login no seu jogo, conecte-o automaticamente sempre que o jogo começar, até que ele se desconecte explicitamente.

1.4 Obrigatório Mostre o pop-up "Conectando" adequadamente durante o login.

Em dispositivos Android, o pop-up "Conectando" do Google Play Games precisa ser mostrado sempre que o fluxo de login é invocado. Para isso, é necessário chamar o método setViewForPopups() da classe GamesClient. Verifique se esse pop-up é exibido com o login automático do usuário no início do jogo. Isso permite que os jogadores saibam que estão fazendo login corretamente no jogo.

O exemplo a seguir mostra como o pop-up "Conectando" pode aparecer em um jogo Android durante o login seguido por uma breve animação do logotipo dos serviços relacionados a jogos do Google Play.

A captura de tela mostra o pop-up "Conectando a".
1.5 Obrigatório Dê aos jogadores uma opção para sair.

Depois de fazer login, é preciso sempre oferecer uma opção de saída ao jogador.

Forneça um botão de desativação em uma tela de jogo relevante no app (por exemplo, na tela de configurações do jogador).

1.6 Prática recomendada Lembre se os jogadores recusaram o login.

Se o jogador se recusar a fazer login no início do jogo (clicando em Cancelar na IU, por exemplo), você ainda deverá permitir que ele continue jogando.

Quando o jogador iniciar o jogo novamente, não invoque o fluxo de login interativo automaticamente. Esses jogadores podem fazer login mais tarde usando o botão de login que deve estar no seu sistema de configurações. Isso evita que os jogadores precisem recusar repetidamente o login sempre que iniciarem o jogo.

Uma exceção é se os jogadores estiverem tentando acessar um recurso de jogabilidade que depende de login, por exemplo, enviar uma pontuação para um placar. Nesse caso, solicite que eles façam login antes de continuar o jogo.

1.7 Prática recomendada Maximize o número de jogadores que fazem login.

Ter mais jogadores fazendo login nos serviços relacionados a jogos do Google Play beneficia seus jogadores aumentando as oportunidades de jogabilidade competitiva e colaborativa. Para maximizar o número de jogadores que fazem login nos serviços relacionados a jogos do Google Play, é altamente recomendável solicitar automaticamente que os jogadores façam login, conforme descrito acima.

Caso contrário, direcione os jogadores ao fluxo de login o mais cedo possível a partir de um destes pontos (o mais recomendado primeiro):

  • Imediatamente após seu jogo começar
  • Imediatamente após uma experiência introdutória, como uma cena ou um tutorial.
  • Quando o jogador clicar em um botão de login do Google em qualquer lugar do jogo
1.8 Sugestão Siga as diretrizes da promoção de marca do Google.

Para oferecer aos jogadores uma experiência atraente e consistente de ponta a ponta, implemente as Diretrizes da promoção de marca dos serviços relacionados a jogos do Google Play.

1.9 Sugestão Lembre os jogadores que eles já fizeram login.

Mostre um lembrete ou uma dica aos jogadores que fizeram login quando o jogo realizar alguma ação em nome deles. Por exemplo, quando um jogador conectado terminar um nível, mostre uma mensagem como esta para indicar que a pontuação e as conquistas dele estão sendo salvas automaticamente: "Você fez login no Google. Suas conquistas e pontuações vão ser salvas automaticamente".

1.10 Obrigatório Faça backup do progresso dos jogadores usando o ID dos serviços relacionados a jogos do Google Play.

Para garantir que os jogadores não percam o progresso ao trocar ou redefinir dispositivos, ou ao jogar em vários aparelhos, faça o backup do progresso em uma solução de salvamento na nuvem. Use também o ID dos serviços relacionados a jogos do Google Play como uma chave segura caso você esteja usando seu próprio servidor de jogos de back-end. Quando os jogadores fizerem login com o ID dos serviços relacionados a jogos do Google Play, confira se existe algum progresso na conta e, se houver, permita que o jogador continue de onde parou. É possível usar uma solução própria de salvamento na nuvem ou o recurso de Jogos salvos do Google Play.

Caso o usuário não esteja conectado, tente manter o progresso do jogador salvo localmente e sincronize esse progresso quando ele fizer login. Isso ajuda a evitar a perda do progresso do jogador caso ele demore a fazer login novamente no jogo.

2. Conquistas

As tarefas da lista de verificação a seguir se aplicam à implementação do recurso Conquistas no seu jogo.

ID Importância Descrição
2.1 Obrigatório Garanta que todas as conquistas sejam alcançáveis.

Os jogadores devem conseguir desbloquear todas as conquistas criadas por você.

2.2 Prática recomendada Crie conquistas diferentes.

Todas as imagens, textos e descrições devem ser únicos para cada conquista.

2.3 Prática recomendada Pontue as conquistas proporcionalmente.

Os pontos de conquista devem ser proporcionais à quantidade de tempo ou habilidade necessária para que seja atingida.

2.4 Prática recomendada Desenvolva conquistas para diversos níveis de dificuldade.

Inclua algumas conquistas fáceis, que podem ser acessadas com uma jogabilidade casual, diversas conquistas de dificuldade intermediária, que exigem mais habilidade ou dedicação do jogador, e uma ou duas muito difíceis para os jogadores mais dedicados.

Por exemplo, a captura de tela a seguir mostra uma conquista difícil que ajuda a motivar e reter fãs do título.

Conquista difícil de alcançar que exige a coleta de 5 mil tesouros
2.5 Sugestão Não ofereça conquistas rápidas.

Evite premiar mais de uma conquista nos primeiros 5 minutos de atividade, já que isso impede o engajamento de novos jogadores.

Não defina suas conquistas para que sejam concedidas muito cedo no jogo, de forma não intencional. Por exemplo, cuidado com conquistas que provavelmente serão ganhas no começo do jogo, como "Conclua um nível sem nenhum dano".

2.6 Sugestão Defina conquistas relacionadas a atividades interessantes no jogo.

Selecione métricas para criar conquistas que deixem o jogo mais divertido e aumentem a possibilidade de ser jogado novamente. Por exemplo, "número de zumbis mortos" é uma métrica mais interessante do que "número de quilômetros percorridos pelo personagem".

2.7 Sugestão Use cores nos ícones de conquistas.

Os serviços relacionados a jogos do Google Play usam versões em diferentes escalas de cinza nos ícones de conquistas para diferenciar o progresso do usuário. Se você somente puder usar ícones de conquistas pretos (ou brancos), use um plano de fundo colorido.

2.8 Sugestão Minimize o uso de conquistas ocultas.

Conquistas ocultas só devem ser usadas para evitar spoilers no jogo. O uso delas é exceção, não regra.

2.9 Sugestão Evite conquistas que dependam de sorte.

"Encontre 100 baús de tesouro" é melhor do que "Encontre um item que tenha 1% de chance de aparecer em uma arca do tesouro".

2.10 Sugestão Pense como um "Caçador de conquistas".

Alguns jogadores tentarão ganhar todas as conquistas criadas por você. Tente oferecer conquistas que atendam a essa categoria de usuários. Evite criar conquistas que dependam muito de elementos que estão além do controle do jogador ou que não possam ser alcançadas após ele tomar uma decisão no jogo.

2.11 Sugestão Verifique se o ícone de conquista é mostrado corretamente.

Quando um ícone de conquista é exibido em uma mensagem do Android, ele aparece sobreposto por um círculo com os cantos externos ocultos. Verifique se o ícone ainda é exibido de maneira adequada nessas circunstâncias.

3. Placares

As tarefas da lista de verificação a seguir se aplicam à implementação do recurso Placares no seu jogo.

ID Importância Descrição
3.1 Prática recomendada Mostre os placares no menu principal e após transições importantes.

Os placares devem ser exibidos durante o carregamento de um jogo. Após transições importantes, como na conclusão de um nível ou na morte do personagem de um jogador, os usuários devem ver imediatamente os links para os placares relevantes.

3.2 Prática recomendada Defina limites máximos para pontuações que podem ser enviadas.

Se possível, adicione limites ao definir seus placares para que as pontuações falsas sejam descartadas.

3.3 Prática recomendada Use ícones personalizados.

Crie um ícone personalizado para cada placar definido. Não use somente o ícone do seu jogo, já que ele será exibido incorretamente no app Google Play Games.

3.4 Prática recomendada A pontuação deve ser enviada em uma frequência apropriada.

Envie pontuações após transições importantes no jogo, como na conclusão de um nível ou na morte do personagem de um jogador. Para jogos sem transições importantes, como do tipo "endless runner", use o bom senso sobre a frequência de envio das pontuações. As pontuações não devem ser enviadas continuamente ou a cada segundo.

3.5 Sugestão Faça uso de tags de pontuação.

As tags de pontuação são dados adicionais que podem ser enviados junto com a pontuação. Por exemplo, você pode implementar uma tag de pontuação como um sinalizador para confirmar que a pontuação enviada por um jogador é válida.

Os placares personalizados também podem ler esses dados de tag. Se a tag de pontuação fosse o ID de um vídeo do YouTube que mostra o que aquela pessoa jogou, por exemplo, seu jogo poderia criar um link para visualização do vídeo em um placar.

3.6 Sugestão Desenvolva sua própria IU do placar com criatividade.

Se você tiver os recursos, crie sua visualização personalizada na parte superior dos dados do placar social. Normalmente, placares sociais criam uma experiência mais envolvente do que os públicos. Primeiro, verifique se há alguma entrada no placar social. Caso contrário, use o placar público.

3.7 Sugestão Mostre o progresso dos jogadores em relação a outros competidores.

A API de placares oferece suporte à exibição de janelas de pontuação, como a classificação de um jogador em +/- 10 posições. Se você estiver criando uma visualização personalizada, essa pode ser uma forma eficaz de aumentar o engajamento. Essa informação pode ser mostrada logo após uma transição importante no jogo, como na conclusão de um nível ou na morte do personagem de um jogador. Evite incluir cliques desnecessários entre os jogadores e as informações de classificação.

4. Amigos

As tarefas da lista de verificação a seguir se aplicam à implementação das APIs Friends no seu jogo.

ID Importância Descrição
4.1 Obrigatório Quando os jogadores aparecem em uma lista, mostre o ícone do Play Games ao lado dos usuários com um perfil do Play Games.

Pode ser uma lista de todos os amigos, uma lista de amigos que jogaram recentemente ou outras opções.

4.1.1. O ícone do Play Games precisa ser clicável.
Quando o usuário pressiona o ícone, o jogo precisa chamar getCompareProfileIntent() ou getCompareProfileIntentWithAlternativeNameHints(). para mostrar a IU em que ele pode se comparar com o perfil de outro jogador.
4.1.2. Ofereça suporte a perfis de jogadores e convites de amigos para nomes personalizáveis no jogo.
Se um usuário definir um nome diferente no jogo (e não usar o nome do perfil do Play Games), use getCompareProfileIntentWithAlternativeNameHints() para mostrar essa alternativa tanto para o jogador atual quanto para os jogadores que o encontrarem, como contexto para a visualização de perfil e qualquer convite de amizade enviado dessa forma. Transmita apenas nomes de jogadores persistentes e globais para os valores, não conteúdos arbitrários do usuário. Esse requisito significa que os convites de amigos enviados dentro do jogo vão fornecer contexto a ambos os jogadores:
  • Para o destinatário, os nomes alternativo e de jogador do remetente do convite aparecem juntos.
  • Ao visualizar a amizade, o remetente ainda vai encontrar o nome alternativo do destinatário e o jogo de onde o convite foi enviado.
4.2 Prática recomendada Use ícones diferentes para mostrar quais usuários do Play Games já são amigos e quais ainda não são amigos no Play Games, mas fizeram login nele. Use dois ícones para usuários do Play Games, um para "Amigos" e outro para "Não amigos" ou quando o status de amizade for desconhecido.
Ícone de amigos
Ícone de não amigos
4.3 Prática recomendada Chame loadFriends() sempre que fizer login e mostre a lista de amigos para garantir que ela esteja atualizada. Confira se os jogadores podem conferir a lista atualizada.
4.4 Prática recomendada Se o jogo já tiver um sistema de amizade, use as APIs Friends para aumentar a lista de amigos com os usuários do Play Games. Se um jogador estiver na lista de amigos do jogo e também na do Play Games, mostre o ícone de "Amigos".
4.5 Prática recomendada Se um jogador tiver negado a solicitação de acesso à lista de amigos, não mostre a caixa de diálogo para pedir acesso novamente, a menos que o usuário tenha indicado que quer conceder acesso. Por exemplo, pressionando um botão "Importar amigos do Play Games".
4.6 Prática recomendada Se um jogador negar o acesso à lista de amigos, ofereça uma forma de conceder esse acesso no futuro. Por exemplo, um botão "Importar amigos do Play Games".
4.7 Prática recomendada Se você usar o ID do jogador ou a lista de amigos com um servidor de back-end, faça o acesso com segurança. Além disso, para alguns jogos e jogadores mais antigos, o ID do jogador retornado pelo SDK do Android pode não ser o mesmo que as outras pessoas encontram ao visualizar o jogador no mesmo jogo. Isso é muito relevante ao usar a lista de amigos. No entanto, o player_id retornado na API REST é sempre consistente e é sempre o ID visível para outros jogadores.

5. Limitação de taxas e cotas

As tarefas da lista de verificação a seguir se aplicam ao gerenciamento da limitação de taxas e cotas no seu jogo. Para saber como gerenciar a cota do seu jogo e detectar quando o limite de taxa é excedido, consulte Como gerenciar a limitação de taxas e cotas.

ID Importância Descrição
5.1 Prática recomendada Use as bibliotecas de cliente.

As bibliotecas de cliente para dispositivos móveis usam várias estratégias para reduzir as chamadas feitas ao serviço. Por exemplo, dados para conquistas e placares são armazenados em cache para que os jogadores possam conferir essas informações quantas vezes quiserem, sem exigir que o serviço faça várias chamadas.

A biblioteca do cliente Android não enviará a pontuação de um jogador para o servidor se sua pontuação não for tão boa quanto a que você enviou recentemente. A biblioteca Android também combina automaticamente as chamadas de conquistas incrementais frequentes quando detecta que você está sendo limitado pela taxa.

5.2 Sugestão Combine chamadas frequentes para conquistas incrementais.

Se você estiver criando um jogo de luta com uma conquista do tipo "Dê 5.000 socos", não envie uma chamada de conquista incremental toda vez que alguém der um soco. Aguarde até o final da partida e envie uma chamada increment(xxx) (em que xxx é o número total de socos dados nessa rodada) ou espere até 50 socos antes de enviar uma única chamada increment(50).

5.3 Sugestão Acompanhe o uso.

Esteja ciente do número de chamadas que você faz para os serviços relacionados a jogos do Google Play. Mesmo que você evite atingir os limites de taxa, as chamadas frequentes podem levar a um tráfego de rede elevado e fazer com que a bateria do dispositivo descarregue mais rapidamente. Para evitar isso, você pode usar estas técnicas:

  • Só salve jogos uma vez a cada poucos minutos, e não a cada clique no botão.
  • Espere até o jogo terminar antes de enviar um valor de maior pontuação aos placares.
  • Revise a cota diária do app acessando o painel do seu projeto no Google Cloud Platform.

6. Jogos salvos

As tarefas da lista de verificação abaixo se aplicam à implementação do recurso de Jogos salvos no app.

ID Importância Descrição
6.1 Obrigatório Adicione metadados para fornecer mais contexto aos jogos salvos.

Você precisa incluir, pelo menos, os seguintes metadados ao enviar um jogo salvo:

  • Imagem da capa: é uma captura de tela que registra o progresso das partidas e lembra aos jogadores em que etapa eles deixaram o jogo.
  • Descrição: é uma descrição resumida que fornece contexto adicional para a imagem da capa.
  • Carimbo de data/hora: indica por quanto tempo o usuário está jogando o jogo salvo.
6.2 Obrigatório Permita que os jogadores carreguem jogos salvos.

Carregue o jogo salvo correto quando os jogadores fizerem uma seleção no app Play Games ou na IU de seleção padrão de jogos salvos.