Call of Duty: Warzone Mobile, Call of Duty फ़्रेंचाइज़ी का एक फ़र्स्ट-पर्सन ऐक्शन गेम है. बेहद लोकप्रिय कंसोल और पीसी गेम को मोबाइल पर उपलब्ध कराने के लिए, मोबाइल के लो-लेवल एपीआई का फ़ायदा लिया जाता है. इससे खिलाड़ियों को बेहतरीन अनुभव मिलता है.
तकनीकी दृष्टि से, मोबाइल पर इसे लागू करने का मकसद, कई तरह के Android मोबाइल डिवाइसों पर इसे इस्तेमाल करने की सुविधा देना है. साथ ही, इसे कंसोल वर्शन के ज़्यादा से ज़्यादा करीब रखना है. साथ ही, यह पक्का करना है कि ग्राफ़िक्स पाइपलाइन और टूलचेन, मौजूदा कंसोल और पीसी टाइटल और कॉन्टेंट के साथ काम करते रहें.
Call of Duty इंजन, सबमिशन मैनेजमेंट को रेंडर करने के लिए सिंक करने, मेमोरी को बांटने, और शेड्यूल करने की सुविधा देता है. इसके लिए, टास्क ग्राफ़ रेंडरर नाम के सिस्टम का इस्तेमाल किया जाता है. यह सिस्टम, जीपीयू पर किए जाने वाले काम का पता लगाता है और ज़रूरी संसाधनों के बारे में बताता है. ज़्यादा जानकारी के लिए, यह सिस्टम एक रेंडर ग्राफ़ है. इसमें टास्क, संसाधन, और डिपेंडेंसी होती हैं. ये टास्क, संसाधन, और डिपेंडेंसी, एक हाई-लेवल स्क्रिप्ट में तय की जाती हैं. इस स्क्रिप्ट को लोड होने के समय प्रोसेस किया जाता है, ताकि जीपीयू पर किए जाने वाले काम का सबसे सही क्रम जनरेट किया जा सके. साथ ही, फ़्रेम सबमिट करने के समय इस्तेमाल किए जाने वाले संसाधनों को उपलब्ध कराया जा सके.
Vulkan, एक मॉडर्न क्रॉस-प्लैटफ़ॉर्म 3D ग्राफ़िक एपीआई है. इसे Android पर टास्क ग्राफ़ रेंडरर के लिए, बैकएंड रेंडरिंग इंटरफ़ेस के तौर पर चुना गया था.

Vulkan API के फ़ायदे
Call of Duty के विज़ुअल स्टाइल को बनाए रखने और Call of Duty: Warzone Mobile और उसके कंसोल और पीसी वर्शन के बीच शेयर की गई प्रोग्रेस को बेहतर तरीके से इस्तेमाल करने के लिए, गेम में रेंडरिंग एपीआई का इस्तेमाल किया जाता है. यह एपीआई, मौजूदा कंसोल और पीसी वर्शन में इस्तेमाल किए जाने वाले एपीआई से मिलता-जुलता है. Android पर, Vulkan की मदद से Activision अपने मौजूदा टूल, पाइपलाइन, और शेडर पर काम कर सकता है. साथ ही, कलाकारों के बनाए गए कॉन्टेंट को भी इस्तेमाल कर सकता है. इसके लिए, उसे पूरे सॉफ़्टवेयर स्टैक को फिर से बनाने की ज़रूरत नहीं पड़ती.
पूरी तरह से अलग रेंडरर का इस्तेमाल करके ऐसा करना बहुत महंगा होगा. साथ ही, Call of Duty पाइपलाइन के लिए पुराने-जेनरेशन के ग्राफ़िक्स एपीआई का इस्तेमाल करने पर, सुविधाओं के सेट पर काफ़ी असर पड़ेगा. Activision ने यह तय किया कि Android पर सभी सुविधाएं उपलब्ध कराने के लिए, Vulkan सबसे सही विकल्प है. इससे डेवलपमेंट के लिए ज़्यादा खर्च करने की ज़रूरत नहीं पड़ेगी. Android डिवाइस बनाने वाली कंपनियों ने Vulkan को काफ़ी मदद दी है. इससे, आने वाले समय में एपीआई को बेहतर बनाने के लिए भी यह एक अच्छा विकल्प बन गया है.
आम तौर पर, जिन डिवाइसों में Vulkan के साथ काम करने वाला हार्डवेयर या ड्राइवर नहीं होता वे पुराने होते हैं और गेम को चलाने के लिए ज़रूरी परफ़ॉर्मेंस नहीं देते. इसलिए, Vulkan इंजन और कॉन्टेंट पाइपलाइन के लिए तकनीकी तौर पर सही होने के अलावा, हार्डवेयर की ज़रूरी शर्त के तौर पर Vulkan की सहायता, परफ़ॉर्मेंस फ़िल्टर के तौर पर काम करती है.
मौजूदा प्लैटफ़ॉर्म एपीआई के साथ काम करना
Vulkan, Call of Duty: Warzone के लिए इस्तेमाल किए जाने वाले मौजूदा एपीआई से मिलता-जुलता है. इसमें संसाधनों को साफ़ तौर पर मैनेज करने, मेमोरी अलियासिंग, मिलती-जुलती कंप्यूट लाइन, और बाइन्डलेस संसाधन ऐक्सेस की सुविधा है. इन दोनों के मिलते-जुलते होने की वजह से, Activision ने रेंडरर को कॉन्सोल और पीसी रेंडरर के स्ट्रक्चर के हिसाब से बनाए रखा. साथ ही, Vulkan के साथ इंटरफ़ेस करने के लिए, सिर्फ़ बैकएंड में बदलाव करने की ज़रूरत पड़ी.
DXC से SPIR-V कंपाइलेशन का इस्तेमाल करके, सभी सुविधाओं के सेट के साथ मौजूदा एचएसएलएल-आधारित शेडर के लिए सहायता की सुविधा, Android को Activision की मौजूदा बिल्ड पाइपलाइन में इंटिग्रेट करने की अनुमति देती है. इस प्रोसेस में कुछ चुनौतियां आ सकती हैं. हालांकि, फिर भी यह प्रोसेस, कॉन्टेंट को फिर से लिखने और कई वर्शन या भाषाओं को मैनेज करने से जुड़ी ज़्यादा लागत से बेहतर है.


Call of Duty: Warzone Mobile में इस्तेमाल की गई Vulkan की सुविधाएं
- संसाधन का दूसरा नाम और साफ़ तौर पर बैरियर कंट्रोल की मदद से, रेंडरिंग टास्क ग्राफ़, स्टैटिक ऐलोकेशन की तुलना में रेंडर टारगेट के लिए ज़रूरी मेमोरी को काफ़ी कम कर देता है.
- इस सुविधा की मदद से, रेंडर करने के टास्क में मोबाइल-फ़्रेंडली तरीकों का आसानी से इस्तेमाल किया जा सकता है.
- मुख्य सुविधाओं के तौर पर रेंडर-पास की मदद से, रेंडरर को सामान्य मोबाइल जीपीयू आर्किटेक्चर के लिए सबसे सही फ़ैसले लेने में मदद मिलती है. इनमें से ज़्यादातर फ़ैसलों से, दूसरे प्लैटफ़ॉर्म पर भी फ़ायदे मिलते हैं.
- टास्क ग्राफ़ में डिफ़ॉल्ट रूप से, डाइनैमिक सीन रिज़ॉल्यूशन की सुविधा काम करती है. इससे परफ़ॉर्मेंस और बिजली की खपत को कुछ हद तक कंट्रोल किया जा सकता है.
- ज़्यादा कंप्यूट-आधारित कलिंग के साथ पूरी जीपीयू पाइपलाइन, सीन की जटिलता को काफ़ी बढ़ाती है.
- टाइल पर आधारित डिफ़र्ड रेंडरर को टारगेट करने के लिए, ज़्यादा जानकारी को कम करने की सुविधा को संतुलित करना.
- बोटलनेक, त्रिभुज की संख्या के बजाय कंप्यूट का जटिल वर्कलोड है.
- जीपीयू पाइपलाइन को अलग-अलग स्थितियों को ध्यान में रखकर डिज़ाइन किया गया है.
- डेटा को इकट्ठा करने के लेवल में बदलाव करने के विकल्प.
- काफ़ी बड़े डिस्क्रिप्टर सेट, काम करने वाले हार्डवेयर पर पूरी तरह से बाइंडलेस रेंडरिंग की अनुमति देते हैं. इससे सीपीयू ड्रॉ कॉल बनाने की लागत काफ़ी कम हो जाती है. साथ ही, इससे परफ़ॉर्मेंस, पावर, और थर्मल फ़ायदे भी मिलते हैं.
- एचडब्ल्यू कॉन्फ़िगरर, उपयोगकर्ता को बेहतर अनुभव देने के लिए, डिवाइस के अलग-अलग मॉडल के आधार पर, फ़िडेलिटी सेटिंग में बदलाव करने की सुविधा देता है
- उपयोगकर्ता मोड कॉन्फ़िगर करते हैं: सबसे अच्छी परफ़ॉर्मेंस, सबसे अच्छी क्वालिटी या बैटरी सेविंग.
- डिवाइस के हिसाब से शेडर सेट डिज़ाइन, अलग-अलग जीपीयू प्रीसेट (क्वालिटी और फ़िडेलिटी सेटिंग) के लिए, शेडर के अलग-अलग सेट उपलब्ध कराता है. एचडब्ल्यू कॉन्फ़िगरर, गेम को डिवाइस के लिए सबसे अच्छा शेडर सेट चुनने में मदद करता है.
- पाइपलाइन ऑब्जेक्ट बनाने की ज़रूरतों के साथ, ज़्यादा कॉन्फ़िगरेशन वाले शेडर के कॉम्बिनेशन में होने वाली बढ़ोतरी को कम करने में मदद मिलती है.
- इसमें फ़ॉलबैक के तौर पर ऐसे शेडर सेट शामिल होते हैं जो बिना बाइंड किए काम करते हैं. इनका मकसद, उन पुराने फ़ोन और ड्राइवर को टारगेट करना होता है जो ज़्यादा शेडर संसाधनों के साथ काम नहीं करते.
- ड्राइवर के बीच के अंतर को हल करने के लिए, स्पेशलाइज़ेशन कॉन्स्टेंट का स्मार्ट इस्तेमाल करें.
- ड्राइवर में मौजूद शेडर कंपाइलर के ज़्यादातर गड़बड़ियों को, विशेषता के लिए तय वैल्यू का इस्तेमाल करके ठीक किया जाता है.
- डिवाइस के हिसाब से शेडर सेट की संख्या के हिसाब से बैलेंस किया जाता है.

प्रोफ़ाइल बनाना और डीबग करना
गेम डेवलप करने के शुरुआती दौर में, Activision को Vulkan प्रोफ़ाइलिंग और डीबगिंग टूल के साथ, गेम की स्थिरता और फ़ंक्शन में कई गड़बड़ियां मिलीं. इसके बाद से, वेंडर के हिसाब से प्रोफ़ाइलर और RenderDoc जैसे वेंडर-अनैग्ज़ॉस्ट टूल में लगातार सुधार किए जा रहे हैं. अब डेवलपर, रेंडर करने से जुड़ी समस्याओं और ऑप्टिमाइज़ेशन के अवसरों पर ज़्यादा भरोसे के साथ काम कर सकते हैं.
Vulkan की मदद से हाई फ़िडेलिटी
Call of Duty: Warzone Mobile, Vulkan की सुविधा वाले कई Android डिवाइसों पर चलता है. इसमें, कंसोल और पीसी गेम के साथ शेयर की गई रेंडरिंग टेक्नोलॉजी का इस्तेमाल किया जाता है. Vulkan की मदद से, डेवलपमेंट में लगने वाले समय और परेशानी को कम किया जा सकता है. साथ ही, Android डिवाइस इस्तेमाल करने वाले खिलाड़ियों को Call of Duty का असली और हाई फ़िडेलिटी वाला कॉन्टेंट और गेमप्ले उपलब्ध कराया जा सकता है.