Tworzenie za pomocą emulatora dla deweloperów Gier Google Play na PC

Emulator dla deweloperów Gier Google Play na PC to przeznaczony dla programistów emulator Gier Google Play na PC. W przeciwieństwie do odtwarzacza możesz tu instalować i debugować własne pakiety. Możesz też symulować różne konfiguracje odtwarzacza, np. format obrazu, emulację myszy i backend grafiki, aby mieć pewność, że gra będzie działać zgodnie z oczekiwaniami w różnych konfiguracjach komputera.

Uruchamianie emulatora

Po zainstalowaniu zobaczysz element menu Start „Emulator dla deweloperów Gier Google Play” oraz skrót na pulpicie do uruchamiania emulatora. Po zamknięciu okna emulator pozostanie w obszarze powiadomień.

Logowanie się

Przy pierwszym uruchomieniu emulatora pojawia się prośba o zalogowanie się na konto Google. Użyj tych samych danych logowania, których zamierzasz używać na potrzeby programowania.

Aby się wylogować, kliknij prawym przyciskiem myszy ikonę na pasku zadań, wybierz Opcje programisty, a następnie kliknij Wymuś wylogowanie. Gdy to zrobisz, emulator natychmiast uruchomi się ponownie i poprosi o zalogowanie się jeszcze raz.

Po uruchomieniu wyświetla się standardowy ekran główny Androida. Kliknięcia lewym przyciskiem myszy są przekładane bezpośrednio na dotknięcia palcami, tak jak w trybie emulacji myszy. Gry pobrane z innego urządzenia do programowania pojawiają się na liście aplikacji, którą można otworzyć, klikając i przeciągając w górę na pulpicie (emulując przesunięcie palcem w górę na telefonie lub tablecie).

Oprócz tłumaczenia myszą emulator dla deweloperów Gier Google Play na PC udostępnia skróty klawiszowe, które usprawniają nawigację:

  • Ctrl + H: naciśnij przycisk ekranu głównego
  • Ctrl + B: naciśnij przycisk Wstecz
  • F11 lub alt + Enter: przełączanie się między trybem pełnoekranowym a trybem okna
  • shift + Tab: otwieranie nakładki Gry Google Play na PC, w tym aktualne mapowania klawiszy na potrzeby pakietu wejściowego SDK

Instalowanie gry

Emulator dla deweloperów Gier Google Play na PC korzysta z narzędzia Android Debug Bridge (adb) do instalowania pakietów.

zgodność z adb

Bieżące wersje aplikacji adb są zgodne z Emulatorem dla deweloperów Gier Google Play na PC. Dodatkowo podczas instalacji emulatora na C:\Program Files\Google\Play Games Developer Emulator\current\emulator instalowana jest zgodna wersja.

Aby wykonać te instrukcje, usługa adb powinna być dostępna w usłudze $PATH. Aby sprawdzić, czy profil adb jest prawidłowo skonfigurowany, użyj polecenia adb devices

adb devices
List of devices attached
localhost:6520  device

Zainstaluj grę

  • Uruchom: Google Play Games for PC Emulator
  • W wierszu polecenia wpisz adb devices. Zobaczysz, że:

    adb devices
    List of devices attached
    localhost:6520 device
    
  • Rozwiązywanie problemów:

    • Jeśli pojawi się błąd, wykonaj instrukcje podane w artykule Zgodność z Adb.
    • Jeśli nie widzisz urządzenia, spróbuj połączyć się ponownie przez port 6520:
    adb connect localhost:6520
    
  • Wpisz adb install path\to\your\game.apk, aby zainstalować grę. Jeśli masz wygenerowany pakiet Android App Bundle (aab), zapoznaj się z instrukcjami dotyczącymi bundletool, a zamiast nich użyj metody bundletool install-apks.

  • Aby uruchomić grę:

    • Wpisz adb shell monkey -p your.package.name 1, aby uruchomić grę, zastępując your.package.name nazwą pakietu gry.
    • W emulatorze dla deweloperów Gier Google Play na PC kliknij ikonę, aby uruchomić grę. Podobnie jak na telefonie z Androidem, aby zobaczyć listę zainstalowanych gier, trzeba przesunąć palcem w górę na ekranie głównym.

Debugowanie gry

