Google Play 게임즈는 오픈 베타 버전입니다.

호환성 및 최적화

Google Play 게임즈를 사용하려면 PC 호환성 및 PC 최적화를 게임에 추가해야 합니다. 이러한 변경사항 외에도 PC 호환성을 보장하기 위해 게임의 그래픽 구성도 업데이트해야 합니다.

사용자의 플랫폼 설치와 개발 머신 설정에 관해서는 최소 PC 요구사항을 확인하세요.

x86 ABI 아키텍처 포함

게임에 포함된 모든 라이브러리에는 x86 ABI 호환 버전이 있어야 플랫폼에서 최상의 성능과 안정성을 보장할 수 있습니다. Google Play 게임즈는 32비트 버전과 64비트 버전을 모두 지원하지만, 요구사항을 충족하는 버전을 하나만 선택해야 합니다.

라이브러리 컴파일

최상의 x86 프로세서 호환성을 보장하려면 라이브러리를 컴파일할 때 atom 명령 집합을 사용하지 마세요. 예를 들어 gcc를 사용할 때 -march=atom 대신 -march=x86이나 -march=x86-64를 사용하세요.

Unity의 타겟 아키텍처

게임이 Unity 게임 엔진을 사용하는 경우 32비트 x86 Android 타겟을 사용 설정해야 합니다. 이렇게 하려면 Unity에서 다음을 실행합니다.

  1. Player Settings(플레이어 설정) > Other Settings(기타 설정) > Configuration(구성) > Scripting Backend(스크립트 백엔드)로 이동한 후 드롭다운 메뉴에서 IL2CPP를 선택하여 IL2CPP 스크립트 백엔드를 사용 설정합니다.

  2. Unity 버전에 32비트 x86 Android 타겟을 사용 설정합니다.

    • Unity 2018 이하 버전: Player Settings(플레이어 설정) > Other Settings(기타 설정) > Target Architecture(타겟 아키텍처)로 이동하여 x86 체크박스를 선택합니다.

    • Unity 2019 장기적 지원(LTS) 버전 이상: Player Settings(플레이어 설정) > Other Settings(기타 설정) > Target Architectures(타겟 아키텍처)로 이동하여 x86(Chrome OS)x86-64(Chrome OS)를 모두 사용 설정합니다.

게임 엔진 지원을 극대화하려면 x86 및 x86-64 지원을 모두 사용 설정하거나 32비트 메모리 공간으로 제한되지 않도록 x86-64만 사용 설정하는 것이 좋습니다.

Google Play 게임즈 감지

런타임 시 Google Play 게임즈 플랫폼을 감지할 수 있으므로 게임에서 플랫폼별 기능을 사용 설정 또는 사용 중지할 수 있습니다.

시스템 기능 com.google.android.play.feature.HPE_EXPERIENCE를 확인하여 게임이 Google Play 게임즈 플랫폼에서 실행 중인지 확인하세요.

Kotlin

    var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

자바

    PackageManager pm = getPackageManager();
    boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

C#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
  

Android 수명 주기 이벤트 처리

Google Play 게임즈 환경에서 onPause(c++) 이벤트를 처리하는 것이 중요합니다. 플레이어가 에뮬레이터 오버레이를 활성화하면 게임이 표시되며 onPause 이벤트를 수신 대기하지 못하면 사용자 경험에 부정적 영향을 줄 수 있습니다.

PC 호환성 UI 업데이트

특정 UI 요소와 동작은 PC에 적합하지 않으므로 업데이트해야 합니다.

필수 사항:

  • 손가락 두 개 이상이 필요한 UI 작업(예: '손가락으로 확대/축소')을 교체합니다.
  • 사용자에게 표시되는 모든 텍스트는 '탭'이 아닌 '클릭'으로 표시되어야 합니다.
  • 스크롤 가능한 목록에는 스크롤바가 있어야 합니다.
  • 화면 이동이 가능한 영역에는 스크롤바 또는 빠르게 멀리 이동하는 다른 방법이 있어야 합니다.
  • 텍스트 입력을 위해 화면에 클릭 가능한 키보드를 표시하지 않습니다.
  • 모든 텍스트 항목은 텍스트 필드 경계 내에 있어야 합니다.

  • 표시되는 요소를 클릭하면 다음과 같이 됩니다.

    • 요소의 표시된 경계 내에서 아무 곳이나 클릭하는 것은 허용됩니다.
    • 표시되는 요소 외부 영역을 클릭하는 것은 허용되지 않습니다.
  • 대화상자에는 닫기 버튼이 표시되어 있어야 합니다. 대화상자 경계 외부의 클릭은 감지하지 않습니다.

