게임 품질은 설치 수, 플레이어 평점 및 리뷰, 참여도, 플레이어 유지율의 측면에서 게임의 장기적 성공에 영향을 미칩니다. 게임을 게시하기 전에 매력적인 기능과 직관적이고 멋지게 디자인된 UI를 통해 게임 플레이어의 기본적인 기대치를 충족하는지 확인해야 합니다.
이 문서를 활용하면 게임의 성공에 큰 영향을 미칠 수 있는 품질, 기능 세트, UI와 같은 핵심적인 측면에 집중할 수 있습니다. 각 중점 영역에는 최소 요구사항, 권장사항, 유용한 참고사항으로 구성된 체크리스트가 제시되어 있습니다. 플레이어에게 최고의 제품을 제공하려면 체크리스트의 권장사항을 가능한 한 충실하게 따르시기 바랍니다.
1. 로그인
다음 체크리스트에 포함된 작업은 게임에서 플레이어 로그인 기능을 구현하는 데 적용됩니다. 로그인 개념에서 로그인이 어떻게 작동하고 로그인을 어떻게 구현해야 하는지 자세히 알아보세요. 모바일 게임에서 로그인을 구현하는 방법과 관련된 코드 예제는 Android에서 로그인 구현하기를 참고하세요.
ID | 중요도 | 설명 |
---|---|---|
1.1 | 필수사항 |
Google Play 게임즈 서비스로 플레이어를 로그인합니다.
|
1.2 | 필수 |
로그인 클라이언트를 만들 때 Play 게임스 이외의 범위를 요청하지 마세요. 이렇게 하면 플레이어가 게임에 자동으로 로그인할 수 있습니다. Play 게임즈 이외의 범위를 요청하면 사용자가 대화형 로그인을 사용해야 하기 때문입니다.
이미 Play 게임즈 이외의 범위를 요청하고 있다면
// This is the proper way to do it GoogleSignInOptions signInOption = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN; |
1.3 | 필수사항 |
플레이어가 로그인 상태를 유지할 수 있게 합니다.
플레이어가 게임에 로그인하고 나면 플레이어가 일부러 로그아웃하지 않는 이상 게임이 시작할 때 자동으로 플레이어를 연결합니다. |
1.4 | 필수 |
로그인하는 동안 '연결 중' 팝업을 적절하게 표시합니다.
Android 기기에서는 로그인 과정이 호출될 때마다 Google Play 게임즈의 '연결 중' 팝업을 표시해야 합니다. 이렇게 하려면 다음 예는 로그인 중에 Android 게임에 '연결 중' 팝업이 표시된 다음, Google Play 게임 서비스 로고 애니메이션이 짧게 표시되는 모습을 보여줍니다. |
1.5 | 필수 |
플레이어에게 로그아웃 옵션을 제공합니다.
로그인 후에는 플레이어에게 로그아웃 옵션이 항상 제공되어야 합니다. 앱의 관련 게임 화면 (예: 플레이어 설정 화면)에 로그아웃 버튼을 제공하는 것이 좋습니다. |
1.6 | 권장사항 |
플레이어가 로그인을 거부한 경우 이를 기억합니다.
게임에서 처음으로 로그인 과정이 시작될 때 플레이어가 로그인을 거부한 경우 (예: 로그인 UI에서 취소를 클릭)에도 플레이어가 게임플레이를 할 수 있도록 허용해야 합니다. 플레이어가 게임을 다시 실행할 때 대화형 로그인 과정을 자동으로 시작하지 마세요. 이러한 플레이어는 설정 시스템에 있는 로그인 버튼을 사용하여 나중에 로그인할 수 있습니다. 이렇게 하면 플레이어가 게임을 시작할 때마다 로그인을 거부하지 않아도 됩니다. 로그인 상태가 필요한 게임플레이 기능에 플레이어가 액세스하려고 하는 경우 (예: 리더보드에 점수 제출)는 예외입니다. 이 경우 게임플레이를 계속 진행하기 전에 플레이어에게 로그인하라는 메시지를 표시하세요. |
1.7 | 권장사항 |
로그인한 플레이어 수를 최대화합니다.
Google Play 게임 서비스에 로그인되어 있는 플레이어가 많을수록 게임을 플레이하면서 힘을 합치거나 경쟁할 기회가 늘어나기 때문에 플레이어에게 유리합니다. Google Play 게임즈 서비스에 로그인한 플레이어의 수를 최대화하려면 위에서 설명한 대로 플레이어에게 로그인하라는 메시지를 자동으로 표시하는 것이 좋습니다. 또는 다음 시점 중 하나에 플레이어를 최대한 빨리 로그인 과정으로 유도하세요. 아래 시점은 가장 추천되는 순으로 나열되어 있습니다.
|
1.8 | 참고사항 |
Google 브랜드 가이드라인을 준수합니다.
플레이어에게 매력적이고 일관된 포괄적인 환경을 제공하려면 Google Play 게임즈 서비스 브랜드 가이드라인을 따라 구현하세요. |
1.9 | 참고사항 |
플레이어에게 로그인 상태라는 사실을 알립니다.
로그인된 플레이어를 대신하여 게임에서 어떤 작업을 수행하는 경우, 이에 관해 적절한 알림 또는 힌트를 표시합니다. 예를 들어, 로그인된 플레이어가 레벨을 완료하면 다음과 같은 메시지를 통해 플레이어의 점수와 업적이 자동으로 업로드된다는 사실을 알릴 수 있습니다. '현재 Google 계정을 통해 로그인되어 있습니다. 게임 내 업적과 점수는 자동으로 저장됩니다.' |
1.10 | 필수 |
Play 게임즈 서비스 ID를 사용하여 플레이어의 진행 상황을 백업합니다.
플레이어가 기기를 전환하거나 재설정할 때 또는 여러 기기에서 플레이할 때 플레이어의 진행 상황이 손실되지 않도록 하려면 진행 상황을 클라우드 저장 솔루션에 백업하고, 자체 백엔드 게임 서버를 사용하는 경우에는 Play 게임즈 서비스 ID를 안전하게 키로 사용합니다. 플레이어가 Play 게임즈 서비스 ID로 로그인한 경우 관련 계정에 진행 상황이 있는지 확인합니다. 진행 상황이 있는 경우 플레이어가 중단한 부분부터 다시 시작할 수 있도록 허용합니다. 자체 클라우드 저장 솔루션 또는 Play 게임즈 서비스의 저장된 게임을 사용할 수 있습니다. 사용자가 로그인하지 않은 경우 플레이어의 진행 상황을 로컬에 유지하도록 시도한 다음 플레이어가 마침내 로그인할 때 진행 상황을 동기화합니다. 이렇게 하면 플레이어가 게임에 바로 로그인하지 않아도 진행 상황이 손실되는 일을 방지할 수 있습니다. |
2. 업적
다음 체크리스트에 포함된 작업은 게임에서 업적 기능을 구현하는 데 적용됩니다.
ID | 중요도 | 설명 |
---|---|---|
2.1 | 필수사항 | 모든 업적이 달성 가능한지 확인합니다.
플레이어는 개발자가 만든 모든 업적을 획득할 수 있어야 합니다. |
2.2 | 권장사항 | 각 업적을 차별화합니다.
이미지, 텍스트, 설명은 모두 업적별로 달라야 합니다. |
2.3 | 권장사항 | 업적 점수를 균형 있게 매깁니다.
업적 점수는 업적을 달성하는 데 필요한 시간이나 기술의 정도에 비례해야 합니다. |
2.4 | 권장사항 | 업적의 난이도를 다양하게 설계합니다.
플레이어가 캐주얼 게임을 플레이하여 얻을 수 있는 쉬운 업적 몇 개, 더 많은 기술이나 노력이 필요한 중간 난이도의 업적 여러 개, 가장 게임을 열심히 플레이하는 플레이어를 위한 매우 어려운 업적 1, 2개 정도를 준비합니다. 예를 들면, 다음의 스크린샷에서는 플레이어들이 게임을 계속 플레이하도록 동기를 부여하고 팬층을 유지하기 위한 어려운 난이도의 업적을 확인할 수 있습니다. |
2.5 | 참고사항 | 업적을 게임 초반에 배치하지 않습니다.
게임플레이의 초반 5분 이내에 2개 이상의 업적을 제공하지 마세요. 게임을 처음 접하는 플레이어가 게임에 관심을 갖게 될 정도로 열심히 플레이하지 않게 되기 때문입니다. 의도치 않게 게임플레이 중 너무 초반에 업적이 부여되도록 만들지 마세요. 예를 들어 '피해를 입지 않고 레벨 완료'와 같이 게임 초반에 쉽게 얻게 될 가능성이 높은 업적은 피해야 합니다. |
2.6 | 참고사항 | 매력적인 게임 내 활동과 관련된 업적을 만듭니다.
업적 달성을 유도할 수 있도록 게임에 한층 매력을 더하고 다시 플레이하고 싶어지게 만드는 측정항목을 선택합니다. 예를 들어 '죽은 좀비 숫자'가 '캐릭터가 걸은 거리'보다 좀 더 흥미로운 측정항목입니다. |
2.7 | 참고사항 | 색이 있는 업적 아이콘을 사용합니다.
Google Play 게임즈 서비스에서는 그레이 스케일 버전의 업적 아이콘을 사용하여 업적 달성 여부를 표시합니다. 모든 업적 아이콘에 검은색(또는 흰색)을 사용해야 하는 경우 색이 있는 배경에 아이콘을 표시하세요. |
2.8 | 참고사항 | 숨겨진 업적 사용을 최소화합니다.
숨겨진 업적은 게임 내 스포일러를 피하기 위해서만 사용해야 하며 흔하게 사용해서는 안 됩니다. |
2.9 | 참고사항 | 우연히 얻을 가능성이 높은 업적은 피합니다.
'보물상자 100개 찾기'가 '보물상자에서 나올 확률이 1%인 아이템 찾기' 보다 나은 업적입니다. |
2.10 | 참고사항 | '업적 사냥꾼'의 입장에서 생각합니다.
개발자가 만드는 모든 업적을 얻으려고 시도하는 플레이어도 있습니다. 이러한 플레이어를 만족시킬 수 있는 업적을 제공하세요. 플레이어가 제어할 수 없는 요소에 너무 많이 의존하거나 플레이어가 게임 내에서 어떤 결정을 내린 후에는 얻을 수 없는 업적을 만들지 마세요. |
2.11 | 참고사항 | 업적 아이콘이 올바르게 표시되는지 확인합니다.
업적 아이콘이 Android 토스트 메시지에 표시되면 아이콘이 동그라미와 겹쳐지면서 바깥쪽 모서리가 숨겨집니다. 이러한 상황에서도 아이콘이 보기 좋게 표시되는지 확인하세요. |
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. 친구
다음 체크리스트에 포함된 작업은 게임에서 Friends API를 구현하는 데 적용됩니다.
ID | 중요도 | 설명 |
---|---|---|
4.1 | 필수 | 플레이어가 목록에 표시되면 Play 게임즈 프로필이 있는 사용자 옆에 Play 게임즈 아이콘을 표시합니다.
이 목록은 기존 친구 목록, 최근 재생한 친구 목록 또는 그 외 친구 목록일 수 있습니다.
|
4.2 | 권장사항 | 서로 다른 아이콘을 사용하여, 이미 친구인 Play 게임즈 사용자를 표시하고 아직 Play 게임즈 친구는 아니지만 Play 게임즈로 로그인한 사용자를 표시합니다.
Play 게임즈 사용자에게는 두 개의 아이콘을 사용합니다. 즉, '친구'를 나타내는 아이콘 하나와 '친구 아님'을 나타내기 위한(또는 우정 상태를 알 수 없는 경우) 아이콘 하나를 사용합니다.
|
4.3 | 권장사항 | 친구 목록이 최신 상태가 되도록 로그인할 때마다 loadFriends() 를 호출하고 친구 목록을 표시합니다. 플레이어에게 업데이트된 목록이 표시되도록 합니다.
|
4.4 | 권장사항 | 게임에 이미 인게임 친구가 포함되어 있다면 Friends API를 사용하여 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번 날리기'라는 업적이 있다면
플레이어가 펀치를 날릴 때마다 업적 상승 호출을 보내지 마세요.
라운드가 종료될 때까지 기다린 다음 |
5.3 | 참고사항 |
사용량을 파악합니다.
Google Play 게임즈 서비스에 보내는 호출 횟수를 파악합니다. 비율 한도에 걸리지 않더라도 호출을 자주 보내면 네트워크 트래픽이 증가하고 기기 배터리가 빨리 소모될 수 있습니다. 잦은 호출을 피하려면 다음 방법을 사용하세요.
|
6. 저장된 게임
다음 체크리스트에 포함된 작업은 게임에서 저장된 게임 기능을 구현하는 데 적용됩니다.
ID | 중요도 | 설명 |
---|---|---|
6.1 | 필수사항 |
메타데이터를 추가하여 저장된 게임에 관한 추가 컨텍스트를 제공합니다.
저장된 게임을 커밋하는 경우 최소한 다음의 메타데이터를 포함해야 합니다.
|
6.2 | 필수사항 |
플레이어가 저장된 게임을 로드할 수 있게 합니다.
플레이어가 Play 게임즈 앱이나 기본 저장된 게임 선택 UI에서 저장된 게임을 선택하면 해당하는 게임을 정확히 로드합니다. |