O Google Play Games exige que você faça mudanças na compatibilidade e otimização para PC do seu 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 tem requisitos gráficos, de entrada e de reprodução para dispositivos diferentes. Para saber mais, consulte o Guia de iniciação.
Ao fazer mudanças na compatibilidade e otimização para PC (que não sejam relacionadas ao suporte a x86), você pode configurar o jogo para detectar o Google Play Games 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.
Veja um resumo dos requisitos e das recomendações nesta página:
- Incluir arquitetura com ABI x86 (necessário)
- Detectar o Google Play Games no momento da execução (recomendado)
- Processar o evento onPause (recomendado)
- Atualizar os elementos da IU (necessário)
- Desativar caixas de diálogo das permissões de apps Android (necessário)
- Desativar recursos e permissões do Android sem suporte (necessário)
- Substituir as WebViews pelas intents do navegador (recomendado)
- Desativar APIs do Google Play Services sem suporte (necessário)
- Ativar o armazenamento com escopo (necessário)
- Desativar anúncios para dispositivos móveis no PC (recomendado)
- Migrar para o Google Analytics 4 (recomendado)
Incluir arquitetura com ABI x86
Exigido pelo processo de lançamento
Todas as bibliotecas incluídas no jogo exigem versões com suporte à ABI x86 para garantir melhor performance e estabilidade na plataforma. O Google Play Games oferece suporte a versões de 32 e 64 bits, mas você só precisa escolher uma para atender ao requisito.
Compilação da biblioteca
Para garantir maior compatibilidade com o processador x86, não use o conjunto de instruções
Atom ao compilar bibliotecas. Por exemplo, ao usar gcc
,
evite usar -march=atom
. Use -march=x86
ou
-march=x86-64
.
Arquitetura de destino no Unity
Algumas versões do Unity 2019 e 2020 não oferecem suporte à arquitetura x86 no Android. Confira se você está usando o Unity 2019.4.31f1, 2020.3.19f1 ou mais recente.
Se o jogo usa uma versão compatível do mecanismo do Unity, siga estas etapas para ativar os destinos x86 e x86-64 do Android:
Acesse Player Settings > Other Settings > Configuration > Scripting Backend e selecione IL2CPP no menu suspenso para ativar o IL2CPP Scripting Backend.
Ative os destinos x86 do Android para sua versão do Unity:
Unity 2018 e anteriores: acesse Player Settings > Other Settings > Target Architecture e marque a caixa de seleção x86.
Versão 2019 com Suporte de longo prazo (LTS, na sigla em inglês) e mais recentes do Unity: acesse Player Settings > Other Settings > Target Architectures e ative as opções x86 (Chrome OS) e x86-64 (Chrome OS).
Para maximizar o suporte a mecanismos de jogo, recomendamos ativar o suporte a arquiteturas x86 e x86-64 ou apenas x86-64 para que você não tenha limitações de espaço de memória de 32 bits.
Como o Unity 2018 só tem suporte a destinos x86, você pode ignorar o suporte para x86-64. No entanto, esse build não pode ser lançado no Android devido ao requisito de 64 bits. Nesse caso, é necessário manter um build separado para o Google Play Games.
Detectar o Google Play Games
Você pode detectar a plataforma Google Play Games 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:
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. 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 poderá ter uma experiência ruim.
Atualizar a IU
Alguns elementos e gestos da IU não são adequados para PC e precisam ser atualizados.
Necessário:
- Substitua as ações da IU 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 caixas de diálogo de permissões
O Google Play Games não mostra caixas de diálogo de permissões. Portanto, não tente as exibir antes de solicitar permissões. Se você as mostrava anteriormente, atualize o jogo para que não sejam mais exibidas no PC.
Recursos e permissões do Android sem suporte
Exigido pelo processo de lançamento
No PC, alguns recursos do Android disponíveis em smartphones ou tablets não podem ser acessados. Isso inclui recursos de hardware, como a câmera e outros recursos, como a localização do usuário. Sendo assim, seu jogo não pode depender de recursos ou permissões do Android que não têm suporte. No PC, se o jogo solicitar acesso a uma permissão sem suporte, a solicitação vai falhar automaticamente.
Para tornar seu jogo compatível com PCs, faça estas mudanças:
No manifesto do app, adicione
android:required="false"
à declaração de<uses-feature>
para todos os recursos sem suporte ao Google Play Games. Isso se aplica apenas aos recursos já declarados no manifesto do app.Desative os recursos do jogo que dependem de hardware e recursos de software sem suporte a PCs. Se você está usando o mesmo APK que o jogo para dispositivos móveis, desative esses recursos condicionalmente para PCs.
Desative no seu jogo as solicitações de permissões do Android sem suporte e os recursos que dependem delas. Se você está usando o mesmo APK que o jogo para dispositivos móveis, faça mudanças condicionais para PC para que não seja necessário mudar as permissões declaradas no manifesto.
Para saber mais sobre a compatibilidade do manifesto do app, consulte o guia sobre compatibilidade do manifesto do app do Chromebook.
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
android.hardware.microphone
Para saber mais sobre como remover o recurso android.hardware.wifi
, consulte
Monitorar o status da conectividade e a medição da conexão.
Para ver uma lista completa dos recursos sem suporte, consulte o
guia de 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.microphone
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 no PC. Por isso, o jogo precisa desativá-las para o Google Play Games:
android.permission.FOREGROUND_SERVICE
android.permission.INSTALL_PACKAGES
android.permission.READ_PHONE_STATE
android.permission.USE_CREDENTIALS
android.permission.CAMERA
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.WRITE_SETTINGS
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SYSTEM_ALERT_WINDOW
android.permission.READ_CONTACTS
com.google.android.gms.permission.ACTIVITY_RECOGNITION
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.GET_ACCOUNTS
android.permission.RECORD_AUDIO
android.permission.RECEIVE_BOOT_COMPLETED
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. Essa é experiência ideal para os jogadores na maioria das situações.
Para facilitar a portabilidade, o Google Play Games oferece suporte à
WebView. Como
ela é aberta no ambiente do Google Play Games, não oferece a experiência do usuário típica
do navegador para computador. 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 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 vai funcionar quando o Google Play Games for fechado.
Módulos com suporte
No momento, estes módulos estão disponíveis e têm suporte no Google Play Games. O suporte a outros recursos está em desenvolvimento:
- Login do Google (não incluindo a transferência de conta, o Smart Lock, a verificação por SMS e o cálculo da complexidade da senha).
- Cronet
- Serviços relacionados a jogos do Google Play
- Tarefas
- Visão
- Google Pay
Suporte limitado
Os módulos abaixo são parcialmente funcionais. Faremos o possível para oferecer suporte a eles no Google Play Games, mas não podemos garantir a funcionalidade.
- Google AdMob (anúncios para dispositivos móveis, ID do anúncio)
- Google Cloud Messaging (descontinuado, use o Firebase Cloud Messaging)
- Firebase Authentication (a autenticação por número de telefone não funciona)
- Firebase Cloud Messaging
- Bibliotecas comuns do Firebase
- Firebase ML
- Configuração remota do Firebase
- Firebase Analytics
Sem suporte
Estes módulos não têm suporte no Google Play Games, mas não causam problemas quando falham.
- Google Analytics (descontinuado, use o Firebase Analytics)
- Google Cast
- API Awareness
- Drive (descontinuado, será removido em breve)
- FIDO
- Firebase Realtime Database
- Firestore
- Teste A/B do Firebase
- Google Fit
- API Address
- API Instant Apps
- API Location
- SDK do Google Maps
- Compartilhar por proximidade
- Panorama
- Places
- Google+
- SafetyNet: descontinuado, preencha o formulário de interesse para participar da API Play Integrity que ainda será lançada
- Gerenciador de tags do Google
- Wear OS
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.
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:
- Como ativar o armazenamento com escopo
- Práticas recomendadas para gerenciar arquivos que não são de mídia
Desativar anúncios para dispositivos móveis na versão do jogo para PC
Exigido pelo processo de lançamento
Para otimizar seu jogo para PC, desative os anúncios para dispositivos móveis, que são incompatíveis com computadores e laptops. Isso inclui todos os blocos de anúncios fornecidos pelos SDKs de anúncios para dispositivos móveis. Você não precisa fazer mudanças nos anúncios da versão para dispositivos móveis do jogo. Recomendamos o uso de flags de recursos para limitar as mudanças apenas à versão do jogo para PC. Você ainda pode manter os anúncios para dispositivos móveis no Chrome OS.
Para remover anúncios para dispositivos móveis, siga estas etapas:
Desative todos os blocos de anúncios para dispositivos móveis, incluindo banners, intersticiais e anúncios premiados.
Desative os recursos do jogo que dependem de anúncios premiados Por exemplo, um recurso que permite aos usuários assistir a um anúncio em vídeo para ganhar moedas do jogo pode ser desativado ou removido completamente.
Analytics
Os produtos legados do Google Analytics não funcionam no Google Play Games. 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.