Skip to content

ब्राउज़र चुपचाप एक असली engine target बन गया

Oleg Sidorkin द्वारा, Cinevva के CTO

दो महीने पहले हमने लिखा था कि browser rendering का अब तक का सबसे अच्छा महीना रहा, और हमने मान लिया था कि यह एक उछाल भर है। ऐसा नहीं था। यह एक ट्रेंड की शुरुआत थी, और इस ट्रेंड की एक दिशा है। ब्राउज़र अब वह जगह बनता जा रहा है जहाँ आप एक असली game शिप करते हैं, न कि वह जगह जहाँ आप एक छोटी सी game को port करते हैं।

मार्च के बाद से क्या आया

लिस्ट देखिए। Babylon.js 9 हज़ारों dynamic lights के लिए clustered lighting, volumetric lighting, और पूरा Gaussian splatting overhaul लेकर आया। Three.js r184 ने HTMLTexture जोड़ा, जो live, interactive DOM को एक 3D surface पर texture के रूप में render करता है। PlayCanvas v2.17 ने WebGPU पर GPU-driven Gaussian splatting दिया, जिसमें f16 spherical harmonics और GPU sorting और frustum culling शामिल हैं। Godot 4.7 beta ने एक flag के पीछे WebGPU web export जोड़ा, साथ में असली HDR output और area lights। Chrome 146 ने एक WebGPU compatibility mode शिप किया जो OpenGL ES 3.1 और Direct3D 11 पर चलता है, और WebGPU खुद W3C Candidate Recommendation तक पहुँच गया। इनमें से कोई एक भी एक उल्लेखनीय तिमाही बना देता। ये सब लगभग आठ हफ्तों में आ गए।

"डेमो के लिए काफी अच्छा" अब "शिप करने के लिए काफी अच्छा" बन गया

जो features आए वे खिलौने नहीं हैं। Clustered lighting वह तरीका है जिससे आप frame rate गिराए बिना एक scene को हज़ारों dynamic lights से रोशन करते हैं। Gaussian splatting वह तरीका है जिससे आप interactive frame rates पर photoreal captured environments को एक game में डालते हैं। GPU-driven sorting और culling एक ऐसे tech demo, जो अटकता है, और एक ऐसी game, जो 60 बनाए रखती है, के बीच का फर्क है। ये वही तकनीकें हैं जिनका इस्तेमाल native engines AAA शिप करने के लिए करते हैं, और अब ये एक tab में चलती हैं। compatibility-mode वाला काम दूसरी दिशा में भी उतना ही मायने रखता है। इसका मतलब है कि WebGPU उस सस्ते और पुराने hardware तक पहुँचता है जो ज़्यादातर players के पास सचमुच होता है, न कि सिर्फ high-end GPU वाली developer machines तक।

हम इस पर खुद, हाथ से, बनाते आ रहे हैं

हम यह किसी press release से पढ़कर नहीं बता रहे। हमने पिछले अरसे में एक open world बनाने में लगाया है जो ब्राउज़र में चलती है, साठ से ज़्यादा spike experiments के दौरान, भद्दे terrain baselines से लेकर GPU marching cubes और streaming LOD तक। हमने इस सफर को एक पूरी सीरीज और methodology पर एक लंबे लेख के रूप में लिखा। ऊपर बताया गया लगभग हर feature किसी ऐसी समस्या से जुड़ता है जिसे हमने मुश्किल तरीके से झेला। जब clustered lighting एक mainstream web engine में आता है, तो वह हमारे अपने code का एक हिस्सा है जिसे हम मिटा सकते हैं।

आपत्ति मर चुकी है, आदत नहीं

"आप एक ब्राउज़र में असली game नहीं बना सकते" यह लंबे समय तक सच था, और यह तब सच होना बंद हुआ जब ज़्यादातर इंडस्ट्री AI की तरफ दूसरी ओर देख रही थी। वह तकनीकी सीमा, जो पहले एक native client और फिर एक web build शायद-कभी-नहीं शिप करने को सही ठहराती थी, हट चुकी है। जो बचा है वह आदत है। Engines, studios, और toolchains अब भी इस मान्यता के इर्द-गिर्द बने हैं कि ब्राउज़र एक कमतर target है।

वही मान्यता मौका है। हमने Cinevva को इस दांव पर बनाया कि ब्राउज़र games शिप करने और खोजने की डिफ़ॉल्ट जगह बन जाएगा, न कि fallback। rendering stack ने अभी-अभी दो महीने इस दांव को सही साबित करने में बिताए हैं। जो studios अपना मानसिक मॉडल पहले अपडेट करते हैं, उन्हें बिना install friction वाला एक distribution surface और एक click दूर बैठा audience मिलता है। जो इंतज़ार करते हैं वे आखिरकार इस पर port करेंगे ही, तब जब बाकी सब पहले से ही वहाँ रह रहे होंगे।


संबंधित: