
Mir 2: Return of the King, Actoz Soft tarafından yetkilendirilmiş ve HK ZHILI YAOAN LIMITED tarafından Unity Engine kullanılarak geliştirilmiş yüksek kaliteli bir Legend IP mobil oyunudur.
Bu oyun, Koreli fantastik MMORPG'nin temsilcisi olan "Mir 2"nin verdiği hisleri mükemmel bir şekilde yeniden oluşturmakla kalmaz, ekipman toplama, büyük ölçekli kum saldırısı ve diğer temel oyun içerikleri gibi en popüler oyun içeriklerinin çoğunu da sunar.
Oyun, kare hızının kararlılığını artırmak, sorunsuz bir şekilde oluşturma sağlamak ve Android Vitals'ı (Yavaş Oturum metriği) önemli ölçüde artırmak için Android Frame Pacing API'yi (Swappy) kullandı.
Android Vitals'da Yavaş Oturum özelliği kullanıma sunuldu
Yavaş Oturum, Google Play Console'daki bir Android vitals metriğidir. Yavaş oturumlarda karelerin% 25'inden fazlası yavaştır. Aşağıdaki durumlarda kareler yavaş olarak kabul edilir:
1) 20 fps'de, önceki kareden sonraki 50 ms içinde sunulmaz. 2) 30 fps'de, önceki kareden sonraki 34 ms içinde sunulmaz.
Play zamanla kullanıcıları telefonlarında 20 FPS'ye ulaşamayan oyunlardan uzaklaştırmaya başlayacaktır.
Bir karenin ekranda geliştiricinin hedefinden daha uzun süre gösterilmesinin veya oluşturulmasının birçok nedeni vardır. Oyun CPU veya GPU'ya bağlı olabilir, aşırı ısınma nedeniyle termal durum kısıtlanmış olabilir ya da oyun kare hızı ile cihazın ekran yenileme hızı arasında uyuşmazlık olabilir.
Swappy nedir?
Swappy olarak da bilinen Android Frame Pacing kitaplığı, AGDK kitaplıklarının bir parçasıdır. Swappy, OpenGL ve Vulkan oyunlarının Android'de sorunsuz oluşturma ve doğru kare hızına ulaşmasına yardımcı olur.
Kitaplık, cihaz tarafından destekleniyorsa birden fazla yenileme hızını işler. Bu da oyuna kare sunma konusunda daha fazla esneklik sağlar. Örneğin, 60 Hz ve 90 Hz yenileme hızını destekleyen bir cihazda, saniyede 60 kare üretemeyen bir oyunun sorunsuz kalması için kare hızı 30 FPS yerine 45 FPS'ye düşürülebilir. Kitaplık, beklenen oyun kare hızını algılar ve kare sunum sürelerini buna göre otomatik olarak ayarlar.
Kare Hızı Kitaplığı, gereksiz ekran güncellemelerini önlediği için pil ömrünü de artırır. Örneğin, bir oyun 60 FPS'de oluşturuluyorsa ancak ekran 120 Hz'de güncelleniyorsa ekran her kare için iki kez güncellenir. Kare Hızı Ayarlama kitaplığı, yenileme hızını cihaz tarafından desteklenen ve hedef kare hızına en yakın değere ayarlayarak bu sorunu önler.
Mir 2, Swappy ile oluşturma performansını nasıl iyileştirdi?
Mir 2 (미르2: 왕의 귀환), kararsız oluşturma performansıyla ilgili bir sorun yaşıyordu. Bu sorun, Google Play'in% 20 eşiğinden çok daha yüksek olan 20 FPS kare hızı eşiğinde% 40 Yavaş Oturum deneyimine yol açıyordu.

Mir 2 (미르2: 왕의 귀환), yüksek kaliteli grafiklere sahip bir oyundur. Bazı cihazlar, sabit FPS değerini koruma konusunda zorluklarla karşılaşmaktadır. Kare hızı dağılımı, birçok oturumun 20 FPS'den daha düşük FPS'de çalıştığını gösteriyor.

Her grup, karelerinin% 75'inin grup etiketinden daha hızlı olduğu oturumların yüzdesini temsil eder.
Görüntü iş yükü, uygulama iş yükünden daha uzun sürdüğünde kuyruğa ek kareler eklenir. Bu durum, tekrar takılmalara neden olur ve arabelleğe alma nedeniyle ek bir kare gecikmesine yol açabilir.

Swappy kitaplığı, geri basıncın oluşmasına izin vermek yerine uygulamaya bekleme süreleri ekleyerek görüntüleme ardışık düzeninin yetişmesine olanak tanıyan senkronizasyon çitleri (EGL_KHR_fence_sync
ve VkFence
) kullanarak bu sorunu çözer. A çerçevesi hâlâ fazladan bir kare gösteriyor ancak B çerçevesi artık doğru şekilde gösteriliyor.

Mir 2, Unity'nin yerleşik Optimize Frame Pacing özelliğinden yararlanarak Swappy kitaplığını kolayca entegre etti. Bu işlem, oluşturma performansında önemli bir iyileşme sağladı. Özellikle de Yavaş Oturum metriği %40'tan %10'a düştü.

Swappy'yi entegre ettikten sonra Mir2 için yavaş oturumların sayısı önemli ölçüde azaldı.

Her grup, karelerinin% 75'inin grup etiketinden daha hızlı olduğu oturumların yüzdesini temsil eder.
Swappy'yi kullanmaya başlama
Swappy'yi yerel oyun motorlarında kullanma
Android Frame Pacing kitaplığını oyununuza entegre etmek için aşağıdaki kılavuzlara göz atın:
- Android kare hızlandırmayı Vulkan oluşturma aracınıza entegre etme
- Android kare hızını OpenGL oluşturma aracınıza entegre etme
Swappy'yi Unity oyun motorunda kullanma
Unity, Android Frame Pacing'i motoruna entegre etmiştir. Bu özelliği Unity'de etkinleştirmek için Proje Ayarları > Oynatıcı > Android için Ayarlar > Çözünürlük ve Sunum bölümünde Optimize Edilmiş Kare Hızı onay kutusunu işaretleyin:

Alternatif olarak, Unity'nin kare hızında daha az varyasyon olması için kareleri eşit şekilde dağıtmasına ve daha akıcı bir oyun deneyimi oluşturmasına izin vermek üzere mantık kodunuzda Optimize Edilmiş Kare Hızı seçeneğini programatik olarak etkinleştirebilirsiniz.
Swappy'yi Unreal oyun motorunda kullanma
Unreal 4.25 ve sonraki sürümler, Android Game Development Kit'in bir parçası olan Android Frame Pacing Library'yi entegre eder. Mobil kare hızlandırma makalesinde, Android kare hızlandırma kitaplığının nasıl etkinleştirileceği ve kare hızlandırmanın C++ kodundan nasıl kontrol edileceği açıklanmaktadır.
Daha fazla bilgi için Yavaş Oturumlar ve Swappy hakkında bilgi edinebilirsiniz.