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ştiricilere yönelik bir emülatördür. Oyuncu deneyiminin aksine, kendi paketlerinizi yükleyip hatalarını ayıklayabilirsiniz. Ayrıca, oyununuzun çeşitli PC yapılandırmalarında beklendiği gibi çalıştığından emin olmanıza yardımcı olmak için en-boy oranı, fare emülasyonu ve grafik arka ucu gibi çeşitli oyuncu yapılandırmalarını simüle edebilirsiniz.

Emülatörü Başlatma

Yüklendikten sonra, "Google Play Games Developer Emulator" adlı bir Başlat menüsü öğesi ve emülatörü başlatmak için bir masaüstü kısayolunuz olur. Pencereyi kapattığınızda emülatör, sistem tepsisinde 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.

Sistem tepsisi simgesini sağ tıklayıp Geliştirici Seçenekleri'ni belirledikten sonra Oturumu zorla kapat'ı tıklayarak oturumu kapatabilirsiniz. Bu durumda, emülatör hemen yeniden başlatılır ve sizden tekrar oturum açmanız istenir.

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 parmakla dokunmaya dönüştürülür. Geliştirme için yan yüklenen oyunlar, masaüstünde tıklayıp yukarı sürükleyerek (telefonda veya tablette yukarı kaydırma hareketini taklit ederek) erişebileceğiniz uygulama listesinde görünür.

PC Üzerinde Google Play Games Geliştirici Emülatörü, fare çevirisine ek olarak gezinmeyi kolaylaştırmak 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 pencereli mod arasında geçiş yapma
  • Üst Karakter + Sekme: Giriş SDK'sının mevcut tuş eşlemeleri de 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 Debug Bridge (adb)'i kullanır.

adb uyumluluğu

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

Bu talimatları uygulamak için adb'nin $PATH cihazınızda kullanılabilir olması gerekir. adb komutuyla adb'nın doğru şekilde yapılandırıldığını doğrulayabilirsiniz.adb devices

adb devices
List of devices attached
localhost:6520  device

Oyunu yükleme

  • Google Play Games for PC Emulator uygulamasını başlat
  • Komut istemine adb devices yazın. Şunları görmeniz gerekir:

    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ızı doğrulayın.
    • Bir 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 ile ilgili talimatları inceleyin ve bunun yerine bundletool install-apks kullanın.

  • Oyununuzu çalıştırmak için aşağıdakilerden birini yapı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ı girin.
    • PC Üzerinde Google Play Games Geliştirici Emülatörü'nde oyununuzu ç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.

Oyunda hata ayıklama

Diğer oyunlarda olduğu gibi hata ayıklamak için Android Debug Bridge'i (adb) kullanın. Emülatör, localhost:6520 üzerinden bağlanmış bir cihaz olarak görünür.

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

Günlüklere adb dışında %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs dizininizden de erişilebilir. Burada en kullanışlı olanı, emülatör başladığı andan itibaren adb logcat tarafından yansıtılacak her şeyi temsil eden AndroidSerial.log'dır.

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 ve oyuncular için otomatik olarak etkinleştirilen ve devre dışı bırakılan özellikler üzerinde kontrol sahibi olmak da dahil olmak üzere Android sistemine engelsiz erişebilirsiniz.

Fare girişi test ediliyor

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 ve ardından PC modu (KiwiMouse)'u seçerek doğrudan fare girişini etkinleştirebilirsiniz.

PC Üzerinde Google Play Games'de iki fare modu vardır: fare tıklamalarını tek dokunmaya çeviren bir emülasyon modu ve oyunların fare işlemlerini yerel olarak işlemesine ve işaretçi yakalaması yapmasına olanak tanıyan bir geçiş "PC modu". PC Üzerinde Google Play Games'de fare girişiyle ilgili ayrıntılar için Fare girişini ayarlama başlıklı makaleyi inceleyin.

