games· 8 min read

ब्राउज़र गेम डेवलपमेंट के लिए Three.js को समझना

Three.js नेटिव गेम इंजन की ज़रूरत के बिना ब्राउज़र में 3D ग्राफ़िक्स को सुलभ बनाता है। यह गाइड Three.js डेवलपमेंट के मूल कॉन्सेप्ट कवर करती है — सीन सेटअप और लाइटिंग से लेकर फ़िज़िक्स इंटीग्रेशन और परफ़ॉर्मेंस ऑप्टिमाइज़ेशन तक।

João CastroJoão Castro
ब्राउज़र गेम डेवलपमेंट के लिए Three.js को समझना

18 जुलाई 2026 को अपडेट किया गया — ब्राउज़र-गेम जेनरेशन और AI-सहायता वाले 3D वर्कफ़्लो पर ताज़ा प्लेटफ़ॉर्म डेटा के साथ।

Three.js क्या है और ब्राउज़र गेम्स के लिए यह क्यों मायने रखता है?

Three.js सबसे ज़्यादा इस्तेमाल होने वाली JavaScript 3D लाइब्रेरी है। यह कच्चे WebGL की जटिलता को एक डेवलपर-फ़्रेंडली API में समेट देती है जो सीन ग्राफ़, कैमरा, लाइटिंग, मटीरियल और रेंडरिंग संभालती है — जो गेम कच्चे WebGL में हज़ारों लाइनें माँगता, वह Three.js में सैकड़ों में बन जाता है। cannon-es जैसे फ़िज़िक्स इंजन के साथ मिलकर यह इंटरैक्टिव 3D अनुभव चलाती है — प्रोडक्ट कॉन्फ़िगरेटर से लेकर पूरे ब्राउज़र गेम्स तक — जो बिना किसी प्लगइन या इंस्टॉलेशन के किसी भी आधुनिक ब्राउज़र में चलते हैं।

इन मूल कॉन्सेप्ट्स को समझना मायने रखता है, चाहे आप Three.js हाथ से लिखें या AI-जेनरेटेड गेम कोड के साथ काम करें। गेम्स और इंटरैक्टिव अनुभव VULK पर 5.4% के साथ #2 सबसे ज़्यादा जेनरेट होने वाली ऐप कैटेगरी हैं, और प्लेटफ़ॉर्म ने 3D या WebGL का ज़िक्र करने वाले 2,438 यूज़र अनुरोध दर्ज किए हैं (VULK प्लेटफ़ॉर्म डेटा, जुलाई 2026, N = 11,355 प्रोजेक्ट) — यानी बहुत से लोग ऐसा Three.js कोड पढ़ते और बदलते हैं जो उन्होंने शुरू से नहीं लिखा। यह गाइड आपको वह मानसिक मॉडल देती है जिससे आप यह आत्मविश्वास से कर सकें।

Three.js एप्लिकेशन के मूल बिल्डिंग ब्लॉक क्या हैं?

हर Three.js एप्लिकेशन तीन बुनियादी ऑब्जेक्ट्स के इर्द-गिर्द बनी होती है — और एक लूप जो उन्हें जोड़ता है:

कॉन्सेप्ट भूमिका अहम विवरण
Scene सभी 3D ऑब्जेक्ट, लाइट, इफ़ेक्ट का कंटेनर सीन ग्राफ़ की जड़
Camera वह दृष्टिकोण जिससे सीन देखा जाता है गेम्स में आमतौर पर PerspectiveCamera
Renderer सीन + कैमरा को <canvas> पर बनाता है अंदर WebGL
रेंडर लूप ~60×/सेकंड चलता है पोज़िशन, फ़िज़िक्स अपडेट, फिर रेंडर
Mesh एक दिखने वाला ऑब्जेक्ट Geometry (आकार) + Material (रूप)
लाइटें मटीरियल दिखातीं और सीन को असली बनाती हैं Ambient, directional, point, spot, hemisphere

रेंडर लूप हर Three.js एप्लिकेशन की धड़कन है: यह ऑब्जेक्ट पोज़िशन अपडेट करता है, फ़िज़िक्स गणनाएँ लागू करता है और रेंडरर को मौजूदा फ़्रेम बनाने का निर्देश देता है। इसे कुशल रखना ही स्मूद परफ़ॉर्मेंस की कुंजी है।

