Google Play 게임즈 서비스 품질 체크리스트

게임 품질은 설치 수, 플레이어 평점 및 리뷰, 참여도, 플레이어 유지율의 측면에서 게임의 장기적 성공에 영향을 미칩니다. 게임을 게시하기 전에 매력적인 기능과 직관적이고 멋지게 디자인된 UI를 통해 게임 플레이어의 기본적인 기대치를 충족하는지 확인해야 합니다.

이 문서에서는 게임의 성공에 큰 영향을 미치는 게임 개발의 주요 측면을 안내합니다. 품질, 기능 집합, 사용자 인터페이스 (UI)에 중점을 둡니다.

이 문서에서는 각 포커스 영역에 대해 다음을 제공합니다.

  • 최소 요구사항을 자세히 설명하는 체크리스트
  • 게임을 개선하기 위한 권장사항

다음 권장사항을 최대한 따라 고품질 게임을 게시하고 플레이어에게 최고의 제품을 제공하세요.

1. 플랫폼 인증

다음 체크리스트에 포함된 작업은 게임에서 플레이어 인증 기능을 구현하는 데 적용됩니다. 플랫폼 인증에서 인증이 어떻게 작동하고 인증을 어떻게 구현해야 하는지 자세히 알아보세요. 모바일 게임에서 인증을 구현하는 방법과 관련된 코드 예제는 Android의 플랫폼 인증을 참고하세요.

ID 중요도 설명
1.1 필수 Google Play 게임즈 서비스로 플레이어를 인증합니다.
1.1.1. Google Play 게임즈 서비스 SDK를 초기화하고 플레이어가 인증되었는지 확인합니다. 플레이어가 자동으로 인증되지 않으면 수동 로그인 옵션을 제공합니다.

자동 인증을 사용하면 플레이어가 빠르게 인증되고 Google Play 게임즈 서비스에서 제공하는 모든 기능을 사용하도록 승인됩니다.

사용자가 거부하면 나중에 인증할 수 있는 기회가 게임에서 제공되어야 합니다 (예: 게임 메뉴의 버튼 사용 등). 로그인 버튼은 플레이어가 쉽게 찾을 수 있어야 합니다. 예를 들어, 로그인 버튼은 기본 화면에서 액세스할 수 있거나 설정 화면에 있어야 합니다. 이 버튼은 게임 메뉴에서 몇 단계를 거쳐야만 찾을 수 있도록 숨겨져 있으면 안 됩니다.

1.2 권장사항 Google 브랜드 가이드라인을 준수합니다.

플레이어에게 매력적이고 일관된 포괄적인 환경을 제공하려면 Google Play 게임즈 서비스 브랜드 가이드라인을 따라 구현하세요.

1.3 권장사항 플레이어에게 인증 상태라는 사실을 알립니다.

인증된 플레이어를 대신하여 게임에서 어떤 작업을 수행하는 경우, 이에 관해 적절한 알림 또는 힌트를 표시합니다. 예를 들어, 인증된 플레이어가 레벨을 완료하면 다음과 같은 메시지를 통해 플레이어의 점수와 업적이 자동으로 업로드된다는 사실을 알릴 수 있습니다. '현재 Google 계정을 통해 인증되어 있습니다. 게임 내 업적과 점수는 자동으로 저장됩니다.'

1.4 필수사항 Play 게임즈 서비스 ID를 사용하여 플레이어의 진행 상황을 백업합니다.

플레이어가 기기를 전환하거나 재설정할 때 또는 여러 기기에서 플레이할 때 플레이어의 진행 상황이 손실되지 않도록 하려면 진행 상황을 클라우드 저장 솔루션에 백업하고, 자체 백엔드 게임 서버를 사용하는 경우에는 Play 게임즈 서비스 ID를 안전하게 키로 사용합니다. 플레이어가 Play 게임즈 서비스 ID로 인증한 경우 관련 계정에 진행 상황이 있는지 확인합니다. 진행 상황이 있는 경우 플레이어가 중단한 부분부터 다시 시작할 수 있도록 허용합니다. 자체 클라우드 저장 솔루션 또는 Play 게임 서비스의 저장된 게임을 사용할 수 있습니다.

사용자가 인증되지 않은 경우 플레이어의 진행 상황을 로컬에 유지하도록 시도한 다음 플레이어가 마침내 인증할 때 진행 상황을 동기화합니다. 이렇게 하면 플레이어가 게임 인증을 연기해도 진행 상황이 손실되는 일을 방지할 수 있습니다.

