Розробка системи досягнень Google Play Games
Google Play Games Services надає готову інфраструктуру для досягнень (achievements), таблиць лідерів (leaderboards) та збереження в хмарі. Досягнення — мабуть, найпростіша інтеграція в цьому стеку: Google бере на себе зберігання, UI та синхронізацію між пристроями.
Налаштування в Play Console
Перед написанням коду — налаштування в Google Play Console → Play Games Services → Setup and Management. Там створюються досягнення з ID, значками, описами та типами (стандартне або інкрементальне з кількістю кроків). ID досягнень виглядають як CgkI... — рядки з Base64, їх потрібно скопіювати до res/values/games_ids.xml через кнопку «Get resources» в Console.
Додаток пов'язується з Play Games через OAuth. У AndroidManifest.xml потрібна <meta-data> з com.google.android.gms.games.APP_ID.
Код розблокування досягнень
Залежність: com.google.android.gms:play-services-games-v2:19.0.0 (Play Games SDK v2, актуальна версія без legacy PendingResult API).
val gamesSignInClient = PlayGames.getGamesSignInClient(activity)
gamesSignInClient.signIn().addOnCompleteListener { task ->
if (task.isSuccessful) {
val achievementsClient = PlayGames.getAchievementsClient(activity)
// Розблокувати досягнення
achievementsClient.unlock(getString(R.string.achievement_first_win))
// Інкрементальне досягнення (кроки)
achievementsClient.increment(getString(R.string.achievement_veteran), 1)
}
}
unlock() можна викликати багато разів — повторна розблокування вже виконаного досягнення ігнорується. increment() для інкрементальних досягнень додає кроки; коли накопиться потрібна кількість — досягнення розблокується автоматично.
Показ стандартного UI досягнень:
achievementsClient.achievementsIntent.addOnSuccessListener { intent ->
startActivityForResult(intent, RC_ACHIEVEMENT_UI)
}
Google відображає красивий список з прогресом та значками — писати власний UI не потрібно.
Що потрібно врахувати
SDK v2 вимагає, щоб користувач був авторизований через Play Games перед будь-якими викликами. Якщо користувач не авторизований — досягнення не зараховуються. Потрібна логіка: спроба автоматичного входу при запуску, graceful degradation якщо Play Games недоступні (відсутні на деяких пристроях без Google Services).
Тестування: в Play Console можна скинути досягнення для тест-аккаунту через «Reset achievements». Без цього повторне тестування розблокування неможливе.
Налаштування системи досягнень з 5–15 досягненнями: 2–3 дні включаючи налаштування в Play Console, інтеграцію SDK та тестування. Вартість розраховується індивідуально.