Mesh, मटीरियल और ज्योमेट्री कैसे काम करते हैं?

Three.js में दिखने वाले ऑब्जेक्ट Mesh कहलाते हैं, और हर Mesh Geometry (आकार) और Material (रूप) का संयोजन है। Geometry 3D आकार बनाने वाले वर्टिस, फ़ेस और नॉर्मल परिभाषित करती है। Material परिभाषित करता है कि रोशनी उस आकार से कैसे इंटरैक्ट करती है — उसका रंग, परावर्तकता, खुरदरापन और पारदर्शिता।

Three.js बेसिक मटीरियल (MeshBasicMaterial, जो लाइटिंग की अनदेखी करता है) और फ़िज़िकली-बेस्ड रेंडरिंग (PBR) मटीरियल (MeshStandardMaterial, MeshPhysicalMaterial) दोनों देता है, जो यथार्थवादी प्रकाश इंटरैक्शन सिमुलेट करते हैं। PBR मटीरियल metalness और roughness मैप्स से ब्रश किए धातु, घिसे कंक्रीट या पॉलिश ग्लास जैसी विश्वसनीय सतहें बनाते हैं।

Three.js में लाइटिंग कैसे काम करती है?

लाइटिंग ही 3D सीन को असली बनाती है। Three.js कई लाइट प्रकार देता है: बेस रोशनी के लिए AmbientLight, सूरज जैसी समानांतर किरणों के लिए DirectionalLight, बल्ब जैसी सर्वदिशात्मक स्रोतों के लिए PointLight, केंद्रित बीम के लिए SpotLight और बाहरी आकाश-ज़मीन रंग मिश्रण के लिए HemisphereLight। ज़्यादातर सीन बेसलाइन के तौर पर ambient और directional लाइटिंग का संयोजन इस्तेमाल करते हैं, और खास इफ़ेक्ट्स के लिए point व spot लाइटें।

छायाएँ यथार्थवाद की एक और परत जोड़ती हैं लेकिन परफ़ॉर्मेंस की कीमत पर। हर छाया डालने वाली लाइट को एक अतिरिक्त रेंडर पास चाहिए। ब्राउज़र गेम्स के लिए छाया वाली लाइटों को एक-दो directional तक सीमित रखना आम ऑप्टिमाइज़ेशन है।

cannon-es से फ़िज़िक्स कैसे जोड़ें?

Three.js रेंडरिंग संभालता है, पर फ़िज़िक्स सिमुलेट नहीं करता। यथार्थवादी गति, टकराव और गुरुत्वाकर्षण के लिए ज़्यादातर ब्राउज़र गेम्स Three.js को cannon-es (cannon.js का मेंटेन्ड फ़ोर्क) के साथ जोड़ते हैं। फ़िज़िक्स इंजन अपना सिमुलेशन लूप चलाता है, और आप हर फ़्रेम में फ़िज़िक्स बॉडी की पोज़िशन को Three.js मेश की पोज़िशन से सिंक करते हैं।

cannon-es के मुख्य कॉन्सेप्ट हैं Bodies (द्रव्यमान और आकार वाले ऑब्जेक्ट), Shapes (गोले, बॉक्स, सिलेंडर, कॉन्वेक्स हल) और World (गुरुत्वाकर्षण और टकराव पहचान वाला सिमुलेशन कंटेनर)। वाहन फ़िज़िक्स के लिए cannon-es RaycastVehicle क्लास देता है जो सस्पेंशन, स्टीयरिंग और पहियों की पकड़ सिमुलेट करती है।

3D मॉडल कैसे लोड करें?

सरल आकार बिल्ट-इन ज्योमेट्री से बन सकते हैं, लेकिन किरदार, वाहन और इमारतों जैसे जटिल ऑब्जेक्ट आमतौर पर 3D मॉडलिंग सॉफ़्टवेयर में बनते हैं और GLB या GLTF फ़ाइलों के रूप में लोड होते हैं। Three.js का GLTFLoader यह करता है — फ़ाइल पार्स कर एक सीन ग्राफ़ लौटाता है जिसे आप अपने सीन में जोड़ सकते हैं।

