Android oyunlarında skor tabloları

Google Sign-in API'sinin desteğinin sonlandırılmasının ardından, 2026'da Games v1 SDK'sını kaldırıyoruz. Şubat 2025'ten sonra, games v1 SDK'sına yeni entegre edilmiş oyunları Google Play'de yayınlayamazsınız. Bunun yerine games v2 SDK'sını kullanmanızı öneririz.
Önceki oyunların v1 entegrasyonlarına sahip mevcut oyunlar birkaç yıl boyunca çalışmaya devam edecek olsa da Haziran 2025'ten itibaren v2'ye geçiş yapmanızı öneririz.
Bu kılavuz, Play Games Hizmetleri v1 SDK'sının kullanımıyla ilgilidir. En son SDK sürümü hakkında bilgi edinmek için v2 dokümanlarına bakın.

Bu kılavuzda, görsel skor tabloları oluşturmak, bir oyuncunun skorunu kaydetmek ve bu skoru oyuncunun önceki oyun oturumlarındaki skoruyla karşılaştırmak için Android uygulamalarında skor tablosu API'lerinin nasıl kullanılacağı gösterilmektedir. API'leri com.google.android.gms.games ve com.google.android.gms.games.leaderboards paketlerinde bulabilirsiniz.

Başlamadan önce

Henüz yapmadıysanız puan tablosu oyun kavramlarını incelemeniz faydalı olabilir.

Liderlik tablosu API'lerini kullanarak kodlamaya başlamadan önce:

Liderlik tabloları istemcisini alma

Skor tabloları API'sini kullanmaya başlamak için oyununuzun önce bir LeaderboardsClient nesnesi alması gerekir. Bunu, Games.getLeadeboardsClient() yöntemini çağırıp etkinliği ve mevcut oynatıcı için GoogleSignInAccount öğesini ileterek yapabilirsiniz. Oyuncu hesabı bilgilerini nasıl alacağınızı öğrenmek için Android oyunlarında oturum açma başlıklı makaleyi inceleyin.

Oyuncunun puanını güncelleme

Oyuncunun puanı değiştiğinde (örneğin, oyuncu oyunu tamamladığında) oyununuz, LeaderboardsClient.submitScore() işlevini çağırarak ve liderlik tablosu kimliğini ve ham puan değerini ileterek oyuncunun liderlik tablosundaki puanını güncelleyebilir.

Aşağıdaki kod snippet'inde, uygulamanızın oyuncunun puanını nasıl güncelleyebileceği gösterilmektedir:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

Oyununuzun skor tablolarına kaynak kimliğine göre referans verebilmesi için skor tablosu kimliğini strings.xml dosyanızda tanımlamak iyi bir uygulamadır. Oyuncu puanlarını güncellemek ve yüklemek için çağrı yaparken API kotanızı aşmamak üzere aşağıdaki en iyi uygulamalardan da yararlanın.

Skor tablosu görüntüleme

Skor tablosunu görüntülemek için LeaderboardsClient.getLeaderboardIntent() çağrısı yaparak varsayılan skor tablosu kullanıcı arayüzünü oluşturmak üzere bir Intent alın. Ardından oyununuz startActivityForResult çağrısını yaparak kullanıcı arayüzünü açabilir.

Aşağıdaki kod snippet'inde, uygulamanızın oyuncunun puanını nasıl güncelleyebileceği gösterilmektedir. Kod snippet'inde RC_LEADERBOARD_UI, istek kodu için rastgele bir tam sayıdır.

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}

Sonuç döndürülmese bile API'nin arayan paketin kimliğini alabilmesi için startActivityForResult kullanmamız gerektiğini unutmayın. Varsayılan lider tablosu kullanıcı arayüzü örneği aşağıda gösterilmiştir.