Call of Duty: Warzone Mobile, popüler Call of Duty serisinin birinci şahıs aksiyon oyunudur. Son derece popüler olan konsol ve PC oyununun mobil cihazlarda hayata geçirilmesi, oyunculara mükemmel bir deneyim sunmak için düşük seviyeli mobil API'lerden faydalanıyor.
Teknik açıdan bakıldığında, mobil uygulamanın amacı çok çeşitli Android mobil cihazları desteklemek, uygulamayı konsol sürümüne mümkün olduğunca yakın tutmak ve grafik ardışık düzeni ile araç zincirinin mevcut konsol ve PC başlıkları ve içeriğiyle uyumlu kalmasını sağlamaktır.
Call of Duty motoru, GPU'da yürütülecek işi belirleyen ve gerekli kaynakları belirleyen görev grafiği oluşturucu adlı bir sistemden yararlanarak oluşturma gönderim yönetimi için senkronizasyon, bellek ayırma ve zamanlama uygular. Daha net açıklamak gerekirse sistem, GPU'da yürütülecek işin optimum sıralamasını oluşturmak ve kare gönderim zamanında kullanılan kaynakları sağlamak için yükleme zamanında işlenen üst düzey bir komut dosyasında tanımlanan görevlerin, kaynakların ve bağımlılıkların yer aldığı bir oluşturma grafiğidir.
Platformlar arası modern bir 3D grafik API'si olan Vulkan, Android'de görev grafiği oluşturucu için arka uç oluşturma arayüzü olarak seçildi.
![](https://developer.android.com/static/images/cards/distribute/stories/codwzm_figure1.jpg?authuser=6&hl=tr)
Vulkan API'nin avantajları
Oyun, Call of Duty'nin farklı görsel stilini korumak ve Call of Duty: Warzone Mobile ile konsol ve PC muadilleri arasındaki ortak ilerlemeyi daha iyi desteklemek için mevcut konsol ve PC uygulamalarınınkine benzer bir oluşturma API'si kullanır. Android'de Vulkan, tüm yazılım yığınını revize etmek zorunda kalmadan Activision'ın mevcut araçları, ardışık düzenleri ve gölgelendiricileri üzerine geliştirmesine ve sanatçılar tarafından oluşturulan içeriği desteklemesine olanak tanıyor.
Bunu tamamen farklı bir oluşturucuyla başarmaya çalışmak aşırı pahalı olurdu ve Call of Duty ardışık düzeni için eski nesil grafik API'lerini desteklemeye çalışmak, özellik grubu üzerinde çok büyük bir etki yaratır. Activision, Vulkan'ın genel geliştirme ek yükü üzerindeki etkiyi en aza indirirken tüm özellikleri Android'e sunmak için en uygun seçenek olduğuna karar verdi. Vulkan, Android cihaz üreticileri arasında önemli düzeyde destek aldığından, API'yi gelecekteki geliştirmeler için de iyi bir seçim haline getirmiştir.
Vulkan özellikli donanıma veya sürücülere sahip olmayan cihazlar genellikle daha eskidir ve oyunu çalıştıracak kadar güçlü değildir. Bu nedenle, motor ve içerik ardışık düzeni için teknik olarak Vulkan'ın uygun olmasının yanı sıra, donanım gereksinimi olarak Vulkan desteği de bir performans filtresi görevi görür.
Mevcut platform API ile uyumluluk
Vulkan; açık kaynak yönetimi, bellek takma adı belirleme, benzer işlem ardışık düzeni ve bağlanmasız kaynak erişimi sunan, kavramsal olarak Call of Duty: Warzone'da kullanılan mevcut API'lere benzer. Benzerlikler, Activision'ın oluşturucuyu yapısal olarak konsol ve PC oluşturucu ile tutarlı kalmasını sağladı ve Vulkan arayüzü için yalnızca arka uç değişiklikleri gerektiriyordu.
DXC - SPIR-V derlemesi kullanan tam özellik kümelerine sahip mevcut HLSL tabanlı gölgelendiriciler için destek, Android'in Activision'ın mevcut derleme ardışık düzenlerine entegre olabilmesini sağlar. Süreç, zorlukları aşmamakla birlikte, bir eserin yeniden yazılmasından ve birden çok sürüm veya dil tutmanın getirdiği ek yükten daha faydalıdır.
![](https://developer.android.com/static/images/cards/distribute/stories/codwzm_figure2.jpg?authuser=6&hl=tr)
![](https://developer.android.com/static/images/cards/distribute/stories/codwzm_figure3.jpg?authuser=6&hl=tr)
Call of Duty: Warzone Mobile'da kullanılan Vulkan özellikleri
- Kaynak takma adı ve açık bariyer kontrolü, oluşturma görev grafiğinin statik ayırmaya kıyasla oluşturma hedefleri için bellek gereksinimlerini önemli ölçüde azaltmasını sağlar.
- Esneklik, oluşturma işlerinde mobil uyumlu uygulamaların sorunsuz bir şekilde kullanılabilmesine olanak tanır.
- Temel özellikler olarak oluşturucu geçişleri, oluşturucunun yaygın mobil GPU mimarileri için en uygun kararları vermesine olanak tanır. Bu kararların çoğu diğer platformlarda da kazanç sağlıyor.
- Dinamik sahne çözünürlüğü, görev grafiği tarafından varsayılan olarak desteklenir. Bu sayede performans ve güç tüketiminin bir miktar kontrol edilmesi sağlanır.
- İşleme dayalı kapsamlı ayrıştırma ile tam GPU ardışık düzeni, sahne karmaşıklığını önemli ölçüde artırır.
- Parça tabanlı ertelenmiş oluşturucuları hedeflemeyi hesaba katmak için toplama ayrıntı düzeyini dengeleme.
- Performans sorunu, üçgen sayıların aksine karmaşık bir işlem iş yüküdür.
- GPU ardışık düzeni, farklı senaryolar düşünülerek tasarlanmıştır.
- Toplama ayrıntı düzeyini değiştirme seçenekleri.
- Çok büyük açıklayıcı kümeleri, uyumlu donanımlarda tamamen bağlanmasız şekilde oluşturmaya olanak tanıyarak ilgili performans, güç ve termal avantajlarla birlikte CPU çekme çağrısı oluşturma maliyetini önemli ölçüde azaltır.
- HW yapılandırıcısı, en iyi kullanıcı deneyimi için belirli cihaz modellerine göre doğruluk ayarlarında ince ayarlar yapılmasını sağlar
- Kullanıcılar şu modu yapılandırır: en iyi performans, en iyi kalite veya pil tasarrufu.
- Cihaza özel gölgelendirici seti tasarımı, farklı GPU hazır ayarları (kalite ve doğruluk ayarları) için farklı gölgelendirici grupları sağlar. HW konfigüratörü, oyunun cihaz için en iyi gölgelendirici setini seçmesine yardımcı olur.
- Ardışık düzen nesneleri oluşturma gereksinimleriyle, yüksek düzeyde yapılandırılabilir gölgelendiricilerin çok daha fazla sayıda kombinasyon oluşturduklarını azaltmaya yardımcı olur.
- Çok fazla gölgelendirici kaynağını desteklemeyen eski telefonları ve sürücüleri hedeflemek için, bağlanmasız yedek gölgelendirici grupları içerir.
- Sürücü farklılıklarını önlemek için uzmanlık sabitlerinin akıllı kullanımı.
- Sürücülerdeki gölgelendirici derleyici hatalarının çoğu, uzmanlık sabitlerinden yararlanılarak giderilir.
- Cihaza özel gölgelendirici setlerinin sayısına göre dengelenir.
![](https://developer.android.com/static/images/cards/distribute/stories/codwzm_figure4.jpg?authuser=6&hl=tr)
Profil oluşturma ve hata ayıklama
Activision, geliştirmenin başlarında Vulkan profil oluşturma ve hata ayıklama araçlarıyla kararlılık ve işlevsellikte birçok eksiklik buldu. O zamandan beri, tedarikçiye özgü profil araçları ve RenderDoc gibi satıcıdan bağımsız araçlarda istikrarlı iyileştirmeler yapıldı. Artık geliştiriciler, oluşturma sorunlarına ve optimizasyon fırsatlarına daha rahat odaklanabiliyorlar.
Vulkan'da yüksek görüntü kalitesi
Call of Duty: Warzone Mobile, konsol ve PC oyunlarıyla paylaşılan oluşturma teknolojisini kullanarak Vulkan özellikli çeşitli Android cihazlarda çalışır. Vulkan, geliştirmeyle ilgili ek yükleri ve zorlukları azaltıp Android oyuncularına özgün, yüksek kaliteli Call of Duty içeriği ve oynanabilirlik sunma olanağı sağladı.