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.log
는 adb 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:minAspectRatio
및 android: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 트레이스를 수집하고 확인할 수 있습니다.
PowerShell 프롬프트에서
adb
를 사용하여 트레이스를 시작합니다.adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
--time
플래그는 수집할 트레이스의 기간을 지정합니다. 이 예시에서 트레이스는 10초입니다.--time
플래그 다음의 인수는 트레이스할 이벤트를 나타냅니다. 이 예시에서gfx
는 그래픽을 나타내고wm
은 창 관리,sched
는 프로세스 예약 정보를 나타냅니다. 이는 게임 프로파일링을 위한 일반적인 플래그이며 전체 참조를 사용할 수 있습니다.--out
플래그는 에뮬레이터에서 호스트 머신으로 가져오는 출력 파일을 지정합니다(다음 단계 참고).
호스트에서 트레이스를 가져옵니다.
adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
Perfetto UI에서 트레이스를 엽니다.
- ui.perfetto.dev를 엽니다.
- 왼쪽 상단의 탐색에서 트레이스 파일 열기를 선택합니다.
- 이전 단계에서
Downloads/
디렉터리로 다운로드한example.trace
파일을 엽니다.
Perfetto UI에서 트레이스를 검사합니다. 도움말:
- 각 프로세스에는 자체 행이 있으며 이 행을 확장하여 해당 프로세스의 모든 스레드를 표시할 수 있습니다. 게임을 프로파일링하는 경우 해당 프로세스는 첫 번째 행일 가능성이 높습니다.
- Control을 누른 상태에서 스크롤 휠을 사용하여 확대하거나 축소할 수 있습니다.
sched
이벤트를 사용하는 경우 각 스레드의 상태가 실행 중, 실행 가능, 절전 모드 또는 차단됨일 때를 보여주는 행이 각 스레드에 있습니다.gfx
와 같은 이벤트를 사용 설정하면 다양한 스레드에서 발생한 여러 그래픽 호출을 볼 수 있습니다. 개별 '슬라이스'를 선택하여 얼마나 걸렸는지 확인하거나 행을 따라 드래그하여 '슬라이스' 섹션을 하단에 열고 선택한 시간에서 모든 슬라이스에 걸린 시간을 표시할 수 있습니다.
그래픽 프로파일링
RenderDoc를 사용하여 일부 그래픽 프로파일링을 실행할 수 있습니다.
- 환경 변수
ANDROID_EMU_RENDERDOC
를 비어 있지 않은 문자열(예:"1"
)로 설정합니다. 환경 변수
TMP
를%USERPROFILE%\AppData\LocalLow
로 설정합니다. 이렇게 하면 에뮬레이터 샌드박스 내에서 도달할 수 있는 곳에 로그 파일을 배치하라고 Renderdoc에 지시합니다.Vulkan 백엔드를 사용하는 경우 그래픽 설정 > Vulkan 인스턴스 암시적 레이어를 선택하고 VKLAYER_RENDERDOC_Capture가 선택되어 있는지 확인합니다.
PC용 Google Play 게임즈 개발자 에뮬레이터를 실행합니다. 지원이 사용 설정되어 있는 한 RenderDoc 오버레이가 맨 위에 그려집니다.
PC용 Google Play 게임즈 개발자 에뮬레이터가 실행되기 전 또는 후 언제든지 RenderDoc을 실행합니다.
파일 > 실행 중인 인스턴스에 연결을 클릭하고 crosvm을 선택합니다.
환경 변수 지정
Renderdoc이 작동하려면 Windows에서 환경 변수를 추가하거나 변경해야 합니다. UI, PowerShell 또는 cmd.exe를 사용하여 환경 변수를 변경할 수 있습니다.
UI 사용
Win+R 을 눌러 실행 대화상자를 엽니다.sysdm.cpl
을 입력하여 시스템 속성 창을 엽니다.- 아직 활성화되지 않은 경우 고급 탭을 선택합니다.
- 환경 변수 버튼을 클릭합니다.
여기에서 새로 만들기 버튼을 클릭하여 새로운 환경 변수를 만들거나 변수를 선택하고 수정 버튼을 클릭하여 수정할 수 있습니다.
PowerShell 사용
PowerShell 창에 다음을 입력합니다.
$Env:VARIABLE_NAME=VALUE
VARIABLE_NAME
및 VALUE
를 설정하려는 값으로 바꿉니다. 예를 들어 ANDROID_EMU_RENDERDOC
를 "1"
로 설정하려면 다음을 입력합니다.
$Env:ANDROID_EMU_RENDERDOC="1"
cmd.exe 사용
cmd.exe 창에 다음을 입력합니다.
set VARIABLE_NAME=VALUE
VARIABLE_NAME
및 VALUE
를 설정하려는 값으로 바꿉니다. 예를 들어 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 게임즈 개발자 에뮬레이터로 로드하는 추가 단계를 실행해야 합니다. 게임에서 이러한 파일에 액세스하는 데 문제가 발생하면 다음 단계를 따르세요.
- 앱이 읽을 수 있는 디렉터리를 만듭니다.
- 에뮬레이터에 확장 파일을 푸시합니다.
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 게임즈 개발자 에뮬레이터의 개발자 중심 기능을 지원하지 않습니다. 최초 출시 후 엔드 투 엔드 플레이어 환경을 테스트하기 위해 출시 전에 게임의 품질보증에 사용하는 것이 가장 좋습니다.