Compatibilidad con los Servicios de juego de Google Play

Todos los juegos instantáneos deben admitir el acceso automático mediante los Servicios de juego de Google Play. Usa los Servicios de juego de Google Play para proporcionar un ID de jugador coherente que puedas usar para restablecer el progreso guardado desde la nube.

Impacto del tamaño de la biblioteca

El impacto del tamaño de la biblioteca de Servicios de juego de Google Play depende de si el motor de juegos se ejecuta en Unity, Java o Native.

Java

El impacto del tamaño es mínimo porque ProGuard se informa sobre las clases que se usan.

Unity

Puedes integrar la función de guardar juegos en tu juego de Unity con el complemento oficial de los Servicios de juego de Google Play. El impacto del tamaño es de aproximadamente 200 KB si usas las recomendaciones de ProGuard.

Nativo

Puedes integrar la función de guardar juegos con un juego compilado en el NDK de Android mediante el SDK nativo de los Servicios de juego de Play.

Usa la configuración general de ProGuard que se muestra a continuación para quitar la mayor parte del código Java que incluye la biblioteca. Con esta configuración, puedes implementar el acceso y el guardado de juegos de los Servicios de juego de Play y agregar solo alrededor de 250 KB al 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 *;
}