Android Performance Tuner'a (Unity) genel bakış

Bu kılavuzda, Unity 2017.4 veya sonraki sürümlerden kare süresi verilerini kaydetmek ve yüklemek için Unity eklentisinin nasıl kullanılacağı açıklanmaktadır.

C veya C++ kullanan oyun motorları için yerel oyun motorları kılavuzuna bakın.

Arka plan

Oyun deneyiminin temel bileşenlerinden biri oluşturma performansıdır. Oluşturma performansı aşağıdaki iki girişin sonucudur:

  • Kare hızı: Bir karenin çizilme sıklığı.
  • Grafik kalite ayarları: Simülasyon doğruluk düzeyinin yanı sıra grafikler de dahil olmak üzere, bir karenin sunulduğu kalite seviyesi.

Oyunlarda iyi oluşturma performansı şu şekilde tanımlanır:

  • Kararlı ve tutarlı bir kare hızı (yani, istenen sıklıkta oluşturulan karelerin yüzdesi) sunma.
  • Oyunun türüne bağlı olarak genellikle 30 veya 60 FPS olan ve kararlılığı korurken kareleri mümkün olan en yüksek sıklıkta oluşturma.
  • İstenilen, sabit bir kare hızına ulaşmaya devam ederken ekran boyutuna ve yoğunluğuna göre kullanıcı için ayrıntı düzeyini en üst düzeye çıkarma.

Android Frame Pacing kitaplığı, kare süresindeki varyasyonun çoğunu sınırlandırarak oyunlar için sabit bir kare hızı sağlar. Kare sürelerinde kalan değişim, oyundaki belirli sahnelerde gösterilen ayrıntı düzeyine ve cihazın grafik özelliklerine bağlıdır. Android Performance Tuner'ı kullanarak oyun sırasında kare süresinin hedefinizden daha yavaş veya hızlı olduğu zamanları belirleyebilir ve bu sorunlar ile fırsatları şunlar arasında ilişkilendirebilirsiniz:

  • Belirli kalite ayarları
  • Oyununuzdaki belirli sahneler
  • Belirli cihaz modelleri veya cihaz özellikleri

Veri kaydetme ve yükleme

Tuning Fork kitaplığı, onay işlevlerinden birinin Android Frame Pacing kitaplığı tarafından (veya Frame Pacing Kitaplığı'nın bulunmadığı eski Unity sürümleri için Unity motoru tarafından) her kare tarafından çağrılmasına dayanır. Kitaplıkta bu onay işareti bilgileri histogramlar halinde toplanır daha sonra bu bilgiler, bir HTTP uç noktası üzerinden düzenli olarak Google Play'e yüklenir. Her onay işareti, bir araç anahtarı ve bir ek açıklama ile ilişkili olarak kaydedilir. Ek açıklamaları Unity eklentisini kullanarak tanımlarsınız.

Enstrüman tuşları

Araç tuşu, onay işaretinin çerçevede nereden geldiğini ve her bir tik işlevi çağrısına iletilmesi gereken bir tam sayı olduğunu belirtir. Bu işlem Unity eklentisi tarafından otomatik olarak yapılır. Oyununuzun Unity ayarlarında Optimize Edilmiş Çerçeve İlerleme Hızı seçeneği etkinse (Unity 2019.3.14 veya sonraki sürümlerde kullanılabilir) Android Performance Tuner, geliştirilmiş metrikleri raporlamak için Android Frame Pacing kitaplığındaki bilgileri kullanır.

Ek Açıklamalar

Ek açıklamalar, bir onay işareti kaydedildiğinde oyununuzun ne yaptığıyla ilgili bağlamsal bilgiler verir. Örneğin, bir ek açıklama aşağıdakilerden herhangi birini tanımlayabilir:

  • Oyunun mevcut seviyesi
  • Belirli bir sahne yükleniyor
  • Ekranda "büyük patron" görünüyor
  • Oyun durumu ile ilgili diğer tüm bilgiler

Ek açıklamalar, Unity eklentisi tarafından sağlanan iletişim kutusunda tanımlanır.

Tuning Fork kitaplığı, ek açıklamaları ve doğruluk parametrelerini depolamak için Google'ın protokol arabelleği biçimini kullanır. Bu, genişletilebilir ve yapılandırılmış verilere yönelik iyi tanımlanmış, çok dilli bir protokoldür. Daha fazla bilgi için Protokol Arabelleği dokümanlarına bakın.

Doğruluk parametreleri

Doğruluk parametreleri, oyununuzun grafik kalitesini (örgü ayrıntı düzeyi, doku çözünürlüğü ve kenar yumuşatma yöntemi gibi) etkiler. Ek açıklamalarda olduğu gibi, doğruluk parametreleri Unity eklentisi tarafından sağlanan iletişim kutusunda tanımlanır.

Bellek ve CPU ek yükü

Tuning Fork kitaplığının kullandığı tüm bellek, oyun sırasında sürprizlerle karşılaşmamak için ilk kullanıma sunum sırasında ayrılır. Verilerin boyutu araç anahtarlarının sayısına, olası ek açıklamaların sayısına ve her histogramdaki paket sayısına bağlıdır. Her paket için bu dört baytın çarpımının katıdır. Ayrıca tüm histogramların çift arabellekli biçimde teslim edilebilmesi için iki kopya bulunur.

Gönderim ayrı bir ileti dizisinde gerçekleşir ve onay işaretlerini engellemez. Yükleme bağlantısı yoksa gönderim daha sonra yüklenmek üzere sıraya alınır.

Onay işareti işlevinin çağrılmasında çok az işlem ek yükü olur. Bu işlem, sadece histogram paketleri dizisindeki bir dizini hesaplar ve bir tam sayı sayısını artırır.

Web istekleri

Kitaplık, sunucu uç noktasına iki tür istek gönderir:

  • İlk kullanıma hazırlama sırasında bir generateTuningParameters isteği
  • Oyun sırasında düzenli aralıklarla sunucuya veri göndermek için bir uploadTelemetry isteği

Çevrimdışı oynatıcılar

Başlatma sırasında bağlantı yoksa istek, artan geri yükleme süresiyle birkaç kez yeniden denenir. Yükleme sırasında bağlantı yoksa yükleme önbelleğe alınır. Yüklemeler, geçici depolama alanında dosyalar olarak saklanır.

Şartlar

Eklentiyi oyununuzda kullanmak için Unity'nin desteklenen bir sürümünü kullanın:

  • Unity 2017.4 veya sonraki sürümler ve .NET 4.6 sürümü
  • APK Genişletme dosyalarını kullanmak için Unity 2018.2 gerekir
  • İyileştirilmiş kare hızı ve GPU ölçümleri için Unity 2019.3.14 veya sonraki sürümler gerekir
  • Adreslenebilir sahne desteği için Unity 2019.3 veya sonraki sürümleri ve Adreslenebilirler paketi 1.19.4 veya sonraki sürümleri gerekir.

Android Performance Tuner'ı Unity'ye entegre etme

Android Performance Tuner'ı Unity'de entegre etme hakkında bilgi edinmek için API'yi etkinleştirme bölümüne bakın.