Skip to content

Unity 6.6 ने WebGPU को प्रायोगिक स्थिति से बाहर निकाला, लेकिन इसे बंद ही रखा

Unity ने 1 सितंबर को Unity 6.6 जारी किया। यह एक "समर्थित" रिलीज़ है, यानी 6.7 आने तक इसे LTS जैसी ही स्थिरता प्रतिबद्धता मिलेगी, और उस LTS से पहले Unity 6 शृंखला का यह अंतिम पड़ाव है। ब्राउज़र के लिए गेम जारी करने वाले किसी भी व्यक्ति के लिए मुख्य खबर Web Graphics टीम की एक सप्ताह पहले की पोस्ट का यह वाक्य है: "Unity 6000.6 से WebGPU ग्राफ़िक्स API अब प्रायोगिक नहीं है, बल्कि पूरी तरह समर्थित फ़ीचर है।"

Unity, 2025 की शुरुआत में आए 6.1 से WebGPU को प्रायोगिक बैकएंड के रूप में चला रहा है। उस समय हमने इसे कवर किया था और तब से ब्राउज़र पक्ष पर नज़र रखी है—Safari में WebGPU जारी होने से लेकर सभी प्रमुख ब्राउज़रों में इसके आने तक। अब इंजन पक्ष भी बराबरी पर आ गया है।

6.6 में नया क्या है, इसका Unity का अपना परिचय

WebGPU किन सुविधाओं को चालू करता है

विशेष रूप से Unity में WebGPU के महत्वपूर्ण होने का कारण कंप्यूट शेडर हैं। WebGL 2 में ये कभी थे ही नहीं, इसलिए GPU कंप्यूट पर निर्भर Unity की हर सुविधा वेब बिल्ड में पूरी तरह अनुपस्थित थी। WebGPU चुने जाने पर वेब बिल्ड को GPU Resident Drawer और GPU ऑक्लूज़न कलिंग, Spatial-Temporal Post-Processing अपस्केलिंग, GPU-सिम्युलेटेड पार्टिकल वाला VFX Graph, Adaptive Probe Volumes और कंप्यूट स्किनिंग मिलते हैं। पोस्ट के लिए Unity के डेमो सीन Fantasy Kingdom—एक घना, शैलीबद्ध नगर—और VFX Graph पार्टिकल से भरा एक अंतरिक्ष यान का आंतरिक भाग थे; दोनों ब्राउज़र में चल रहे थे।

ब्राउज़र में WebGPU पर चलता Unity का अंतरिक्ष यान डेमो सीन, जिसमें GPU-सिम्युलेटेड VFX Graph पार्टिकल हैं

VFX Graph पार्टिकल GPU पर सिम्युलेट होते हैं, इसीलिए वे WebGL 2 पर कभी उपलब्ध नहीं थे। चित्र: Unity।

ऐसे हार्डवेयर के लिए एक हल्का संगतता मोड भी है जो WebGPU उपलब्ध होने की सूचना तो देता है, लेकिन पूरा फ़ीचर सेट संभाल नहीं सकता। इससे डेवलपर को कुछ किए बिना वही बिल्ड अधिक डिवाइसों तक पहुँचता है।

Unity ने जानबूझकर क्या नहीं किया

WebGPU डिफ़ॉल्ट रूप से सक्षम नहीं है। वेब बिल्ड के लिए WebGL 2 ही डिफ़ॉल्ट ग्राफ़िक्स API बना हुआ है। WebGPU का उपयोग करने के लिए Web प्लेयर सेटिंग्स खोलें, स्वचालित ग्राफ़िक्स API चयन को अनचेक करें और सूची में WebGPU जोड़ें। Unity रनटाइम पर प्राथमिकता क्रम में API आज़माता है और पहला उपलब्ध न होने पर अगले पर फ़ॉलबैक करता है।

Unity Web प्लेयर सेटिंग्स में Graphics APIs सूची, जिसमें WebGL 2 के ऊपर WebGPU जोड़ा गया है

WebGPU को Graphics APIs सूची में मैन्युअल रूप से जोड़ना पड़ता है। चित्र: Unity।

पोस्ट में दो सावधानियाँ ऐसी हैं जिन्हें अनदेखा करने पर लोगों का पूरा दिन बर्बाद हो सकता है। पहली, ब्राउज़र WebGPU को केवल सुरक्षित कॉन्टेक्स्ट में उपलब्ध कराते हैं, इसलिए लोकल फ़ाइल या साधारण HTTP होस्ट से परोसा गया बिल्ड चुपचाप WebGL 2 पर चला जाता है और आप सोचते रह जाते हैं कि आपकी कंप्यूट सुविधाएँ कहाँ गायब हो गईं। दूसरी, Unity के अपने शब्दों में: "WebGPU समर्थन की सूचना देने वाले सभी डिवाइस एकसमान अनुभव नहीं देते।" इसीलिए 6.6 में Graphics Device Filtering जोड़ा गया है—नियमों का एक ऐसा सेट, जो समस्याग्रस्त पाए गए विशिष्ट ब्राउज़र, GPU या ड्राइवर के लिए फ़ॉलबैक को बाध्य करता है।

6.6 में वेब से जुड़ी बाकी कहानी आकार और मेमोरी के बारे में है। WebAssembly64 ब्राउज़र बिल्ड को पुरानी 4 GB सीमा के बजाय 16 GB तक मेमोरी एड्रेस करने देता है; इसके लिए Chrome और Edge 128 या उसके बाद का संस्करण तथा Firefox 129 या उसके बाद का संस्करण चाहिए। Progressive Asset Loading एसेट को शुरुआत में एक साथ डाउनलोड करने के बजाय हर सीन के अनुसार उपलब्ध कराता है, इसलिए बाकी सामग्री स्ट्रीम होते समय खिलाड़ी पहले सीन से शुरू कर सकता है। दोनों उन दो कारणों को संबोधित करते हैं जिनकी वजह से Unity वेब गेम ऐतिहासिक रूप से कठिन विकल्प रहे हैं: वे बड़े होते थे और उनकी मेमोरी खत्म हो जाती थी।

रिलीज़ की बाकी सुविधाएँ

ब्राउज़र के बाहर, Fast Enter Play Mode अब नए प्रोजेक्ट के लिए डिफ़ॉल्ट है और डोमेन रीलोड किए बिना सीन को दोबारा लोड करता है। Unity इसे Unity 7 में CoreCLR की ओर जाने की तैयारी के रूप में पेश करता है। आखिरकार Dictionaries अब Inspector में मूल रूप से सीरियलाइज़ होती हैं। एक नई Build Analysis विंडो बिल्ड इतिहास और मेट्रिक्स को ट्रैक करती है, जबकि Content Directories स्थानीय कंटेंट को Addressables इंटीग्रेशन तथा Windows और Xbox पर DirectStorage समर्थन के साथ व्यवस्थित करती हैं। शेडर सुधारों के लिए Unity का उदाहरण एक ऐसा बिल्ड है जिसका समय कीवर्ड वैरिएंट को डायनेमिक ब्रांच में बदलने के बाद 1 घंटा 46 मिनट से घटकर 32 मिनट रह गया।

इससे वेब गेम कहाँ पहुँचते हैं

हम सीधे three.js और WebGPU पर निर्माण करते हैं, इसलिए Unity का अपने बैकएंड को पूर्ण समर्थन देना प्रतिस्पर्धी खतरे से अधिक एक पुष्टि है। ब्राउज़र GPU कंप्यूट अब सबसे बड़े इंस्टॉल बेस वाले इंजन में समर्थित मार्ग है, जिसका अर्थ है कि इसे अपेक्षित मानकर अधिक गेम जारी होंगे, अधिक खिलाड़ी संगतता से जुड़ी सीमांत समस्याओं से टकराएँगे और ब्राउज़र विक्रेताओं पर उन्हें दूर करने का अधिक दबाव पड़ेगा। हमने लिखा है कि गेम के लिए WebGPU और WebGL एक-दूसरे की तुलना में कहाँ खड़े हैं और वेब के लिए इंजन के विकल्प क्या हैं, और दोनों में दी गई सलाह अब भी लागू होती है: WebGPU चालू रखते हुए WebGL 2 फ़ॉलबैक के साथ गेम जारी करें, वास्तविक कम क्षमता वाले हार्डवेयर पर परीक्षण करें और "ब्राउज़र कहता है कि वह इसका समर्थन करता है" को सवाल का अंत नहीं, बल्कि शुरुआत मानें।

समर्थित रिलीज़ में WebGPU को डिफ़ॉल्ट रूप से बंद रखना Unity का सही निर्णय है और यह एक संकेत भी है। API तैयार है। डिवाइसों का परिदृश्य अभी एकसमान नहीं है, और उन सभी पर चलने वाला इंजन इसे किसी से भी बेहतर जानता है।

संदर्भ