2. 업적

다음 체크리스트에 포함된 작업은 게임에서 업적 기능을 구현하는 데 적용됩니다.

ID 중요도 설명
2.1 필수 게임의 전체 기간에 걸쳐 표시되는 업적이 10개 이상이어야 합니다.

공개 상태의 표시되는 업적이 10개 이상 있어야 합니다.

2.2 필수 플레이하는 모든 사용자가 1시간 이내에 합리적이고 안정적으로 달성할 수 있는 업적이 4개 이상이어야 합니다.

2.3 필수 모든 업적의 이름과 설명은 고유해야 합니다. 이를 통해 사용자가 업적을 달성하기 위해 무엇을 해야 하는지 명확하게 알 수 있어야 합니다.

2.4 필수 모든 업적에는 고유한 아이콘이 있어야 합니다.

아이콘은 투명한 배경에 512x512 PNG, JPEG 또는 JPG 파일로 만들어야 합니다. 자세한 내용은 아이콘 가이드라인을 참고하세요.

2.5 필수 모든 업적이 달성 가능한지 확인합니다.

플레이어는 개발자가 만든 모든 업적을 획득할 수 있어야 합니다.

2.6 권장사항 단계별 업적을 사용하여 진행 상황을 표시합니다.

단계별 업적은 게임 세션 전반에 걸쳐 누적됩니다.

플레이어의 진행률을 23%로 표시하는 단계별 업적의 예입니다.
플레이어의 진행률을 23%로 표시하는 단계별 업적
2.7 권장사항 게임 전체 기간에 걸쳐 40개 이상의 업적이 제공되어야 합니다. 여기에는 놀라움과 즐거움을 선사하고, 주요 지점을 인정하고, 플레이어 진행 상황을 포착하는 업적이 포함됩니다.

게임 수명 기간에 걸쳐 모든 상태의 업적이 40개 이상 있어야 합니다.

2.9 권장사항 놀라움과 기쁨을 선사하기 위해 숨겨진 업적을 사용합니다.

숨김 업적의 경우 업적에 관한 세부정보가 플레이어에게 표시되지 않습니다.

2.10 권장사항 게임에 새 레벨이나 에피소드가 추가되면 새 업적을 추가합니다.

자세한 내용은 포인트 및 경험치를 참고하세요.

2.11 권장사항 업적 점수를 균형 있게 매깁니다.

업적 점수는 업적을 달성하는 데 필요한 시간이나 기술의 정도에 비례해야 합니다.

2.12 권장사항 업적의 난이도를 다양하게 설계합니다.

플레이어가 캐주얼 게임을 플레이하여 얻을 수 있는 쉬운 업적 몇 개, 더 많은 기술이나 노력이 필요한 중간 난이도의 업적 여러 개, 가장 게임을 열심히 플레이하는 플레이어를 위한 매우 어려운 업적 1, 2개 정도를 준비합니다.

예를 들면, 다음의 스크린샷에서는 플레이어들이 게임을 계속 플레이하도록 동기를 부여하고 팬층을 유지하기 위한 어려운 난이도의 업적을 확인할 수 있습니다.

보석 5,000개 획득을 요구하는, 달성하기 어려운 업적
보석 5,000개 획득을 요구하는, 달성하기 어려운 업적
2.13 권장사항 업적을 게임 초반에 배치하지 않습니다.

게임플레이의 초반 5분 이내에 2개 이상의 업적을 제공하지 마세요. 게임을 처음 접하는 플레이어가 게임에 관심을 갖게 될 정도로 열심히 플레이하지 않게 되기 때문입니다.

의도치 않게 게임플레이 중 너무 초반에 업적이 부여되도록 만들지 마세요. 예를 들어 '피해를 입지 않고 레벨 완료'와 같이 게임 초반에 쉽게 얻게 될 가능성이 높은 업적은 피해야 합니다.

2.14 권장사항 매력적인 게임 내 활동과 관련된 업적을 만듭니다.

업적 달성을 유도할 수 있도록 게임에 한층 매력을 더하고 다시 플레이하고 싶어지게 만드는 측정항목을 선택합니다. 예를 들어 '죽은 좀비 숫자''캐릭터가 걸은 거리'보다 좀 더 흥미로운 측정항목입니다.

2.15 권장사항 색이 있는 업적 아이콘을 사용합니다.