권한 대화상자 사용 중지

Google Play 게임즈는 권한 대화상자를 표시하지 않으므로 권한을 요청하기 전에 표시하려고 해서는 안 됩니다. 이전에 표시했다면 애플리케이션을 업데이트하여 더 이상 PC에 대화상자가 표시되지 않도록 해야 합니다.

지원되지 않는 Android 기능 및 권한

PC에서는 휴대전화 또는 태블릿에서 사용할 수 있는 일부 Android 기능에 액세스할 수 없습니다. 카메라 같은 하드웨어 기능과 사용자 위치 같은 기타 기능이 여기에 해당합니다. 따라서 지원되지 않는 Android 기능 또는 권한을 게임에 사용해서는 안 됩니다. PC에서 지원되지 않는 권한 액세스를 게임에서 요청하면 요청이 자동으로 실패합니다.

게임을 PC와 호환되도록 하려면 다음과 같이 변경해야 합니다.

  • 앱 매니페스트에서 Google Play 게임즈가 지원하지 않는 모든 기능의 <uses-feature> 선언에 android:required="false"를 추가합니다. 이는 앱 매니페스트에 이미 선언된 기능에만 적용됩니다.
  • PC에서 지원되지 않는 하드웨어 및 소프트웨어 기능을 사용하는 게임 기능을 중지합니다. 모바일 게임과 동일한 APK를 사용 중인 경우 그러한 기능을 PC에서 조건부로 중지할 수 있습니다.
  • 지원되지 않는 Android 권한 요청을 게임에서 중지하고 이러한 권한에 종속된 기능도 중지합니다. 모바일 게임과 동일한 APK를 사용하는 경우 그러한 변경을 PC에서 조건부로 진행할 수 있습니다. 매니페스트에 선언된 권한은 변경해서는 안 됩니다.

앱 매니페스트 호환성에 관한 자세한 내용은 Chromebook 앱 매니페스트 호환성에 관한 가이드를 참고하세요.

Google Play Console에 첫 번째 테스트 빌드를 제출하기 전에 이러한 하드웨어 기능을 삭제합니다.

  • android.hardware.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location
  • android.hardware.microphone

android.hardware.wifi 기능을 삭제하는 방법에 관한 자세한 내용은 연결 상태 및 연결 측정 모니터링을 참고하세요. 지원되지 않는 기능의 전체 목록은 앱 매니페스트 호환성 가이드를 참고하세요.

흔히 사용되는 이러한 하드웨어 기능은 PC와 호환되지 않으므로 Google Play Console에 최종 제출 전에 이를 삭제해야 합니다.

  • android.hardware.audio.pro
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.consumerir
  • android.hardware.location
  • android.hardware.microphone
  • android.hardware.nfc
  • android.hardware.sensor.light
  • android.hardware.sensor.accelerometer
  • android.hardware.sensor.barometer
  • android.hardware.sensor.compass
  • android.hardware.sensor.gyroscope
  • android.hardware.sensor.proximity
  • android.hardware.telephony
  • android.hardware.touchscreen
  • android.hardware.usb.accessory
  • android.hardware.usb.host
  • android.hardware.wifi
  • android.software.midi

흔히 사용되는 다음 권한은 PC에서 지원되지 않습니다.

  • android.permission.FOREGROUND_SERVICE
  • android.permission.INSTALL_PACKAGES
  • android.permission.READ_PHONE_STATE
  • android.permission.USE_CREDENTIALS
  • android.permission.CAMERA
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.WRITE_SETTINGS
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.READ_CONTACTS
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.GET_ACCOUNTS
  • android.permission.RECORD_AUDIO

외부 웹사이트 및 WebView