Aşağıdaki kodu manifestinize ekleyerek oynatıcı istemcisinde emülasyonu devre dışı bırakın:

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

Bu özellik işaretinin geliştirme ortamında 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ıyla başlatılır. Sistem tepsisi simgesini sağ tıklayıp Geliştirici Seçenekleri'ni ve ardından En-Boy 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 özelliklerini 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 ayarlamak isteyebilirsiniz:

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

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

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

Neleri test edebilirsiniz?

Oyununuz yalnızca manifest dosyasındaki dikey modları destekliyorsa oyuncuların bilgisayarlarında nasıl göründüğünü görmek için açılır listeden 9:16 (Dikey) seçeneğini belirleyebilirsiniz. Aksi takdirde, oyununuzun manifest dosyanızda desteklediğiniz en geniş ve en dar yatay oranlarda çalıştığını doğrulayın. 16:9 (Varsayılan) (veya oyununuz yalnızca dikey modda çalışıyorsa 9:16 (Dikey)) en boy oranının tam sertifika için gerekli olduğunu unutmayın.

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

PC Üzerinde Google Play Games, oyunlarınızı oluşturmak için Vulkan'ı kullanır. Bu, hem Android hem de PC ortamlarında yaygın olarak kullanılan bir teknolojidir. PC ve Android ortamlarını yalıtmak için korumalı alan katmanı kullanılır. Birçok oyun, oluşturma için hâlâ OpenGL ES'yi kullandığından ANGLE, OpenGL ES komutlarını ana bilgisayarla 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ştiricilerin harcadığı çabayı en aza indirir. En iyi sonuçları elde etmek 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 artefaktları varsa kaynak grafiklerinizi inceleyin ve PC dostu bir biçime geçmeyi düşünün. Normal veya küp harita sorunlarını tespit etmek genellikle albedo sorunlarını tespit etmekten daha zor olduğundan, daha gelişmiş efektler için kullanılan dokulara dikkat edin.

ANGLE'ın OpenGL ES komutlarınızı Vulkan'a dönüştürmesi biraz ek yük oluşturur. Beklenen performans hedeflerinizi karşıladığınızı doğrulayın ve Vulkan tabanlı bir oluşturucuya geçmeyi düşünün.

PC oyununuzun profilini çıkarma

Emülatör, tüketici istemcisiyle aynı teknolojiyi kullandığından performans profili oluşturma için uygun bir ortamdır.

Perfetto, Android'de performansı analiz etmek için kullanılan bir araçtır. Aşağıdaki adımları uygulayarak Perfetto izi toplayıp 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 izlemenin süresini belirtir. Bu örnekte izleme 10 saniyedir.
    2. --time işaretinden sonraki bağımsız değişkenler, hangi etkinliklerin izleneceğini gösterir. Bu örnekte gfx grafikleri, wm pencere yönetimini ve sched işlem planlama bilgilerini gösterir. Bunlar, oyunlarda profilleme için kullanılan yaygın işaretlerdir ve tam referans mevcuttur.
    3. --out işareti, çıkış dosyasını belirtir. Bu dosya, bir sonraki adımda emülatörden ana makineye çekilir.
  2. Barındırıcınızdan izleme çekme

    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/ dizininize 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 genişletilerek ilgili işlemdeki tüm iş parçacıkları gösterilebilir. Bir oyunun profilini oluşturuyorsanız işlemi büyük olasılıkla ilk satırdadır.
    2. Control tuşunu basılı tutarak ve kaydırma tekerleğini kullanarak yakınlaştırabilir ve uzaklaştırabilirsiniz.
    3. sched etkinliği kullanılırken her iş parçacığı için bir satır bulunur. Bu satırda, iş parçacığının durumu çalışıyor, çalıştırılabilir, uyuyor veya engellenmiş olduğunda gösterilir.
    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. Ne kadar sürdüğünü görmek için tek tek "dilimleri" seçebilir veya bir satırı sürükleyerek alt kısımda bir "dilimler" bölümünün açılmasını sağlayabilir ve seçtiğiniz zaman aralığında tüm dilimlerin ne kadar sürdüğünü görebilirsiniz.

