PC용 Google Play 게임즈 개발자 에뮬레이터로 개발

PC용 Google Play 게임즈 개발자 에뮬레이터는 PC용 Google Play 게임즈를 위한 개발자 중심 에뮬레이터입니다. 플레이어 환경과 달리 자체 패키지를 설치하고 디버그할 수 있습니다. 또한 가로세로 비율, 마우스 에뮬레이션, 그래픽 백엔드와 같은 다양한 플레이어 구성을 시뮬레이션하여 게임이 다양한 PC 구성에서 예상대로 실행되도록 할 수 있습니다.

에뮬레이터 시작

설치가 완료되면 'Google Play 게임즈 개발자 에뮬레이터' 시작 메뉴 요소와 에뮬레이터를 실행하는 바탕화면 바로가기가 생성됩니다. 에뮬레이터는 창을 닫아도 작업 표시줄에 계속 표시됩니다.

로그인

에뮬레이터를 처음 실행할 때 Google 계정에 로그인하라는 메시지가 표시됩니다. 개발에 사용할 동일한 로그인 사용자 인증 정보를 사용하세요.

작업 표시줄 아이콘을 마우스 오른쪽 버튼으로 클릭하고 개발자 옵션을 선택한 다음 강제 로그아웃을 클릭하여 로그아웃할 수 있습니다. 이렇게 하면 에뮬레이터가 즉시 다시 시작되며 다시 로그인하라는 메시지가 표시됩니다.

실행하면 일반적인 Android 홈 화면이 표시됩니다. 마우스 왼쪽 버튼 클릭은 마우스 에뮬레이션 모드에서와 같이 손가락 탭으로 직접 변환됩니다. 개발용으로 사이드로드된 게임은 애플리케이션 목록에 표시되며, 데스크톱을 클릭하고 위로 드래그하여(휴대전화나 태블릿에서 위로 스와이프 에뮬레이션) 이동할 수 있습니다.

마우스 변환 외에도 PC용 Google Play 게임즈 개발자 에뮬레이터는 다음과 같이 단축키를 제공하여 탐색을 개선합니다.

  • ctrl + h: 홈 버튼 누르기
  • ctrl + b: 뒤로 버튼 누르기
  • F11 또는 alt + Enter: 전체 화면과 창 모드 간 전환
  • shift + tab: 입력 SDK의 현재 키 매핑을 포함하여 PC용 Google Play 게임즈 오버레이 열기

게임 설치

PC용 Google Play 게임즈 개발자 에뮬레이터는 Android 디버그 브리지(adb)를 사용하여 패키지를 설치합니다.

adb 호환성

adb의 현재 버전은 PC용 Google Play 게임즈 개발자 에뮬레이터와 호환됩니다. 또한 호환되는 버전은 에뮬레이터를 설치할 때 C:\Program Files\Google\Play Games Developer Emulator\current\emulator에 설치됩니다.

이 안내를 따르려면 $PATH에서 adb를 사용할 수 있어야 합니다. adb devices 명령어로 adb가 올바르게 구성되었는지 확인할 수 있습니다.

adb devices
List of devices attached
localhost:6520  device

게임 설치

  • Google Play Games for PC Emulator를 실행합니다.
  • 명령 프롬프트에 adb devices를 입력합니다. 그러면 다음과 같이 표시됩니다.

    adb devices
    List of devices attached
    localhost:6520 device
    
  • 문제 해결:

    • 오류가 발생하면 adb 호환성의 안내를 따랐는지 확인합니다.
    • 기기가 표시되지 않으면 포트 6520을 통해 다시 연결해 봅니다.
    adb connect localhost:6520
    
  • adb install path\to\your\game.apk를 입력하여 게임을 설치합니다. Android App Bundle(aab)을 생성했다면 bundletool 안내를 참고하여 bundletool install-apks를 대신 사용하세요.

  • 다음 중 한 가지 방법으로 게임을 실행합니다.

    • adb shell monkey -p your.package.name 1을 입력하여 게임을 실행해 your.package.name을 게임의 패키지 이름으로 바꿉니다.
    • PC용 Google Play 게임즈 개발자 에뮬레이터에서 아이콘을 클릭하여 게임을 실행합니다. Android 휴대전화와 마찬가지로 설치된 게임 목록을 보려면 홈 화면에서 '위로 스와이프'해야 합니다.

게임 디버깅

다른 게임에서와 마찬가지로 디버그하려면 Android 디버그 브리지(adb)를 사용하세요. 에뮬레이터는 localhost:6520을 통해 연결된 기기로 표시됩니다.

