PC Üzerinde Google Play Games Geliştirici Emülatörü ile geliştirme

PC Üzerinde Google Play Games Geliştirici Emülatörü, PC Üzerinde Google Play Games için geliştirici odaklı bir emülatördür. Oynatıcı deneyiminin aksine, kendi paketlerinizi yükleyebilir ve hata ayıklayabilirsiniz. Ayrıca, oyununuzun çeşitli PC yapılandırmalarında beklendiği gibi performans göstermesini sağlamak için en boy oranı, fare emülasyonu ve grafik arka ucu gibi çeşitli oyuncu yapılandırmalarını da simüle edebilirsiniz.

Emülatörü başlatma

Yüklendikten sonra, "Google Play Games Geliştirici Emülatörü" başlat menüsü öğesi ve emülatörü başlatmak için bir masaüstü kısayolu alırsınız. Pencereyi kapattığınızda emülatör, sistem tepsinizde kalır.

Oturum aç

Emülatörü ilk kez çalıştırdığınızda Google Hesabınızda oturum açmanız istenir. Geliştirme için kullanmayı planladığınız giriş kimlik bilgilerini kullanın.

Oturumunuzu kapatmak için sistem tepsisi simgesini sağ tıklayın, Geliştirici Seçenekleri'ni ve ardından Oturumu kapat'ı tıklayın. Bunu yaptığınızda emülatör hemen yeniden başlatılır ve tekrar oturum açmanızı ister.

Uygulamayı başlattıktan sonra tipik bir Android ana ekranı görürsünüz. Sol fare tıklamaları, fare emülasyonu modunda olduğu gibi doğrudan parmak dokunuşlarına dönüştürülür. Geliştirme için harici olarak yüklenen oyunlar, masaüstünde tıklayıp yukarı sürükleyerek (telefon veya tablette yukarı kaydırma işlemini taklit ederek) ulaşabileceğiniz uygulama listesinde görünür.

PC Üzerinde Google Play Games Geliştirici Emülatörü, fare çevirisine ek olarak gezinmeyi iyileştirmek için klavye kısayolları da sunar:

  • ctrl + h: Ana sayfa düğmesine basın
  • ctrl + b: geri düğmesine basın
  • F11 veya alt + enter: Tam ekran ve pencere modu arasında geçiş yapma
  • Üst Karakter + Sekme: Giriş SDK'sı için geçerli tuş eşlemeleri dahil olmak üzere Google Play Games on PC yer paylaşımını açar.

Oyun yükleme

PC Üzerinde Google Play Games Geliştirici Emülatörü, paketleri yüklemek için Android Hata Ayıklama Köprüsü'nü (adb) kullanır.

adb uyumluluğu

adb'ün mevcut sürümleri, PC Üzerinde Google Play Games Geliştirici Emülatörü ile uyumludur. Ayrıca, emülatör yüklenirken C:\Program Files\Google\Play Games Developer Emulator\current\emulator konumuna uyumlu bir sürüm yüklenir.

Bu talimatları uygulayabilmeniz için $PATH cihazınızda adb yüklü olmalıdır. adb değerinin adb devices komutuyla doğru şekilde yapılandırıldığını doğrulayabilirsiniz

adb devices
List of devices attached
localhost:6520  device

Oyunu yükleme

  • Google Play Games for PC Emulator uygulamasını başlat
  • Komut isteminize adb devices yazın. Aşağıdakileri görürsünüz:

    adb devices
    List of devices attached
    localhost:6520 device
  • Sorun Giderme:

    • Hata alırsanız Adb uyumluluğu bölümündeki talimatları uyguladığınızdan emin olun.
    • Cihaz görmüyorsanız 6520 bağlantı noktası üzerinden yeniden bağlanmayı deneyin:
    adb connect localhost:6520
  • Oyununuzu yüklemek için adb install path\to\your\game.apk yazın. Android App Bundle (aab) oluşturduysanız bundletool talimatlarını inceleyin ve bunun yerine bundletool install-apks kullanın.

  • Aşağıdakilerden birini yaparak oyununuzu çalıştırın:

    • Oyununuzu çalıştırmak için adb shell monkey -p your.package.name 1 yazın. your.package.name yerine oyununuzun paket adını yazın.
    • PC Üzerinde Google Play Games Geliştirici Emülatörü'nde oyunu çalıştırmak için simgeyi tıklayın. Android telefonda olduğu gibi, yüklü oyunların listesini görmek için ana ekranda "yukarı kaydırmanız" gerekir.

Oyunlarda hata ayıklama

Hata ayıklama işlemini diğer oyunlarda yaptığınız gibi Android Debug Bridge (adb) ile gerçekleştirin. Emülatör, localhost:6520 üzerinden bağlı bir cihaz olarak görünür.

adb logcat, Android Studio da dahil olmak üzere logcat çıkışını güzelleştirmeye veya filtrelemeye yardımcı olan araçlar gibi beklendiği gibi çalışır.

Günlüklere adb'e ek olarak %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs dizininizden de erişilebilir. Burada en yararlı olan, adb logcat'un emülatör başladığı andan itibaren yankılanacağı her şeyi temsil eden AndroidSerial.log'tir.

Geliştirici ayarları

PC Üzerinde Google Play Games Geliştirici Emülatörü, son kullanıcı deneyiminden ziyade geliştirici verimliliğine odaklanır. Bu sayede, PC Üzerinde Google Play Games deneyimi yerine standart Android başlatıcıyı kullanmak da dahil olmak üzere Android sistemine engelsiz erişebilir ve oyuncular için otomatik olarak etkinleştirilen ve devre dışı bırakılan özellikler üzerinde kontrol sahibi olabilirsiniz.

Fare girişini test etme

Geliştirme sırasında PC Üzerinde Google Play Games Geliştirici Emülatörü, doğrudan fare girişi yerine varsayılan olarak dokunma emülasyonunu kullanır. Sistem tepsisi simgesini sağ tıklayıp Geliştirici Seçenekleri'ni, ardından PC modu (KiwiMouse)'nu seçerek doğrudan fare girişini etkinleştirebilirsiniz.

PC Üzerinde Google Play Games'in iki fare modu vardır: Fare tıklamalarını tek dokunuşlara dönüştüren taklit modu ve oyunların fare hareketlerini doğal olarak işlemesine ve işaretçi yakalamasına olanak tanıyan geçişli "PC modu". PC Üzerinde Google Play Games'de fare girişi hakkında ayrıntılı bilgi için Fare girişini ayarlama başlıklı makaleyi inceleyin.

Oynatıcı istemcisinde, aşağıdaki ifadeyi manifest dosyanıza ekleyerek emülasyon devre dışı bırakılır:

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

Bu özellik işaretinin geliştirme ortamında herhangi bir etkisi yoktur.

En boy oranlarını test etme

Geliştirici emülatörü, en boy oranını birincil ekrandan alan oynatıcı istemcisinin aksine 16:9 en boy oranında açılır. Sistem tepsisi simgesini sağ tıklayıp Geliştirici Seçenekleri'ni ve ardından Ekran Oranı bölümündeki herhangi bir seçeneği belirleyerek oyunun farklı oyuncuların ekranlarında nasıl göründüğünü test edebilirsiniz.

En boy oranınızı yapılandırmak için tercih edilen yöntem android:minAspectRatio ve android:maxAspectRatio kullanmaktır.

Örneğin, dikey bir oyunun en boy oranı 9/16 veya 0.5625 olur. Bu nedenle, oyununuzun kareden daha geniş olmasını önlemek için maksimum en boy oranını 1 olarak ayarlayabilirsiniz:

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