GLTF (GL Transmission Format) वेब 3D का स्टैंडर्ड बन गया है क्योंकि यह मेश, मटीरियल, टेक्सचर, एनिमेशन और सीन हायरार्की को एक ही कुशल बाइनरी फ़ॉर्मैट में समेटता है। मॉडल ऑप्टिमाइज़ेशन — पॉलीगॉन घटाना, टेक्सचर कंप्रेस करना, कुशल UV लेआउट — ब्राउज़र परफ़ॉर्मेंस के लिए अहम है।

Three.js game development

ब्राउज़र में कौन-से परफ़ॉर्मेंस ऑप्टिमाइज़ेशन सबसे ज़्यादा मायने रखते हैं?

ब्राउज़र गेम्स को नेटिव एप्लिकेशनों से सख़्त परफ़ॉर्मेंस सीमाओं का सामना करना पड़ता है। मुख्य रणनीतियाँ:

  • इंस्टैंस्ड रेंडरिंग: एक ही ज्योमेट्री की कई प्रतियाँ (पेड़, इमारतें, कण) एक ही ड्रॉ कॉल में बनाना
  • लेवल ऑफ़ डिटेल (LOD): दूर के ऑब्जेक्ट के लिए सरल और पास के लिए विस्तृत मॉडल दिखाना
  • फ़्रस्टम कलिंग: कैमरे की दृष्टि से बाहर के ऑब्जेक्ट की रेंडरिंग छोड़ना (Three.js अपने आप करता है)
  • टेक्सचर एटलस: कई टेक्सचर को एक इमेज में मिलाकर ड्रॉ कॉल घटाना
  • ऑब्जेक्ट पूलिंग: ऑब्जेक्ट बनाने-मिटाने के बजाय दोबारा इस्तेमाल कर गार्बेज कलेक्शन घटाना

गेम लूप कैसे स्ट्रक्चर करें?

Three.js में सामान्य गेम लूप इस पैटर्न पर चलता है: इनपुट पढ़ें (कीबोर्ड, माउस, गेमपैड), गेम स्टेट अपडेट करें (खिलाड़ी की पोज़िशन, NPC व्यवहार, फ़िज़िक्स स्टेप), फ़िज़िक्स बॉडी को मेश से सिंक करें, कैमरा अपडेट करें और फ़्रेम रेंडर करें। हर चरण को कुशल रखने से गेम 60fps पर स्मूद चलता है।

जटिल गेम्स के लिए लॉजिक को मॉड्यूल में बाँटना — रेंडरिंग और लूप के लिए Engine क्लास, लेवल ज्योमेट्री के लिए World क्लास, खिलाड़ी नियंत्रण के लिए Character क्लास, ड्राइविंग मैकेनिक्स के लिए Vehicle क्लास — कोडबेस को व्यवस्थित और मेंटेनेबल रखता है।

क्या यह सब अब भी हाथ से सीखना ज़रूरी है?

तेज़ी से नहीं — पर कॉन्सेप्ट अब भी मायने रखते हैं। AI कोड जेनरेशन आज प्राकृतिक भाषा के विवरण से पूरे Three.js गेम बनाता है: VULK पर "बाधाओं और स्कोर काउंटर वाला 3D एंडलेस रनर बनाओ" जैसा प्रॉम्प्ट सीन सेटअप, गेम लूप, फ़िज़िक्स इंटीग्रेशन और इनपुट हैंडलिंग असली, एडिट करने योग्य कोड के रूप में जेनरेट करता है, जो सेकंडों में लाइव प्रीव्यू में रेंडर होता है। जेनरेशन सत्यापित होती है — VULK का रेंडर गेट सीन को असली ब्राउज़र में लोड करता है और कैनवास खाली रेंडर होने पर जेनरेशन फ़ेल कर देता है।

इस गाइड के कॉन्सेप्ट आपको समझदारी से इटरेट करने की क्षमता देते हैं: यह जानना कि छायाएँ रेंडर पास खर्च करती हैं, इंस्टैंसिंग ड्रॉ कॉल घटाता है और फ़िज़िक्स बॉडी हर फ़्रेम मेश से सिंक होती हैं, आपको AI को सटीक निर्देश देने — और ज़रूरत पर जेनरेटेड कोड एडिट करने — में सक्षम बनाता है।


FAQ