adb logcat은 Android 스튜디오를 포함하여 Logcat 출력을 꾸미거나 필터링하는 데 도움이 되는 도구와 마찬가지로 예상대로 작동합니다.

adb 외에도 %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs 디렉터리에서 로그에 액세스할 수도 있습니다. 여기서 가장 유용한 AndroidSerial.logadb logcat이 에뮬레이터가 시작되는 순간부터 에코하는 모든 것을 나타냅니다.

개발자 설정

PC용 Google Play 게임즈 개발자 에뮬레이터는 최종 사용자 환경이 아닌 개발자 효율성에 초점을 맞춥니다. 즉, PC용 Google Play 게임즈 환경 대신 표준 Android 런처를 사용하는 등 방해 받지 않고 Android 시스템에 액세스할 수 있으며 플레이어를 위해 자동으로 사용 설정 및 사용 중지되는 기능을 제어할 수 있습니다.

마우스 입력 테스트

개발 중에는 PC용 Google Play 게임즈 개발자 에뮬레이터에서는 직접 마우스 입력을 제공하는 대신 터치 에뮬레이션을 기본값으로 설정합니다. 작업 표시줄 아이콘을 마우스 오른쪽 버튼으로 클릭하고 개발자 옵션을 선택한 다음 PC 모드(KiwiMouse)를 선택하여 직접 마우스 입력을 사용 설정할 수 있습니다.

PC용 Google Play 게임즈에는 두 가지 마우스 모드가 있습니다. 하나는 마우스 클릭을 한 번 탭으로 변환하는 에뮬레이션된 모드이고 다른 하나는 게임에서 마우스 작업을 기본적으로 처리하고 포인터 캡처를 실행할 수 있는 패스 스루 PC 모드입니다. PC용 Google Play 게임즈의 마우스 입력에 관한 자세한 내용은 마우스 입력 설정을 참고하세요.

플레이어 클라이언트에서 에뮬레이션은 다음을 매니페스트에 추가하여 사용 중지합니다.

<manifest ...>
  <uses-feature
      android:name="android.hardware.type.pc"
      android:required="false" />
  ...
</manifest>

이 기능 플래그는 개발 환경에 영향을 미치지 않습니다.

가로세로 비율 테스트

개발자 에뮬레이터는 기본 디스플레이에서 가로세로 비율을 얻는 플레이어 클라이언트와 달리 16:9 가로세로 비율로 실행됩니다. 작업 표시줄 아이콘을 마우스 오른쪽 버튼으로 클릭하고 개발자 옵션을 선택한 다음 디스플레이 비율 섹션에서 옵션을 선택하면 게임이 여러 플레이어 화면에 어떻게 표시되는지 테스트할 수 있습니다.

가로세로 비율을 구성하는 데 권장되는 방법android:minAspectRatioandroid:maxAspectRatio를 사용하는 것입니다.

예를 들어 세로 모드 게임의 가로세로 비율은 9/16 또는 0.5625이므로 게임이 정사각형보다 넓어지지 않도록 최대 가로세로 비율을 1로 설정하는 것이 좋습니다.

<activity android:maxAspectRatio="1">
 ...
</activity>

마찬가지로 가로 모드 게임은 16/9 또는 대략 1.778이므로 최소 가로세로 비율을 1로 설정하여 정사각형보다 더 좁아지지 않도록 하는 것이 좋습니다.

<activity android:minAspectRatio="1">
 ...
</activity>

테스트 대상

게임이 매니페스트에서 세로 모드만 지원한다면 드롭다운에서 9:16(세로 모드)을 선택하여 플레이어의 PC에서 게임이 어떻게 표시되는지 확인할 수 있습니다. 그 외의 경우에는 매니페스트에서 개발자가 지원하는 가장 넓은 그리고 가장 좁은 가로 모드 비율에서 게임이 작동하는지 확인합니다. 이때 16:9(기본값)(또는 게임이 세로 모드 전용인 경우 9:16(세로 모드))가 전체 인증에 필요하다는 데 유의하세요.

렌더링 백엔드 테스트

PC용 Google Play 게임즈는 ANGLE을 호환성 레이어로 사용하여 OpenGL ES 호출이 DirectX 또는 Vulkan 백엔드를 통해 호스트 PC에서 올바르게 처리되도록 합니다. 에뮬레이터는 Vulkan도 직접 지원하지만 DirectX는 지원하지 않습니다. 또한 이 레이어는 모바일 전용으로 압축된 텍스처 형식을 PC 호환 형식으로 변환합니다. 작업 표시줄 아이콘을 마우스 오른쪽 버튼으로 클릭하고 그래픽 스택 재정의를 선택하여 시스템의 기본값으로 설정하거나 호환성 테스트를 위해 Vulkan을 강제로 사용 설정 또는 사용 중지할 수 있습니다.

테스트 대상

지원되는 텍스처 형식과 데스크톱에서 다양한 모바일 기능을 에뮬레이션하기 위해 필요한 단계에는 약간의 차이가 있습니다. 게임을 프로파일링하고 최적화할 때 각 백엔드를 확인하는 것이 좋습니다.

PC 게임 프로파일링

에뮬레이터는 소비자 클라이언트와 동일한 기술을 사용하므로 성능 프로파일링에 적합한 환경입니다.

Perfetto는 Android에서 성능을 분석하는 도구입니다. 다음 단계에 따라 Perfetto 트레이스를 수집하고 확인할 수 있습니다.

  1. PowerShell 프롬프트에서 adb를 사용하여 트레이스를 시작합니다.

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. --time 플래그는 수집할 트레이스의 기간을 지정합니다. 이 예시에서 트레이스는 10초입니다.
    2. --time 플래그 다음의 인수는 트레이스할 이벤트를 나타냅니다. 이 예시에서 gfx는 그래픽을 나타내고 wm은 창 관리, sched는 프로세스 예약 정보를 나타냅니다. 이는 게임 프로파일링을 위한 일반적인 플래그이며 전체 참조를 사용할 수 있습니다.
    3. --out 플래그는 에뮬레이터에서 호스트 머신으로 가져오는 출력 파일을 지정합니다(다음 단계 참고).
  2. 호스트에서 트레이스를 가져옵니다.

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. Perfetto UI에서 트레이스를 엽니다.

    1. ui.perfetto.dev를 엽니다.
    2. 왼쪽 상단의 탐색에서 트레이스 파일 열기를 선택합니다.
    3. 이전 단계에서 Downloads/ 디렉터리로 다운로드한 example.trace 파일을 엽니다.
  4. Perfetto UI에서 트레이스를 검사합니다. 도움말:

    1. 각 프로세스에는 자체 행이 있으며 이 행을 확장하여 해당 프로세스의 모든 스레드를 표시할 수 있습니다. 게임을 프로파일링하는 경우 해당 프로세스는 첫 번째 행일 가능성이 높습니다.
    2. Control을 누른 상태에서 스크롤 휠을 사용하여 확대하거나 축소할 수 있습니다.
    3. sched 이벤트를 사용하는 경우 각 스레드의 상태가 실행 중, 실행 가능, 절전 모드 또는 차단됨일 때를 보여주는 행이 각 스레드에 있습니다.
    4. gfx와 같은 이벤트를 사용 설정하면 다양한 스레드에서 발생한 여러 그래픽 호출을 볼 수 있습니다. 개별 '슬라이스'를 선택하여 얼마나 걸렸는지 확인하거나 행을 따라 드래그하여 '슬라이스' 섹션을 하단에 열고 선택한 시간에서 모든 슬라이스에 걸린 시간을 표시할 수 있습니다.

그래픽 프로파일링

RenderDoc를 사용하여 일부 그래픽 프로파일링을 실행할 수 있습니다.

  1. 환경 변수 ANDROID_EMU_RENDERDOC를 비어 있지 않은 문자열(예: "1")로 설정합니다.
  2. 환경 변수 TMP%USERPROFILE%\AppData\LocalLow로 설정합니다. 이렇게 하면 에뮬레이터 샌드박스 내에서 도달할 수 있는 곳에 로그 파일을 배치하라고 Renderdoc에 지시합니다.

  3. Vulkan 백엔드를 사용하는 경우 그래픽 설정 > Vulkan 인스턴스 암시적 레이어를 선택하고 VKLAYER_RENDERDOC_Capture가 선택되어 있는지 확인합니다.

  4. PC용 Google Play 게임즈 개발자 에뮬레이터를 실행합니다. 지원이 사용 설정되어 있는 한 RenderDoc 오버레이가 맨 위에 그려집니다.

  5. PC용 Google Play 게임즈 개발자 에뮬레이터가 실행되기 전 또는 후 언제든지 RenderDoc을 실행합니다.

  6. 파일 > 실행 중인 인스턴스에 연결을 클릭하고 crosvm을 선택합니다.

환경 변수 지정

Renderdoc이 작동하려면 Windows에서 환경 변수를 추가하거나 변경해야 합니다. UI, PowerShell 또는 cmd.exe를 사용하여 환경 변수를 변경할 수 있습니다.

UI 사용
  • Win+R을 눌러 실행 대화상자를 엽니다.
  • sysdm.cpl을 입력하여 시스템 속성 창을 엽니다.
  • 아직 활성화되지 않은 경우 고급 탭을 선택합니다.
  • 환경 변수 버튼을 클릭합니다.

여기에서 새로 만들기 버튼을 클릭하여 새로운 환경 변수를 만들거나 변수를 선택하고 수정 버튼을 클릭하여 수정할 수 있습니다.

PowerShell 사용

PowerShell 창에 다음을 입력합니다.

$Env:VARIABLE_NAME=VALUE

VARIABLE_NAMEVALUE를 설정하려는 값으로 바꿉니다. 예를 들어 ANDROID_EMU_RENDERDOC"1"로 설정하려면 다음을 입력합니다.

$Env:ANDROID_EMU_RENDERDOC="1"
cmd.exe 사용

cmd.exe 창에 다음을 입력합니다.

set VARIABLE_NAME=VALUE

VARIABLE_NAMEVALUE를 설정하려는 값으로 바꿉니다. 예를 들어 ANDROID_EMU_RENDERDOC"1"로 설정하려면 다음을 입력합니다.

set ANDROID_EMU_RENDERDOC="1"

Android 11(API 수준 30) 또는 이후 버전을 위한 도움말

PC용 Google Play 게임즈가 최신 Android 버전으로 업데이트되었습니다. 다음은 최신 버전의 Android를 사용하기 위한 몇 가지 도움말입니다.

도구를 최신 상태로 유지

Android 스튜디오는 개발자 에뮬레이터와 호환되는 adb 버전을 설치합니다. 그러나 일부 게임 엔진에는 이전 adb 버전이 포함되어 있습니다. 이 경우 개발자 에뮬레이터를 설치한 후 C:\Program Files\Google\Play Games Developer Emulator\current\emulator에서 호환되는 adb 버전을 찾을 수 있습니다.

한 버전의 adb를 실행하면 다른 버전이 종료됩니다. 즉, 게임 엔진이 자동으로 자체 adb 인스턴스를 실행하면 배포할 때마다 개발자 에뮬레이터와 함께 제공되는 adb 버전을 다시 실행하고 다시 연결해야 할 수 있습니다.

Android App Bundle을 사용하는 경우 GitHub 저장소에서 최신 버전의 Bundletool을 설치해야 합니다.

범위 지정 저장소

Android 11(API 수준 30) 이상에는 외부 저장소의 앱 및 사용자 데이터를 더 잘 보호하는 범위 지정 저장소가 포함됩니다. 게임이 범위 지정 저장소 요구사항을 준수하도록 하는 것 외에도 APK 확장 파일(obb)이나 애셋 데이터를 PC용 Google Play 게임즈 개발자 에뮬레이터로 로드하는 추가 단계를 실행해야 합니다. 게임에서 이러한 파일에 액세스하는 데 문제가 발생하면 다음 단계를 따르세요.

  1. 앱이 읽을 수 있는 디렉터리를 만듭니다.
  2. 에뮬레이터에 확장 파일을 푸시합니다.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

패키지 공개 상태

새로운 패키지 공개 상태 규칙으로 인해 Android 11(API 수준 30) 이상을 타겟팅하는 앱은 기기에 설치된 다른 앱에 관한 정보를 쿼리할 수 없습니다. 즉, Play 스토어를 통해 설치되지 않고 adb를 통해 사이드로드되면 게임이 Play 서비스에 액세스할 수 없습니다. 사이드로드된 게임으로 IAP를 테스트하려면 다음과 같이 AndroidManifest.xml 파일의 'com.android.vending' 패키지에 쿼리를 추가해야 합니다.

<manifest>
    <queries>
        <package android:name="com.android.vending" />
    </queries>
</manifest>

소비자 클라이언트에 게임 설치

게임이 Play 게임즈 서비스 카탈로그에 나열되기 전에는 소비자 클라이언트에 게임을 설치할 수 없습니다. 게임에 단일 버전이 있으면 출시 전에 향후 업데이트의 유효성을 검사하는 내부 테스트 트랙을 만들 수 있습니다.

플레이어 클라이언트는 PC용 Google Play 게임즈 개발자 에뮬레이터의 개발자 중심 기능을 지원하지 않습니다. 최초 출시 후 엔드 투 엔드 플레이어 환경을 테스트하기 위해 출시 전에 게임의 품질보증에 사용하는 것이 가장 좋습니다.