Play 게임즈 서비스에서는 그레이 스케일 버전의 업적 아이콘을 사용하여 업적 달성 여부를 표시합니다. 모든 업적 아이콘에 검은색(또는 흰색)만을 사용해야 하는 경우 색이 있는 배경에 아이콘을 표시하세요.

2.16 권장사항 숨겨진 업적 사용을 최소화합니다.

숨겨진 업적은 게임 내 스포일러를 피하기 위해서만 사용해야 하며 흔하게 사용해서는 안 됩니다.

2.17 권장사항 우연히 얻을 가능성이 높은 업적은 피합니다.

'보물상자 100개 찾기''보물상자에서 나올 확률이 1%인 아이템 찾기' 보다 나은 업적입니다.

2.18 권장사항 '업적 사냥꾼'의 입장에서 생각합니다.

개발자가 만드는 모든 업적을 얻으려고 시도하는 플레이어도 있습니다. 이러한 플레이어를 만족시킬 수 있는 업적을 제공하세요. 플레이어가 제어할 수 없는 요소에 너무 많이 의존하거나 플레이어가 게임 내에서 어떤 결정을 내린 후에는 얻을 수 없는 업적을 만들지 마세요.

고품질 업적을 설계하는 데 도움이 되는 몇 가지 예는 다음과 같습니다.

좋은 예

다음 스크린샷은 업적의 좋은 예시를 보여줍니다. 고유한 이름, 아이콘, 설명이 있는 업적 설명에는 업적을 달성하기 위해 해야 하는 일이 나와 있습니다.

고유한 이름, 아이콘, 설명이 있는 좋은 업적
고유한 이름, 아이콘, 설명이 있는 좋은 업적 (확대하려면 클릭)

나쁜 예

다음 스크린샷은 잘못된 업적의 예를 보여줍니다.

이름, 아이콘, 설명이 중복된 잘못된 업적
이름, 아이콘, 설명이 중복된 잘못된 업적 (확대하려면 클릭)

3. 리더보드

다음 체크리스트에 포함된 작업은 게임에서 리더보드 기능을 구현하는 데 적용됩니다.

ID 중요도 설명
3.1 권장사항 기본 메뉴뿐만 아니라 핵심 전환 후에도 리더보드를 표시합니다.

리더보드는 게임이 로드되고 나서 간편하게 액세스할 수 있어야 합니다. 또한 레벨 끝부분에 도달하거나 플레이어가 죽었을 때와 같이 게임 내에서 중요한 전환이 발생했을 때, 플레이어가 즉시 관련 리더보드로 연결되는 링크를 볼 수 있어야 합니다.

3.2 권장사항 제출할 수 있는 점수의 상한선을 정의합니다.

가능하다면 허위가 분명한 점수가 삭제될 수 있도록 리더보드를 정의할 때 상한선을 추가하세요.

3.3 권장사항 맞춤 아이콘을 사용합니다.

정의하는 리더보드별로 맞춤 아이콘을 만듭니다. 게임 아이콘을 그대로 사용하지 마세요. 그러면 Google Play 게임 앱에서 제대로 표시되지 않습니다.

3.4 권장사항 점수 제출 빈도를 적절하게 유지합니다.

레벨 끝부분에 도달하거나 플레이어의 게임 캐릭터가 죽었을 때와 같이 게임에서 중요한 전환이 발생했을 때 점수를 제출합니다. 'Endless Runner' 유형의 게임과 같이 중요한 전환이 발생하지 않는 게임이라면 점수를 얼마나 자주 제출할지를 적절히 판단하시기 바랍니다. 점수를 계속해서 제출하거나 지나치게 자주 제출해서는 안 됩니다.

3.5 권장사항 스코어 태그를 활용합니다.

스코어 태그는 점수를 제출할 때 함께 보낼 수 있는 추가 데이터입니다. 예를 들어 플레이어가 제출한 점수가 유효한지 확인하는 플래그로 스코어 태그를 구현할 수 있습니다.

맞춤 리더보드에서도 이 태그 데이터를 읽을 수 있습니다. 예를 들어, 스코어 태그가 플레이어의 게임플레이가 포함된 YouTube 동영상의 ID로 구성된 경우, 리더보드 내에서 이 동영상을 볼 수 있는 링크를 만들 수 있습니다.

3.6 권장사항 독창적인 리더보드 UI를 디자인합니다.