Użyj narzędzia Android Debug Bridge (adb) do debugowania, podobnie jak w przypadku każdej innej gry. Emulator wyświetla się jako urządzenie połączone przez: localhost:6520.

adb logcat działa zgodnie z oczekiwaniami, podobnie jak narzędzia, które pomagają precyzować lub filtrować dane wyjściowe logcat, w tym Android Studio.

Oprócz usługi adb logi są też dostępne w katalogu %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs. Najbardziej przydatny jest w tym przypadku ciąg AndroidSerial.log, który reprezentuje wszystko, co adb logcat wysyła echo od momentu uruchomienia emulatora.

Ustawienia programisty

Emulator dla deweloperów Gier Google Play na PC koncentruje się na wydajności programistów, a nie wrażeniach użytkownika. Oznacza to, że masz nieograniczony dostęp do systemu Android, w tym standardowe program uruchamiający Androida zamiast Gier Google Play na PC. Masz też kontrolę nad funkcjami, które w przeciwnym razie są automatycznie włączane i wyłączane u graczy.

Testowanie wprowadzania danych myszą

W fazie programowania emulator dla deweloperów Gier Google Play na PC domyślnie używa emulacji dotykowej, a nie bezpośredniego działania myszy. Jeśli chcesz włączyć bezpośrednie wprowadzanie danych myszą, kliknij prawym przyciskiem myszy ikonę na pasku zadań, wybierz Opcje programisty, a potem Tryb PC (KiwiMouse).

Gry Google Play na PC mają 2 tryby myszy: emulowany, który zmienia kliknięcia myszą na jedno kliknięcie, oraz „tryb PC”, który pozwala grom natywnie obsługiwać działania myszy i przechwytywać wskaźniki. Szczegółowe informacje o używaniu myszy w Grach Google Play na PC znajdziesz w artykule Konfigurowanie wprowadzania danych myszą.

W kliencie odtwarzacza emulacja jest wyłączona przez dodanie do pliku manifestu tego kodu:

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

Ta flaga funkcji nie ma wpływu na środowisko programistyczne.

Testuję formaty obrazu

Emulator programisty uruchamia się w formacie 16:9 – w przeciwieństwie do klienta odtwarzacza, który określa współczynnik proporcji na podstawie głównego wyświetlacza. Aby sprawdzić, jak gra wygląda na ekranach różnych graczy, kliknij prawym przyciskiem myszy ikonę na pasku zadań, wybierz Opcje programisty, a potem dowolną opcję w sekcji Współczynnik wyświetlania.

Preferowaną metodą konfigurowania współczynnika proporcji jest użycie android:minAspectRatio i android:maxAspectRatio.

Na przykład gra w orientacji pionowej będzie miała współczynnik proporcji 9/16 lub 0.5625, dlatego warto ustawić maksymalny współczynnik proporcji 1, by gra nie była szersza niż obraz w formacie kwadratowym:

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

I podobnie, gra w orientacji poziomej powinna mieć 16/9 lub około 1.778, więc możesz ustawić minimalny współczynnik proporcji 1, aby obraz nie był cieńszy od kwadratu:

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

Co testować

Jeśli Twoja gra obsługuje w manifeście tylko tryby pionowe, możesz wybrać w menu 9:16 (pionowy), aby zobaczyć, jak będzie wyglądać na komputerach graczy. W przeciwnym razie sprawdź, czy gra działa w najszerszych i najwęższych proporcjach poziomych obsługiwanych w manifeście. Pamiętaj, że 16:9 (wartość domyślna) (lub 9:16 (orientacja pionowa) jest wymagana tylko w przypadku gry w orientacji pionowej).

Testowanie backendów renderowania

Gry Google Play na PC używają warstwy zgodności ANGLE, aby mieć pewność, że wywołania OpenGL ES są prawidłowo obsługiwane przez host PC za pomocą backendu DirectX lub Vulkan. Emulator obsługuje też interfejs Vulkan bezpośrednio, ale nie w trybie OpenGL. Ta warstwa konwertuje też skompresowane formaty tekstur tylko na urządzenia mobilne na formaty zgodne z komputerami. Klikając prawym przyciskiem myszy ikonę na pasku zadań i wybierając Zastąpienie stosu grafiki, możesz ustawić domyślną wartość systemu w systemie lub wymusić włączenie lub wyłączenie interfejsu vulkan na potrzeby testów zgodności.