브라우저 인텐트는 Google Play 게임즈 환경의 웹브라우저가 아닌 PC의 기본 웹브라우저에 로드됩니다. 이렇게 하면 대부분의 상황에서 플레이어에게 이상적인 환경이 제공됩니다.

포팅을 쉽게 하기 위해 Google Play 게임즈는 WebView를 지원합니다. 이는 Google Play 게임즈 환경을 기반으로 하기 때문에 일반 데스크톱 브라우저 사용자 환경을 제공하지 않습니다. 따라서 서비스 약관, 개인정보처리방침 또는 기타 유사한 콘텐츠 공유를 위해 WebView를 사용했다면 브라우저 인텐트 호출을 권장합니다.

지원되지 않는 Google Play 서비스 API 사용 중지

Google Play 게임즈는 Google Play 서비스 API의 하위 집합만 포함하는 자체 Google Play 서비스 버전을 제공합니다. PC에서 생략되거나 지원되지 않는 모듈에 애플리케이션이 크게 의존하지 않는지 확인해야 합니다. 일부 모듈을 사용할 수는 있지만 관련 기능이 항상 지원되는 것은 아니라는 점에 유의하세요. 예를 들어 Google Play 게임즈를 종료하면 Firebase 클라우드 메시징이 작동하지 않습니다.

지원되는 모듈

다음 모듈은 현재 사용 가능하며 향후 Google Play 게임즈에서 지원될 예정입니다.

제한적 지원

다음 모듈은 부분적으로 작동합니다. Google에서는 이러한 모듈을 Google Play 게임즈에서 지원하기 위해 최선을 다할 예정이나 기능성을 보장할 수는 없습니다.

지원되지 않음

다음 모듈은 Google Play 게임즈에서 지원되지 않지만 이로 인한 오류가 게임즈 자체에 문제를 유발하지는 않습니다.

손상됨

이러한 모듈을 사용하면 안 됩니다. Google Play 게임즈에서 예기치 않은 동작을 유발할 수 있기 때문입니다.

범위 지정 저장소 사용 설정

이 섹션은 게임이 외부 저장소 읽기/쓰기를 진행하는 경우에 적용됩니다. 범위 지정 저장소 적용은 저장소를 읽고 쓰기 위한 대체 방법으로 필요합니다. 범위 지정 저장소를 적용하면 다음과 같은 민감한 권한을 요구하는 메시지가 플레이어에게 더 이상 표시되지 않습니다.

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

범위 지정 저장소에 관한 자세한 내용은 다음을 참고하세요.

PC 버전 게임에서 모바일 광고 중지

PC에 게임을 최적화하려면 PC 버전에서 모바일 광고를 중지해야 합니다. 모바일 광고가 데스크톱과 노트북 PC와 호환되지 않기 때문이며 모바일 광고 SDK에서 제공되는 모든 광고 단위가 여기에 포함됩니다. 모바일 버전 게임에서는 광고를 변경할 필요가 없습니다. PC 버전 게임에서만 변경하도록 하는 기능 플래그를 사용하는 것이 좋습니다. Chrome OS에서는 계속 모바일 광고를 사용할 수 있습니다.

모바일 광고를 삭제할 경우 다음 조치가 필요합니다.

  • 배너, 전면 광고, 보상형 광고를 포함하여 모든 모바일 광고 단위를 중지합니다.
  • 보상형 광고를 사용하는 기능을 게임에서 중지합니다. 예를 들어 사용자가 동영상 광고를 시청하여 인게임 화폐를 얻을 수 있는 기능은 버튼을 비활성화하거나 완전히 삭제할 수 있습니다.

애널리틱스

기존 Google 애널리틱스 제품은 Google Play 게임즈에서 작동하지 않습니다. 이에 해당한다면 Google 애널리틱스 4로 이전해야 합니다.

이는 현재 Google 애널리틱스 360을 사용하고 있는 경우에만 적용됩니다. Firebase SDK를 사용하여 게임의 애널리틱스 이벤트를 추적하고 있고 Google 애널리틱스 콘솔에서 게임을 속성으로 볼 수 있는 경우에는 추가 작업을 실행할 필요가 없습니다.