Prise en charge des services de jeux Google Play

Tous les jeux instantanés doivent être compatibles avec la connexion automatique à l'aide des services de jeux Google Play. Utilisez les services de jeux Google Play pour fournir un ID de joueur cohérent que vous pouvez utiliser pour restaurer la progression enregistrée à partir du cloud.

Impact de la taille de la bibliothèque

L'impact sur la taille de la bibliothèque des services de jeux Google Play varie selon que le moteur de jeu s'exécute sur Unity, Java ou natif.

Java

L'impact sur la taille est minime, car ProGuard est informé des classes utilisées.

Unity

Vous pouvez intégrer la fonctionnalité de sauvegarde de jeux à votre jeu Unity à l'aide du plug-in officiel des services de jeux Google Play. L'impact sur la taille est d'environ 200 Ko si vous utilisez les recommandations ProGuard.

Natif

Vous pouvez intégrer la fonctionnalité de sauvegarde de jeu à un jeu basé sur le NDK Android à l'aide du SDK des services de jeux Play natifs.

Utilisez la configuration générale de ProGuard ci-dessous pour supprimer la plupart du code Java inclus dans la bibliothèque. Vous pouvez implémenter la connexion aux services de jeux Play et l'enregistrement de jeu avec cette configuration, tout en n'ajoutant que 250 Ko environ à l'APK.

# The native PGS library wraps the Java PGS SDK using reflection.
-dontobfuscate
-keeppackagenames

# Needed for callbacks.
-keepclasseswithmembernames,includedescriptorclasses class * {
    native <methods>;
}

# Needed for helper libraries.
-keep class com.google.example.games.juihelper.** {
  public protected *;
}
-keep class com.sample.helper.** {
  public protected *;
}

# Needed for GoogleApiClient and auth stuff.
-keep class com.google.android.gms.common.api.** {
  public protected *;
}

# Keep all of the "nearby" library, which is needed by the native PGS library
# at runtime (though deprecated).
-keep class com.google.android.gms.nearby.** {
  public protected *;
}

# Keep all of the public PGS APIs.
-keep class com.google.android.gms.games.** {
  public protected *;
}