Co testować

Obsługiwane formaty tekstur i czynności niezbędne do emulacji różnych funkcji mobilnych na komputerze mogą się nieznacznie różnić. Przy profilowaniu i optymalizowaniu gry warto sprawdzić każdy backend.

Profilowanie gry na PC

Emulator wykorzystuje tę samą technologię co klient konsumenta, dlatego jest odpowiednim środowiskiem do profilowania wydajności.

Perfetto to narzędzie do analizy wydajności na urządzeniach z Androidem. Aby zebrać i wyświetlić ślad Perfetto, wykonaj te czynności:

  1. W wierszu poleceń PowerShell rozpocznij śledzenie za pomocą narzędzia adb

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. Flaga --time określa czas trwania zbierania danych śledzenia.W tym przykładzie log czasu ma 10 sekund.
    2. Argumenty po flagi --time wskazują, które zdarzenia mają być śledzone. W tym przykładzie gfx wskazuje grafikę oraz informacje dotyczące zarządzania oknami wm i harmonogramu procesów sched. To są typowe flagi przy profilowaniu gier. Dostępne są pełne informacje.
    3. Flaga --out określa plik wyjściowy, który w następnym kroku jest pobierany z emulatora na hosta.
  2. Pobieranie logu czasu z hosta

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. Otwórz log czasu w interfejsie użytkownika Perfetto

    1. Otwórz ui.perfetto.dev.
    2. Wybierz Otwórz plik śledzenia w lewym górnym rogu w sekcji Nawigacja.
    3. Otwórz do katalogu Downloads/ plik example.trace pobrany w poprzednim kroku.
  4. Sprawdź log czasu w interfejsie użytkownika Perfetto. Wskazówki:

    1. Każdy proces ma własny wiersz, który można rozwinąć, aby wyświetlić wszystkie zawarte w nim wątki. Jeśli profilujesz grę, proces dotyczy prawdopodobnie pierwszego wiersza.
    2. Możesz powiększać i pomniejszać obraz, przytrzymując klawisz Control i używając kółka przewijania.
    3. Gdy używasz zdarzenia sched, w przypadku każdego wątku pojawia się osobny wiersz, który wskazuje, czy wątek jest uruchomiony, wykonywany, uśpiony czy zablokowany.
    4. Po włączeniu zdarzenia takiego jak gfx możesz zobaczyć różne wywołania graficzne wykonywane przez różne wątki. Możesz wybrać poszczególne „wycinki”, aby sprawdzić, ile trwało, lub przeciągnąć wzdłuż wiersza, co spowoduje otwarcie sekcji „wycinki” u dołu i wyświetlić czas trwania poszczególnych wycinków w wybranym przedziale czasu.

Profilowanie grafiki

Profilowanie grafiki można przeprowadzić za pomocą narzędzia RenderDoc.

  1. Ustaw zmienną środowiskową ANDROID_EMU_RENDERDOC na niepusty ciąg znaków (np. "1").
  2. Ustaw zmienną środowiskową TMP na %USERPROFILE%\AppData\LocalLow. Sprawi to, że usługa Renderdoc umieści swoje pliki dziennika w pewnym miejscu w piaskownicy emulatora.

  3. Jeśli korzystasz z backendu Vulkan, Wybierz Ustawienia grafiki > Warstwy niejawne instancji Vulkan i zaznacz VKLAYER_RENDERDOC_Capture.

  4. Uruchom emulator dla deweloperów Gier Google Play na PC. Jeśli jest włączona, na górze widać nakładkę RenderDoc.

  5. Renderowanie możesz uruchamiać w dowolnym momencie przed uruchomieniem emulatora dla deweloperów Gier Google Play na PC lub po nim.

  6. Kliknij Plik > Załącz do działającej instancji i wybierz crosvm.

Określ zmienne środowiskowe

Aby Renderdoc działał, musisz dodać lub zmienić zmienne środowiskowe w systemie Windows. Zmienne środowiskowe możesz zmieniać za pomocą interfejsu użytkownika, programu PowerShell lub cmd.exe.

Korzystanie z interfejsu
  • Naciśnij Win+R, aby otworzyć okno uruchamiania.
  • Wpisz sysdm.cpl, aby otworzyć okno Właściwości systemu.
  • Wybierz kartę Zaawansowane, jeśli nie jest jeszcze aktywna.
  • Kliknij przycisk Zmienne środowiskowe.

Tutaj możesz kliknąć przycisk Nowa, aby utworzyć nową zmienną środowiskową, lub wybrać zmienną i kliknąć przycisk Edytuj, aby ją edytować.

Użyj PowerShell

W oknie PowerShell wpisz:

$Env:VARIABLE_NAME=VALUE

Zastąp VARIABLE_NAME i VALUE wartościami, które chcesz ustawić. Aby na przykład ustawić ANDROID_EMU_RENDERDOC jako typ "1":

$Env:ANDROID_EMU_RENDERDOC="1"
Użyj polecenia cmd.exe

W oknie cmd.exe wpisz:

set VARIABLE_NAME=VALUE

Zastąp VARIABLE_NAME i VALUE wartościami, które chcesz ustawić. Aby na przykład ustawić ANDROID_EMU_RENDERDOC jako typ "1":

set ANDROID_EMU_RENDERDOC="1"

Wskazówki dotyczące Androida 11 (poziom interfejsu API 30) lub nowszego

Gry Google Play na PC zostały zaktualizowane o najnowsze wersje Androida. Oto kilka wskazówek dotyczących pracy z najnowszą wersją Androida.

Zadbaj o aktualność narzędzi

Android Studio instaluje wersję adb zgodną z emulatorem dewelopera. Niektóre silniki gier zawierają jednak starszą wersję adb. W takim przypadku po zainstalowaniu emulatora dewelopera znajdziesz zgodną wersję adb na stronie C:\Program Files\Google\Play Games Developer Emulator\current\emulator.

Jeśli uruchomisz jedną wersję adb, zakończy się druga. Oznacza to, że jeśli Twój silnik gry automatycznie uruchomi własną instancję adb, przy każdym wdrażaniu konieczne może być ponowne uruchomienie i ponowne uruchomienie wersji adb dołączonej do emulatora dewelopera.

Jeśli używasz pakietu aplikacji na Androida, musisz zainstalować najnowszą wersję narzędzia Bundletool z repozytorium GitHub.

Ograniczone miejsce na dane

Android 11 (poziom interfejsu API 30) lub nowszy obejmuje pamięć o ograniczonym zakresie, która zapewnia lepszą ochronę danych aplikacji i użytkowników w pamięci zewnętrznej. Oprócz zapewnienia zgodności gry z wymaganiami dotyczącymi ograniczonego miejsca na dane musisz wykonać dodatkowe czynności, aby wczytać pliki rozszerzeń APK (obb) lub dane zasobów do emulatora dla deweloperów Gier Google Play na PC. Jeśli masz problemy z dostępem do plików z poziomu gry, wykonaj te czynności:

  1. Utwórz katalog, który aplikacja może odczytywać.
  2. Roześlij pliki rozszerzeń do emulatora.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

Widoczność pakietu

Ze względu na nowe reguły widoczności pakietów aplikacje kierowane na Androida 11 (poziom interfejsu API 30) lub nowszego nie mogą wysyłać zapytań o informacje o innych aplikacjach zainstalowanych na urządzeniu. Oznacza to, że nie ma ona dostępu do Usług Google Play, gdy gra jest pobierana z innego źródła przez adb i nie jest instalowana ze Sklepu Play. Aby przetestować IAP w grze pobranej z innego urządzenia, musisz dodać do pakietu „com.android.vending” zapytanie w pliku AndroidManifest.xml w ten sposób:

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

Instalowanie gry w kliencie klienta indywidualnego

Grę możesz zainstalować na kliencie indywidualnym, dopóki nie pojawi się ona w katalogu usług gier Play. Gdy gra ma 1 wersję, możesz utworzyć ścieżkę testu wewnętrznego, która pozwala sprawdzać przyszłe aktualizacje przed jej opublikowaniem.

Klient odtwarzacza nie obsługuje funkcji emulatora dla deweloperów w Grach Google Play na PC, które są przeznaczone dla programistów. Najlepiej sprawdza się to podczas kontroli jakości gry przed jej opublikowaniem, by po jej opublikowaniu sprawdzić wrażenia użytkowników.