리소스가 있는 경우, 맞춤 리더보드 뷰에 소셜 리더보드 데이터를 표시하세요. 일반적으로 소셜 리더보드가 공개 리더보드보다 사용자의 참여를 유도하는 데 더욱 효과적입니다. 먼저 소셜 리더보드에 포함된 항목이 있는지 확인하세요. 그렇지 않다면 공개 리더보드를 활용하세요.

3.7 권장사항 다른 플레이어와 비교한 실적을 보여 줍니다.

리더보드 API는 점수 창 표시 기능(예: 플레이어의 순위 위아래로 10위 정도까지 표시)을 지원합니다. 맞춤 뷰는 사용자의 참여를 유도하는 강력한 방법입니다. 또한 레벨의 끝에 도달하거나 플레이어의 게임 캐릭터가 죽었을 때와 같은 게임 내 중요한 전환이 발생했을 때 맞춤 뷰를 바로 표시할 수도 있습니다. 플레이어가 자신의 순위 정보를 확인하기 위해 불필요한 클릭을 하지 않도록 조정하세요.

4. 친구

다음 체크리스트에 포함된 작업은 게임에서 친구 서비스를 구현하는 데 적용됩니다.

ID 중요도 설명
4.1 필수사항 플레이어가 목록에 표시되면 Play 게임즈 프로필이 있는 사용자 옆에 Play 게임즈 서비스 아이콘을 표시합니다.

이 목록은 기존 친구 목록, 최근 재생한 친구 목록 또는 그 외 친구 목록일 수 있습니다.

4.1.1. Play 게임즈 서비스 아이콘은 클릭 가능해야 합니다.
사용자가 이 아이콘을 누르면 게임에서 getCompareProfileIntent() 또는 getCompareProfileIntentWithAlternativeNameHints()를 호출하여 사용자가 다른 플레이어와 프로필을 비교해 볼 수 있는 UI를 표시합니다.
4.1.2. 인게임 플레이어 이름을 맞춤설정할 수 있는 플레이어 프로필 및 친구 초대 지원
플레이어가 게임 내에서 자신의 Play 게임즈 프로필과 다른 이름을 설정하여 사용하는 경우, getCompareProfileIntentWithAlternativeNameHints()를 사용하여 현재 플레이어와 상대방 플레이어에게 인게임 대체 이름을 제공합니다. 그러면 프로필 조회 환경과 프로필에서 전송된 친구 초대에 대체 이름이 사용됩니다. 영구적인 전역 플레이어 이름만 값으로 전달하고 임의의 사용자 콘텐츠는 전달하지 않습니다. 이 요구사항을 따르면 게임 내에서 전송된 친구 초대를 통해 두 플레이어의 환경이 설정됩니다.
  • 받는 사람은 게임 이름과 함께 초대를 보낸 사람의 인게임 이름을 보게 됩니다.
  • 보낸 사람이 친구 상태를 확인하면 받는 사람의 인게임 이름과 초대를 보낸 게임이 표시됩니다.
4.2 권장사항 서로 다른 아이콘을 사용하여 이미 친구인 Play 게임즈 사용자를 표시하고 아직 Play 게임즈 친구는 아니지만 Play 게임즈로 인증한 사용자를 표시합니다. Play 게임즈 사용자에게는 두 개의 아이콘을 사용합니다. 즉, '친구'를 나타내는 아이콘 하나와 '친구 아님'을 나타내기 위한(또는 우정 상태를 알 수 없는 경우) 아이콘 하나를 사용합니다.
친구 아이콘
침구 아님 아이콘
4.3 권장사항 친구 목록이 최신 상태가 되도록 인증할 때마다 loadFriends()를 호출하고 친구 목록을 표시합니다. 플레이어에게 업데이트된 목록이 표시되도록 합니다.
4.4 권장사항 게임에 이미 인게임 친구가 포함되어 있다면 친구 서비스를 사용하여 Play 게임즈 친구를 추가하여 친구 목록을 늘립니다. 플레이어가 인게임 친구 목록에 있고 동시에 Play 게임즈 친구인 경우 '친구' 아이콘을 표시합니다.
4.5 권장사항 플레이어가 친구 목록에 대한 액세스 요청을 거부한 경우 그 사용자가 액세스를 원한다는 동작(예: **Play 게임즈 친구 가져오기** 버튼 누르기)을 취하지 않는 한 액세스를 요청하는 대화상자를 다시 표시하지 않습니다.
4.6 권장사항 플레이어가 친구 목록에 대한 액세스를 거부한 경우 나중에 친구 목록에 액세스할 수 있는 방법(예: **Play 게임즈 친구 가져오기** 버튼 누르기)을 지정합니다.
4.7 권장사항 백엔드 서버에서 플레이어 ID나 친구 목록을 사용하는 경우 ID 또는 목록에 안전하게 액세스해야 합니다. 또한 이전의 게임과 플레이어의 경우 플레이어용 Android SDK에서 반환되는 플레이어 ID는 다른 플레이어가 동일한 게임에서 그 플레이어를 볼 때 보게 되는 ID와 다를 수 있습니다. 이는 친구 목록을 사용할 때 특히 관련 있습니다. 그러나 REST API 내에서 반환되는 player_id는 항상 일관적이며 항상 다른 플레이어에게 표시되는 ID입니다.

