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 Faça login com os serviços relacionados a jogos do Google Play.
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 a usar o conjunto completo de recursos fornecidos pelos serviços relacionados a jogos do Google Play. Se o login silencioso falhar, o app precisará solicitar que os jogadores façam login interativamente. Ao usar o login interativo, os jogadores podem fazer login no jogo, e o Play Games garante que o perfil esteja configurado corretamente para uso no seu jogo. Combinar logins silenciosos e interativos gera as maiores taxas de login com o mínimo de atrito.

Se o jogador decidir não fazer login, lembre-se disso e não solicite o player novamente. Em vez disso, forneça um botão de login. O botão de login precisa ser fácil de encontrar para os jogadores. Por exemplo, ele pode ser acessado na tela principal ou na tela de configurações. Esse botão não pode ficar escondido no menu do jogo. Tente continuar a fazer login automaticamente dos jogadores sempre que começar 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 permitirá que os jogadores façam login automaticamente no seu jogo, já que a solicitação de escopos que não são do Play Games força os usuários a usar o login interativo.

Se você já estiver solicitando escopos que não são do Play Games, remova todos os escopos desnecessários da construção GoogleSignInOptions com as APIs que não são mais usadas. 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, 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 Permitir que os jogadores permaneçam conectados.

Depois que o jogador fizer login, conecte-o automaticamente sempre que o jogo começar, até que o jogador saia explicitamente.

1.4 Obrigatório Exiba o pop-up "Conectando" corretamente durante o login.

Em dispositivos Android, o pop-up "Conectando" do Google Play Games precisa ser exibido sempre que o fluxo de login for invocado. Para isso, chame o método setViewForPopups() da classe GamesClient. Confira se esse pop-up aparece ao fazer login do jogador automaticamente no início do jogo. Isso informa aos jogadores que eles estão fazendo login no seu jogo corretamente.

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 Ofereça aos jogadores a opção de sair do jogo.

Depois de fazer login, o jogador precisa sempre ter a opção de sair.

Considere fornecer um botão para sair em uma tela de jogo relevante no app (por exemplo, na tela de configurações do jogador).

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

Se o jogador não fizer login quando o jogo começar a iniciar o fluxo (por exemplo, se ele clicar em Cancelar na IU), ainda assim será preciso continuar o jogo.

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

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

1,7 Prática recomendada Maximize o número de jogadores que fazem login.

Ter mais jogadores conectados aos 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, recomendamos solicitar que os jogadores façam login automaticamente, conforme descrito acima.

Caso contrário, direcione os jogadores para o fluxo de login o quanto antes a partir de um destes pontos (o mais recomendado primeiro):

  • Imediatamente após o início do jogo.
  • Imediatamente após uma experiência introdutória, como uma cena ou um tutorial.
  • Quando o jogador clica 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 os Jogos salvos dos serviços relacionados a jogos.

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 alcançadas jogando casualmente, 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 de conquistar que ajuda a motivar e reter fãs.

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

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 ícones de conquista de cores.

Os serviços relacionados a jogos do Google Play usam versões em escala de cinza dos ícones de conquistas para mostrar se os ganhos foram ganhos ou não. Se você puder usar apenas í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 é exibido 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 os limites máximos das 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 Mantenha a frequência de envios de pontuação 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 abaixo se aplicam à implementação das APIs Friends no 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 que têm 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 amigos, use as APIs Friends para aumentar a lista de amigos adicionando os 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 tiver negado 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 uma pontuação alta.
  • 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.