दुनिया भर में, 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 की टीमों के साथ मिलकर काम किया गया. डिवाइस के साथ काम करने की सुविधा को बढ़ाने के लिए, टेस्टिंग में मीडियम से लेकर पुराने हाई-एंड डिवाइस (2-3 साल पहले रिलीज़ हुए) शामिल किए गए. इससे, डिवाइस के लिए सुझाई गई खास बातों का पता चलता है.
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 में नई सुविधाएं जोड़ी जा रही हैं और इसकी क्षमता भी बढ़ रही है. इसलिए, आने वाले समय में इससे और भी ज़्यादा फ़ायदे मिल सकते हैं.