Tem.13

Adobe Scout ile Performans Testi Uygulaması

Bir uygulama veya oyun yaptığınızda, her ne kadar oyununuzun sorunsuz olduğunu düşünseniz de, mutlaka bir performans analizine sokmanız gerekmektedir. Oyununuzu yaparken kullanmış olduğunuz cihazlar yüksek kalitede donanıma sahip olabilir, ancak piyasa böyle değildir. Hala eski model kullanan mobil oyun severler olabilir. Bunları da düşünerek, hazırlamış olduğunuz oyunun daha düşük kaynaklar kullanarak performanslı bir şekilde çalışmasını sağlamalısınız. Aynı şekilde, oyunun belli bölgelerinde veya olaylarında donmalarla kilitlenmeler oluyorsa, bunları da yine tespit edip sorunu çözmeniz gerekir.

Eğer ki profesyonel bir oyun geliştiricisi olmak istiyorsanız, “yaptım bunu, oldu” demek yerine, “acaba yaptığım oyunda hatalar var mı ve daha da iyileştirebilir miyim” düşüncesi ile hareket etmeniz gerekir.

Mobil Oyun için Telemetry’i Aktif Etmek

Adobe Scout ile oyunu test ederken SimController üzerinden işlemlerimizi yapacağız. Varsayılan ayarlarla, SWF dosyaları üzerinde Telemetry opsiyonu kapalıdır. Telemetry takibini aktif etmek için aşağıdaki yolu izleyin.

Geliştirme Ortamı için Telemetry’i Aktif Etmek

Adobe Flash’ta Files > Publish Settings yolunu izleyin. Ardından açılan panelde Enable detailed telemetry kutucuğunu tıklayarak aktif edin ve paneli kapatın.

iOS için Telemetry’i Aktif Etmek

Adobe Flash’ta Files > AIR for iOS Settings yolunu izleyin. Ardından Deployment sekmesine girin. Açılan panelde Telemety options kısmında Enable samper kutucuğunu tıklayarak aktif edin ve paneli kapatın. Tabi iOS deployment type seçeneğinden de test moduna almayı unutmayın.

Android cihazlar için telemetry takibi şu an için bulunmamaktadır.

Mobil Oyunu Test Etmek ve Oynanış Süresince Log Tutmak

Bir telemetri kaydı tutmak için daha önceki bölümde ilgili opsiyonu açmayı öğrenmiştik. Bir sonraki adımda ise izlemeniz gereken yol şöyledir.

Adobe Scout programını açın. Ekranın sol tarafında yer alan Settings for new session panelinden telemetri takip ayarlarından istediklerinizi seçerek aktif edin.

Daha sonra ya Adobe Flash üzerinden SimController ile mobil oyununuzu başlatın. Test etmek istediğiniz süre boyunca kayıt tutun, normal bir şekilde oyununuzu oynayın. Menülere girin, oyunu başlatın, oyunu zorlayacak şeyler yapın… Yani bir nevi stres testi uygulayın. Sonra da oyunu kapatın.

Örneğimizde, aşağıdaki gibi bir Flappy Birds benzeri kodlamış olduğum oyunu test ettim.

Adobe Scout açık olduğu için ve bu uygulama örneğimizde de telemetri takibi açık olduğundan oyunumuz takibe alındı ve analizler yapıldı.

Adobe Scout’un sol alt köşesinden, uygulamanızın adını bulun ve tıklayın. Ekrandaki çizelgelerin ve değerlerin değiştiğini göreceksiniz.

Görünen kadarıyla da, özellikle üst kısımdaki analiz çubuğunun sağ tarafına baktığımızda, tam da çöpe atmalık bir oyun olduğunu söyleyebiliriz. Yani hem CPU’yu hem de Memory’i aşırı derecede zorlayan bir oyun olmuş. Birazdan, niye böyle olduğunu çözeceğiz…

Adobe Scout’ta hazırlanan kayıtları dilerseniz File > Save ile flm formatında kaydedebilirsiniz. Daha sonra tekrar bu verilerle analizlerinizi yapabilir veya diğer çalışma arkadaşlarınızla paylaşabilirsiniz.

Analiz Sonuçlarını Değerlendirmek ve Performansı Kötü Etkileyen Noktaları Tespit Etmek

Şimdi, bir önceki konumuzda almış olduğumuz oturum kayıtlarına göre sırası ile hızlıca bir inceleme yapalım…