Benzer şekilde, yatay bir oyun 16/9 veya yaklaşık 1.778 boyutunda olur. Bu nedenle, kareden daha ince olmasını önlemek için minimum en boy oranını 1 olarak ayarlayabilirsiniz:

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

Neleri test edebilirsiniz?

Oyununuz manifest'te yalnızca dikey modları destekliyorsa açılır menüden 9:16 (Dikey)'i seçerek oyunun oyuncuların bilgisayarlarında nasıl göründüğünü görebilirsiniz. Aksi takdirde, 16:9 (Varsayılan)'ın (veya oyununuz yalnızca dikeyse 9:16 (Dikey)'in) tam sertifika için gerekli olduğunu unutmayın ve oyununuzun manifest'te desteklediğiniz en geniş ve en dar yatay oranlarda çalıştığını doğrulayın.

Oluşturma arka uçlarını test etme

PC Üzerinde Google Play Games, oyunlarınızı oluşturmak için Vulkan'ı kullanır. Vulkan, hem Android hem de PC ortamlarında yaygın olarak kullanılan bir API'dir. PC ve Android ortamlarını yalıtmak için korumalı alan katmanı kullanılır. Birçok oyunda oluşturma işlemi için hâlâ OpenGL ES kullanıldığı için ANGLE, OpenGL ES komutlarını ana PC ile uyumlu Vulkan komutlarına dönüştürür.

Benzer şekilde PC Üzerinde Google Play Games, ETC1 ve ETC2 gibi mobil uyumlu doku biçimlerini çalışma zamanında PC uyumlu biçimlere otomatik olarak dönüştürerek oyun uyumluluğunu en üst düzeye çıkarır ve geliştirici çalışmalarını en aza indirir. En iyi sonuçlar için DXTC veya BPTC gibi PC GPU'ları tarafından desteklenen biçimleri kullanarak bu dönüşümden kaçının.

Neleri test edebilirsiniz?

Oyununuzda beklenmedik oluşturma hataları yaşanıyorsa kaynak grafiklerinizi inceleyin ve PC'ye uygun bir biçime geçmeyi düşünün. Normal veya küp haritası sorunlarının genellikle albedo ile ilgili sorunlardan daha zor fark edilmesi nedeniyle, daha gelişmiş efektler için kullanılan dokulara çok dikkat edin.

ANGLE'ın OpenGL ES komutlarınızı Vulkan'a dönüştürmesi bazı ek maliyetler getirir. Beklenen performans hedeflerinize ulaştığınızdan emin olun ve Vulkan tabanlı bir oluşturma aracına geçmeyi düşünün.

PC oyununuzun profilini çıkarma

Emülatör, tüketici istemciyle aynı teknolojiyi kullandığından performans profilleme için uygun bir ortamdır.

Perfetto, Android'deki performansı analiz etmek için kullanılan bir araçtır. Aşağıdaki adımları uygulayarak bir Perfetto izlemesi toplayabilir ve görüntüleyebilirsiniz:

  1. PowerShell isteminde adb kullanarak izleme başlatın

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. --time işareti, toplanacak izleme süresini belirtir. Bu örnekte, izleme 10 saniyedir.
    2. --time işaretinden sonraki bağımsız değişkenler, hangi etkinliklerin izleneceğini belirtir. Bu örnekte gfx grafikleri, wm pencere yönetimini ve sched işlem planlama bilgilerini gösterir. Bunlar, oyunların profilini oluşturmak için kullanılan yaygın işaretlerdir ve tam referans mevcuttur.
    3. --out işareti, bir sonraki adımda emülatörden ana makineye çekilen çıkış dosyasını belirtir.
  2. İzi ana makinenizden alma

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. İzlemeyi Perfetto kullanıcı arayüzünde açma

    1. ui.perfetto.dev adresini açın.
    2. Sol üst köşedeki Gezinme bölümünde İzleme dosyasını aç'ı seçin.
    3. Önceki adımda indirdiğiniz example.trace dosyasını Downloads/ dizininde açın.
  4. Perfetto kullanıcı arayüzünde izlemeyi inceleyin. Bazı ipuçları:

    1. Her işlemin kendi satırı vardır. Bu satır, ilgili işlemin tüm iş parçacıklarını göstermek için genişletilebilir. Bir oyunun profilini çıkarıyorsanız bu oyunun işlemi büyük olasılıkla ilk satırdadır.
    2. Denetimli tuşunu basılı tutarak ve kaydırma çubuğunu kullanarak yakınlaştırabilir ve uzaklaştırabilirsiniz.
    3. sched etkinliği kullanıldığında, her iş parçacığı için iş parçacığının durumunun ne zaman çalıştığını, çalışılabilir olduğunu, uykuda olduğunu veya engellendiğini gösteren bir satır bulunur.
    4. gfx gibi bir etkinliği etkinleştirdiğinizde, çeşitli iş parçacıkları tarafından yapılan çeşitli grafik çağrılarını görebilirsiniz. "Dilim"leri tek tek seçerek ne kadar süre sürdüklerini görebilir veya bir satırı sürükleyerek alt kısımda "dilim" bölümünün açılmasını sağlayabilirsiniz. Bu bölüm, seçtiğiniz zaman aralığındaki tüm dilimlerin ne kadar sürdüğünü gösterir.

Grafik Profil Oluşturma

RenderDoc ile bazı grafik profilleri oluşturabilirsiniz.

  1. Ortam değişkenini ANDROID_EMU_RENDERDOC boş olmayan bir dize ("1" gibi) olarak ayarlayın.
  2. TMP ortam değişkenini %USERPROFILE%\AppData\LocalLow olarak ayarlayın. Bu, Renderdoc'a günlük dosyalarını emülatör korumalı alanında erişilebilir bir yere yerleştirmesini söyler.

  3. Vulkan arka ucunu kullanıyorsanız. Grafik Ayarları > Vulkan Örneği Örtülü Katmanları'nı seçin ve VKLAYER_RENDERDOC_Capture'ın işaretli olduğundan emin olun.

  4. PC Üzerinde Google Play Games Geliştirici Emülatör'ünü başlatın. Destek etkin olduğu sürece üstte bir RenderDoc yer paylaşımı çizilir.

  5. PC Üzerinde Google Play Games Geliştirici Emülatörü'nün kullanıma sunulmasından önce veya sonra dilediğiniz zaman RenderDoc'u başlatın.

  6. Dosya > Çalışmakta Olan Örneğe Ekle'yi tıklayın ve crosvm'i seçin.

Ortam Değişkenlerini Belirtme

Renderdoc'un çalışması için Windows'ta ortam değişkenleri eklemeniz veya değiştirmeniz gerekir. Kullanıcı arayüzünü, PowerShell'i veya cmd.exe'yi kullanarak ortam değişkenlerini değiştirebilirsiniz.

Kullanıcı arayüzünü kullanma
  • Çalıştır iletişim kutusunu açmak için Win+R tuşlarına basın.
  • Sistem Özellikleri penceresini açmak için sysdm.cpl yazın.
  • Etkin değilse Gelişmiş sekmesini seçin.
  • Ortam Değişkenleri düğmesini tıklayın.

Buradan, yeni bir ortam değişkeni oluşturmak için Yeni düğmesini tıklayabilir veya bir değişken seçip Düzenle düğmesini tıklayarak değişkeni düzenleyebilirsiniz.

PowerShell'i kullanma

PowerShell penceresinde şunları yazın:

$Env:VARIABLE_NAME=VALUE

VARIABLE_NAME ve VALUE değerlerini, ayarlamak istediğiniz değerlerle değiştirin. Örneğin, ANDROID_EMU_RENDERDOC değerini "1" olarak ayarlamak için:

$Env:ANDROID_EMU_RENDERDOC="1"
cmd.exe'yi kullanma

cmd.exe penceresinde şunları yazın:

set VARIABLE_NAME=VALUE

VARIABLE_NAME ve VALUE değerlerini, ayarlamak istediğiniz değerlerle değiştirin. Örneğin, ANDROID_EMU_RENDERDOC değerini "1" olarak ayarlamak için:

set ANDROID_EMU_RENDERDOC="1"

Android 11 (API düzeyi 30) veya sonraki sürümler için ipuçları

PC Üzerinde Google Play Games, en son Android sürümleriyle güncellenir. Android'in en son sürümüyle çalışmayla ilgili bazı ipuçlarını aşağıda bulabilirsiniz.

Araçları güncel tutun

Android Studio, geliştirici emülatörüyle uyumlu bir adb sürümü yükler. Ancak bazı oyun motorları adb'nin eski bir sürümünü içerir. Bu durumda, geliştirici emülatörünü yükledikten sonra adb'ün uyumlu bir sürümünü C:\Program Files\Google\Play Games Developer Emulator\current\emulator adresinde bulabilirsiniz.

adb'nin bir sürümünü başlatırsanız diğeri sonlandırılır. Bu, oyun motorunuz kendi adb örneğini otomatik olarak başlatırsa dağıtım yaparken geliştirici emülatörüyle birlikte gelen adb sürümünü yeniden başlatmanız ve yeniden bağlamanız gerekebileceği anlamına gelir.

Android App Bundle kullanıyorsanız Bundletool'un en son sürümünü GitHub deposundan yüklemeniz gerekir.

Kısıtlı Depolama

Android 11 (API düzeyi 30) veya sonraki sürümler, harici depolama alanındaki uygulama ve kullanıcı verilerine daha iyi koruma sağlayan kapsamlı depolama özelliğini içerir. Oyununuzu kapsamlı depolama alanı şartlarıyla uyumlu hale getirmenin yanı sıra APK genişletme dosyalarını (obb) veya öğe verilerini PC Üzerinde Google Play Games Geliştirici Emulator'una yüklemek için ek adımlar uygulamanız gerekir. Oyununuzdan bu dosyalara erişirken sorun yaşarsanız aşağıdaki adımları uygulayın:

  1. Uygulamanızın okuyabileceği bir dizin oluşturun.
  2. Genişletme dosyalarınızı emülatöre gönderin.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

Paket Görünürlüğü

Yeni paket görünürlüğü kuralları nedeniyle, Android 11 (API düzeyi 30) veya sonraki sürümleri hedefleyen uygulamaların, cihazda yüklü diğer uygulamalar hakkında bilgi sorgulamasına izin verilmez. Bu, oyununuzun Play Store üzerinden yüklenmek yerine adb üzerinden başka kaynaktan yüklendiğinde Play Hizmetleri'ne erişmesinin engellendiği anlamına gelir. IAP'nizi, harici olarak yüklenen bir oyunla test etmek için AndroidManifest.xml dosyanızdaki "com.android.vending" paketine aşağıdaki şekilde bir sorgu eklemeniz gerekir:

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

Oyununuzu tüketici istemcisinde yükleme

Play Games Hizmetleri kataloğunda listelenene kadar tüketici istemcisine oyun yükleyemezsiniz. Oyununuzun tek bir sürümü olduktan sonra, gelecekteki güncellemeleri yayınlamadan önce doğrulamak için bir dahili test kanalı oluşturabilirsiniz.

Oynatıcı istemcisi, PC Üzerinde Google Play Games Geliştirici Emülatörü'nün geliştirici odaklı özelliklerini desteklemez. Bu yöntem, oyunu yayınlanmadan önce kalite kontrolü yapmak veya ilk sürümden sonra uçtan uca oyuncu deneyimini test etmek için en iyi şekilde kullanılır.