दुनिया भर में, Pokémon Trading Card Game (TCG) का आनंद करीब 30 सालों से लिया जा रहा है. हाल ही में रिलीज़ किया गया Pokémon TCG Pocket, खिलाड़ियों को कहीं भी और कभी भी पोकेमॉन कलेक्शन और लड़ाई का अनुभव देने के लिए डिज़ाइन किया गया है. इसके लिए, उन्हें फ़िज़िकल कार्ड की ज़रूरत नहीं पड़ेगी. स्मार्टफ़ोन पर गेम को ऐक्सेस करने की सुविधा की वजह से, यह उपयोगकर्ताओं के बीच काफ़ी लोकप्रिय हो गया है.
यह एक सामान्य ट्रेडिंग कार्ड गेम की तरह दिख सकता है, लेकिन Pokémon TCG Pocket में जटिल शेडर का इस्तेमाल किया जाता है. इससे, कंपाइल करने में लगने वाले समय को कम करना एक बड़ी चुनौती है. इस समस्या को हल करने और अच्छी क्वालिटी के ग्राफ़िक और गेमिंग का बेहतर अनुभव देने के लिए, Pokémon TCG Pocket के Android वर्शन में अगली पीढ़ी के ग्राफ़िक एपीआई, Vulkan का इस्तेमाल किया गया है.
इस दस्तावेज़ में, Pokémon TCG Pocket की डेवलपमेंट टीम के Vulkan का इस्तेमाल करने, उससे जुड़ी चुनौतियों, और इसके फ़ायदों के बारे में बताया गया है.
Vulkan का इस्तेमाल करने की वजहें
शुरुआत में, Pokémon TCG Pocket की डेवलपमेंट टीम ने OpenGL ES का इस्तेमाल करने का प्लान बनाया था. हालांकि, उन्होंने Vulkan का इस्तेमाल करने का फ़ैसला लिया, जो एक ऐसा ग्राफ़िक एपीआई है जिसका भविष्य बहुत अच्छा है. Vulkan को चुनने की मुख्य वजहें ये थीं:
- लंबे समय तक ऐप्लिकेशन मैनेज करना: Android के लिए Vulkan के मुख्य ग्राफ़िक एपीआई बनने के रुझान को देखते हुए, टीम ने यह तय किया कि लंबे समय तक ऐप्लिकेशन मैनेज करने के लिए, Vulkan सबसे सही विकल्प है.
- कम स्पेसिफ़िकेशन वाले डिवाइसों पर ऐप्लिकेशन की परफ़ॉर्मेंस अच्छी हो: अलग-अलग तरह के उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, यह ज़रूरी है कि कम स्पेसिफ़िकेशन वाले डिवाइसों पर ऐप्लिकेशन की परफ़ॉर्मेंस अच्छी हो. Vulkan की मदद से, सीपीयू पर पड़ने वाले लोड को कम किया जा सकता है. इससे फ़्रेम रेट और बैटरी की खपत को बेहतर बनाने में मदद मिलती है.
- रिलीज़ के बाद बड़े पैमाने पर बदलाव न करना: रिलीज़ के बाद OpenGL ES से Vulkan पर स्विच करने के लिए, ज़्यादा बदलाव करने होंगे. इससे, उपयोगकर्ता अनुभव पर असर पड़ सकता है. शुरुआत से ही Vulkan का इस्तेमाल करने से, ऐसे अहम बदलावों की ज़रूरत कम हो गई.
Unity के साथ Vulkan लागू करना
Pokémon TCG Pocket, Unity को गेम इंजन के तौर पर इस्तेमाल करता है. Unity, एक क्लिक में Vulkan को लागू करने के लिए आसान प्रोसेस उपलब्ध कराता है. Unity का इस्तेमाल करके, डेवलपमेंट टीम ने खास ट्रेनिंग के बिना, Vulkan को आसानी से इंटिग्रेट किया. इसके अलावा, डेवलपमेंट के लिए Vulkan के हिसाब से बनाए गए एनवायरमेंट और टूल की कमी की वजह से, लागत कम हुई.

Vulkan को लागू करने में आने वाली चुनौतियां
Vulkan को लागू करना आसान था, लेकिन डेवलपमेंट टीम को इसके बाद कुछ चुनौतियों का सामना करना पड़ा:
- डिवाइस से जुड़ी समस्याएं: OpenGL ES की तुलना में, कुछ मैन्युफ़ैक्चरर के ड्राइवर Vulkan के साथ कम स्टेबल थे. इस वजह से, डिवाइस से जुड़ी समस्याएं आ रही थीं.
- मिडलवेयर में Vulkan की पूरी सुविधा उपलब्ध नहीं है: कुछ मिडलवेयर में Vulkan की पूरी सुविधा उपलब्ध नहीं थी. इसलिए, टीम को मिडलवेयर के अपडेट का इंतज़ार करना पड़ा.
डेवलपमेंट टीम ने कई तरीकों से इन चुनौतियों को हल किया. इनमें, समस्या हल करने के लिए, उपभोक्ताओं के लिए गेम बनाने वाले अनुभवी डेवलपर की टीम बनाना शामिल है. ऐसा इसलिए किया गया, क्योंकि वे लो-लेवल ग्राफ़िक्स एपीआई या कस्टम इंजन के बारे में काफ़ी जानकार थे. साथ ही, हर समस्या को हल करने के लिए, Google और Unity की टीमों के साथ मिलकर काम किया गया. डिवाइस के साथ काम करने की सुविधा को बढ़ाने के लिए, डिवाइस के लिए सुझाई गई खास बातों का पता लगाने के लिए, टेस्टिंग में मीडियम से लेकर पुराने हाई-एंड डिवाइस (दो से तीन साल पहले रिलीज़ किए गए) शामिल किए गए.
Vulkan के फ़ायदे
Vulkan का इस्तेमाल करने से, Pokémon TCG Pocket को कई फ़ायदे मिले:
- शेडर को कंपाइल करने में लगने वाला समय कम हुआ: Vulkan ने शेडर को कंपाइल करने में लगने वाले समय को काफ़ी कम कर दिया है. भले ही, शेडर की संख्या ज़्यादा हो. उदाहरण के लिए, OpenGL ES को कंपाइल करने में एक सेकंड से ज़्यादा समय लग सकता है. हालांकि, Vulkan रेंडरिंग में अब यह समस्या नहीं होती.
- इस सुविधा के साथ काम करने वाले डिवाइसों की संख्या में बढ़ोतरी: फ़्रेम रेट और बैटरी खपत में हुए सुधारों की वजह से, इस सुविधा के साथ काम करने वाले डिवाइसों की संख्या में बढ़ोतरी हुई है. इससे ज़्यादा उपयोगकर्ताओं को बेहतर अनुभव मिल सकेगा.
- Vulkan की पुष्टि करने वाली लेयर की मदद से बेहतर टेलीमेट्री: Vulkan की पुष्टि करने वाली लेयर, समस्याओं की मुख्य वजह की पहचान करने में काफ़ी मददगार थी. यह Vitals की ANR/क्रैश रिपोर्ट से मिले डेटा को बेहतर बनाती है.
डेवलपर के लिए मैसेज
Pokémon TCG Pocket की डेवलपमेंट टीम, अपने प्रोजेक्ट के लिए Vulkan का इस्तेमाल करने वाले डेवलपर को ये सलाह देती है:
- शेडर को कंपाइल करने में लगने वाले समय को कम करने के अलावा, Vulkan से परफ़ॉर्मेंस में काफ़ी फ़ायदे मिलते हैं.
- OpenGL ES पर वापस जाने के लिए vkQuality का इस्तेमाल करने से, डिवाइस के साथ काम करने की सुविधा का दायरा बढ़ सकता है. हालांकि, Pokémon TCG Pocket अभी इसका इस्तेमाल नहीं कर रहा है.
नतीजा
Vulkan का इस्तेमाल करके, Pokémon TCG Pocket की डेवलपमेंट टीम ने कई तरह के डिवाइसों पर ग्राफ़िक को ऑप्टिमाइज़ किया. इससे, हर खिलाड़ी को गेम खेलने का बेहतरीन अनुभव मिल पाया. समय के साथ, Vulkan में नई सुविधाएं जोड़ी जा रही हैं और इसकी क्षमता भी बढ़ रही है. इसलिए, आने वाले समय में इससे और भी ज़्यादा फ़ायदे मिल सकते हैं.