Oturum Bilgileri

Oyunu oynarken, daha doğrusu test ederken kaydetmiş olduğunuz veriler ile birlikte, o oturuma ait bazı bilgiler de tutulmaktadır. Mesela; dosya boyutu, sahne ölçüsü, tarih, AIR sürümü, işletim sistemi bilgileri gibi.

Yapmış olduğunuz stres testi, kullanmış olduğunuz araçlara bağlı olarak değişiklik gösterebilir. Mesela çok düşük güçlü bir işlemcide test yaparsanız, işlemci %90 gösterebilir. Ama daha güçlü bir CPU’da test ederseniz %10 gibi bir değer de görülebilir. Bu nedenle performans analizi yaparken mutlaka içinde bulunduğunuz şartları da değerlendirin.

Session Info bilgileri, Adobe Scout programında sağ üst köşede bulunmaktadır.

Özet

Özet olarak analiz sunar. İki farklı grupta özet sunulur. Frame Time ve Memory analizi.

Frame Timeline Analizi

Aşağıdaki ekran görüntüsünde de belirtildiği gibi, ActionScript, Display Rendering, Network and Video, Other ve Inactive şeklinde gruplandırarak değerlendirme yapar. Bu değerlendirmeler, ekranın ortasında yer alan çift sürgü arasındaki değerleri içerir. Ya o anki sahne ile ilgili ya da toplamda averaj değerinde bir analiz yapar. Burada görüldüğü gibi Event Listener ve Garbage Collection konusunda biraz iyileştirme yapmamız gerekiyor.

Memory Analizi

Aynı şekilde hafıza, yani RAM ile ilgili analizi yapar.

Bu analiz sonuçlarına bakılacak olursa RAM’i fazla zorlamamış. 24,5 MB yer işgal etmiş RAM’de. Ancak dikkat edin, FPS değeri de 19’lara düşmüş. Normalde oyunu tasarlarken 60FPS kullanmıştık. Bunun yorumu da, CPU çok fazla zorlanıyor.

Ekranın alt kısmında yer alan Memory Allocations sekmesinde, görüldüğü gibi oyunu kodlarken oluşturduğumuz solaKay adlı Movie Clip nesnesi RAM’de biraz fazla yer kaplıyor.

CPU Analizi

İşlemcideki yükü görebilmek için, ekranın orta kısmındaki panelin üstünde yer alan CPU Usage sekmesinin aktif olması gerekiyor. Kırmızı şeritle gösterilen alandır.
CPU analizi yaparken, kırmızı çubukların en uzun olduğu yerlere bakmak gerekir. Tabi o çubuklara bakarken, diğer renkli çubukların da uzun olduğu yerleri esas almak lazım. Çünkü CPU’yu diğer öğeler de tetiklemektedir.

Events Analizi

Kullanıcı etkileşimi ile veya oyun tarafından meydana getirilen olay yöneticilerini takip eder. Mouse, Keyboard, Network, Timer, Rendering Events ve Trace Events.

Bu analiz sonucuna göre oyunumuzu zorlayan 2temel unsur varmış. Bunlar; enterFrame olay yöneticisini kullanmak ve çöp toplayıcısını iyi kullanamamak. Olay yöneticisi CPU’yu zorlarken, çöp toplayıcı da RAM’i zorlamış.

Çözüm olarak CPU’yu zorlamamak için FPS değeri düşürülebilir. ENTER_FRAME yerine de Timer kullanılmalı. Gereksiz yerlerde Timer nesnesi durdurulmalı, mesela oyun giriş sahnesinde. Oyun paketlenirken de CPU modu yerine GPU modu seçilmeli.

RAM iyileştirmesinde de çöp toplayıcı kavramında; sahne dışına çıkan nesneler kaldırılmalı, daha basit ve küçük görüntü nesneleri kullanılmalı, Bitmap Cache kullanılmalı ve çok fazla animasyon uygulanmamalı. ActionScript tarafında da nesne türleri belirlenirken daha minimal seviyeler kullanılmalı, mesela Number yerine int kullanmak gibi. Gereksiz nesneler null ile boyutsuzlaştırılmalı ve RAM’den silinmeli.

Adobe Scout hakkında daha detaylı eğitim almak isterseniz, Adobe Scout Eğitim Seti‘mden faydalanabilirsiniz.
İçeriği paylaş:
  • facebook
  • twitter