Compatibilidade e otimização para PC no Google Play Games no PC

O Google Play Games no PC exige que você faça mudanças de compatibilidade e otimização para PC no jogo. Essas mudanças garantem que ele possa ser executado em um PC e que a experiência do usuário seja otimizada para a plataforma.

Além disso, o Google Play Games no PC tem requisitos gráficos, de entrada e de reprodução entre dispositivos. Para saber mais, consulte o Guia de iniciação.

Ao fazer mudanças na otimização e compatibilidade com PC (que não sejam relacionadas ao suporte à arquitetura x86-64), você pode configurar o jogo para detectar o Google Play Games no PC e desativar ou ativar recursos específicos da plataforma. Isso possibilita usar o mesmo APK ou pacote de app nas versões para Android e PC.

Confira um resumo dos requisitos e das recomendações mencionados nesta página:

Incluir arquitetura x86-64 ABI

Exigido pelo processo de lançamento

Todas as bibliotecas incluídas no jogo exigem versões compatíveis com a arquitetura x86-64 ABI para garantir melhor desempenho e estabilidade na plataforma.

Se for tecnicamente inviável que seu jogo envie um executável x86 de 64 bits, entre em contato com a equipe de análise para encontrar uma exceção. Seu jogo não pode alcançar a certificação completa com uma exceção, mas pode ser colocado no catálogo como "jogável".

Compilação da biblioteca

Para garantir maior compatibilidade com o processador x86-64, não use o conjunto de instruções Atom ao compilar bibliotecas. Por exemplo, ao usar gcc, evite -march=atom. Em vez disso, use -march=x86-64.

Arquitetura de destino no Unity

Algumas versões do Unity 2019 e 2020 não têm suporte à arquitetura x86-64 no Android. Use o Unity 2019.4.31f1, 2020.3.19f1 ou mais recente.

Se o jogo usa uma versão compatível do mecanismo Unity, siga estas etapas para ativar os destinos x86-64 do Android:

  1. Acesse Player Settings > Other Settings > Configuration > Scripting Backend e selecione IL2CPP no menu suspenso para ativar o IL2CPP Scripting Backend.

  2. Ative os destinos x86-64 do Android para sua versão do Unity:

    • Unity 2018 e versões anteriores: acesse Player Settings > Other Settings > Target Architecture e marque a caixa de seleção x86. Como o Unity 2018 só tem suporte a destinos x86, não é possível criar um destino x86-64. Para isso, será necessário receber uma exceção da equipe de revisão. Peça uma exceção x86 ao seu contato do Google.

    • Versão 2019 com Suporte de longo prazo (LTS) e mais recentes do Unity: acesse Player Settings > Other Settings > Target Architectures e ative a opção x86-64 (ChromeOS).

Detectar o Google Play Games no PC

Você pode detectar a plataforma Google Play Games no PC durante a execução e assim ativar ou desativar recursos específicos da plataforma no jogo.

Verifique o recurso do sistema com.google.android.play.feature.HPE_EXPERIENCE para determinar se o jogo está sendo executado na plataforma Google Play Games no PC:

Kotlin

    var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

Java

    PackageManager pm = getPackageManager();
    boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

C#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
  

Processar eventos de ciclo de vida do Android

É importante processar o evento onPause (c++) no ambiente do Google Play Games no PC. O jogo fica visível quando o jogador ativa a sobreposição do emulador. Se o evento onPause não for detectado, o usuário pode ter uma experiência ruim.

Atualizar a interface

Alguns elementos e gestos da interface não são adequados para PC e precisam ser atualizados.

Necessário:

  • Substitua as ações da interface que precisam de dois ou mais dedos (gestos multitoque). Por exemplo, é necessário substituir o gesto de pinça para aumentar o zoom e outros gestos multitoque com as entradas correspondentes de mouse e teclado. Para saber mais sobre as mudanças de entrada no dispositivo, consulte Suporte a entradas.

Recomendado:

  • Todos os textos visíveis ao usuário devem dizer "clicar" em vez de "tocar".
  • As listas roláveis precisam ter barras de rolagem.
  • As áreas roláveis precisam ter barras de rolagem ou outra maneira de percorrer grandes distâncias mais rápido.
  • Não mostre um teclado clicável na tela para a entrada de texto.
  • Todas as entradas de texto precisam estar dentro dos limites do campo de texto.
  • Os cliques em elementos visíveis precisam:
    • aceitar cliques em qualquer lugar dentro dos limites visíveis do elemento;
    • não aceitar um clique na área fora do elemento visível.
  • As caixas de diálogo precisam ter um botão "Fechar" visível. Não detecte cliques fora dos limites da caixa de diálogo.

Desativar a maioria das caixas de diálogo de permissões

Com exceção da permissão do microfone, o Google Play Games no PC não mostra caixas de diálogo de permissão. Portanto, não tente mostrá-las ou solicitar permissões no momento da execução. Se você as mostrava anteriormente, atualize o jogo para que não apareçam mais em PCs.

Recursos e permissões do Android sem suporte

Exigido pelo processo de lançamento

Alguns recursos de hardware comuns em smartphones e tablets não estão disponíveis em PCs. Isso inclui a câmera e a localização do jogador. Os jogos que exigem recursos ausentes não podem ser transferidos por download e instalados no PC do jogador. Solicitações de recursos ausentes em um PC falham automaticamente.