क्या असली गेम्स के लिए Three.js काफ़ी है, या Unity/Unreal चाहिए?

ब्राउज़र से डिलीवर होने वाले 3D गेम्स — आर्केड, रनर, पज़ल, प्रोडक्ट से जुड़े अनुभव — के लिए Three.js स्टैंडर्ड है और आधुनिक हार्डवेयर पर 60fps देता है। विशाल दुनिया और कंसोल लक्ष्य वाले AAA-स्तर के टाइटल के लिए नेटिव इंजन अब भी जीतते हैं। Three.js का फ़ायदा ज़ीरो-इंस्टॉल वितरण है: आपका गेम एक URL है।

काम करता Three.js गेम पाने का सबसे तेज़ तरीका क्या है?

इसे किसी AI जेनरेटर को बताइए। VULK पर गेम प्रॉम्प्ट एक Three.js-विशिष्ट पाइपलाइन ट्रिगर करते हैं जो सीन, गेम लूप, फ़िज़िक्स और इनपुट हैंडलिंग को लाइव प्रीव्यू वाले Vite प्रोजेक्ट के रूप में जेनरेट करती है। गेम्स और इंटरैक्टिव अनुभव सभी जेनरेशनों के 5.4% के साथ प्लेटफ़ॉर्म की #2 कैटेगरी हैं (VULK प्लेटफ़ॉर्म डेटा, जुलाई 2026)। फिर आप बातचीत से इटरेट करते हैं और एक क्लिक में Cloudflare Pages पर डिप्लॉय करते हैं।

क्या हर गेम के लिए फ़िज़िक्स इंजन चाहिए?

नहीं। कई सफल ब्राउज़र गेम्स पूरे फ़िज़िक्स सिमुलेशन के बजाय सरल गणित (बाउंडिंग-बॉक्स जाँच, मैनुअल वेग) इस्तेमाल करते हैं। cannon-es तब जोड़ें जब यथार्थवादी गुरुत्वाकर्षण, स्टैकिंग, कई बॉडीज़ के बीच टकराव या वाहन डायनामिक्स चाहिए।

परफ़ॉर्मेंस गिरने से पहले Three.js गेम कितना बड़ा हो सकता है?

कोई तय सीमा नहीं — यह ड्रॉ कॉल, पॉलीगॉन संख्या और टेक्सचर मेमोरी पर निर्भर है। इंस्टैंसिंग, LOD और टेक्सचर एटलस के साथ दसियों हज़ार ऑब्जेक्ट वाले सीन स्मूद चलते हैं। सामान्य बॉटलनेक ड्रॉ कॉल हैं: मोबाइल के लिए इन्हें कुछ सौ तक रखें।

क्या मैं VULK से जेनरेट हुआ गेम एक्सपोर्ट कर खुद होस्ट कर सकता हूँ?

हाँ। जेनरेटेड गेम्स स्टैंडर्ड Vite + Three.js प्रोजेक्ट हैं। आप पूरा सोर्स ZIP में एक्सपोर्ट कर सकते हैं या GitHub पर पुश कर स्टैटिक बिल्ड कहीं भी होस्ट कर सकते हैं। VULK पेड-ओनली है (कोई फ्री टियर नहीं): प्लान Builder $19.99/माह से शुरू, $3.99 से शुरू 3-दिन के फुल-एक्सेस इंट्रो के साथ, जो जारी रखने पर पहले महीने में क्रेडिट होता है।


चाहे आप प्रोडक्ट विज़ुअलाइज़र बनाएँ, शैक्षिक सिमुलेशन या पूरा ब्राउज़र गेम — Three.js आधार देता है। और AI जेनरेशन के सादी भाषा से सत्यापित Three.js सीन बनाने के साथ, प्रवेश की बाधा कभी इतनी कम नहीं रही। vulk.dev पर शुरू करें।

प्रकाशित द्वारा João Castro · 8 min read

आगे पढ़ें

सभी लेख
VULK सपोर्ट

ऑनलाइन

नमस्ते! आज मैं आपकी कैसे मदद कर सकता हूँ?

लोकप्रिय विषय

AI सपोर्ट • support.vulk.dev

ब्राउज़र गेम डेवलपमेंट के लिए Three.js को समझना — Blog | VULK