Mobil Oyunların APM ile Analizi

Bünyamin Eymen Alagöz
Huawei Developers - Türkiye
4 min readNov 30, 2022
Mobil Oyunların Performans Analizi

Giriş

Selamlar, bu yazımızda Huawei APM kit tanımı, bu kite ihtiyaç duyduğumuz sebepler, Unity oyun motoruna entegrasyon ve oyun özelinde bu kiti nasıl kullanacağımızdan bahsedeceğiz.

APM nedir?

Uygulama Performans Yönetimi (APM) kullanıcıların kullandığı uygulamaların performans metriklerini takip edebilme imkanı sunan bunu da App Gallery Connect’teki panelde geliştiricilere raporlayan bir mobil servistir.

APM özellikleri ve Temel İşlevler

APM Özellikleri

Uygulamalarımızın kullanıcı tarafındaki performans metrikleri ,uygulama sahipleri tarafında büyük önem arz etmektedir. Çünkü her ne kadar fazla sayıda cihazda testler yapılırsa yapılsın, kullanıcıların karşılaşabileceği spesifik performans sorunlarının tamamının yakalanabilmesi test aşamasında pek mümkün değildir. Bu sebeple kullanıcıların tarafında bu metriklerin el edilip raporlanması bize vakit kaybı yaşamadan hızlı güncellemelerle uygulamamızı performans anlamında iyi bir noktaya getirmemizi sağlamaktadır. Huawei APM Kit tam olarak bu ihtiyacı karşılamaktadır.

Uygulamalarda APM kiti kullanıp elde edebileceğimiz metrikler bunlardır.

  • İstenilen kodların analizi
  • Network metriklerinin analizi
  • Uygulama cevap vermeme durumu
  • Yüksek CPU kullanımı
  • Sayfaların tepki süresi
  • Ağ isteği cevap süresi, başarı oranı ve yanıt boyutu

🚧APM Kitin Unity Projesine Entegrasyonu🚧

Öncelikle AGC’de projemizin oluşturulmuş olması gerekiyor. Gerekli detaylara buradan ulaşabilirsiniz.

Gerekli işlemler yapıldıktan sonra App Gallery Connect’te APM kitin aktif hale getirilmesi gerekmektedir.

App Gallery Connect

Sonrasında ise unity projenize hms-unity-plugini entegre etmeniz gerekiyor. Bu linkten pluginin bütün versiyonlarına ulaşabilirsiniz.

Plugini entegre ettikten sonra ise aşağıdaki resimde göreceğiniz gibi APM kiti aktif hale getirmelisiniz.

Reference Game

🚧APM Kitin Kullanımı🚧

Öncelikle, ilgili scriptte EnableCollection(true) ve EnableAnrMonitor(true) metodlarının çalıştırılması gerekmektedir. Sonrasında uygulamamız ilgili metrikleri elde edip raporlayabilecektir.

ANR

Mobil oyunumuz kullanıcı reaksiyonlarına rağmen hiç bir işlem yapmıyorsa ve ekrandaki görüntü sabit ise Application Not Responding olarak bilinen uygulamanın cevap vermemesi (donması) durumu meydana gelmiş demektir. Böyle durumlarda Android işletim sistemi bu şekilde bir popup çıkarmaktadır.

Application Not Responding

APM kit, ANR durumlarını tespit edip App Gallery Connect’te raporlar. Mobil oyunlarda performans kaynaklı ANR durumunun karşımıza çıkması pek olasıdır. Bu sebeple performans problemi meydana getirebilme ihtimali olan durumları birazdan göreceğimiz trace yapısıyla takip etmek sorunu hızlıca tespit etmek için çok önemlidir.

AGC — ANR Report

APM Kit, ANR durumlarına sebebiyet veren komutları da tespit edip raporlamaktadır.

Command Caused By ANR

Özel Olay Analizi

Bazen oyunumuzdaki performans sorunlarını oyunumuzun içerisindeki ya da sistemsel herhangi bir paramatre ile bütünleşik bir analiz yapısı kurmak isteyebiliriz. Bu gibi durumlarda APM Kit bize bir iz izleme altyapısı sunmaktadır. Aşağıda ilgili komutları görebilirsiniz.

Custom Event

Bu trace yapısını gerçek oyun senaryosuyla ele alalım. Mobil oyunlarda cihazları en çok zorlayan aşamalardan bir tanesi unity için konuşacak olursak object pool design patterni kullanılmayan bir FPS oyunu düşünelim. Ayrıca shader optimizasyonu da yapılmamış olsun:). Tüfeğin ateş edildiği senaryoyu ele alalım. Bunların yanında ateş edilen komutun içerisinde bir trace yapısı kuralım ve bu trace yapısında CPU, Frames Per Second ve GPU verilerini sistem komutlarıyla elde edip trace yapısına ekleyelim. Az evvel bahsettiğim optimizasyonu yapılmamış mobil oyunlarda eteş etme işlemi ciddi performans problemine yol açacaktır. Kurulacak sistem sayesinde eteş etme işleminin APM tarafından tutulan metriklerle karşılaştırmalı analizi bize hızlı yerinde tespit imkanı tanıyacaktır.

Custom Event Analyse

Sonuç

Mobil oyun projelerinde yaşanabilecek oyun spesifik sorunların analizi ve raporlanmasıyla ilgili makalemizin sonuna gelmiş bulunuyoruz. Mobil oyun projelerinde özellikle Android platformunda yaşanan performans problemleri kullanıcı kayıplarına yol açtığı için şirketlere azımsanmayacak derecede maddi yük getirmektedir. Bu problemlerin oyunların market testi esnasında giderilmesi zaman faktörünün çok önemli olduğu mobil oyun sektöründe şirketleri kesinlikle 1 adım öne çıkaracaktır. Makalenin faydalı olması dileklerimle herkese iyi okumalar…

Referanslar

--

--