Google 로그인 API가 지원 중단됨에 따라 2026년에 게임 v1 SDK가 삭제됩니다. 2025년 2월 이후에는 게임 v1 SDK와 새로 통합된 타이틀을 Google Play에 게시할 수 없습니다. 대신 games v2 SDK를 사용하는 것이 좋습니다.
이전 게임 v1 통합이 적용된 기존 타이틀은 몇 년 동안 계속 작동하지만 2025년 6월부터는 v2로 이전하는 것이 좋습니다.
이 가이드는 Play 게임즈 서비스 v1 SDK 사용에 관한 가이드입니다. 최신 SDK 버전에 관한 자세한 내용은 v2 문서를 참고하세요.
이 가이드에서는 Android 애플리케이션에서 업적 API를 사용하여 게임에서 업적을 달성하고 표시하는 방법을 보여줍니다. API는 com.google.android.gms.games
및 com.google.android.gms.games.achievements
패키지에서 찾을 수 있습니다.
시작하기 전에
아직 검토하지 않았다면 업적 게임 개념을 검토하는 것이 좋습니다.
업적 API를 사용하여 코딩을 시작하기 전에 다음을 수행합니다.
- Google Play 서비스 SDK 설정 가이드에 따라, Google Play 게임즈 서비스를 사용하도록 앱을 설치하고 설정합니다.
- Google Play Console 가이드의 안내에 따라 게임에서 달성하거나 표시할 업적을 정의합니다.
- Android 샘플 페이지에서 업적 코드 샘플을 다운로드하여 검토합니다.
- 품질 체크리스트에 설명된 권장 사항을 숙지합니다.
업적 클라이언트 가져오기
업적 API를 사용하려면 먼저 게임에 AchievementsClient
객체를 확보해야 합니다. 이렇게 하려면 Games.getAchievementClient()
메서드를 호출하고 활동과 현재 플레이어의 GoogleSignInAccount
를 전달하면 됩니다. 플레이어 계정 정보를 검색하는 방법을 알아보려면 Android 게임에서 로그인을 참고하세요.
업적 달성
업적을 달성하려면 AchievementsClient.unlock()
메서드를 호출하고 업적 ID를 전달합니다.
다음 코드 스니펫은 앱에서 업적이 달성되는 방법을 보여줍니다.
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .unlock(getString(R.string.my_achievement_id));
업적이 증분 유형 (즉, 달성하려면 여러 단계가 필요함)인 경우 AchievementsClient.increment()
를 대신 호출합니다.
다음 코드 스니펫은 앱에서 플레이어의 업적을 증분하는 방법을 보여줍니다.
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(getString(R.string.my_achievement_id), 1);
업적을 달성하기 위해 추가 코드를 작성할 필요가 없습니다. Google Play 게임즈 서비스에서는 필요한 단계 수에 도달하면 자동으로 업적이 달성됩니다.
게임에 리소스 ID별로 업적이 참조될 수 있도록 strings.xml
파일에서 업적 ID를 정의하는 것이 좋습니다. 업적을 업데이트하고 로드하기 위해 호출을 실행한 경우 API 할당량을 초과하지 않도록 관련 권장사항도 따라야 합니다.
업적 표시
플레이어의 업적을 표시하려면 AchievementsClient.getAchievementsIntent()
를 호출하여 Intent
를 가져와 기본 업적 사용자 인터페이스를 만듭니다. 그러면 게임이 startActivityForResult
를 호출하여 UI를 불러올 수 있게 됩니다.
다음 코드 스니펫은 앱에서 기본 업적 사용자 인터페이스를 표시할 수 있는 방법을 보여줍니다.
스니펫에서 RC_ACHIEVEMENT_UI
는 게임에 요청 코드로 사용되는 임의의 정수입니다.
private static final int RC_ACHIEVEMENT_UI = 9003; private void showAchievements() { Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .getAchievementsIntent() .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_ACHIEVEMENT_UI); } }); }
기본 업적 UI의 예가 아래에 나와 있습니다.
![](https://developer.android.com/static/images/games/pgs/achievements_android.png?authuser=0&hl=ko)