Para consultar uma lista completa dos recursos disponíveis, digite:

adb shell pm list features

Para tornar seu jogo compatível com PCs, faça estas mudanças:

  • Marque os recursos como opcionais no manifesto do app adicionando android:required="false" à declaração <uses-feature>. Isso é válido apenas para recursos já declarados no manifesto.

  • Não tente usar recursos ausentes no momento da execução. Se você estiver usando o mesmo APK nas faixas para dispositivos móveis e PC, detecte o ambiente de PC no momento da execução e evite os caminhos de código relevantes.

  • Não solicite permissões do Android sem suporte no momento da execução. Se você estiver usando o mesmo APK nas faixas para dispositivos móveis e PC, detecte o ambiente de PC no tempo de execução e evite os caminhos de código relevantes. Não é necessário atualizar o manifesto.

Para saber mais, consulte o guia Compatibilidade do manifesto do app para Chromebooks.

Requisitos para testes funcionais

Remova esses recursos de hardware antes de enviar o primeiro build de teste ao Google Play Console:

  • android.hardware.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location

Para alguns desses recursos, pode ser indicado que há suporte ao executar pm list features por motivos de compatibilidade, mas eles não estão totalmente implementados. Para mais informações sobre como remover o recurso android.hardware.wifi, consulte Monitorar o status da conectividade e a medição da conexão. Para consultar uma lista completa dos recursos sem suporte, acesse o guia Compatibilidade do manifesto do app para Chromebooks.

Requisitos para testes de qualidade

Estes recursos de hardware usados com frequência não são compatíveis com PCs. Por isso, é necessário removê-los antes do envio final para o Google Play Console:

  • android.hardware.audio.pro
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.consumerir
  • android.hardware.location
  • android.hardware.nfc
  • android.hardware.sensor.light
  • android.hardware.sensor.accelerometer
  • android.hardware.sensor.barometer
  • android.hardware.sensor.compass
  • android.hardware.sensor.gyroscope
  • android.hardware.sensor.proximity
  • android.hardware.telephony
  • android.hardware.touchscreen
  • android.hardware.usb.accessory
  • android.hardware.usb.host
  • android.hardware.wifi
  • android.software.midi

Permissões sem suporte

As seguintes permissões usadas com frequência não têm suporte para PCs. Por isso, o jogo precisa desativá-las para o Google Play Games no PC:

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_WIFI_STATE
  • android.permission.BLUETOOTH
  • android.permission.CAMERA
  • android.permission.FOREGROUND_SERVICE
  • android.permission.GET_ACCOUNTS
  • android.permission.INSTALL_PACKAGES
  • android.permission.READ_CONTACTS
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.READ_PHONE_STATE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.USE_CREDENTIALS
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.WRITE_SETTINGS
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION

Sites externos e WebViews

Uma intent de navegador vai ser carregada no navegador da Web nativo do PC, e não no ambiente do Google Play Games no PC. Essa é experiência ideal para os jogadores na maioria das situações.

Para facilitar a portabilidade, o Google Play Games no PC oferece suporte para o WebView. Como isso é aberto no ambiente do Google Play Games no PC, ele não terá o navegador para computador comum. Se você usava WebView para compartilhar os Termos de Serviço, a Política de Privacidade ou outros conteúdos parecidos, invoque uma intent de navegador.

Desativar APIs do Google Play Services sem suporte

Exigido pelo processo de lançamento

O Google Play Games no PC envia a própria variante do Google Play Services, que contém somente um subconjunto das APIs do Google Play Services. É necessário confirmar que o aplicativo não depende muito de módulos omitidos ou sem suporte a PCs. Alguns módulos podem estar disponíveis, mas nem sempre há suporte para a funcionalidade deles. Por exemplo, o Firebase Cloud Messaging não funcionará quando o Google Play Games no PC for fechado.

Módulos com suporte

No momento, esses módulos estão disponíveis e oferecem suporte para o Google Play Games no PC, com planos de compatibilidade com outros recursos:

Suporte limitado

Os módulos abaixo são parcialmente funcionais. Vamos fazer o possível para oferecer suporte a eles no Google Play Games no PC, mas não podemos garantir a funcionalidade.

Sem suporte

Estes módulos não oferecem suporte para o Google Play Games no PC, mas não causam problemas quando falham.

Corrompidos

Exigido pelo processo de lançamento

Não use estes módulos em PCs. Eles podem causar um comportamento inesperado no Google Play Games no PC.

Ativar o armazenamento com escopo

Exigido pelo processo de lançamento

Esta seção é válida caso o jogo leia ou grave dados no armazenamento externo. Implemente o armazenamento com escopo como uma forma alternativa de ler e gravar dados. Isso elimina a necessidade de solicitar estas permissões sensíveis ao jogador:

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

Para ver mais informações sobre o armazenamento com escopo, consulte:

Analytics

Os produtos legados do Google Analytics não funcionam no Google Play Games no PC. Se isso se aplicar aos seus jogos, migre para o Google Analytics 4.

Essa mudança só vai afetar o jogo se você estiver usando o Google Analytics 360. Se você usa o SDK do Firebase para acompanhar eventos de análise do jogo e o jogo é mostrado como uma propriedade no Console do Google Analytics, não é necessário tomar outras providências.