5. 할당량 및 비율 제한

다음 체크리스트에 포함된 작업은 게임에서 할당량 및 비율 한도를 관리하는 데 적용됩니다. 게임의 할당량을 관리하고 비율 한도 초과를 감지하는 방법을 알아보려면 할당량 및 비율 한도 관리를 참조하세요.

ID 중요도 설명
5.1 권장사항 클라이언트 라이브러리를 사용합니다.

모바일 클라이언트 라이브러리는 개발자가 서비스에 보내는 호출을 줄이기 위해 여러 가지 전략을 사용합니다. 예를 들어, 업적 및 리더보드 데이터가 캐시되어 서비스가 여러 차례 호출을 보내지 않아도 플레이어가 원할 때마다 자신의 업적을 확인할 수 있습니다.

Android 클라이언트 라이브러리는 플레이어의 점수가 최근 제출한 점수보다 좋지 않은 경우 점수를 서버에 전송하지 않습니다. 또한 비율 한도에 도달했음이 감지되면 Android 라이브러리가 높은 빈도의 업적 상승 호출을 자동으로 통합합니다.

5.2 권장사항 높은 빈도의 단계별 업적 호출을 통합합니다.

개발하고 있는 격투 게임에 '펀치 5,000번 날리기'라는 업적이 있다면 플레이어가 펀치를 날릴 때마다 업적 상승 호출을 보내지 마세요. 라운드가 종료될 때까지 기다린 다음 increment(xxx) 호출(xxx는 그 라운드에서 펀치를 날린 총 횟수)을 한 번 전송하거나, 펀치를 50번 날릴 때까지 기다렸다가 increment(50) 호출을 한 번 전송합니다.

5.3 권장사항 사용량을 파악합니다.

Google Play 게임즈 서비스에 보내는 호출 횟수를 파악합니다. 비율 한도에 걸리지 않더라도 호출을 자주 보내면 네트워크 트래픽이 증가하고 기기 배터리가 빨리 소모될 수 있습니다. 잦은 호출을 피하려면 다음 방법을 사용하세요.

  • 저장된 게임을 실행할 때 버튼을 클릭할 때마다가 아니라 몇 분마다 한 번씩 호출을 보냅니다.
  • 플레이어의 게임이 끝날 때까지 기다린 후에 최고점수를 제출합니다.
  • Google Cloud Platform의 프로젝트 대시보드에서 앱의 일일 할당량을 검토합니다.

6. 저장된 게임

다음 체크리스트에 포함된 작업은 게임에서 저장된 게임 기능을 구현하는 데 적용됩니다.

ID 중요도 설명
6.1 필수사항 메타데이터를 추가하여 저장된 게임에 관한 추가 컨텍스트를 제공합니다.

저장된 게임을 커밋하는 경우 최소한 다음의 메타데이터를 포함해야 합니다.

  • 표지 이미지 - 게임 진행 상황을 보여 주고 플레이어에게 마지막으로 플레이한 부분을 상기시켜 주는 스크린샷입니다.
  • 설명 - 표지 이미지에 관한 추가적인 컨텍스트를 제공하는 간단한 설명입니다.
  • 타임스탬프 - 플레이어가 이 저장된 게임을 얼마나 오랫동안 플레이했는지 나타냅니다.
6.2 필수사항 플레이어가 저장된 게임을 로드할 수 있게 합니다.

플레이어가 Play 게임즈 앱이나 기본 저장된 게임 선택 UI에서 저장된 게임을 선택하면 해당하는 게임을 정확히 로드합니다.