Grafik Profil Oluşturma

RenderDoc ile bazı grafik profil oluşturma işlemleri yapılabilir.

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

  3. Vulkan arka ucunu kullanıyorsanız. Grafik Ayarları > Vulkan Instance Implicit Layers'ı (Vulkan Örneği Örtülü Katmanları) 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 yerleşimi çizilir.

  5. RenderDoc'u, PC Üzerinde Google Play Games Geliştirici Emülatörü başlatılmadan önce veya sonra istediğiniz zaman başlatabilirsiniz.

  6. Dosya > Çalışan örneğe ekle'yi tıklayın ve crosvm'yi seçin.

Ortam değişkenlerini belirtme

Renderdoc'un çalışması için Windows'da ortam değişkenleri eklemeniz veya değiştirmeniz gerekir. Ortam değişkenlerini kullanıcı arayüzünü, PowerShell'i veya cmd.exe'yi kullanarak 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.
  • Henüz etkin değilse Gelişmiş sekmesini seçin.
  • Environment Variables (Ortam Değişkenleri) düğmesini tıklayın.

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

PowerShell'i kullanma

PowerShell penceresinde şunu 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 şunu yazın:

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

cmd.exe penceresinde şunu 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 şunu yazın:

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 yeni Android sürümleriyle güncellenir. Android'in en yeni sürümüyle çalışmaya yönelik bazı ipuçlarını aşağıda bulabilirsiniz.

Araçları güncel tutma

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ın uyumlu bir sürümünü C:\Program Files\Google\Play Games Developer Emulator\current\emulator adresinde bulabilirsiniz.

adb'nın bir sürümünü başlattığınızda diğer sürüm sonlandırılır. Bu nedenle, oyun motorunuz kendi adb örneğini otomatik olarak başlatırsa her dağıtım yaptığınızda geliştirici emülatörüyle birlikte gelen adb sürümünü yeniden başlatıp yeniden bağlamanız gerekebilir.

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

Kısıtlı Depolama

Android 11 (API düzeyi 30) veya sonraki sürümlerde, harici depolama alanındaki uygulama ve kullanıcı verileri için daha iyi koruma sağlayan kapsamlı depolama özelliği bulunur. Oyununuzu kapsamlı depolama gereksinimleriyle uyumlu hale getirmenin yanı sıra APK genişletme dosyalarını (obb) veya öğe verilerini PC Üzerinde Google Play Games Geliştirici Emülatörü'ne yüklemek için ek adımlar uygulamanız gerekir. Oyununuzdan bu dosyalara erişirken sorun yaşıyorsanı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üğü

Android 11 (API düzeyi 30) veya sonraki sürümleri hedefleyen uygulamalar, yeni paket görünürlüğü kuralları nedeniyle bir cihaza yüklenen diğer uygulamalar hakkında bilgi sorgulayamıyor. Bu durumda, oyununuz Play Store üzerinden yüklenmek yerine adb aracılığıyla başka kaynaktan yüklendiğinde Play Hizmetleri'ne erişimi engellenir. Uygulama dışından yüklenen bir oyunla uygulama içi ürününüzü 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>

Tüketici istemcisine oyununuzu 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 dahili test kanalı oluşturabilirsiniz.

Oyuncu istemcisi, PC Üzerinde Google Play Games Geliştirici Emülatörü'nün geliştirici odaklı özelliklerini desteklemez. Bu özellik, oyunun yayınlanmasından önce kalite kontrolü yapmak ve ilk yayınlandıktan sonra oyuncu deneyiminin baştan sona nasıl olduğunu test etmek için en iyi şekilde kullanılır.