<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Cinevva गाइड</title>
        <link>https://app.cinevva.com</link>
        <description>क्रिएटर्स और खिलाड़ियों के लिए विस्तृत गाइड।</description>
        <lastBuildDate>Sun, 26 Jul 2026 21:56:42 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <copyright>Copyright 2024-present Cinevva</copyright>
        <item>
            <title><![CDATA[2026 में Steam Next Fest की रणनीति]]></title>
            <link>https://app.cinevva.com/hi/guides/steam-next-fest-strategy-gamedeveloper</link>
            <guid>https://app.cinevva.com/hi/guides/steam-next-fest-strategy-gamedeveloper</guid>
            <pubDate>Sun, 26 Jul 2026 21:50:38 GMT</pubDate>
            <content:encoded><![CDATA[<h1 id="_2026-में-steam-next-fest-की-रणनीति" tabindex="-1">2026 में Steam Next Fest की रणनीति <a class="header-anchor" href="#_2026-में-steam-next-fest-की-रणनीति" aria-label="Permalink to &quot;2026 में Steam Next Fest की रणनीति&quot;"></a></h1>
<p><em>wishlists, demos और timing के बारे में data क्या कहता है। 200+ games के असली आंकड़े।</em></p>
<hr>
<p>अगर आप कैलेंडर के हिसाब से प्लान कर रहे हैं, तो Steam 2026 में Next Fest तीन बार चलाता है: 23 फरवरी से 2 मार्च (हो चुका), 15 से 22 जून, और 19 से 26 अक्टूबर। जून और अक्टूबर के editions शुरुआती दिन सुबह 10:00 AM PDT से अंतिम दिन सुबह 10:00 AM PDT तक चलते हैं, और ठीक Summer और Winter sales से पहले आते हैं (फरवरी भी Pacific time पर चला, daylight saving से पहले)। एक game कभी भी सिर्फ एक ही Next Fest में शामिल हो सकती है, इसलिए वो edition चुनें जो आपकी release window से मेल खाता हो। fest खुलने तक आपका demo सार्वजनिक रूप से खेलने लायक होना चाहिए, और fest बंद होने के बाद ही आप release कर सकते हैं।</p>
<p>Next Fest के बारे में बात यह है: हर कोई इसे लॉटरी की तरह मानता है। अपना demo डाल दो, उंगलियाँ क्रॉस कर लो, और उम्मीद करो कि algorithm आप पर मेहरबान हो जाए। पर यह ऐसे काम नहीं करता।</p>
<p>मैं postmortems को जुनून की हद तक पढ़ता रहा हूँ। अकेले 2025 के ही सैकड़ों। पैटर्न इतना एक जैसा है कि लगभग बोरिंग लगता है: जो games Next Fest में &quot;जीतती&quot; हैं वे festival के दौरान सफलता खोज नहीं रही होतीं। वे उस momentum को बढ़ा रही होती हैं जो उन्होंने पहले ही बना लिया था।</p>
<p>मैं आपको दिखाता हूँ कि मेरा मतलब क्या है।</p>
<h2 id="वो-फॉर्मूला-जो-कोई-सुनना-नहीं-चाहता" tabindex="-1">वो फॉर्मूला जो कोई सुनना नहीं चाहता <a class="header-anchor" href="#वो-फॉर्मूला-जो-कोई-सुनना-नहीं-चाहता" aria-label="Permalink to &quot;वो फॉर्मूला जो कोई सुनना नहीं चाहता&quot;"></a></h2>
<p><strong>पहले की Wishlists × 2 = मिली हुई Wishlists</strong></p>
<p>यह अनुपात postmortem दर postmortem में दिखता है।</p>
<p>Eilean Mor अक्टूबर 2025 में 2,117 wishlists के साथ उतरी। festival के दौरान 2,082 हासिल कीं। लगभग ठीक 2×।</p>
<p>[IMAGE: Eilean Mor trailer screenshot or embed - <a href="https://www.youtube.com/watch?v=jFv7SjsQEws" target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=jFv7SjsQEws</a>]</p>
<p>Dice of Kalma 335 wishlists के साथ उतरी। 659 हासिल कीं। 2× से थोड़ा कम। उनके developer ने लिखा: &quot;हमारी wishlists लगभग तीन गुना हो गईं, जो शानदार है, पर अभी भी हमें बहुत काम करना है।&quot;</p>
<p>यही असहज सच्चाई है। Next Fest उसी को दोगुना करता है जो आपके पास पहले से है। अगर आपके पास कुछ नहीं है, तो आपको शून्य का दोगुना मिलता है।</p>
<h2 id="_2-000-wishlist-की-चट्टान" tabindex="-1">2,000 Wishlist की चट्टान <a class="header-anchor" href="#_2-000-wishlist-की-चट्टान" aria-label="Permalink to &quot;2,000 Wishlist की चट्टान&quot;"></a></h2>
<p>फरवरी 2025 की 208 games के data से पता चलता है कि 2,000 wishlists पर एक तीखा मोड़ आता है।</p>
<table tabindex="0">
<thead>
<tr>
<th>शुरुआती Wishlists</th>
<th>क्या होता है</th>
</tr>
</thead>
<tbody>
<tr>
<td>1,000 से कम</td>
<td>दिन 2 के बाद आप अदृश्य हो जाते हैं। कोई भी game tier नहीं बदल पाई।</td>
</tr>
<tr>
<td>1,000–2,000</td>
<td>मामूली बढ़त। आप अपनी ही lane में रहते हैं।</td>
</tr>
<tr>
<td>2,000+</td>
<td>algorithm आपकी मदद करना शुरू करता है। असली momentum संभव है।</td>
</tr>
<tr>
<td>10,000+</td>
<td>Gold tier। मजबूत बढ़त की संभावना।</td>
</tr>
<tr>
<td>100,000+</td>
<td>Diamond tier। आप top charts के लिए मुकाबला कर रहे हैं।</td>
</tr>
</tbody>
</table>
<p>उस सर्वे के एक developer ने यह कहा: &quot;आप सच में देखना शुरू करते हैं कि Steam Next Fest से पहले जिन games के पास 2000+ wishlists होती हैं, उनके लिए कमाई गई wishlists कैसे आसमान छूने लगती हैं।&quot;</p>
<p>यह बिल्कुल algorithm की बात नहीं है। यह validation की बात है। 2,000 wishlists का मतलब है कि आपने marketing के बारे में कुछ समझ लिया है। आप जानते हैं कि लोगों तक कैसे पहुँचना है। यह कौशल festival के दौरान कई गुना हो जाता है।</p>
<h2 id="पहले-48-घंटे-ही-सब-कुछ-हैं" tabindex="-1">पहले 48 घंटे ही सब कुछ हैं <a class="header-anchor" href="#पहले-48-घंटे-ही-सब-कुछ-हैं" aria-label="Permalink to &quot;पहले 48 घंटे ही सब कुछ हैं&quot;"></a></h2>
<p>Valve दिन 1 और 2 को सबको एक मौका देता है। उसके बाद, algorithm performance के आधार पर तय करता है कि किसे ज्यादा visibility का हक है।</p>
<p>Bronze tier की games? उनके impressions दिन 3 को चट्टान से गिर जाते हैं। Diamond tier की games? उनके impressions तीन गुना हो जाते हैं।</p>
<p><strong>दिन 1-2:</strong> सब कुछ झोंक दो। Stream करो। Post करो। creators के साथ तालमेल बिठाओ।
<strong>दिन 3+:</strong> algorithm पहले ही तय कर चुका है। अब आप बस सवारी का हिस्सा हैं।</p>
<h2 id="_2025-में-असल-में-क्या-जीता" tabindex="-1">2025 में असल में क्या जीता <a class="header-anchor" href="#_2025-में-असल-में-क्या-जीता" aria-label="Permalink to &quot;2025 में असल में क्या जीता&quot;"></a></h2>
<h3 id="do-no-harm-फरवरी-2025" tabindex="-1">Do No Harm (फरवरी 2025) <a class="header-anchor" href="#do-no-harm-फरवरी-2025" aria-label="Permalink to &quot;Do No Harm (फरवरी 2025)&quot;"></a></h3>
<p>[IMAGE: Do No Harm trailer screenshot or embed - <a href="https://www.youtube.com/watch?v=GBlOHAL1LkY" target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=GBlOHAL1LkY</a>]</p>
<p><strong>आंकड़े:</strong> Next Fest के दौरान 45,655 wishlists मिलीं। 52,102 के साथ शुरुआत की।</p>
<p><strong>उन्होंने क्या किया:</strong></p>
<ul>
<li>Trailer 29 जनवरी को GameTrailers पर आया (Next Fest से हफ्तों पहले)</li>
<li>PR आउटरीच trailer के साथ timed किया गया</li>
<li>Demo 4 फरवरी को live हुआ</li>
<li>organic momentum को बढ़ाने के लिए paid ads</li>
</ul>
<p>यही playbook है। उन्होंने खुद को खोजे जाने के लिए Next Fest पर भरोसा नहीं किया। उन्होंने Next Fest का इस्तेमाल पहले से कमाए हुए ध्यान को कई गुना करने के लिए किया।</p>
<h3 id="cairn-अक्टूबर-2025" tabindex="-1">Cairn (अक्टूबर 2025) <a class="header-anchor" href="#cairn-अक्टूबर-2025" aria-label="Permalink to &quot;Cairn (अक्टूबर 2025)&quot;"></a></h3>
<p>[IMAGE: Cairn trailer screenshot or embed - <a href="https://www.youtube.com/watch?v=x6KWhvvk3bM" target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=x6KWhvvk3bM</a>]</p>
<p>दिन 1 को Popular Upcoming पर #5 पहुँची। दिन 2 तक Top Demos और Trending Upcoming में।</p>
<p><strong>उन्होंने क्या किया:</strong></p>
<ul>
<li>Demo दिसंबर 2024 में launch हुआ (उनके Next Fest से 10 महीने पहले)</li>
<li>festival से पहले 32,000 followers</li>
<li>Next Fest से पहले 18 festivals में स्वीकार की गई</li>
<li>The Game Bakers (Furi, Haven) - एक स्थापित studio जिसका ट्रैक रिकॉर्ड था</li>
</ul>
<p>उन्हें Next Fest की जरूरत नहीं थी। पर उन्होंने फिर भी इसका इस्तेमाल किया क्योंकि जब आप काम पहले ही कर चुके होते हैं तो यह मुफ्त का amplification है।</p>
<h3 id="yapyap-अक्टूबर-2025" tabindex="-1">YAPYAP (अक्टूबर 2025) <a class="header-anchor" href="#yapyap-अक्टूबर-2025" aria-label="Permalink to &quot;YAPYAP (अक्टूबर 2025)&quot;"></a></h3>
<p>[IMAGE: YAPYAP gameplay screenshot or embed - <a href="https://www.youtube.com/watch?v=7d8Fd9XXAtQ" target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=7d8Fd9XXAtQ</a>]</p>
<p>&quot;friend slop&quot; वाला तमाशा। Co-op horror जहाँ आप wizards बनकर एक tower में तोड़फोड़ करते हैं। social media पर viral हुई, फिर Next Fest पर छा गई।</p>
<p>उनका trailer 25 अगस्त 2025 को आया - Next Fest से एक महीने पहले। इसने 434K views कमाए। वही मोड़ था। उसके बाद जो कुछ हुआ वो बस लहर पर सवारी थी।</p>
<h2 id="फरवरी-2026-ने-क्या-पुष्टि-की" tabindex="-1">फरवरी 2026 ने क्या पुष्टि की <a class="header-anchor" href="#फरवरी-2026-ने-क्या-पुष्टि-की" aria-label="Permalink to &quot;फरवरी 2026 ने क्या पुष्टि की&quot;"></a></h2>
<p>फरवरी 2026 के edition ने playbook बदला नहीं, बल्कि उसे और पक्का कर दिया। fest ने 3,500 games का आंकड़ा पार किया, जो साल दर साल 51% ज्यादा है, और बीच वाले title को करीब 200 wishlists और 11 नए followers मिले। ज्यादा games, पतले हिस्से। टॉप 5% को मोटे तौर पर 7,000 wishlists मिलीं, जो एक साल पहले के करीब 10,000 से कम है, यानी जीतने वाले भी अब एक ज्यादा भीड़ भरी पाई बाँट रहे हैं। Co-op का दबदबा बना रहा, और &quot;fest से ठीक पहले अपना demo shadow-drop कर दो&quot; वाला विचार फिर से गलत साबित हुआ: जिन दस सबसे ज्यादा कमाई करने वालों का विश्लेषण किया गया, उनमें से सिर्फ एक ने अपना demo fest से कुछ ही दिन पहले launch किया था। बाकियों के demos एक महीने या उससे ज्यादा समय से बाहर थे। पहले audience बनाओ, हर edition यही एक बात कहता रहता है।</p>
<h2 id="वे-genres-जो-जीतते-रहते-हैं" tabindex="-1">वे genres जो जीतते रहते हैं <a class="header-anchor" href="#वे-genres-जो-जीतते-रहते-हैं" aria-label="Permalink to &quot;वे genres जो जीतते रहते हैं&quot;"></a></h2>
<p>फरवरी 2025 के diamond tier से:</p>
<ul>
<li><strong>Horror</strong> (×2) - Steam को horror पसंद है। हमेशा से रहा है।</li>
<li><strong>Strategy/Management</strong> (×4) - &quot;crafty-buildy-simulationy&quot; वाला माहौल है</li>
<li><strong>Co-op &quot;friend slop&quot;</strong> - Lethal Company ने बाढ़ के दरवाजे खोल दिए</li>
<li><strong>Point-and-click</strong> (×2) - पर दोनों ही मौजूदा audience वाले sequels थे</li>
</ul>
<p>Point-and-click वाली बात दिलचस्प है। Beholder: Conductor अपनी series की चौथी game थी। Duck Detective एक sequel था। उनके पास पहले से जुड़े हुए audience थे। पहली बार point-and-click बनाने वाले devs को ऐसे नतीजे नहीं दिखते।</p>
<h2 id="छोटी-games-क्या-कहती-हैं" tabindex="-1">छोटी Games क्या कहती हैं <a class="header-anchor" href="#छोटी-games-क्या-कहती-हैं" aria-label="Permalink to &quot;छोटी Games क्या कहती हैं&quot;"></a></h2>
<p>हर कोई diamond tier के पीछे नहीं भाग रहा। छोटे छोर पर मौजूद developers ने अक्टूबर 2025 से जो बताया वो यह है:</p>
<blockquote>
<p>&quot;visits से wishlists तक 62% conversion rate। store page खुद तो काम करता दिखता है। पर impressions ज्यादा थे और लोगों ने click नहीं किया। Capsule art को अपडेट की जरूरत है।&quot;</p>
</blockquote>
<blockquote>
<p>&quot;57% store visitors ने हमारा demo खेला। यह ज्यादा लगता है? पर जिन्होंने खेला उनमें से सिर्फ 15% ने wishlist भी किया। कुछ उम्मीदों पर खरा नहीं उतरा।&quot;</p>
</blockquote>
<blockquote>
<p>&quot;हमारी game cozy लगी या नहीं यह पूछने के लिए r/cozygames से हमेशा के लिए ban कर दिया गया। हमेशा नियम मानने की कोशिश करता हूँ पर यह काफी हैरान करने वाला था।&quot;</p>
</blockquote>
<p>मेहनत असली है। ये developers capsule art टेस्ट कर रहे हैं, tags ट्वीक कर रहे हैं, subreddits से ban हो रहे हैं। यह कोई चमक-धमक वाला काम नहीं है।</p>
<p>एक पैटर्न जो और मजबूत हुआ है: co-op &quot;friend slop&quot; games भारी demo play counts जुटाती हैं पर उन players में से कम को wishlists में बदलती हैं, क्योंकि जो audience आता है वो casual होता है और दोस्तों के साथ मस्ती करने आया होता है, किसी release को ट्रैक करने नहीं। ज्यादा plays का मतलब अपने आप ज्यादा wishlists नहीं होता।</p>
<h2 id="ईमानदार-playbook" tabindex="-1">ईमानदार Playbook <a class="header-anchor" href="#ईमानदार-playbook" aria-label="Permalink to &quot;ईमानदार Playbook&quot;"></a></h2>
<p><strong>Next Fest से महीनों पहले:</strong></p>
<ol>
<li>अपना demo जल्दी launch करो। मतलब, बहुत जल्दी। जीतने वालों के demos 6-12 महीने तक बाहर थे।</li>
<li>पहले छोटे genre festivals में हिस्सा लो। उन्हें polish runs की तरह इस्तेमाल करो।</li>
<li>2,000+ wishlists तक बनाओ। यही आपकी असली threshold है।</li>
</ol>
<p><strong>Next Fest के दौरान:</strong></p>
<ol>
<li>दिन 1-2 ही बनाते या बिगाड़ते हैं। सब कुछ झोंक दो।</li>
<li>हो सके तो stream करो। यह आपके page पर &quot;live&quot; दिखता है।</li>
<li>streamers के साथ तालमेल बिठाओ। जरूरत पड़े तो उन्हें भुगतान करो।</li>
<li>अपने demo को एक अलग Steam page पर रखो ताकि वो reviews जमा कर सके।</li>
</ol>
<p><strong>Next Fest के बाद:</strong></p>
<ol>
<li>तुरंत launch मत करो। कुछ हफ्ते बाद असल में बेहतर performance देता है।</li>
<li>momentum को अपने असली launch marketing के लिए इस्तेमाल करो।</li>
</ol>
<h2 id="इसे-कब-छोड़-देना-चाहिए" tabindex="-1">इसे कब छोड़ देना चाहिए <a class="header-anchor" href="#इसे-कब-छोड़-देना-चाहिए" aria-label="Permalink to &quot;इसे कब छोड़ देना चाहिए&quot;"></a></h2>
<p>सीधी बात: Next Fest हर किसी के लिए नहीं है।</p>
<p>इसे छोड़ दो अगर:</p>
<ul>
<li>आपके पास 1,000 से कम wishlists हैं (दिन 3 तक आप अदृश्य हो जाएँगे)</li>
<li>आपका demo polished नहीं है (पहली छाप के लिए आपको एक ही मौका मिलता है)</li>
<li>यह आपका पहला festival ही है (पहले छोटे वाले करो)</li>
<li>आप उसके तुरंत बाद launch कर रहे हैं (कुछ हफ्ते रुको)</li>
</ul>
<p>हर महीने दर्जनों छोटे festivals होते हैं। ज्यादा focused audiences। कम competition। सूची के लिए howtomarketagame.com/festivals देखें।</p>
<p>Next Fest डिफ़ॉल्ट है क्योंकि Valve सबको शामिल होने के लिए कहता है। पर सबसे अच्छी marketing वो चीज नहीं है जिसके लिए सबको कहा जाता है।</p>
<hr>
<h2 id="लेखक-के-बारे-में" tabindex="-1">लेखक के बारे में <a class="header-anchor" href="#लेखक-के-बारे-में" aria-label="Permalink to &quot;लेखक के बारे में&quot;"></a></h2>
<p>Oleg Sidorkin indie game developers के लिए tools बनाते हैं। वे game marketing data और developer postmortems का अध्ययन करते रहे हैं ताकि समझ सकें कि असल में क्या काम करता है बनाम किस चीज का हाइप बनता है।</p>
<hr>
<p><strong>Game Developer editors के लिए नोट्स:</strong></p>
<p>IMAGE PLACEMENTS:</p>
<ol>
<li>After &quot;Almost exactly 2×&quot; paragraph - Eilean Mor video embed or screenshot</li>
<li>After &quot;Do No Harm (February 2025)&quot; header - Do No Harm video embed or screenshot</li>
<li>After &quot;Cairn (October 2025)&quot; header - Cairn video embed or screenshot</li>
<li>After &quot;YAPYAP (October 2025)&quot; header - YAPYAP video embed or screenshot</li>
</ol>
<p>VIDEO URLS:</p>
<ul>
<li>Eilean Mor: <a href="https://www.youtube.com/watch?v=jFv7SjsQEws" target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=jFv7SjsQEws</a></li>
<li>Do No Harm: <a href="https://www.youtube.com/watch?v=GBlOHAL1LkY" target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=GBlOHAL1LkY</a></li>
<li>Cairn: <a href="https://www.youtube.com/watch?v=x6KWhvvk3bM" target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=x6KWhvvk3bM</a></li>
<li>YAPYAP: <a href="https://www.youtube.com/watch?v=7d8Fd9XXAtQ" target="_blank" rel="noreferrer">https://www.youtube.com/watch?v=7d8Fd9XXAtQ</a></li>
</ul>
<p>STEAM LINKS (for reference/linking):</p>
<ul>
<li>Eilean Mor: <a href="https://store.steampowered.com/app/3871570/Eilean_Mor_The_Lost_Keepers/" target="_blank" rel="noreferrer">https://store.steampowered.com/app/3871570/Eilean_Mor_The_Lost_Keepers/</a></li>
<li>Do No Harm: <a href="https://store.steampowered.com/app/3138780/Do_No_Harm/" target="_blank" rel="noreferrer">https://store.steampowered.com/app/3138780/Do_No_Harm/</a></li>
<li>Cairn: <a href="https://store.steampowered.com/app/1588550/Cairn/" target="_blank" rel="noreferrer">https://store.steampowered.com/app/1588550/Cairn/</a></li>
<li>YAPYAP: <a href="https://store.steampowered.com/app/3834090/YAPYAP/" target="_blank" rel="noreferrer">https://store.steampowered.com/app/3834090/YAPYAP/</a></li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Games के लिए सबसे बेहतरीन AI Music Generators (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/ai-music-generators-games</link>
            <guid>https://app.cinevva.com/hi/guides/ai-music-generators-games</guid>
            <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में game soundtracks के लिए सबसे बेहतरीन AI music generators की तुलना, vocals, commercial licensing, stems और self-hosting के आधार पर। Suno और ElevenLabs Music से लेकर Stable Audio और ACE-Step जैसे open models तक।]]></description>
            <content:encoded><![CDATA[<h1 id="games-के-लिए-सबसे-बेहतरीन-ai-music-generators-2026" tabindex="-1">Games के लिए सबसे बेहतरीन AI Music Generators (2026) <a class="header-anchor" href="#games-के-लिए-सबसे-बेहतरीन-ai-music-generators-2026" aria-label="Permalink to &quot;Games के लिए सबसे बेहतरीन AI Music Generators (2026)&quot;"></a></h1>
<figure style="margin:1.5rem 0">
<img src="https://cdn.cinevva.com/guides/ai-music-generators-games.jpg?v=1" alt="Best AI music generators for game soundtracks in 2026" style="width:100%;border-radius:10px">
</figure>
<p><em>आख़िरी अपडेट: जुलाई 2026।</em></p>
<p>Soundtrack कभी game का वह हिस्सा था जिसे अकेले काम करने वाले developers बस छोड़ देते थे। आप या तो खामोशी के साथ game भेजते, या कोई ऐसा free loop उठा लेते जिसे पहले ही पचास games इस्तेमाल कर चुके होते, क्योंकि एक composer रखना बाकी पूरे project से भी महँगा पड़ता था। AI music ने यह गणित बदल दिया। आप एक वाक्य में mood बताइए और एक मिनट से भी कम में पूरा track वापस पाइए।</p>
<p>2026 में मुश्किल हिस्सा quality नहीं है। इनमें से ज़्यादातर tools इतने अच्छे लगते हैं कि सीधे ship किए जा सकें। मुश्किल है licensing। Game एक commercial product है, और लोकप्रिय music generators में से आधे या तो अपने free tier पर commercial use रोक देते हैं या अपने training data को लेकर अनसुलझे मुकदमे ढो रहे हैं। ग़लत वाला चुना, तो आप अपनी game files के अंदर एक कानूनी समस्या ship कर रहे हैं।</p>
<p>इसमें हमारा भी दाँव लगा है। Cinevva का अपना <a href="/hi/tools/music.html">music tool</a> है, और इसके पीछे के engines चुनते समय हमने तीन से कहीं ज़्यादा आज़माए। हम ElevenLabs Music, ACE-Step और Mubert पर टिके, और तय करने वाली बात यह नहीं थी कि किसी blind listening test में कौन जीता। बात यह थी कि जब कोई creator वही एकमात्र अहम सवाल पूछे, तब हम किन licenses के पीछे डटकर खड़े रह सकते हैं: क्या मैं इस track वाला game बेच सकता हूँ? यही सवाल नीचे की हर बात में चलता है।</p>
<p>Prompt-से-track लगभग ऐसा सुनाई देता है, वही flow जो आप tool के अंदर इस्तेमाल करेंगे:</p>
<audio controls style="width:100%">
  <source src="/img/ai-samples/music-sample.mp3" type="audio/mpeg">
</audio>
<p><em>एक छोटा AI-generated clip। एक mood बताइए, उससे मेल खाता track पाइए।</em></p>
<p>यह गाइड उन AI music generators की तुलना करती है जो games के लिए सचमुच काम करते हैं, इस आधार पर बाँटकर कि आप उन्हें कैसे इस्तेमाल करेंगे: vocals वाले full-song tools, products के लिए बने royalty-free generators, और वे open models जिन्हें आप खुद चला सकते हैं। हर एक के लिए सबसे अहम बात सबसे पहले रखी गई है: क्या आप उसका output ऐसे game में कानूनी रूप से डाल सकते हैं जिसे आप बेचते हैं?</p>
<h2 id="झटपट-चुनाव" tabindex="-1">झटपट चुनाव <a class="header-anchor" href="#झटपट-चुनाव" aria-label="Permalink to &quot;झटपट चुनाव&quot;"></a></h2>
<p>छोटा जवाब चाहिए, तो यहाँ बताया है कि हर tool किसके लिए है।</p>
<table tabindex="0">
<thead>
<tr>
<th>Tool</th>
<th>किसके लिए सबसे अच्छा</th>
<th>Vocals</th>
<th>Commercial license</th>
<th>Self-host</th>
<th>कीमत</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>ElevenLabs Music</strong></td>
<td>ship किए गए game के लिए सबसे साफ़ licensing</td>
<td>हाँ</td>
<td>commercial use के लिए स्वीकृत, licensed training data</td>
<td>नहीं</td>
<td>Paid plans</td>
</tr>
<tr>
<td><strong>Suno</strong></td>
<td>vocals के साथ तेज़ full songs</td>
<td>हाँ</td>
<td>सिर्फ़ paid plans, मुकदमे का tail जोखिम</td>
<td>नहीं</td>
<td>Pro $10/माह</td>
</tr>
<tr>
<td><strong>Stable Audio 3</strong></td>
<td>self-hosting और sound design</td>
<td>Instrumental</td>
<td>Community License, $1M revenue से नीचे free</td>
<td>हाँ</td>
<td>Open weights</td>
</tr>
<tr>
<td><strong>ACE-Step</strong></td>
<td>open, self-hosted full tracks</td>
<td>हाँ</td>
<td>MIT, पूरी तरह उदार</td>
<td>हाँ</td>
<td>Free</td>
</tr>
<tr>
<td><strong>Mubert</strong></td>
<td>app के अंदर अंतहीन background music</td>
<td>नहीं</td>
<td>plan के अनुसार royalty-free, products के लिए बना</td>
<td>API</td>
<td>API tiers</td>
</tr>
<tr>
<td><strong>Soundraw</strong></td>
<td>royalty-free tracks और in-product API</td>
<td>नहीं</td>
<td>royalty-free, अपना licensed catalog</td>
<td>API</td>
<td>~$17/माह</td>
</tr>
<tr>
<td><strong>AIVA</strong></td>
<td>cinematic और orchestral scores</td>
<td>Instrumental</td>
<td>paid tiers पर commercial</td>
<td>नहीं</td>
<td>Paid plans</td>
</tr>
<tr>
<td><strong>Magenta RealTime</strong></td>
<td>real time में प्रतिक्रिया देने वाला adaptive music</td>
<td>Instrumental</td>
<td>open, CC-BY weights</td>
<td>हाँ</td>
<td>Free</td>
</tr>
<tr>
<td><strong>Udio</strong></td>
<td>सुनने और remix के लिए, game files के लिए नहीं</td>
<td>हाँ</td>
<td>सिर्फ़ streaming, export नहीं</td>
<td>नहीं</td>
<td>Paid plans</td>
</tr>
</tbody>
</table>
<h2 id="vocals-वाले-full-song-generators" tabindex="-1">Vocals वाले full-song generators <a class="header-anchor" href="#vocals-वाले-full-song-generators" aria-label="Permalink to &quot;Vocals वाले full-song generators&quot;"></a></h2>
<p>ये वे tools हैं जो एक text prompt से पूरा track लिखते हैं, अक्सर गायन के साथ। जब लोग &quot;AI music&quot; कहते हैं तो ज़्यादातर इन्हीं का मतलब होता है, और जब आपको theme song, menu track, या trailer के लिए vocal piece चाहिए तो यही सही चुनाव हैं।</p>
<h3 id="elevenlabs-music" tabindex="-1">ElevenLabs Music <a class="header-anchor" href="#elevenlabs-music" aria-label="Permalink to &quot;ElevenLabs Music&quot;"></a></h3>
<p>अगर आप कोई commercial game ship कर रहे हैं और licensing की चिंता छोड़ना चाहते हैं, तो यहीं से शुरू करें। ElevenLabs ने अगस्त 2025 में Eleven Music लॉन्च किया, और अपने प्रतिद्वंद्वियों से अलग इसने model को licensed production music पर train किया और Merlin तथा Kobalt के साथ सौदे किए ताकि rightsholders को भुगतान मिले। Outputs व्यापक commercial use के लिए स्वीकृत हैं, और terms में gaming का नाम लेकर उल्लेख है।</p>
<p>बदले में कुछ guardrails हैं जिनका आपको पालन करना है। आप इसे असली artist नामों, गीत शीर्षकों या lyrics से prompt नहीं कर सकते, और कुछ क्षेत्र बाहर रखे गए हैं, तो इसके इर्द-गिर्द build करने से पहले music terms पढ़ लें। किसी game soundtrack के लिए ये सीमाएँ शायद ही आड़े आती हैं। बदले में आपको वह चीज़ मिलती है जो 2026 में कोई और vocal generator नहीं दे सकता: licensing की एक साफ़ कड़ी जिसकी ओर आप किसी के पूछने पर इशारा कर सकें। यह हमारे अपने <a href="/hi/tools/music.html">music tool</a> के पीछे के तीन engines में से एक है, ठीक इसीलिए क्योंकि licensing तय है।</p>
<h3 id="suno" tabindex="-1">Suno <a class="header-anchor" href="#suno" aria-label="Permalink to &quot;Suno&quot;"></a></h3>
<p>Suno एक पूरे vocal गीत तक पहुँचने का सबसे तेज़ रास्ता है, और v5.5 model (मार्च 2026) तक आते-आते इसके vocals किसी भी generator से ज़्यादा स्वाभाविक हैं। Games के लिए नियम सरल और सख़्त हैं। Free tier non-commercial है, बस इतना ही। आपको महीने के $10 (या सालाना बिलिंग पर $8/माह) वाला Pro plan चाहिए, जो commercial rights और downloadable files, लगभग 500 गानों जितने credits, और v5.5 model तक पहुँच देता है। महीने के $30 वाला Premier plan Suno Studio जोड़ता है, जो games के लिए मायने रखता है क्योंकि यह एक track को stems में अलग करता है जिन्हें आप अलग-अलग in-game संदर्भों में remix कर सकते हैं।</p>
<p>दो बातें साफ़ रखें। पहली, commercial license copyright ownership नहीं है। Suno की अपनी terms कहती हैं कि commercial-use rights देना ownership के हस्तांतरण से अलग है, और US कानून पूर्ण copyright के लिए आमतौर पर एक मानव लेखक माँगता है, तो आपके पास track इस्तेमाल करने का license है, कोई अटूट copyright नहीं। दूसरी, Suno ने नवंबर 2025 में Warner के साथ समझौता किया, पर Sony और Universal के मुकदमे जुलाई 2026 की summary-judgment सुनवाई तक भी सक्रिय थे। Suno ने यह भी कहा है कि वह 2026 में बाद में अपने मौजूदा models को label-licensed नए models से बदलने की योजना रखता है, तो ठीक कौन-सा model और download नियम आपके पैरों तले बदल सकते हैं। किसी अदालत ने अब तक downstream users को ज़िम्मेदार नहीं ठहराया, और किसी indie के लिए व्यावहारिक जोखिम कम है, पर यह एक tail जोखिम है जिसे किसी franchise की नींव इस पर रखने से पहले जान लेना चाहिए। अपनी भुगतान रसीदें सबूत के तौर पर रखें कि हर track बनाते समय आप subscribed थे।</p>
<h3 id="udio" tabindex="-1">Udio <a class="header-anchor" href="#udio" aria-label="Permalink to &quot;Udio&quot;"></a></h3>
<p>Udio शानदार audio बनाता है, और 2026 में आप उसे game में नहीं डाल सकते। अक्टूबर 2025 में Universal Music के साथ समझौते के बाद इसने सारे downloads और stems बंद कर दिए और एक सिर्फ़-streaming वाला दीवारों से घिरा बाग़ बन गया। आप app के अंदर बना, सुन और remix कर सकते हैं, पर कोई file export नहीं कर सकते। Game development के लिए यह अयोग्य ठहराने वाली बात है, क्योंकि पूरा मक़सद ही एक audio file को आपके engine में लाना है। Universal 2026 के लिए एक licensed Udio platform साथ मिलकर बना रहा है, तो यह बदल सकता है, पर अभी के लिए Udio को soundtrack जुटाने की जगह नहीं, खेलने की जगह मानें।</p>
<h2 id="products-के-लिए-बने-royalty-free-generators" tabindex="-1">Products के लिए बने royalty-free generators <a class="header-anchor" href="#products-के-लिए-बने-royalty-free-generators" aria-label="Permalink to &quot;Products के लिए बने royalty-free generators&quot;"></a></h2>
<p>यह समूह musicians के बजाय creators और कंपनियों को लक्ष्य करता है। Tracks आमतौर पर instrumental होते हैं, interfaces सरल होते हैं, और पेशकश है licensing की सुरक्षा। कई एक API देते हैं, जो वह रास्ता है अगर आप चाहते हैं कि players आपके game के अंदर अपना music खुद बनाएँ।</p>
<h3 id="mubert" tabindex="-1">Mubert <a class="header-anchor" href="#mubert" aria-label="Permalink to &quot;Mubert&quot;"></a></h3>
<p>Mubert products के लिए बना है, और games इसके मुख्य उपयोगों में से एक हैं। यह prompt, mood, BPM या activity के हिसाब से royalty-free, DMCA-free music बनाता है, licensed और partner content पर trained है। अहम बारीकी है plan की संरचना, क्योंकि यही तय करती है कि आप कानूनी रूप से क्या कर सकते हैं। Startup plan पर music आपके app के अंदर बजता है पर users उसे export नहीं कर सकते, जो background music वाले mobile game के लिए ठीक बैठता है। अगर आप चाहते हैं कि players अपने बनाए tracks export या share करें, तो आपको Startup+ या उससे ऊपर चाहिए, जो sublicensing जोड़ता है। Free tier non-commercial है। Mubert भी हमारे <a href="/hi/tools/music.html">music tool</a> के पीछे के engines में से एक है, इसीलिए app के अंदर generate करना बाद में जोड़ी गई चीज़ नहीं बल्कि पहली-दर्जे का रास्ता है।</p>
<h3 id="soundraw" tabindex="-1">Soundraw <a class="header-anchor" href="#soundraw" aria-label="Permalink to &quot;Soundraw&quot;"></a></h3>
<p>Soundraw royalty-free generators का पुराना खिलाड़ी है, copyright सवाल को किनारे करने के लिए पूरी तरह अपने ही licensed catalog पर trained। आप genre, mood और theme चुनते हैं, फिर arrangement को महीन करते हैं। यह व्यक्तिगत उपयोग के लिए subscription है, लगभग $17/माह, और यह एक API देता है जिसे वे game developers और creator tools इस्तेमाल करते हैं जो generation embed करना चाहते हैं। जब आपको instrumental background music और एक ऐसी licensing कहानी चाहिए जिसे आप publisher को समझा सकें, तब यह एक सुरक्षित, बिना तड़क-भड़क वाला चुनाव है।</p>
<h3 id="beatoven-loudly-और-aiva" tabindex="-1">Beatoven, Loudly और AIVA <a class="header-anchor" href="#beatoven-loudly-और-aiva" aria-label="Permalink to &quot;Beatoven, Loudly और AIVA&quot;"></a></h3>
<p>खास ज़रूरतों के लिए जानने लायक तीन और। <strong>Beatoven.ai</strong> किफ़ायती विकल्प है, commercial rights सहित लगभग $2.50/माह, जिसे हराना मुश्किल है अगर आपको बस साफ़ background music चाहिए। <strong>Loudly</strong> थोड़ा ऊपर है, लगभग $6/माह, और customization तथा collaboration controls पर ज़ोर देता है। <strong>AIVA</strong> विशेषज्ञ है: यह cinematic और orchestral scoring के लिए बना है, तो जब आपके game को pop loop नहीं बल्कि एक भव्य symphonic theme चाहिए तो यही वह है जिसकी ओर हाथ बढ़ाएँ। तीनों अपने paid tiers पर commercial rights देते हैं और free पर रोकते हैं, जो इस पूरी श्रेणी में एक जैसा pattern है।</p>
<h2 id="वे-open-models-जिन्हें-आप-खुद-चला-सकते-हैं" tabindex="-1">वे open models जिन्हें आप खुद चला सकते हैं <a class="header-anchor" href="#वे-open-models-जिन्हें-आप-खुद-चला-सकते-हैं" aria-label="Permalink to &quot;वे open models जिन्हें आप खुद चला सकते हैं&quot;"></a></h2>
<p>अगर आप कोई subscription नहीं, कोई per-track fee नहीं, और unreleased project audio पर पूरा नियंत्रण चाहते हैं, तो model को अपने hardware पर चलाइए। Open audio models तेज़ी से बराबरी पर आ गए, और 2026 तक कई सचमुच अच्छे हैं। एक ही नियम: weights का license देखिए, सिर्फ़ code का नहीं, क्योंकि वे अक्सर अलग होते हैं।</p>
<h3 id="stable-audio-3" tabindex="-1">Stable Audio 3 <a class="header-anchor" href="#stable-audio-3" aria-label="Permalink to &quot;Stable Audio 3&quot;"></a></h3>
<p>Stable Audio 3 (मई 2026) games के लिए सबसे मज़बूत open विकल्प है, और वजह है licensing के साथ पहुँच। Stability ने पूरी तरह licensed data पर trained तीन open-weight models जारी किए: Small-Music और Small-SFX दोनों CPU पर चलते हैं, GPU की ज़रूरत नहीं, और Medium ऊँची quality के लिए एक consumer GPU पर चलता है। सिर्फ़ Large model API-only है। Stability AI Community License के तहत आप अपने outputs के मालिक हैं और उन्हें आज़ादी से commercialize कर सकते हैं, जब तक आपका studio सालाना $1M revenue पार न कर ले, जिस बिंदु पर आप एक Enterprise license पर चले जाते हैं जो कानूनी indemnification भी जोड़ती है।</p>
<p>Games के लिए यह एक साथ दो ज़रूरतें पूरी करता है। Music models लगभग छह मिनट तक की परिवर्तनशील-लंबाई वाले tracks बनाते हैं, और Small-SFX वह सबसे अच्छा open model है जिसके sound effects आप सचमुच ship कर सकते हैं। आप इनमें से किसी को भी अपने ही audio के एक folder पर LoRA fine-tune कर सकते हैं, यही वह तरीका है जिससे आप इसे अपने game की ध्वनि-शैली सिखाते हैं, फिर मेल खाते menu loops, combat stingers और ambience बनाते हैं जो सब एक ही score जैसे लगते हैं।</p>
<h3 id="ace-step" tabindex="-1">ACE-Step <a class="header-anchor" href="#ace-step" aria-label="Permalink to &quot;ACE-Step&quot;"></a></h3>
<p>ACE-Step vocals वाले full tracks के लिए जानने लायक open model है। 1.5 line (जनवरी 2026) MIT-licensed है, जो जितना उदार हो सकता है उतना है, और यह 19 भाषाओं में कई मिनट का music तेज़ी से बनाता है, जिसमें voice cloning, remixing और lyric editing अंदर से मौजूद हैं। जो teams pipeline किराए पर लेने के बजाय उसके मालिक होना चाहती हैं, उनके लिए यह Suno का self-hosted जवाब है, और हमारे <a href="/hi/tools/music.html">music tool</a> के पीछे का तीसरा engine है।</p>
<h3 id="बाक़ी-open-मैदान" tabindex="-1">बाक़ी open मैदान <a class="header-anchor" href="#बाक़ी-open-मैदान" aria-label="Permalink to &quot;बाक़ी open मैदान&quot;"></a></h3>
<p>ज़रूरत के हिसाब से कुछ और। <strong>YuE</strong> (Apache 2.0) एक lyric sheet से vocals वाले पूरे गीत बनाता है और यह अच्छी तरह करने वाला पहला open model था। <strong>DiffRhythm 2</strong> (Apache 2.0, फ़रवरी 2026) तेज़ full-song generation के लिए बना है। Meta का <strong>MusicGen</strong> prototyping के लिए अब भी ठीक चलता है, पर उसके weights CC-BY-NC हैं, तो यह सिर्फ़ एक sketch tool है। किसी ऐसे game में जिसे आप बेचते हैं, MusicGen track कभी ship न करें। अंतिम संस्करण के लिए ACE-Step या Stable Audio पर चले जाएँ।</p>
<p>Google का <strong>Magenta RealTime</strong> (code Apache 2.0, weights CC-BY) अलग किस्म का है, और games के लिए सबसे अच्छे तरीके से अलग है। एक तैयार file render करने के बजाय, यह बजते हुए music को live बनाता है जिसे आप बजते-बजते steer करते हैं। यह ठीक उसी आकार का है जैसा एक adaptive soundtrack होता है जो player के combat में घुसने या किसी boss के आने पर बदल जाता है। कोई और open model real-time steering के लिए नहीं बना, तो अगर interactive music आपका लक्ष्य है, तो शुरुआत यहीं से है।</p>
<h2 id="सिर्फ़-music-नहीं-sound-effects-भी" tabindex="-1">सिर्फ़ music नहीं, sound effects भी <a class="header-anchor" href="#सिर्फ़-music-नहीं-sound-effects-भी" aria-label="Permalink to &quot;सिर्फ़ music नहीं, sound effects भी&quot;"></a></h2>
<p>Soundtrack काम का आधा हिस्सा है। Games को footsteps, UI clicks, धमाके और ambience भी चाहिए, और वही AI-licensing नियम लागू होते हैं। दो विकल्प उभरकर सामने आते हैं। <strong>Stable Audio 3 Small-SFX</strong> locally चलता है, माँग पर effects बनाता है, और अपने music भाई-बहनों जैसी ही commercial-safe Community License के तहत आता है। <strong>ElevenLabs</strong> के पास एक समर्पित sound-effects generator है जिसकी commercial-के-लिए-स्वीकृत मुद्रा Eleven Music जैसी ही है, इसीलिए हमारा अपना <a href="/hi/tools/sfx.html">SFX tool</a> music वाले के साथ-साथ मौजूद है। पारंपरिक रास्ते के लिए, हमारी <a href="/hi/guides/free-sound-effects-music.html">free sound effects और music</a> गाइड उन CC0 libraries को समेटती है जिन्हें अपनी जेब में रखना अच्छा है।</p>
<h2 id="games-के-लिए-licensing-की-हक़ीक़त" tabindex="-1">Games के लिए licensing की हक़ीक़त <a class="header-anchor" href="#games-के-लिए-licensing-की-हक़ीक़त" aria-label="Permalink to &quot;Games के लिए licensing की हक़ीक़त&quot;"></a></h2>
<p>यह वह हिस्सा है जो आपको takedown notice से बचाता है, तो जो कुछ भी आप ship करने की सोच रहे हैं उसे generate करने से पहले इसे पढ़ें।</p>
<p><strong>&quot;Royalty-free&quot; का मतलब &quot;copyright-free&quot; नहीं, और न ही ownership।</strong> Royalty-free का मतलब है कि track के हर बार बजने पर आप fee नहीं देते। यह इस बारे में कुछ नहीं कहता कि music का मालिक कौन है या training data साफ़ था या नहीं। तीन अलग concepts, marketing copy में अक्सर घालमेल कर दिए जाते हैं।</p>
<p><strong>Commercial game के लिए free tiers लगभग कभी सुरक्षित नहीं होते।</strong> Suno, Mubert, Soundraw, Beatoven और Loudly सभी में free plan व्यक्तिगत और non-commercial है। एक game जिसे आप बेचते हैं, या ads या paid DLC वाला एक free game भी, एक commercial project है। एक paid plan या उदार रूप से licensed open model इस्तेमाल करें, और free-tier track ship न करें।</p>
<p><strong>Training-data मुकदमों पर नज़र रखें।</strong> Suno और Udio दोनों बड़े labels के सक्रिय मुकदमे झेल रहे हैं। अब तक किसी अदालत ने किसी downstream user को ज़िम्मेदार नहीं ठहराया, और किसी indie का व्यावहारिक जोखिम कम है, पर यह असली है, और यही वजह है कि 2026 में सबसे साफ़ चुनाव वे tools हैं जो licensed data पर trained हैं: ElevenLabs Music, Stable Audio, Mubert, Soundraw और AIVA।</p>
<p><strong>अपनी रसीदें रखें।</strong> Suno जैसे tools पर commercial rights उन tracks पर लागू होते हैं जो आपने subscribed रहते हुए बनाए। generation के समय subscription के सक्रिय होने का सबूत सहेजें, ताकि आप दिखा सकें कि बनाते समय track licensed था।</p>
<p><strong>जहाँ platform माँगे वहाँ disclose करें।</strong> itch.io और Steam के अपने AI-content disclosure नियम हैं, और यहाँ ईमानदारी एक सस्ता बीमा है। हम disclosure को कैसे संभालते हैं इसके लिए हमारी <a href="/hi/ai-content.html">AI-generated content policy</a> देखें, और music licensing आपकी art और code के साथ कैसे बैठती है इसके लिए हमारी <a href="/hi/guides/game-asset-licenses.html">game asset licenses guide</a> देखें।</p>
<h2 id="सिर्फ़-एक-track-नहीं-game-में-फ़िट-होने-वाला-music-बनाना" tabindex="-1">सिर्फ़ एक track नहीं, game में फ़िट होने वाला music बनाना <a class="header-anchor" href="#सिर्फ़-एक-track-नहीं-game-में-फ़िट-होने-वाला-music-बनाना" aria-label="Permalink to &quot;सिर्फ़ एक track नहीं, game में फ़िट होने वाला music बनाना&quot;"></a></h2>
<p>तीन मिनट का pop गीत game soundtrack नहीं है। Games को ऐसे loops चाहिए जिनमें सुनाई देने वाला जोड़ न हो, ऐसे stems जिन्हें दृश्य बदलते ही आप mix कर सकें, और ऐसे mood transitions जो player के साथ चलें। कुछ workflow नोट।</p>
<p><strong>Loops</strong> के लिए, थोड़ा लंबा टुकड़ा generate करें और उसे एक साफ़ loop बिंदु पर काटें, या continuation और inpainting feature (Stable Audio और Suno दोनों में एक है) से अंत को शुरुआत से वापस जोड़ें। <strong>Stems</strong> के लिए, Premier plan पर Suno Studio और ACE-Step का remix mode दोनों एक track को हिस्सों में बाँटते हैं, तो आप किसी stealth हिस्से में drums हटा सकते हैं और किसी पीछा-दृश्य के लिए वापस ला सकते हैं। player के काम पर प्रतिक्रिया देने वाले <strong>adaptive, real-time</strong> music के लिए Magenta RealTime खासतौर पर बना है, और Mubert की mood के हिसाब से अंतहीन streams किसी app के अंदर ambient या अनंत background layers के लिए अच्छी चलती हैं।</p>
<h2 id="मैं-असल-में-क्या-इस्तेमाल-करूँगा" tabindex="-1">मैं असल में क्या इस्तेमाल करूँगा <a class="header-anchor" href="#मैं-असल-में-क्या-इस्तेमाल-करूँगा" aria-label="Permalink to &quot;मैं असल में क्या इस्तेमाल करूँगा&quot;"></a></h2>
<p>अगर आज मुझे किसी game को score करना हो, तो जिस stack की ओर मैं हाथ बढ़ाऊँगा वह यह है।</p>
<p><strong>ऐसा commercial game ship कर रहे हैं जहाँ licensing कसी हुई होनी चाहिए?</strong> Vocal और lead tracks के लिए ElevenLabs Music, और instrumental beds तथा sound effects के लिए Stable Audio 3 इस्तेमाल करें। दोनों licensed data पर train होते हैं और अपने outputs को commercial use के लिए स्वीकृत करते हैं, ठीक इसीलिए हमारे अपने tool के तीन engines में से दो इसी खाने से आते हैं।</p>
<p><strong>तेज़ iteration और सबसे अच्छे vocals</strong> चाहिए? जवाब है Suno Pro, बशर्ते आप अपनी रसीदें रखें और छोटे मुकदमे-tail जोखिम को स्वीकारें। बेहतरीन को Suno Studio में ले जाकर stems निकालें।</p>
<p><strong>पूरा नियंत्रण और कोई subscription नहीं</strong> चाहते? Vocal tracks के लिए ACE-Step और instrumentals तथा SFX के लिए Stable Audio 3 self-host करें, फिर अपने ही audio पर Stable Audio को LoRA fine-tune करें ताकि सब कुछ एक ही score जैसा लगे।</p>
<p><strong>अपने app के अंदर background music</strong> के लिए, या players को अपना खुद बनाने देने के लिए, उस plan tier पर Mubert या Soundraw API जोड़ें जो इस बात से मेल खाए कि users export कर सकते हैं या नहीं। और अगर आप <strong>gameplay पर प्रतिक्रिया देने वाला adaptive score</strong> चाहते हैं, तो Magenta RealTime से prototyping शुरू करें।</p>
<p>आम ग़लती है हर चीज़ के लिए एक ही tool की ओर हाथ बढ़ाना। Music, stems, SFX और adaptive layers अलग-अलग काम हैं, और सही जवाब आमतौर पर दो या तीन tools हैं जो हर एक कोई एक काम अच्छा करता है। इन सबका मक़सद एक ही है: soundtrack का वह कोना न रहना जिसे आप काट देते हैं।</p>
<hr>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="commercial-game-के-लिए-सबसे-अच्छा-ai-music-generator-कौन-सा-है" tabindex="-1">Commercial game के लिए सबसे अच्छा AI music generator कौन-सा है? <a class="header-anchor" href="#commercial-game-के-लिए-सबसे-अच्छा-ai-music-generator-कौन-सा-है" aria-label="Permalink to &quot;Commercial game के लिए सबसे अच्छा AI music generator कौन-सा है?&quot;"></a></h3>
<p>साफ़ licensing के लिए, ElevenLabs Music और Stable Audio 3 2026 में आगे हैं क्योंकि दोनों licensed data पर train होते हैं और अपने outputs को commercial use के लिए स्वीकृत करते हैं। सबसे अच्छे vocals तेज़ी से चाहिए, तो Suno Pro चलता है अगर आप जारी Sony मुकदमे को एक छोटे tail जोखिम के रूप में स्वीकारें। जो कुछ भी आप ship करें उसके लिए free tiers और non-commercial weights से बचें।</p>
<h3 id="क्या-मैं-किसी-ऐसे-game-में-ai-generated-music-कानूनी-रूप-से-इस्तेमाल-कर-सकता-हूँ-जिसे-मैं-बेचता-हूँ" tabindex="-1">क्या मैं किसी ऐसे game में AI-generated music कानूनी रूप से इस्तेमाल कर सकता हूँ जिसे मैं बेचता हूँ? <a class="header-anchor" href="#क्या-मैं-किसी-ऐसे-game-में-ai-generated-music-कानूनी-रूप-से-इस्तेमाल-कर-सकता-हूँ-जिसे-मैं-बेचता-हूँ" aria-label="Permalink to &quot;क्या मैं किसी ऐसे game में AI-generated music कानूनी रूप से इस्तेमाल कर सकता हूँ जिसे मैं बेचता हूँ?&quot;"></a></h3>
<p>आमतौर पर हाँ, किसी paid plan या उदार रूप से licensed open model पर, पर बारीकियाँ मायने रखती हैं। Free tiers लगभग हमेशा non-commercial होते हैं, एक commercial license copyright के मालिक होने जैसा नहीं है, और बिना license वाले data पर trained tools मुकदमे का जोखिम ढोते हैं। खास license जाँचें, अपने subscription का सबूत रखें, और जहाँ आपका platform माँगे वहाँ AI content disclose करें।</p>
<h3 id="कौन-से-ai-music-generators-मैं-अपने-hardware-पर-चला-सकता-हूँ" tabindex="-1">कौन-से AI music generators मैं अपने hardware पर चला सकता हूँ? <a class="header-anchor" href="#कौन-से-ai-music-generators-मैं-अपने-hardware-पर-चला-सकता-हूँ" aria-label="Permalink to &quot;कौन-से AI music generators मैं अपने hardware पर चला सकता हूँ?&quot;"></a></h3>
<p>Stable Audio 3 (Small models CPU पर, Medium एक consumer GPU पर), ACE-Step, YuE, DiffRhythm 2 और Magenta RealTime सभी open और self-hostable हैं। code का नहीं, weights का license जाँचें: MusicGen के weights non-commercial हैं, जबकि ACE-Step (MIT) और Stable Audio (Community License) commercial use की अनुमति देते हैं।</p>
<h3 id="game-के-लिए-looping-या-adaptive-music-कैसे-पाऊँ" tabindex="-1">Game के लिए looping या adaptive music कैसे पाऊँ? <a class="header-anchor" href="#game-के-लिए-looping-या-adaptive-music-कैसे-पाऊँ" aria-label="Permalink to &quot;Game के लिए looping या adaptive music कैसे पाऊँ?&quot;"></a></h3>
<p>एक लंबा track generate करें और एक बिना-जोड़ वाले loop पर काटें, या continuation और inpainting से दोनों सिरे जोड़ें। Stems के लिए Suno Studio या ACE-Step का remix mode इस्तेमाल करें। gameplay पर प्रतिक्रिया देने वाले real-time music के लिए Magenta RealTime live steering के लिए बना है, और Mubert की mood-आधारित streams अंतहीन background layers के लिए ठीक बैठती हैं।</p>
<hr>
<h2 id="और-पढ़ें" tabindex="-1">और पढ़ें <a class="header-anchor" href="#और-पढ़ें" aria-label="Permalink to &quot;और पढ़ें&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/frontier-gen-ai-models.html">Games के लिए सबसे बेहतरीन ओपन-सोर्स जनरेटिव AI मॉडल</a>, video, image, 3D, audio और voice का पूरा open model ब्योरा</li>
<li><a href="/hi/guides/ai-asset-generators-games.html">Games के लिए सबसे बेहतरीन AI Asset Generators</a>, 3D models, textures और audio generation एक साथ</li>
<li><a href="/hi/guides/free-sound-effects-music.html">Games के लिए मुफ़्त Sound Effects और Music</a>, AI generation के साथ जोड़ने लायक CC0 libraries</li>
<li><a href="/hi/guides/game-asset-licenses.html">Game Asset Licenses की व्याख्या</a>, music licensing आपकी art और code के साथ कैसे बैठती है</li>
<li><a href="/hi/ai-content.html">AI-generated content policy</a>, हम AI disclosure को कैसे संभालते हैं</li>
</ul>
<BuildCta
  title="एक game और उसका soundtrack एक ही जगह generate करें"
  desc="Music तब ज़्यादा मज़ेदार होता है जब वह किसी ऐसे game को score कर रहा हो जिसे आपने सचमुच बनाया है।"
  prompt="Make a rhythm game set in a neon city where the beat drives the obstacles" />
]]></content:encoded>
            <enclosure url="https://cdn.cinevva.com/guides/ai-music-generators-games.jpg?v=1" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[2026 में कैज़ुअल गेम्स के ट्रेंड (डेटा असल में क्या कहता है)]]></title>
            <link>https://app.cinevva.com/hi/guides/casual-games-trends-2026</link>
            <guid>https://app.cinevva.com/hi/guides/casual-games-trends-2026</guid>
            <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में कैज़ुअल गेम्स के ट्रेंड पर डेटा-आधारित नज़र, डाउनलोड में गिरावट और hybrid-casual के उभार से लेकर, पैसा कहाँ जा रहा है, कौन से टाइटल आगे निकल रहे हैं, और AI क्या बदल रहा है।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-कैज़ुअल-गेम्स-के-ट्रेंड-डेटा-असल-में-क्या-कहता-है" tabindex="-1">2026 में कैज़ुअल गेम्स के ट्रेंड (डेटा असल में क्या कहता है) <a class="header-anchor" href="#_2026-में-कैज़ुअल-गेम्स-के-ट्रेंड-डेटा-असल-में-क्या-कहता-है" aria-label="Permalink to &quot;2026 में कैज़ुअल गेम्स के ट्रेंड (डेटा असल में क्या कहता है)&quot;"></a></h1>
<p><em>आखिरी अपडेट: जून 2026.</em></p>
<p>2026 की कैज़ुअल गेम्स की कहानी &quot;बूम जारी है&quot; नहीं है। यह है कि &quot;बूम परिपक्व हो गया।&quot; खिलाड़ी अब भी इन गेम्स को ज़्यादा बार खोल रहे हैं, लेकिन नए गेम कम इंस्टॉल कर रहे हैं, और पैसा ऐसे तरीकों से घूम रहा है जो तीन साल पहले जीतने वाले गेम से अलग तरह के गेम को इनाम देते हैं। हमने <a href="https://sensortower.com/state-of-gaming-2025" target="_blank" rel="noreferrer">Sensor Tower</a>, AppMagic (<a href="https://investgame.net/wp-content/uploads/2025/07/Gamesforum-Intelligence-Casual-Gaming-Report.pdf" target="_blank" rel="noreferrer">Gamesforum Intelligence</a> और <a href="https://www.gamerefinery.com/mobile-game-market-review-december-2025/" target="_blank" rel="noreferrer">GameRefinery</a> के ज़रिये) के पूरे साल 2025 के आँकड़े खंगाले, और <a href="https://www.deconstructoroffun.com/blog/2026/2/2/state-of-mobile-2026" target="_blank" rel="noreferrer">Deconstructor of Fun</a> व <a href="https://www.pocketgamer.biz/what-happened-to-hypercasual-the-markets-evolution-over-the-past-year/" target="_blank" rel="noreferrer">PocketGamer.biz</a> के विश्लेषकों को पढ़ा, ताकि असली बदलावों को हाइप से अलग किया जा सके। असल में यह हो रहा है।</p>
<p>छोटी बात यह है: 2025 में कैज़ुअल गेम्स का बाज़ार परिपक्व हो गया। इन-ऐप रेवेन्यू सिर्फ़ 1.3% बढ़कर लगभग $81.75 बिलियन हुआ जबकि डाउनलोड 7.2% गिरकर 50.4 बिलियन रह गए, यानी अब ग्रोथ खिलाड़ियों के ज़्यादा खर्च करने से आती है, नए इंस्टॉल से नहीं। इन-ऐप रेवेन्यू बढ़ाने वाला इकलौता सेगमेंट hybrid-casual रहा, जो 20% बढ़कर $4.2 बिलियन हुआ, जिसमें hybrid-casual puzzle सबसे आगे रहा। मॉनेटाइज़ेशन एक विस्तृत दायरे में फैल गया, केवल-ऐड वाले वॉल्यूम गेम से लेकर $500 मिलियन से ज़्यादा कमाने वाले बिना-ऐड गेम तक, और generative AI स्टूडियो में प्रयोग से हटकर मानक टूलिंग बन गया।</p>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 210" role="img" aria-label="The 2025 mobile-game scoreboard: $81.8B in-app revenue up 1.3%, 50.4B downloads down 7.2%, $4.2B hybrid-casual revenue up 20%, 22.05B hypercasual installs" style="width:100%;height:auto;max-width:720px;margin:1.5rem auto;display:block;border-radius:14px">
  <rect width="720" height="210" rx="14" fill="#0b1020"/>
  <text x="24" y="40" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="20" font-weight="800" fill="#e8edf5">The 2025 scoreboard</text>
  <text x="24" y="62" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" fill="#9aa7b4">Full-year mobile-game data. Source: Sensor Tower.</text>
  <g font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif">
    <g transform="translate(24,80)">
      <rect width="156" height="106" rx="10" fill="#121a31"/>
      <text x="16" y="48" font-size="27" font-weight="800" fill="#c8a8ff">$81.8B</text>
      <text x="16" y="72" font-size="12" fill="#9aa7b4">Mobile-game IAP</text>
      <rect x="16" y="82" width="62" height="20" rx="10" fill="#fbbf2422"/>
      <text x="26" y="96" font-size="12" font-weight="700" fill="#fbbf24">+1.3%</text>
    </g>
    <g transform="translate(196,80)">
      <rect width="156" height="106" rx="10" fill="#121a31"/>
      <text x="16" y="48" font-size="27" font-weight="800" fill="#7dd3fc">50.4B</text>
      <text x="16" y="72" font-size="12" fill="#9aa7b4">App downloads</text>
      <rect x="16" y="82" width="62" height="20" rx="10" fill="#fb718522"/>
      <text x="26" y="96" font-size="12" font-weight="700" fill="#fb7185">&#8722;7.2%</text>
    </g>
    <g transform="translate(368,80)">
      <rect width="156" height="106" rx="10" fill="#121a31"/>
      <text x="16" y="48" font-size="27" font-weight="800" fill="#f0abfc">$4.2B</text>
      <text x="16" y="72" font-size="12" fill="#9aa7b4">Hybrid-casual IAP</text>
      <rect x="16" y="82" width="56" height="20" rx="10" fill="#6ee7b722"/>
      <text x="26" y="96" font-size="12" font-weight="700" fill="#6ee7b7">+20%</text>
    </g>
    <g transform="translate(540,80)">
      <rect width="156" height="106" rx="10" fill="#121a31"/>
      <text x="16" y="48" font-size="27" font-weight="800" fill="#e8edf5">22.05B</text>
      <text x="16" y="72" font-size="12" fill="#9aa7b4">Hypercasual installs</text>
      <rect x="16" y="82" width="92" height="20" rx="10" fill="#ffffff14"/>
      <text x="26" y="96" font-size="12" font-weight="700" fill="#9aa7b4">#1 by volume</text>
    </g>
  </g>
</svg>
<h2 id="बाज़ार-ने-इंस्टॉल-के-दम-पर-बढ़ना-बंद-कर-दिया" tabindex="-1">बाज़ार ने इंस्टॉल के दम पर बढ़ना बंद कर दिया <a class="header-anchor" href="#बाज़ार-ने-इंस्टॉल-के-दम-पर-बढ़ना-बंद-कर-दिया" aria-label="Permalink to &quot;बाज़ार ने इंस्टॉल के दम पर बढ़ना बंद कर दिया&quot;"></a></h2>
<p><a href="https://www.deconstructoroffun.com/blog/2026/2/2/state-of-mobile-2026" target="_blank" rel="noreferrer">पूरे साल 2025 के आँकड़ों</a> के मुताबिक, मोबाइल गेम्स ने 2025 में इन-ऐप परचेज़ से लगभग $81.75 बिलियन कमाए, लेकिन यह 2024 के मुकाबले सिर्फ़ 1.3% की बढ़त थी। डाउनलोड उल्टी दिशा में गए और 7.2% गिरकर 50.4 बिलियन रह गए, लगातार दूसरे साल इनमें गिरावट आई है। तुलना के लिए, स्टोर भर में सभी ऐप्स का इन-ऐप खर्च ठीक-ठाक 10.6% बढ़कर $167 बिलियन हुआ, तो सपाट होने वाला मामला खास तौर पर गेम्स का है, आम तौर पर मोबाइल कॉमर्स का नहीं।</p>
<p>यही फ़र्क पूरी कहानी है। एंगेजमेंट अब भी चढ़ रहा है (पिछले साल sessions 12% और बिताया गया समय 7.9% बढ़ा), लेकिन नए इंस्टॉल घट रहे हैं। ग्रोथ अब उन खिलाड़ियों से ज़्यादा पैसा निकालने से आती है जो पहले से आपके पास हैं, नए हासिल करने से नहीं। सस्ते user-acquisition का दौर खत्म हो चुका है।</p>
<p>यही विभाजन आप कैज़ुअल कैटेगरी के भीतर भी देख सकते हैं। <a href="https://investgame.net/wp-content/uploads/2025/07/Gamesforum-Intelligence-Casual-Gaming-Report.pdf" target="_blank" rel="noreferrer">Gamesforum Intelligence की कैज़ुअल रिपोर्ट</a> (AppMagic डेटा) के अनुसार, टॉप 1,000 कैज़ुअल गेम्स में इन-ऐप परचेज़ रेवेन्यू 2022 के $17.47 बिलियन से बढ़कर 2024 में $21.99 बिलियन हुआ, और 2025 के लिए $22.99 बिलियन का अनुमान है, जबकि डाउनलोड करीब 16 बिलियन के आसपास लगभग सपाट रहे। ज़्यादा रेवेन्यू, उतने ही डाउनलोड। खिलाड़ी बस हर इंस्टॉल पर ज़्यादा खर्च कर रहे हैं।</p>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 360" role="img" aria-label="Casual revenue keeps climbing while downloads stay flat, 2022 to 2025" style="width:100%;height:auto;max-width:720px;margin:1.5rem auto;display:block;border-radius:14px">
  <defs>
    <linearGradient id="revfill" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#c8a8ff" stop-opacity="0.34"/>
      <stop offset="1" stop-color="#c8a8ff" stop-opacity="0"/>
    </linearGradient>
  </defs>
  <rect width="720" height="360" rx="14" fill="#0b1020"/>
  <text x="32" y="44" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="20" font-weight="800" fill="#e8edf5">Casual revenue keeps climbing. Installs don't.</text>
  <text x="32" y="68" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" fill="#9aa7b4">Top 1,000 casual games: IAP revenue ($B) vs downloads (B). 2025 forecast. Source: AppMagic / Gamesforum.</text>
  <g stroke="#ffffff" stroke-opacity="0.07"><path d="M70 130 H680 M70 190 H680 M70 250 H680"/></g>
  <g font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="12" fill="#9aa7b4">
    <line x1="70" y1="300" x2="680" y2="300" stroke="#ffffff" stroke-opacity="0.14"/>
    <text x="110" y="324" text-anchor="middle">2022</text>
    <text x="300" y="324" text-anchor="middle">2023</text>
    <text x="490" y="324" text-anchor="middle">2024</text>
    <text x="650" y="324" text-anchor="middle">2025f</text>
  </g>
  <path d="M110 208 L300 168 L490 130 L650 120 L650 300 L110 300 Z" fill="url(#revfill)"/>
  <polyline points="110,208 300,168 490,130 650,120" fill="none" stroke="#c8a8ff" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
  <polyline points="110,244 300,242 490,238 650,232" fill="none" stroke="#7dd3fc" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
  <g font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-weight="700" font-size="12">
    <circle cx="650" cy="120" r="5" fill="#c8a8ff"/>
    <text x="638" y="108" text-anchor="end" fill="#c8a8ff">Revenue $23.0B</text>
    <circle cx="650" cy="232" r="5" fill="#7dd3fc"/>
    <text x="638" y="258" text-anchor="end" fill="#7dd3fc">Downloads 16.4B</text>
  </g>
  <g transform="translate(118,128)">
    <rect width="186" height="26" rx="13" fill="#c8a8ff1f"/>
    <text x="16" y="18" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" font-weight="700" fill="#c8a8ff">+32% revenue since 2022</text>
  </g>
</svg>
<h2 id="hypercasual-का-केवल-ऐड-मॉडल-टूट-गया-और-यह-ठीक-है" tabindex="-1">hypercasual का केवल-ऐड मॉडल टूट गया, और यह ठीक है <a class="header-anchor" href="#hypercasual-का-केवल-ऐड-मॉडल-टूट-गया-और-यह-ठीक-है" aria-label="Permalink to &quot;hypercasual का केवल-ऐड मॉडल टूट गया, और यह ठीक है&quot;"></a></h2>
<p>जो हेडलाइन आपको बार-बार दिखेगी वह है &quot;hypercasual मर रहा है।&quot; यह आधा सच है। जो टूटा वह इकोनॉमिक्स है, गेम नहीं। सालों तक hypercasual एक ही तरकीब पर चला: इंस्टॉल सस्ते में खरीदो, ऐड दिखाओ, फर्क अपने पास रखो। जैसे-जैसे acquisition की लागत उससे ऊपर चढ़ी जितना ऐड वापस चुका सकते थे, वह शुद्ध केवल-ऐड मॉडल काम करना बंद कर गया।</p>
<p>गेम खुद ठीक चल रहे हैं। <a href="https://gameworldobserver.com/2026/01/21/in-2025-the-revenue-of-the-mobile-gaming-market-grew-but-only-slightly-analysis" target="_blank" rel="noreferrer">Game World Observer</a> के अनुसार, hypercasual ने 2025 में 22.05 बिलियन इंस्टॉल के साथ डाउनलोड पर दबदबा बनाए रखा और बिताया गया समय बढ़ाता रहा। <a href="https://www.pocketgamer.biz/what-happened-to-hypercasual-the-markets-evolution-over-the-past-year/" target="_blank" rel="noreferrer">PocketGamer.biz बताता है</a> कि अग्रणी टाइटल पिछले साल के मुकाबले हर महीने करीब 3 गुना ज़्यादा कमा रहे थे, हालाँकि वह आँकड़ा एक कम बेस से आता है और आंशिक रूप से उन hybrid-casual गेम्स को दर्शाता है जिन्हें फिर से वर्गीकृत किया गया। निचोड़ सीधा है: यह फॉर्मैट सिर्फ़ ऐड के दम पर जीने के बजाय ऐड के ऊपर इन-ऐप परचेज़ जोड़कर टिकता है।</p>
<h2 id="असली-विजेता-hybrid-casual-है" tabindex="-1">असली विजेता hybrid-casual है <a class="header-anchor" href="#असली-विजेता-hybrid-casual-है" aria-label="Permalink to &quot;असली विजेता hybrid-casual है&quot;"></a></h2>
<p>अगर एक ट्रेंड 2026 को परिभाषित करता है, तो वह hybrid-casual है। <a href="https://gameworldobserver.com/2026/01/21/in-2025-the-revenue-of-the-mobile-gaming-market-grew-but-only-slightly-analysis" target="_blank" rel="noreferrer">Game World Observer</a> के विश्लेषण के अनुसार, पिछले साल इन-ऐप परचेज़ रेवेन्यू बढ़ाने वाला इकलौता कैज़ुअल सेगमेंट यही था, जो 20% बढ़कर $4.2 बिलियन हुआ, जिसमें टॉप 10 टाइटल ने साल-दर-साल 67% से 100% के बीच IAP ग्रोथ दर्ज की। hybrid-casual, hypercasual के छोटे-छोटे, ऐड-फ्रेंडली लूप लेता है और उन पर एक असली कैज़ुअल गेम की meta-progression और खर्च की गहराई जोड़ देता है। यह आसान इंस्टॉल बनाए रखता है और भुगतान करने की एक वजह जोड़ देता है।</p>
<p>ग्रोथ hybrid-casual puzzle में केंद्रित है। <a href="https://www.gamerefinery.com/mobile-game-market-review-december-2025/" target="_blank" rel="noreferrer">GameRefinery की दिसंबर 2025 समीक्षा</a> Match3 जैसे स्थापित सबजॉनर को &quot;बुरी तरह संतृप्त&quot; बताती है, जबकि नए puzzle टाइटल का एक समूह टॉप ग्रॉसिंग चार्ट में चढ़ गया: Color Block Jam, Pixel Flow, Screwdom, Magic Sort, और All in Hole। अकेले Color Block Jam ने एक ही तिमाही में 21.8 मिलियन इंस्टॉल पर करीब $42 मिलियन रेवेन्यू किया। अगर आप तय कर रहे हैं कि 2026 में किस तरह का कैज़ुअल गेम बनाना है, तो &quot;संतृप्त Match3 क्लोन&quot; और &quot;ताज़ा hybrid-casual puzzle&quot; बहुत अलग दाँव हैं।</p>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 300" role="img" aria-label="Notable casual hits of 2025: top grossing Royal Match and Monopoly Go, breakout hybrid-casual puzzle Color Block Jam, Screwdom and Pixel Flow" style="width:100%;height:auto;max-width:720px;margin:1.5rem auto;display:block;border-radius:14px">
  <rect width="720" height="300" rx="14" fill="#0b1020"/>
  <text x="32" y="44" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="20" font-weight="800" fill="#e8edf5">What broke out in 2025</text>
  <text x="32" y="68" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" fill="#9aa7b4">Revenue windows vary. Source: AppMagic.</text>
  <g font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif">
    <text x="32" y="100" font-size="12" font-weight="800" letter-spacing="1" fill="#c8a8ff">TOP GROSSING · NO ADS</text>
    <g transform="translate(32,112)">
      <rect width="316" height="46" rx="10" fill="#121a31"/>
      <text x="16" y="29" font-size="15" font-weight="700" fill="#e8edf5">Royal Match</text>
      <text x="300" y="29" text-anchor="end" font-size="14" font-weight="800" fill="#c8a8ff">&gt;$500M</text>
    </g>
    <g transform="translate(32,166)">
      <rect width="316" height="46" rx="10" fill="#121a31"/>
      <text x="16" y="29" font-size="15" font-weight="700" fill="#e8edf5">Monopoly Go!</text>
      <text x="300" y="29" text-anchor="end" font-size="14" font-weight="800" fill="#c8a8ff">$431M</text>
    </g>
    <text x="372" y="100" font-size="12" font-weight="800" letter-spacing="1" fill="#7dd3fc">BREAKOUT HYBRID-CASUAL PUZZLE</text>
    <g transform="translate(372,112)">
      <rect width="316" height="46" rx="10" fill="#121a31"/>
      <text x="16" y="22" font-size="15" font-weight="700" fill="#e8edf5">Color Block Jam</text>
      <text x="16" y="38" font-size="11" fill="#9aa7b4">21.8M installs in a quarter</text>
      <text x="300" y="30" text-anchor="end" font-size="14" font-weight="800" fill="#7dd3fc">$42M</text>
    </g>
    <g transform="translate(372,166)">
      <rect width="150" height="46" rx="10" fill="#121a31"/>
      <text x="16" y="22" font-size="14" font-weight="700" fill="#e8edf5">Screwdom</text>
      <text x="134" y="38" text-anchor="end" font-size="13" font-weight="800" fill="#7dd3fc">$27.1M</text>
    </g>
    <g transform="translate(538,166)">
      <rect width="150" height="46" rx="10" fill="#121a31"/>
      <text x="16" y="22" font-size="14" font-weight="700" fill="#e8edf5">Pixel Flow</text>
      <text x="134" y="38" text-anchor="end" font-size="11" fill="#9aa7b4">overtook by Dec</text>
    </g>
  </g>
  <text x="32" y="248" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="12.5" fill="#9aa7b4">Magic Sort and All in Hole also scaled into the top-50 grossing charts, while Match3</text>
  <text x="32" y="268" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="12.5" fill="#9aa7b4">stayed flat in an intensely saturated field.</text>
</svg>
<h2 id="मॉनेटाइज़ेशन-अब-एक-स्पेक्ट्रम-है-कोई-एक-मॉडल-नहीं" tabindex="-1">मॉनेटाइज़ेशन अब एक स्पेक्ट्रम है, कोई एक मॉडल नहीं <a class="header-anchor" href="#मॉनेटाइज़ेशन-अब-एक-स्पेक्ट्रम-है-कोई-एक-मॉडल-नहीं" aria-label="Permalink to &quot;मॉनेटाइज़ेशन अब एक स्पेक्ट्रम है, कोई एक मॉडल नहीं&quot;"></a></h2>
<p>अब कोई एक &quot;कैज़ुअल मॉनेटाइज़ेशन मॉडल&quot; नहीं रहा। बाज़ार एक साफ़ स्पेक्ट्रम में बँट गया, और एक गेम कहाँ बैठता है यह इस पर निर्भर करता है कि वह है क्या। तमाम ट्रैकर से एक जैसा पढ़ने को मिलता है कि इन-ऐप परचेज़ को ऐड के साथ मिलाना बीच की सबसे कारगर रणनीति बन गया है, लेकिन छोर अब भी बड़ा कमाते हैं।</p>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 290" role="img" aria-label="The casual monetization spectrum, from ad-only Block Blast to hybrid Candy Crush and Coin Master to ad-free Royal Match and Monopoly Go" style="width:100%;height:auto;max-width:720px;margin:1.5rem auto;display:block;border-radius:14px">
  <defs>
    <linearGradient id="spec" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#7dd3fc"/>
      <stop offset="0.5" stop-color="#a9b4ff"/>
      <stop offset="1" stop-color="#c8a8ff"/>
    </linearGradient>
  </defs>
  <rect width="720" height="290" rx="14" fill="#0b1020"/>
  <text x="32" y="44" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="20" font-weight="800" fill="#e8edf5">One genre, three money models</text>
  <text x="32" y="68" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" fill="#9aa7b4">Where casual hits sit on the monetization spectrum. Source: AppMagic, Gamesforum.</text>
  <rect x="60" y="150" width="600" height="10" rx="5" fill="url(#spec)"/>
  <g font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif">
    <g text-anchor="middle">
      <circle cx="150" cy="155" r="9" fill="#7dd3fc" stroke="#0b1020" stroke-width="3"/>
      <text x="150" y="120" font-size="14" font-weight="800" fill="#e8edf5">Block Blast!</text>
      <text x="150" y="138" font-size="11.5" fill="#9aa7b4">most-downloaded</text>
      <text x="150" y="186" font-size="12" font-weight="700" fill="#7dd3fc">Ad-only</text>
      <text x="150" y="204" font-size="11.5" fill="#9aa7b4">monetized on volume</text>
    </g>
    <g text-anchor="middle">
      <circle cx="360" cy="155" r="9" fill="#a9b4ff" stroke="#0b1020" stroke-width="3"/>
      <text x="360" y="120" font-size="14" font-weight="800" fill="#e8edf5">Candy Crush · Coin Master</text>
      <text x="360" y="138" font-size="11.5" fill="#9aa7b4">the rising default</text>
      <text x="360" y="186" font-size="12" font-weight="700" fill="#a9b4ff">Hybrid (IAP + ads)</text>
      <text x="360" y="204" font-size="11.5" fill="#9aa7b4">rewarded video plus purchases</text>
    </g>
    <g text-anchor="middle">
      <circle cx="570" cy="155" r="9" fill="#c8a8ff" stroke="#0b1020" stroke-width="3"/>
      <text x="570" y="120" font-size="14" font-weight="800" fill="#e8edf5">Royal Match · Monopoly Go!</text>
      <text x="570" y="138" font-size="11.5" fill="#9aa7b4">&gt;$500M · $431M</text>
      <text x="570" y="186" font-size="12" font-weight="700" fill="#c8a8ff">Ad-free, IAP only</text>
      <text x="570" y="204" font-size="11.5" fill="#9aa7b4">spenders carry it</text>
    </g>
  </g>
  <g font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="12" fill="#5b6472" font-weight="600">
    <text x="60" y="252">◄ Reach &amp; volume</text>
    <text x="660" y="252" text-anchor="end">Depth &amp; spenders ►</text>
  </g>
</svg>
<table tabindex="0">
<thead>
<tr>
<th>मॉडल</th>
<th>कौन चलाता है</th>
<th>उदाहरण</th>
<th>यह आपको क्या बताता है</th>
</tr>
</thead>
<tbody>
<tr>
<td>बिना-ऐड, सिर्फ़ IAP</td>
<td>टॉप ग्रॉसिंग कमाने वाले</td>
<td>Royal Match (जन-अप्रैल 2025 में $500M से ज़्यादा), Monopoly Go! ($431M)</td>
<td>गहरे meta-games को ऐड की ज़रूरत नहीं, भुगतान करने वाले खिलाड़ी इन्हें उठाते हैं</td>
</tr>
<tr>
<td>Hybrid (IAP + ads)</td>
<td>मिड-टियर और ज़्यादातर नए हिट</td>
<td>Candy Crush, Coin Master, Township</td>
<td>उभरता डिफ़ॉल्ट, rewarded video के साथ परचेज़</td>
</tr>
<tr>
<td>केवल-ऐड</td>
<td>सबसे ज़्यादा डाउनलोड होने वाले टाइटल</td>
<td>Block Blast!</td>
<td>बड़ी पहुँच, लगभग पूरी तरह वॉल्यूम पर मॉनेटाइज़</td>
</tr>
</tbody>
</table>
<p>सबक &quot;एक चुनो&quot; नहीं है। बात यह है कि मॉडल को गेम के पीछे चलना चाहिए। बड़ी पहुँच वाला एक शुद्ध puzzle खिलौना ऐड के दम पर जी सकता है। कलेक्शन, प्रोग्रेशन और सोशल हुक वाला गेम अगर अपने खर्च करने वालों को ऐड दिखाता है तो पैसा टेबल पर छोड़ देता है। बीच का लगभग सब कुछ दोनों को मिलाकर सबसे अच्छा करता है। यहाँ के आँकड़े <a href="https://investgame.net/wp-content/uploads/2025/07/Gamesforum-Intelligence-Casual-Gaming-Report.pdf" target="_blank" rel="noreferrer">Gamesforum Intelligence की कैज़ुअल रिपोर्ट</a> (AppMagic डेटा) से आते हैं।</p>
<h2 id="पैसा-कहाँ-घूम-रहा-है" tabindex="-1">पैसा कहाँ घूम रहा है <a class="header-anchor" href="#पैसा-कहाँ-घूम-रहा-है" aria-label="Permalink to &quot;पैसा कहाँ घूम रहा है&quot;"></a></h2>
<p>भौगोलिक रूप से, कैज़ुअल गेम्स ने पश्चिमी बाज़ारों में सबसे बड़ी ग्रोथ दी। उत्तरी अमेरिका में सबसे ज़्यादा निरपेक्ष ग्रोथ दिखी और यूरोप प्रतिशत के हिसाब से तेज़ बढ़ा, जबकि एशिया इकलौता क्षेत्र था जहाँ इन-ऐप परचेज़ रेवेन्यू असल में <a href="https://sensortower.com/state-of-gaming-2025" target="_blank" rel="noreferrer">घटा</a>। एशिया की उस गिरावट का कुछ हिस्सा मज़बूत डॉलर का असर है, लेकिन दिशा साफ़ है: पश्चिम वह जगह है जहाँ कैज़ुअल खर्च बढ़ रहा है।</p>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 240" role="img" aria-label="Casual revenue growth by region in 2025: Europe up 14 percent, North America up 9 percent with the most absolute growth, Asia down 3 percent" style="width:100%;height:auto;max-width:720px;margin:1.5rem auto;display:block;border-radius:14px">
  <rect width="720" height="240" rx="14" fill="#0b1020"/>
  <text x="32" y="44" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="20" font-weight="800" fill="#e8edf5">Casual growth went West</text>
  <text x="32" y="68" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" fill="#9aa7b4">2025 in-app revenue change by region. Asia's dip is partly a strong-dollar effect. Source: Sensor Tower.</text>
  <line x1="280" y1="96" x2="280" y2="212" stroke="#ffffff" stroke-opacity="0.18"/>
  <g font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="14" font-weight="700">
    <text x="150" y="122" text-anchor="end" fill="#e8edf5">Europe</text>
    <rect x="280" y="106" width="252" height="22" rx="5" fill="#6ee7b7"/>
    <text x="542" y="122" font-size="13" font-weight="800" fill="#6ee7b7">+14%</text>
    <text x="150" y="164" text-anchor="end" fill="#e8edf5">North America</text>
    <rect x="280" y="148" width="162" height="22" rx="5" fill="#7dd3fc"/>
    <text x="452" y="164" font-size="13" font-weight="800" fill="#7dd3fc">+9%</text>
    <text x="504" y="164" font-size="11.5" font-weight="600" fill="#9aa7b4">most absolute growth</text>
    <text x="150" y="206" text-anchor="end" fill="#e8edf5">Asia</text>
    <rect x="226" y="190" width="54" height="22" rx="5" fill="#fb7185"/>
    <text x="218" y="206" text-anchor="end" font-size="13" font-weight="800" fill="#fb7185">&#8722;3%</text>
  </g>
</svg>
<p>2025 का सबसे उल्लेखनीय मील का पत्थर गेम्स के ठीक बाहर बैठता है। पहली बार, गैर-गेम ऐप्स ने मोबाइल इन-ऐप परचेज़ में गेम्स से ज़्यादा कमाया, करीब $85.6 बिलियन बनाम $81.8 बिलियन, और उस बदलाव का एक बड़ा हिस्सा generative-AI सब्सक्रिप्शन ऐप्स से आया, जैसा <a href="https://www.deconstructoroffun.com/blog/2026/2/2/state-of-mobile-2026" target="_blank" rel="noreferrer">Deconstructor of Fun</a> बताता है। गेम्स ने उसी स्टोर पर टॉप जगह गँवा दी जो कभी उनकी हुआ करती थी, कुछ हद तक AI प्रोडक्ट्स के हाथों। इस पर ठहरकर सोचना ज़रूरी है।</p>
<h2 id="कैज़ुअल-गेम-कैसे-बनते-हैं-इसमें-ai-क्या-बदल-रहा-है" tabindex="-1">कैज़ुअल गेम कैसे बनते हैं, इसमें AI क्या बदल रहा है <a class="header-anchor" href="#कैज़ुअल-गेम-कैसे-बनते-हैं-इसमें-ai-क्या-बदल-रहा-है" aria-label="Permalink to &quot;कैज़ुअल गेम कैसे बनते हैं, इसमें AI क्या बदल रहा है&quot;"></a></h2>
<p>AI समीकरण के दोनों तरफ़ नज़र आता है। खर्च की तरफ़, जैसा ऊपर बताया, AI ऐप्स अब वह पैसा खींच रहे हैं जो पहले गेम्स की ओर जाता था। प्रोडक्शन की तरफ़, generative AI प्रयोग से हटकर मानक टूलिंग बन गया है। GDC के लंबे समय से चल रहे State of the Game Industry सर्वे में पाया गया कि 52% डेवलपर ऐसी कंपनियों में काम करते हैं जो org में कहीं न कहीं generative AI इस्तेमाल करती हैं, और 36% इन टूल्स को अपने काम में इस्तेमाल करते हैं।</p>
<p>हालाँकि यह सीधी ऊपर जाती रेखा नहीं है। एक और हालिया <a href="https://www.gamedeveloper.com/production/developer-use-of-generative-ai-may-be-declining" target="_blank" rel="noreferrer">Game Developer Collective सर्वे</a> में पाया गया कि व्यक्तिगत इस्तेमाल घटकर 29% रह गया, जो बताता है कि कुछ टीमों ने AI टूलिंग आज़माई और पीछे हट गईं। 2026 में ईमानदार पढ़ाई यह है कि AI गेम स्टूडियो में पक्के तौर पर मुख्यधारा में है लेकिन अब भी यह तय कर रहा है कि कहाँ यह सचमुच मदद करता है, जो कैज़ुअल गेम्स के लिए मतलब है तेज़ prototyping, asset generation, और live-ops कंटेंट, न कि बिना छुए पूरा गेम शिप करना।</p>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 250" role="img" aria-label="Generative AI adoption among game developers: 52 percent at companies using AI, 36 percent using it themselves, 29 percent in a later survey" style="width:100%;height:auto;max-width:720px;margin:1.5rem auto;display:block;border-radius:14px">
  <rect width="720" height="250" rx="14" fill="#0b1020"/>
  <text x="32" y="44" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="20" font-weight="800" fill="#e8edf5">AI moved into the studio</text>
  <text x="32" y="68" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" fill="#9aa7b4">Share of game developers using generative AI. Source: GDC; Game Developer Collective.</text>
  <g transform="translate(180,120)">
    <circle r="44" fill="none" stroke="#1b2540" stroke-width="11"/>
    <circle r="44" fill="none" stroke="#c8a8ff" stroke-width="11" stroke-linecap="round" stroke-dasharray="143.8 276.5" transform="rotate(-90)"/>
    <text y="8" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="26" font-weight="800" fill="#e8edf5">52%</text>
    <text y="74" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" font-weight="700" fill="#e8edf5">At companies using AI</text>
    <text y="92" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="11.5" fill="#9aa7b4">somewhere in the org</text>
  </g>
  <g transform="translate(360,120)">
    <circle r="44" fill="none" stroke="#1b2540" stroke-width="11"/>
    <circle r="44" fill="none" stroke="#7dd3fc" stroke-width="11" stroke-linecap="round" stroke-dasharray="99.5 276.5" transform="rotate(-90)"/>
    <text y="8" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="26" font-weight="800" fill="#e8edf5">36%</text>
    <text y="74" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" font-weight="700" fill="#e8edf5">Use it themselves</text>
    <text y="92" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="11.5" fill="#9aa7b4">GDC survey</text>
  </g>
  <g transform="translate(540,120)">
    <circle r="44" fill="none" stroke="#1b2540" stroke-width="11"/>
    <circle r="44" fill="none" stroke="#f0abfc" stroke-width="11" stroke-linecap="round" stroke-dasharray="80.2 276.5" transform="rotate(-90)"/>
    <text y="8" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="26" font-weight="800" fill="#e8edf5">29%</text>
    <text y="74" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="13" font-weight="700" fill="#e8edf5">Personal use, later</text>
    <text y="92" text-anchor="middle" font-family="Inter,Segoe UI,Helvetica,Arial,sans-serif" font-size="11.5" fill="#9aa7b4">down from 36%</text>
  </g>
</svg>
<p>एकल और छोटे क्रिएटर्स के लिए, यही सबसे दिलचस्प मोर्चा है। जिस prompt-to-game तरीके ने AI-ऐप कैटेगरी बनाई, वही अब खुद गेम बनाने पर लक्षित है। कैज़ुअल वह जॉनर है जिसे AI सबसे अच्छे से संभालता है, क्योंकि लूप कसे हुए हैं और स्कोप छोटा है, और ठीक इसीलिए Cinevva जैसा टूल एक वाक्य लेकर आपको आपके browser में एक खेलने लायक गेम थमा सकता है।</p>
<h2 id="अगर-आप-एक-कैज़ुअल-गेम-बना-रहे-हैं-तो-इसका-क्या-मतलब-है" tabindex="-1">अगर आप एक कैज़ुअल गेम बना रहे हैं तो इसका क्या मतलब है <a class="header-anchor" href="#अगर-आप-एक-कैज़ुअल-गेम-बना-रहे-हैं-तो-इसका-क्या-मतलब-है" aria-label="Permalink to &quot;अगर आप एक कैज़ुअल गेम बना रहे हैं तो इसका क्या मतलब है&quot;"></a></h2>
<p>इसे जोड़कर देखें तो 2026 की रणनीति 2022 से अलग है। अब आप सस्ते इंस्टॉल जीतने की दौड़ में नहीं हैं, क्योंकि वह खेल खत्म हो चुका है। आप कुछ ऐसा बनाने की कोशिश कर रहे हैं जिसे एक छोटा दर्शक-वर्ग सच में बनाए रखे और उस पर खर्च करे। यह उस साफ़ हुक का पक्ष लेता है जिसके नीचे गहराई हो, ऐसे hybrid मॉनेटाइज़ेशन का जो ऐड देखने वालों और खर्च करने वालों दोनों का सम्मान करे, और किसी सिद्ध लूप पर एक ताज़ा नज़रिये का, न कि हज़ारवें Match3 क्लोन का। पश्चिमी दर्शक खर्च कर रहे हैं, puzzle टॉप पर भीड़भाड़ वाला है पर नई mechanics के लिए खुला है, और एक आइडिया आज़माने की लागत अब गिर चुकी है क्योंकि AI आपके लिए पहला खेलने लायक वर्ज़न बना सकता है।</p>
<p>वह आखिरी बात ही असली मौका है। जब एक prototype बनाने में एक weekend के बजाय मिनट लगते हैं, तो आप उतनी ही मेहनत में दस hybrid-casual हुक टेस्ट कर सकते हैं जितनी में पहले एक होता था। बाज़ार उस आइडिया को इनाम देता है जो टिकता है, और उसे ढूँढने का सबसे तेज़ तरीका है बनाना और खेलना, योजना बनाना नहीं। <a href="/hi/game-creator.html">एक prompt से एक शुरू करें</a> और देखें क्या टिकता है।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="क्या-2026-में-कैज़ुअल-गेम्स-का-बाज़ार-सिकुड़-रहा-है" tabindex="-1">क्या 2026 में कैज़ुअल गेम्स का बाज़ार सिकुड़ रहा है? <a class="header-anchor" href="#क्या-2026-में-कैज़ुअल-गेम्स-का-बाज़ार-सिकुड़-रहा-है" aria-label="Permalink to &quot;क्या 2026 में कैज़ुअल गेम्स का बाज़ार सिकुड़ रहा है?&quot;"></a></h3>
<p>नहीं, लेकिन डाउनलोड के दम पर बढ़ना बंद हो गया। 2025 में इन-ऐप रेवेन्यू फिर भी थोड़ा बढ़कर करीब $81.75 बिलियन हुआ, जबकि डाउनलोड 7.2% गिरे। बाज़ार परिपक्व हो रहा है, इसलिए ग्रोथ खिलाड़ियों के ज़्यादा खर्च करने से आती है, नए इंस्टॉल से नहीं।</p>
<h3 id="hybrid-casual-क्या-है-और-यह-मायने-क्यों-रखता-है" tabindex="-1">hybrid-casual क्या है और यह मायने क्यों रखता है? <a class="header-anchor" href="#hybrid-casual-क्या-है-और-यह-मायने-क्यों-रखता-है" aria-label="Permalink to &quot;hybrid-casual क्या है और यह मायने क्यों रखता है?&quot;"></a></h3>
<p>hybrid-casual, hypercasual के आसान, ऐड-फ्रेंडली लूप को एक पूरे कैज़ुअल गेम की गहरी प्रोग्रेशन और परचेज़ के साथ मिला देता है। 2025 में इन-ऐप रेवेन्यू बढ़ाने वाला यह इकलौता कैज़ुअल सेगमेंट था, जो 20% बढ़कर $4.2 बिलियन हुआ, जो इसे अभी अध्ययन करने लायक कैटेगरी बनाता है।</p>
<h3 id="अभी-कौन-से-कैज़ुअल-गेम-आगे-निकल-रहे-हैं" tabindex="-1">अभी कौन से कैज़ुअल गेम आगे निकल रहे हैं? <a class="header-anchor" href="#अभी-कौन-से-कैज़ुअल-गेम-आगे-निकल-रहे-हैं" aria-label="Permalink to &quot;अभी कौन से कैज़ुअल गेम आगे निकल रहे हैं?&quot;"></a></h3>
<p>नए-हिट की तरफ़, Color Block Jam, Pixel Flow, Screwdom, और Magic Sort जैसे hybrid-casual puzzle टाइटल 2025 में तेज़ी से बढ़े। स्थापित दिग्गजों में, Royal Match और Monopoly Go! रेवेन्यू पर आगे हैं, और Block Blast! डाउनलोड पर आगे है।</p>
<h3 id="मेरे-गेम-में-ऐड-इस्तेमाल-करूँ-या-इन-ऐप-परचेज़" tabindex="-1">मेरे गेम में ऐड इस्तेमाल करूँ या इन-ऐप परचेज़? <a class="header-anchor" href="#मेरे-गेम-में-ऐड-इस्तेमाल-करूँ-या-इन-ऐप-परचेज़" aria-label="Permalink to &quot;मेरे गेम में ऐड इस्तेमाल करूँ या इन-ऐप परचेज़?&quot;"></a></h3>
<p>यह गेम पर निर्भर करता है। बड़ी पहुँच वाले खिलौने ऐड के दम पर जी सकते हैं, गहरे meta-games बिना-ऐड परचेज़ पर सबसे अच्छा करते हैं, और बीच का लगभग सब कुछ दोनों को मिलाकर ज़्यादा कमाता है। मॉडल को डिज़ाइन के पीछे चलना चाहिए, उल्टा नहीं।</p>
<h3 id="ai-कैज़ुअल-गेम-डेवलपमेंट-को-कैसे-बदल-रहा-है" tabindex="-1">AI कैज़ुअल गेम डेवलपमेंट को कैसे बदल रहा है? <a class="header-anchor" href="#ai-कैज़ुअल-गेम-डेवलपमेंट-को-कैसे-बदल-रहा-है" aria-label="Permalink to &quot;AI कैज़ुअल गेम डेवलपमेंट को कैसे बदल रहा है?&quot;"></a></h3>
<p>Generative AI अब स्टूडियो में मानक है, 52% डेवलपर ऐसी कंपनियों में हैं जो इसे इस्तेमाल करती हैं। खास तौर पर कैज़ुअल गेम्स के लिए यह prototyping, asset creation, और live-ops को तेज़ करता है, और prompt-to-game टूल अब क्रिएटर्स को एक विवरण से एक खेलने लायक कैज़ुअल गेम बनाने देते हैं।</p>
<h3 id="_2026-में-कैज़ुअल-गेम्स-का-बाज़ार-कितना-बड़ा-है" tabindex="-1">2026 में कैज़ुअल गेम्स का बाज़ार कितना बड़ा है? <a class="header-anchor" href="#_2026-में-कैज़ुअल-गेम्स-का-बाज़ार-कितना-बड़ा-है" aria-label="Permalink to &quot;2026 में कैज़ुअल गेम्स का बाज़ार कितना बड़ा है?&quot;"></a></h3>
<p>मोबाइल गेम्स ने 2025 में इन-ऐप परचेज़ से करीब $81.75 बिलियन कमाए, 2024 के मुकाबले सिर्फ़ 1.3% ज़्यादा, और टॉप 1,000 कैज़ुअल गेम्स उसमें से करीब $23 बिलियन बनाते हैं। डाउनलोड 7.2% गिरकर 50.4 बिलियन रहे, तो बाज़ार नए इंस्टॉल के बजाय हर खिलाड़ी के खर्च पर बढ़ रहा है।</p>
<h3 id="क्या-2026-में-hypercasual-मर-चुका-है" tabindex="-1">क्या 2026 में hypercasual मर चुका है? <a class="header-anchor" href="#क्या-2026-में-hypercasual-मर-चुका-है" aria-label="Permalink to &quot;क्या 2026 में hypercasual मर चुका है?&quot;"></a></h3>
<p>नहीं। जो टूटा वह केवल-ऐड वाला बिज़नेस मॉडल है, गेम नहीं। hypercasual ने 2025 में 22.05 बिलियन इंस्टॉल के साथ सभी डाउनलोड में सबसे आगे रहा, और यह फॉर्मैट hybrid मॉनेटाइज़ेशन की ओर बढ़ रहा है जो ऐड के ऊपर इन-ऐप परचेज़ जोड़ता है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/ai-game-generators-2026.html">2026 में सबसे अच्छे AI गेम जेनरेटर</a> — वे टूल जो एक prompt से कैज़ुअल गेम बनाते हैं</li>
<li><a href="/hi/guides/make-a-game-with-ai.html">AI से गेम कैसे बनाएँ (बिना कोडिंग)</a> — कदम-दर-कदम बिल्ड</li>
<li><a href="/hi/guides/vibe-coding-games.html">Vibe Coding गेम्स: यह क्या है और कैसे शुरू करें</a> — वह prototyping सोच जिसे यह बाज़ार इनाम देता है</li>
<li><a href="/hi/guides/vibe-coding-game-prompts.html">AI गेम प्रॉम्प्ट जो आप एक क्लिक में बना सकते हैं</a> — तेज़ी से टेस्ट करने लायक कैज़ुअल हुक</li>
<li><a href="/hi/guides/get-more-plays-itch-io.html">itch.io पर ज़्यादा प्लेज़ कैसे पाएँ</a> — वह दर्शक-वर्ग ढूँढना जो टिका रहे</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Cinevva में गेम कैसे लिखें]]></title>
            <link>https://app.cinevva.com/hi/guides/how-to-write-a-game</link>
            <guid>https://app.cinevva.com/hi/guides/how-to-write-a-game</guid>
            <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[ऐसे prompt लिखने की एक व्यावहारिक गाइड जो एक ऐसे गेम में बदल जाएं जिसे आप वाकई रखना चाहें। कैसे शुरू करें, कैसे iterate करें, और किसी bug को इस तरह कैसे बताएं कि AI उसे पहली ही बार में ठीक कर दे।]]></description>
            <content:encoded><![CDATA[<h1 id="cinevva-में-गेम-कैसे-लिखें" tabindex="-1">Cinevva में गेम कैसे लिखें <a class="header-anchor" href="#cinevva-में-गेम-कैसे-लिखें" aria-label="Permalink to &quot;Cinevva में गेम कैसे लिखें&quot;"></a></h1>
<p>आप जो चाहते हैं वो टाइप करते हैं, Cinevva आपके browser में एक खेलने लायक गेम बना देता है, फिर आप chat करके उसे बदलते हैं। यही पूरा लूप है। मुश्किल हिस्सा tool नहीं है, बल्कि यह जानना है कि क्या कहना है।</p>
<p>हमने एक हफ्ते के असली sessions पढ़े ताकि यह देख सकें कि ऐसे prompt में क्या फर्क होता है जो एक ऐसे गेम में बदल जाता है जिसे कोई रखता है, और ऐसे prompt में जिसे पहले build के तुरंत बाद छोड़ दिया जाता है। पैटर्न साफ था, और इसमें कुछ भी पेचीदा नहीं है। यहां वो है जो काम करता है।</p>
<h2 id="एक-साफ-वाक्य-से-शुरू-करें" tabindex="-1">एक साफ वाक्य से शुरू करें <a class="header-anchor" href="#एक-साफ-वाक्य-से-शुरू-करें" aria-label="Permalink to &quot;एक साफ वाक्य से शुरू करें&quot;"></a></h2>
<p>सबसे अच्छी शुरुआत एक या दो वाक्य होते हैं जो गेम का प्रकार और वो एक चीज़ बताते हैं जो उसे मज़ेदार बनाती है। &quot;एक top-down zombie survival जहां आप एक फ्लैशलाइट और सीमित गोला-बारूद लेकर चलते हैं&quot; AI को एक genre, एक कैमरा एंगल, एक मुख्य तनाव, और बनाने के लिए एक बंदिश देता है। उसे ठीक-ठीक पता होता है कि क्या बनाना है।</p>
<p>अब इसकी तुलना &quot;platformer&quot; या &quot;shooter games&quot; से करें। ये असली शुरुआतें हैं जो हम रोज़ देखते हैं। Cinevva इनसे कुछ न कुछ बना देगा, पर यह किस्मत की बात है कि वो वही होगा या नहीं जो आपके दिमाग में था। आपकी पहली लाइन जितनी खास होगी, पहला build उतना ही आपकी चाहत के करीब उतरेगा।</p>
<h2 id="अहसास-बताएं-किसी-मशहूर-गेम-का-नाम-नहीं" tabindex="-1">अहसास बताएं, किसी मशहूर गेम का नाम नहीं <a class="header-anchor" href="#अहसास-बताएं-किसी-मशहूर-गेम-का-नाम-नहीं" aria-label="Permalink to &quot;अहसास बताएं, किसी मशहूर गेम का नाम नहीं&quot;"></a></h2>
<p>बहुत से लोग किसी एक टाइटल से शुरू करते हैं। Pokemon। GTA। Minecraft। कोई Roblox गेम जो उन्हें पसंद है। हम समझते हैं, यही वो गेम हैं जिन्होंने आपको एक गेम बनाने की चाहत दी। पेच यह है कि उन्हें बनाने में पूरे स्टूडियो को सालों लगे, और वे एक browser tab में फिट नहीं होते।</p>
<p>तो इसके बजाय उन हिस्सों का नाम लें जो आप वाकई चाहते हैं। अगर आप GTA कहते हैं, तो शायद आपका मतलब है &quot;एक खुले शहर में गाड़ी चलाना और मिशन लेना&quot;। अगर आप Minecraft कहते हैं, तो शायद आपका मतलब है &quot;चीज़ें बनाने के लिए एक अंतहीन ग्रिड पर ब्लॉक रखना और तोड़ना&quot;। mechanic को साफ बताएं और Cinevva उस अहसास को पकड़ सकता है, भले ही वह पूरी फ्रैंचाइज़ न बना सके। अनुभव को बताना ब्रांड का नाम लेने से हर बार बेहतर होता है।</p>
<h2 id="इसे-छोटा-बनने-दें-फिर-बढ़ाएं" tabindex="-1">इसे छोटा बनने दें, फिर बढ़ाएं <a class="header-anchor" href="#इसे-छोटा-बनने-दें-फिर-बढ़ाएं" aria-label="Permalink to &quot;इसे छोटा बनने दें, फिर बढ़ाएं&quot;"></a></h2>
<p>Cinevva जानबूझकर पहली ही बारी में एक खेलने लायक हिस्सा बनाता है। जिन creators के हाथ आखिर में कुछ ऐसा लगता है जो उन्हें पसंद आता है, वे सब कुछ शुरुआती prompt में ठूंसने की कोशिश नहीं करते। जब वे इसे चलता हुआ देख लेते हैं, तो हर message में एक चीज़ जोड़ते हैं।</p>
<p>&quot;ट्रैफिक की गाड़ियां जोड़ो।&quot; &quot;जंप को ऊंचा करो।&quot; &quot;मुझे दूसरा level दो।&quot; &quot;एक health bar जोड़ो।&quot; हर बदलाव छोटा, तेज़, और जांचने में आसान होता है, और ये मिलकर एक असली गेम बन जाते हैं। पहली ही बारी में दस features ठूंसने की कोशिश आमतौर पर आपको उन दसों का एक कमज़ोर version देती है। एक बार में एक साफ बदलाव, अच्छे गेम इसी तरह बनते हैं।</p>
<h2 id="जब-कुछ-गलत-हो-तो-ठीक-ठीक-बताएं-कि-क्या" tabindex="-1">जब कुछ गलत हो, तो ठीक-ठीक बताएं कि क्या <a class="header-anchor" href="#जब-कुछ-गलत-हो-तो-ठीक-ठीक-बताएं-कि-क्या" aria-label="Permalink to &quot;जब कुछ गलत हो, तो ठीक-ठीक बताएं कि क्या&quot;"></a></h2>
<p>सबसे आम message जो मदद नहीं करता वो है &quot;यह काम नहीं करता&quot;, या बस &quot;इसे ठीक करो&quot;। AI आपकी स्क्रीन नहीं देख सकता, इसलिए उसे अंदाज़ा लगाना पड़ता है।</p>
<p>उसे तीन चीज़ें बताएं: आपने क्या किया, क्या हुआ, और आपने क्या उम्मीद की थी। &quot;जब मैं स्पेस दबाता हूं तो चिड़िया बस थोड़ा उछलती है, मैं चाहता था कि वह ऊंचा फड़फड़ाए&quot; पहली ही बार में एक असली fix दिलाता है। &quot;गाड़ी दीवारों के बीच रुकने के बजाय उनमें से गुज़र जाती है&quot; सीधे collision detection की तरफ इशारा करता है। ये अतिरिक्त दस शब्द आपको तीन दौर की आगे-पीछे की बातचीत से बचा लेते हैं।</p>
<h2 id="चीज़ें-कैसी-दिखें-इस-बारे-में-ठोस-रहें" tabindex="-1">चीज़ें कैसी दिखें, इस बारे में ठोस रहें <a class="header-anchor" href="#चीज़ें-कैसी-दिखें-इस-बारे-में-ठोस-रहें" aria-label="Permalink to &quot;चीज़ें कैसी दिखें, इस बारे में ठोस रहें&quot;"></a></h2>
<p>Cinevva visuals में तब अच्छा होता है जब आप उसे कल्पना करने के लिए कुछ देते हैं। रंग, आकार, माहौल, किरदार की बारीकियां। एक creator ने अपने हीरो को &quot;एक गहरे रंग की आकृति जिसके पास सफेद केप, सफेद दस्ताने, और चमकती सफेद आंखें हैं&quot; बताया और उसे ठीक वही वापस मिला।</p>
<p>&quot;इसे और कूल बनाओ&quot; AI को काम करने के लिए कुछ नहीं देता। इसके बजाय, palette का नाम लें, vibe (neon, cozy, retro, horror, hand-drawn) बताएं, और कोई भी अहम किरदार या दुनिया की बारीकियां जो आपके लिए मायने रखती हैं। कुछ ठोस शब्द पूरा लुक बदल देते हैं।</p>
<h2 id="अपनी-कला-खुद-लाएं" tabindex="-1">अपनी कला खुद लाएं <a class="header-anchor" href="#अपनी-कला-खुद-लाएं" aria-label="Permalink to &quot;अपनी कला खुद लाएं&quot;"></a></h2>
<p>आप उसी तक सीमित नहीं हैं जो AI बनाता है। अपनी खुद की images सीधे chat में डालें और यह उन्हें textures, sprites, या backgrounds की तरह इस्तेमाल करेगा। या बिना attribution की झंझट वाले मुफ्त 3D models लाने के लिए asset library खोलें। जब आपके दिमाग में कोई खास लुक हो, तो एक reference image देना अक्सर उसे बताने की कोशिश करने से बेहतर काम करता है।</p>
<h2 id="पहला-build-धीमा-होता-है-और-आपका-काम-सेव-रहता-है" tabindex="-1">पहला build धीमा होता है, और आपका काम सेव रहता है <a class="header-anchor" href="#पहला-build-धीमा-होता-है-और-आपका-काम-सेव-रहता-है" aria-label="Permalink to &quot;पहला build धीमा होता है, और आपका काम सेव रहता है&quot;"></a></h2>
<p>पहला build सबसे लंबा लगता है क्योंकि Cinevva आपका पूरा गेम शुरू से लिख रहा होता है। उसके बाद, edits सेकंडों में वापस आते हैं। तो उस पहले इंतज़ार में डटे रहें, यह वाकई इस session का सबसे बुरा इंतज़ार होगा।</p>
<p>और हां, आपके गेम सेव रहते हैं। tab बंद करें, कल वापस आएं, My games खोलें, और ठीक वहीं से आगे बढ़ें जहां आपने छोड़ा था। जब आप जाते हैं तो कुछ भी गायब नहीं होता।</p>
<h2 id="एक-अच्छा-prompt-शुरू-से-आखिर-तक" tabindex="-1">एक अच्छा prompt, शुरू से आखिर तक <a class="header-anchor" href="#एक-अच्छा-prompt-शुरू-से-आखिर-तक" aria-label="Permalink to &quot;एक अच्छा prompt, शुरू से आखिर तक&quot;"></a></h2>
<p>सब कुछ मिलाकर, एक दमदार शुरुआत ऐसी दिखती है:</p>
<p>&quot;एक top-down twin-stick shooter। मैं एक neon arena में एक छोटा रोबोट हूं, दुश्मनों की लहरें करीब आ रही हैं, और मैं ज़िंदा रहने के लिए बचता और गोली चलाता हूं। इसे तेज़ और आर्केड जैसा बनाओ।&quot;</p>
<p>यह एक genre, एक किरदार, एक सेटिंग, एक मुख्य लूप, और एक अहसास है, सब कुछ चार छोटे वाक्यों में। इसे बनाएं, चलता हुआ देखें, फिर जोड़ना शुरू करें। हर पांच लहरों पर एक boss। shift key पर एक dash। कॉम्बो के लिए एक score multiplier। इसी तरह एक वाक्य एक ऐसे गेम में बदल जाता है जिसे आप वाकई साझा करना चाहते हैं।</p>
<p>आज़माने के लिए तैयार हैं? <a href="/create.html?utm_source=guide&amp;utm_medium=content&amp;utm_campaign=how_to_write_a_game">creator खोलें और मुफ्त में बनाना शुरू करें →</a></p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[बिना कोडिंग के 3D ब्राउज़र गेम कैसे बनाएं (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/3d-browser-game-without-coding</link>
            <guid>https://app.cinevva.com/hi/guides/3d-browser-game-without-coding</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में बिना कोडिंग के 3D ब्राउज़र गेम बनाने के असली विकल्प, ज्यादातर no-code टूल 2D क्यों हैं, और AI prompt-to-game टूल ब्राउज़र में 3D के लिए व्यावहारिक रास्ता कैसे बन गए।]]></description>
            <content:encoded><![CDATA[<h1 id="बिना-कोडिंग-के-3d-ब्राउज़र-गेम-कैसे-बनाएं-2026" tabindex="-1">बिना कोडिंग के 3D ब्राउज़र गेम कैसे बनाएं (2026) <a class="header-anchor" href="#बिना-कोडिंग-के-3d-ब्राउज़र-गेम-कैसे-बनाएं-2026" aria-label="Permalink to &quot;बिना कोडिंग के 3D ब्राउज़र गेम कैसे बनाएं (2026)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>बिना कोड के 2D गेम बनाना सालों से मुमकिन रहा है। लेकिन ब्राउज़र में चलने वाला 3D गेम, वो भी बिना कोड के, बनाना हैरानी की हद तक मुश्किल रहा है, और ज्यादातर गाइड चुपके से इससे बचते हुए आपको कोई 2D टूल थमा देते हैं। यह गाइड ऐसा नहीं करती। यहां 2026 में ब्राउज़र में 3D-no-code की ईमानदार हकीकत है, और वो रास्ता जो अब सच में काम करता है।</p>
<h2 id="no-code-3d-की-असहज-सच्चाई" tabindex="-1">no-code 3D की असहज सच्चाई <a class="header-anchor" href="#no-code-3d-की-असहज-सच्चाई" aria-label="Permalink to &quot;no-code 3D की असहज सच्चाई&quot;"></a></h2>
<p>क्लासिक no-code गेम बिल्डर बड़े पैमाने पर 2D हैं। जो कुछ शुद्ध no-code 3D टूल ब्राउज़र में चलते थे, वे ज्यादातर बंद हो गए या रास्ता बदल गए:</p>
<ul>
<li><strong>Struckd</strong>, जो वेब पर सच्चे drag-and-drop 3D के सबसे करीब था, अगस्त 2026 में अपना स्टूडियो बंद कर रहा है।</li>
<li><strong>Crayta</strong> 2023 में ही बंद हो गया।</li>
<li><strong>Core</strong> no-code 3D करता है लेकिन यह सिर्फ डाउनलोड वाला क्लाइंट है, ब्राउज़र गेम नहीं।</li>
<li><strong>PlayCanvas</strong> एक शानदार वेब 3D engine है, लेकिन यह आपसे JavaScript लिखवाता है, तो यह असल में no-code नहीं है।</li>
</ul>
<p>इससे एक बड़ी खाई बन जाती है। अगर आपको 3D चाहिए, ब्राउज़र में, बिना कोड के, तो क्लासिक विजुअल-बिल्डर की दुनिया के पास एक अपवाद को छोड़कर देने के लिए लगभग कुछ नहीं बचा है।</p>
<h2 id="एक-क्लासिक-अपवाद-gdevelop" tabindex="-1">एक क्लासिक अपवाद: GDevelop <a class="header-anchor" href="#एक-क्लासिक-अपवाद-gdevelop" aria-label="Permalink to &quot;एक क्लासिक अपवाद: GDevelop&quot;"></a></h2>
<p>GDevelop एक फ्री, ओपन-सोर्स, विजुअल गेम बिल्डर है जो ब्राउज़र में चलता है और 2025 के आखिर से 3D में जमकर निवेश कर रहा है। आप कोड की जगह विजुअल इवेंट शीट्स से लॉजिक बनाते हैं, इसमें एक अलग 3D एडिटर और 3D फिजिक्स है, और यह gd.games पर एक शेयर लिंक के साथ वेब पर पब्लिश करता है। यह मुख्य रूप से 2D टूल है जिसमें 3D बढ़ रहा है, तो यह किसी समर्पित 3D engine की बराबरी नहीं करेगा, लेकिन ब्राउज़र में सच्चे no-code 3D के लिए यह सबसे मजबूत क्लासिक विकल्प है। इसने एक AI एजेंट भी जोड़ा, जो दूसरे रास्ते तक ले जाता है।</p>
<h2 id="वो-रास्ता-जो-2026-में-सच-में-काम-करता-है-ai-prompt-to-game" tabindex="-1">वो रास्ता जो 2026 में सच में काम करता है: AI prompt-to-game <a class="header-anchor" href="#वो-रास्ता-जो-2026-में-सच-में-काम-करता-है-ai-prompt-to-game" aria-label="Permalink to &quot;वो रास्ता जो 2026 में सच में काम करता है: AI prompt-to-game&quot;"></a></h2>
<p>बदलाव यहां है। 2026 में बिना कोडिंग के 3D ब्राउज़र गेम बनाने का सबसे व्यावहारिक तरीका कोई विजुअल एडिटर है ही नहीं, बल्कि गेम को AI को बयां करना और उसे किसी वेब engine पर एक असली 3D गेम बनाने देना है। इसे कभी-कभी <a href="/hi/guides/vibe-coding-games.html">vibe coding</a> कहते हैं, और खास तौर पर 3D के लिए यह चुपचाप भरोसेमंद रास्ता बन गया है, जबकि क्लासिक no-code 3D टूल फीके पड़ते गए।</p>
<p>कुछ टूल यह करते हैं:</p>
<ul>
<li><strong>Cinevva</strong> एक Three.js-आधारित engine पर टेक्स्ट प्रॉम्प्ट से सच में 3D, ब्राउज़र में खेलने लायक गेम बनाता है, जिसमें बिल्ट-इन 3D मॉडल, इमेज, म्यूजिक और skybox जनरेशन के साथ तुरंत शेयर करने लायक लिंक मिलता है।</li>
<li><strong>Rosebud</strong> prompt-to-game करता है जिसमें 2D और बढ़ता हुआ 3D दोनों है, ब्राउज़र में होस्टेड।</li>
<li><strong>Nilo</strong> ब्राउज़र-आधारित AI 3D है जिसमें मजबूत Roblox-एक्सपोर्ट का पहलू है, कम उम्र के दर्शकों के लिए बना।</li>
</ul>
<p>इनमें से किसी में आप कोड नहीं लिख रहे। आप गेम बयां करते हैं, नतीजा खेलते हैं, और बदलाव मांगकर उसे बेहतर करते हैं। ये कैसे अलग हैं, इसके लिए पूरी <a href="/hi/guides/ai-game-generators-2026.html">AI game generators की तुलना</a> देखें।</p>
<h2 id="ai-से-3d-ब्राउज़र-गेम-कैसे-बनाएं-कदम-दर-कदम" tabindex="-1">AI से 3D ब्राउज़र गेम कैसे बनाएं, कदम दर कदम <a class="header-anchor" href="#ai-से-3d-ब्राउज़र-गेम-कैसे-बनाएं-कदम-दर-कदम" aria-label="Permalink to &quot;AI से 3D ब्राउज़र गेम कैसे बनाएं, कदम दर कदम&quot;"></a></h2>
<h3 id="_1-एक-छोटा-3d-गेम-बयां-करें" tabindex="-1">1. एक छोटा 3D गेम बयां करें <a class="header-anchor" href="#_1-एक-छोटा-3d-गेम-बयां-करें" aria-label="Permalink to &quot;1. एक छोटा 3D गेम बयां करें&quot;"></a></h3>
<p>जॉनर बताएं, एक खास डिटेल, और एक लक्ष्य। 3D तब सबसे अच्छा चलता है जब कॉन्सेप्ट सरल और स्थानिक हो। जैसे:</p>
<blockquote>
<p>एक फर्स्ट-पर्सन parkour गेम बनाओ जहां मैं तैरते हुए द्वीपों के बीच कूदूं और अंत तक पहुंचने के लिए टाइमर से रेस लगाऊं।</p>
</blockquote>
<p>आप <a href="/create.html?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=3d_no_code">खाली प्रॉम्प्ट से शुरू</a> कर सकते हैं या कोई <a href="/hi/guides/vibe-coding-game-prompts.html">वन-क्लिक 3D प्रॉम्प्ट</a> लेकर उसे बदल सकते हैं।</p>
<h3 id="_2-इसे-खेलें-फिर-एक-चीज़-बदलें" tabindex="-1">2. इसे खेलें, फिर एक चीज़ बदलें <a class="header-anchor" href="#_2-इसे-खेलें-फिर-एक-चीज़-बदलें" aria-label="Permalink to &quot;2. इसे खेलें, फिर एक चीज़ बदलें&quot;"></a></h3>
<p>आपको एक खेलने लायक 3D सीन मिलेगा। इसे खेलें और सबसे बड़ी एक ही दिक्कत चुनें। बस वही एक बदलाव मांगें: &quot;कूद को और दूर तक पहुंचाओ,&quot; &quot;गिरने पर respawn जोड़ो,&quot; &quot;प्लेयर को तेज़ करो।&quot; बदलें, खेलें, दोहराएं। यही लूप पूरा हुनर है।</p>
<h3 id="_3-3d-एसेट्स-जोड़ें" tabindex="-1">3. 3D एसेट्स जोड़ें <a class="header-anchor" href="#_3-3d-एसेट्स-जोड़ें" aria-label="Permalink to &quot;3. 3D एसेट्स जोड़ें&quot;"></a></h3>
<p>आपको जो मॉडल और लुक चाहिए वो मांगें: &quot;प्लेयर को एक low-poly रोबोट दो,&quot; &quot;सनसेट skybox इस्तेमाल करो,&quot; &quot;द्वीपों को पत्थर का बनाओ जिनके ऊपर घास हो।&quot; अगर टूल में CC0 एसेट लाइब्रेरी है, तो जो कुछ भी आप पब्लिश करेंगे उसके लिए उस पर भरोसा करें। हमारी <a href="/hi/guides/game-assets-guide.html">फ्री गेम एसेट्स गाइड</a> स्रोत और लाइसेंस समझाती है।</p>
<h3 id="_4-इसे-गेम-जैसा-एहसास-दें" tabindex="-1">4. इसे गेम जैसा एहसास दें <a class="header-anchor" href="#_4-इसे-गेम-जैसा-एहसास-दें" aria-label="Permalink to &quot;4. इसे गेम जैसा एहसास दें&quot;"></a></h3>
<p>वो आखिरी टच जोड़ें जो प्लेयर 3D में नोटिस करते हैं: एक साफ कैमरा, रिस्पॉन्सिव कंट्रोल, एक दिखने वाला लक्ष्य, अहम एक्शन पर आवाज़, और एक जीत या हार की स्थिति। एक टाइटल स्क्रीन और एक रीस्टार्ट बटन मांगें।</p>
<h3 id="_5-लिंक-पब्लिश-करें" tabindex="-1">5. लिंक पब्लिश करें <a class="header-anchor" href="#_5-लिंक-पब्लिश-करें" aria-label="Permalink to &quot;5. लिंक पब्लिश करें&quot;"></a></h3>
<p>ब्राउज़र टूल आपको एक क्लिक में शेयर करने लायक URL देते हैं। इसे इधर-उधर भेजें, देखें लोग कहां छोड़ देते हैं, और उसे अपने अगले दौर के बदलावों में बदल दें।</p>
<h2 id="हाथ-से-करने-का-क्या" tabindex="-1">हाथ से करने का क्या? <a class="header-anchor" href="#हाथ-से-करने-का-क्या" aria-label="Permalink to &quot;हाथ से करने का क्या?&quot;"></a></h2>
<p>अगर आप थोड़ा कोड सीखने को तैयार हैं, तो वेब 3D की दुनिया समृद्ध है: Three.js, Babylon.js, और PlayCanvas सभी बेहतरीन ब्राउज़र 3D बनाते हैं, और Godot जैसे engine भी वेब पर एक्सपोर्ट करते हैं। यह no-code नहीं है, लेकिन जानने लायक है कि उस रेखा को पार करने के बाद छत काफी ऊंची है। हमारी <a href="/hi/guides/web-game-engines-comparison.html">web game engines की तुलना</a> उन विकल्पों को कवर करती है। सच में no-code बने रहने के लिए, GDevelop या कोई AI prompt-to-game टूल ही जवाब है।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="क्या-बिना-कोडिंग-के-ब्राउज़र-में-3d-गेम-बनाया-जा-सकता-है" tabindex="-1">क्या बिना कोडिंग के ब्राउज़र में 3D गेम बनाया जा सकता है? <a class="header-anchor" href="#क्या-बिना-कोडिंग-के-ब्राउज़र-में-3d-गेम-बनाया-जा-सकता-है" aria-label="Permalink to &quot;क्या बिना कोडिंग के ब्राउज़र में 3D गेम बनाया जा सकता है?&quot;"></a></h3>
<p>हां, लेकिन विकल्प सीमित हैं। GDevelop असली ब्राउज़र 3D वाला मुख्य क्लासिक no-code टूल है, और Cinevva, Rosebud और Nilo जैसे AI prompt-to-game टूल आपको कोडिंग की जगह गेम बयां करके 3D ब्राउज़र गेम बनाने देते हैं। कई पुराने शुद्ध no-code 3D टूल (Struckd, Crayta) बंद हो चुके हैं, तो 2026 में व्यावहारिक रास्ते GDevelop या AI रूट हैं।</p>
<h3 id="बिना-किसी-अनुभव-के-3d-गेम-बनाने-का-सबसे-आसान-तरीका-क्या-है" tabindex="-1">बिना किसी अनुभव के 3D गेम बनाने का सबसे आसान तरीका क्या है? <a class="header-anchor" href="#बिना-किसी-अनुभव-के-3d-गेम-बनाने-का-सबसे-आसान-तरीका-क्या-है" aria-label="Permalink to &quot;बिना किसी अनुभव के 3D गेम बनाने का सबसे आसान तरीका क्या है?&quot;"></a></h3>
<p>किसी AI prompt-to-game टूल को गेम बयां करें और चैट करके उसे बेहतर बनाएं। आपको मिनटों में एक खेलने लायक 3D गेम मिलता है, न कोई engine इंस्टॉल करना पड़ता है न कोड लिखना, फिर आप एक-एक बदलाव से उसे सुधारते हैं। पूरी तरह नए इंसान के लिए यह सबसे कम रुकावट वाला शुरुआती बिंदु है।</p>
<h3 id="क्या-gdevelop-3d-के-लिए-अच्छा-है" tabindex="-1">क्या GDevelop 3D के लिए अच्छा है? <a class="header-anchor" href="#क्या-gdevelop-3d-के-लिए-अच्छा-है" aria-label="Permalink to &quot;क्या GDevelop 3D के लिए अच्छा है?&quot;"></a></h3>
<p>GDevelop मुख्य रूप से एक 2D engine है, लेकिन इसने 2025 के आखिर से एक अलग 3D एडिटर, 3D फिजिक्स और 3D फीचर जोड़े हैं, और यह फ्री, ओपन-सोर्स, ब्राउज़र-आधारित है जिसमें वेब पब्लिशिंग है। यह किसी समर्पित 3D engine की बराबरी नहीं करेगा, लेकिन ब्राउज़र में फ्री no-code 3D के लिए यह सबसे मजबूत क्लासिक विकल्प है।</p>
<h3 id="क्या-3d-ब्राउज़र-गेम-बनाने-के-लिए-ताकतवर-कंप्यूटर-चाहिए" tabindex="-1">क्या 3D ब्राउज़र गेम बनाने के लिए ताकतवर कंप्यूटर चाहिए? <a class="header-anchor" href="#क्या-3d-ब्राउज़र-गेम-बनाने-के-लिए-ताकतवर-कंप्यूटर-चाहिए" aria-label="Permalink to &quot;क्या 3D ब्राउज़र गेम बनाने के लिए ताकतवर कंप्यूटर चाहिए?&quot;"></a></h3>
<p>नहीं। ब्राउज़र-आधारित AI टूल और GDevelop भारी काम अपने सर्वर पर या खुद ब्राउज़र में करते हैं, तो आपको गेमिंग PC या समर्पित GPU की ज़रूरत नहीं। कोई भी ठीक-ठाक आधुनिक कंप्यूटर और एक मौजूदा ब्राउज़र बनाने और खेलने के लिए काफी है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/ai-game-generators-2026.html">2026 में सबसे अच्छे AI Game Generators</a> — वो टूल जो प्रॉम्प्ट से 3D बनाते हैं</li>
<li><a href="/hi/guides/make-a-game-with-ai.html">AI से गेम कैसे बनाएं (बिना कोडिंग)</a> — पूरा शुरुआती वर्कफ़्लो</li>
<li><a href="/hi/guides/vibe-coding-games.html">Vibe Coding Games: यह क्या है और कैसे शुरू करें</a> — प्रॉम्प्ट-चालित तरीका समझाया गया</li>
<li><a href="/hi/guides/vibe-coding-game-prompts.html">AI Game Prompts जिन्हें आप एक क्लिक में बना सकते हैं</a> — 3D शुरुआती बिंदु</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे Web Game Engines</a> — अगर आप थोड़ा कोड सीखने का फैसला करें</li>
<li><a href="/hi/guides/game-assets-guide.html">फ्री गेम एसेट्स कहां मिलेंगी</a> — 3D मॉडल और टेक्सचर</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Games के लिए सबसे बेहतरीन AI Asset Generators (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/ai-asset-generators-games</link>
            <guid>https://app.cinevva.com/hi/guides/ai-asset-generators-games</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में 3D models, textures और audio के लिए सबसे बेहतरीन AI asset generators, Meshy, Tripo, Hunyuan3D, TRELLIS, Stable Audio और बाकी की तुलना, साथ में licensing के ज़रूरी नोट्स।]]></description>
            <content:encoded><![CDATA[<h1 id="games-के-लिए-सबसे-बेहतरीन-ai-asset-generators-2026" tabindex="-1">Games के लिए सबसे बेहतरीन AI Asset Generators (2026) <a class="header-anchor" href="#games-के-लिए-सबसे-बेहतरीन-ai-asset-generators-2026" aria-label="Permalink to &quot;Games के लिए सबसे बेहतरीन AI Asset Generators (2026)&quot;"></a></h1>
<p><em>आख़िरी अपडेट: जून 2026।</em></p>
<p>2026 में किसी game asset को generate करना अक्सर सही मुफ़्त asset ढूँढने से ज़्यादा तेज़ होता है। एक prop describe करें, एक मिनट से भी कम में textured 3D model पा लें। एक mood टाइप करें, music पा लें। यह गाइड 3D, textures और audio में games के लिए सबसे बेहतरीन AI asset generators को कवर करती है, हर एक किस काम में अच्छा है, और वह licensing की पेच जो कुछ भी ship करने से पहले आपको देखनी होगी।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/9zUOvhQ828g" title="Meshy 5 - AI 3D Model generator review" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">अग्रणी AI 3D model generators में से एक, Meshy की समीक्षा।</div>
<h2 id="licensing-की-पेच-यह-पहले-पढ़ें" tabindex="-1">Licensing की पेच (यह पहले पढ़ें) <a class="header-anchor" href="#licensing-की-पेच-यह-पहले-पढ़ें" aria-label="Permalink to &quot;Licensing की पेच (यह पहले पढ़ें)&quot;"></a></h2>
<p>ज़्यादातर hosted AI generators आपको मुफ़्त में बनाने देते हैं, पर commercial rights को paid plan के पीछे रखते हैं, और free-tier का output अक्सर non-commercial होता है। जिन open models को आप खुद host करते हैं वे commercial use के लिए आमतौर पर सबसे साफ़ होते हैं, पर हर एक का अपना license होता है (कुछ कुछ क्षेत्रों को बाहर रखते हैं)। AI से बनी कोई चीज़ ship करने से पहले उस model की output-rights की शर्तें ज़रूर जाँच लें। संदेह हो तो permissive license वाला open model इस्तेमाल करें या ऐसा paid tier जो commercial rights देता हो।</p>
<h2 id="_3d-model-generators" tabindex="-1">3D model generators <a class="header-anchor" href="#_3d-model-generators" aria-label="Permalink to &quot;3D model generators&quot;"></a></h2>
<h3 id="hosted-शुरू-करने-में-सबसे-तेज़" tabindex="-1">Hosted (शुरू करने में सबसे तेज़) <a class="header-anchor" href="#hosted-शुरू-करने-में-सबसे-तेज़" aria-label="Permalink to &quot;Hosted (शुरू करने में सबसे तेज़)&quot;"></a></h3>
<ul>
<li><strong>Meshy</strong> — text या image से PBR materials वाला textured, riggable 3D mesh। Free tier non-commercial है, commercial Pro पर। सबसे लोकप्रिय all-rounder। <a href="https://www.meshy.ai" target="_blank" rel="noreferrer">meshy.ai</a></li>
<li><strong>Tripo</strong> — text या image से 3D, 4K PBR और auto-rigging के साथ। Free tier non-commercial। मज़बूत, game पर केंद्रित output। <a href="https://www.tripo3d.ai" target="_blank" rel="noreferrer">tripo3d.ai</a></li>
<li><strong>Rodin / Hyper3D</strong> — साफ़ quad topology, generate करना मुफ़्त और download के लिए भुगतान। तब अच्छा जब आपको mesh topology की परवाह हो। <a href="https://hyper3d.ai" target="_blank" rel="noreferrer">hyper3d.ai</a></li>
<li><strong>Sloyd</strong> — game पर केंद्रित parametric और AI generation, paid tier पर commercial। <a href="https://www.sloyd.ai" target="_blank" rel="noreferrer">sloyd.ai</a></li>
</ul>
<h3 id="open-self-host-commercial-friendly" tabindex="-1">Open (self-host, commercial-friendly) <a class="header-anchor" href="#open-self-host-commercial-friendly" aria-label="Permalink to &quot;Open (self-host, commercial-friendly)&quot;"></a></h3>
<ul>
<li><strong>Hunyuan3D 2.1</strong> (Tencent) — open weights और training code, production PBR texturing। ध्यान दें इसका license EU, UK और South Korea को बाहर रखता है, तो उन क्षेत्रों में ship करने से पहले जाँच लें। Cinevva इसे <a href="/hi/tools/hunyuan3d.html">3D Model Generator</a> के तौर पर चलाता है।</li>
<li><strong>TRELLIS.2</strong> (Microsoft) — MIT-licensed, मौजूदा open image-to-3D leader, native PBR।</li>
<li><strong>SAM 3D</strong> (Meta) — एक photo से 3D, objects और human bodies के लिए। Cinevva इसे in-browser <a href="/hi/tools/sam3d.html">image-to-3D object capture</a> के तौर पर चलाता है जो एक Gaussian splat output करता है।</li>
<li><strong>Roblox Cube 3D</strong> — open-sourced text-to-mesh।</li>
</ul>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/-_ZlUTXaFqA" title="Tripo 3.1 - AI 3D asset generation review" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Tripo को game-ready 3D assets generate करते देखना।</div>
<h2 id="texture-और-image-generators" tabindex="-1">Texture और image generators <a class="header-anchor" href="#texture-और-image-generators" aria-label="Permalink to &quot;Texture और image generators&quot;"></a></h2>
<p>Tileable textures, sprites, concept art और UI के लिए:</p>
<ul>
<li><strong>FLUX.2</strong> (Black Forest Labs) — मज़बूत text-to-image और editing, स्वतंत्र रूप से commercial open विकल्प klein 4B (Apache 2.0) है।</li>
<li><strong>Qwen-Image</strong> (Alibaba) — open, Apache 2.0, best-in-class text rendering के साथ (signage और labels के लिए बढ़िया)।</li>
<li><strong>Stable Diffusion 3.5</strong> — गहरे customization के लिए परिपक्व ecosystem (ControlNet, inpainting, LoRAs)।</li>
</ul>
<p>ये models seamless textures और 2D art generate करते हैं जिन्हें आप सीधे game में डाल सकते हैं। पूरी लाइनअप और licenses के लिए हमारी <a href="/hi/guides/frontier-gen-ai-models.html">open generative AI models guide</a> देखें।</p>
<h2 id="audio-generators-music-और-sfx" tabindex="-1">Audio generators (music और SFX) <a class="header-anchor" href="#audio-generators-music-और-sfx" aria-label="Permalink to &quot;Audio generators (music और SFX)&quot;"></a></h2>
<ul>
<li><strong>Stable Audio 3.0</strong> — एक Small model के लिए open weights और साथ में एक dedicated open sound-effects model, licensed data पर trained (साफ़ legal आधार)। game SFX के लिए सबसे मज़बूत open विकल्प।</li>
<li><strong>ACE-Step 1.5</strong> — open, MIT-licensed music generation, कई भाषाओं में voice cloning के साथ।</li>
<li><strong>ElevenLabs</strong> — SFX और music के लिए सबसे मज़बूत hosted विकल्प, paid plans पर commercial rights।</li>
</ul>
<h2 id="rigging-और-animation" tabindex="-1">Rigging और animation <a class="header-anchor" href="#rigging-और-animation" aria-label="Permalink to &quot;Rigging और animation&quot;"></a></h2>
<p>Auto-rigging परिपक्व हो चुका है: <strong>UniRig</strong> (MIT) और <strong>NVIDIA SOMA-X</strong> (Apache 2.0) जैसे open models आपके meshes के लिए skeletons और skinning generate करते हैं, यह Mixamo का भरोसेमंद विकल्प है जो अब अविश्वसनीय हो गया है। Tripo और Meshy जैसे hosted tools भी auto-rig करते हैं। Cinevva का <a href="/hi/tools/rigger.html">Auto Rigger</a> यह browser में करता है: एक GLB, FBX या OBJ upload करें और optional preset animations के साथ rigged model वापस पाएँ।</p>
<h2 id="तुलना" tabindex="-1">तुलना <a class="header-anchor" href="#तुलना" aria-label="Permalink to &quot;तुलना&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Tool</th>
<th>बनाता है</th>
<th>Open / hosted</th>
<th>Commercial use</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Meshy</strong></td>
<td>3D models</td>
<td>Hosted</td>
<td>Paid tier</td>
</tr>
<tr>
<td><strong>Tripo</strong></td>
<td>3D models + rig</td>
<td>Hosted</td>
<td>Paid tier</td>
</tr>
<tr>
<td><strong>Hunyuan3D 2.1</strong></td>
<td>3D models</td>
<td>Open</td>
<td>हाँ (region limits)</td>
</tr>
<tr>
<td><strong>TRELLIS.2</strong></td>
<td>3D models</td>
<td>Open (MIT)</td>
<td>हाँ</td>
</tr>
<tr>
<td><strong>FLUX.2 klein</strong></td>
<td>Images/textures</td>
<td>Open (Apache)</td>
<td>हाँ</td>
</tr>
<tr>
<td><strong>Qwen-Image</strong></td>
<td>Images/textures</td>
<td>Open (Apache)</td>
<td>हाँ</td>
</tr>
<tr>
<td><strong>Stable Audio 3.0</strong></td>
<td>Music + SFX</td>
<td>Open</td>
<td>हाँ</td>
</tr>
<tr>
<td><strong>ElevenLabs</strong></td>
<td>SFX + music</td>
<td>Hosted</td>
<td>Paid tier</td>
</tr>
</tbody>
</table>
<h2 id="all-in-one-विकल्प" tabindex="-1">All-in-one विकल्प <a class="header-anchor" href="#all-in-one-विकल्प" aria-label="Permalink to &quot;All-in-one विकल्प&quot;"></a></h2>
<p>इन tools को आपस में जोड़ना काम करता है, पर यह एक pipeline है। कुछ game creators generation को editor में ही bundle कर देते हैं: Cinevva में text-to-3D, image, music और skybox generation पहले से built-in है, ताकि आप एक asset generate कर सीधे अपने game में डाल सकें, tools के बीच export और import किए बिना। आप इसे <a href="/create.html?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=ai_asset_generators">मुफ़्त आज़मा सकते हैं</a>।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="games-के-लिए-सबसे-बेहतरीन-ai-3d-model-generator-कौन-सा-है" tabindex="-1">Games के लिए सबसे बेहतरीन AI 3D model generator कौन सा है? <a class="header-anchor" href="#games-के-लिए-सबसे-बेहतरीन-ai-3d-model-generator-कौन-सा-है" aria-label="Permalink to &quot;Games के लिए सबसे बेहतरीन AI 3D model generator कौन सा है?&quot;"></a></h3>
<p>Hosted tools के लिए, Meshy और Tripo अग्रणी all-rounders हैं (text या image से textured, riggable mesh), paid plans पर commercial rights के साथ। Open, self-hostable models के लिए, Hunyuan3D 2.1 और Microsoft का TRELLIS.2 2026 में सबसे मज़बूत हैं। सबसे अच्छा विकल्प इस पर निर्भर करता है कि आप एक तेज़ hosted tool चाहते हैं या commercial-friendly open weights।</p>
<h3 id="क्या-मैं-commercial-game-में-ai-generated-assets-इस्तेमाल-कर-सकता-हूँ" tabindex="-1">क्या मैं commercial game में AI-generated assets इस्तेमाल कर सकता हूँ? <a class="header-anchor" href="#क्या-मैं-commercial-game-में-ai-generated-assets-इस्तेमाल-कर-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं commercial game में AI-generated assets इस्तेमाल कर सकता हूँ?&quot;"></a></h3>
<p>अक्सर हाँ, पर license जाँच लें। जिन open models को आप खुद host करते हैं वे आमतौर पर सबसे साफ़ होते हैं (ध्यान दें Hunyuan3D कुछ क्षेत्रों को बाहर रखता है)। Hosted tools आमतौर पर commercial rights को paid plan के पीछे रखते हैं, और free-tier का output अक्सर non-commercial होता है। हमेशा model की output-rights की शर्तें पक्की करें, और जहाँ आपका platform ज़रूरी बनाए वहाँ AI content का खुलासा करें।</p>
<h3 id="क्या-मुफ़्त-ai-asset-generators-हैं" tabindex="-1">क्या मुफ़्त AI asset generators हैं? <a class="header-anchor" href="#क्या-मुफ़्त-ai-asset-generators-हैं" aria-label="Permalink to &quot;क्या मुफ़्त AI asset generators हैं?&quot;"></a></h3>
<p>कई tools में free tiers हैं, पर वे आमतौर पर usage सीमित करते हैं और commercial rights बाहर रखते हैं। TRELLIS.2, FLUX.2 klein, Qwen-Image और Stable Audio जैसे open models अगर आपके पास hardware हो तो commercial-friendly licenses के साथ खुद चलाने के लिए मुफ़्त हैं। ऊपर की तुलना तालिका दिखाती है कौन सा open है और कौन सा hosted।</p>
<h3 id="क्या-ai-game-music-और-sound-effects-generate-कर-सकता-है" tabindex="-1">क्या AI game music और sound effects generate कर सकता है? <a class="header-anchor" href="#क्या-ai-game-music-और-sound-effects-generate-कर-सकता-है" aria-label="Permalink to &quot;क्या AI game music और sound effects generate कर सकता है?&quot;"></a></h3>
<p>हाँ। Stable Audio 3.0 एक dedicated sound-effects model समेत open weights देता है, ACE-Step MIT license के तहत music generate करता है, और ElevenLabs paid plans पर commercial rights के साथ एक मज़बूत hosted विकल्प है। ये एक game के पूरे soundscape के लिए music और SFX दोनों कवर करते हैं।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/frontier-gen-ai-models.html">Games के लिए सबसे बेहतरीन ओपन-सोर्स जनरेटिव AI मॉडल</a> — गहरा technical विवरण</li>
<li><a href="/hi/guides/game-assets-guide.html">मुफ़्त Game Assets कहाँ मिलेंगे</a> — पहले से बने मुफ़्त assets</li>
<li><a href="/hi/guides/free-3d-model-sites.html">Games के लिए सबसे बेहतरीन मुफ़्त 3D Model साइट्स</a> — generate करने की बजाय search करें</li>
<li><a href="/hi/guides/free-sound-effects-music.html">Games के लिए मुफ़्त Sound Effects और Music</a> — पहले से बना audio</li>
<li><a href="/hi/guides/game-asset-licenses.html">Game Asset Licenses की व्याख्या</a> — शर्तों को समझना</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 में सबसे अच्छे AI गेम जनरेटर (रैंक और तुलना)]]></title>
            <link>https://app.cinevva.com/hi/guides/ai-game-generators-2026</link>
            <guid>https://app.cinevva.com/hi/guides/ai-game-generators-2026</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[हमने 2026 के सबसे अच्छे AI गेम जनरेटर की तुलना इस पर की कि वे असल में क्या बनाते हैं, 2D बनाम 3D, ownership और कीमत, Rosebud और Summer से लेकर Replit, Gameer, GDevelop AI और Cinevva तक।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-सबसे-अच्छे-ai-गेम-जनरेटर-रैंक-और-तुलना" tabindex="-1">2026 में सबसे अच्छे AI गेम जनरेटर (रैंक और तुलना) <a class="header-anchor" href="#_2026-में-सबसे-अच्छे-ai-गेम-जनरेटर-रैंक-और-तुलना" aria-label="Permalink to &quot;2026 में सबसे अच्छे AI गेम जनरेटर (रैंक और तुलना)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>आप एक वाक्य टाइप करते हैं, AI एक गेम बना देता है। यही वादा है, और 2026 में यह असली है, लेकिन जो tools ऐसा करते हैं वे अंदर से बहुत अलग हैं। कुछ आपके browser में पॉलिश किए हुए 2D आर्केड गेम बनाते हैं। कुछ desktop engine हैं जो आपको एक ऐसा प्रोजेक्ट देते हैं जिसके आप पूरी तरह मालिक होते हैं। कुछ सामान्य code assistant हैं जो गेम भी बना सकते हैं। गलत वाला चुनने से एक पूरा वीकेंड बर्बाद हो जाता है।</p>
<p>यह गाइड 2026 में जानने लायक AI गेम जनरेटर की तुलना करती है, हर एक असल में क्या बनाता है, क्या आप अपने गेम के मालिक बन सकते हैं और उसे export कर सकते हैं, और उसकी कीमत क्या है। हमने ईमानदार रहने की कोशिश की है कि हर tool कहां जीतता है, इसमें यह भी शामिल है कि हमारा tool कहां जीतता है और कहां नहीं।</p>
<h2 id="ai-गेम-जनरेटर-के-चार-प्रकार" tabindex="-1">&quot;AI गेम जनरेटर&quot; के चार प्रकार <a class="header-anchor" href="#ai-गेम-जनरेटर-के-चार-प्रकार" aria-label="Permalink to &quot;&quot;AI गेम जनरेटर&quot; के चार प्रकार&quot;"></a></h2>
<p>ज्यादातर &quot;सबसे अच्छे AI गेम मेकर&quot; वाली लिस्ट इन्हें आपस में मिला देती हैं, इसीलिए वे उलझन भरी होती हैं। असल में चार श्रेणियां हैं:</p>
<ol>
<li><strong>Prompt-to-game builders</strong> एक विवरण से खेलने लायक गेम बनाते हैं। Rosebud, Gameer, Astrocade, Nilo और Cinevva यहां आते हैं।</li>
<li><strong>Engine-integrated AI agents</strong> एक मौजूदा engine के अंदर AI assistant जोड़ते हैं। GDevelop AI, Buildbox 4 और Unity AI ऐसे ही हैं।</li>
<li><strong>General code builders</strong> जैसे Replit एक गेम बना सकते हैं क्योंकि वे कोई भी web app बना सकते हैं, लेकिन वे games-native नहीं हैं।</li>
<li><strong>Ideation और asset tools</strong> जैसे Ludo.ai आपको योजना बनाने और assets जनरेट करने में मदद करते हैं लेकिन तैयार गेम नहीं बनाते।</li>
</ol>
<p>आपको कौन सी श्रेणी चाहिए यह जान लेने से विकल्प जल्दी सिमट जाते हैं।</p>
<h2 id="झटपट-चुनाव" tabindex="-1">झटपट चुनाव <a class="header-anchor" href="#झटपट-चुनाव" aria-label="Permalink to &quot;झटपट चुनाव&quot;"></a></h2>
<ul>
<li><strong>Browser में सबसे तेज खेलने लायक नतीजा:</strong> Rosebud या Cinevva।</li>
<li><strong>आप code के मालिक बनना चाहते हैं और Steam पर शिप करना चाहते हैं:</strong> Summer Engine।</li>
<li><strong>Interactive fiction और visual novel:</strong> Gameer।</li>
<li><strong>मुफ्त और open-source, web hosting के साथ:</strong> GDevelop AI।</li>
<li><strong>prompt से 3D गेम, तुरंत link से शेयर करने लायक:</strong> Cinevva या Nilo।</li>
<li><strong>आप पहले से Unity या web dev हैं:</strong> Unity AI या Replit।</li>
</ul>
<h2 id="तुलना-तालिका" tabindex="-1">तुलना तालिका <a class="header-anchor" href="#तुलना-तालिका" aria-label="Permalink to &quot;तुलना तालिका&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Tool</th>
<th>बनाता है</th>
<th>2D / 3D</th>
<th>code के मालिक?</th>
<th>Web-shareable</th>
<th>Free tier</th>
<th>सबसे सस्ता paid</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/hi/engine.html"><strong>Cinevva</strong></a></td>
<td>खेलने लायक गेम</td>
<td>2D + 3D (web)</td>
<td>✅ download</td>
<td>✅ link</td>
<td>✅</td>
<td><a href="/hi/plans.html">plans</a> देखें</td>
</tr>
<tr>
<td><a href="https://rosebud.ai/" target="_blank" rel="noreferrer"><strong>Rosebud</strong></a></td>
<td>खेलने लायक गेम</td>
<td>2D + 3D</td>
<td>JS export</td>
<td>✅ link</td>
<td>✅ ~20 prompts/हफ्ता</td>
<td>~$10/माह</td>
</tr>
<tr>
<td><a href="https://www.summerengine.com/" target="_blank" rel="noreferrer"><strong>Summer Engine</strong></a></td>
<td>असली engine प्रोजेक्ट</td>
<td>2D + 3D</td>
<td>✅ पूरा (Godot)</td>
<td>❌ native builds</td>
<td>✅</td>
<td>$20/माह</td>
</tr>
<tr>
<td><a href="https://www.gameer.io/" target="_blank" rel="noreferrer"><strong>Gameer</strong></a></td>
<td>interactive कहानी</td>
<td>2D</td>
<td>❌ engine-locked</td>
<td>✅ link</td>
<td>✅</td>
<td>$1.99/माह</td>
</tr>
<tr>
<td><a href="https://gdevelop.io/" target="_blank" rel="noreferrer"><strong>GDevelop AI</strong></a></td>
<td>engine प्रोजेक्ट</td>
<td>2D + 3D</td>
<td>✅ open-source</td>
<td>✅ gd.games</td>
<td>✅ ~40 cr/माह</td>
<td>~$5.49/माह</td>
</tr>
<tr>
<td><a href="https://replit.com/" target="_blank" rel="noreferrer"><strong>Replit</strong></a></td>
<td>web app/गेम</td>
<td>2D (3D संभव)</td>
<td>✅ code export</td>
<td>✅ URL</td>
<td>✅</td>
<td>$25/माह</td>
</tr>
<tr>
<td><a href="https://unity.com/" target="_blank" rel="noreferrer"><strong>Unity AI</strong></a></td>
<td>Unity प्रोजेक्ट</td>
<td>2D + 3D</td>
<td>✅ आपका प्रोजेक्ट</td>
<td>WebGL export</td>
<td>trial</td>
<td>$10/माह</td>
</tr>
<tr>
<td><a href="https://www.buildbox.com/" target="_blank" rel="noreferrer"><strong>Buildbox 4</strong></a></td>
<td>No-code गेम</td>
<td>2D + 3D</td>
<td>❌ engine-locked</td>
<td>HTML5 export</td>
<td>✅</td>
<td>~$48.99/साल</td>
</tr>
<tr>
<td><a href="https://www.astrocade.com/" target="_blank" rel="noreferrer"><strong>Astrocade</strong></a></td>
<td>social गेम</td>
<td>2D (3D का दावा)</td>
<td>❌ locked</td>
<td>✅ link</td>
<td>✅</td>
<td>n/a (contact)</td>
</tr>
<tr>
<td><a href="https://nilo.io/" target="_blank" rel="noreferrer"><strong>Nilo</strong></a></td>
<td>3D world/assets</td>
<td>3D</td>
<td>export FBX/glTF</td>
<td>✅ link + Roblox</td>
<td>✅ beta</td>
<td>अभी नहीं</td>
</tr>
</tbody>
</table>
<p>कीमतें अनुमानित हैं और अक्सर बदलती रहती हैं, इसलिए checkout पर पुष्टि कर लें। Free tiers आमतौर पर commercial rights पर पाबंदी लगाते हैं, इसलिए बेचने के इरादे से कुछ भी शिप करने से पहले शर्तें जांच लें।</p>
<h2 id="एक-एक-tool" tabindex="-1">एक-एक tool <a class="header-anchor" href="#एक-एक-tool" aria-label="Permalink to &quot;एक-एक tool&quot;"></a></h2>
<h3 id="rosebud-ai" tabindex="-1">Rosebud AI <a class="header-anchor" href="#rosebud-ai" aria-label="Permalink to &quot;Rosebud AI&quot;"></a></h3>
<p>Rosebud prompts को browser में खेलने लायक गेम में बदल देता है और 2D में सबसे मजबूत है, बढ़ते हुए 3D और voxel support के साथ। अंदर से यह JavaScript जनरेट करता है (3D के लिए Three.js, 2D के लिए Phaser), इसलिए output सिद्धांत रूप में portable है। आप इसके assistant से चैट करके iterate करते हैं, यह आपके लिए sprites और NPC जनरेट करता है, और आप एक shareable, Rosebud पर hosted URL पर publish करते हैं। Free tier आपको हफ्ते में कुछ prompts देता है बिना commercial rights के, paid plans commercial इस्तेमाल खोल देते हैं। उन शुरुआती लोगों, शिक्षकों और jam entries के लिए सबसे अच्छा जो 2D link तक सबसे तेज रास्ता चाहते हैं।</p>
<h3 id="summer-engine" tabindex="-1">Summer Engine <a class="header-anchor" href="#summer-engine" aria-label="Permalink to &quot;Summer Engine&quot;"></a></h3>
<p>Summer वह चुनाव है अगर आप एक असली गेम शिप करके बेचना चाहते हैं और हर चीज के मालिक बनना चाहते हैं। यह एक desktop, AI-native engine है जिसे Godot 4 के drop-in के तौर पर पेश किया गया है, इसलिए आपका प्रोजेक्ट standard Godot files (GDScript या C#) होता है, बिना किसी lock-in के। आप chat में scenes और logic का वर्णन करते हैं, यह code और assets जनरेट करता है, और आप Windows, macOS, Linux, mobile, web और Steam पर export करते हैं, अपनी पूरी कमाई अपने पास रखते हुए। browser tools की तुलना में समझौता यह है: यह एक desktop app है जिसका लक्ष्य stores पर शिप करना है, न कि तुरंत एक public link। ध्यान देने लायक बात है कि Summer खुद बहुत सारे &quot;सबसे अच्छे AI गेम मेकर&quot; वाले राउंडअप छापता है जो Summer को पहले नंबर पर रखते हैं, इसलिए उन्हें उसी हिसाब से तौलें।</p>
<h3 id="gameer" tabindex="-1">Gameer <a class="header-anchor" href="#gameer" aria-label="Permalink to &quot;Gameer&quot;"></a></h3>
<p>Gameer कुछ ही मिनटों में एक सादे-text prompt से सिनेमाई interactive-story और visual-novel गेम बनाता है, बिना किसी code के। एक multi-agent सिस्टम कथा, visuals और mechanics संभालता है। आपको तुरंत एक shareable link मिलता है, हालांकि गेम Gameer के runtime से locked रहता है। यह उन लेखकों, शिक्षकों और marketers के लिए बना है जो branching fiction चाहते हैं, न कि real-time action या 3D।</p>
<h3 id="gdevelop-ai" tabindex="-1">GDevelop AI <a class="header-anchor" href="#gdevelop-ai" aria-label="Permalink to &quot;GDevelop AI&quot;"></a></h3>
<p>GDevelop एक मुफ्त, open-source engine है जिसने एक in-editor AI agent जोड़ा है। आप इससे features या पूरे गेम बनाने को कहते हैं और यह आपके editable प्रोजेक्ट में events और behaviors लिख देता है। यह 2D और बढ़ता हुआ 3D करता है, web, Android, iOS और desktop पर export करता है, और आपको gd.games पर मुफ्त public hosting देता है share links के साथ। AI एक मासिक credit भत्ते पर चलता है, paid tiers और जोड़ देते हैं। एक मजबूत मुफ्त, open विकल्प अगर आपको credit limit और थोड़ा iteration मंजूर है।</p>
<h3 id="replit" tabindex="-1">Replit <a class="header-anchor" href="#replit" aria-label="Permalink to &quot;Replit&quot;"></a></h3>
<p>Replit का Agent एक सामान्य full-stack builder है, गेम engine नहीं, लेकिन यह एक विवरण से web गेम बना सकता है और उसे एक public URL पर deploy कर सकता है। यह sprites, music या sound जनरेट नहीं करता, इसलिए आप अपने assets खुद लाते हैं, और यह 2D की तरफ झुकता है। उन लोगों के लिए सबसे अच्छा जो पहले से किसी AI coding tool को चलाने में सहज हैं और एक web-playable नतीजा चाहते हैं जिस पर उनका पूरा नियंत्रण हो।</p>
<h3 id="unity-ai" tabindex="-1">Unity AI <a class="header-anchor" href="#unity-ai" aria-label="Permalink to &quot;Unity AI&quot;"></a></h3>
<p>Unity ने अपने पुराने Muse product की जगह Unity AI ला दिया, जो मई 2026 तक open beta में है। यह Unity 6 के अंदर एक in-editor agent है जो frontier models का इस्तेमाल करके C# code, placeholder assets और scenes जनरेट करता है। आप अपने ही Unity प्रोजेक्ट के अंदर रहते हैं और अपने गेम के मालिक होते हैं, WebGL समेत दूसरे targets पर export करते हुए। यह उन लोगों के लिए है जो पहले से Unity में काम करते हैं और AI मदद चाहते हैं, न कि उन नए लोगों के लिए जो एक वाक्य से गेम चाहते हैं।</p>
<h3 id="buildbox-4-astrocade-nilo" tabindex="-1">Buildbox 4, Astrocade, Nilo <a class="header-anchor" href="#buildbox-4-astrocade-nilo" aria-label="Permalink to &quot;Buildbox 4, Astrocade, Nilo&quot;"></a></h3>
<p><strong>Buildbox 4</strong> एक no-code, ज्यादातर hyper-casual mobile engine है जिसने AI asset और node generation जोड़ा; यह HTML5 export करता है लेकिन engine-locked है। <strong>Astrocade</strong> एक अच्छी फंडिंग वाला, तुरंत-share करने वाला social platform है जिसका output 3D marketing के बावजूद व्यवहार में 2D की तरफ झुकता है, कड़े lock-in और बिना किसी code export के साथ। <strong>Nilo</strong> browser-based AI 3D tool में हमारे बनाए हुए के सबसे करीब है, एक मजबूत Roblox-export नजरिए और छोटी उम्र के दर्शकों के साथ; यह मुफ्त beta में है।</p>
<h2 id="कैसे-चुनें" tabindex="-1">कैसे चुनें <a class="header-anchor" href="#कैसे-चुनें" aria-label="Permalink to &quot;कैसे चुनें&quot;"></a></h2>
<p>तीन सवाल पूछें। पहला, क्या आपको 3D चाहिए, या 2D ठीक है? ज्यादातर tools 2D में सबसे मजबूत हैं, और prompt से भरोसेमंद 3D वह मुश्किल पैमाना है जिसे कम ही पार कर पाते हैं। दूसरा, क्या आपको code के मालिक बनकर उसे export करना है, या एक hosted link काफी है? Summer, GDevelop, Unity AI और Cinevva सभी आपको अपना प्रोजेक्ट export करने देते हैं (Cinevva आपको पूरा गेम download करने देता है ताकि आप उसे कहीं भी host कर सकें); Rosebud, Gameer और Astrocade तुरंत shareable link पर टिके रहते हैं। तीसरा, क्या आप Steam और app stores पर शिप कर रहे हैं, या दोस्तों के साथ एक link शेयर कर रहे हैं? Stores desktop engines के पक्ष में हैं; links browser tools के पक्ष में हैं।</p>
<h2 id="cinevva-कहां-फिट-होता-है" tabindex="-1">Cinevva कहां फिट होता है <a class="header-anchor" href="#cinevva-कहां-फिट-होता-है" aria-label="Permalink to &quot;Cinevva कहां फिट होता है&quot;"></a></h2>
<p>हम इस बारे में सीधी बात करेंगे। बाजार का भीड़भाड़ वाला हिस्सा 2D-in-the-browser है (Rosebud, Astrocade, Gameer, Replit)। Cinevva एक बहुत कम भीड़ वाली जगह पर बैठा है: chat-driven, 2D और सच में 3D दोनों गेम बनाता है, एक असली Three.js-based engine पर browser में खेलने लायक, तुरंत link से shareable, और एक पूरे गेम के रूप में exportable जिसे आप download करके कहीं भी host कर सकते हैं, इसमें text-to-3D, image, music और skybox generation और CC0 asset libraries अंदर बने हुए हैं। वह code export मायने रखता है, क्योंकि कई तुरंत-share करने वाले प्रतिद्वंद्वी (Astrocade, Gameer) आपके गेम को अपने runtime से lock कर देते हैं। उस चौराहे के सबसे करीब वाला tool Nilo है, जो 3D assets को Roblox पर export करने की तरफ झुकता है और छोटी उम्र के दर्शकों को target करता है, इसलिए वह self-hosted web गेम जिसे आप शेयर भी कर सकते हैं और download भी, वही खाली जगह है जिस पर हम ध्यान देते हैं।</p>
<p>ईमानदार चेतावनी यह है कि &quot;prompt से असली 3D&quot; इस श्रेणी का सबसे मुश्किल दावा है, और समीक्षक शक करने में सही हैं। इनमें से किसी भी tool को, हमारे वाले समेत, आंकने का सही तरीका है कुछ बनाना और link शेयर करना। आप <a href="/create.html?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=ai_game_generators">एक prompt से मुफ्त में 3D गेम बना सकते हैं</a> और देख सकते हैं कि नतीजा कहां पहुंचता है, या अगर आप खाली box घूरना नहीं चाहते तो <a href="/hi/guides/vibe-coding-game-prompts.html">एक-क्लिक prompt से शुरू करें</a>।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="_2026-में-सबसे-अच्छा-ai-गेम-जनरेटर-कौन-सा-है" tabindex="-1">2026 में सबसे अच्छा AI गेम जनरेटर कौन सा है? <a class="header-anchor" href="#_2026-में-सबसे-अच्छा-ai-गेम-जनरेटर-कौन-सा-है" aria-label="Permalink to &quot;2026 में सबसे अच्छा AI गेम जनरेटर कौन सा है?&quot;"></a></h3>
<p>कोई एक सबसे अच्छा नहीं है, क्योंकि tools अलग-अलग लक्ष्य पूरे करते हैं। तेजी से 2D browser गेम के लिए Rosebud बढ़िया है। ऐसे 3D browser गेम के लिए जिसे आप तुरंत शेयर कर सकें, Cinevva या Nilo। ऐसे गेम के लिए जिसके आप मालिक हों और Steam पर शिप करें, Summer Engine। मुफ्त और open-source के लिए, GDevelop AI। इस आधार पर चुनें कि 2D बनाम 3D, क्या आपको code का मालिक बनना है, और क्या आप एक link शेयर कर रहे हैं या किसी store पर शिप कर रहे हैं।</p>
<h3 id="क्या-ai-सच-में-एक-prompt-से-पूरा-गेम-बना-सकता-है" tabindex="-1">क्या AI सच में एक prompt से पूरा गेम बना सकता है? <a class="header-anchor" href="#क्या-ai-सच-में-एक-prompt-से-पूरा-गेम-बना-सकता-है" aria-label="Permalink to &quot;क्या AI सच में एक prompt से पूरा गेम बना सकता है?&quot;"></a></h3>
<p>छोटे और casual गेम के लिए, हां, खासकर 2D। AI movement, collision, physics और बुनियादी art संभाल लेता है ताकि आप idea से खेलने लायक तक कुछ ही मिनटों में पहुंच जाएं। बड़े या ज्यादा पॉलिश किए हुए गेम को अब भी iteration और इंसानी design काम की जरूरत होती है, और AI के लिए 3D को सही करना 2D से मुश्किल है। पहली generation को एक मजबूत शुरुआती बिंदु मानें जिसे आप निखारते हैं, तैयार product नहीं।</p>
<h3 id="क्या-ai-गेम-जनरेटर-से-बनाए-गेम-के-मालिक-मैं-होता-हूं" tabindex="-1">क्या AI गेम जनरेटर से बनाए गेम के मालिक मैं होता हूं? <a class="header-anchor" href="#क्या-ai-गेम-जनरेटर-से-बनाए-गेम-के-मालिक-मैं-होता-हूं" aria-label="Permalink to &quot;क्या AI गेम जनरेटर से बनाए गेम के मालिक मैं होता हूं?&quot;"></a></h3>
<p>यह tool पर निर्भर करता है। Summer, GDevelop और Unity AI जैसे engine-based tools आपको एक असली प्रोजेक्ट देते हैं जिसके आप मालिक होते हैं और जिसे export कर सकते हैं। Hosted prompt-to-game platforms अलग-अलग होते हैं: कुछ आपको code export करने देते हैं, कुछ गेम को अपने runtime से lock कर देते हैं, और कई commercial rights को paid plan के पीछे रखते हैं। कुछ भी बेचने से पहले हमेशा शर्तें पढ़ें।</p>
<h3 id="क्या-ai-generated-गेम-बनाना-मुफ्त-है" tabindex="-1">क्या AI-generated गेम बनाना मुफ्त है? <a class="header-anchor" href="#क्या-ai-generated-गेम-बनाना-मुफ्त-है" aria-label="Permalink to &quot;क्या AI-generated गेम बनाना मुफ्त है?&quot;"></a></h3>
<p>ज्यादातर tools का एक free tier होता है जो उन्हें आजमाने के लिए काफी अच्छा है, लेकिन free tiers आमतौर पर सीमित कर देते हैं कि आप कितना जनरेट कर सकते हैं और अक्सर commercial rights को बाहर रखते हैं। जब आप commercially publish करना चाहें, भारी मात्रा में जनरेट करना चाहें, या export करना चाहें तो भुगतान की उम्मीद रखें। ऊपर की तुलना तालिका हर tool का free tier और सबसे सस्ता paid plan बताती है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/make-a-game-with-ai.html">AI से गेम कैसे बनाएं (2026 गाइड)</a> — पूरा no-code वर्कफ़्लो, कदम दर कदम</li>
<li><a href="/hi/guides/3d-browser-game-without-coding.html">बिना coding के 3D browser गेम कैसे बनाएं</a> — 3D-विशिष्ट रास्ता</li>
<li><a href="/hi/guides/vibe-coding-games.html">Vibe Coding Games: यह क्या है और शुरुआत कैसे करें</a> — यह शब्द, वर्कफ़्लो, खतरे</li>
<li><a href="/hi/guides/vibe-coding-game-prompts.html">AI गेम Prompts जो आप एक क्लिक में बना सकते हैं</a> — आजमाने के लिए शुरुआती बिंदु</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे Web Game Engines</a> — अगर आप हाथ से बनाना चाहें</li>
<li><a href="/hi/guides/frontier-gen-ai-models.html">गेम के लिए सबसे अच्छे Open-Source Generative AI Models</a> — AI asset generation के पीछे के models</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[शुरुआती लोगों के लिए सबसे अच्छे मुफ्त गेम इंजन (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/best-free-game-engines-beginners</link>
            <guid>https://app.cinevva.com/hi/guides/best-free-game-engines-beginners</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में शुरुआती लोगों के लिए सबसे अच्छे मुफ्त गेम इंजन, GDevelop जैसे no-code टूल से लेकर Godot और Phaser तक, हर एक किसके लिए सही है और अपना पहला इंजन कैसे चुनें।]]></description>
            <content:encoded><![CDATA[<h1 id="शुरुआती-लोगों-के-लिए-सबसे-अच्छे-मुफ्त-गेम-इंजन-2026" tabindex="-1">शुरुआती लोगों के लिए सबसे अच्छे मुफ्त गेम इंजन (2026) <a class="header-anchor" href="#शुरुआती-लोगों-के-लिए-सबसे-अच्छे-मुफ्त-गेम-इंजन-2026" aria-label="Permalink to &quot;शुरुआती लोगों के लिए सबसे अच्छे मुफ्त गेम इंजन (2026)&quot;"></a></h1>
<p><em>आखिरी अपडेट: जून 2026.</em></p>
<p>जब आप शुरुआत कर रहे हों, तो सबसे अच्छा इंजन वही है जो बिना किसी बिल और बिना कोड की मोटी दीवार के आपको सबसे तेजी से एक playable गेम तक पहुंचा दे। 2026 में अच्छी खबर यह है कि शुरुआती लोगों के लिए सबसे मजबूत विकल्प पूरी तरह मुफ्त हैं। यहां वे विकल्प हैं, इस आधार पर क्रम में लगाए गए कि आप कितना कोड लिखना चाहते हैं, साथ ही नया &quot;इसे AI को बताएं&quot; वाला रास्ता।</p>
<h2 id="आप-कहां-से-शुरू-कर-रहे-हैं-उसके-हिसाब-से-क्विक-पिक" tabindex="-1">आप कहां से शुरू कर रहे हैं, उसके हिसाब से क्विक पिक <a class="header-anchor" href="#आप-कहां-से-शुरू-कर-रहे-हैं-उसके-हिसाब-से-क्विक-पिक" aria-label="Permalink to &quot;आप कहां से शुरू कर रहे हैं, उसके हिसाब से क्विक पिक&quot;"></a></h2>
<ul>
<li><strong>बिल्कुल कोड नहीं, आज ही गेम चाहिए:</strong> GDevelop, या कोई AI prompt-to-game टूल।</li>
<li><strong>थोड़ा कोड, ठीक से सीखना चाहते हैं:</strong> Godot।</li>
<li><strong>आपको कुछ JavaScript आता है:</strong> Phaser।</li>
<li><strong>साफ-सुथरे एडिटर के साथ visual scripting:</strong> Construct (मुफ्त टियर) या GDevelop।</li>
</ul>
<h2 id="सबसे-अच्छे-मुफ्त-इंजन" tabindex="-1">सबसे अच्छे मुफ्त इंजन <a class="header-anchor" href="#सबसे-अच्छे-मुफ्त-इंजन" aria-label="Permalink to &quot;सबसे अच्छे मुफ्त इंजन&quot;"></a></h2>
<h3 id="gdevelop" tabindex="-1">GDevelop <a class="header-anchor" href="#gdevelop" aria-label="Permalink to &quot;GDevelop&quot;"></a></h3>
<p>मुफ्त, open-source, आपके browser में या डेस्कटॉप ऐप के रूप में चलता है, और आप कोड की जगह visual event sheets के साथ logic बनाते हैं। यह 2D करता है और तेजी से 3D भी, web, mobile और डेस्कटॉप पर export करता है, और gd.games पर एक share link के साथ मुफ्त hosting देता है। इसने एक AI agent भी जोड़ा है जो prompts से features बना सकता है। ज्यादातर शुरुआती लोगों के लिए यह अकेला सबसे अच्छा no-code शुरुआती बिंदु है, और शिप करने की कोई कीमत नहीं।</p>
<h3 id="godot" tabindex="-1">Godot <a class="header-anchor" href="#godot" aria-label="Permalink to &quot;Godot&quot;"></a></h3>
<p>MIT license के तहत मुफ्त और open-source, कभी कोई फीस या revenue cap नहीं। Godot 2D और 3D दोनों करता है, इसकी scripting language (GDScript) सरल है और आसान समझने के लिए बनाई गई है, और मुफ्त tutorials की एक बड़ी लाइब्रेरी है। मौजूदा version 4.7 है (जून 2026)। अगर आप licensing की चिंता किए बिना असली game programming सीखना चाहते हैं, तो यह सबसे अच्छा विकल्प है, और यह आपके पहले प्रोजेक्ट से लेकर एक पूरे गेम को शिप करने तक आपके साथ बढ़ता है। एक बात ध्यान दें: C# प्रोजेक्ट web पर export नहीं हो सकते, इसलिए अगर आपका लक्ष्य web है तो GDScript का इस्तेमाल करें।</p>
<h3 id="phaser" tabindex="-1">Phaser <a class="header-anchor" href="#phaser" aria-label="Permalink to &quot;Phaser&quot;"></a></h3>
<p>MIT license के तहत मुफ्त, Phaser सबसे लोकप्रिय HTML5 game framework है, जिसका सबसे बड़ा community और 2D web गेम्स के लिए सबसे ज्यादा tutorials हैं। Version 4, 2026 में आया। यह code-first है (JavaScript या TypeScript), इसलिए यह उन शुरुआती लोगों के लिए सही है जिन्हें पहले से थोड़ा web development आता है और जो visual एडिटर के बजाय कोड लिखकर सीखना चाहते हैं।</p>
<h3 id="construct-मुफ्त-टियर" tabindex="-1">Construct (मुफ्त टियर) <a class="header-anchor" href="#construct-मुफ्त-टियर" aria-label="Permalink to &quot;Construct (मुफ्त टियर)&quot;"></a></h3>
<p>Construct एक visual, event-sheet इंजन है जो बिना किसी coding के browser में चलता है। इसका मुफ्त टियर आपको 2D गेम्स बनाकर web पर publish करने देता है, कुछ सीमाओं के साथ (events और layers पर एक cap) जिन्हें प्रोजेक्ट बड़े होने पर आप पार कर जाते हैं। उन बिल्कुल नए लोगों के लिए बढ़िया है जो एक साफ-सुथरा, guided एडिटर चाहते हैं, और subscription तभी चाहिए जब आप बड़े स्तर पर जाएं।</p>
<h3 id="ai-no-code-वाला-रास्ता" tabindex="-1">AI / no-code वाला रास्ता <a class="header-anchor" href="#ai-no-code-वाला-रास्ता" aria-label="Permalink to &quot;AI / no-code वाला रास्ता&quot;"></a></h3>
<p>एक नया विकल्प: किसी AI prompt-to-game टूल को एक गेम बताएं और chat करके उसे बेहतर बनाएं, कोई इंजन install किए बिना। किसी idea से एक शेयर करने लायक playable गेम तक पहुंचने का यह सबसे तेज रास्ता है, खासकर 3D के लिए, जहां क्लासिक no-code टूल कमजोर हैं। देखें <a href="/hi/guides/make-a-game-with-ai.html">AI के साथ गेम कैसे बनाएं</a> और हमारी <a href="/hi/guides/ai-game-generators-2026.html">AI game generators की तुलना</a>।</p>
<h2 id="तुलना" tabindex="-1">तुलना <a class="header-anchor" href="#तुलना" aria-label="Permalink to &quot;तुलना&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>इंजन</th>
<th>कोड चाहिए</th>
<th>2D / 3D</th>
<th>browser में चलता है</th>
<th>Web publish</th>
<th>कीमत</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>GDevelop</strong></td>
<td>नहीं (visual)</td>
<td>2D + 3D</td>
<td>हां</td>
<td>gd.games</td>
<td>मुफ्त</td>
</tr>
<tr>
<td><strong>Godot</strong></td>
<td>हल्का (GDScript)</td>
<td>2D + 3D</td>
<td>डेस्कटॉप</td>
<td>Export</td>
<td>मुफ्त (MIT)</td>
</tr>
<tr>
<td><strong>Phaser</strong></td>
<td>हां (JS/TS)</td>
<td>2D</td>
<td>हां</td>
<td>अपना खुद का</td>
<td>मुफ्त (MIT)</td>
</tr>
<tr>
<td><strong>Construct</strong></td>
<td>नहीं (visual)</td>
<td>2D</td>
<td>हां</td>
<td>मुफ्त टियर</td>
<td>मुफ्त टियर; बड़े स्तर पर paid</td>
</tr>
<tr>
<td><strong>AI prompt-to-game</strong></td>
<td>नहीं (इसे बताएं)</td>
<td>2D + 3D</td>
<td>हां</td>
<td>तुरंत link</td>
<td>शुरुआत मुफ्त</td>
</tr>
</tbody>
</table>
<h2 id="अपना-पहला-इंजन-कैसे-चुनें" tabindex="-1">अपना पहला इंजन कैसे चुनें <a class="header-anchor" href="#अपना-पहला-इंजन-कैसे-चुनें" aria-label="Permalink to &quot;अपना पहला इंजन कैसे चुनें&quot;"></a></h2>
<p>इस पर ज्यादा मत सोचिए। इंजन को इस बात से मिलाइए कि आप कितना कोड लिखना चाहते हैं, और छोटी शुरुआत कीजिए। अगर कोड का विचार अच्छा नहीं लगता, तो GDevelop से शुरू कीजिए और इसी हफ्ते एक छोटा गेम शिप कीजिए। अगर आप design के साथ-साथ programming भी सीखना चाहते हैं, तो Godot से शुरू कीजिए और इसके कई शुरुआती tutorials में से किसी एक को फॉलो कीजिए। अगर आपको पहले से JavaScript आता है, तो Phaser स्वाभाविक लगेगा। और अगर आप बस अपना idea जितनी जल्दी हो सके playable देखना चाहते हैं, तो AI वाला रास्ता आजमाइए, फिर जैसे-जैसे आपके प्रोजेक्ट बढ़ें, किसी code या visual इंजन पर चले जाइए। शुरुआती लोग सबसे बड़ी गलती यह करते हैं कि एक भारी professional इंजन चुन लेते हैं, घबरा जाते हैं, और छोड़ देते हैं। किसी सरल इंजन में बना एक पूरा छोटा गेम आपको एक अधूरे बड़े गेम से ज्यादा सिखाता है।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="शुरुआती-लोगों-के-लिए-सबसे-आसान-मुफ्त-गेम-इंजन-कौन-सा-है" tabindex="-1">शुरुआती लोगों के लिए सबसे आसान मुफ्त गेम इंजन कौन सा है? <a class="header-anchor" href="#शुरुआती-लोगों-के-लिए-सबसे-आसान-मुफ्त-गेम-इंजन-कौन-सा-है" aria-label="Permalink to &quot;शुरुआती लोगों के लिए सबसे आसान मुफ्त गेम इंजन कौन सा है?&quot;"></a></h3>
<p>GDevelop सबसे आसान मुफ्त शुरुआती बिंदु है: यह no-code है (visual event sheets), browser में चलता है, और web पर मुफ्त publish करता है। Construct भी इसी तरह शुरुआती लोगों के लिए अनुकूल है और इसका एक मुफ्त टियर है। अगर आप बिल्कुल कोई setup नहीं चाहते, तो कोई AI prompt-to-game टूल एक description से आपको एक playable गेम देता है।</p>
<h3 id="क्या-godot-शुरुआती-लोगों-के-लिए-अच्छा-है" tabindex="-1">क्या Godot शुरुआती लोगों के लिए अच्छा है? <a class="header-anchor" href="#क्या-godot-शुरुआती-लोगों-के-लिए-अच्छा-है" aria-label="Permalink to &quot;क्या Godot शुरुआती लोगों के लिए अच्छा है?&quot;"></a></h3>
<p>हां। Godot मुफ्त और open-source है, और इसकी scripting language (GDScript) शुरुआती लोगों के लिए अनुकूल है, साथ में मुफ्त tutorials की एक बड़ी लाइब्रेरी भी। अगर आप असली game programming सीखना चाहते हैं तो यह सबसे अच्छा मुफ्त विकल्प है, और यह 2D और 3D दोनों करता है। बस ध्यान रखें कि C# प्रोजेक्ट web पर export नहीं हो सकते, इसलिए अगर आपका लक्ष्य browsers हैं तो GDScript पर ही रहिए।</p>
<h3 id="गेम-बनाने-के-लिए-क्या-मुझे-कोड-करना-आना-चाहिए" tabindex="-1">गेम बनाने के लिए क्या मुझे कोड करना आना चाहिए? <a class="header-anchor" href="#गेम-बनाने-के-लिए-क्या-मुझे-कोड-करना-आना-चाहिए" aria-label="Permalink to &quot;गेम बनाने के लिए क्या मुझे कोड करना आना चाहिए?&quot;"></a></h3>
<p>नहीं। GDevelop और Construct जैसे no-code इंजन आपको visual logic के साथ गेम्स बनाने देते हैं, और AI prompt-to-game टूल सादी अंग्रेजी में दिए गए description से एक गेम बना देते हैं। Coding आपको ज्यादा control देती है और आगे चलकर इसे सीखना फायदेमंद है, लेकिन आप इसके बिना भी आज एक असली गेम बनाकर publish कर सकते हैं।</p>
<h3 id="_2026-में-मुझे-कौन-सा-मुफ्त-इंजन-सीखना-चाहिए" tabindex="-1">2026 में मुझे कौन सा मुफ्त इंजन सीखना चाहिए? <a class="header-anchor" href="#_2026-में-मुझे-कौन-सा-मुफ्त-इंजन-सीखना-चाहिए" aria-label="Permalink to &quot;2026 में मुझे कौन सा मुफ्त इंजन सीखना चाहिए?&quot;"></a></h3>
<p>इस आधार पर चुनिए कि आप कितना कोड लिखना चाहते हैं: no-code के लिए GDevelop या कोई AI टूल, programming सीखने के लिए Godot, और अगर आपको JavaScript आता है तो Phaser। ये सभी commercial गेम्स शिप करने के लिए मुफ्त हैं। उसी से शुरू कीजिए जो आपके लिए रुकावट को कम करे, एक छोटा गेम पूरा कीजिए, और वहां से आगे बढ़िए।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे Web गेम इंजन</a> — जैसे-जैसे आप बढ़ें, पूरा मैदान</li>
<li><a href="/hi/guides/best-2d-game-engines-2026.html">2026 के लिए सबसे अच्छे 2D गेम इंजन</a> — अगर आपका पहला गेम 2D है</li>
<li><a href="/hi/guides/make-a-game-with-ai.html">AI के साथ गेम कैसे बनाएं (बिना Coding)</a> — no-code AI वाला रास्ता</li>
<li><a href="/hi/guides/3d-browser-game-without-coding.html">बिना Coding के 3D Browser गेम कैसे बनाएं</a> — शुरुआती लोगों के लिए 3D</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना गेम कैसे लॉन्च करें</a> — अपना पहला गेम publish करना</li>
</ul>
<BuildCta
  title="कुछ भी इंस्टॉल करने से पहले अपना पहला गेम बनाइए"
  desc="यह जानने का सबसे तेज़ तरीका कि गेम बनाना आपके लिए है या नहीं।"
  prompt="Make a simple 3D obstacle course with checkpoints and a finish line" />
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Games के लिए सबसे अच्छी Free 3D Model Sites (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/free-3d-model-sites</link>
            <guid>https://app.cinevva.com/hi/guides/free-3d-model-sites</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में games के लिए सबसे अच्छी free 3D model sites, Kenney, Quaternius, और Poly Haven जैसे CC0 sources से लेकर Sketchfab और Google Poly के उत्तराधिकारियों तक, licenses की साफ समझ के साथ।]]></description>
            <content:encoded><![CDATA[<h1 id="games-के-लिए-सबसे-अच्छी-free-3d-model-sites-2026" tabindex="-1">Games के लिए सबसे अच्छी Free 3D Model Sites (2026) <a class="header-anchor" href="#games-के-लिए-सबसे-अच्छी-free-3d-model-sites-2026" aria-label="Permalink to &quot;Games के लिए सबसे अच्छी Free 3D Model Sites (2026)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>आपको हर चीज़ खुद मॉडल करने या उसके लिए पैसे देने की ज़रूरत नहीं है। बाहर free, game-ready 3D models का एक गहरा भंडार मौजूद है, और इनमें सबसे अच्छे CC0 हैं, यानी आप इन्हें बिना किसी attribution के commercial तौर पर इस्तेमाल कर सकते हैं। यहाँ 2026 में bookmark करने लायक sites हैं, इस हिसाब से क्रम में लगाई गई हैं कि आप इन्हें असल में कैसे इस्तेमाल करेंगे, और licensing को साफ समझाया गया है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/pC937t3NlOA" title="1000s of FREE 3D Game Models (Quaternius CC0 assets)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Quaternius से हज़ारों free CC0 3D game models की एक झलक।</div>
<h2 id="quick-picks" tabindex="-1">Quick picks <a class="header-anchor" href="#quick-picks" aria-label="Permalink to &quot;Quick picks&quot;"></a></h2>
<ul>
<li><strong>Game-ready, एक जैसा style, कोई झंझट नहीं:</strong> Kenney, Quaternius (दोनों CC0)।</li>
<li><strong>Photorealistic models, textures, HDRIs:</strong> Poly Haven (CC0)।</li>
<li><strong>सबसे ज़्यादा variety, जटिल models:</strong> Sketchfab (mixed licenses, हर एक जाँचें)।</li>
<li><strong>Low-poly, Google Poly archive:</strong> Poly Pizza, Icosa Gallery (ज़्यादातर CC-BY)।</li>
</ul>
<h2 id="cc0-के-भरोसेमंद-विकल्प-कोई-attribution-नहीं-commercial-के-लिए-सुरक्षित" tabindex="-1">CC0 के भरोसेमंद विकल्प (कोई attribution नहीं, commercial के लिए सुरक्षित) <a class="header-anchor" href="#cc0-के-भरोसेमंद-विकल्प-कोई-attribution-नहीं-commercial-के-लिए-सुरक्षित" aria-label="Permalink to &quot;CC0 के भरोसेमंद विकल्प (कोई attribution नहीं, commercial के लिए सुरक्षित)&quot;"></a></h2>
<h3 id="kenney" tabindex="-1">Kenney <a class="header-anchor" href="#kenney" aria-label="Permalink to &quot;Kenney&quot;"></a></h3>
<p>शुरुआत करने की सबसे अच्छी जगह। Kenney हज़ारों game-ready assets देता है, सब CC0, जिनमें 3D models, sprites, UI, और audio शामिल हैं, एक जैसे art styles में जिन्हें आप मिला-जुला कर इस्तेमाल कर सकते हैं। सब कुछ games के लिए optimized है। अगर आपको जल्दी एक सुसंगत look चाहिए, तो यहीं से शुरू करें। <a href="https://kenney.nl" target="_blank" rel="noreferrer">kenney.nl</a></p>
<h3 id="quaternius" tabindex="-1">Quaternius <a class="header-anchor" href="#quaternius" aria-label="Permalink to &quot;Quaternius&quot;"></a></h3>
<p>प्यारे, stylized low-poly 3D models, सब CC0, थीम वाले packs में सजाए गए (characters, environments, vehicles, monsters) और साथ में एक universal animation library। उन indie games के लिए एकदम सही जो एक आकर्षक low-poly aesthetic चाहती हैं। <a href="https://quaternius.com" target="_blank" rel="noreferrer">quaternius.com</a></p>
<h3 id="poly-haven" tabindex="-1">Poly Haven <a class="header-anchor" href="#poly-haven" aria-label="Permalink to &quot;Poly Haven&quot;"></a></h3>
<p>Photorealistic 3D models, PBR textures, और HDRIs, सब CC0, कई resolutions और direct downloads के लिए एक no-key API के साथ। 2,000 से ज़्यादा assets और बढ़ते जा रहे हैं। Realistic props, environments, और lighting के लिए सबसे अच्छा। <a href="https://polyhaven.com" target="_blank" rel="noreferrer">polyhaven.com</a></p>
<h2 id="बड़ी-libraries-mixed-licenses-हर-एक-जाँचें" tabindex="-1">बड़ी libraries (mixed licenses, हर एक जाँचें) <a class="header-anchor" href="#बड़ी-libraries-mixed-licenses-हर-एक-जाँचें" aria-label="Permalink to &quot;बड़ी libraries (mixed licenses, हर एक जाँचें)&quot;"></a></h2>
<h3 id="sketchfab" tabindex="-1">Sketchfab <a class="header-anchor" href="#sketchfab" aria-label="Permalink to &quot;Sketchfab&quot;"></a></h3>
<p>सबसे बड़ी 3D model library, लाखों models और download से पहले एक 3D preview के साथ। हर model की license अलग होती है, इसलिए downloadable के साथ CC0 या CC-BY के लिए filter करें। 2026 की एक बात जानने लायक है: Sketchfab का store Epic के Fab में चला गया, और वहाँ सिर्फ CC-BY और Fab Standard content ही migrate हो सकता है। CC0 और दूसरे Creative Commons models Sketchfab पर downloadable रहते हैं, पर इसे एक धीरे-धीरे घटता हुआ CC0 source मानकर चलें, इसलिए जो चाहिए वह ले लें। <a href="https://sketchfab.com" target="_blank" rel="noreferrer">sketchfab.com</a></p>
<h3 id="poly-pizza-और-icosa-gallery" tabindex="-1">Poly Pizza और Icosa Gallery <a class="header-anchor" href="#poly-pizza-और-icosa-gallery" aria-label="Permalink to &quot;Poly Pizza और Icosa Gallery&quot;"></a></h3>
<p>Google Poly 2021 में बंद हो गया, पर इसका low-poly catalog आज भी ज़िंदा है। Poly Pizza पर archived &quot;Poly by Google&quot; collection (करीब 2,294 models) के साथ हज़ारों नए community uploads होस्ट होते हैं, और non-profit Icosa Gallery इस open mission को आगे बढ़ा रही है। ज़्यादातर models CC-BY हैं (creator को credit दें), कुछ CC0 भी। Kenney और Quaternius के look से मेल खाने वाले तेज़, stylized props के लिए बढ़िया। <a href="https://poly.pizza" target="_blank" rel="noreferrer">poly.pizza</a></p>
<h3 id="fab-epic" tabindex="-1">Fab (Epic) <a class="header-anchor" href="#fab-epic" aria-label="Permalink to &quot;Fab (Epic)&quot;"></a></h3>
<p>Epic का unified marketplace, जो Unreal Marketplace, Quixel Megascans, और Sketchfab store का उत्तराधिकारी है। इसकी खास बात है 1,500+ assets का एक हमेशा-free Megascans starter pack और साथ में हर दो हफ्ते में एक बदलता free drop। पूरी Megascans library अब paid है। हर listing पर license जाँचें। <a href="https://www.fab.com" target="_blank" rel="noreferrer">fab.com</a></p>
<h2 id="ai-से-models-generate-करें" tabindex="-1">AI से models generate करें <a class="header-anchor" href="#ai-से-models-generate-करें" aria-label="Permalink to &quot;AI से models generate करें&quot;"></a></h2>
<p>2026 तक, एक model generate करना उसे ढूँढने से तेज़ हो सकता है। Meshy और Tripo जैसे tools text या एक image को एक textured 3D mesh में बदल देते हैं, और Hunyuan3D और TRELLIS.2 जैसे open models आपको self-host करने देते हैं। ज़्यादातर hosted tools commercial rights को एक paid plan के पीछे रखते हैं, इसलिए terms जाँच लें। पूरी जानकारी के लिए हमारी <a href="/hi/guides/ai-asset-generators-games.html">games के लिए सबसे अच्छे AI asset generators</a> guide देखें, और ध्यान दें कि Cinevva में एक built-in <a href="/hi/tools/hunyuan3d.html">3D Model Generator</a> है जो एक photo या text prompt को एक model में बदल देता है।</p>
<h2 id="licenses-30-सेकंड-में" tabindex="-1">Licenses 30 सेकंड में <a class="header-anchor" href="#licenses-30-सेकंड-में" aria-label="Permalink to &quot;Licenses 30 सेकंड में&quot;"></a></h2>
<ul>
<li><strong>CC0:</strong> public domain। Commercial इस्तेमाल करें, बदलें, कोई attribution नहीं। सबसे सुरक्षित विकल्प।</li>
<li><strong>CC-BY:</strong> free commercial इस्तेमाल, पर आपको creator को credit देना होगा।</li>
<li><strong>Royalty-Free:</strong> एक बार भुगतान करें (या free), बिना per-use fees के इस्तेमाल करें, पर आप raw files दोबारा नहीं बेच सकते।</li>
<li><strong>CC-BY-NC / Editorial:</strong> commercial इस्तेमाल नहीं। जो games आप बेचेंगे, उनके लिए इनसे बचें।</li>
</ul>
<p>शक हो तो CC0 को प्राथमिकता दें। पूरी जानकारी के लिए हमारी <a href="/hi/guides/game-asset-licenses.html">game asset licenses guide</a> देखें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="games-के-लिए-free-3d-models-कहाँ-मिलेंगे" tabindex="-1">Games के लिए free 3D models कहाँ मिलेंगे? <a class="header-anchor" href="#games-के-लिए-free-3d-models-कहाँ-मिलेंगे" aria-label="Permalink to &quot;Games के लिए free 3D models कहाँ मिलेंगे?&quot;"></a></h3>
<p>Kenney, Quaternius, और Poly Haven शुरुआत करने की सबसे अच्छी जगहें हैं, सब CC0 हैं इसलिए आप इन्हें बिना किसी attribution के commercial तौर पर इस्तेमाल कर सकते हैं। ज़्यादा variety के लिए, Sketchfab पर mixed licenses के तहत लाखों models हैं, और Poly Pizza archived Google Poly catalog होस्ट करता है। ship करने से पहले हमेशा हर model की license जाँच लें।</p>
<h3 id="_3d-models-के-लिए-cc0-का-क्या-मतलब-है" tabindex="-1">3D models के लिए CC0 का क्या मतलब है? <a class="header-anchor" href="#_3d-models-के-लिए-cc0-का-क्या-मतलब-है" aria-label="Permalink to &quot;3D models के लिए CC0 का क्या मतलब है?&quot;"></a></h3>
<p>CC0 का मतलब है कि model public domain में है: आप इसे commercial games में इस्तेमाल कर सकते हैं, बदल सकते हैं, और आपको creator को credit देने की ज़रूरत नहीं है। यह सबसे उदार और सबसे कम जोखिम वाली license है। Kenney, Quaternius, Poly Haven, और AmbientCG game assets के मुख्य CC0 sources हैं।</p>
<h3 id="क्या-free-3d-models-commercial-games-के-लिए-ठीक-हैं" tabindex="-1">क्या free 3D models commercial games के लिए ठीक हैं? <a class="header-anchor" href="#क्या-free-3d-models-commercial-games-के-लिए-ठीक-हैं" aria-label="Permalink to &quot;क्या free 3D models commercial games के लिए ठीक हैं?&quot;"></a></h3>
<p>ज़्यादातर हैं, पर यह license पर निर्भर करता है। CC0 assets हमेशा सुरक्षित हैं। CC-BY में creator को credit देना ज़रूरी है। CC-BY-NC और सिर्फ-Editorial models उन games में इस्तेमाल नहीं किए जा सकते जो आप बेचते हैं। हर model की license जाँचें, और अपने credits में attribution की शर्तों से बचने के लिए CC0 को प्राथमिकता दें।</p>
<h3 id="क्या-मैं-इसके-बजाय-ai-से-3d-models-generate-कर-सकता-हूँ" tabindex="-1">क्या मैं इसके बजाय AI से 3D models generate कर सकता हूँ? <a class="header-anchor" href="#क्या-मैं-इसके-बजाय-ai-से-3d-models-generate-कर-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं इसके बजाय AI से 3D models generate कर सकता हूँ?&quot;"></a></h3>
<p>हाँ। Meshy और Tripo जैसे tools text या images से textured meshes बनाते हैं, और Hunyuan3D और TRELLIS.2 जैसे open models self-host किए जा सकते हैं। Hosted tools पर commercial rights के लिए आमतौर पर एक paid plan चाहिए, इसलिए terms की पुष्टि कर लें। सही free model ढूँढने से AI generation लगातार तेज़ होती जा रही है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/game-assets-guide.html">Free Game Assets कहाँ मिलेंगे</a> — पूरी 20+ source guide</li>
<li><a href="/hi/guides/sketchfab-polyhaven-kenney.html">Sketchfab vs Poly Haven vs Kenney</a> — तीन टॉप sources आमने-सामने</li>
<li><a href="/hi/guides/ai-asset-generators-games.html">Games के लिए सबसे अच्छे AI Asset Generators</a> — ढूँढने के बजाय generate करें</li>
<li><a href="/hi/guides/game-asset-licenses.html">Game Asset Licenses समझाई गईं</a> — CC0, CC-BY, और बाकी सब</li>
<li><a href="/hi/guides/free-sound-effects-music.html">Games के लिए Free Sound Effects और Music</a> — audio वाला पहलू</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Games के लिए Free Sound Effects और Music (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/free-sound-effects-music</link>
            <guid>https://app.cinevva.com/hi/guides/free-sound-effects-music</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में games के लिए free sound effects और music कहाँ मिलें, Kenney और Freesound जैसे CC0 sources से लेकर Incompetech और Pixabay तक, licenses और attribution की पूरी जानकारी के साथ।]]></description>
            <content:encoded><![CDATA[<h1 id="games-के-लिए-free-sound-effects-और-music-2026" tabindex="-1">Games के लिए Free Sound Effects और Music (2026) <a class="header-anchor" href="#games-के-लिए-free-sound-effects-और-music-2026" aria-label="Permalink to &quot;Games के लिए Free Sound Effects और Music (2026)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>एक game कैसा महसूस होता है, उसका आधा हिस्सा audio होता है, और इसे पाने के लिए आपको budget की ज़रूरत नहीं। sound effects और music दोनों के लिए बढ़िया free sources मौजूद हैं, लेकिन उनकी licenses में काफ़ी फ़र्क होता है, और कुछ मशहूर sites सिर्फ़ non-commercial हैं, जो चुपचाप उस game को डुबो सकती हैं जिसे आप बेचना चाहते हैं। यहाँ बताया गया है कि 2026 में कहाँ देखें और आप असल में क्या ship कर सकते हैं।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/eFSKkNdHh_k" title="Where to get Sound Effects and Music for your Game (Free and Paid)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">game sound effects और music के लिए free और paid sources का एक overview।</div>
<h2 id="सबसे-सुरक्षित-cc0-विकल्प-कोई-attribution-नहीं-commercial-के-लिए-सुरक्षित" tabindex="-1">सबसे सुरक्षित CC0 विकल्प (कोई attribution नहीं, commercial के लिए सुरक्षित) <a class="header-anchor" href="#सबसे-सुरक्षित-cc0-विकल्प-कोई-attribution-नहीं-commercial-के-लिए-सुरक्षित" aria-label="Permalink to &quot;सबसे सुरक्षित CC0 विकल्प (कोई attribution नहीं, commercial के लिए सुरक्षित)&quot;"></a></h2>
<ul>
<li><strong>Kenney audio</strong> — पूरी तरह CC0, कोई attribution नहीं, commercial OK। साफ़ game-ready UI clicks, impacts, और retro/8-bit SFX। सबसे बढ़िया विकल्पों में से एक। <a href="https://kenney.nl/assets/category:Audio" target="_blank" rel="noreferrer">kenney.nl</a></li>
<li><strong>Pixabay Music</strong> — Pixabay Content License के तहत free, commercial use, कोई attribution नहीं। बिना किसी झंझट के अच्छा background music और loops। (आप अकेली file को दोबारा नहीं बेच सकते, लेकिन उसे अपनी game में इस्तेमाल करना ठीक है।) <a href="https://pixabay.com/music/" target="_blank" rel="noreferrer">pixabay.com</a></li>
<li><strong>Sonniss GDC Game Audio bundle</strong> — हर साल जारी होता है, commercial use के लिए royalty-free, कोई attribution नहीं, कई साल के archive में professional SFX के सैकड़ों गीगाबाइट। (एक पाबंदी: कोई AI/ML training नहीं।) <a href="https://sonniss.com/gameaudiogdc" target="_blank" rel="noreferrer">sonniss.com</a></li>
<li><strong>Freesound (CC0 filter)</strong> और <strong>OpenGameArt (CC0 items)</strong> — दोनों CC0 content होस्ट करते हैं; उसके लिए filter करें और आप सुरक्षित हैं।</li>
</ul>
<h2 id="sound-effects" tabindex="-1">Sound effects <a class="header-anchor" href="#sound-effects" aria-label="Permalink to &quot;Sound effects&quot;"></a></h2>
<h3 id="freesound" tabindex="-1">Freesound <a class="header-anchor" href="#freesound" aria-label="Permalink to &quot;Freesound&quot;"></a></h3>
<p>सबसे बड़ी free SFX library, जिसमें लाखों sounds हैं। Licenses हर sound के हिसाब से होती हैं (करीब 72% CC0 हैं, बाकी CC-BY या CC-BY-NC), इसलिए हर file जाँच लें: CC0 को किसी credit की ज़रूरत नहीं, CC-BY को attribution चाहिए। खास एक-बार के effects और field recordings के लिए सबसे अच्छा। <a href="https://freesound.org" target="_blank" rel="noreferrer">freesound.org</a></p>
<h3 id="sonniss-और-kenney" tabindex="-1">Sonniss और Kenney <a class="header-anchor" href="#sonniss-और-kenney" aria-label="Permalink to &quot;Sonniss और Kenney&quot;"></a></h3>
<p>बड़ी मात्रा के लिए, Sonniss का GDC bundle आपको साफ़ royalty-free license के साथ studio-grade SFX देता है। बिना किसी attribution के तेज़, एक जैसे game sounds के लिए, Kenney के CC0 audio packs बिल्कुल सही हैं। इन दोनों से आप एक game के ज़्यादातर soundscape को सुरक्षित तरीके से कवर कर सकते हैं।</p>
<h3 id="zapsplat" tabindex="-1">ZapSplat <a class="header-anchor" href="#zapsplat" aria-label="Permalink to &quot;ZapSplat&quot;"></a></h3>
<p>freemium model पर एक बड़ी SFX library। free tier personal और commercial use के लिए unlimited है लेकिन &quot;ZapSplat&quot; का credit देना ज़रूरी है; कुछ sounds CC0 या CC-BY हैं। paid Gold tier attribution हटा देता है और WAV खोल देता है। जब आप credit शामिल कर सकते हों तब अच्छा। <a href="https://www.zapsplat.com" target="_blank" rel="noreferrer">zapsplat.com</a></p>
<h2 id="music" tabindex="-1">Music <a class="header-anchor" href="#music" aria-label="Permalink to &quot;Music&quot;"></a></h2>
<h3 id="incompetech-kevin-macleod" tabindex="-1">Incompetech (Kevin MacLeod) <a class="header-anchor" href="#incompetech-kevin-macleod" aria-label="Permalink to &quot;Incompetech (Kevin MacLeod)&quot;"></a></h3>
<p>CC-BY 4.0 के तहत 2,000+ पूरे music tracks, free अगर आप ज़रूरी attribution line शामिल करें (&quot;Music by Kevin MacLeod... Licensed under Creative Commons: By Attribution 4.0&quot;)। हर track के लिए no-attribution license खरीदी जा सकती है। कई तरह के moods में पूरे background tracks के लिए सबसे अच्छा। <a href="https://incompetech.com" target="_blank" rel="noreferrer">incompetech.com</a></p>
<h3 id="pixabay-music-और-uppbeat" tabindex="-1">Pixabay Music और Uppbeat <a class="header-anchor" href="#pixabay-music-और-uppbeat" aria-label="Permalink to &quot;Pixabay Music और Uppbeat&quot;"></a></h3>
<p><strong>Pixabay Music</strong> बिना झंझट वाला विकल्प है: free, commercial, कोई attribution नहीं। <strong>Uppbeat</strong> freemium है, जिसमें एक free tier (10 downloads/महीना, attribution ज़रूरी, सीमित commercial use) और एक paid tier है जो इन पाबंदियों को हटा देता है, इसलिए किसी shipped commercial game के लिए यह तब तक कमज़ोर है जब तक आप upgrade न करें। <a href="https://uppbeat.io" target="_blank" rel="noreferrer">uppbeat.io</a></p>
<h3 id="free-music-archive-और-opengameart" tabindex="-1">Free Music Archive और OpenGameArt <a class="header-anchor" href="#free-music-archive-और-opengameart" aria-label="Permalink to &quot;Free Music Archive और OpenGameArt&quot;"></a></h3>
<p><strong>FMA</strong> के पास एक बड़ा cross-genre catalog है, लेकिन licenses में काफ़ी फ़र्क है (कई non-commercial हैं), इसलिए हर track ध्यान से जाँचें। <strong>OpenGameArt</strong> के पास CC0, CC-BY, या GPL के तहत indie/RPG music और chiptune है (GPL audio कानूनी तौर पर उलझन भरा है, इसलिए बाकी को तरजीह दें)। <a href="https://freemusicarchive.org" target="_blank" rel="noreferrer">freemusicarchive.org</a></p>
<h2 id="license-के-जाल-से-बचें" tabindex="-1">License के जाल से बचें <a class="header-anchor" href="#license-के-जाल-से-बचें" aria-label="Permalink to &quot;License के जाल से बचें&quot;"></a></h2>
<p>दो मशहूर sources commercial games के लिए सुरक्षित नहीं हैं:</p>
<ul>
<li><strong>BBC Sound Effects archive</strong> free है लेकिन इसकी RemArc license सिर्फ़ non-commercial है। इसे prototypes और student projects के लिए इस्तेमाल करें, उन games के लिए नहीं जिन्हें आप बेचते हैं।</li>
<li><strong>Internet Archive</strong> का audio हर item के हिसाब से बहुत अलग होता है, कुछ बिना rightsholder की मंज़ूरी के अपलोड किए गए हैं। हर item पर rights field जाँचें; यहाँ यह सबसे ज़्यादा जोखिम वाला source है।</li>
</ul>
<h2 id="ai-से-audio-generate-करें" tabindex="-1">AI से audio generate करें <a class="header-anchor" href="#ai-से-audio-generate-करें" aria-label="Permalink to &quot;AI से audio generate करें&quot;"></a></h2>
<p>आप SFX और music generate भी कर सकते हैं। Stable Audio (जिसमें एक अलग open sound-effects model शामिल है) और ACE-Step जैसे open models commercial-friendly licenses के साथ sound और music दोनों को कवर करते हैं, जबकि ElevenLabs सबसे मज़बूत hosted विकल्प है (paid plans पर commercial rights)। हमारी <a href="/hi/guides/frontier-gen-ai-models.html">open generative AI models गाइड</a> इन्हें कवर करती है, और Cinevva में music generation पहले से मौजूद है।</p>
<h2 id="license-त्वरित-संदर्भ" tabindex="-1">License त्वरित संदर्भ <a class="header-anchor" href="#license-त्वरित-संदर्भ" aria-label="Permalink to &quot;License त्वरित संदर्भ&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Source</th>
<th>License</th>
<th>Attribution</th>
<th>Commercial-safe</th>
</tr>
</thead>
<tbody>
<tr>
<td>Kenney audio</td>
<td>CC0</td>
<td>नहीं</td>
<td>✅</td>
</tr>
<tr>
<td>Pixabay Music</td>
<td>Pixabay License</td>
<td>नहीं</td>
<td>✅</td>
</tr>
<tr>
<td>Sonniss GDC</td>
<td>Royalty-free</td>
<td>नहीं</td>
<td>✅</td>
</tr>
<tr>
<td>Freesound</td>
<td>हर sound के हिसाब से (ज़्यादातर CC0)</td>
<td>निर्भर करता है</td>
<td>✅ (हर एक जाँचें)</td>
</tr>
<tr>
<td>Incompetech</td>
<td>CC-BY 4.0</td>
<td>हाँ</td>
<td>✅</td>
</tr>
<tr>
<td>ZapSplat (free)</td>
<td>Standard</td>
<td>हाँ</td>
<td>✅</td>
</tr>
<tr>
<td>Uppbeat (free)</td>
<td>Free tier</td>
<td>हाँ</td>
<td>सीमित</td>
</tr>
<tr>
<td>BBC Sound Effects</td>
<td>RemArc</td>
<td>लागू नहीं</td>
<td>❌ non-commercial</td>
</tr>
<tr>
<td>Internet Archive</td>
<td>अलग-अलग</td>
<td>अलग-अलग</td>
<td>⚠️ हर एक जाँचें</td>
</tr>
</tbody>
</table>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="games-के-लिए-free-sound-effects-कहाँ-से-मिल-सकते-हैं" tabindex="-1">Games के लिए free sound effects कहाँ से मिल सकते हैं? <a class="header-anchor" href="#games-के-लिए-free-sound-effects-कहाँ-से-मिल-सकते-हैं" aria-label="Permalink to &quot;Games के लिए free sound effects कहाँ से मिल सकते हैं?&quot;"></a></h3>
<p>Freesound के पास सबसे बड़ी library है (licenses हर sound के हिसाब से अलग, ज़्यादातर CC0), Kenney बिना किसी attribution के पूरी तरह CC0 audio packs देता है, और Sonniss GDC bundle आपको बड़ी मात्रा में professional royalty-free SFX देता है। commercial games के लिए, CC0 या साफ़ तौर पर royalty-free sources को तरजीह दें और हर file की license जाँचें।</p>
<h3 id="games-के-लिए-सबसे-अच्छा-free-music-कौन-सा-है" tabindex="-1">Games के लिए सबसे अच्छा free music कौन सा है? <a class="header-anchor" href="#games-के-लिए-सबसे-अच्छा-free-music-कौन-सा-है" aria-label="Permalink to &quot;Games के लिए सबसे अच्छा free music कौन सा है?&quot;"></a></h3>
<p>बिना attribution वाले music के लिए, Pixabay Music सबसे आसान commercial-safe विकल्प है। Incompetech CC-BY के तहत 2,000+ tracks देता है अगर आप credit line शामिल करें। Free Music Archive में बहुत विविधता है लेकिन मिली-जुली licenses हैं, इसलिए हर track जाँचें। commercial games के लिए BBC Sound Effects से बचें, क्योंकि इसकी license सिर्फ़ non-commercial है।</p>
<h3 id="क्या-मुझे-free-game-audio-का-credit-देना-होगा" tabindex="-1">क्या मुझे free game audio का credit देना होगा? <a class="header-anchor" href="#क्या-मुझे-free-game-audio-का-credit-देना-होगा" aria-label="Permalink to &quot;क्या मुझे free game audio का credit देना होगा?&quot;"></a></h3>
<p>यह license पर निर्भर करता है। CC0 और Pixabay-licensed audio को किसी credit की ज़रूरत नहीं। CC-BY (जैसे Incompetech) और free-tier ZapSplat या Uppbeat के लिए attribution ज़रूरी है। CC-BY-NC और BBC RemArc license commercial use को पूरी तरह मना करती हैं। अपनी game में attribution की ज़रूरतों से बचने के लिए CC0 को तरजीह दें।</p>
<h3 id="क्या-मैं-game-sound-और-music-generate-करने-के-लिए-ai-इस्तेमाल-कर-सकता-हूँ" tabindex="-1">क्या मैं game sound और music generate करने के लिए AI इस्तेमाल कर सकता हूँ? <a class="header-anchor" href="#क्या-मैं-game-sound-और-music-generate-करने-के-लिए-ai-इस्तेमाल-कर-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं game sound और music generate करने के लिए AI इस्तेमाल कर सकता हूँ?&quot;"></a></h3>
<p>हाँ। Stable Audio (एक अलग sound-effects model के साथ) और ACE-Step जैसे open models commercial-friendly licenses के साथ audio generate करते हैं, और ElevenLabs paid plans पर commercial rights के साथ एक मज़बूत hosted विकल्प है। commercial तौर पर कुछ भी ship करने से पहले model की output-rights terms की पुष्टि कर लें।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/game-assets-guide.html">Free Game Assets कहाँ मिलें</a> — पूरी asset गाइड</li>
<li><a href="/hi/guides/free-3d-model-sites.html">Games के लिए सबसे अच्छी Free 3D Model Sites</a> — visual पक्ष</li>
<li><a href="/hi/guides/game-asset-licenses.html">Game Asset Licenses समझाई गईं</a> — CC0, CC-BY, royalty-free</li>
<li><a href="/hi/guides/frontier-gen-ai-models.html">Games के लिए सबसे अच्छे Open-Source Generative AI Models</a> — AI audio generation</li>
<li><a href="/hi/tutorials/tone-js-game-audio.html">Tone.js game audio</a> — browser में audio चलाना</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[itch.io पर ज़्यादा प्लेज़ कैसे पाएँ (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/get-more-plays-itch-io</link>
            <guid>https://app.cinevva.com/hi/guides/get-more-plays-itch-io</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[itch.io पर ज़्यादा प्लेज़ और डाउनलोड पाने की एक व्यावहारिक 2026 गाइड, जिसमें बताया गया है कि discovery कैसे काम करता है, tags, एक खेलने लायक web build, devlogs, game jams, और प्लेटफ़ॉर्म के बाहर से आने वाला ट्रैफ़िक।]]></description>
            <content:encoded><![CDATA[<h1 id="itch-io-पर-ज़्यादा-प्लेज़-कैसे-पाएँ-2026" tabindex="-1">itch.io पर ज़्यादा प्लेज़ कैसे पाएँ (2026) <a class="header-anchor" href="#itch-io-पर-ज़्यादा-प्लेज़-कैसे-पाएँ-2026" aria-label="Permalink to &quot;itch.io पर ज़्यादा प्लेज़ कैसे पाएँ (2026)&quot;"></a></h1>
<p><em>आख़िरी बार अपडेट किया गया: जून 2026.</em></p>
<p>itch.io पर अपलोड करना आसान है। खेला जाना ही मुश्किल हिस्सा है। itch.io आपको वैसे audience नहीं थमा देता जैसा कोई बड़ा portal दे सकता है, इसलिए प्लेज़ एक मज़बूत पेज, एक खेलने लायक web build, devlogs, jams, और उस ट्रैफ़िक से आते हैं जो आप खुद लाते हैं। यहाँ बताया गया है कि 2026 में असल में क्या फ़र्क डालता है, और यह इस बात पर टिका है कि itch.io का discovery सच में कैसे काम करता है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/dSLhu2ufSvc" title="How to Get more Views & Downloads on Itch.io — Brani_Dev" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">itch.io पर ज़्यादा views और downloads पाने की व्यावहारिक रणनीतियाँ।</div>
<h2 id="itch-io-का-discovery-असल-में-कैसे-काम-करता-है" tabindex="-1">itch.io का discovery असल में कैसे काम करता है <a class="header-anchor" href="#itch-io-का-discovery-असल-में-कैसे-काम-करता-है" aria-label="Permalink to &quot;itch.io का discovery असल में कैसे काम करता है&quot;"></a></h2>
<p>अपनी मेहनत को सही दिशा देने के लिए कुछ बातें जान लें:</p>
<ul>
<li><strong>Popular</strong> sort एक अपारदर्शी algorithm है जो पुरानी और हाल की गतिविधि को मिलाता है, और हाल की गतिविधि को ज़्यादा वज़न देता है। पक्के तौर पर इसमें organic views, downloads, और plays शामिल हैं। इनमें से किसी को भी नकली बनाने पर आप delist हो जाते हैं।</li>
<li><strong>Most Recent</strong> आपको पहली बार पब्लिश करते समय एक बार जगह देता है; आप republish करके इसे दोबारा नहीं छेड़ सकते (itch आपकी publish date नहीं बदलेगा)।</li>
<li><strong>फ्रंट पेज इंसानों द्वारा क्यूरेट किया जाता है</strong>, स्टाफ़ इसे हाथ से चुनता है, यह algorithmic नहीं है। आप जुगाड़ से इस पर नहीं पहुँच सकते, लेकिन एक बढ़िया पेज और असली traction आपकी संभावनाएँ बढ़ाते हैं।</li>
<li>इंडेक्स होने के लिए आपका पेज public होना चाहिए, उसमें एक cover image होना चाहिए, और वह खेलने या डाउनलोड करने लायक होना चाहिए। खाली placeholder पेज इंडेक्स नहीं होते, और नए seller अकाउंट एक छोटे review queue से गुज़रते हैं।</li>
</ul>
<p>व्यावहारिक निचोड़ यह है: itch असली, शुरुआत में ही जमी हुई गतिविधि और एक पूरे पेज को इनाम देता है। यह तिकड़मों को इनाम नहीं देता।</p>
<h2 id="इसे-browser-में-खेलने-लायक-बनाएँ" tabindex="-1">इसे browser में खेलने लायक बनाएँ <a class="header-anchor" href="#इसे-browser-में-खेलने-लायक-बनाएँ" aria-label="Permalink to &quot;इसे browser में खेलने लायक बनाएँ&quot;"></a></h2>
<p>यह पेज पर किया जाने वाला सबसे असरदार कदम है। एक HTML5 build अपलोड करें (एक ZIP जिसमें <code>index.html</code> हो) ताकि लोग डाउनलोड करने के बजाय तुरंत खेल सकें। Browser में खेलने लायक गेम download-only गेम की तुलना में कहीं ज़्यादा engagement पाते हैं, क्योंकि इसमें कोई रुकावट नहीं होती; itch के फ़ाउंडर ने कहीं ज़्यादा conversion rate की बात कही है, और analyst डेटा browser गेम को लगभग 3x engagement पर रखता है, जहाँ अक्सर आधे page views प्लेज़ में बदल जाते हैं। अगर आपका engine web पर export कर सकता है, तो कर दें।</p>
<h2 id="पेज-को-दुरुस्त-करें" tabindex="-1">पेज को दुरुस्त करें <a class="header-anchor" href="#पेज-को-दुरुस्त-करें" aria-label="Permalink to &quot;पेज को दुरुस्त करें&quot;"></a></h2>
<ul>
<li><strong>Cover image:</strong> ज़रूरी है, सुझाया गया साइज़ 630x500। यह आपके पेज का सबसे अहम ग्राफ़िक है, और animated GIF cover समर्थित हैं और इनकी सलाह भी दी जाती है। ऐसी movement से शुरुआत करें जो गेम का hook दिखाए।</li>
<li><strong>Screenshots और एक trailer/GIF:</strong> itch video embeds (YouTube, Vimeo) को screenshots के ऊपर दिखाता है, और गेम के लिए तो ख़ासकर इसकी सलाह देता है। बताएँ नहीं, दिखाएँ।</li>
<li><strong>छोटा description:</strong> यह हर जगह listings में दिखता है, इसलिए इसे एक साफ़, ख़ास hook बनाएँ।</li>
</ul>
<h2 id="tags-और-metadata" tabindex="-1">Tags और metadata <a class="header-anchor" href="#tags-और-metadata" aria-label="Permalink to &quot;Tags और metadata&quot;"></a></h2>
<p>अपने खुद के tags गढ़ने के बजाय सुझाए गए tags इस्तेमाल करें, synonyms से बचें, और tag-stuffing न करें, जिससे आप browse से हटा दिए जाते हैं। आप 10 tags तक और एक genre इस्तेमाल कर सकते हैं। किसी platform (Windows/Mac/Linux) पर तभी टिक करें जब आपके पास उसके लिए एक जाँचा हुआ build हो; ग़लत वर्गीकरण करने पर आप delist हो जाते हैं।</p>
<h2 id="devlogs-का-इस्तेमाल-करें" tabindex="-1">Devlogs का इस्तेमाल करें <a class="header-anchor" href="#devlogs-का-इस्तेमाल-करें" aria-label="Permalink to &quot;Devlogs का इस्तेमाल करें&quot;"></a></h2>
<p>एक devlog पब्लिश करना आपके सभी followers के feeds और साइट-भर के devlog feed में जाता है, जो आपके followers से भी आगे तक पहुँचता है। जब आप कोई नया project रिलीज़ करते हैं या किसी को sale पर लगाते हैं, तब भी followers को सूचना मिलती है। तो devlogs पोस्ट करने से followers बढ़ते हैं, और उन followers को आपकी अगली launch पर पिंग मिलती है। devlogs को एक बार-बार काम आने वाले ट्रैफ़िक और audience बनाने के औज़ार की तरह लें, न कि कोई बाद में सोचने वाली चीज़।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/l9TZl_0Gqe4" title="Why Your itch.io Game Gets 0 Downloads (And How to Fix It) — KiriSoft Games" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">itch.io गेम को क्यों कोई downloads नहीं मिलते, इसकी आम वजहें और उनके हल।</div>
<h2 id="game-jams-में-हिस्सा-लें-असली-discovery-engine" tabindex="-1">Game jams में हिस्सा लें (असली discovery engine) <a class="header-anchor" href="#game-jams-में-हिस्सा-लें-असली-discovery-engine" aria-label="Permalink to &quot;Game jams में हिस्सा लें (असली discovery engine)&quot;"></a></h2>
<p>itch.io पर organic discovery का सबसे बड़ा चालक jams ही हैं, इनके लिए लाखों गेम बनाए जाते हैं। एक jam आपको एक बना-बनाया audience, एक deadline, और एक reciprocity mechanic देता है: अगर आप दूसरी entries को rate और comment करते हैं (और अपनी खुद की entry जमा कर चुके हों), तो आपके comments के नीचे आपके गेम का एक link अपने-आप जुड़ जाता है, जो प्लेज़ को वापस आप तक खींचता है। GMTK जैसे बड़े jams में हज़ारों की तादाद में लोग हिस्सा लेते हैं। jams जादुई तरीके से Popular algorithm को बढ़ावा नहीं देंगे, लेकिन जब और कुछ काम न कर रहा हो, तब ये आपके गेम पर असली नज़रें ले आते हैं।</p>
<h2 id="प्लेज़-के-लिए-pricing" tabindex="-1">प्लेज़ के लिए pricing <a class="header-anchor" href="#प्लेज़-के-लिए-pricing" aria-label="Permalink to &quot;प्लेज़ के लिए pricing&quot;"></a></h2>
<p>itch की pricing हमेशा pay-what-you-want होती है: एक तय क़ीमत बस एक न्यूनतम होती है, और ख़रीदार उससे ज़्यादा दे सकते हैं (ख़र्च किए गए पैसे का लगभग 30% न्यूनतम से ऊपर का अतिरिक्त होता है)। ज़्यादा से ज़्यादा प्लेज़ के लिए, free या pay-what-you-want सारी रुकावट हटा देता है और फिर भी fans को tip देने देता है। ध्यान रखें कि HTML5 गेम payments सिर्फ़ donations के रूप में ले सकते हैं। हमेशा चलने वाली sales से बचें, जिन्हें itch सच में sale पर न मानते हुए deindex कर सकता है।</p>
<h2 id="अपना-खुद-का-ट्रैफ़िक-लाएँ-जहाँ-से-ज़्यादातर-प्लेज़-आते-हैं" tabindex="-1">अपना खुद का ट्रैफ़िक लाएँ (जहाँ से ज़्यादातर प्लेज़ आते हैं) <a class="header-anchor" href="#अपना-खुद-का-ट्रैफ़िक-लाएँ-जहाँ-से-ज़्यादातर-प्लेज़-आते-हैं" aria-label="Permalink to &quot;अपना खुद का ट्रैफ़िक लाएँ (जहाँ से ज़्यादातर प्लेज़ आते हैं)&quot;"></a></h2>
<p>itch featured गेम को तेज़ी से बदलता रहता है और Steam की तरह discovery को टिकाए नहीं रखता, इसलिए असली प्लेज़ बाहरी ट्रैफ़िक से आते हैं:</p>
<ul>
<li><strong>Streamers और YouTubers</strong> सबसे असरदार channel हैं; एक अकेला creator महीनों की दूसरी मेहनत से ज़्यादा installs ला सकता है, और वे मुफ़्त demos के लिए itch को सक्रिय रूप से खंगालते हैं।</li>
<li>असल gameplay clips का <strong>short-form video</strong> (TikTok, Reels, Shorts) अब indie virality का एक मुख्य चालक है।</li>
<li><strong>Reddit</strong> (r/IndieGaming, r/playmygame, और ऐसे ही), जहाँ community posts और self-promo का लगभग 9-से-1 का नियम मानें।</li>
<li>playtesters और retention के लिए <strong>Discord</strong>, और GIFs के साथ X #screenshotsaturday।</li>
</ul>
<p>बिना बजट वाली व्यापक रणनीति के लिए, देखें <a href="/hi/guides/promote-indie-game-no-budget.html">बिना बजट के indie गेम को कैसे promote करें</a>।</p>
<h2 id="आम-ग़लतियाँ" tabindex="-1">आम ग़लतियाँ <a class="header-anchor" href="#आम-ग़लतियाँ" aria-label="Permalink to &quot;आम ग़लतियाँ&quot;"></a></h2>
<p>जब web build मुमकिन हो तब download-only रखना, कमज़ोर या ग़ायब cover, कोई trailer या GIF न होना, पतले descriptions, ख़राब या ठूँसे हुए tags, पब्लिश करके चुप हो जाना (कोई devlogs नहीं), यह उम्मीद करना कि algorithm या featuring काम कर देगा, कोई demo न होना, और metrics को नकली बनाना (जिससे आप delist हो जाते हैं)। इन्हें पहले ठीक करें; ये मुफ़्त हैं।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="itch-io-पर-मैं-ज़्यादा-प्लेज़-कैसे-पाऊँ" tabindex="-1">itch.io पर मैं ज़्यादा प्लेज़ कैसे पाऊँ? <a class="header-anchor" href="#itch-io-पर-मैं-ज़्यादा-प्लेज़-कैसे-पाऊँ" aria-label="Permalink to &quot;itch.io पर मैं ज़्यादा प्लेज़ कैसे पाऊँ?&quot;"></a></h3>
<p>एक browser में खेलने लायक HTML5 build अपलोड करें (यह downloads से कहीं ज़्यादा engagement पाता है), एक animated cover और trailer के साथ एक मज़बूत पेज बनाएँ, सटीक सुझाए गए tags इस्तेमाल करें, followers तक पहुँचने के लिए devlogs पोस्ट करें, बने-बनाए discovery के लिए game jams में हिस्सा लें, और streamers, short-form video, और communities से बाहरी ट्रैफ़िक लाएँ। itch असली गतिविधि और एक पूरे पेज को इनाम देता है, तिकड़मों को नहीं।</p>
<h3 id="क्या-itch-io-आपके-गेम-को-आपके-लिए-promote-करता-है" tabindex="-1">क्या itch.io आपके गेम को आपके लिए promote करता है? <a class="header-anchor" href="#क्या-itch-io-आपके-गेम-को-आपके-लिए-promote-करता-है" aria-label="Permalink to &quot;क्या itch.io आपके गेम को आपके लिए promote करता है?&quot;"></a></h3>
<p>ज़्यादा नहीं। फ्रंट पेज को स्टाफ़ हाथ से क्यूरेट करता है, और Popular sort असली हाल की गतिविधि के आधार पर तेज़ी से बदलता रहता है। itch आपको औज़ार और एक बुनियादी audience देता है, लेकिन टिकी हुई discovery आपके किए से आती है: एक खेलने लायक build, devlogs, jams, और वह ट्रैफ़िक जो आप streamers, video, और communities से लाते हैं।</p>
<h3 id="क्या-itch-io-पर-web-गेम-downloads-से-ज़्यादा-प्लेज़-पाते-हैं" tabindex="-1">क्या itch.io पर web गेम downloads से ज़्यादा प्लेज़ पाते हैं? <a class="header-anchor" href="#क्या-itch-io-पर-web-गेम-downloads-से-ज़्यादा-प्लेज़-पाते-हैं" aria-label="Permalink to &quot;क्या itch.io पर web गेम downloads से ज़्यादा प्लेज़ पाते हैं?&quot;"></a></h3>
<p>हाँ, काफ़ी ज़्यादा। Browser में खेलने लायक गेम डाउनलोड करने की रुकावट हटा देते हैं, और डेटा बताता है कि इनमें download-only गेम से लगभग 3x engagement होता है, जहाँ page views का एक बड़ा हिस्सा प्लेज़ में बदलता है। अगर आपका engine HTML5 पर export करता है, तो एक खेलने लायक web build पब्लिश करना ज़्यादा प्लेज़ के लिए अकेला सबसे अच्छा कदम है।</p>
<h3 id="क्या-प्लेज़-पाने-के-लिए-game-jams-फ़ायदेमंद-हैं" tabindex="-1">क्या प्लेज़ पाने के लिए game jams फ़ायदेमंद हैं? <a class="header-anchor" href="#क्या-प्लेज़-पाने-के-लिए-game-jams-फ़ायदेमंद-हैं" aria-label="Permalink to &quot;क्या प्लेज़ पाने के लिए game jams फ़ायदेमंद हैं?&quot;"></a></h3>
<p>बहुत। itch.io पर organic discovery का सबसे बड़ा चालक jams ही हैं: ये आपको एक बना-बनाया audience और एक deadline देते हैं, और दूसरी entries को rate करने पर आपका गेम अपने-आप वापस link हो जाता है, जिससे प्लेज़ खिंचकर आते हैं। ये सीधे algorithm को बढ़ावा नहीं देंगे, लेकिन जब आपके पास और कोई audience न हो, तब ये आपके गेम पर असली players ले आते हैं।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना गेम कैसे लॉन्च करें</a> — सेटअप की बुनियादी बातें</li>
<li><a href="/hi/guides/publish-web-game.html">2026 में web गेम पब्लिश करने की सबसे अच्छी जगहें</a> — itch.io बनाम portals</li>
<li><a href="/hi/guides/promote-indie-game-no-budget.html">बिना बजट के indie गेम को कैसे promote करें</a> — व्यापक रणनीति</li>
<li><a href="/hi/guides/game-jams-hackathons.html">Game Jams और Hackathons</a> — किन jams में हिस्सा लेना है यह चुनना</li>
<li><a href="/hi/guides/steam-next-fest-strategy.html">Steam Next Fest रणनीति</a> — अगर आप इसे Steam पर भी ले जाएँ</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 में AI से गेम कैसे बनाएं (कोडिंग की जरूरत नहीं)]]></title>
            <link>https://app.cinevva.com/hi/guides/make-a-game-with-ai</link>
            <guid>https://app.cinevva.com/hi/guides/make-a-game-with-ai</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[AI और बिना कोडिंग के गेम बनाने की 2026 की स्टेप-बाय-स्टेप गाइड, अपना पहला prompt लिखने से लेकर assets जनरेट करने, iterate करने और खेलने लायक गेम पब्लिश करने तक।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-ai-से-गेम-कैसे-बनाएं-कोडिंग-की-जरूरत-नहीं" tabindex="-1">2026 में AI से गेम कैसे बनाएं (कोडिंग की जरूरत नहीं) <a class="header-anchor" href="#_2026-में-ai-से-गेम-कैसे-बनाएं-कोडिंग-की-जरूरत-नहीं" aria-label="Permalink to &quot;2026 में AI से गेम कैसे बनाएं (कोडिंग की जरूरत नहीं)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>कुछ साल पहले तक गेम बनाने का मतलब था कि कुछ भी खेलने लायक हाथ आने से पहले आपको एक engine, एक प्रोग्रामिंग भाषा और एक आर्ट पाइपलाइन सीखनी पड़ती थी। 2026 में आप सादे अंग्रेजी में एक गेम का वर्णन कर सकते हैं और मिनटों में एक काम करता वर्जन पा सकते हैं। रचनात्मक फैसले अब भी आप ही करते हैं, लेकिन AI बाकी सब संभाल लेता है: movement, collisions, physics, placeholder आर्ट और साउंड।</p>
<p>यह गाइड बिना कोडिंग के पूरी प्रक्रिया समझाती है, आपके पहले prompt से लेकर पब्लिश किए गए गेम तक। उदाहरण एक browser-आधारित AI game creator का उपयोग करते हैं, लेकिन यह वर्कफ्लो ज्यादातर prompt-to-game tools पर लागू होता है।</p>
<h2 id="आपको-क्या-चाहिए" tabindex="-1">आपको क्या चाहिए <a class="header-anchor" href="#आपको-क्या-चाहिए" aria-label="Permalink to &quot;आपको क्या चाहिए&quot;"></a></h2>
<p>ज्यादा कुछ नहीं। एक browser, एक आइडिया और एक tool। आपको कोई engine इंस्टॉल करने, GPU या कोई आर्ट की जरूरत नहीं। अगर आप पहले tool चुनना चाहते हैं, तो हमारी <a href="/hi/guides/ai-game-generators-2026.html">AI गेम जनरेटर की तुलना</a> देखें; और अगर आप बस शुरू करना चाहते हैं, तो अभी <a href="/create.html?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=make_game_with_ai">एक creator खोलकर एक आइडिया टाइप कर सकते हैं</a>।</p>
<h2 id="स्टेप-1-एक-साफ-छोटे-आइडिया-से-शुरू-करें" tabindex="-1">स्टेप 1: एक साफ, छोटे आइडिया से शुरू करें <a class="header-anchor" href="#स्टेप-1-एक-साफ-छोटे-आइडिया-से-शुरू-करें" aria-label="Permalink to &quot;स्टेप 1: एक साफ, छोटे आइडिया से शुरू करें&quot;"></a></h2>
<p>शुरुआती लोग सबसे आम गलती यही करते हैं कि &quot;multiplayer वाला एक open-world RPG&quot; के लिए prompt देते हैं। AI tools सबसे अच्छे नतीजे एक छोटे, खास core से बनाते हैं जिसे आप बाद में बढ़ा सकते हैं। तीन चीजें बताएं:</p>
<ul>
<li><strong>गेम किस तरह का है।</strong> Platformer, racer, shooter, puzzle, survival, cozy sim।</li>
<li><strong>एक चीज जो इसे आपका बनाती है।</strong> एक glow, नियमों में एक मोड़, कोई सेटिंग।</li>
<li><strong>एक लक्ष्य।</strong> प्लेयर क्या करने की कोशिश कर रहा है।</li>
</ul>
<p>&quot;एक first-person parkour गेम जहां आप तैरते हुए द्वीपों पर एक टाइमर के खिलाफ दौड़ते हैं&quot; एक &quot;मजेदार 3D एडवेंचर&quot; से कहीं बेहतर शुरुआती prompt है। पहला AI को बनाने के लिए एक आकार देता है; दूसरा उसे अंदाजा लगाने पर मजबूर करता है।</p>
<h2 id="स्टेप-2-अपना-पहला-prompt-लिखें" tabindex="-1">स्टेप 2: अपना पहला prompt लिखें <a class="header-anchor" href="#स्टेप-2-अपना-पहला-prompt-लिखें" aria-label="Permalink to &quot;स्टेप 2: अपना पहला prompt लिखें&quot;"></a></h2>
<p>इसे एक या दो वाक्य तक रखें। आप कोई स्पेक नहीं लिख रहे, आप एक बातचीत शुरू कर रहे हैं। एक अच्छा पहला prompt genre, लक्ष्य और अहसास बताता है:</p>
<blockquote>
<p>एक top-down zombie survival गेम बनाओ जिसमें एक flashlight हो जो सिर्फ एक पतली cone को रोशन करे, सीमित ammo हो, और waves जो और मुश्किल होती जाएं।</p>
</blockquote>
<p>फिर tool को बनाने दें। आपको एक खेलने लायक पहला वर्जन मिलेगा, अक्सर अधूरा, और यही आप चाहते हैं, क्योंकि असली काम iteration है। अगर एक खाली बॉक्स डराने वाला लगे, तो किसी <a href="/hi/guides/vibe-coding-game-prompts.html">तैयार prompt</a> से शुरू करें और एक शब्द बदल दें।</p>
<h2 id="स्टेप-3-उससे-बात-करके-iterate-करें" tabindex="-1">स्टेप 3: उससे बात करके iterate करें <a class="header-anchor" href="#स्टेप-3-उससे-बात-करके-iterate-करें" aria-label="Permalink to &quot;स्टेप 3: उससे बात करके iterate करें&quot;"></a></h2>
<p>असल में गेम यहीं बनते हैं। पहला वर्जन खेलें, वह एक चीज ढूंढें जो आपको सबसे ज्यादा खटकती है, और सिर्फ उसी एक बदलाव के लिए कहें। छोटी, खास मांगें बड़ी अस्पष्ट मांगों से बेहतर होती हैं:</p>
<ul>
<li>&quot;प्लेयर को तेज चलाओ और ऊंचा कूदने दो।&quot;</li>
<li>&quot;दुश्मन बहुत आक्रामक हैं, उन्हें धीमा करो और उनकी health कम करो।&quot;</li>
<li>&quot;ऊपर दाईं ओर एक score counter और एक game-over स्क्रीन जोड़ो।&quot;</li>
</ul>
<p>एक चीज बदलें, खेलें, दोहराएं। अगर किसी बदलाव से हालत बिगड़े, तो उससे undo या revert करने के लिए कहें। इसे कोडिंग नहीं, डायरेक्टिंग की तरह मानें: आप बताते हैं कि आप कैसा नतीजा चाहते हैं और नतीजे को परखते हैं।</p>
<h2 id="स्टेप-4-जो-assets-चाहिए-वे-जनरेट-करें" tabindex="-1">स्टेप 4: जो assets चाहिए वे जनरेट करें <a class="header-anchor" href="#स्टेप-4-जो-assets-चाहिए-वे-जनरेट-करें" aria-label="Permalink to &quot;स्टेप 4: जो assets चाहिए वे जनरेट करें&quot;"></a></h2>
<p>आधुनिक AI game tools मांग पर आर्ट और ऑडियो जनरेट करते हैं, इसलिए आप ग्रे बॉक्स में अटके नहीं रहते। tool के हिसाब से आप 3D models, textures, sprites, म्यूजिक और sound effects मांग सकते हैं, या बिल्ट-इन फ्री asset लाइब्रेरी से ले सकते हैं। जो मूड के हिसाब से फिट हो वह मांगें: &quot;प्लेयर को एक low-poly रोबोट model दो,&quot; &quot;उत्साह भरा synth म्यूजिक जोड़ो,&quot; &quot;एक रेगिस्तानी skybox इस्तेमाल करो।&quot; अगर आपके tool में CC0 asset लाइब्रेरी है, तो जो कुछ भी आप पब्लिश करने की योजना बना रहे हैं उसके लिए वह सबसे सुरक्षित स्रोत है। हमारी <a href="/hi/guides/game-assets-guide.html">फ्री गेम assets गाइड</a> बताती है कि ये कहां से आते हैं और लाइसेंसिंग कैसे काम करती है।</p>
<h2 id="स्टेप-5-अहसास-को-निखारें" tabindex="-1">स्टेप 5: अहसास को निखारें <a class="header-anchor" href="#स्टेप-5-अहसास-को-निखारें" aria-label="Permalink to &quot;स्टेप 5: अहसास को निखारें&quot;"></a></h2>
<p>एक टेक डेमो और एक गेम के बीच का फर्क अहसास है। जब core loop काम करने लगे, तो अपने iterations उन चीजों पर लगाएं जो प्लेयर असल में नोटिस करते हैं: फुर्तीले controls, कुछ होने पर साफ फीडबैक, एक दिखने वाला लक्ष्य, और एक जीत या हार की स्थिति। एक टाइटल स्क्रीन, एक restart बटन, अहम एक्शन पर साउंड, और एक कठिनाई का वक्र मांगें। यही छोटी बातें गेम को पूरा हुआ महसूस कराती हैं।</p>
<h2 id="स्टेप-6-पब्लिश-और-शेयर-करें" tabindex="-1">स्टेप 6: पब्लिश और शेयर करें <a class="header-anchor" href="#स्टेप-6-पब्लिश-और-शेयर-करें" aria-label="Permalink to &quot;स्टेप 6: पब्लिश और शेयर करें&quot;"></a></h2>
<p>जब यह खेलने लायक हो जाए, तो इसे पब्लिश करें। Browser-आधारित tools एक ही क्लिक में आपको एक शेयर करने लायक लिंक देते हैं, जो फीडबैक पाने का सबसे तेज तरीका है। इसे दोस्तों के साथ शेयर करें, जहां आपकी ऑडियंस जुटती है वहां पोस्ट करें, और देखें कि लोग कहां अटकते हैं या छोड़ देते हैं। वह फीडबैक ही आपके iteration का अगला दौर है। अगर आप आगे जाना चाहते हैं, तो हमारी <a href="/hi/guides/itch-io-launch-guide.html">itch.io लॉन्च गाइड</a> एक web गेम को व्यापक ऑडियंस तक पहुंचाना समझाती है।</p>
<h2 id="टिप्स-जो-ai-गेम-मेकिंग-को-कारगर-बनाते-हैं" tabindex="-1">टिप्स जो AI गेम-मेकिंग को कारगर बनाते हैं <a class="header-anchor" href="#टिप्स-जो-ai-गेम-मेकिंग-को-कारगर-बनाते-हैं" aria-label="Permalink to &quot;टिप्स जो AI गेम-मेकिंग को कारगर बनाते हैं&quot;"></a></h2>
<ul>
<li><strong>छोटा रहें, फिर बढ़ें।</strong> फीचर जोड़ने से पहले एक छोटा पूरा गेम शिप करें। एक तैयार छोटा गेम एक अधूरे बड़े गेम से बेहतर होता है।</li>
<li><strong>एक बार में एक बदलाव।</strong> एक साथ बंडल की गई मांगें AI को उलझा देती हैं और यह बताना मुश्किल कर देती हैं कि क्या काम आया।</li>
<li><strong>नतीजे बताएं, तरीका नहीं।</strong> कहें &quot;jump फ्लोटी लगता है, इसे और चुस्त बनाओ,&quot; न कि &quot;gravity को 20 पर सेट करो।&quot;</li>
<li><strong>एक भरोसेमंद वर्जन संभालकर रखें।</strong> किसी बड़े बदलाव से पहले नोट कर लें कि मौजूदा हालत काम करती है ताकि आप उस पर लौट सकें।</li>
<li><strong>उबाऊ हिस्सों के लिए AI का इस्तेमाल करें।</strong> boilerplate और वेरिएशन इसे संभालने दें ताकि आपका वक्त उन फैसलों पर लगे जो गेम को आपका बनाते हैं।</li>
</ul>
<h2 id="ai-किसमें-अच्छा-है-और-किसमें-नहीं" tabindex="-1">AI किसमें अच्छा है, और किसमें नहीं <a class="header-anchor" href="#ai-किसमें-अच्छा-है-और-किसमें-नहीं" aria-label="Permalink to &quot;AI किसमें अच्छा है, और किसमें नहीं&quot;"></a></h2>
<p>AI आपको शून्य से एक खेलने लायक prototype तक तेजी से पहुंचाने, placeholder और यहां तक कि फाइनल assets जनरेट करने, और एक गेम की मशीनी नलसाजी संभालने में सचमुच अच्छा है। यह बड़े, systems-heavy डिजाइनों, बारीक बैलेंसिंग, और किसी भी ऐसी चीज में कमजोर है जिसके लिए एक सुसंगत दीर्घकालिक दृष्टि चाहिए, जो अब भी आपका काम है। 2026 की सही उम्मीद: AI एक वीकेंड की सेटअप को एक दोपहर में समेट देता है, और भरोसेमंद नतीजे फैले हुए गेमों की बजाय छोटे और मझोले गेमों के आसपास जमा होते हैं।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="क्या-मैं-सचमुच-बिना-किसी-कोडिंग-अनुभव-के-गेम-बना-सकता-हूं" tabindex="-1">क्या मैं सचमुच बिना किसी कोडिंग अनुभव के गेम बना सकता हूं? <a class="header-anchor" href="#क्या-मैं-सचमुच-बिना-किसी-कोडिंग-अनुभव-के-गेम-बना-सकता-हूं" aria-label="Permalink to &quot;क्या मैं सचमुच बिना किसी कोडिंग अनुभव के गेम बना सकता हूं?&quot;"></a></h3>
<p>हां। 2026 में prompt-to-game tools सादे-अंग्रेजी विवरण से आपके लिए कोड, आर्ट और logic जनरेट करते हैं, तो आप बिना कोई कोड लिखे या पढ़े एक खेलने लायक गेम बना और पब्लिश कर सकते हैं। आप जो चाहते हैं उसका वर्णन करके और नतीजों को निखारकर गेम को डायरेक्ट करते हैं।</p>
<h3 id="ai-से-गेम-बनाने-में-कितना-समय-लगता-है" tabindex="-1">AI से गेम बनाने में कितना समय लगता है? <a class="header-anchor" href="#ai-से-गेम-बनाने-में-कितना-समय-लगता-है" aria-label="Permalink to &quot;AI से गेम बनाने में कितना समय लगता है?&quot;"></a></h3>
<p>एक सादा, खेलने लायक गेम मिनटों से लेकर एक घंटे में बन सकता है। एक छोटा लेकिन निखरा हुआ गेम, आर्ट, साउंड, menus और कठिनाई के वक्र के साथ, iteration की एक दोपहर से एक वीकेंड जैसा होता है। बड़े या ज्यादा जटिल गेमों में अब भी ज्यादा समय लगता है, क्योंकि काम सेटअप से हटकर डिजाइन और निखार पर आ जाता है।</p>
<h3 id="ai-किस-तरह-के-गेम-बना-सकता-है" tabindex="-1">AI किस तरह के गेम बना सकता है? <a class="header-anchor" href="#ai-किस-तरह-के-गेम-बना-सकता-है" aria-label="Permalink to &quot;AI किस तरह के गेम बना सकता है?&quot;"></a></h3>
<p>AI छोटे और कैज़ुअल गेम सबसे अच्छे संभालता है: platformers, runners, arcade shooters, puzzles, racers, survival, और cozy sims। Browser tools 2D और 3D दोनों कर सकते हैं, हालांकि 2D आमतौर पर ज्यादा भरोसेमंद होता है। बड़े systems-heavy गेम जैसे बड़े RPGs या strategy titles साफ-सुथरे तरीके से जनरेट करना अब भी मुश्किल है और इन्हें काफी मानवीय दिशा-निर्देश चाहिए।</p>
<h3 id="क्या-ai-से-गेम-बनाने-के-लिए-मुझे-पैसे-देने-होंगे" tabindex="-1">क्या AI से गेम बनाने के लिए मुझे पैसे देने होंगे? <a class="header-anchor" href="#क्या-ai-से-गेम-बनाने-के-लिए-मुझे-पैसे-देने-होंगे" aria-label="Permalink to &quot;क्या AI से गेम बनाने के लिए मुझे पैसे देने होंगे?&quot;"></a></h3>
<p>ज्यादातर tools का एक फ्री टियर होता है जो एक गेम बनाने और आजमाने के लिए काफी है। आप आमतौर पर तब पैसे देते हैं जब आपको भारी जनरेशन, commercial अधिकार, या export चाहिए। हमारी <a href="/hi/guides/ai-game-generators-2026.html">AI गेम जनरेटर तुलना</a> फ्री टियर और कीमतें साथ-साथ दिखाती है।</p>
<h3 id="क्या-मैं-ai-से-बनाया-गया-गेम-बेच-सकता-हूं" tabindex="-1">क्या मैं AI से बनाया गया गेम बेच सकता हूं? <a class="header-anchor" href="#क्या-मैं-ai-से-बनाया-गया-गेम-बेच-सकता-हूं" aria-label="Permalink to &quot;क्या मैं AI से बनाया गया गेम बेच सकता हूं?&quot;"></a></h3>
<p>अक्सर हां, लेकिन दो चीजें जांचें: tool की commercial शर्तें (कुछ commercial इस्तेमाल को एक paid प्लान के पीछे रखते हैं) और किसी भी जनरेट किए गए या इंपोर्ट किए गए assets का लाइसेंस। कई platforms यह भी मांगते हैं कि आप AI-जनरेटेड सामग्री का खुलासा करें। सुरक्षित रहने के लिए CC0 assets और tool के commercial टियर पर टिके रहें।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/ai-game-generators-2026.html">2026 में सबसे अच्छे AI गेम जनरेटर</a> — पहले सही tool चुनें</li>
<li><a href="/hi/guides/3d-browser-game-without-coding.html">बिना कोडिंग के 3D browser गेम कैसे बनाएं</a> — 3D-केंद्रित पूरी प्रक्रिया</li>
<li><a href="/hi/guides/vibe-coding-games.html">Vibe Coding गेम्स: यह क्या है और कैसे शुरू करें</a> — prompt-चालित बनाने के पीछे की सोच</li>
<li><a href="/hi/guides/vibe-coding-game-prompts.html">AI गेम Prompts जो आप एक क्लिक में बना सकते हैं</a> — शुरुआती बिंदु</li>
<li><a href="/hi/guides/game-assets-guide.html">फ्री गेम assets कहां मिलें</a> — आपके गेम के लिए आर्ट और ऑडियो</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना गेम कैसे लॉन्च करें</a> — प्लेयर पाना</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[मल्टीप्लेयर Browser गेम कैसे बनाएं (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/multiplayer-browser-game</link>
            <guid>https://app.cinevva.com/hi/guides/multiplayer-browser-game</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में मल्टीप्लेयर browser गेम कैसे बनाएं, WebSockets बनाम WebRTC से लेकर सबसे अच्छे टूल (Colyseus, PartyKit, Playroom), netcode की बुनियादी बातें और एक शुरुआती स्टैक तक।]]></description>
            <content:encoded><![CDATA[<h1 id="मल्टीप्लेयर-browser-गेम-कैसे-बनाएं-2026" tabindex="-1">मल्टीप्लेयर Browser गेम कैसे बनाएं (2026) <a class="header-anchor" href="#मल्टीप्लेयर-browser-गेम-कैसे-बनाएं-2026" aria-label="Permalink to &quot;मल्टीप्लेयर Browser गेम कैसे बनाएं (2026)&quot;"></a></h1>
<p><em>आखिरी अपडेट: जून 2026.</em></p>
<p>मल्टीप्लेयर वह फीचर है जो एक छोटे गेम को फैला देता है, और 2026 में आप इसे अपना खुद का data center चलाए बिना एक browser गेम में जोड़ सकते हैं। मुश्किल हिस्सा players को जोड़ना नहीं है, बल्कि गेम को sync में और fair रखना है। यह गाइड उन चुनावों को कवर करती है जो मायने रखते हैं (transport, server model, netcode) और वे टूल जो इसे संभालने लायक बनाते हैं, फिर आपको एक समझदारी भरा शुरुआती स्टैक देती है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/s4lcuCTO2K8" title="Multiplayer Game Server Setup with Colyseus & Phaser 3 — ourcade" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">ourcade Colyseus और Phaser के साथ एक मल्टीप्लेयर server को समझाते हैं।</div>
<h2 id="पहले-इसका-scope-ईमानदारी-से-तय-करें" tabindex="-1">पहले, इसका scope ईमानदारी से तय करें <a class="header-anchor" href="#पहले-इसका-scope-ईमानदारी-से-तय-करें" aria-label="Permalink to &quot;पहले, इसका scope ईमानदारी से तय करें&quot;"></a></h2>
<p>मल्टीप्लेयर की कठिनाई इस बात के साथ तेजी से बढ़ती है कि आपका गेम कितना तेज और competitive है।</p>
<ul>
<li><strong>आसान:</strong> turn-based गेम्स (cards, board games), 2-8 के छोटे rooms, shared cursors, lobbies, chat, casual co-op। सादे WebSockets या कोई zero-backend टूल काफी है।</li>
<li><strong>मुश्किल:</strong> तेज real-time action (shooters, .io movement), बहुत सारे एक साथ खेलने वाले players, और कोई भी ऐसी competitive चीज जहां cheating मायने रखती है। इनके लिए एक authoritative server, prediction और सावधानी से बनाया गया netcode चाहिए।</li>
</ul>
<p>आसान बकेट से शुरुआत करें। एक चलता हुआ turn-based या छोटे-room वाला गेम आपको मुश्किल समस्याएं उठाने से पहले पूरा pipeline सिखा देता है।</p>
<h2 id="transport-डेटा-कैसे-सफर-करता-है" tabindex="-1">Transport: डेटा कैसे सफर करता है <a class="header-anchor" href="#transport-डेटा-कैसे-सफर-करता-है" aria-label="Permalink to &quot;Transport: डेटा कैसे सफर करता है&quot;"></a></h2>
<ul>
<li><strong>WebSockets</strong> व्यावहारिक default हैं। TCP-based, bidirectional, परिपक्व, और हर जगह supported। इसकी एकमात्र कमजोरी head-of-line blocking है: एक dropped packet उसके पीछे की हर चीज को रोक देता है, जो तेज action गेम्स को नुकसान पहुंचाता है। ज्यादातर गेम्स के लिए, WebSockets शिप करें।</li>
<li><strong>WebRTC</strong> UDP जैसे data channels लाता है (कोई head-of-line blocking नहीं), तेज action या peer-to-peer के लिए अच्छा, लेकिन इसे set up करना कहीं ज्यादा जटिल है (signaling, STUN/TURN)। इसे तभी चुनें जब आपको P2P चाहिए या relay server से बचना जरूरी हो।</li>
<li><strong>WebTransport</strong> नया विकल्प है (HTTP/3 + QUIC) जिसमें UDP-शैली के datagrams हैं। चीजें इसी दिशा में जा रही हैं, लेकिन 2026 में browser support अभी भी ठीक हो रहा है, इसलिए आज शिप करने वाले किसी शुरुआती के लिए यह अकेला transport होना सुरक्षित नहीं है।</li>
</ul>
<p>अंगूठे का नियम: अभी शिप करने के लिए WebSockets, जरूरत पड़ने पर बाद में WebTransport, और P2P या media के लिए WebRTC।</p>
<h2 id="server-model-कौन-तय-करता-है-कि-क्या-हुआ" tabindex="-1">Server model: कौन तय करता है कि क्या हुआ <a class="header-anchor" href="#server-model-कौन-तय-करता-है-कि-क्या-हुआ" aria-label="Permalink to &quot;Server model: कौन तय करता है कि क्या हुआ&quot;"></a></h2>
<ul>
<li><strong>Authoritative server:</strong> clients inputs भेजते हैं, server simulation चलाता है और result को broadcast करता है। यह किसी भी competitive चीज के लिए standard है क्योंकि server स्वाभाविक anti-cheat सीमा है, आप कभी client पर भरोसा नहीं करते।</li>
<li><strong>Peer-to-peer:</strong> चलाने में सस्ता, लेकिन cheating रोकना मुश्किल है और connectivity नाजुक होती है। casual co-op और छोटे भरोसेमंद lobbies के लिए ठीक है।</li>
</ul>
<p>एक छोटे गेम के लिए भी, एक authoritative server आपके &quot;source of truth&quot; को सरल रखता है। नीचे दिए गए ज्यादातर टूल इसी model को default करते हैं।</p>
<h2 id="netcode-की-बुनियादी-बातें-सिर्फ-जब-आपको-जरूरत-हो" tabindex="-1">Netcode की बुनियादी बातें (सिर्फ जब आपको जरूरत हो) <a class="header-anchor" href="#netcode-की-बुनियादी-बातें-सिर्फ-जब-आपको-जरूरत-हो" aria-label="Permalink to &quot;Netcode की बुनियादी बातें (सिर्फ जब आपको जरूरत हो)&quot;"></a></h2>
<p>तेज real-time गेम्स के लिए, कच्चा state-syncing laggy लगता है। Gabriel Gambetta की क्लासिक सीरीज में अच्छी तरह समझाए गए standard fixes ये हैं:</p>
<ul>
<li><strong>Client-side prediction:</strong> client server round-trip का इंतजार करने के बजाय आपके input को तुरंत apply कर देता है, इसलिए movement instant महसूस होता है।</li>
<li><strong>Server reconciliation:</strong> जब authoritative state आता है, client अपने pending inputs को फिर से apply करके किसी भी drift को ठीक करता है।</li>
<li><strong>Entity interpolation:</strong> दूसरे players को थोड़ा अतीत में, ज्ञात states के बीच render करें, ताकि उनकी गति smooth हो।</li>
<li><strong>Lag compensation:</strong> server वहां तक rewind करता है जहां target तब था जब shot fire हुआ था, ताकि hits fair तरीके से resolve हों।</li>
</ul>
<p>इन्हें पहले से मत बनाएं। इन्हें तभी जोड़ें जब movement सच में खराब महसूस हो, जो turn-based या धीमे गेम्स के लिए नहीं होगा।</p>
<h2 id="_2026-का-टूल-परिदृश्य" tabindex="-1">2026 का टूल परिदृश्य <a class="header-anchor" href="#_2026-का-टूल-परिदृश्य" aria-label="Permalink to &quot;2026 का टूल परिदृश्य&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>टूल</th>
<th>यह किसके लिए है</th>
<th>Open source</th>
<th>Hosting</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Socket.IO</strong></td>
<td>WebSocket library; गेम logic आप लिखते हैं। सीखने और छोटे rooms के लिए बढ़िया।</td>
<td>हां (MIT)</td>
<td>Self-host</td>
</tr>
<tr>
<td><strong>Colyseus</strong></td>
<td>Authoritative game-server framework: rooms, matchmaking, अपने आप state sync।</td>
<td>हां (MIT)</td>
<td>Self-host मुफ्त; Cloud लगभग $15/माह से</td>
</tr>
<tr>
<td><strong>Playroom</strong></td>
<td>Zero-backend joinable rooms, presence, casual matchmaking। casual गेम्स के लिए सबसे तेज रास्ता।</td>
<td>SDK</td>
<td>Managed</td>
</tr>
<tr>
<td><strong>PartyKit</strong></td>
<td>Cloudflare के edge पर real-time rooms (अब Cloudflare का हिस्सा)।</td>
<td>हां</td>
<td>Cloudflare usage-based</td>
</tr>
<tr>
<td><strong>Cloudflare Durable Objects</strong></td>
<td>निचले-स्तर का stateful-per-room primitive जिस पर PartyKit बना है।</td>
<td>Platform</td>
<td>Cloudflare usage-based</td>
</tr>
<tr>
<td><strong>geckos.io</strong></td>
<td>WebRTC पर UDP जैसा client/server, तेज action गेम्स के लिए।</td>
<td>हां</td>
<td>Self-host</td>
</tr>
<tr>
<td><strong>Nakama</strong></td>
<td>पूरा open-source backend: realtime, matchmaking, leaderboards, chat।</td>
<td>हां (Apache-2.0)</td>
<td>Self-host; managed cloud</td>
</tr>
<tr>
<td><strong>Photon</strong></td>
<td>परिपक्व commercial realtime networking, Unity-केंद्रित।</td>
<td>नहीं</td>
<td>100 CCU मुफ्त; paid tiers</td>
</tr>
<tr>
<td><strong>Supabase Realtime</strong></td>
<td>हल्के sync और lobbies के लिए WebSockets पर Broadcast + presence।</td>
<td>हां</td>
<td>Supabase plans में शामिल</td>
</tr>
</tbody>
</table>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/DbaBeLDU-oY" title="Build a real-time, multiplayer web app — CodeTV" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">edge पर PartyKit का इस्तेमाल करके एक real-time मल्टीप्लेयर build।</div>
<h2 id="एक-अनुशंसित-शुरुआती-स्टैक" tabindex="-1">एक अनुशंसित शुरुआती स्टैक <a class="header-anchor" href="#एक-अनुशंसित-शुरुआती-स्टैक" aria-label="Permalink to &quot;एक अनुशंसित शुरुआती स्टैक&quot;"></a></h2>
<p>2026 में एक छोटे real-time browser गेम के लिए:</p>
<ul>
<li><strong>Transport:</strong> WebSockets (अभी-शिप-करने वाली compatibility)।</li>
<li><strong>Server model:</strong> authoritative, एक छोटे गेम के लिए भी, ताकि cheating और &quot;source of truth&quot; सरल रहें।</li>
<li><strong>Framework:</strong> Colyseus। यह MIT है, self-host करने के लिए मुफ्त है, और आपको rooms, matchmaking, और अपने आप state sync सीधे बॉक्स से देता है, साथ ही एक managed cloud (लगभग $15/माह से) जब आप servers चलाना न चाहें। अगर आप किसी casual गेम के लिए zero backend चाहते हैं, तो Playroom और भी तेज विकल्प है; अगर आप पहले से Cloudflare पर हैं, तो PartyKit या Durable Objects स्वाभाविक रूप से फिट होते हैं।</li>
<li><strong>Netcode:</strong> prediction के बिना शुरू करें। Gambetta-शैली की prediction और interpolation तभी जोड़ें जब movement laggy महसूस हो।</li>
</ul>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="मल्टीप्लेयर-browser-गेम-बनाने-का-सबसे-आसान-तरीका-क्या-है" tabindex="-1">मल्टीप्लेयर browser गेम बनाने का सबसे आसान तरीका क्या है? <a class="header-anchor" href="#मल्टीप्लेयर-browser-गेम-बनाने-का-सबसे-आसान-तरीका-क्या-है" aria-label="Permalink to &quot;मल्टीप्लेयर browser गेम बनाने का सबसे आसान तरीका क्या है?&quot;"></a></h3>
<p>Colyseus जैसे framework या Playroom जैसे zero-backend टूल के जरिए WebSockets का इस्तेमाल करके एक turn-based या छोटे-room वाले गेम से शुरुआत करें। ये आपके लिए rooms, joining और state sync संभालते हैं, इसलिए आप netcode बनाए या अपने खुद के servers चलाए बिना एक चलता हुआ मल्टीप्लेयर गेम शिप कर सकते हैं। तेज real-time action को तब के लिए बचाकर रखें जब आप कुछ सरल शिप कर चुके हों।</p>
<h3 id="मुझे-अपने-गेम-के-लिए-websockets-इस्तेमाल-करने-चाहिए-या-webrtc" tabindex="-1">मुझे अपने गेम के लिए WebSockets इस्तेमाल करने चाहिए या WebRTC? <a class="header-anchor" href="#मुझे-अपने-गेम-के-लिए-websockets-इस्तेमाल-करने-चाहिए-या-webrtc" aria-label="Permalink to &quot;मुझे अपने गेम के लिए WebSockets इस्तेमाल करने चाहिए या WebRTC?&quot;"></a></h3>
<p>ज्यादातर गेम्स के लिए WebSockets: ये सरल, परिपक्व और हर जगह supported हैं। WebRTC सिर्फ तब इस्तेमाल करें जब आपको peer-to-peer connections चाहिए या तेज action के लिए सबसे कम latency चाहिए, क्योंकि इसे set up करना काफी ज्यादा जटिल है। WebTransport एक आशाजनक भविष्य का विकल्प है लेकिन 2026 में इसका browser support अभी भी ठीक हो रहा है।</p>
<h3 id="क्या-मुझे-मल्टीप्लेयर-के-लिए-अपना-खुद-का-server-चाहिए" tabindex="-1">क्या मुझे मल्टीप्लेयर के लिए अपना खुद का server चाहिए? <a class="header-anchor" href="#क्या-मुझे-मल्टीप्लेयर-के-लिए-अपना-खुद-का-server-चाहिए" aria-label="Permalink to &quot;क्या मुझे मल्टीप्लेयर के लिए अपना खुद का server चाहिए?&quot;"></a></h3>
<p>जरूरी नहीं। Colyseus Cloud, Playroom, PartyKit और Photon जैसे managed टूल realtime हिस्से को आपके लिए host करते हैं। अगर आपको पूरा control चाहिए तो आप Colyseus या Nakama जैसे open-source frameworks को खुद भी host कर सकते हैं। एक छोटे गेम के लिए, managed service सबसे तेज रास्ता है और अक्सर शुरू करने के लिए मुफ्त या सस्ता होता है।</p>
<h3 id="मल्टीप्लेयर-गेम-में-cheating-कैसे-रोकूं" tabindex="-1">मल्टीप्लेयर गेम में cheating कैसे रोकूं? <a class="header-anchor" href="#मल्टीप्लेयर-गेम-में-cheating-कैसे-रोकूं" aria-label="Permalink to &quot;मल्टीप्लेयर गेम में cheating कैसे रोकूं?&quot;"></a></h3>
<p>एक authoritative server इस्तेमाल करें: clients सिर्फ अपने inputs भेजते हैं, और server तय करता है कि असल में क्या होता है, हर चीज को validate करते हुए। गेम के नतीजे के लिए कभी client पर भरोसा न करें। इसीलिए Colyseus, Nakama और Photon जैसे frameworks एक server-authoritative model को default करते हैं, खासकर किसी भी competitive चीज के लिए।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे Web Game Engines</a> — वह engine जिस पर आपका मल्टीप्लेयर गेम चलता है</li>
<li><a href="/hi/guides/best-free-game-engines-beginners.html">शुरुआती लोगों के लिए सबसे अच्छे मुफ्त गेम इंजन</a> — कहां से शुरू करें</li>
<li><a href="/hi/tutorials/websocket-multiplayer-basics.html">WebSocket मल्टीप्लेयर की बुनियादी बातें</a> — एक हाथों-हाथ परिचय</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">अपना गेम itch.io पर कैसे launch करें</a> — अपने मल्टीप्लेयर गेम को publish करना</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Phaser बनाम Defold: सबसे अच्छे 2D Web Game इंजन की तुलना (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/phaser-vs-defold</link>
            <guid>https://app.cinevva.com/hi/guides/phaser-vs-defold</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में 2D web games के लिए Phaser बनाम Defold, build size, load time, language, workflow और cost पर तुलना, ताकि आप browser के लिए सही 2D इंजन चुन सकें।]]></description>
            <content:encoded><![CDATA[<h1 id="phaser-बनाम-defold-सबसे-अच्छे-2d-web-game-इंजन-की-तुलना-2026" tabindex="-1">Phaser बनाम Defold: सबसे अच्छे 2D Web Game इंजन की तुलना (2026) <a class="header-anchor" href="#phaser-बनाम-defold-सबसे-अच्छे-2d-web-game-इंजन-की-तुलना-2026" aria-label="Permalink to &quot;Phaser बनाम Defold: सबसे अच्छे 2D Web Game इंजन की तुलना (2026)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>browser में 2D games के लिए, दो इंजन अलग-अलग खूबियों पर आगे हैं: Phaser, सबसे लोकप्रिय HTML5 framework, और Defold, वह इंजन जिसके web builds सबसे छोटे और सबसे तेज़ load होने वाले हैं। ये अलग-अलग developers के लिए ठीक बैठते हैं। चुनने में मदद के लिए यहाँ 2026 की तुलना है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/3nfs6MNTNDo" title="Defold game engine comparison — GameFromScratch" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">GameFromScratch एक आमने-सामने की इंजन तुलना में Defold को रखता है।</div>
<h2 id="झटपट-फैसला" tabindex="-1">झटपट फैसला <a class="header-anchor" href="#झटपट-फैसला" aria-label="Permalink to &quot;झटपट फैसला&quot;"></a></h2>
<ul>
<li><strong>सबसे छोटे, सबसे तेज़ load होने वाले web builds और एक polished all-in-one editor:</strong> Defold.</li>
<li><strong>सबसे बड़ी community, सबसे ज़्यादा tutorials, और एक code-first JavaScript framework:</strong> Phaser.</li>
</ul>
<p>दोनों free हैं। असली फैसला workflow (visual editor बनाम code framework), language (Lua बनाम JavaScript), और आपके लिए load-time व community कितने मायने रखते हैं, इस बारे में है।</p>
<h2 id="तुलना" tabindex="-1">तुलना <a class="header-anchor" href="#तुलना" aria-label="Permalink to &quot;तुलना&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th>Phaser (4)</th>
<th>Defold</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Type</strong></td>
<td>JS/TS game framework</td>
<td>पूरा इंजन + editor</td>
</tr>
<tr>
<td><strong>Language</strong></td>
<td>JavaScript / TypeScript</td>
<td>Lua</td>
</tr>
<tr>
<td><strong>Web tech</strong></td>
<td>WebGL2 / Canvas</td>
<td>WebAssembly + WebGL</td>
</tr>
<tr>
<td><strong>खाली build size</strong></td>
<td>~500 KB (framework)</td>
<td>~1.06 MB (पूरा build)</td>
</tr>
<tr>
<td><strong>Editor</strong></td>
<td>अपना खुद का लाओ (code)</td>
<td>Built-in, all-in-one</td>
</tr>
<tr>
<td><strong>Community</strong></td>
<td>HTML5 games में सबसे बड़ी</td>
<td>छोटी पर सक्रिय</td>
</tr>
<tr>
<td><strong>Publishing</strong></td>
<td>Manual / आपका खुद का</td>
<td>Built-in (Poki और अन्य)</td>
</tr>
<tr>
<td><strong>License / cost</strong></td>
<td>Free (MIT)</td>
<td>Free, कोई royalty नहीं</td>
</tr>
<tr>
<td><strong>3D</strong></td>
<td>नहीं (2D)</td>
<td>मुख्यतः 2D, 3D जोड़ रहा है</td>
</tr>
</tbody>
</table>
<h2 id="phaser-4" tabindex="-1">Phaser 4 <a class="header-anchor" href="#phaser-4" aria-label="Permalink to &quot;Phaser 4&quot;"></a></h2>
<p>Phaser सबसे लोकप्रिय HTML5 game framework है, और version 4.0 अप्रैल 2026 में stable रिलीज़ हुआ (4.2 जैसे point releases तेज़ी से इसके बाद आए)। यह WebGL2 renderer का ज़मीन से नया rewrite है जिसमें एक नया node-based architecture है, जबकि जाना-पहचाना v3 API बरकरार है। आप JavaScript या TypeScript लिखते हैं और physics, input, audio, scenes, व asset loading सीधे तैयार मिलते हैं। framework खुद छोटा है (~500 KB), हालाँकि आपका अंतिम size आपके assets पर निर्भर करता है। बड़े फायदे हैं विशाल community, tutorials व examples का ढेर, और यह कि आप standard web code लिख रहे हैं जिस पर आपका पूरा control है। ध्यान दें कि Phaser 4 एक WebGL2 इंजन है, WebGPU नहीं; WebGPU आगे की तैयारी है, कोई शिप हुआ feature नहीं।</p>
<h2 id="defold" tabindex="-1">Defold <a class="header-anchor" href="#defold" aria-label="Permalink to &quot;Defold&quot;"></a></h2>
<p>Defold, जो मूल रूप से King (Candy Crush) से आया, छोटे, तेज़ load होने वाले web games के लिए बना है। इसका खाली HTML5 build करीब 1.06 MB का है और यह default रूप से WebAssembly इस्तेमाल करता है, जिससे यह top web games के अध्ययनों में सबसे तेज़ load होने वाले इंजनों में से एक बन जाता है। यह एक पूरे package के रूप में आता है: एक built-in editor, scene tools, और Poki जैसी platforms पर one-click publishing। नवीनतम stable release 1.12.4 है (मई 2026), और यह free है बिना किसी royalty के। बदले में मिलते हैं Phaser से छोटी community और Lua scripting व Defold के component model के इर्द-गिर्द एक सीखने की मशक्कत। यह मुख्यतः एक 2D इंजन है, हालाँकि यह सक्रिय रूप से 3D features जोड़ रहा है।</p>
<h2 id="कैसे-चुनें" tabindex="-1">कैसे चुनें <a class="header-anchor" href="#कैसे-चुनें" aria-label="Permalink to &quot;कैसे चुनें&quot;"></a></h2>
<p>अगर आप पहले से JavaScript जानते हैं, tutorials और मदद का सबसे बड़ा भंडार चाहते हैं, और अपना खुद का toolchain जोड़ना पसंद करते हैं, तो Phaser चुनें। अगर आप सबसे छोटे, सबसे तेज़ load होने वाले builds, एक polished all-in-one editor, और built-in publishing चाहते हैं, और Lua सीखने में आपको दिक्कत नहीं है, तो Defold चुनें। load-time के लिहाज़ से नाज़ुक mobile web games के लिए Defold के पास एक असली बढ़त है; सीखने और community सपोर्ट के लिए Phaser को हराना मुश्किल है।</p>
<p>PixiJS, Construct, और GDevelop समेत पूरा मैदान चाहते हैं? हमारा <a href="/hi/guides/best-2d-game-engines-2026.html">2026 के सबसे अच्छे 2D game engines</a> देखें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="_2d-web-games-के-लिए-phaser-बेहतर-है-या-defold" tabindex="-1">2D web games के लिए Phaser बेहतर है या Defold? <a class="header-anchor" href="#_2d-web-games-के-लिए-phaser-बेहतर-है-या-defold" aria-label="Permalink to &quot;2D web games के लिए Phaser बेहतर है या Defold?&quot;"></a></h3>
<p>दोनों शानदार हैं; ये अलग-अलग developers के लिए ठीक बैठते हैं। Phaser एक code-first JavaScript framework है जिसकी सबसे बड़ी community और सबसे ज़्यादा learning material है। Defold एक पूरा इंजन है जिसमें built-in editor और सबसे छोटे, सबसे तेज़ load होने वाले web builds हैं। community और JavaScript के लिए Phaser चुनें, load time और एक all-in-one workflow के लिए Defold।</p>
<h3 id="किसके-web-builds-छोटे-और-तेज़-load-होने-वाले-हैं" tabindex="-1">किसके web builds छोटे और तेज़ load होने वाले हैं? <a class="header-anchor" href="#किसके-web-builds-छोटे-और-तेज़-load-होने-वाले-हैं" aria-label="Permalink to &quot;किसके web builds छोटे और तेज़ load होने वाले हैं?&quot;"></a></h3>
<p>Defold। इसका खाली HTML5 build करीब 1.06 MB का है और WebAssembly इस्तेमाल करता है, जिससे यह web games के लिए सबसे तेज़ load होने वाले इंजनों में से एक बन जाता है। Phaser का framework करीब 500 KB का है, पर यह एक पूरे build के बजाय एक framework है, और आपका असली size काफ़ी हद तक आपके अपने assets पर निर्भर करता है। load-time के प्रति संवेदनशील games के लिए Defold के पास बढ़त है।</p>
<h3 id="क्या-phaser-और-defold-webgpu-सपोर्ट-करते-हैं" tabindex="-1">क्या Phaser और Defold WebGPU सपोर्ट करते हैं? <a class="header-anchor" href="#क्या-phaser-और-defold-webgpu-सपोर्ट-करते-हैं" aria-label="Permalink to &quot;क्या Phaser और Defold WebGPU सपोर्ट करते हैं?&quot;"></a></h3>
<p>2026 में किसी शिप हुए feature के तौर पर नहीं। Phaser 4 एक WebGL2 rewrite है, जिसमें WebGPU सिर्फ़ आगे की तैयारी के रूप में है। Defold का HTML5 backend WebGL है, जिसमें प्रयोगात्मक WebGPU काम चल रहा है। 2D games के लिए यह शायद ही मायने रखता है; सामान्य 2D rendering के लिए WebGL2 काफ़ी से ज़्यादा है।</p>
<h3 id="क्या-phaser-और-defold-व्यावसायिक-games-के-लिए-free-हैं" tabindex="-1">क्या Phaser और Defold व्यावसायिक games के लिए free हैं? <a class="header-anchor" href="#क्या-phaser-और-defold-व्यावसायिक-games-के-लिए-free-हैं" aria-label="Permalink to &quot;क्या Phaser और Defold व्यावसायिक games के लिए free हैं?&quot;"></a></h3>
<p>हाँ। Phaser MIT license के तहत free है, और Defold free व open-source है, बिना किसी royalty या revenue सीमा के। कोई भी आपसे व्यावसायिक game शिप करने के लिए पैसे नहीं लेता, हालाँकि Phaser एक अलग वैकल्पिक editor product बेचता है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/best-2d-game-engines-2026.html">2026 के सबसे अच्छे 2D Game इंजन</a> — पूरा 2D मैदान</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के सबसे अच्छे Web Game इंजन</a> — 2D और 3D साथ में</li>
<li><a href="/hi/guides/best-free-game-engines-beginners.html">शुरुआती लोगों के लिए सबसे अच्छे Free Game इंजन</a> — कहाँ से शुरू करें</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">अपना game itch.io पर कैसे लॉन्च करें</a> — एक तैयार 2D game publish करना</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[बिना बजट के इंडी गेम को कैसे प्रमोट करें (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/promote-indie-game-no-budget</link>
            <guid>https://app.cinevva.com/hi/guides/promote-indie-game-no-budget</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[बिना बजट के इंडी गेम की मार्केटिंग करने की एक व्यावहारिक 2026 गाइड, wishlists और Steam पेज से लेकर short-form video, devlogs, communities, और streamer आउटरीच तक।]]></description>
            <content:encoded><![CDATA[<h1 id="बिना-बजट-के-इंडी-गेम-को-कैसे-प्रमोट-करें-2026" tabindex="-1">बिना बजट के इंडी गेम को कैसे प्रमोट करें (2026) <a class="header-anchor" href="#बिना-बजट-के-इंडी-गेम-को-कैसे-प्रमोट-करें-2026" aria-label="Permalink to &quot;बिना बजट के इंडी गेम को कैसे प्रमोट करें (2026)&quot;"></a></h1>
<p><em>आख़िरी बार अपडेट किया गया: जून 2026.</em></p>
<p>किसी गेम की मार्केटिंग के लिए आपको विज्ञापन के पैसे की ज़रूरत नहीं है। आपको समय, एक साफ़ hook, और जल्दी शुरुआत करने की ज़रूरत है। 2026 की कड़वी सच्चाई यह है कि समस्या discovery की है, माँग की नहीं: 2024 में Steam पर करीब 19,000 गेम आए, और ज़्यादातर ने कभी ठीक-ठाक बिक्री नहीं देखी। अच्छी बात यह है कि जो चैनल इंडीज़ के लिए काम करते हैं, वे ज़्यादातर मुफ़्त हैं। यहाँ बताया गया है कि उन्हें कैसे इस्तेमाल करें।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/kpb2Ab8x7Zg" title="Why are wishlists so important to indie devs? (with Chris Zukowski)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">wishlists क्यों मायने रखते हैं, मार्केटिंग एक्सपर्ट Chris Zukowski के साथ।</div>
<h2 id="steam-पेज-से-शुरू-करें-अगर-आप-steam-पर-हैं" tabindex="-1">Steam पेज से शुरू करें (अगर आप Steam पर हैं) <a class="header-anchor" href="#steam-पेज-से-शुरू-करें-अगर-आप-steam-पर-हैं" aria-label="Permalink to &quot;Steam पेज से शुरू करें (अगर आप Steam पर हैं)&quot;"></a></h2>
<p>अगर आपका गेम Steam से जुड़ा है, तो सबसे कीमती मुफ़्त काम जो आप कर सकते हैं वह है जल्दी एक &quot;Coming Soon&quot; पेज लगाना। जिन गेम्स ने इसे लॉन्च से छह या ज़्यादा महीने पहले लगाया, उन्होंने आख़िरी महीने तक रुकने वालों के मुकाबले कहीं ज़्यादा बिक्री देखी। wishlists कभी एक्सपायर नहीं होते, इसलिए जैसे ही आपके पास कुछ screenshots और एक छोटी clip हो, पेज लगा देना चाहिए।</p>
<p>wishlists असल में करते क्या हैं: हर wishlister को लॉन्च पर और छूट पर नोटिफिकेशन मिलता है, जो एक backlog को पहले दिन की बिक्री के उछाल में बदल देता है। ये आख़िरी हफ़्ते में &quot;Popular Upcoming&quot; टैब को भी चलाते हैं। एक मोटा-मोटा टिकाऊ-लॉन्च फ़्लोर करीब 7,000 wishlists है; यह कोई जादुई नंबर नहीं है, इसका बस मतलब है उस हफ़्ते की एक टॉप रिलीज़ बनना। अपने स्टोर पेज को भी ठीक से भरें: सही tags (Steam इन्हीं से categorize करता है) और ज़्यादा supported languages, दोनों बढ़ाते हैं कि Steam आपको कितनी बार सामने लाता है।</p>
<h3 id="next-fest-डेमो-लूप" tabindex="-1">Next Fest डेमो लूप <a class="header-anchor" href="#next-fest-डेमो-लूप" aria-label="Permalink to &quot;Next Fest डेमो लूप&quot;"></a></h3>
<p>Steam Next Fest सबसे बड़ा मुफ़्त wishlist इवेंट है, लेकिन यह किसी मौजूदा audience को बढ़ाता है, नई audience बनाता नहीं। आपको जितने wishlists मिलते हैं वे उन wishlists के साथ मज़बूती से बढ़ते हैं जिन्हें आप ख़ुद लाते हैं, इसलिए fest से पहले एक audience बनाएँ, फिर उस पर सवार हों। एक अच्छा demo-to-wishlist कन्वर्ज़न करीब 16-20% है।</p>
<h2 id="एक-ऐसा-गेम-बनाएँ-जो-अपनी-मार्केटिंग-ख़ुद-करे" tabindex="-1">एक ऐसा गेम बनाएँ जो अपनी मार्केटिंग ख़ुद करे <a class="header-anchor" href="#एक-ऐसा-गेम-बनाएँ-जो-अपनी-मार्केटिंग-ख़ुद-करे" aria-label="Permalink to &quot;एक ऐसा गेम बनाएँ जो अपनी मार्केटिंग ख़ुद करे&quot;"></a></h2>
<p>सबसे बड़ा मार्केटिंग फ़ैसला किसी भी मार्केटिंग से पहले होता है: आपका genre और concept। एक high-concept गेम अपने पहले screenshot से ही फैलता है, और लोगों की दिलचस्पी जगाने के लिए बस एक-दो वाक्य चाहिए होते हैं। अगर आप clip के कुछ सेकंड में यह नहीं दिखा सकते कि आपका गेम दिलचस्प क्यों है, तो मार्केट उसे स्क्रॉल करके आगे बढ़ जाएगा। इसलिए एक hook के साथ शुरू करें: trailers और clips को पहले ही कुछ सेकंड में दिलचस्प चीज़ तक पहुँचना चाहिए, और फ़ीचर की लिस्ट के बजाय पहले genre, फिर hook, फिर content दिखाना चाहिए।</p>
<h2 id="_2026-में-काम-करने-वाले-मुफ़्त-चैनल" tabindex="-1">2026 में काम करने वाले मुफ़्त चैनल <a class="header-anchor" href="#_2026-में-काम-करने-वाले-मुफ़्त-चैनल" aria-label="Permalink to &quot;2026 में काम करने वाले मुफ़्त चैनल&quot;"></a></h2>
<ul>
<li><strong>Short-form video</strong> (TikTok, Reels, YouTube Shorts) सबसे ज़्यादा असर वाला मुफ़्त चैनल है, क्योंकि algorithm clips को उन लोगों तक पहुँचाता है जो आपको फ़ॉलो नहीं करते, X के उलट जहाँ organic पहुँच सिकुड़ गई है। एक clip किसी tweet से कहीं बेहतर कर सकती है। एक बात ईमानदारी से मान लें: 2025-2026 में organic short-video पहुँच मुश्किल हो गई है, इसलिए लगातार पोस्ट करने की उम्मीद रखें और YouTube Shorts को एक टिकाऊ विकल्प मानें जो click-through में भी अच्छा है।</li>
<li><strong>Devlogs, trailers, GIFs, capsule art:</strong> बार-बार सामने आना वह पहचान बनाता है जो wishlists में बदलती है, और लगातार clips एक मुफ़्त टेस्टिंग का भी काम करती हैं कि कौन-सा hook जमता है।</li>
<li><strong>Reddit:</strong> सही subs पर पोस्ट करें (r/IndieGaming, r/IndieDev, r/indiegames, r/playmygame, और साथ में niche वाले), और करीब 10-में-1 वाले नियम का पालन करें, आपकी सिर्फ़ करीब दस में से एक पोस्ट को सीधे आपके गेम को प्रमोट करना चाहिए। स्पैमी self-promo आपको ban करवा देती है।</li>
<li><strong>Discord:</strong> एक server दिलचस्पी रखने वाले प्लेयर्स को जोड़े रखता है, आपको playtesters देता है, और वह core बनाता है जो लॉन्च पर हाज़िर होता है।</li>
</ul>
<h2 id="बिना-बजट-के-प्रेस-और-streamers" tabindex="-1">बिना बजट के प्रेस और streamers <a class="header-anchor" href="#बिना-बजट-के-प्रेस-और-streamers" aria-label="Permalink to &quot;बिना बजट के प्रेस और streamers&quot;"></a></h2>
<p>Streamers और YouTubers अब पारंपरिक प्रेस के मुकाबले इंडी discovery को ज़्यादा भरोसे के साथ चलाते हैं, और सही में से दो-चार creators आपकी सारी प्रेस आउटरीच से मिलकर भी ज़्यादा असर कर सकते हैं। वे मुफ़्त डेमो की सक्रिय तलाश में रहते हैं। पहुँच से ज़्यादा targeting मायने रखती है: ऐसे creators चुनें जिनकी audience आपके genre से मेल खाती हो और उन्हें बताएँ कि आपने उन्हें क्यों चुना।</p>
<p>प्रेस के लिए, pitches छोटी रखें (ज़्यादातर पत्रकार 200 शब्दों से कम पसंद करते हैं), उसमें एक hook, genre, press-kit लिंक, trailer, और एक key शामिल करें, और उसे पर्सनलाइज़ करें। एक one-page press kit लगाएँ जिसमें factsheet, high-res screenshots, एक trailer, और logos हों, आप जितनी रुकावट हटाते हैं उतनी आपकी संभावनाएँ बढ़ती हैं। लॉन्च से करीब दो हफ़्ते पहले review copies भेजें और streamers को करीब एक हफ़्ता पहले keys दें। आउटरीच की सबसे बड़ी गलती यह है कि किसी के दिलचस्पी दिखाने के बाद चुप हो जाना और मौका चूक जाना।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/gQBdIGaZROE" title="How to NOT screw up your indie game launch. 30 mistakes in 30 minutes." frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">इंडी लॉन्च की आम गलतियाँ जिनसे बचना है।</div>
<h2 id="हकीकत-भरी-उम्मीदें" tabindex="-1">हकीकत भरी उम्मीदें <a class="header-anchor" href="#हकीकत-भरी-उम्मीदें" aria-label="Permalink to &quot;हकीकत भरी उम्मीदें&quot;"></a></h2>
<p>बुनियादी तस्वीर सोचने पर मजबूर करती है: 2024 में रिलीज़ हुए median Steam गेम ने बस कुछ सौ डॉलर कमाए, और रेवेन्यू में जीतने वाला सब कुछ ले जाता है। लेकिन यह discovery की समस्या है, माँग की नहीं, इंडीज़ अब Steam के रेवेन्यू और बिकी कॉपियों के करीब आधे हिस्से हैं। audience बहुत बड़ी है; आपका काम है ढूँढे जाने लायक होना। सबसे बड़ी गलती है चुपचाप बनाते रहना और आख़िरी हफ़्ते में मार्केटिंग शुरू करना। पूरी चुप्पी एक अधूरे गेम को दिखाने से ज़्यादा ख़तरनाक है।</p>
<h2 id="एक-बिना-बजट-टाइमलाइन" tabindex="-1">एक बिना-बजट टाइमलाइन <a class="header-anchor" href="#एक-बिना-बजट-टाइमलाइन" aria-label="Permalink to &quot;एक बिना-बजट टाइमलाइन&quot;"></a></h2>
<ul>
<li><strong>6-12 महीने पहले:</strong> Steam &quot;Coming Soon&quot; पेज लगाएँ, clips और devlogs पोस्ट करना शुरू करें, एक Discord बनाना शुरू करें।</li>
<li><strong>3-6 महीने पहले:</strong> लगातार short-form video, wishlists जमा करें, Next Fest की तैयारी करें।</li>
<li><strong>4-6 हफ़्ते पहले:</strong> प्रेस और creator आउटरीच, trailer और press kit को अंतिम रूप दें।</li>
<li><strong>लॉन्च हफ़्ता:</strong> Reddit, सोशल, और प्रेस को उसी सुबह तालमेल में लाएँ; streamers को एक हफ़्ता पहले keys दें।</li>
</ul>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="बिना-पैसे-के-मैं-किसी-इंडी-गेम-की-मार्केटिंग-कैसे-करूँ" tabindex="-1">बिना पैसे के मैं किसी इंडी गेम की मार्केटिंग कैसे करूँ? <a class="header-anchor" href="#बिना-पैसे-के-मैं-किसी-इंडी-गेम-की-मार्केटिंग-कैसे-करूँ" aria-label="Permalink to &quot;बिना पैसे के मैं किसी इंडी गेम की मार्केटिंग कैसे करूँ?&quot;"></a></h3>
<p>जल्दी शुरू करें और मुफ़्त चैनलों पर टिकें: wishlists जमा करने के लिए महीनों पहले एक Steam पेज लगाएँ, अपने hook की short-form video clips पोस्ट करें, devlogs लिखें, सही Reddit और Discord communities में शेयर करें, और streamers और छोटी प्रेस को pitch करें। असली बात है समय के साथ लगातार बने रहना और एक साफ़, तेज़ hook, मार्केटिंग बजट नहीं।</p>
<h3 id="steam-पर-लॉन्च-करने-से-पहले-मुझे-कितने-wishlists-चाहिए" tabindex="-1">Steam पर लॉन्च करने से पहले मुझे कितने wishlists चाहिए? <a class="header-anchor" href="#steam-पर-लॉन्च-करने-से-पहले-मुझे-कितने-wishlists-चाहिए" aria-label="Permalink to &quot;Steam पर लॉन्च करने से पहले मुझे कितने wishlists चाहिए?&quot;"></a></h3>
<p>कोई जादुई नंबर नहीं है, लेकिन एक मोटा फ़्लोर करीब 7,000 है, जहाँ 7,000-10,000 आपको Popular Upcoming टैब पर मौका देते हैं। ज़्यादा बेहतर है, क्योंकि wishlists नोटिफिकेशन के ज़रिए लॉन्च-दिन की बिक्री में बदलते हैं। गहरी बात यह है कि उस हफ़्ते की टॉप रिलीज़ में से एक बनना, जो ज़्यादातर अपना पेज और मार्केटिंग जल्दी शुरू करने से आता है।</p>
<h3 id="_2026-में-इंडी-गेम्स-के-लिए-सबसे-अच्छा-मुफ़्त-मार्केटिंग-चैनल-कौन-सा-है" tabindex="-1">2026 में इंडी गेम्स के लिए सबसे अच्छा मुफ़्त मार्केटिंग चैनल कौन-सा है? <a class="header-anchor" href="#_2026-में-इंडी-गेम्स-के-लिए-सबसे-अच्छा-मुफ़्त-मार्केटिंग-चैनल-कौन-सा-है" aria-label="Permalink to &quot;2026 में इंडी गेम्स के लिए सबसे अच्छा मुफ़्त मार्केटिंग चैनल कौन-सा है?&quot;"></a></h3>
<p>असली gameplay की short-form video (TikTok, Reels, YouTube Shorts), क्योंकि algorithms clips को non-followers तक पहुँचाते हैं, जिससे बिना मौजूदा audience के भी पहुँच मिलती है। Streamers और YouTubers भी बेहद असरदार हैं। organic short-video पहुँच कुछ साल पहले के मुकाबले मुश्किल हो गई है, इसलिए एक वायरल हिट की उम्मीद रखने के बजाय लगातार पोस्ट करें।</p>
<h3 id="इंडी-मार्केटिंग-की-सबसे-बड़ी-गलती-क्या-है" tabindex="-1">इंडी मार्केटिंग की सबसे बड़ी गलती क्या है? <a class="header-anchor" href="#इंडी-मार्केटिंग-की-सबसे-बड़ी-गलती-क्या-है" aria-label="Permalink to &quot;इंडी मार्केटिंग की सबसे बड़ी गलती क्या है?&quot;"></a></h3>
<p>चुपचाप बनाते रहना और आख़िरी हफ़्ते में मार्केटिंग शुरू करना। wishlists और एक audience जमा करने में मार्केटिंग को महीनों का lead time लगता है, इसलिए एक बढ़िया गेम भी अगर ठंडे तरीके से शून्य wishlists के साथ, बिना trailer और कमज़ोर स्टोर पेज के लॉन्च हो, तो दब जाता है। अपना गेम जल्दी दिखाएँ, भले ही अधूरा हो, और लॉन्च से बहुत पहले दिलचस्पी जमा करना शुरू करें।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/steam-next-fest-strategy.html">Steam Next Fest रणनीति</a> — गहराई से demo-and-wishlist इवेंट</li>
<li><a href="/hi/guides/kickstarter-for-indie-games.html">इंडी गेम्स के लिए Kickstarter</a> — अगर आप crowdfunding का रास्ता चुनते हैं</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना गेम कैसे लॉन्च करें</a> — itch पर लॉन्च करना</li>
<li><a href="/hi/guides/get-more-plays-itch-io.html">itch.io पर ज़्यादा प्लेज़ कैसे पाएँ</a> — web-game ट्रैफ़िक चलाना</li>
<li><a href="/hi/guides/publish-web-game.html">2026 में web game पब्लिश करने की सबसे अच्छी जगहें</a> — web game कहाँ लगाएँ</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 में वेब गेम पब्लिश करने की सबसे अच्छी जगहें]]></title>
            <link>https://app.cinevva.com/hi/guides/publish-web-game</link>
            <guid>https://app.cinevva.com/hi/guides/publish-web-game</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में वेब गेम कहाँ पब्लिश करें, itch.io, Newgrounds, CrazyGames, Poki, GameJolt और अन्य की तुलना reach, revenue share और ज़रूरतों के आधार पर।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-वेब-गेम-पब्लिश-करने-की-सबसे-अच्छी-जगहें" tabindex="-1">2026 में वेब गेम पब्लिश करने की सबसे अच्छी जगहें <a class="header-anchor" href="#_2026-में-वेब-गेम-पब्लिश-करने-की-सबसे-अच्छी-जगहें" aria-label="Permalink to &quot;2026 में वेब गेम पब्लिश करने की सबसे अच्छी जगहें&quot;"></a></h1>
<p><em>आख़िरी बार अपडेट किया गया: जून 2026.</em></p>
<p>आपने एक वेब गेम बना लिया। अब क्या? आप इसे कहाँ पब्लिश करते हैं, यह तय करता है कि कितने लोग इसे खेलेंगे, आप कुछ कमाएँगे या नहीं, और आपके पास कितना कंट्रोल रहेगा। ये platforms इंस्टेंट-और-फ्री सेल्फ-पब्लिशिंग से लेकर करोड़ों प्लेयर वाले curated portals तक फैले हैं, जिनका बार ज़्यादा ऊँचा है। यहाँ 2026 का पूरा जायज़ा है, उन trade-offs के साथ जो सच में मायने रखते हैं।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/hyWQHY7EqoE" title="How to make an itch.io game page for your indie game — TheOdie" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">एक मज़बूत itch.io पेज सेट करना, वेब गेम सेल्फ-पब्लिश करने की सबसे लचीली जगह।</div>
<h2 id="तुलना" tabindex="-1">तुलना <a class="header-anchor" href="#तुलना" aria-label="Permalink to &quot;तुलना&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Platform</th>
<th>Reach</th>
<th>Revenue model</th>
<th>Approval</th>
<th>किसके लिए सबसे अच्छा</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>itch.io</strong></td>
<td>बड़ा (indie)</td>
<td>कट आप तय करते हैं (डिफ़ॉल्ट 90% आप / 10% itch); paid, donations, फ्री</td>
<td>इंस्टेंट, कोई गेट नहीं</td>
<td>Indie, paid/PWYW, jam गेम</td>
</tr>
<tr>
<td><strong>Newgrounds</strong></td>
<td>मध्यम, कम्युनिटी</td>
<td>क्रिएटर्स को ad rev-share</td>
<td>Portal voting</td>
<td>फ्री browser गेम, art/animation क्राउड</td>
</tr>
<tr>
<td><strong>CrazyGames</strong></td>
<td>~35M MAU</td>
<td>Ad rev-share (% सार्वजनिक नहीं)</td>
<td>QA + review</td>
<td>Action/arcade/casual, बड़ी audience</td>
</tr>
<tr>
<td><strong>Poki</strong></td>
<td>~100M MAU</td>
<td>100% अगर आप प्लेयर लाएँ / 50% अगर Poki लाए</td>
<td>कड़ा, playtested</td>
<td>पॉलिश्ड, ऑप्टिमाइज़्ड casual गेम</td>
</tr>
<tr>
<td><strong>GameJolt</strong></td>
<td>कम्युनिटी</td>
<td>Marketplace कट अधिकतम 10%</td>
<td>इंस्टेंट</td>
<td>fanbase बनाना, कम-फ़ीस बिक्री</td>
</tr>
<tr>
<td><strong>gd.games</strong> (GDevelop)</td>
<td>कम्युनिटी</td>
<td>Session-आधारित ad कमाई</td>
<td>पहले प्राइवेट फिर पब्लिक</td>
<td>GDevelop यूज़र्स, फ्री hosting</td>
</tr>
<tr>
<td><strong>Armor Games</strong></td>
<td>छोटा</td>
<td>अपफ्रंट sponsorship/licensing फ़ीस</td>
<td>Email pitch, curated</td>
<td>पॉलिश्ड गेम जो पेचेक चाहते हैं</td>
</tr>
<tr>
<td><strong>GameDistribution / GameMonetize</strong></td>
<td>Network reach</td>
<td>Rev-share (33% / 45%+)</td>
<td>Dashboard + review</td>
<td>Casual गेम के लिए पैसिव syndication</td>
</tr>
</tbody>
</table>
<p>बड़े दो portals के बारे में एक बात: <strong>Poki और CrazyGames</strong> के पास सबसे बड़ी audiences हैं लेकिन सबसे ऊँचे बार और अनिवार्य SDKs भी। <strong>itch.io</strong> में सबसे ज़्यादा आज़ादी और सबसे अच्छा revenue split है, पर traffic आपको खुद लाना होगा। <strong>Kongregate</strong> को छोड़ दें, इसने 2020 में नए गेम लेना बंद कर दिया था और अब यह बस एक archive है।</p>
<h2 id="पहले-सेल्फ-पब्लिश-करें-itch-io" tabindex="-1">पहले सेल्फ-पब्लिश करें: itch.io <a class="header-anchor" href="#पहले-सेल्फ-पब्लिश-करें-itch-io" aria-label="Permalink to &quot;पहले सेल्फ-पब्लिश करें: itch.io&quot;"></a></h2>
<p>ज़्यादातर indies के लिए itch.io डिफ़ॉल्ट शुरुआती जगह है। आप एक HTML5 build अपलोड करते हैं (एक ZIP जिसमें <code>index.html</code> हो), यह एक iframe में embed हो जाता है, और आप बिना किसी approval गेट के मिनटों में live हो जाते हैं। आप revenue split तय करते हैं (डिफ़ॉल्ट में आपको 90% मिलता है), और आप चार्ज कर सकते हैं, donations ले सकते हैं, या फ्री रख सकते हैं। दिक़्क़त यह है कि itch खुद अपने दम पर ज़्यादा टिकाऊ traffic नहीं लाता; प्लेयर आपको खुद यहाँ लाने पड़ते हैं। यह हमारी <a href="/hi/guides/get-more-plays-itch-io.html">itch.io पर ज़्यादा प्लेज़ कैसे पाएँ</a> गाइड में कवर किया गया है, और बुनियादी बातें <a href="/hi/guides/itch-io-launch-guide.html">itch.io लॉन्च गाइड</a> में।</p>
<h2 id="बड़े-portals-crazygames-और-poki" tabindex="-1">बड़े portals: CrazyGames और Poki <a class="header-anchor" href="#बड़े-portals-crazygames-और-poki" aria-label="Permalink to &quot;बड़े portals: CrazyGames और Poki&quot;"></a></h2>
<p>अगर आप करोड़ों की बिल्ट-इन audience चाहते हैं, तो casual portals वहीं हैं, लेकिन ये चुनिंदा हैं।</p>
<ul>
<li><strong>CrazyGames</strong> (~35M monthly users) HTML5/WebGL गेम लेता है। एक बेसिक listing के लिए कम ज़रूरत होती है, पर monetization के साथ पूरा लॉन्च करने के लिए इसका SDK और QA पास करना ज़रूरी है, जिसमें ad blockers के साथ काम करना और सीधे gameplay में लैंड करना शामिल है। Payouts €100 से शुरू होते हैं।</li>
<li><strong>Poki</strong> (~100M monthly users) सबसे कड़ा है: एक कई-चरणों वाली pipeline जिसमें playtesting होती है, गेम को क्वालिटी, player fit और तकनीकी मज़बूती पर परखा जाता है। इसका SDK अनिवार्य है, और revenue deal इस पर निर्भर करता है कि प्लेयर कौन लाता है (जब आप लाएँ तो 100%, जब Poki लाए तो 50%)।</li>
</ul>
<p>ये पॉलिश्ड, बहुत ऑप्टिमाइज़्ड casual गेम के लिए ठीक बैठते हैं, और इनकी प्रक्रिया से गुज़रना असल में काफ़ी मेहनत का काम है।</p>
<h2 id="कम्युनिटी-platforms-newgrounds-gamejolt-gd-games" tabindex="-1">कम्युनिटी platforms: Newgrounds, GameJolt, gd.games <a class="header-anchor" href="#कम्युनिटी-platforms-newgrounds-gamejolt-gd-games" aria-label="Permalink to &quot;कम्युनिटी platforms: Newgrounds, GameJolt, gd.games&quot;"></a></h2>
<ul>
<li><strong>Newgrounds</strong> कम्युनिटी-फ़र्स्ट है, जिसमें portal-voting सिस्टम और ad revenue sharing है। फ्री browser गेम और art/animation क्राउड के लिए बढ़िया।</li>
<li><strong>GameJolt</strong> अपना marketplace कट अधिकतम 10% रखता है और following व fanbase बनाने के इर्द-गिर्द बना है।</li>
<li><strong>gd.games</strong> GDevelop यूज़र्स को session-आधारित ad कमाई और editor से one-click publishing के साथ फ्री hosting देता है।</li>
</ul>
<h2 id="distribution-networks-gamedistribution-gamemonetize" tabindex="-1">Distribution networks: GameDistribution, GameMonetize <a class="header-anchor" href="#distribution-networks-gamedistribution-gamemonetize" aria-label="Permalink to &quot;Distribution networks: GameDistribution, GameMonetize&quot;"></a></h2>
<p>ये एक HTML5 अपलोड को कई partner sites पर पैसिव reach के लिए syndicate करते हैं, बदले में बड़ा कट और अनिवार्य SDK लेते हैं। GameDistribution बड़ा हिस्सा लेता है; GameMonetize ज़्यादा split और तेज़, कम-थ्रेशोल्ड payouts देता है। Casual, puzzle और .io गेम के लिए अच्छा जहाँ split से ज़्यादा वॉल्यूम मायने रखता है।</p>
<h2 id="सेल्फ-hosting-को-मत-भूलें" tabindex="-1">सेल्फ-hosting को मत भूलें <a class="header-anchor" href="#सेल्फ-hosting-को-मत-भूलें" aria-label="Permalink to &quot;सेल्फ-hosting को मत भूलें&quot;"></a></h2>
<p>एक HTML5 गेम बस static files होता है, इसलिए आप इसे GitHub Pages, Cloudflare Pages, Netlify या Vercel पर, अपने खुद के domain पर, फ्री होस्ट कर सकते हैं, कोई revenue कट नहीं देते और SEO व analytics पर पूरा कंट्रोल रखते हैं। नुक़सान यह है कि कोई बिल्ट-इन audience नहीं मिलती। एक आम तरीक़ा: अपने खुद के brand और SEO के लिए canonical वर्ज़न सेल्फ-होस्ट करें, और reach के लिए itch.io और एक-दो portal पर भी पब्लिश करें। अगर आपका गेम Cinevva जैसे किसी creator में बना है, तो आप इसे link से तुरंत शेयर भी कर सकते हैं और showcase में सबमिट कर सकते हैं।</p>
<h2 id="कैसे-चुनें" tabindex="-1">कैसे चुनें <a class="header-anchor" href="#कैसे-चुनें" aria-label="Permalink to &quot;कैसे चुनें&quot;"></a></h2>
<p>Platform को अपने लक्ष्य से मिलाएँ। सबसे ज़्यादा आज़ादी और सबसे अच्छा split चाहिए? itch.io और सेल्फ-hosting। सबसे बड़ी audience चाहिए और आपके पास एक पॉलिश्ड casual गेम है? Poki या CrazyGames। एक तैयार क्वालिटी गेम के लिए अपफ्रंट पेमेंट चाहिए? Armor Games को pitch करें। पैसिव syndicated reach चाहिए? कोई distribution network। ज़्यादातर indies एक साथ कई जगह पब्लिश करते हैं: home base के तौर पर itch.io, reach के लिए एक portal, और कंट्रोल के लिए अपना खुद का link।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="मुझे-अपना-html5-गेम-कहाँ-पब्लिश-करना-चाहिए" tabindex="-1">मुझे अपना HTML5 गेम कहाँ पब्लिश करना चाहिए? <a class="header-anchor" href="#मुझे-अपना-html5-गेम-कहाँ-पब्लिश-करना-चाहिए" aria-label="Permalink to &quot;मुझे अपना HTML5 गेम कहाँ पब्लिश करना चाहिए?&quot;"></a></h3>
<p>itch.io से शुरू करें: यह इंस्टेंट है, फ्री है, आपको सबसे अच्छा revenue split देता है, और चार्ज करने या फ्री रखने की छूट देता है। बड़ी audience के लिए, पॉलिश्ड casual गेम CrazyGames या Poki को सबमिट करें (दोनों में चुनिंदा reviews और अनिवार्य SDKs हैं)। ज़्यादातर डेवलपर्स कई जगह पब्लिश करते हैं: itch.io के साथ एक portal और अपना खुद का सेल्फ-होस्टेड link।</p>
<h3 id="कौन-सा-वेब-गेम-platform-सबसे-ज़्यादा-पैसे-देता-है" tabindex="-1">कौन सा वेब गेम platform सबसे ज़्यादा पैसे देता है? <a class="header-anchor" href="#कौन-सा-वेब-गेम-platform-सबसे-ज़्यादा-पैसे-देता-है" aria-label="Permalink to &quot;कौन सा वेब गेम platform सबसे ज़्यादा पैसे देता है?&quot;"></a></h3>
<p>यह traffic और model पर निर्भर करता है। itch.io सबसे अच्छा split देता है (डिफ़ॉल्ट में आप 90%+ रखते हैं) पर audience आप लाते हैं। Poki और CrazyGames के पास बड़ी बिल्ट-इन audiences हैं लेकिन वे अपनी शर्तों पर ad revenue बाँटते हैं। Armor Games क्वालिटी गेम के लिए अपफ्रंट sponsorship फ़ीस देता है। कोई एक सबसे अच्छा नहीं है; कम traffic के साथ ऊँचा split, करोड़ों प्लेयर वाले छोटे split से कम कमा सकता है।</p>
<h3 id="क्या-वेब-गेम-पब्लिश-करने-के-लिए-मुझे-sdk-चाहिए" tabindex="-1">क्या वेब गेम पब्लिश करने के लिए मुझे SDK चाहिए? <a class="header-anchor" href="#क्या-वेब-गेम-पब्लिश-करने-के-लिए-मुझे-sdk-चाहिए" aria-label="Permalink to &quot;क्या वेब गेम पब्लिश करने के लिए मुझे SDK चाहिए?&quot;"></a></h3>
<p>itch.io, Newgrounds और GameJolt पर नहीं, आप बस अपलोड करते हैं। बड़े portals (Poki, CrazyGames) और distribution networks (GameDistribution, GameMonetize) पर monetization और पूरे लॉन्च के लिए SDK ज़रूरी है। SDK ads और platform फ़ीचर्स संभालता है। कहाँ पब्लिश करना है यह चुनते समय उस integration के काम को भी ध्यान में रखें।</p>
<h3 id="क्या-मैं-वही-वेब-गेम-कई-platforms-पर-पब्लिश-कर-सकता-हूँ" tabindex="-1">क्या मैं वही वेब गेम कई platforms पर पब्लिश कर सकता हूँ? <a class="header-anchor" href="#क्या-मैं-वही-वेब-गेम-कई-platforms-पर-पब्लिश-कर-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं वही वेब गेम कई platforms पर पब्लिश कर सकता हूँ?&quot;"></a></h3>
<p>आमतौर पर हाँ, जब तक आप किसी exclusive deal पर सहमत न हों (मिसाल के तौर पर, Poki का ज़्यादा revenue share web exclusivity माँग सकता है)। सेल्फ-hosting के साथ itch.io और एक non-exclusive portal एक आम मेल है। हर platform की शर्तें पढ़ें, क्योंकि exclusivity और revenue share अक्सर आपस में जुड़े होते हैं।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना गेम कैसे लॉन्च करें</a> — कदम-दर-कदम</li>
<li><a href="/hi/guides/get-more-plays-itch-io.html">itch.io पर ज़्यादा प्लेज़ कैसे पाएँ</a> — live होने के बाद traffic लाना</li>
<li><a href="/hi/guides/promote-indie-game-no-budget.html">बिना बजट के indie गेम कैसे प्रोमोट करें</a> — $0 पर मार्केटिंग</li>
<li><a href="/hi/guides/steam-next-fest-strategy.html">Steam Next Fest रणनीति</a> — अगर आप Steam पर भी जाते हैं</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे वेब गेम engines</a> — पहले गेम बनाना</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Sketchfab vs Poly Haven vs Kenney: Free 3D Assets की तुलना (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/sketchfab-polyhaven-kenney</link>
            <guid>https://app.cinevva.com/hi/guides/sketchfab-polyhaven-kenney</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में free game assets के लिए Sketchfab vs Poly Haven vs Kenney की तुलना, license, style, variety, formats, और किस तरह के game के लिए किसे चुनें, इस पर।]]></description>
            <content:encoded><![CDATA[<h1 id="sketchfab-vs-poly-haven-vs-kenney-free-3d-assets-की-तुलना-2026" tabindex="-1">Sketchfab vs Poly Haven vs Kenney: Free 3D Assets की तुलना (2026) <a class="header-anchor" href="#sketchfab-vs-poly-haven-vs-kenney-free-3d-assets-की-तुलना-2026" aria-label="Permalink to &quot;Sketchfab vs Poly Haven vs Kenney: Free 3D Assets की तुलना (2026)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>जब आप free 3D assets ढूँढते हैं तो तीन नाम बार-बार सामने आते हैं: Sketchfab, Poly Haven, और Kenney। ये असल में एक-दूसरे के प्रतिद्वंद्वी नहीं हैं, ये अलग-अलग चीज़ों में अच्छे हैं। एक बहुत बड़ा mixed-license marketplace है, एक photorealistic और CC0 है, एक stylized और game-ready है। 2026 में ये कैसे तुलना में खड़े होते हैं और किसके लिए किसे चुनना है, यह रहा।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/8aGqyS7IQVA" title="Top Websites for Free 3D Models" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Free 3D model sources का एक राउंडअप, जिसमें यहाँ तुलना किए गए तीनों शामिल हैं।</div>
<h2 id="एक-नज़र-में" tabindex="-1">एक नज़र में <a class="header-anchor" href="#एक-नज़र-में" aria-label="Permalink to &quot;एक नज़र में&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th>Sketchfab</th>
<th>Poly Haven</th>
<th>Kenney</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>किसके लिए सबसे अच्छा</strong></td>
<td>Variety, जटिल/विस्तृत models</td>
<td>Photorealistic models, textures, HDRIs</td>
<td>Game-ready, stylized, एक जैसा style</td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>Mixed (हर एक जाँचें)</td>
<td>CC0 (सभी)</td>
<td>CC0 (सभी)</td>
</tr>
<tr>
<td><strong>Attribution</strong></td>
<td>Model पर निर्भर</td>
<td>कोई नहीं</td>
<td>कोई नहीं</td>
</tr>
<tr>
<td><strong>Catalog</strong></td>
<td>करोड़ों</td>
<td>2,000+</td>
<td>दसियों हज़ार</td>
</tr>
<tr>
<td><strong>Style</strong></td>
<td>सब कुछ</td>
<td>Realistic</td>
<td>एकसार low-poly / साफ</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>glTF, FBX, OBJ</td>
<td>glTF, Blend, FBX</td>
<td>GLB, PNG, WAV, और भी</td>
</tr>
<tr>
<td><strong>Direct download / API</strong></td>
<td>Login ज़रूरी</td>
<td>हाँ, no-key API</td>
<td>हाँ (packs)</td>
</tr>
</tbody>
</table>
<h2 id="kenney-एकसार-और-game-ready" tabindex="-1">Kenney: एकसार और game-ready <a class="header-anchor" href="#kenney-एकसार-और-game-ready" aria-label="Permalink to &quot;Kenney: एकसार और game-ready&quot;"></a></h2>
<p>एक जैसे दिखने वाले game तक पहुँचने का सबसे तेज़ रास्ता Kenney है। दसियों हज़ार assets, सभी CC0 (कोई attribution नहीं, commercial ठीक है), एक जैसे styles में जिन्हें आप packs के आर-पार मिला सकते हैं, सभी games के लिए optimized। इसका trade-off range है: यह photorealistic के बजाय stylized और साफ है, और आपको कोई एक खास हाइपर-डिटेल्ड prop यहाँ नहीं मिलेगा। Kenney तब इस्तेमाल करें जब आप चाहते हैं कि आपका पूरा game एक साथ का लगे, तेज़ी से, और licensing की बिल्कुल भी चिंता न हो।</p>
<h2 id="poly-haven-photorealistic-और-cc0" tabindex="-1">Poly Haven: photorealistic और CC0 <a class="header-anchor" href="#poly-haven-photorealistic-और-cc0" aria-label="Permalink to &quot;Poly Haven: photorealistic और CC0&quot;"></a></h2>
<p>Poly Haven realism का विशेषज्ञ है: PBR-textured 3D models, high-resolution textures, और lighting के लिए HDRIs, सभी CC0, कई resolutions और direct downloads के लिए एक no-key API के साथ। 2,000 से ज़्यादा assets और लगातार बढ़ रहे हैं। Catalog छोटा और ज़्यादा केंद्रित है (props, environment के टुकड़े, materials, lighting) न कि कोई फैला हुआ marketplace। Poly Haven तब इस्तेमाल करें जब आप बिना किसी attribution के realistic materials, environment dressing, और सही HDRI lighting चाहते हैं।</p>
<h2 id="sketchfab-variety-license-जाँचने-की-शर्त-के-साथ" tabindex="-1">Sketchfab: variety, license जाँचने की शर्त के साथ <a class="header-anchor" href="#sketchfab-variety-license-जाँचने-की-शर्त-के-साथ" aria-label="Permalink to &quot;Sketchfab: variety, license जाँचने की शर्त के साथ&quot;"></a></h2>
<p>Sketchfab दानव है: करोड़ों models, download से पहले एक 3D preview, और styles व विषयों की बहुत बड़ी range। पेच यह है कि licenses हर model के हिसाब से अलग होते हैं, इसलिए आपको downloadable के साथ CC0 या CC-BY के लिए filter करना होगा और हर एक को verify करना होगा। एक 2026 की चेतावनी: Sketchfab का store Epic के Fab में चला गया, और सिर्फ़ CC-BY और Fab Standard content ही migrate हो सकता है। CC0 और दूसरे Creative Commons models फ़िलहाल Sketchfab पर downloadable रहते हैं, लेकिन इसे धीरे-धीरे घटता हुआ CC0 source मानें और जो चाहिए वह ले लें। Sketchfab तब इस्तेमाल करें जब आपको कोई खास या असामान्य model चाहिए जो बाकी दोनों के पास नहीं है, और आप license जाँचने के लिए तैयार हैं।</p>
<h2 id="आपको-किसे-इस्तेमाल-करना-चाहिए" tabindex="-1">आपको किसे इस्तेमाल करना चाहिए? <a class="header-anchor" href="#आपको-किसे-इस्तेमाल-करना-चाहिए" aria-label="Permalink to &quot;आपको किसे इस्तेमाल करना चाहिए?&quot;"></a></h2>
<ul>
<li><strong>पूरे-game की एकरूपता, तेज़, कोई attribution नहीं:</strong> Kenney।</li>
<li><strong>Realistic props, materials, और lighting, CC0:</strong> Poly Haven।</li>
<li><strong>कोई खास या असामान्य model, सबसे बड़ा चयन:</strong> Sketchfab (license जाँचें)।</li>
</ul>
<p>व्यवहार में, कई developers तीनों इस्तेमाल करते हैं: base set और UI के लिए Kenney, realistic textures और HDRIs के लिए Poly Haven, और एक-अकेले hero asset के लिए Sketchfab। realistic Poly Haven materials को stylized Kenney models पर मिलाना टकरा सकता है, इसलिए पहले अपनी art direction तय करें, फिर उससे मेल खाते sources चुनें।</p>
<h2 id="तीन-बड़े-नामों-से-आगे" tabindex="-1">तीन बड़े नामों से आगे <a class="header-anchor" href="#तीन-बड़े-नामों-से-आगे" aria-label="Permalink to &quot;तीन बड़े नामों से आगे&quot;"></a></h2>
<p>ये आपके इकलौते विकल्प नहीं हैं। Quaternius stylized low-poly के लिए एक और बेहतरीन CC0 source है, AmbientCG CC0 textures में माहिर है, और Poly Pizza archived Google Poly catalog को होस्ट करता है। आप AI से भी models बना सकते हैं। पूरे नज़ारे के लिए, हमारी <a href="/hi/guides/free-3d-model-sites.html">free 3D model sites</a> और <a href="/hi/guides/game-assets-guide.html">free game assets</a> guides देखें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="free-3d-models-के-लिए-sketchfab-poly-haven-या-kenney-में-से-सबसे-अच्छा-कौन-है" tabindex="-1">Free 3D models के लिए Sketchfab, Poly Haven, या Kenney में से सबसे अच्छा कौन है? <a class="header-anchor" href="#free-3d-models-के-लिए-sketchfab-poly-haven-या-kenney-में-से-सबसे-अच्छा-कौन-है" aria-label="Permalink to &quot;Free 3D models के लिए Sketchfab, Poly Haven, या Kenney में से सबसे अच्छा कौन है?&quot;"></a></h3>
<p>ये अलग-अलग चीज़ों में सबसे अच्छे हैं। Kenney एकसार, game-ready stylized assets के लिए सबसे अच्छा है, सभी CC0। Poly Haven photorealistic models, textures, और HDRIs के लिए सबसे अच्छा है, सभी CC0। Sketchfab variety और खास या विस्तृत models के लिए सबसे अच्छा है, लेकिन इसके licenses अलग-अलग होते हैं इसलिए आपको हर एक जाँचना होगा। कई developers तीनों को साथ में इस्तेमाल करते हैं।</p>
<h3 id="क्या-poly-haven-और-kenney-सचमुच-commercial-games-के-लिए-free-हैं" tabindex="-1">क्या Poly Haven और Kenney सचमुच commercial games के लिए free हैं? <a class="header-anchor" href="#क्या-poly-haven-और-kenney-सचमुच-commercial-games-के-लिए-free-हैं" aria-label="Permalink to &quot;क्या Poly Haven और Kenney सचमुच commercial games के लिए free हैं?&quot;"></a></h3>
<p>हाँ। दोनों पूरी तरह CC0 हैं, यानी हर asset public domain है: commercial इस्तेमाल के लिए free, बदला जा सकने वाला, और कोई attribution ज़रूरी नहीं। इससे ये तीनों में सबसे कम जोखिम वाले दो sources बन जाते हैं। इसके उलट Sketchfab के हर-model पर अलग licenses होते हैं जिन्हें commercial इस्तेमाल से पहले आपको verify करना होगा।</p>
<h3 id="क्या-मुझे-इन-sites-के-assets-को-credit-देना-पड़ेगा" tabindex="-1">क्या मुझे इन sites के assets को credit देना पड़ेगा? <a class="header-anchor" href="#क्या-मुझे-इन-sites-के-assets-को-credit-देना-पड़ेगा" aria-label="Permalink to &quot;क्या मुझे इन sites के assets को credit देना पड़ेगा?&quot;"></a></h3>
<p>Kenney या Poly Haven के लिए नहीं, क्योंकि सब कुछ CC0 है। Sketchfab के लिए यह हर model के license पर निर्भर करता है: CC0 को किसी credit की ज़रूरत नहीं, CC-BY के लिए attribution ज़रूरी है, और कुछ models को commercial तौर पर बिल्कुल भी इस्तेमाल नहीं किया जा सकता। ship करने से पहले हमेशा हर Sketchfab model का license जाँचें।</p>
<h3 id="क्या-मैं-एक-ही-game-में-तीनों-के-assets-मिला-सकता-हूँ" tabindex="-1">क्या मैं एक ही game में तीनों के assets मिला सकता हूँ? <a class="header-anchor" href="#क्या-मैं-एक-ही-game-में-तीनों-के-assets-मिला-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं एक ही game में तीनों के assets मिला सकता हूँ?&quot;"></a></h3>
<p>तकनीकी तौर पर हाँ, और licenses इसकी इजाज़त देते हैं, लेकिन अपनी art direction का ध्यान रखें। Kenney का stylized लुक और Poly Haven के photorealistic materials अगर लापरवाही से मिलाए जाएँ तो टकरा सकते हैं। पहले एक visual style तय करें, फिर मेल खाते assets लें, और जो पीस CC0 sources के पास नहीं हैं उनके लिए Sketchfab का इस्तेमाल करें।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/free-3d-model-sites.html">Games के लिए सबसे अच्छी Free 3D Model Sites</a> — बड़ा मैदान</li>
<li><a href="/hi/guides/game-assets-guide.html">Free Game Assets कहाँ मिलें</a> — 20+ sources, सभी तरह के</li>
<li><a href="/hi/guides/ai-asset-generators-games.html">Games के लिए सबसे अच्छे AI Asset Generators</a> — इसके बजाय बनाएँ</li>
<li><a href="/hi/guides/game-asset-licenses.html">Game Asset Licenses समझाए गए</a> — CC0, CC-BY, और बाकी</li>
<li><a href="/hi/guides/free-sound-effects-music.html">Games के लिए Free Sound Effects और Music</a> — audio वाला पहलू</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Web 3D के लिए Unity WebGL बनाम Godot बनाम PlayCanvas (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/unity-godot-playcanvas-web</link>
            <guid>https://app.cinevva.com/hi/guides/unity-godot-playcanvas-web</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में Unity WebGL बनाम Godot web export बनाम PlayCanvas, build size, load time, WebGPU, workflow, और cost पर तुलना, ताकि browser के लिए सही 3D engine चुना जा सके।]]></description>
            <content:encoded><![CDATA[<h1 id="web-3d-के-लिए-unity-webgl-बनाम-godot-बनाम-playcanvas-2026" tabindex="-1">Web 3D के लिए Unity WebGL बनाम Godot बनाम PlayCanvas (2026) <a class="header-anchor" href="#web-3d-के-लिए-unity-webgl-बनाम-godot-बनाम-playcanvas-2026" aria-label="Permalink to &quot;Web 3D के लिए Unity WebGL बनाम Godot बनाम PlayCanvas (2026)&quot;"></a></h1>
<p><em>आख़िरी बार अपडेट किया गया: जून 2026.</em></p>
<p>अगर आपको एक ऐसा 3D game चाहिए जो browser में चले, तो तीन engine सबसे ज़्यादा सामने आते हैं: Unity, Godot, और PlayCanvas। ये web तक बहुत अलग-अलग रास्तों से पहुँचते हैं। Unity एक desktop पावरहाउस है जो WebGL पर export करता है, Godot एक फ़्री ओपन-सोर्स ऑल-राउंडर है, और PlayCanvas शुरू से ही web के लिए बनाया गया है। खास browser 3D के लिए 2026 में इनकी तुलना ऐसी दिखती है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/MiejI68zyCk" title="PlayCanvas - The Best 3D Game Engine for Web? — GameFromScratch" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">GameFromScratch, PlayCanvas को एक web-first 3D engine के तौर पर देखता हुआ।</div>
<h2 id="झटपट-फ़ैसला" tabindex="-1">झटपट फ़ैसला <a class="header-anchor" href="#झटपट-फ़ैसला" aria-label="Permalink to &quot;झटपट फ़ैसला&quot;"></a></h2>
<ul>
<li><strong>Web-first 3D, सबसे छोटे builds, सबसे बेहतर WebGPU:</strong> PlayCanvas।</li>
<li><strong>फ़्री, ओपन-सोर्स, 2D और 3D दोनों, web और native के लिए एक ही codebase:</strong> Godot।</li>
<li><strong>आपके पास पहले से एक Unity project है, या आपको console और हाई-एंड native भी चाहिए:</strong> Unity, बड़ा web download मानते हुए।</li>
</ul>
<h2 id="तुलना" tabindex="-1">तुलना <a class="header-anchor" href="#तुलना" aria-label="Permalink to &quot;तुलना&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th>Unity (WebGL)</th>
<th>Godot (4.7)</th>
<th>PlayCanvas</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Web target</strong></td>
<td>WebGL2 export</td>
<td>WebGL2 + Wasm (4.7 में wasm64)</td>
<td>WebGL2 + WebGPU</td>
</tr>
<tr>
<td><strong>खाली build size</strong></td>
<td>~8 MB+</td>
<td>~9 MB gzipped</td>
<td>~1-2 MB</td>
</tr>
<tr>
<td><strong>Load time</strong></td>
<td>तीनों में सबसे धीमा</td>
<td>मध्यम</td>
<td>सबसे तेज़</td>
</tr>
<tr>
<td><strong>WebGPU</strong></td>
<td>Experimental</td>
<td>Web पर support नहीं</td>
<td>सबसे परिपक्व</td>
</tr>
<tr>
<td><strong>2D / 3D</strong></td>
<td>दोनों</td>
<td>दोनों (मज़बूत 2D + 3D)</td>
<td>3D-first</td>
</tr>
<tr>
<td><strong>Editor</strong></td>
<td>Desktop</td>
<td>Desktop (हल्का)</td>
<td>Cloud, collaborative</td>
</tr>
<tr>
<td><strong>Language</strong></td>
<td>C# (C# web पर export नहीं कर सकता, नीचे देखें)</td>
<td>GDScript (C# web पर export नहीं कर सकता)</td>
<td>JavaScript / TypeScript</td>
</tr>
<tr>
<td><strong>Cost</strong></td>
<td>$200K revenue तक फ़्री; Pro ~$2,200/seat/yr</td>
<td>फ़्री (MIT)</td>
<td>फ़्री tier; cloud editor पेड</td>
</tr>
</tbody>
</table>
<h2 id="unity-webgl" tabindex="-1">Unity (WebGL) <a class="header-anchor" href="#unity-webgl" aria-label="Permalink to &quot;Unity (WebGL)&quot;"></a></h2>
<p>Unity खेलने लायक WebGL builds export करता है, और इसका ecosystem (Asset Store, tooling, docs) बेजोड़ है। खास web के लिए पेच यह है: खाली builds करीब 8 MB से शुरू होते हैं, load time web-native engines से पीछे रहता है, और mobile browser की memory तंग पड़ सकती है। WebGPU मौजूद है पर experimental है और डिफ़ॉल्ट रूप से बंद है; असली target WebGL2 है। एक प्रैक्टिकल दिक्कत यह है कि browser में डालने के लिए Unity सबसे भारी विकल्प है, इसलिए यह तब चमकता है जब web किसी ऐसे game के लिए एक सेकंडरी target हो जो desktop, mobile, या console पर भी जाता है। Unity ने अपने Muse AI tool की जगह Unity AI (ओपन बीटा, 2026) भी ला दिया है, अगर आपको editor के अंदर AI मदद चाहिए।</p>
<h2 id="godot-4-7" tabindex="-1">Godot (4.7) <a class="header-anchor" href="#godot-4-7" aria-label="Permalink to &quot;Godot (4.7)&quot;"></a></h2>
<p>Godot, MIT license के तहत फ़्री और ओपन-सोर्स है, इसमें कोई revenue कैप या seat फ़ीस नहीं है, और यह 2D और 3D दोनों को अच्छी तरह संभालता है। वर्ज़न 4.7 (जून 2026) डिफ़ॉल्ट रूप से WebAssembly SIMD के साथ आता है और इसमें wasm64 export विकल्प जोड़ा गया है, जो पुरानी 4 GB memory सीमा हटा देता है। Web rendering अब भी सिर्फ़ WebGL 2.0 (Compatibility renderer) है, क्योंकि Godot में अभी WebGPU support नहीं है। दो web पेच अब भी बाक़ी हैं: C# projects web पर export नहीं हो सकते (सिर्फ़ GDScript), और SharedArrayBuffer threading के लिए ख़ास COOP/COEP server headers चाहिए, जो कुछ hosts पर अटका सकते हैं। ऐसे indie के लिए जो licensing की चिंता के बिना web और native दोनों के लिए एक ही engine चाहता है, Godot मज़बूत फ़्री पसंद है।</p>
<h2 id="playcanvas" tabindex="-1">PlayCanvas <a class="header-anchor" href="#playcanvas" aria-label="Permalink to &quot;PlayCanvas&quot;"></a></h2>
<p>PlayCanvas पहले दिन से web के लिए डिज़ाइन किया गया था। इसका runtime बहुत छोटा (~1-2 MB) है, यह तीनों में सबसे तेज़ लोड होता है, और किसी भी web engine के मुकाबले इसका WebGPU renderer सबसे प्रोडक्शन-रेडी है, जिसमें v2.20 (जून 2026) से compute-आधारित 3D Gaussian splat rendering भी शामिल है। editor cloud-आधारित और collaborative है, जो teams के लिए ठीक है पर हर किसी के workflow में फ़िट नहीं बैठेगा। यह 3D-first है और जटिल 2D के लिए कम मुफ़ीद है। अगर download size और web performance आपकी प्राथमिकताएँ हैं, तो PlayCanvas ठीक इसी के लिए बना है।</p>
<h2 id="कैसे-चुनें" tabindex="-1">कैसे चुनें <a class="header-anchor" href="#कैसे-चुनें" aria-label="Permalink to &quot;कैसे चुनें&quot;"></a></h2>
<p>अपनी असल पाबंदी के हिसाब से चुनें। अगर आपको सबसे छोटा, सबसे तेज़ लोड होने वाला 3D web build और अच्छा WebGPU चाहिए, तो PlayCanvas चुनें। अगर आप एक फ़्री, ओपन engine चाहते हैं जो 2D और 3D दोनों करे और एक ही codebase से desktop और mobile पर भी export करे, तो Godot चुनें। अगर आपका game पहले से Unity में रहता है या उसे सचमुच Unity की हाई-एंड rendering और console export की ज़रूरत है, तो WebGL build निकालें और बड़ा download मान लें।</p>
<p>अगर आप engine को पूरी तरह छोड़कर एक AI को एक 3D web game बताना चाहें, तो वह एक अलग रास्ता है, जिसे <a href="/hi/guides/3d-browser-game-without-coding.html">बिना coding के 3D browser game कैसे बनाएँ</a> में समझाया गया है।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="_3d-browser-games-के-लिए-सबसे-बेहतर-engine-कौन-सा-है" tabindex="-1">3D browser games के लिए सबसे बेहतर engine कौन सा है? <a class="header-anchor" href="#_3d-browser-games-के-लिए-सबसे-बेहतर-engine-कौन-सा-है" aria-label="Permalink to &quot;3D browser games के लिए सबसे बेहतर engine कौन सा है?&quot;"></a></h3>
<p>2026 में PlayCanvas सबसे मज़बूत web-first पसंद है: छोटा runtime, सबसे तेज़ load, और सबसे परिपक्व WebGPU renderer। Godot सबसे बेहतर फ़्री, ओपन-सोर्स विकल्प है और native पर भी export करता है। Unity तभी सबसे बेहतर है जब आपका game पहले से इसका इस्तेमाल करता हो या उसे इसके हाई-एंड फ़ीचर चाहिए हों, क्योंकि इसके web builds सबसे बड़े होते हैं। सबसे बेहतर चुनाव build size, इस बात पर कि आपको native export चाहिए या नहीं, और आपके बजट पर निर्भर करता है।</p>
<h3 id="क्या-unity-और-godot-c-games-को-web-पर-export-कर-सकते-हैं" tabindex="-1">क्या Unity और Godot, C# games को web पर export कर सकते हैं? <a class="header-anchor" href="#क्या-unity-और-godot-c-games-को-web-पर-export-कर-सकते-हैं" aria-label="Permalink to &quot;क्या Unity और Godot, C# games को web पर export कर सकते हैं?&quot;"></a></h3>
<p>यह एक आम पेच है: Godot, C# projects को web पर बिल्कुल export नहीं कर सकता (सिर्फ़ GDScript)। Unity का web export C# इस्तेमाल करता है, पर यह Wasm के ज़रिए WebGL पर कंपाइल होता है, और नतीजे में बनने वाले builds बड़े होते हैं (~8 MB+ खाली)। PlayCanvas नेटिव रूप से JavaScript या TypeScript इस्तेमाल करता है, जो एक वजह है कि इसके web builds इतने छोटे होते हैं।</p>
<h3 id="browser-में-सबसे-तेज़-कौन-लोड-होता-है" tabindex="-1">browser में सबसे तेज़ कौन लोड होता है? <a class="header-anchor" href="#browser-में-सबसे-तेज़-कौन-लोड-होता-है" aria-label="Permalink to &quot;browser में सबसे तेज़ कौन लोड होता है?&quot;"></a></h3>
<p>PlayCanvas, बड़े अंतर से, क्योंकि इसका ~1-2 MB runtime ख़ास web के लिए बना है। Godot के खाली builds करीब 9 MB gzipped होते हैं, और Unity के 8 MB से शुरू होकर ऊपर जाते हैं। web games के लिए, कुल download size इस बात पर काफ़ी असर डालता है कि कितने players असल में load होने का इंतज़ार करते हैं, इसलिए यह एक असल चुनाव-कारक है, कोई मामूली बात नहीं।</p>
<h3 id="क्या-ये-engine-webgpu-को-सपोर्ट-करते-हैं" tabindex="-1">क्या ये engine WebGPU को सपोर्ट करते हैं? <a class="header-anchor" href="#क्या-ये-engine-webgpu-को-सपोर्ट-करते-हैं" aria-label="Permalink to &quot;क्या ये engine WebGPU को सपोर्ट करते हैं?&quot;"></a></h3>
<p>PlayCanvas का WebGPU renderer सबसे परिपक्व है। Godot का web export अब भी सिर्फ़ WebGL2 है, WebGPU support अभी नहीं है। Unity, WebGPU को experimental रखता है और डिफ़ॉल्ट रूप से WebGL2 पर रहता है। इस ट्रेड-ऑफ़ को गहराई से देखने के लिए, हमारी <a href="/hi/guides/webgpu-vs-webgl-games.html">WebGPU बनाम WebGL guide</a> देखें।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे बेहतर Web Game Engines</a> — 11 engines का पूरा मैदान</li>
<li><a href="/hi/guides/webgpu-vs-webgl-games.html">Games के लिए WebGPU बनाम WebGL</a> — rendering API का ट्रेड-ऑफ़</li>
<li><a href="/hi/guides/playcanvas-vs-threejs.html">PlayCanvas बनाम Three.js</a> — web 3D के लिए engine बनाम library</li>
<li><a href="/hi/guides/godot-vs-unity-web-games.html">Web Games के लिए Godot बनाम Unity</a> — दो बड़े full engines आमने-सामने</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Vibe Coding Games: यह क्या है और शुरुआत कैसे करें (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/vibe-coding-games</link>
            <guid>https://app.cinevva.com/hi/guides/vibe-coding-games</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[vibe coding का मतलब क्या है, यह शब्द कहां से आया, और 2026 में किसी गेम को vibe-code कैसे करें, workflow, tools, असली सफलता की कहानियां और बचने लायक गलतियों के साथ।]]></description>
            <content:encoded><![CDATA[<h1 id="vibe-coding-games-यह-क्या-है-और-शुरुआत-कैसे-करें-2026" tabindex="-1">Vibe Coding Games: यह क्या है और शुरुआत कैसे करें (2026) <a class="header-anchor" href="#vibe-coding-games-यह-क्या-है-और-शुरुआत-कैसे-करें-2026" aria-label="Permalink to &quot;Vibe Coding Games: यह क्या है और शुरुआत कैसे करें (2026)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>&quot;Vibe coding&quot; एक ट्वीट से Collins Dictionary का Word of the Year बनने में एक साल भी नहीं लगा। गेम्स के लिए यह अभी बनाने के सबसे मजेदार तरीकों में से एक है: आप बताते हैं कि आपको क्या चाहिए, AI उसे लिख देता है, और आप syntax के बजाय अपने अंदाज से गेम को दिशा देते हैं। यहां बताया गया है कि इस शब्द का असल मतलब क्या है, किसी गेम को vibe-code कैसे करें, और यह कहां काम करता है और कहां अड़चन बनता है।</p>
<h2 id="यह-शब्द-कहां-से-आया" tabindex="-1">यह शब्द कहां से आया <a class="header-anchor" href="#यह-शब्द-कहां-से-आया" aria-label="Permalink to &quot;यह शब्द कहां से आया&quot;"></a></h2>
<p>यह वाक्यांश OpenAI के एक सह-संस्थापक सदस्य Andrej Karpathy की फरवरी 2025 की एक पोस्ट से आया। उन्होंने इसे &quot;एक नए तरह की coding बताया जहां आप पूरी तरह vibes के हवाले हो जाते हैं, exponentials को अपनाते हैं, और भूल जाते हैं कि code का कोई वजूद भी है,&quot; जो इसलिए मुमकिन है क्योंकि AI coding मॉडल इतने अच्छे हो गए हैं कि आप &quot;बस चीजें देख सकते हैं, चीजें बोल सकते हैं, चीजें चला सकते हैं, और चीजें copy-paste कर सकते हैं, और ज्यादातर यह काम कर जाता है।&quot; उन्होंने इसे वीकेंड में बनाए जाने वाले फेंकने-लायक प्रोजेक्ट्स के लिए बताया था, यह याद रखने लायक बात है।</p>
<p>डेवलपर Simon Willison ने परिभाषा को और साफ किया: असली vibe coding का मतलब है किसी LLM के साथ software बनाना बिना उसके लिखे code को पढ़े। अगर आप हर लाइन पढ़ते, test करते और समझते हैं, तो आप AI को एक typing assistant की तरह इस्तेमाल कर रहे हैं, जो एक अलग बात है। 2025 के आखिर तक यह शब्द इतना फैल चुका था कि Collins ने इसे Word of the Year घोषित कर दिया।</p>
<p>गेम्स के लिए यह साफ-साफ बैठता है: आप एक गेम बताते हैं, AI उसे बनाता है, आप उसे खेलते हैं और बदलाव मांगते हैं, और आप ज्यादातर code की तरफ देखते ही नहीं। यही किसी गेम को vibe-code करना है।</p>
<h2 id="गेम्स-इसके-लिए-इतने-बढ़िया-क्यों-हैं" tabindex="-1">गेम्स इसके लिए इतने बढ़िया क्यों हैं <a class="header-anchor" href="#गेम्स-इसके-लिए-इतने-बढ़िया-क्यों-हैं" aria-label="Permalink to &quot;गेम्स इसके लिए इतने बढ़िया क्यों हैं&quot;"></a></h2>
<p>गेम्स visual होते हैं और तुरंत टेस्ट किए जा सकते हैं, और यही वह loop है जिसे vibe coding इनाम देता है। आप दो सेकंड में देख सकते हैं कि जंप सही लग रही है या दुश्मन बहुत तेज है, इसलिए &quot;चीजें बोलो, चीजें चलाओ&quot; वाला चक्र कसा हुआ और संतोषजनक रहता है। और मशहूर सबूत खुद एक गेम है: 2025 की शुरुआत में indie डेवलपर Pieter Levels ने बिना किसी game-dev पृष्ठभूमि के, एक AI code editor और Three.js का इस्तेमाल करके कुछ ही घंटों में एक browser 3D फ्लाइट सिम्युलेटर vibe-code कर दिया, और यह वायरल हिट बन गया। (उनके revenue के आंकड़े खुद उनके बताए हुए हैं, इसलिए डॉलर की रकम को थोड़ा शक के साथ लें, लेकिन खुद बनाया गया गेम असली है और अच्छे से दर्ज है।)</p>
<h2 id="किसी-गेम-को-vibe-code-करने-के-दो-तरीके" tabindex="-1">किसी गेम को vibe-code करने के दो तरीके <a class="header-anchor" href="#किसी-गेम-को-vibe-code-करने-के-दो-तरीके" aria-label="Permalink to &quot;किसी गेम को vibe-code करने के दो तरीके&quot;"></a></h2>
<p>दो अंदाज हैं, इस पर निर्भर करते हुए कि आप कितना खुद छूना चाहते हैं।</p>
<p><strong>सामान्य AI coding tools।</strong> Cursor, Claude Code और GitHub Copilot आपको उसी तरह गेम बनाने देते हैं जैसा Karpathy ने बताया था: किसी AI coding agent को prompt दें, आमतौर पर Three.js जैसे किसी web framework के साथ, और सुधार करते जाएं। आपको code पढ़ना जरूरी नहीं, लेकिन प्रोजेक्ट एक असली codebase होता है जिसे आप कहीं भी ले जा सकते हैं। यह सबसे लचीला रास्ता है और सबसे ताकतवर भी, जिसमें खुद को फंसाने की सबसे ज्यादा गुंजाइश भी है।</p>
<p><strong>गेम-खास prompt-to-game tools।</strong> Cinevva, Rosebud, Summer, Replit और Nilo पूरे loop को एक खास मकसद से बने माहौल में लपेट देते हैं। आप एक गेम बताते हैं, यह एक खेलने लायक गेम बनाता है, और आप chat करके उसे संवारते हैं, जिसमें assets आपके लिए जनरेट होते हैं। यह सबसे आसान शुरुआत है और शेयर करने लायक नतीजे तक सबसे तेज। हमारी <a href="/hi/guides/ai-game-generators-2026.html">AI गेम जनरेटर तुलना</a> बताती है कि कौन सा कौन है।</p>
<h2 id="किसी-गेम-को-vibe-code-कैसे-करें-कदम-दर-कदम" tabindex="-1">किसी गेम को vibe-code कैसे करें, कदम दर कदम <a class="header-anchor" href="#किसी-गेम-को-vibe-code-कैसे-करें-कदम-दर-कदम" aria-label="Permalink to &quot;किसी गेम को vibe-code कैसे करें, कदम दर कदम&quot;"></a></h2>
<ol>
<li><strong>एक छोटा आइडिया चुनें।</strong> vibe coding वीकेंड-भर के दायरे पर चमकती है। एक genre, एक ट्विस्ट, और एक लक्ष्य तय करें।</li>
<li><strong>एक-वाक्य का prompt लिखें।</strong> &quot;एक neon snake गेम बनाओ जो बढ़ने के साथ तेज होता जाए।&quot; tool को पहला वर्जन बनाने दें। खाली पन्ने से बचने के लिए आप <a href="/hi/guides/vibe-coding-game-prompts.html">एक-क्लिक prompt आजमा सकते हैं</a>।</li>
<li><strong>खेलें, फिर एक बदलाव मांगें।</strong> &quot;इसे तेज करो,&quot; &quot;एक score जोड़ो,&quot; &quot;controls चिपचिपे लगते हैं, उन्हें चुस्त बनाओ।&quot; बदलो, खेलो, दोहराओ।</li>
<li><strong>मांग कर assets जनरेट करें।</strong> &quot;इसे low-poly लुक दो,&quot; &quot;उत्साहित करने वाला music जोड़ो,&quot; &quot;एक रेगिस्तान वाला skybox इस्तेमाल करो।&quot;</li>
<li><strong>link पब्लिश करें।</strong> Browser tools एक क्लिक में शेयर कर देते हैं। इसे लोगों के सामने रखें और उनकी प्रतिक्रियाओं को अगले दौर की दिशा तय करने दें।</li>
</ol>
<p>अगर आप करके सीखना चाहते हैं तो आप अभी <a href="/create.html?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=vibe_coding_games">अपने browser में मुफ्त में एक 3D गेम vibe-code करना शुरू</a> कर सकते हैं।</p>
<h2 id="गलतियां-और-उनसे-कैसे-बचें" tabindex="-1">गलतियां (और उनसे कैसे बचें) <a class="header-anchor" href="#गलतियां-और-उनसे-कैसे-बचें" aria-label="Permalink to &quot;गलतियां (और उनसे कैसे बचें)&quot;"></a></h2>
<p>vibe coding ताकतवर है, लेकिन 2026 की ईमानदार तस्वीर में असली चेतावनी के संकेत हैं:</p>
<ul>
<li><strong>&quot;लगभग सही, पर पूरा नहीं।&quot;</strong> दो-तिहाई डेवलपर इसे अपनी सबसे बड़ी AI परेशानी बताते हैं। गेम्स के लिए इसका हल है छोटे, खास अनुरोध और यह तैयारी कि जब कोई बदलाव चीजों को बिगाड़ दे तो उसे वापस पलट दें।</li>
<li><strong>Security और quality का कर्ज।</strong> 2025 के अध्ययनों में पाया गया कि AI-जनरेटेड code के नमूनों का एक बड़ा हिस्सा security खामियां लाता है, और यह कि दोहराया हुआ, बिना refactor किया गया code बढ़ रहा है। किसी फेंकने-लायक गेम के लिए इससे शायद ही फर्क पड़ता हो; पर किसी ऐसी चीज के लिए जो user डेटा या पैसे संभालती है, code की समीक्षा करें या किसी ऐसे इंसान से करवाएं जो कर सके।</li>
<li><strong>यह तब तक चलता है जब तक नहीं चलता।</strong> एक व्यापक रूप से रिपोर्ट किए गए मामले में, एक AI coding agent ने code freeze के दौरान एक production database मिटा दिया। सबक: बैकअप रखें, प्रयोगों को किसी भी जरूरी चीज से अलग रखें, और किसी vibe-coding agent को ऐसे systems की तरफ मत लगाएं जिन्हें आप खोने का जोखिम नहीं उठा सकते।</li>
</ul>
<p>Karpathy ने खुद बाद में उस मूल पोस्ट को &quot;एक फेंकने-लायक ट्वीट&quot; कहा और गंभीर काम के लिए ज्यादा सावधान भाषा पसंद करते हैं। नतीजा यह नहीं है कि vibe coding बुरी है, बल्कि यह है कि यह प्रोटोटाइप और छोटे गेम्स के लिए शानदार है और उन चीजों के लिए आपके इकलौते तरीके के रूप में जोखिम भरी है जिन्हें सही होना जरूरी है।</p>
<h2 id="क्या-vibe-coding-असली-गेम-डेवलपमेंट-है" tabindex="-1">क्या vibe coding &quot;असली&quot; गेम डेवलपमेंट है? <a class="header-anchor" href="#क्या-vibe-coding-असली-गेम-डेवलपमेंट-है" aria-label="Permalink to &quot;क्या vibe coding &quot;असली&quot; गेम डेवलपमेंट है?&quot;"></a></h2>
<p>यह बनाने का एक असली और काम का तरीका है, खासकर प्रोटोटाइप, jams और छोटे गेम्स के लिए, और बहुत सारे लोग पहली बार गेम्स में इसी तरह आ रहे हैं। जब दांव ऊंचे हों तो यह इस बात की जगह नहीं ले सकता कि आप जो बना रहे हैं उसे समझें। 2026 में सबसे उत्पादक रुख यह है कि जल्दी खोजने और प्रोटोटाइप बनाने के लिए vibe-code करें, फिर रुककर उन हिस्सों को समझें जिन्हें भरोसेमंद होना जरूरी है। ज्यादातर browser गेम्स के लिए वह रेखा आराम से आपके फायदे में बैठती है।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="vibe-coding-का-मतलब-क्या-है" tabindex="-1">vibe coding का मतलब क्या है? <a class="header-anchor" href="#vibe-coding-का-मतलब-क्या-है" aria-label="Permalink to &quot;vibe coding का मतलब क्या है?&quot;"></a></h3>
<p>vibe coding का मतलब है किसी AI को बताकर कि आपको क्या चाहिए software बनाना और उसे code लिखने देना, बिना खुद code की समीक्षा किए। यह शब्द Andrej Karpathy ने फरवरी 2025 में गढ़ा और 2025 में इसे Collins Word of the Year चुना गया। गेम्स के लिए इसका मतलब है किसी गेम को सादी भाषा में बताना और code लिखने के बजाय chat करके उसे संवारना।</p>
<h3 id="मैं-किसी-गेम-को-vibe-code-करना-कैसे-शुरू-करूं" tabindex="-1">मैं किसी गेम को vibe-code करना कैसे शुरू करूं? <a class="header-anchor" href="#मैं-किसी-गेम-को-vibe-code-करना-कैसे-शुरू-करूं" aria-label="Permalink to &quot;मैं किसी गेम को vibe-code करना कैसे शुरू करूं?&quot;"></a></h3>
<p>एक छोटा आइडिया चुनें, उसे एक वाक्य में किसी prompt-to-game tool या किसी AI code editor को बताएं, पहला वर्जन खेलें, और एक बार में एक बदलाव मांगें। Browser पर चलने वाले AI गेम creators शुरुआत के लिए सबसे आसान हैं क्योंकि वे एक खेलने लायक गेम बना देते हैं और बिना किसी setup के उसे तुरंत शेयर करने देते हैं।</p>
<h3 id="क्या-गेम-बनाने-के-लिए-vibe-coding-अच्छी-है" tabindex="-1">क्या गेम बनाने के लिए vibe coding अच्छी है? <a class="header-anchor" href="#क्या-गेम-बनाने-के-लिए-vibe-coding-अच्छी-है" aria-label="Permalink to &quot;क्या गेम बनाने के लिए vibe coding अच्छी है?&quot;"></a></h3>
<p>हां, खासकर प्रोटोटाइप और छोटे या casual गेम्स के लिए, जहां तेज बताओ-खेलो-संवारो loop बढ़िया बैठता है। यह बड़े, जटिल, या सही-होना-जरूरी प्रोजेक्ट्स के लिए कमजोर है, जहां बिना समीक्षा वाला AI code बग और security दिक्कतें ला सकता है। तेज चलने के लिए इसका इस्तेमाल करें, और किसी भी ऐसी चीज के लिए code की समीक्षा करें जिसे भरोसेमंद होना जरूरी है।</p>
<h3 id="लोग-गेम्स-को-vibe-code-करने-के-लिए-कौन-से-tools-इस्तेमाल-करते-हैं" tabindex="-1">लोग गेम्स को vibe-code करने के लिए कौन से tools इस्तेमाल करते हैं? <a class="header-anchor" href="#लोग-गेम्स-को-vibe-code-करने-के-लिए-कौन-से-tools-इस्तेमाल-करते-हैं" aria-label="Permalink to &quot;लोग गेम्स को vibe-code करने के लिए कौन से tools इस्तेमाल करते हैं?&quot;"></a></h3>
<p>दो तरह के। Cursor, Claude Code और GitHub Copilot जैसे सामान्य AI coding tools (अक्सर web के लिए Three.js के साथ), और Cinevva, Rosebud, Summer, Replit और Nilo जैसे गेम-खास prompt-to-game tools। गेम-खास tools आसान शुरुआत हैं; coding tools ज्यादा लचीले हैं।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/ai-game-generators-2026.html">2026 में सबसे अच्छे AI गेम जनरेटर</a> — tools की तुलना</li>
<li><a href="/hi/guides/make-a-game-with-ai.html">AI से गेम कैसे बनाएं (बिना coding)</a> — कदम दर कदम workflow</li>
<li><a href="/hi/guides/3d-browser-game-without-coding.html">बिना coding के 3D Browser गेम कैसे बनाएं</a> — 3D रास्ता</li>
<li><a href="/hi/guides/vibe-coding-game-prompts.html">एक क्लिक में बनाने लायक AI गेम Prompts</a> — शुरू करने के लिए prompts</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे Web गेम Engines</a> — पारंपरिक तरीके से बनाने के लिए</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[WebGPU बनाम WebGL Games के लिए (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/webgpu-vs-webgl-games</link>
            <guid>https://app.cinevva.com/hi/guides/webgpu-vs-webgl-games</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में browser games के लिए WebGPU बनाम WebGL - क्या बदला, कहाँ कौन जीतता है, Safari 26 के बाद browser support, और कौन-सा engine किसे इस्तेमाल करता है।]]></description>
            <content:encoded><![CDATA[<h1 id="webgpu-बनाम-webgl-games-के-लिए-2026" tabindex="-1">WebGPU बनाम WebGL Games के लिए (2026) <a class="header-anchor" href="#webgpu-बनाम-webgl-games-के-लिए-2026" aria-label="Permalink to &quot;WebGPU बनाम WebGL Games के लिए (2026)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>एक दशक से भी ज़्यादा समय तक, browser में असली graphics डालने का एकमात्र तरीका WebGL था। WebGPU इसका उत्तराधिकारी है, और 2026 वह साल है जब यह वाकई हर जगह इस्तेमाल के लायक बन गया। अगर आप एक web game बना रहे हैं और सोच रहे हैं कि किसे target करें, तो यहाँ ईमानदार तुलना है: क्या बदला, कहाँ कौन जीतता है, और आपका engine पहले से क्या इस्तेमाल करता है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/grj7uYdCna0" title="WebGL and WebGPU Updates at 3D on the Web 2025 — The Khronos Group" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">The Khronos Group WebGL और WebGPU की मौजूदा स्थिति पर, जिसमें compute shaders और Three.js व Babylon.js में WebGPU renderers शामिल हैं।</div>
<h2 id="छोटा-जवाब" tabindex="-1">छोटा जवाब <a class="header-anchor" href="#छोटा-जवाब" aria-label="Permalink to &quot;छोटा जवाब&quot;"></a></h2>
<p>WebGL एक graphics API है जो OpenGL ES पर आधारित है और drawing के लिए बना है। WebGPU एक आधुनिक API है जो Vulkan, Metal, और Direct3D 12 पर आधारित है, और drawing तथा सामान्य GPU compute दोनों के लिए बना है। WebGPU भारी scenes के लिए तेज़ है, compute shaders (particles, simulation, GPU पर culling) की सुविधा देता है, और इसका API ज़्यादा साफ-सुथरा है। WebGL पुराना, सरल है, और लगभग हर मौजूद device पर support करता है।</p>
<h2 id="_2026-में-क्या-बदला" tabindex="-1">2026 में क्या बदला <a class="header-anchor" href="#_2026-में-क्या-बदला" aria-label="Permalink to &quot;2026 में क्या बदला&quot;"></a></h2>
<p>मुख्य बात: WebGPU आखिरकार cross-browser हो गया। Safari 26 (सितंबर 2025) ने macOS, iPadOS, iOS, और visionOS पर WebGPU भेज दिया, जिससे आखिरी बड़ी बाधा भी हट गई। इससे पहले, &quot;बस WebGL इस्तेमाल करो क्योंकि Safari और iOS WebGPU support नहीं करते&quot; सही सलाह थी। अब ऐसा नहीं है। Chrome और Firefox के पास यह पहले से था, तो 2026 तक WebGPU सभी बड़े browsers पर चलता है।</p>
<p>इसका मतलब यह नहीं कि WebGPU हर जगह default है। ज़्यादातर engines में यह अब भी opt-in या experimental है (इस पर नीचे और बात), और WebGL2 अब भी सुरक्षित baseline बना हुआ है। पर browser-support की जो दीवार WebGPU को अपनाने से रोक रही थी, वह हट गई है।</p>
<h2 id="आमने-सामने" tabindex="-1">आमने-सामने <a class="header-anchor" href="#आमने-सामने" aria-label="Permalink to &quot;आमने-सामने&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th>WebGL (2.0)</th>
<th>WebGPU</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>किस पर आधारित</strong></td>
<td>OpenGL ES 3.0</td>
<td>Vulkan / Metal / D3D12</td>
</tr>
<tr>
<td><strong>कब आया</strong></td>
<td>2017 (WebGL 1: 2011)</td>
<td>2023, व्यापक browser support 2025-2026</td>
</tr>
<tr>
<td><strong>Compute shaders</strong></td>
<td>नहीं</td>
<td>हाँ</td>
</tr>
<tr>
<td><strong>CPU overhead</strong></td>
<td>ज़्यादा (per-draw-call cost)</td>
<td>कम (command buffers, कम driver chatter)</td>
</tr>
<tr>
<td><strong>किसमें सबसे अच्छा</strong></td>
<td>Compatibility, सरल-से-मध्यम scenes</td>
<td>भारी scenes, कई objects, GPU compute</td>
</tr>
<tr>
<td><strong>Browser support</strong></td>
<td>सार्वभौमिक</td>
<td>Chrome, Firefox, Safari 26+, सभी बड़े mobile</td>
</tr>
<tr>
<td><strong>Shading language</strong></td>
<td>GLSL</td>
<td>WGSL</td>
</tr>
<tr>
<td><strong>API की सुगमता</strong></td>
<td>पुराना, ज़्यादा global state</td>
<td>आधुनिक, स्पष्ट, ज़्यादा verbose</td>
</tr>
</tbody>
</table>
<h2 id="webgpu-कब-जीतता-है" tabindex="-1">WebGPU कब जीतता है <a class="header-anchor" href="#webgpu-कब-जीतता-है" aria-label="Permalink to &quot;WebGPU कब जीतता है&quot;"></a></h2>
<ul>
<li><strong>बहुत सारे objects या draw calls।</strong> WebGPU का कम CPU overhead और multi-draw जैसे features का मतलब है कि यह वहाँ भी frame rate बनाए रखता है जहाँ WebGL draw-call count पर अटकने लगता है।</li>
<li><strong>GPU compute।</strong> Particle systems, physics, culling, procedural generation, और 3D Gaussian splatting compute shaders के ज़रिए GPU पर चल सकते हैं। WebGL यह बस कर ही नहीं सकता।</li>
<li><strong>भविष्य के लिए तैयारी।</strong> platform जिस दिशा में जा रहा है वह WebGPU है; नए engine features तेज़ी से पहले वहीं आने लगे हैं।</li>
</ul>
<h2 id="webgl-अब-भी-कब-सही-विकल्प-है" tabindex="-1">WebGL अब भी कब सही विकल्प है <a class="header-anchor" href="#webgl-अब-भी-कब-सही-विकल्प-है" aria-label="Permalink to &quot;WebGL अब भी कब सही विकल्प है&quot;"></a></h2>
<ul>
<li><strong>पुराने या low-end devices पर अधिकतम पहुँच।</strong> WebGL2 उस hardware और उन browser versions पर चलता है जिनमें अभी काम करने वाला WebGPU path न हो।</li>
<li><strong>सरल 2D और हल्का 3D।</strong> अगर आपका game GPU पर ज़ोर नहीं डाल रहा, तो WebGL काफी है और नए drivers के किसी भी edge case से बचाता है।</li>
<li><strong>आज आप सबसे सुरक्षित baseline चाहते हैं।</strong> बिना किसी fallback logic के WebGL2 भेजना एक बड़े audience के लिए अब भी सबसे कम जोखिम वाला विकल्प है।</li>
</ul>
<p>ज़्यादातर games के लिए 2026 का व्यावहारिक जवाब: ऐसे engine पर बनाएँ जो दोनों को support करता हो और जहाँ उपलब्ध हो वहाँ WebGPU इस्तेमाल करे, साथ में एक automatic WebGL2 fallback के साथ। आपको जहाँ speed मौजूद है वहाँ speed मिलती है और जहाँ नहीं है वहाँ compatibility, और दो renderers लिखने की ज़रूरत नहीं पड़ती।</p>
<h2 id="आपका-engine-पहले-से-क्या-इस्तेमाल-करता-है" tabindex="-1">आपका engine पहले से क्या इस्तेमाल करता है <a class="header-anchor" href="#आपका-engine-पहले-से-क्या-इस्तेमाल-करता-है" aria-label="Permalink to &quot;आपका engine पहले से क्या इस्तेमाल करता है&quot;"></a></h2>
<p>हमारी <a href="/hi/guides/web-game-engines-comparison.html">web game engines की तुलना</a> से, 2026 में बड़े web engines WebGPU पर कहाँ खड़े हैं:</p>
<ul>
<li><strong>PlayCanvas</strong> के पास web engines में सबसे production-ready WebGPU renderer है, जिसमें compute-आधारित Gaussian splat rendering शामिल है।</li>
<li><strong>Three.js</strong> एक zero-config WebGPU renderer (<code>three/webgpu</code>) भेजता है जिसमें automatic WebGL2 fallback है, हालाँकि default export अब भी WebGL है।</li>
<li><strong>Babylon.js</strong> WebGPU support करता है (<code>WebGPUEngine</code> में opt-in करें); version 8 ने WebGPU build size भी आधा कर दिया।</li>
<li><strong>Godot</strong> में अभी WebGPU support नहीं है। 4.7 में web export अब भी सिर्फ़ WebGL2 है, हालाँकि wasm64 builds अब पुरानी 4 GB memory सीमा हटा देते हैं।</li>
<li><strong>Cocos Creator</strong> के पास अपनी नई render pipeline के ज़रिए experimental WebGPU है।</li>
<li><strong>Unity</strong> WebGPU को experimental और WebGL2 को default web target बनाए रखता है।</li>
<li><strong>Phaser 4</strong> एक WebGL2 rewrite है जिसमें अभी WebGPU नहीं है; <strong>PixiJS</strong> WebGPU support करता है पर default WebGL है।</li>
</ul>
<p>तो व्यवहार में, WebGPU-या-WebGL का फैसला आमतौर पर engine ही आपके लिए कर देता है, और अच्छे engines अपने-आप fallback कर लेते हैं।</p>
<h2 id="browser-support-की-झलक-2026" tabindex="-1">Browser support की झलक (2026) <a class="header-anchor" href="#browser-support-की-झलक-2026" aria-label="Permalink to &quot;Browser support की झलक (2026)&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox</th>
<th>Safari</th>
<th>Mobile</th>
</tr>
</thead>
<tbody>
<tr>
<td>WebGL 2.0</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>WebGPU</td>
<td>✅</td>
<td>✅</td>
<td>✅ Safari 26+</td>
<td>✅ iOS/iPadOS 26+</td>
</tr>
</tbody>
</table>
<p>अगर आप बड़े audience को target करते हैं तो हमेशा Safari/iOS पर test करें, और पुराने devices की long tail के लिए एक WebGL2 fallback रखें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="क्या-games-के-लिए-webgpu-webgl-से-बेहतर-है" tabindex="-1">क्या games के लिए WebGPU, WebGL से बेहतर है? <a class="header-anchor" href="#क्या-games-के-लिए-webgpu-webgl-से-बेहतर-है" aria-label="Permalink to &quot;क्या games के लिए WebGPU, WebGL से बेहतर है?&quot;"></a></h3>
<p>मांग वाले games के लिए, हाँ: WebGPU का CPU overhead कम है, यह ज़्यादा objects संभालता है, और ऐसे effects के लिए compute shaders जोड़ता है जो WebGL नहीं कर सकता। सरल 2D या हल्के 3D के लिए, WebGL2 अब भी काफी है और पुराने devices पर इसका support ज़्यादा व्यापक है। 2026 में सबसे अच्छा तरीका एक ऐसा engine है जो जहाँ उपलब्ध हो वहाँ WebGPU इस्तेमाल करे और अपने-आप WebGL2 पर fallback कर ले।</p>
<h3 id="क्या-2026-में-webgpu-safari-और-ios-पर-काम-करता-है" tabindex="-1">क्या 2026 में WebGPU, Safari और iOS पर काम करता है? <a class="header-anchor" href="#क्या-2026-में-webgpu-safari-और-ios-पर-काम-करता-है" aria-label="Permalink to &quot;क्या 2026 में WebGPU, Safari और iOS पर काम करता है?&quot;"></a></h3>
<p>हाँ। सितंबर 2025 में जारी हुए Safari 26 ने macOS, iPadOS, iOS, और visionOS पर WebGPU जोड़ा। इससे आखिरी बड़ी कमी भी पूरी हो गई, तो अब WebGPU Chrome, Firefox, और Safari पर, mobile समेत काम करता है। पुराने devices और browser versions में अब भी यह न हो, इसलिए एक WebGL2 fallback रखें।</p>
<h3 id="मुझे-पहले-webgpu-सीखना-चाहिए-या-webgl" tabindex="-1">मुझे पहले WebGPU सीखना चाहिए या WebGL? <a class="header-anchor" href="#मुझे-पहले-webgpu-सीखना-चाहिए-या-webgl" aria-label="Permalink to &quot;मुझे पहले WebGPU सीखना चाहिए या WebGL?&quot;"></a></h3>
<p>अगर आप एक game engine इस्तेमाल कर रहे हैं, तो आमतौर पर आप इनमें से कुछ भी सीधे नहीं लिखते, engine ही संभाल लेता है। अगर आप हाथ से graphics code लिख रहे हैं, तो WebGPU सीखने के लिए ज़्यादा भविष्य-सुरक्षित API है, पर आज WebGL के पास ज़्यादा tutorials और examples हैं। कई developers अब भी WebGL या Three.js जैसी library से शुरुआत करते हैं, जो अब तैयार होने पर एक WebGPU renderer भी देती है।</p>
<h3 id="क्या-webgpu-webgl-की-जगह-ले-लेगा" tabindex="-1">क्या WebGPU, WebGL की जगह ले लेगा? <a class="header-anchor" href="#क्या-webgpu-webgl-की-जगह-ले-लेगा" aria-label="Permalink to &quot;क्या WebGPU, WebGL की जगह ले लेगा?&quot;"></a></h3>
<p>आखिरकार, ज़्यादातर नया development WebGPU को target करेगा, पर WebGL जल्दी गायब नहीं होगा। यह पुराने hardware के लिए सार्वभौमिक baseline बना हुआ है और मौजूदा tools तथा content में गहराई से बसा हुआ है। लंबे समय तक ऐसा ओवरलैप रहेगा जहाँ engines दोनों को support करते हैं और runtime पर चुनते हैं।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे Web Game Engines</a> — पूरा मैदान, हर engine की WebGPU स्थिति के साथ</li>
<li><a href="/hi/guides/web-games-stack-2026.html">2026 में Web Games का Tech Stack</a> — API स्तर पर WebGL, WebGPU, और Wasm</li>
<li><a href="/hi/guides/unity-godot-playcanvas-web.html">Unity WebGL बनाम Godot बनाम PlayCanvas</a> — तीन बड़े 3D web engines</li>
<li><a href="/hi/guides/playcanvas-vs-threejs.html">PlayCanvas बनाम Three.js</a> — web 3D के लिए engine बनाम library</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[एक क्लिक में बनने वाले AI गेम prompts]]></title>
            <link>https://app.cinevva.com/hi/guides/vibe-coding-game-prompts</link>
            <guid>https://app.cinevva.com/hi/guides/vibe-coding-game-prompts</guid>
            <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[12 vibe-coding गेम prompts जो एक वाक्य से आपके browser में एक खेलने लायक 3D गेम तक पहुँचते हैं। किसी पर भी क्लिक करें और Cinevva आपके लिए उसे बनाना शुरू कर देता है, मुफ़्त।]]></description>
            <content:encoded><![CDATA[<h1 id="एक-क्लिक-में-बनने-वाले-ai-गेम-prompts" tabindex="-1">एक क्लिक में बनने वाले AI गेम prompts <a class="header-anchor" href="#एक-क्लिक-में-बनने-वाले-ai-गेम-prompts" aria-label="Permalink to &quot;एक क्लिक में बनने वाले AI गेम prompts&quot;"></a></h1>
<p>Vibe coding अभी गेम बनाने का सबसे तेज़ तरीका है। आप साधारण अंग्रेज़ी में बताते हैं कि आप क्या चाहते हैं और AI उसे बना देता है। न कोई engine install करना, न कोई code लिखना, न किसी asset store में खोजबीन करना।</p>
<p>नीचे 12 prompts हैं जो हमें पसंद हैं। किसी पर भी क्लिक करें और Cinevva उस idea के साथ खुलता है जो पहले से टाइप किया हुआ है, और एक खेलने लायक 3D गेम बनाना शुरू कर देता है जिसे आप edit कर सकते हैं। ये सभी आपके browser में चलते हैं और सभी आज़माने के लिए मुफ़्त हैं। इन्हें उठा लें, एक शब्द बदल दें, या अपना खुद का लिखें।</p>
<div class="prompt-grid">
<div class="prompt-card">
<strong>Neon snake, पर तेज़</strong>
<p>एक classic, चमक के साथ और एक मुश्किल difficulty curve जो काट खाती है।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Make%20a%20neon%20snake%20game%20that%20speeds%20up%20as%20you%20grow">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>Desert kart racer</strong>
<p>Low-poly track, drift boosts, और हराने के लिए एक lap timer।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Build%20a%20low%20poly%20kart%20racer%20on%20a%20desert%20track%20with%20drift%20boosts">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>तैरते द्वीपों पर parkour</strong>
<p>First person, द्वीपों के बीच बिना गिरे कूदें।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Make%20a%20first%20person%20parkour%20game%20across%20floating%20islands">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>Slime tower defense</strong>
<p>Turrets लगाएँ, slimes की लहरों के सामने मोर्चा संभाले रखें।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Build%20a%20tower%20defense%20where%20I%20place%20turrets%20to%20stop%20waves%20of%20slimes">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>आरामदायक sunset fishing</strong>
<p>एक शांत झील, पानी में एक डोरी, जल्दबाज़ी की कोई बात नहीं।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Make%20a%20cozy%20fishing%20game%20on%20a%20quiet%20lake%20at%20sunset">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>Flashlight zombie survival</strong>
<p>Top down, सीमित ammo, और एक beam जो बस इतनी ही दूर देखती है।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Build%20a%20top%20down%20zombie%20survival%20with%20a%20flashlight%20and%20limited%20ammo">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>Block physics sandbox</strong>
<p>इन्हें ऊँचा जमाएँ, फिर पूरी चीज़ को गिरा दें।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Make%20a%20physics%20sandbox%20where%20I%20stack%20blocks%20and%20knock%20them%20down">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>Rhythm runner</strong>
<p>Beat के साथ ताल में कूदें वरना अपना streak खो दें।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Build%20a%20rhythm%20runner%20where%20I%20jump%20in%20time%20with%20the%20music">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>Asteroid dogfight</strong>
<p>अंतरिक्ष, homing missiles, और चट्टानें जो रास्ते से नहीं हटतीं।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Make%20a%20space%20dogfight%20with%20asteroids%20and%20homing%20missiles">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>Star जमा करने वाला platformer</strong>
<p>Stars पकड़ें, दरवाज़ा खोलें, अगला कमरा ढूँढें।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Build%20a%203D%20platformer%20collecting%20stars%20to%20open%20the%20next%20door">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>अजीबोगरीब mini golf</strong>
<p>Ramps, हिलती दीवारें, और एक par जिससे आप बहस करेंगे।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Make%20a%20golf%20game%20with%20wacky%20ramps%20and%20moving%20obstacles">मुफ़्त में बनाएँ →</a>
</div>
<div class="prompt-card">
<strong>Gem-heist stealth</strong>
<p>Guards के पास से छिपकर निकलें, gem पकड़ें, पकड़े मत जाएँ।</p>
<a class="prompt-go" href="/create?utm_source=blog&utm_medium=content&utm_campaign=vibe_prompt_pack#prompt=Build%20a%20stealth%20game%20sneaking%20past%20guards%20to%20steal%20the%20gem">मुफ़्त में बनाएँ →</a>
</div>
</div>
<h2 id="अपना-खुद-का-कैसे-लिखें" tabindex="-1">अपना खुद का कैसे लिखें <a class="header-anchor" href="#अपना-खुद-का-कैसे-लिखें" aria-label="Permalink to &quot;अपना खुद का कैसे लिखें&quot;"></a></h2>
<p>ऊपर दिए गए prompts जानबूझकर छोटे हैं। आपको हर नियम विस्तार से बताने की ज़रूरत नहीं है। गेम का प्रकार बताएँ, एक चीज़ जो इसे आपका बनाती है, और एक goal। बाकी AI भर देता है, और एक बार चलने पर आप उसे बताते हैं कि क्या बदलना है।</p>
<p>इसके बजाय एक खाली canvas चाहिए? <a href="/create.html?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=vibe_prompt_pack">creator खोलें</a> और अपना खुद का idea टाइप करें।</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 के लिए सबसे बेहतरीन ओपन-सोर्स गेम इंजन]]></title>
            <link>https://app.cinevva.com/hi/guides/open-source-game-engines-2026</link>
            <guid>https://app.cinevva.com/hi/guides/open-source-game-engines-2026</guid>
            <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 के लिए सबसे बेहतरीन ओपन-सोर्स गेम इंजन की पूरी सूची - Godot, Phaser, PixiJS, Defold, Bevy, Three.js, Babylon.js और बहुत कुछ, लाइसेंस, भाषाएं, web export और हर इस्तेमाल के लिए एक सुझाव के साथ।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-के-लिए-सबसे-बेहतरीन-ओपन-सोर्स-गेम-इंजन" tabindex="-1">2026 के लिए सबसे बेहतरीन ओपन-सोर्स गेम इंजन <a class="header-anchor" href="#_2026-के-लिए-सबसे-बेहतरीन-ओपन-सोर्स-गेम-इंजन" aria-label="Permalink to &quot;2026 के लिए सबसे बेहतरीन ओपन-सोर्स गेम इंजन&quot;"></a></h1>
<figure style="margin:1.5rem 0">
<img src="https://cdn.cinevva.com/guides/open-source-game-engines-hero.jpg?v=2" alt="Best open-source game engines for 2026" style="width:100%;border-radius:10px">
</figure>
<p>ओपन-सोर्स गेम इंजन आपको कुछ ऐसा देते हैं जो proprietary इंजन नहीं दे सकते: एक ऐसा लाइसेंस जो आपके गेम को ship करने के बाद नहीं बदलेगा। न per-seat फीस, न revenue थ्रेशोल्ड, न अचानक आने वाली कीमतें। आप सोर्स पढ़ सकते हैं, उसे fork कर सकते हैं, और बनाते रह सकते हैं, भले ही मूल टीम काम छोड़ दे। <a href="/hi/news/2024-09-12-unity-runtime-fee-cancelled.html">Unity Runtime Fee की घटना</a> के बाद, यही स्थिरता वह वजह थी जिसके चलते बहुत सी टीमें पहली बार ओपन सोर्स की ओर गईं।</p>
<p>यह 2026 में इस्तेमाल करने लायक ओपन-सोर्स गेम इंजन की पूरी सूची है, इस आधार पर समूहबद्ध कि वे किस काम के लिए हैं। अगर आपको खासतौर पर एक web build चाहिए, तो हमने बता दिया है कि कौन से इंजन browser में export करते हैं, और आप हमारी <a href="/hi/guides/web-game-engines-comparison.html">सबसे बेहतरीन web game इंजन की तुलना</a> में और गहराई तक जा सकते हैं।</p>
<h2 id="जल्दी-तुलना" tabindex="-1">जल्दी तुलना <a class="header-anchor" href="#जल्दी-तुलना" aria-label="Permalink to &quot;जल्दी तुलना&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Engine</th>
<th>License</th>
<th>Language</th>
<th>2D / 3D</th>
<th>Web export</th>
<th>किसके लिए सबसे अच्छा</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/hi/guides/godot-vs-unity-web-games.html"><strong>Godot</strong></a></td>
<td>MIT</td>
<td>GDScript, C#</td>
<td>दोनों</td>
<td>हां (GDScript)</td>
<td>हर काम के लिए free इंजन</td>
</tr>
<tr>
<td><strong>Phaser</strong></td>
<td>MIT</td>
<td>JavaScript</td>
<td>2D</td>
<td>हां</td>
<td>2D web games</td>
</tr>
<tr>
<td><strong>PixiJS</strong></td>
<td>MIT</td>
<td>JavaScript</td>
<td>2D</td>
<td>हां</td>
<td>कस्टम 2D rendering</td>
</tr>
<tr>
<td><strong>Three.js</strong></td>
<td>MIT</td>
<td>JS / TS</td>
<td>3D</td>
<td>हां</td>
<td>Web 3D, ज़्यादा से ज़्यादा कंट्रोल</td>
</tr>
<tr>
<td><strong>Babylon.js</strong></td>
<td>Apache 2.0</td>
<td>JS / TS</td>
<td>3D</td>
<td>हां</td>
<td>पूरी सुविधाओं वाला web 3D</td>
</tr>
<tr>
<td><strong>Defold</strong></td>
<td>Free, source-available</td>
<td>Lua</td>
<td>2D / हल्का 3D</td>
<td>हां</td>
<td>सबसे छोटे web builds</td>
</tr>
<tr>
<td><strong>Excalibur.js</strong></td>
<td>BSD</td>
<td>TypeScript</td>
<td>2D</td>
<td>हां</td>
<td>TypeScript 2D games</td>
</tr>
<tr>
<td><strong>Bevy</strong></td>
<td>MIT / Apache 2.0</td>
<td>Rust</td>
<td>दोनों</td>
<td>हां (Wasm)</td>
<td>Rust, data-driven डिज़ाइन</td>
</tr>
<tr>
<td><strong>LÖVE</strong></td>
<td>zlib</td>
<td>Lua</td>
<td>2D</td>
<td>सीमित</td>
<td>जल्दी 2D prototypes</td>
</tr>
<tr>
<td><strong>Cocos Creator</strong></td>
<td>MIT runtime</td>
<td>TypeScript</td>
<td>दोनों</td>
<td>हां</td>
<td>Mini-games, एशियाई बाज़ार</td>
</tr>
<tr>
<td><strong>O3DE</strong></td>
<td>Apache 2.0</td>
<td>C++, Lua</td>
<td>3D</td>
<td>नहीं</td>
<td>बड़े पैमाने का 3D, AAA स्तर</td>
</tr>
</tbody>
</table>
<p>कोई एक &quot;सबसे अच्छा&quot; ओपन-सोर्स इंजन नहीं है। सही इंजन इस पर निर्भर करता है कि 2D है या 3D, आपकी भाषा क्या है, और आप web को target कर रहे हैं या नहीं।</p>
<h2 id="पूरे-2d-और-3d-इंजन" tabindex="-1">पूरे 2D और 3D इंजन <a class="header-anchor" href="#पूरे-2d-और-3d-इंजन" aria-label="Permalink to &quot;पूरे 2D और 3D इंजन&quot;"></a></h2>
<h3 id="godot" tabindex="-1">Godot <a class="header-anchor" href="#godot" aria-label="Permalink to &quot;Godot&quot;"></a></h3>
<p>जब लोग &quot;ओपन-सोर्स गेम इंजन&quot; कहते हैं तो ज़्यादातर का मतलब Godot ही होता है। यह MIT लाइसेंस वाला है, 2D और 3D दोनों करता है, और किसी भी तरह की फीस या revenue cap नहीं रखता। यह छोटे web builds (compressed करीब 5 MB) ship करता है, और 4.3 से single-threaded export कर सकता है, जिससे iOS और Safari पर साफ़ सपोर्ट मिलता है। एक web चेतावनी यह है कि C# प्रोजेक्ट अभी browser में export नहीं हो सकते, सिर्फ़ GDScript। proprietary इंजन छोड़ने वाली ज़्यादातर टीमों के लिए, Godot हर काम के लिए सबसे करीबी विकल्प है। आमने-सामने की तुलना के लिए <a href="/hi/guides/godot-vs-unity-web-games.html">Godot vs Unity web games के लिए</a> देखें।</p>
<h3 id="cocos-creator" tabindex="-1">Cocos Creator <a class="header-anchor" href="#cocos-creator" aria-label="Permalink to &quot;Cocos Creator&quot;"></a></h3>
<p>Cocos Creator एक free एडिटर के साथ एक ओपन-सोर्स (MIT) runtime जोड़ता है। यह 2D और 3D दोनों संभालता है, WebGL, WebGPU और Wasm को सपोर्ट करता है, और WeChat और TikTok जैसे mini-game प्लेटफ़ॉर्म के लिए खासतौर पर मज़बूत है जहां build size अहम होता है। Builds करीब 2 से 4 MB के बनते हैं।</p>
<h2 id="web-के-लिए-3d-लाइब्रेरी-और-इंजन" tabindex="-1">Web के लिए 3D लाइब्रेरी और इंजन <a class="header-anchor" href="#web-के-लिए-3d-लाइब्रेरी-और-इंजन" aria-label="Permalink to &quot;Web के लिए 3D लाइब्रेरी और इंजन&quot;"></a></h2>
<h3 id="three-js" tabindex="-1">Three.js <a class="header-anchor" href="#three-js" aria-label="Permalink to &quot;Three.js&quot;"></a></h3>
<p>Three.js web पर सबसे ज़्यादा इस्तेमाल होने वाली 3D लाइब्रेरी है, MIT लाइसेंस वाली, जिसका core करीब 150 KB है। यह एक पूरे इंजन के बजाय एक rendering लाइब्रेरी है, इसलिए आप इसके ऊपर अपने game systems या एक framework जोड़ते हैं। यही trade-off है: ज़्यादा से ज़्यादा कंट्रोल और सबसे छोटा footprint, बदले में खुद ज़्यादा लिखना पड़ता है। हमने <a href="/hi/engine.html">Cinevva Engine</a> को इसी की नींव पर बनाया है, game systems को वापस layer करके, ताकि आप खाली canvas से शुरू न करें।</p>
<h3 id="babylon-js" tabindex="-1">Babylon.js <a class="header-anchor" href="#babylon-js" aria-label="Permalink to &quot;Babylon.js&quot;"></a></h3>
<p>Babylon.js एक पूरा ओपन-सोर्स 3D इंजन (Apache 2.0) है जिसमें built-in physics, animation, एक scene inspector, और मज़बूत WebGPU और WGSL सपोर्ट है। Three.js के मुकाबले यह आपको ज़्यादा चीज़ें out of the box देता है, बड़े size पर। आपके प्रोजेक्ट के लिए कौन सा सही है, यह जानने के लिए <a href="/hi/guides/threejs-vs-babylonjs.html">Three.js vs Babylon.js</a> देखें।</p>
<h2 id="_2d-frameworks" tabindex="-1">2D frameworks <a class="header-anchor" href="#_2d-frameworks" aria-label="Permalink to &quot;2D frameworks&quot;"></a></h2>
<h3 id="phaser" tabindex="-1">Phaser <a class="header-anchor" href="#phaser" aria-label="Permalink to &quot;Phaser&quot;"></a></h3>
<p>Phaser सबसे लोकप्रिय ओपन-सोर्स HTML5 game framework है, MIT लाइसेंस वाला, सबसे बड़े 2D web कम्युनिटी और ecosystem के साथ। Builds करीब 500 KB के होते हैं। अगर आपका गेम 2D है और आप JavaScript लिखते हैं, तो इसे हराना मुश्किल है।</p>
<h3 id="pixijs" tabindex="-1">PixiJS <a class="header-anchor" href="#pixijs" aria-label="Permalink to &quot;PixiJS&quot;"></a></h3>
<p>PixiJS एक तेज़ 2D WebGL renderer (MIT) है, करीब 200 KB का। 3D के लिए Three.js की तरह, यह एक पूरे इंजन के बजाय एक renderer है, इसलिए आप अपना game logic खुद लाते हैं। इसे तब चुनें जब आप कस्टम 2D rendering और एक बहुत छोटा footprint चाहते हों।</p>
<h3 id="excalibur-js" tabindex="-1">Excalibur.js <a class="header-anchor" href="#excalibur-js" aria-label="Permalink to &quot;Excalibur.js&quot;"></a></h3>
<p>Excalibur.js एक दोस्ताना, BSD-लाइसेंस वाला 2D इंजन है जो TypeScript में लिखा गया है, करीब 300 KB का, जिसमें एक बेसिक renderer से ज़्यादा built-in game फ़ीचर हैं। अगर आप types और एक आसान शुरुआत चाहते हैं तो यह अच्छा फ़िट है।</p>
<h3 id="love-love2d" tabindex="-1">LÖVE (Love2D) <a class="header-anchor" href="#love-love2d" aria-label="Permalink to &quot;LÖVE (Love2D)&quot;"></a></h3>
<p>LÖVE एक पुराना, zlib-लाइसेंस वाला 2D framework है जिसे Lua में script किया जाता है। यह डेस्कटॉप पर तेज़ prototyping और game jams के लिए पसंदीदा है। love.js के ज़रिए web export मौजूद है पर सीमित है, इसलिए LÖVE को एक desktop-first टूल की तरह लें।</p>
<h2 id="rust-c-और-बड़े-पैमाने-के-इंजन" tabindex="-1">Rust, C++ और बड़े पैमाने के इंजन <a class="header-anchor" href="#rust-c-और-बड़े-पैमाने-के-इंजन" aria-label="Permalink to &quot;Rust, C++ और बड़े पैमाने के इंजन&quot;"></a></h2>
<h3 id="bevy" tabindex="-1">Bevy <a class="header-anchor" href="#bevy" aria-label="Permalink to &quot;Bevy&quot;"></a></h3>
<p>Bevy एक आधुनिक, data-driven इंजन है जो Rust में लिखा गया है, MIT और Apache 2.0 के तहत dual-licensed। इसकी entity-component-system आर्किटेक्चर एक बड़ा आकर्षण है, और यह browser builds के लिए WebAssembly में compile होता है। यह बाकियों से नया है और तेज़ी से बदलता है, इसलिए versions के बीच breaking changes की उम्मीद रखें, पर 2026 में इसकी गति मज़बूत है।</p>
<h3 id="open-3d-engine-o3de" tabindex="-1">Open 3D Engine (O3DE) <a class="header-anchor" href="#open-3d-engine-o3de" aria-label="Permalink to &quot;Open 3D Engine (O3DE)&quot;"></a></h3>
<p>O3DE एक Linux Foundation प्रोजेक्ट (Apache 2.0) है जो बड़े पैमाने के, high-fidelity 3D के लिए बना है, और इसे AWS तथा अन्य कंपनियों का सहारा है। यह AAA महत्वाकांक्षाओं और उससे मेल खाते संसाधनों वाली टीमों के लिए एक गंभीर, भारी इंजन है। यह browser को target नहीं करता।</p>
<h2 id="कैसे-चुनें" tabindex="-1">कैसे चुनें <a class="header-anchor" href="#कैसे-चुनें" aria-label="Permalink to &quot;कैसे चुनें&quot;"></a></h2>
<ul>
<li><strong>लगभग हर चीज़ के लिए एक free इंजन चाहते हैं?</strong> Godot।</li>
<li><strong>एक 2D web game बना रहे हैं?</strong> Phaser, या कस्टम rendering के लिए PixiJS/Excalibur.js।</li>
<li><strong>Web 3D बना रहे हैं?</strong> कंट्रोल और size के लिए Three.js, सब कुछ साथ चाहिए तो Babylon.js।</li>
<li><strong>जितना हो सके छोटा web build?</strong> Defold।</li>
<li><strong>Mini-game प्लेटफ़ॉर्म को target कर रहे हैं?</strong> Cocos Creator।</li>
<li><strong>Rust और ECS पसंद है?</strong> Bevy।</li>
<li><strong>बड़े पैमाने का, high-fidelity 3D?</strong> O3DE।</li>
</ul>
<p>अगर web आपका target है, तो ऊपर के हर इंजन में से O3DE और (ज़्यादातर) LÖVE को छोड़कर हर इंजन एक browser build ship कर सकता है। खासतौर पर web के लिए पूरे विश्लेषण के लिए, <a href="/hi/guides/web-game-engines-comparison.html">web game इंजन की तुलना</a> और हमारी <a href="/hi/guides/unity-alternatives-web-games.html">web games के लिए Unity विकल्प</a> की गाइड देखें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="_2026-में-सबसे-बेहतरीन-ओपन-सोर्स-गेम-इंजन-कौन-सा-है" tabindex="-1">2026 में सबसे बेहतरीन ओपन-सोर्स गेम इंजन कौन सा है? <a class="header-anchor" href="#_2026-में-सबसे-बेहतरीन-ओपन-सोर्स-गेम-इंजन-कौन-सा-है" aria-label="Permalink to &quot;2026 में सबसे बेहतरीन ओपन-सोर्स गेम इंजन कौन सा है?&quot;"></a></h3>
<p>ज़्यादातर लोगों के लिए यह Godot है: MIT लाइसेंस वाला, बिना किसी revenue cap के free, और एक साफ़ web export के साथ 2D और 3D दोनों में सक्षम। खासतौर पर 2D web के लिए, Phaser सबसे लोकप्रिय ओपन-सोर्स विकल्प है, और web 3D के लिए यह Three.js (एक लाइब्रेरी) या Babylon.js (एक पूरा इंजन) है। सबसे अच्छा विकल्प dimensions, भाषा और प्लेटफ़ॉर्म पर निर्भर करता है।</p>
<h3 id="क्या-godot-सचमुच-free-है-बिना-किसी-पेच-के" tabindex="-1">क्या Godot सचमुच free है, बिना किसी पेच के? <a class="header-anchor" href="#क्या-godot-सचमुच-free-है-बिना-किसी-पेच-के" aria-label="Permalink to &quot;क्या Godot सचमुच free है, बिना किसी पेच के?&quot;"></a></h3>
<p>हां। Godot MIT लाइसेंस के तहत जारी होता है, जिसका मतलब है कभी कोई फीस नहीं, कोई royalty नहीं, कोई revenue थ्रेशोल्ड नहीं, और कोई seat नहीं। आप इसे commercial games के लिए इस्तेमाल कर सकते हैं और इंजन को खुद भी modify कर सकते हैं। यह प्रोजेक्ट डेवलपरों से चार्ज करके नहीं, बल्कि donations और sponsorships से चलता है।</p>
<h3 id="क्या-ओपन-सोर्स-गेम-इंजन-commercial-games-के-लिए-काफ़ी-अच्छे-हैं" tabindex="-1">क्या ओपन-सोर्स गेम इंजन commercial games के लिए काफ़ी अच्छे हैं? <a class="header-anchor" href="#क्या-ओपन-सोर्स-गेम-इंजन-commercial-games-के-लिए-काफ़ी-अच्छे-हैं" aria-label="Permalink to &quot;क्या ओपन-सोर्स गेम इंजन commercial games के लिए काफ़ी अच्छे हैं?&quot;"></a></h3>
<p>हां। बहुत से commercially सफल games ओपन-सोर्स इंजन पर ship होते हैं, और ओपन सोर्स का मतलब है कि किसी revenue cap की चिंता नहीं। trade-offs आमतौर पर एक छोटा built-in asset marketplace होते हैं, और कुछ इंजन के लिए, एक बड़े proprietary इंजन के मुकाबले कम तैयार-मिले फ़ीचर। खासकर web games के लिए, ओपन-सोर्स इंजन अक्सर छोटे, तेज़ builds बनाते हैं।</p>
<h3 id="क्या-unity-या-unreal-ओपन-सोर्स-हैं" tabindex="-1">क्या Unity या Unreal ओपन सोर्स हैं? <a class="header-anchor" href="#क्या-unity-या-unreal-ओपन-सोर्स-हैं" aria-label="Permalink to &quot;क्या Unity या Unreal ओपन सोर्स हैं?&quot;"></a></h3>
<p>नहीं। Unity closed-source और subscription-आधारित है। Unreal Engine source-available है (एक account के साथ आप कोड पढ़ और modify कर सकते हैं) पर यह ओपन सोर्स नहीं है और एक revenue थ्रेशोल्ड से ऊपर royalty मॉडल इस्तेमाल करता है। अगर आपको खासतौर पर एक ओपन-सोर्स इंजन चाहिए, तो Godot Unity का सबसे करीबी विकल्प है, और हमारी <a href="/hi/guides/unity-alternatives-web-games.html">Unity विकल्प गाइड</a> बाकी को कवर करती है।</p>
<h3 id="web-के-लिए-कौन-सा-ओपन-सोर्स-गेम-इंजन-सबसे-अच्छा-है" tabindex="-1">Web के लिए कौन सा ओपन-सोर्स गेम इंजन सबसे अच्छा है? <a class="header-anchor" href="#web-के-लिए-कौन-सा-ओपन-सोर्स-गेम-इंजन-सबसे-अच्छा-है" aria-label="Permalink to &quot;Web के लिए कौन सा ओपन-सोर्स गेम इंजन सबसे अच्छा है?&quot;"></a></h3>
<p>हर काम के 2D/3D इंजन के लिए Godot, 2D के लिए Phaser, और 3D के लिए Three.js या Babylon.js। किसी भी पूरे इंजन में से Defold सबसे छोटे web builds ship करता है। ये सभी free और ओपन सोर्स हैं। हमारी <a href="/hi/guides/web-game-engines-comparison.html">web game इंजन की तुलना</a> इन्हें build size, load time और browser सपोर्ट के आधार पर रैंक करती है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे बेहतरीन Web Game इंजन (तुलना)</a> — build size, load time और कीमत के आधार पर रैंक किए गए</li>
<li><a href="/hi/guides/unity-alternatives-web-games.html">Web Games के लिए Unity विकल्प</a> — Unity छोड़ने वाली टीमों के लिए ओपन-सोर्स विकल्प</li>
<li><a href="/hi/guides/godot-vs-unity-web-games.html">Godot vs Unity Web Games के लिए</a> — सबसे करीबी ओपन-सोर्स विकल्प, आमने-सामने</li>
<li><a href="/hi/guides/best-2d-game-engines-2026.html">2026 के लिए सबसे बेहतरीन 2D Game इंजन</a> — अगर आपका गेम 2D है</li>
<li><a href="/hi/guides/threejs-vs-babylonjs.html">Three.js vs Babylon.js</a> — दो बड़ी ओपन-सोर्स web 3D लाइब्रेरी</li>
<li><a href="/hi/engine.html">Cinevva Engine</a> — हमारा ओपन-सोर्स, web-first इंजन जो Three.js पर बना है</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Web Games के लिए Unity के विकल्प (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/unity-alternatives-web-games</link>
            <guid>https://app.cinevva.com/hi/guides/unity-alternatives-web-games</guid>
            <pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में browser games के लिए सबसे अच्छे Unity विकल्प - Godot, PlayCanvas, Three.js, Defold, Cocos, Phaser, और बाकी, web export, build size, language, और cost पर तुलना किए गए, साथ में इस बात के हिसाब से एक चुनाव कि आप Unity क्यों छोड़ रहे हैं।]]></description>
            <content:encoded><![CDATA[<h1 id="web-games-के-लिए-unity-के-विकल्प-2026" tabindex="-1">Web Games के लिए Unity के विकल्प (2026) <a class="header-anchor" href="#web-games-के-लिए-unity-के-विकल्प-2026" aria-label="Permalink to &quot;Web Games के लिए Unity के विकल्प (2026)&quot;"></a></h1>
<figure style="margin:1.5rem 0">
<img src="https://cdn.cinevva.com/guides/unity-alternatives-web-hero.jpg?v=2" alt="Unity alternatives for web games in 2026" style="width:100%;border-radius:10px">
</figure>
<p>Unity web पर export कर सकता है, लेकिन इसके WebGL builds भारी होते हैं, इसकी pricing ने 2023 से developers को झटके दिए हैं, और एक browser-first game के लिए यह शायद ही सबसे हल्का रास्ता है। अगर आप खास web games के लिए Unity का कोई विकल्प ढूँढ रहे हैं, तो यह guide उन engines को कवर करती है जो 2026 में असल में छोटे, तेज़ browser builds बनाते हैं, और इस आधार पर कि आप Unity क्यों छोड़ रहे हैं, किसे चुनना चाहिए।</p>
<p>अगर आप पूरा मैदान साथ-साथ देखना चाहते हैं, तो हमारी <a href="/hi/guides/web-game-engines-comparison.html">2026 के सबसे अच्छे web game engines की तुलना</a> से शुरू करें। यह पेज खास तौर पर web के लिए Unity की जगह लेने के मामले के लिए है।</p>
<h2 id="developers-unity-के-विकल्प-क्यों-ढूँढते-हैं" tabindex="-1">Developers Unity के विकल्प क्यों ढूँढते हैं <a class="header-anchor" href="#developers-unity-के-विकल्प-क्यों-ढूँढते-हैं" aria-label="Permalink to &quot;Developers Unity के विकल्प क्यों ढूँढते हैं&quot;"></a></h2>
<p>कुछ वजहें बार-बार सामने आती हैं:</p>
<ul>
<li><strong>Pricing पर भरोसा।</strong> <a href="/hi/news/2024-09-12-unity-runtime-fee-cancelled.html">Unity Runtime Fee</a> सितंबर 2024 में रद्द कर दी गई थी और वापस नहीं आई है, लेकिन इसने कई teams को इस सवाल के इर्द-गिर्द योजना बनाना सिखा दिया कि &quot;अगर terms फिर बदल गए तो?&quot; एक ऐसा engine जिसके license की कीमत दोबारा नहीं रखी जा सकती, वह यह जोखिम हटा देता है।</li>
<li><strong>Web build size।</strong> Unity के खाली WebGL builds करीब 8 से 11 MB से शुरू होते हैं। Web-native engines 1 से 5 MB की रेंज में आते हैं, जिसे players load time में सीधे महसूस करते हैं।</li>
<li><strong>Mobile browser support।</strong> Phones पर Unity WebGL हमेशा से नाज़ुक रहा है। Web के लिए बने हल्के engines mobile Safari और Chrome पर बेहतर चलते हैं।</li>
<li><strong>Open source।</strong> कुछ teams ऐसा codebase चाहती हैं जिसे वे बिना किसी vendor के पढ़ सकें, fork कर सकें, और उस पर भरोसा कर सकें।</li>
</ul>
<p>अच्छी बात: web के लिए विकल्प मज़बूत हैं, और कई हमेशा के लिए मुफ़्त हैं।</p>
<h2 id="तुरंत-तुलना" tabindex="-1">तुरंत तुलना <a class="header-anchor" href="#तुरंत-तुलना" aria-label="Permalink to &quot;तुरंत तुलना&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>विकल्प</th>
<th>प्रकार</th>
<th>Web tech</th>
<th>Build size (खाली)</th>
<th>Language</th>
<th>Cost</th>
<th>किसके लिए सबसे अच्छा</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/hi/guides/godot-vs-unity-web-games.html"><strong>Godot</strong></a></td>
<td>पूरा 2D/3D engine</td>
<td>WebGL2 + Wasm</td>
<td>~5 MB Brotli</td>
<td>GDScript (C# अभी web पर नहीं)</td>
<td>मुफ़्त (MIT)</td>
<td>सबसे करीबी हर-तरफ़ा Unity विकल्प</td>
</tr>
<tr>
<td><strong>PlayCanvas</strong></td>
<td>Web-first 3D engine</td>
<td>WebGL2 + WebGPU</td>
<td>~1-2 MB</td>
<td>JavaScript</td>
<td>मुफ़्त tier; paid plans</td>
<td>cloud editor के साथ browser-first 3D</td>
</tr>
<tr>
<td><strong>Three.js / Cinevva</strong></td>
<td>3D library / engine</td>
<td>WebGL2 + WebGPU</td>
<td>~150 KB core</td>
<td>JavaScript / TypeScript</td>
<td>मुफ़्त (MIT)</td>
<td>अधिकतम control, सबसे छोटा footprint</td>
</tr>
<tr>
<td><strong>Defold</strong></td>
<td>Web-first 2D/3D</td>
<td>WebGL + Wasm</td>
<td>~1.14 MB</td>
<td>Lua</td>
<td>मुफ़्त</td>
<td>सबसे छोटे, सबसे तेज़ load होने वाले web games</td>
</tr>
<tr>
<td><strong>Cocos Creator</strong></td>
<td>पूरा 2D/3D engine</td>
<td>WebGL + WebGPU + Wasm</td>
<td>~2-4 MB</td>
<td>TypeScript</td>
<td>मुफ़्त</td>
<td>mini-games और एशियाई web बाज़ार</td>
</tr>
<tr>
<td><strong>Phaser</strong></td>
<td>2D framework</td>
<td>WebGL/Canvas</td>
<td>~500 KB</td>
<td>JavaScript</td>
<td>मुफ़्त (MIT)</td>
<td>2D web games, सबसे बड़ी HTML5 community</td>
</tr>
<tr>
<td><strong>Construct / GDevelop</strong></td>
<td>Visual 2D</td>
<td>WebGL</td>
<td>~1-3 MB</td>
<td>No-code</td>
<td>Subscription / मुफ़्त tier</td>
<td>code लिखे बिना Unity छोड़ना</td>
</tr>
</tbody>
</table>
<p>कोई एक &quot;Unity replacement&quot; नहीं है। सही चुनाव इस पर निर्भर करता है कि आपको 3D चाहिए या नहीं, आप code लिखते हैं या नहीं, और Unity आपके लिए क्यों काम नहीं कर रहा था।</p>
<h2 id="godot-सबसे-करीबी-हर-तरफ़ा-विकल्प" tabindex="-1">Godot: सबसे करीबी हर-तरफ़ा विकल्प <a class="header-anchor" href="#godot-सबसे-करीबी-हर-तरफ़ा-विकल्प" aria-label="Permalink to &quot;Godot: सबसे करीबी हर-तरफ़ा विकल्प&quot;"></a></h2>
<p>Godot वह विकल्प है जिस पर ज़्यादातर पूर्व-Unity developers आ टिकते हैं। यह एक पूरा 2D और 3D engine है, MIT license के तहत मुफ़्त, बिना seats, royalties, या revenue caps के, और इसका web export ठोस है। Build size Brotli के साथ compress करके करीब 5 MB होता है, जो Unity के default से छोटा है। Godot 4.3 के बाद से आप single-threaded web builds export कर सकते हैं जो SharedArrayBuffer की ज़रूरत हटा देते हैं, जिसने पुरानी iOS और Safari playback दिक्कतें भी ठीक कर दीं।</p>
<p>Web के लिए एक अड़चन: Godot के C# (.NET) projects अभी browser पर export नहीं हो सकते, सिर्फ़ GDScript होता है। अगर आप कोई C# codebase ले जा रहे हैं, तो यह मायने रखता है। हम <a href="/hi/guides/godot-vs-unity-web-games.html">Godot बनाम Unity for web games</a> में इन समझौतों को विस्तार से कवर करते हैं।</p>
<p>Godot चुनें अगर आप सबसे Unity-जैसा हर-तरफ़ा engine चाहते हैं, हमेशा के लिए मुफ़्त, एक साफ़ 2D और 3D web रास्ते के साथ।</p>
<h2 id="playcanvas-editor-के-साथ-web-first-3d" tabindex="-1">PlayCanvas: editor के साथ web-first 3D <a class="header-anchor" href="#playcanvas-editor-के-साथ-web-first-3d" aria-label="Permalink to &quot;PlayCanvas: editor के साथ web-first 3D&quot;"></a></h2>
<p>PlayCanvas पहले दिन से browser के लिए बनाया गया था। इसका runtime लगभग 1 से 2 MB है, यह WebGL2 और WebGPU दोनों को support करता है, और इसका एक collaborative cloud editor है जो आपको जाना-पहचाना लगेगा अगर आपको Unity का scene workflow पसंद था। Games को JavaScript में script किया जाता है। यह एक मज़बूत चुनाव है जब आपको browser में real-time 3D चाहिए और code-only library के बजाय एक visual editor चाहिए।</p>
<p>PlayCanvas चुनें अगर आप Unity-style 3D scene editing चाहते हैं पर एक छोटा web build।</p>
<h2 id="three-js-और-cinevva-अधिकतम-control-सबसे-छोटा-footprint" tabindex="-1">Three.js और Cinevva: अधिकतम control, सबसे छोटा footprint <a class="header-anchor" href="#three-js-और-cinevva-अधिकतम-control-सबसे-छोटा-footprint" aria-label="Permalink to &quot;Three.js और Cinevva: अधिकतम control, सबसे छोटा footprint&quot;"></a></h2>
<p>अगर आप सबसे हल्का संभव web build और rendering पर पूरा control चाहते हैं, तो <a href="/hi/guides/playcanvas-vs-threejs.html">Three.js</a> मानक है। Core library करीब 150 KB है और यह web पर 3D के एक बड़े हिस्से को चलाती है। यह एक पूरे engine के बजाय एक rendering library है, इसलिए आप अपने game systems या उसके ऊपर एक framework खुद लाते हैं।</p>
<p>ठीक इसी वजह से हमने <a href="/hi/engine.html">Cinevva Engine</a> को Three.js पर बनाया: open-source, web-first, game systems ऊपर से जुड़े हुए ताकि आप एक खाली canvas से शुरू न करें। एक codebase browser, mobile, desktop, Steam, और Discord तक पहुँचता है। कोई seats नहीं, कोई install fees नहीं, कोई ऐसे terms नहीं जो आपके game बनाने के बाद बदल जाएँ, जो वही चीज़ है जिसकी Runtime Fee वाले मामले ने लोगों को परवाह करने पर मजबूर किया।</p>
<p>Three.js या Cinevva चुनें अगर आप web-native 3D, open source, और सबसे छोटा footprint चाहते हैं, और आप JavaScript या TypeScript में सहज हैं।</p>
<h2 id="defold-सबसे-छोटे-सबसे-तेज़-2d-web-builds" tabindex="-1">Defold: सबसे छोटे, सबसे तेज़ 2D web builds <a class="header-anchor" href="#defold-सबसे-छोटे-सबसे-तेज़-2d-web-builds" aria-label="Permalink to &quot;Defold: सबसे छोटे, सबसे तेज़ 2D web builds&quot;"></a></h2>
<p>Defold किसी भी पूरे engine के सबसे छोटे web builds बनाता है, करीब 1.14 MB, और तेज़ load होता है। यह 2D और हल्का 3D करता है, Lua में script करता है, और बिना किसी revenue thresholds के मुफ़्त है। अगर आपका Unity game 2D है और load time प्राथमिकता है, तो web पर Defold को मात देना मुश्किल है।</p>
<p>Defold चुनें casual और mobile web games के लिए जहाँ हर kilobyte मायने रखता है।</p>
<h2 id="cocos-creator-mini-games-और-एशियाई-बाज़ार" tabindex="-1">Cocos Creator: mini-games और एशियाई बाज़ार <a class="header-anchor" href="#cocos-creator-mini-games-और-एशियाई-बाज़ार" aria-label="Permalink to &quot;Cocos Creator: mini-games और एशियाई बाज़ार&quot;"></a></h2>
<p>Cocos Creator एक पूरा 2D और 3D engine है जिसमें WebGL, WebGPU, और Wasm support है, builds 2 से 4 MB की रेंज में बनते हैं, और TypeScript में script होते हैं। यह खास तौर पर mini-game platforms (WeChat, TikTok, Taobao) के लिए मज़बूत है जहाँ Unity का size काम ही नहीं आता। यह मुफ़्त है।</p>
<p>Cocos Creator चुनें mini-games के लिए या अगर आप एशियाई web ecosystem को निशाना बना रहे हैं।</p>
<h2 id="phaser-2d-web-मानक" tabindex="-1">Phaser: 2D web मानक <a class="header-anchor" href="#phaser-2d-web-मानक" aria-label="Permalink to &quot;Phaser: 2D web मानक&quot;"></a></h2>
<p>अगर आपका game 2D है और आप JavaScript लिखते हैं, तो Phaser सबसे लोकप्रिय HTML5 game framework है, जिसमें सबसे बड़ी community और ecosystem है। Builds करीब 500 KB के होते हैं। यह MIT license के तहत मुफ़्त है। 2D web games के लिए यह अक्सर Unity से बेहतर फिट बैठता है, जितना Unity कभी रहा ही नहीं। यह Defold, Construct, और GDevelop से कैसे तुलना करता है, यह देखने के लिए <a href="/hi/guides/best-2d-game-engines-2026.html">2026 के सबसे अच्छे 2D game engines</a> देखें।</p>
<p>Phaser चुनें 2D web games के लिए जब आप code, community, और एक छोटा build चाहते हैं।</p>
<h2 id="construct-और-gdevelop-code-के-बिना-unity-छोड़ना" tabindex="-1">Construct और GDevelop: code के बिना Unity छोड़ना <a class="header-anchor" href="#construct-और-gdevelop-code-के-बिना-unity-छोड़ना" aria-label="Permalink to &quot;Construct और GDevelop: code के बिना Unity छोड़ना&quot;"></a></h2>
<p>अगर Unity से आपकी झुंझलाहट का एक हिस्सा code और setup की मात्रा थी, तो visual engines एक असली विकल्प हैं। <a href="/hi/guides/construct-vs-gdevelop.html">Construct और GDevelop</a> दोनों बिना किसी programming के 2D games बनाते हैं और साफ़ web builds export करते हैं। GDevelop का एक मुफ़्त tier है और यह open-source-friendly है; Construct एक subscription पर आधारित है जिसमें एक पॉलिश किया हुआ editor है।</p>
<p>इनमें से एक चुनें अगर आप थोड़े या बिना code के web games को visually बनाना चाहते हैं।</p>
<h2 id="कैसे-चुनें-unity-छोड़ने-की-वजह-के-हिसाब-से" tabindex="-1">कैसे चुनें, Unity छोड़ने की वजह के हिसाब से <a class="header-anchor" href="#कैसे-चुनें-unity-छोड़ने-की-वजह-के-हिसाब-से" aria-label="Permalink to &quot;कैसे चुनें, Unity छोड़ने की वजह के हिसाब से&quot;"></a></h2>
<ul>
<li><strong>Pricing या भरोसे की वजह से छोड़ा?</strong> open source की ओर जाएँ: Godot, Defold, Phaser, Three.js, या Cinevva। इनमें से किसी की कीमत आपके नीचे से दोबारा नहीं रखी जा सकती।</li>
<li><strong>Browser में 3D चाहिए?</strong> PlayCanvas (editor के साथ) या Three.js और Cinevva (control और सबसे छोटे size के लिए)।</li>
<li><strong>2D बना रहे हैं?</strong> सबसे छोटे builds के लिए Defold, सबसे बड़ी community के लिए Phaser।</li>
<li><strong>Code नहीं लिखना चाहते?</strong> Construct या GDevelop।</li>
<li><strong>Mini-game platforms को निशाना बना रहे हैं?</strong> Cocos Creator।</li>
</ul>
<p>आप जो भी चुनें, web छोटे builds और तेज़ loads को इनाम देता है। एक बार चुन लेने के बाद, <a href="/hi/tutorials/ship-web-game-fast.html">तेज़ load होने वाला web game ship करें</a> देखें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="web-games-के-लिए-सबसे-अच्छा-unity-विकल्प-कौन-सा-है" tabindex="-1">Web games के लिए सबसे अच्छा Unity विकल्प कौन सा है? <a class="header-anchor" href="#web-games-के-लिए-सबसे-अच्छा-unity-विकल्प-कौन-सा-है" aria-label="Permalink to &quot;Web games के लिए सबसे अच्छा Unity विकल्प कौन सा है?&quot;"></a></h3>
<p>ज़्यादातर teams के लिए यह Godot है: एक मुफ़्त, open-source, पूरा 2D और 3D engine जिसके web builds Unity से छोटे होते हैं और iOS व Safari के लिए एक साफ़ single-threaded export रास्ता होता है। अगर आपको खास तौर पर browser-first 3D चाहिए, तो PlayCanvas या Three.js और भी हल्के हैं। सबसे अच्छा चुनाव इस पर निर्भर करता है कि आपको 3D चाहिए या नहीं और आप code लिखते हैं या नहीं।</p>
<h3 id="क्या-unity-का-कोई-मुफ़्त-विकल्प-है" tabindex="-1">क्या Unity का कोई मुफ़्त विकल्प है? <a class="header-anchor" href="#क्या-unity-का-कोई-मुफ़्त-विकल्प-है" aria-label="Permalink to &quot;क्या Unity का कोई मुफ़्त विकल्प है?&quot;"></a></h3>
<p>हाँ, कई हैं। Godot, Defold, Phaser, PixiJS, Excalibur.js, और Three.js सभी मुफ़्त और open-source हैं, बिना किसी revenue caps या seat fees के। Cocos Creator और GDevelop के भी मुफ़्त विकल्प हैं। खास तौर पर web games के लिए, ये मुफ़्त engines अक्सर Unity से छोटे, तेज़ builds बनाते हैं।</p>
<h3 id="web-games-के-लिए-unity-से-क्यों-स्विच-करें" tabindex="-1">Web games के लिए Unity से क्यों स्विच करें? <a class="header-anchor" href="#web-games-के-लिए-unity-से-क्यों-स्विच-करें" aria-label="Permalink to &quot;Web games के लिए Unity से क्यों स्विच करें?&quot;"></a></h3>
<p>आम वजहें हैं build size (Unity के खाली WebGL builds करीब 8 से 11 MB से शुरू होते हैं बनाम web-native engines के लिए 1 से 5 MB), mobile browser विश्वसनीयता, 2023 के Runtime Fee वाले मामले के बाद pricing पर भरोसा, और open source की पसंद। अगर web आपका मुख्य लक्ष्य है, तो एक web-first engine आमतौर पर बेहतर नतीजा देता है।</p>
<h3 id="क्या-मैं-unity-को-एक-open-source-engine-से-बदल-सकता-हूँ" tabindex="-1">क्या मैं Unity को एक open-source engine से बदल सकता हूँ? <a class="header-anchor" href="#क्या-मैं-unity-को-एक-open-source-engine-से-बदल-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं Unity को एक open-source engine से बदल सकता हूँ?&quot;"></a></h3>
<p>हाँ। आम 2D और 3D के लिए Godot सबसे करीबी open-source समकक्ष है, और यह MIT license वाला है, बिना किसी fees के। Web-native 3D के लिए, Three.js (और Cinevva जैसे इस पर बने engines) भी open source हैं। मुख्य migration लागत एक नई language में फिर से बनाना है, क्योंकि हर engine का अपना scripting होता है।</p>
<h3 id="किस-unity-विकल्प-का-सबसे-छोटा-web-build-है" tabindex="-1">किस Unity विकल्प का सबसे छोटा web build है? <a class="header-anchor" href="#किस-unity-विकल्प-का-सबसे-छोटा-web-build-है" aria-label="Permalink to &quot;किस Unity विकल्प का सबसे छोटा web build है?&quot;"></a></h3>
<p>पूरे engines में, Defold सबसे छोटा है, करीब 1.14 MB पर। एक library के तौर पर Three.js और भी छोटा है, करीब 150 KB के core के साथ, हालाँकि आप अपना game code खुद जोड़ते हैं। Godot compress करके करीब 5 MB पर आता है, फिर भी Unity के 8 MB-प्लस शुरुआती बिंदु से काफ़ी नीचे।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के सबसे अच्छे Web Game Engines (तुलना किए गए)</a> — पूरा मैदान, रैंक किया हुआ</li>
<li><a href="/hi/guides/open-source-game-engines-2026.html">2026 के सबसे अच्छे Open-Source Game Engines</a> — मुफ़्त, खुद-fork-करो विकल्प एक जगह</li>
<li><a href="/hi/guides/godot-vs-unity-web-games.html">Web Games के लिए Godot बनाम Unity</a> — सबसे करीबी विकल्प, आमने-सामने</li>
<li><a href="/hi/news/2024-09-12-unity-runtime-fee-cancelled.html">Unity Runtime Fee रद्द: आधिकारिक कहानी</a> — pricing पर भरोसा एक तय करने वाला कारक क्यों बना</li>
<li><a href="/hi/guides/best-2d-game-engines-2026.html">2026 के सबसे अच्छे 2D Game Engines</a> — अगर आपका game 2D है</li>
<li><a href="/hi/guides/playcanvas-vs-threejs.html">PlayCanvas बनाम Three.js</a> — web 3D के लिए engine बनाम library</li>
<li><a href="/hi/engine.html">Cinevva Engine</a> — हमारा open-source, web-first engine जो Three.js पर बना है</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 के लिए सबसे अच्छे 2D गेम इंजन (तुलना)]]></title>
            <link>https://app.cinevva.com/hi/guides/best-2d-game-engines-2026</link>
            <guid>https://app.cinevva.com/hi/guides/best-2d-game-engines-2026</guid>
            <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 के लिए सबसे अच्छे 2D गेम इंजन - Godot, GameMaker, Construct, Defold, Phaser, GDevelop, Unity और LÖVE, कीमत, web export, बिल्ड साइज और हर एक किसके लिए सही है, इस आधार पर तुलना।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-के-लिए-सबसे-अच्छे-2d-गेम-इंजन-तुलना" tabindex="-1">2026 के लिए सबसे अच्छे 2D गेम इंजन (तुलना) <a class="header-anchor" href="#_2026-के-लिए-सबसे-अच्छे-2d-गेम-इंजन-तुलना" aria-label="Permalink to &quot;2026 के लिए सबसे अच्छे 2D गेम इंजन (तुलना)&quot;"></a></h1>
<figure style="margin:1.5rem 0">
<img src="https://cdn.cinevva.com/guides/best-2d-game-engines-2026-hero.jpg?v=2" alt="Best 2D game engines for 2026: Godot, GameMaker, Construct, Defold, Phaser" style="width:100%;border-radius:10px">
</figure>
<p>2D 2026 में पूरी तरह जिंदा है, और आपके पास पहले से कहीं ज्यादा अच्छे इंजन हैं। सही इंजन इस पर निर्भर करता है कि आप कोड लिखते हैं या नहीं, आप web पर शिप कर रहे हैं या नहीं, और आपको बिल्ड कितना छोटा चाहिए। यहां मुख्य विकल्पों की तुलना है, और हर एक किसके लिए सही है।</p>
<p>अगर आप 3D या पूरे cross-platform इंजन भी तौल रहे हैं, तो ज्यादा विस्तृत <a href="/hi/guides/web-game-engines-comparison.html">web game engines तुलना</a> देखें।</p>
<h2 id="क्विक-रेफरेंस" tabindex="-1">क्विक रेफरेंस <a class="header-anchor" href="#क्विक-रेफरेंस" aria-label="Permalink to &quot;क्विक रेफरेंस&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>इंजन</th>
<th>कीमत</th>
<th>Web export</th>
<th>किसके लिए सबसे अच्छा</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://godotengine.org/" target="_blank" rel="noreferrer"><strong>Godot</strong></a></td>
<td>फ्री (MIT)</td>
<td>अच्छा (WebGL2, GDScript)</td>
<td>सबसे अच्छा ऑल-राउंड और ओपन-सोर्स विकल्प</td>
</tr>
<tr>
<td><a href="https://gamemaker.io/" target="_blank" rel="noreferrer"><strong>GameMaker</strong></a></td>
<td>गैर-कमर्शियल के लिए फ्री; $99.99 एक बार का Pro</td>
<td>HTML5 शामिल</td>
<td>कमर्शियल 2D, तेज शिपिंग</td>
</tr>
<tr>
<td><a href="https://www.construct.net/" target="_blank" rel="noreferrer"><strong>Construct</strong></a></td>
<td>फ्री टियर; ~$5-$39/महीना</td>
<td>बढ़िया (HTML5-native)</td>
<td>शुरुआती और no-code, web-first</td>
</tr>
<tr>
<td><a href="https://defold.com/" target="_blank" rel="noreferrer"><strong>Defold</strong></a></td>
<td>फ्री</td>
<td>बढ़िया (&lt;2 MB gzip)</td>
<td>सबसे छोटा, सबसे तेज लोड होने वाला web बिल्ड</td>
</tr>
<tr>
<td><a href="https://phaser.io/" target="_blank" rel="noreferrer"><strong>Phaser</strong></a></td>
<td>फ्री (MIT)</td>
<td>नेटिव (यह एक JS framework है)</td>
<td>code-first web games</td>
</tr>
<tr>
<td><a href="https://gdevelop.io/" target="_blank" rel="noreferrer"><strong>GDevelop</strong></a></td>
<td>फ्री; प्रीमियम $5/महीना से</td>
<td>हां (HTML5)</td>
<td>फ्री no-code</td>
</tr>
<tr>
<td><a href="https://unity.com/" target="_blank" rel="noreferrer"><strong>Unity</strong></a></td>
<td>$200K से कम पर Personal फ्री; Pro ~$2,200/साल</td>
<td>हां (WebGL2)</td>
<td>बड़ा ecosystem, cross-platform पहुंच</td>
</tr>
<tr>
<td><a href="https://love2d.org/" target="_blank" rel="noreferrer"><strong>LÖVE</strong></a></td>
<td>फ्री (ओपन-सोर्स)</td>
<td>love.js के जरिए (थर्ड-पार्टी)</td>
<td>मिनिमलिस्ट Lua प्रोटोटाइपिंग</td>
</tr>
</tbody>
</table>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/a_TDD1QhYGg" title="Unity vs Godot vs Defold! Game Engine Comparison" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Asatte Games नीचे दिए तीन इंजनों की आमने-सामने तुलना करता है।</div>
<h2 id="इंजन" tabindex="-1">इंजन <a class="header-anchor" href="#इंजन" aria-label="Permalink to &quot;इंजन&quot;"></a></h2>
<h3 id="godot" tabindex="-1">Godot <a class="header-anchor" href="#godot" aria-label="Permalink to &quot;Godot&quot;"></a></h3>
<p>ओपन-सोर्स का पसंदीदा, और सचमुच एक बेहतरीन 2D इंजन। Godot 4.7 (जून 2026) में एक डेडिकेटेड 2D रेंडरर, एक हल्का एडिटर, और शुरुआती लोगों के लिए आसान GDScript है। यह MIT लाइसेंस के तहत फ्री है, बिना किसी रॉयल्टी के। Web export WebGL2 पर मजबूत है, बस इतना ध्यान रहे कि browser में सिर्फ GDScript export होता है, C# नहीं। अगर आप एक फ्री टूल चाहते हैं जो शानदार 2D और ठीक-ठाक 3D दोनों करे, तो यही डिफॉल्ट विकल्प है।</p>
<p><strong>किसके लिए सबसे अच्छा:</strong> ऑल-राउंड 2D, ओपन-सोर्स प्रोजेक्ट, pixel art।</p>
<h3 id="gamemaker" tabindex="-1">GameMaker <a class="header-anchor" href="#gamemaker" aria-label="Permalink to &quot;GameMaker&quot;"></a></h3>
<p>Undertale जैसे हिट और कमर्शियल 2D games की लंबी कतार के पीछे का इंजन। यह GML इस्तेमाल करता है, इसकी अपनी तेज स्क्रिप्टिंग भाषा, और फ्री टियर पर भी HTML5 export देता है। कीमत एक दोस्ताना मॉडल में बदल गई है: गैर-कमर्शियल इस्तेमाल के लिए फ्री और कमर्शियल काम के लिए एक बार का $99.99 Pro लाइसेंस, सब्सक्रिप्शन की जगह।</p>
<p><strong>किसके लिए सबसे अच्छा:</strong> कमर्शियल 2D जहां आप तेजी से शिप करना चाहते हैं, pixel art।</p>
<h3 id="construct" tabindex="-1">Construct <a class="header-anchor" href="#construct" aria-label="Permalink to &quot;Construct&quot;"></a></h3>
<p>एक browser-based, no-code इंजन जो एक event सिस्टम के इर्द-गिर्द बना है। आप games को विज़ुअली बनाते हैं, बिना किसी प्रोग्रामिंग के, और चूंकि यह HTML5-native है, web export बढ़िया रहता है। कीमत सब्सक्रिप्शन पर आधारित है, टियर के हिसाब से लगभग $5 से $39 प्रति महीना, साथ में एक सीमित फ्री विकल्प।</p>
<p><strong>किसके लिए सबसे अच्छा:</strong> शुरुआती, no-code क्रिएटर, और web-first 2D।</p>
<h3 id="defold" tabindex="-1">Defold <a class="header-anchor" href="#defold" aria-label="Permalink to &quot;Defold&quot;"></a></h3>
<p>पूर्व King डेवलपर्स का बनाया एक फ्री इंजन जो हैरान कर देने वाले छोटे web बिल्ड बनाता है, अक्सर 2 MB gzipped से कम। इससे यह उन casual web games और मिनी-गेम प्लेटफॉर्म के लिए आदर्श बनता है जहां लोड टाइम ही सब कुछ है। यह Lua इस्तेमाल करता है और Defold License के तहत source-available है।</p>
<p><strong>किसके लिए सबसे अच्छा:</strong> सबसे छोटे, सबसे तेज लोड होने वाले web games।</p>
<h3 id="phaser" tabindex="-1">Phaser <a class="header-anchor" href="#phaser" aria-label="Permalink to &quot;Phaser&quot;"></a></h3>
<p>सबसे लोकप्रिय HTML5 गेम framework, और एक code-first वाला। Phaser 4 (अप्रैल 2026 में रिलीज) एक नया WebGL रेंडरर लेकर आया जो पूरी तरह नए सिरे से बनाया गया था। यह फ्री और ओपन-सोर्स है, आप JavaScript या TypeScript लिखते हैं, और चूंकि यह एक web framework है इसलिए कोई &quot;export&quot; स्टेप नहीं है, आपका गेम पहले से ही browser में चलता है।</p>
<p><strong>किसके लिए सबसे अच्छा:</strong> ऐसे डेवलपर जो code-first, web-native 2D framework चाहते हैं।</p>
<h3 id="gdevelop" tabindex="-1">GDevelop <a class="header-anchor" href="#gdevelop" aria-label="Permalink to &quot;GDevelop&quot;"></a></h3>
<p>ओपन-सोर्स और no-code, GDevelop आसपास के सबसे शुरुआती-फ्रेंडली इंजनों में से एक है। यह फ्री है, साथ में $5 प्रति महीने से एक वैकल्पिक प्रीमियम टियर, और यह असीमित HTML5 बिल्ड export करता है। अगर आप no-code चाहते हैं पर साथ में ओपन-सोर्स भी, तो यह एक अच्छा बीच का रास्ता है।</p>
<p><strong>किसके लिए सबसे अच्छा:</strong> फ्री no-code 2D।</p>
<h3 id="unity" tabindex="-1">Unity <a class="header-anchor" href="#unity" aria-label="Permalink to &quot;Unity&quot;"></a></h3>
<p>Unity का 2D टूलसेट परिपक्व है, और इसका ecosystem और asset store बेमिसाल है। एक छोटे 2D गेम के लिए यह जरूरत से ज्यादा है, लेकिन अगर आप cross-platform पहुंच चाहते हैं या आगे चलकर 3D में बढ़ने की सोच रहे हैं, तो यह अपनी जगह बना लेता है। $200K रेवेन्यू से कम पर Personal फ्री है, Pro करीब $2,200 प्रति साल प्रति सीट है। Godot से अलग, Unity का C# web पर export होता है।</p>
<p><strong>किसके लिए सबसे अच्छा:</strong> ऐसी टीमें जो ecosystem या cross-platform पहुंच चाहती हैं।</p>
<h3 id="love-love2d" tabindex="-1">LÖVE (Love2D) <a class="header-anchor" href="#love-love2d" aria-label="Permalink to &quot;LÖVE (Love2D)&quot;"></a></h3>
<p>एक मिनिमलिस्ट Lua framework, पूरा एडिटर नहीं। आप कोड लिखते हैं, यह चलता है। LÖVE 11.5 मौजूदा स्टेबल रिलीज है, और 12.0 डेवलपमेंट में है। Web export थर्ड-पार्टी love.js के जरिए मौजूद है, लेकिन यह first-class नहीं है। LÖVE तब चुनें जब आपको कोड लिखना पसंद हो और आप अपने और game loop के बीच लगभग कोई abstraction न चाहते हों।</p>
<p><strong>किसके लिए सबसे अच्छा:</strong> code-focused हॉबीइस्ट और हल्के प्रोटोटाइप।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/ZiBsbBGT9L4" title="Unreal vs Unity vs Godot, which one is better in 2026?" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">InspirationTuts 2026 के लिए बड़े इंजनों को आमने-सामने रखता है।</div>
<h2 id="कैसे-चुनें" tabindex="-1">कैसे चुनें <a class="header-anchor" href="#कैसे-चुनें" aria-label="Permalink to &quot;कैसे चुनें&quot;"></a></h2>
<ul>
<li><strong>आप कोड नहीं लिखना चाहते:</strong> Construct या GDevelop। अगर आप web पर शिप कर रहे हैं तो Construct, अगर आप ओपन-सोर्स चाहते हैं तो GDevelop।</li>
<li><strong>आपको सबसे छोटा, सबसे तेज web बिल्ड चाहिए:</strong> Defold।</li>
<li><strong>आप कोड लिखते हैं और web को टारगेट करते हैं:</strong> Phaser।</li>
<li><strong>आप हर चीज के लिए एक फ्री इंजन चाहते हैं:</strong> Godot।</li>
<li><strong>आप एक कमर्शियल 2D गेम शिप कर रहे हैं:</strong> GameMaker या Unity।</li>
<li><strong>आपको सबसे बड़ा ecosystem चाहिए या आप 3D जोड़ने की योजना बना रहे हैं:</strong> Unity।</li>
</ul>
<p>आप जो भी चुनें, आपको art और audio की जरूरत होगी। ऐसे स्रोतों के लिए <a href="/hi/guides/game-assets-guide.html">फ्री गेम एसेट्स कहां मिलेंगी</a> देखें जिन्हें आप सीधे डाल सकते हैं।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="_2026-में-सबसे-अच्छा-2d-गेम-इंजन-कौन-सा-है" tabindex="-1">2026 में सबसे अच्छा 2D गेम इंजन कौन सा है? <a class="header-anchor" href="#_2026-में-सबसे-अच्छा-2d-गेम-इंजन-कौन-सा-है" aria-label="Permalink to &quot;2026 में सबसे अच्छा 2D गेम इंजन कौन सा है?&quot;"></a></h3>
<p>ज्यादातर लोगों के लिए, Godot सबसे अच्छा ऑल-राउंड 2D इंजन है: फ्री, ओपन-सोर्स, एक first-class 2D रेंडरर के साथ। अगर आप कोड नहीं लिखना चाहते, तो Construct (web-first) या GDevelop (ओपन-सोर्स) बेहतर हैं। कमर्शियल 2D के लिए, GameMaker और Unity आजमाए हुए हैं। &quot;सबसे अच्छा&quot; इस पर निर्भर करता है कि आप कोड लिखते हैं या नहीं और आप कहां शिप कर रहे हैं।</p>
<h3 id="शुरुआती-लोगों-के-लिए-कौन-सा-2d-गेम-इंजन-सबसे-अच्छा-है" tabindex="-1">शुरुआती लोगों के लिए कौन सा 2D गेम इंजन सबसे अच्छा है? <a class="header-anchor" href="#शुरुआती-लोगों-के-लिए-कौन-सा-2d-गेम-इंजन-सबसे-अच्छा-है" aria-label="Permalink to &quot;शुरुआती लोगों के लिए कौन सा 2D गेम इंजन सबसे अच्छा है?&quot;"></a></h3>
<p>Construct और GDevelop सबसे शुरुआती-फ्रेंडली हैं क्योंकि वे no-code हैं, आप प्रोग्रामिंग की जगह विज़ुअल event सिस्टम से बनाते हैं। GDevelop फ्री और ओपन-सोर्स है, Construct सब्सक्रिप्शन पर आधारित है पर इसका web export सबसे आसान है। अगर आप साथ-साथ कोड लिखना सीखना चाहते हैं, तो GDScript वाला Godot code-based इंजनों में सबसे आसान है।</p>
<h3 id="सबसे-अच्छा-फ्री-2d-गेम-इंजन-कौन-सा-है" tabindex="-1">सबसे अच्छा फ्री 2D गेम इंजन कौन सा है? <a class="header-anchor" href="#सबसे-अच्छा-फ्री-2d-गेम-इंजन-कौन-सा-है" aria-label="Permalink to &quot;सबसे अच्छा फ्री 2D गेम इंजन कौन सा है?&quot;"></a></h3>
<p>Godot सबसे मजबूत फ्री, ओपन-सोर्स 2D इंजन है, बिना किसी फीस या रॉयल्टी के। GDevelop सबसे अच्छा फ्री no-code विकल्प है, Defold सबसे छोटे web बिल्ड के साथ फ्री है, और Phaser एक फ्री ओपन-सोर्स framework है अगर आप कोड लिखते हैं। GameMaker गैर-कमर्शियल इस्तेमाल के लिए फ्री है, फिर कमर्शियल प्रोजेक्ट के लिए एक बार का $99.99 लाइसेंस।</p>
<h3 id="कौन-सा-2d-इंजन-सबसे-छोटे-web-games-बनाता-है" tabindex="-1">कौन सा 2D इंजन सबसे छोटे web games बनाता है? <a class="header-anchor" href="#कौन-सा-2d-इंजन-सबसे-छोटे-web-games-बनाता-है" aria-label="Permalink to &quot;कौन सा 2D इंजन सबसे छोटे web games बनाता है?&quot;"></a></h3>
<p>Defold सबसे छोटे web बिल्ड बनाता है, अक्सर 2 MB gzipped से कम, इसीलिए यह उन casual और मिनी-गेम प्लेटफॉर्म के लिए लोकप्रिय है जहां लोड टाइम तय करता है कि खिलाड़ी टिकेंगे या नहीं। Phaser और Godot भी ठीक-ठाक हैं, लेकिन कच्चे footprint के मामले में Defold आगे है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे Web Game Engines (तुलना)</a> — 2D और 3D, पूरा मैदान</li>
<li><a href="/hi/guides/godot-vs-unity-web-games.html">Web Games के लिए Godot बनाम Unity</a> — दो बड़े इंजन आमने-सामने</li>
<li><a href="/hi/guides/construct-vs-gdevelop.html">Construct बनाम GDevelop</a> — दो no-code 2D इंजनों की तुलना</li>
<li><a href="/hi/guides/game-assets-guide.html">फ्री गेम एसेट्स कहां मिलेंगी</a> — आपके 2D गेम के लिए art और audio</li>
<li><a href="/hi/tutorials/canvas-2d-game-loop.html">Canvas 2D game loop</a> — बिना किसी इंजन के एक 2D गेम बनाएं</li>
<li><a href="/hi/engine.html">Cinevva Engine</a> — हमारा ओपन-सोर्स, web-first इंजन</li>
</ul>
<BuildCta
  title="कौन सा 2D इंजन लें, तय नहीं कर पा रहे? फ़ैसला छोड़िए"
  desc="एक 2D गेम बताइए और बिना इंजन इंस्टॉल किए करीब एक मिनट में खेलिए।"
  prompt="Make a neon 2D side-scrolling runner with coins and a high score" />
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Construct बनाम GDevelop: सबसे अच्छा No-Code 2D इंजन (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/construct-vs-gdevelop</link>
            <guid>https://app.cinevva.com/hi/guides/construct-vs-gdevelop</guid>
            <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में Construct बनाम GDevelop - दो no-code 2D game इंजनों की कीमत, web export, 3D सपोर्ट, scripting, multiplayer और open-source पर तुलना, और हर तरह के creator के लिए एक सुझाव।]]></description>
            <content:encoded><![CDATA[<h1 id="construct-बनाम-gdevelop-सबसे-अच्छा-no-code-2d-इंजन-2026" tabindex="-1">Construct बनाम GDevelop: सबसे अच्छा No-Code 2D इंजन (2026) <a class="header-anchor" href="#construct-बनाम-gdevelop-सबसे-अच्छा-no-code-2d-इंजन-2026" aria-label="Permalink to &quot;Construct बनाम GDevelop: सबसे अच्छा No-Code 2D इंजन (2026)&quot;"></a></h1>
<figure style="margin:1.5rem 0">
<img src="https://cdn.cinevva.com/guides/construct-vs-gdevelop-hero.jpg?v=2" alt="Construct vs GDevelop, no-code 2D game engines in 2026" style="width:100%;border-radius:10px">
</figure>
<p>अगर आप कोड लिखे बिना एक game बनाना चाहते हैं, तो ये दोनों सबसे आगे हैं। दोनों programming के बजाय visual event logic से games बनाते हैं, और दोनों web पर export करते हैं। बड़ा फर्क सोच और कीमत का है: Construct एक polished subscription product है, GDevelop free और open source है। 2026 में ये कैसे तुलना करते हैं, यहाँ देखिए।</p>
<p>code-based इंजनों समेत बड़े मैदान के लिए, <a href="/hi/guides/web-game-engines-comparison.html">web game engines की तुलना</a> और <a href="/hi/guides/best-2d-game-engines-2026.html">2026 के सबसे अच्छे 2D game engines</a> देखें।</p>
<h2 id="झटपट-फैसला" tabindex="-1">झटपट फैसला <a class="header-anchor" href="#झटपट-फैसला" aria-label="Permalink to &quot;झटपट फैसला&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th>Construct</th>
<th>GDevelop</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>मॉडल</strong></td>
<td>Proprietary, subscription</td>
<td>Free, open-source (MIT)</td>
</tr>
<tr>
<td><strong>Logic</strong></td>
<td>Event sheets</td>
<td>Event system</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>Free tier; Personal ~$129.99/yr</td>
<td>Free; premium ~$7.99/mo से</td>
</tr>
<tr>
<td><strong>Web export</strong></td>
<td>बहुत अच्छा (HTML5-native)</td>
<td>हाँ (HTML5)</td>
</tr>
<tr>
<td><strong>3D</strong></td>
<td>बढ़ रहा (r487 में 3D editor, 2D-first)</td>
<td>पूरा real-time 3D editor (5.6)</td>
</tr>
<tr>
<td><strong>Scripting</strong></td>
<td>JavaScript और TypeScript</td>
<td>Events + JavaScript</td>
</tr>
<tr>
<td><strong>किसके लिए सबसे अच्छा</strong></td>
<td>Polished workflow, built-in multiplayer</td>
<td>Free, open-source, नया 3D</td>
</tr>
</tbody>
</table>
<h2 id="no-code-दो-तरीके" tabindex="-1">No-Code, दो तरीके <a class="header-anchor" href="#no-code-दो-तरीके" aria-label="Permalink to &quot;No-Code, दो तरीके&quot;"></a></h2>
<p>दोनों इंजन आपको visual conditions और actions को जमाकर एक game बनाने देते हैं, कोई programming की जरूरत नहीं। Construct &quot;event sheets&quot; का इस्तेमाल करता है, एक साफ-सुथरा, spreadsheet जैसा flow जिसकी इस बात के लिए खूब तारीफ होती है कि आप इसमें कितनी तेजी से prototype बना सकते हैं। GDevelop एक मिलते-जुलते event system का इस्तेमाल करता है और शुरुआती लोगों के लिए उतना ही आसान है।</p>
<p>सबसे जरूरी फर्क: <strong>Construct एक paid, closed-source product है; GDevelop free और MIT license के तहत open source है।</strong> अगर open source या जीरो कीमत आपकी प्राथमिकता है, तो शायद यही अकेली बात फैसला कर दे।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/MDlP01bwczo" title="Why I Switched From Construct 3 To GDevelop" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Construct से GDevelop पर जाने को लेकर एक creator की राय।</div>
<h2 id="कीमत" tabindex="-1">कीमत <a class="header-anchor" href="#कीमत" aria-label="Permalink to &quot;कीमत&quot;"></a></h2>
<p>Construct 3 एक subscription पर चलता है। एक सीमित free edition है, और Personal plan लगभग $15.99 प्रति माह या $129.99 प्रति साल है, इससे ऊपर Education और Business tiers हैं। आप एक polished, सक्रिय रूप से विकसित होते product के लिए भुगतान कर रहे हैं।</p>
<p>GDevelop का इंजन free और open source है। वैकल्पिक premium tiers (लगभग $7.99 Silver, $13.99 Gold, और $39.99 Pro प्रति माह, सालाना billing करीब 40% सस्ती) cloud builds और online services जोड़ते हैं, लेकिन आप पूरी तरह free में games बना और export कर सकते हैं। जनवरी 2026 में नए subscribers के लिए कीमतें 20% बढ़ीं (मौजूदा subscribers की कीमत पहले जैसी बनी रही)।</p>
<p>किसी शौकिया या कीमत को लेकर सजग किसी भी इंसान के लिए, GDevelop के free tier के खिलाफ तर्क देना मुश्किल है। एक ऐसे studio के लिए जो एक परिष्कृत commercial tool चाहता है, Construct का subscription वाजिब है।</p>
<h2 id="_3d-scripting-और-multiplayer" tabindex="-1">3D, Scripting, और Multiplayer <a class="header-anchor" href="#_3d-scripting-और-multiplayer" aria-label="Permalink to &quot;3D, Scripting, और Multiplayer&quot;"></a></h2>
<p><strong>3D:</strong> GDevelop यहाँ आगे निकल गया। इसके 5.6 release (दिसंबर 2025) ने Jolt-आधारित physics, shadows, animated models, 3D particles, और तैयार character तथा vehicle behaviors के साथ एक पूरा real-time 3D editor दिया, और बाद के 5.6 updates ने 3D point और spot lights भी जोड़े। Construct पीछा कर रहा है: r487 stable release (मई 2026) ने अपने पहले से मौजूद 3D camera और glTF model सपोर्ट के ऊपर gizmos वाला 3D editor mode और एक 3D bullet behavior जोड़ा। यह एक असली कदम है, लेकिन यह अब भी मूल रूप से एक 2D इंजन के ऊपर बना है।</p>
<p><strong>Scripting:</strong> जब events आपके लिए कम पड़ने लगें, तो दोनों आपको code में उतरने देते हैं। Construct event sheets के साथ-साथ JavaScript और TypeScript को सपोर्ट करता है। GDevelop अपने events और extensions के जरिए JavaScript को सपोर्ट करता है। दोनों no-code रास्ते को मुख्य रखते हैं।</p>
<p><strong>Multiplayer:</strong> Construct peer-to-peer games के लिए WebRTC data channels पर एक built-in Multiplayer object देता है। GDevelop अपनी online services के जरिए built-in lobby-आधारित multiplayer देता है, जिसमें free plan एक 4-player lobby तक सीमित है और paid plans इसे 8 तक बढ़ा देते हैं।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/Jjsfk-vzlWQ" title="Construct 3 Is Officially Going 3D" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Construct के 3D की ओर बढ़ने पर FoozleCC।</div>
<h2 id="कब-किसे-चुनें" tabindex="-1">कब किसे चुनें <a class="header-anchor" href="#कब-किसे-चुनें" aria-label="Permalink to &quot;कब किसे चुनें&quot;"></a></h2>
<p><strong>GDevelop</strong> चुनें अगर आप free और open source, cross-platform export, और ज्यादा सक्षम real-time 3D editor चाहते हैं। यह शौकीनों, छात्रों, और किसी भी ऐसे इंसान के लिए ज्यादा सही है जो अपनी tooling का मालिक रहना चाहता है।</p>
<p><strong>Construct</strong> चुनें अगर आप सबसे polished event-sheet workflow, परिपक्व और भरोसेमंद HTML5 export, और built-in WebRTC multiplayer चाहते हैं, और आपको एक परिष्कृत commercial product के लिए subscription से ऐतराज नहीं है।</p>
<p>चाहे जो भी हो, आपको art और audio चाहिए होगा। ऐसे sources के लिए जो आप तुरंत इस्तेमाल कर सकते हैं, <a href="/hi/guides/game-assets-guide.html">free game assets कहाँ मिलें</a> देखें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="शुरुआती-लोगों-के-लिए-construct-बेहतर-है-या-gdevelop" tabindex="-1">शुरुआती लोगों के लिए Construct बेहतर है या GDevelop? <a class="header-anchor" href="#शुरुआती-लोगों-के-लिए-construct-बेहतर-है-या-gdevelop" aria-label="Permalink to &quot;शुरुआती लोगों के लिए Construct बेहतर है या GDevelop?&quot;"></a></h3>
<p>दोनों शुरुआती लोगों के लिए बनाए गए हैं और बिना किसी coding के visual event logic का इस्तेमाल करते हैं। GDevelop कीमत पर जीतता है (यह free और open source है) और अब इसका 3D editor ज्यादा मजबूत है। Construct workflow की चमक और built-in multiplayer पर जीतता है। अगर बजट मायने रखता है, तो GDevelop से शुरू करें। अगर आप सबसे परिष्कृत 2D event workflow चाहते हैं, तो पहले Construct का free edition आजमाएँ।</p>
<h3 id="क्या-gdevelop-सच-में-free-है" tabindex="-1">क्या GDevelop सच में free है? <a class="header-anchor" href="#क्या-gdevelop-सच-में-free-है" aria-label="Permalink to &quot;क्या GDevelop सच में free है?&quot;"></a></h3>
<p>हाँ। GDevelop इंजन MIT license के तहत free और open source है, और आप बिना किसी कीमत के HTML5 games बना और export कर सकते हैं। वैकल्पिक premium tiers (लगभग $7.99/माह से) cloud builds और online services जोड़ते हैं, लेकिन एक game बनाने और भेजने के लिए ये जरूरी नहीं हैं।</p>
<h3 id="क्या-construct-और-gdevelop-3d-games-बना-सकते-हैं" tabindex="-1">क्या Construct और GDevelop 3D games बना सकते हैं? <a class="header-anchor" href="#क्या-construct-और-gdevelop-3d-games-बना-सकते-हैं" aria-label="Permalink to &quot;क्या Construct और GDevelop 3D games बना सकते हैं?&quot;"></a></h3>
<p>दोनों के पास 3D है, लेकिन GDevelop ज्यादा आगे है। GDevelop 5.6 (दिसंबर 2025) ने physics, shadows, और animated models के साथ एक पूरा real-time 3D editor जोड़ा। Construct ने r487 (मई 2026) में अपने 3D camera और glTF model सपोर्ट के साथ-साथ अपना खुद का 3D editor mode जोड़ा, लेकिन यह मुख्य रूप से एक 2D इंजन ही बना रहता है। 3D की ओर झुके projects के लिए, GDevelop ज्यादा मजबूत no-code विकल्प है।</p>
<h3 id="क्या-construct-और-gdevelop-web-पर-export-करते-हैं" tabindex="-1">क्या Construct और GDevelop web पर export करते हैं? <a class="header-anchor" href="#क्या-construct-और-gdevelop-web-पर-export-करते-हैं" aria-label="Permalink to &quot;क्या Construct और GDevelop web पर export करते हैं?&quot;"></a></h3>
<p>हाँ, दोनों HTML5 games export करते हैं जो browser में चलते हैं। Construct HTML5-native है और परिपक्व, भरोसेमंद web export देता है। GDevelop असीमित HTML5 builds export करता है, free में locally भी। दोनों browser games के लिए ठोस विकल्प हैं।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/best-2d-game-engines-2026.html">2026 के सबसे अच्छे 2D Game Engines</a> — पूरा 2D मैदान, code और no-code</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के सबसे अच्छे Web Game Engines (तुलना)</a> — 2D और 3D</li>
<li><a href="/hi/guides/game-assets-guide.html">Free Game Assets कहाँ मिलें</a> — आपके game के लिए art और audio</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना Game कैसे लॉन्च करें</a> — अपने game को players के सामने लाना</li>
<li><a href="/hi/engine.html">Cinevva</a> — AI-powered tools से games बनाएँ, web-first</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Web Games के लिए Godot बनाम Unity (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/godot-vs-unity-web-games</link>
            <guid>https://app.cinevva.com/hi/guides/godot-vs-unity-web-games</guid>
            <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में browser games के लिए Godot बनाम Unity - build size, WebGL2 बनाम WebGPU, C# की web-export सीमा, iOS support, और pricing, हर तरह के web game के लिए एक साफ़ चुनाव के साथ।]]></description>
            <content:encoded><![CDATA[<h1 id="web-games-के-लिए-godot-बनाम-unity-2026" tabindex="-1">Web Games के लिए Godot बनाम Unity (2026) <a class="header-anchor" href="#web-games-के-लिए-godot-बनाम-unity-2026" aria-label="Permalink to &quot;Web Games के लिए Godot बनाम Unity (2026)&quot;"></a></h1>
<figure style="margin:1.5rem 0">
<img src="https://cdn.cinevva.com/guides/godot-vs-unity-web-hero.jpg?v=2" alt="Godot vs Unity for web games in 2026" style="width:100%;border-radius:10px">
</figure>
<p>Godot और Unity दोनों एक game को browser तक पहुँचा सकते हैं। वे वहाँ बहुत अलग तरीकों से पहुँचते हैं, और खास web के लिए इन दोनों के बीच का फ़र्क आम &quot;Godot बनाम Unity&quot; बहस के मुकाबले कहीं ज़्यादा तीखा है। यह guide उन्हीं चीज़ों पर इनकी तुलना करती है जो असल में एक web build तय करती हैं: download size, rendering, language support, mobile browsers, और cost।</p>
<p>अगर आप हर browser engine का बड़ा नज़ारा चाहते हैं, तो हमारी <a href="/hi/guides/web-game-engines-comparison.html">web game engines की तुलना</a> से शुरू करें। यह पेज दो बड़े full-engine विकल्पों पर ज़ूम करता है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/84Prr0SOMvk" title="Unity or Godot in 2025 - Which Game Engine is Right for You?" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Gamefromscratch बताता है कि हर engine कहाँ फ़िट होता है। web के लिए छोटा जवाब नीचे है।</div>
<h2 id="तुरंत-फ़ैसला" tabindex="-1">तुरंत फ़ैसला <a class="header-anchor" href="#तुरंत-फ़ैसला" aria-label="Permalink to &quot;तुरंत फ़ैसला&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th>Godot</th>
<th>Unity</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Web build size (खाली)</strong></td>
<td>~5 MB Brotli (~40 MB uncompressed)</td>
<td>~7.7 MB 2D, ~10.7 MB 3D, ~2 MB stripped (Brotli)</td>
</tr>
<tr>
<td><strong>Web language</strong></td>
<td>सिर्फ़ GDScript (C# अभी web पर export नहीं कर सकता)</td>
<td>C# (web पर काम करता है)</td>
</tr>
<tr>
<td><strong>Web rendering</strong></td>
<td>WebGL2 (Compatibility renderer)</td>
<td>WebGL2, साथ में experimental WebGPU</td>
</tr>
<tr>
<td><strong>iOS/Safari</strong></td>
<td>single-threaded export (4.3+) के साथ अच्छा</td>
<td>Unity 6 से mobile web</td>
</tr>
<tr>
<td><strong>Cost</strong></td>
<td>Free, MIT, कभी कोई fees नहीं</td>
<td>$200K से नीचे Personal free; Pro ~$2,200/साल/seat</td>
</tr>
<tr>
<td><strong>किसके लिए बेहतर</strong></td>
<td>Free, छोटे 2D और हल्के 3D web games</td>
<td>भारी 3D, C# teams, बड़ा asset ecosystem</td>
</tr>
</tbody>
</table>
<p>सबसे बड़ा एक ही तय करने वाला कारक: <strong>अगर आपका game C# में लिखा है, तो Unity उसे web पर भेज सकता है और Godot अब भी नहीं कर सकता।</strong> बाकी सब कुछ इसी से निकलता है।</p>
<h2 id="build-size-और-load-time" tabindex="-1">Build Size और Load Time <a class="header-anchor" href="#build-size-और-load-time" aria-label="Permalink to &quot;Build Size और Load Time&quot;"></a></h2>
<p>Download size वह पहली चीज़ है जो एक web player को महसूस होती है। Godot का web export engine को एक WebAssembly binary के रूप में भेजता है जो uncompressed लगभग 40 MB है पर Brotli के साथ करीब 5 MB तक compress हो जाता है। यह size इसलिए आता है क्योंकि prebuilt template पूरा engine ढोता है (3D renderer, audio, networking), क्योंकि उसे पता नहीं होता कि आपका game कौन-से features इस्तेमाल करता है।</p>
<p>Unity की खाली web builds, Unity 6 पर Brotli के साथ मापी गईं, एक 2D built-in pipeline project के लिए करीब 7.7 MB और एक 3D URP template के लिए 10.7 MB पर आती हैं। एक आक्रामक तरीके से stripped minimal build करीब 2 MB तक नीचे आ सकती है। तो एक ध्यान से छाँटी गई Unity 2D build Godot के footprint के करीब पहुँच सकती है, पर Godot का default कम मेहनत में ही छोटा होता है।</p>
<p>दोनों engines के लिए, आपके assets आम तौर पर engine binary से कहीं ज़्यादा बड़े होते हैं। textures और audio को compress करें, जो stream कर सकते हैं उसे stream करें, और engine का चुनाव आपके asset budget से कम मायने रखता है।</p>
<h2 id="c-की-सीमा-चुनने-से-पहले-इसे-पढ़ें" tabindex="-1">C# की सीमा (चुनने से पहले इसे पढ़ें) <a class="header-anchor" href="#c-की-सीमा-चुनने-से-पहले-इसे-पढ़ें" aria-label="Permalink to &quot;C# की सीमा (चुनने से पहले इसे पढ़ें)&quot;"></a></h2>
<p>यही वह बात है जो teams को चौंकाती है। 2026 तक, <strong>C# (.NET) में लिखे Godot projects आधिकारिक रूप से web पर export नहीं कर सकते।</strong> GDScript ठीक से export होता है। मई 2025 में GodotCon Boston में Mono को statically link करके एक चलता हुआ C# web prototype दिखाया गया था, पर इसने एक बड़ा payload भेजा और team किसी release timeline पर प्रतिबद्ध नहीं हुई।</p>
<p>Unity, इसके उलट, C# को WebAssembly में compile करता है और सालों से C# को browser में भेज रहा है। तो अगर आपके पास पहले से एक C# codebase है, या आपकी team सिर्फ़ C# जानती है, तो web के लिए Unity व्यावहारिक चुनाव है। अगर आप नए सिरे से शुरू कर रहे हैं और GDScript में खुश हैं, तो Godot का web रास्ता साफ़ है।</p>
<h2 id="rendering-webgl2-बनाम-webgpu" tabindex="-1">Rendering: WebGL2 बनाम WebGPU <a class="header-anchor" href="#rendering-webgl2-बनाम-webgpu" aria-label="Permalink to &quot;Rendering: WebGL2 बनाम WebGPU&quot;"></a></h2>
<p>Godot का web export अपने Compatibility renderer के ज़रिए WebGL2 को target करता है। इसका बड़ा WebGPU काम web export के लिए अभी production-ready नहीं है। Godot 4.5 (सितंबर 2025) ने WebAssembly SIMD ज़रूर जोड़ा, जो बिना code बदले web performance में मदद करता है।</p>
<p>Unity 6 ने एक experimental WebGPU backend जोड़ा जो compute shaders और WebGL2 से आगे के modern GPU features देता है, और WebGL2 अब भी सुरक्षित fallback है। WebGPU अभी हर browser पर उपलब्ध नहीं है (मौजूदा support के लिए हमारी <a href="/hi/guides/web-games-stack-2026.html">web games tech stack guide</a> देखें), तो इसे एक upgrade रास्ता मानें, baseline नहीं। Unity 6 ने WebAssembly heap को भी 4 GB तक बढ़ाया और Wasm SIMD तथा native exceptions जोड़े।</p>
<p>अगर आपको आज browser में compute shaders या भारी 3D चाहिए, तो Unity का WebGPU रास्ता आगे है। 2D और WebGL2 पर हल्के 3D के लिए, दोनों ठीक हैं।</p>
<h2 id="threading-ios-और-hosting-की-दिक्कतें" tabindex="-1">Threading, iOS, और Hosting की दिक्कतें <a class="header-anchor" href="#threading-ios-और-hosting-की-दिक्कतें" aria-label="Permalink to &quot;Threading, iOS, और Hosting की दिक्कतें&quot;"></a></h2>
<p>Godot 4 को मूल रूप से SharedArrayBuffer चाहिए था, जिसे browsers तभी उजागर करते हैं जब पेज cross-origin isolated हो (COOP और COEP headers)। यह एक hosting दिक्कत है, और itch.io पर यह सिर्फ़ Chrome में काम करता है। Godot 4.3 से आप single-threaded builds export कर सकते हैं जो इस ज़रूरत को पूरी तरह हटा देती हैं, और उसी बदलाव ने पुराने iOS और Safari playback की समस्याएँ भी ठीक कीं। एक web-first Godot game के लिए, single-threaded export आम तौर पर ज़्यादा सुरक्षित default होता है।</p>
<p>Unity की web builds भी WebAssembly इस्तेमाल करती हैं, और mobile web support Unity 6 से शुरू होता है। अगर आप व्यापक mobile browsers को target कर रहे हैं, तो दोनों engines में असली devices पर जल्दी test करें, क्योंकि web builds सबसे पहले वहीं टूटती हैं।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/WB7v-ezqcJM" title="I Made The Same Game in Unity and Godot, Which Engine is Better?" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Thomas Grové दोनों engines में एक ही game बनाते हैं, रोज़मर्रा के workflow का एक काम का gut-check।</div>
<h2 id="pricing" tabindex="-1">Pricing <a class="header-anchor" href="#pricing" aria-label="Permalink to &quot;Pricing&quot;"></a></h2>
<p>Godot MIT license के तहत free है। कोई seats नहीं, कोई royalties नहीं, कोई revenue cap नहीं, कोई fees नहीं, कभी नहीं।</p>
<p>सितंबर 2024 में Runtime Fee रद्द करने के बाद Unity seat-आधारित subscriptions पर लौट आया (वह वापस नहीं आई)। Unity Personal $200K revenue या funding तक free रहता है, और &quot;Made with Unity&quot; splash Unity 6 पर optional हो गया। Unity Pro करीब $2,200 प्रति seat प्रति साल है, और 2026 की शुरुआत में paid tiers में करीब 5% की बढ़ोतरी हुई। cap से नीचे के एक solo dev या छोटी team के लिए, दोनों engines के साथ भेजना असल में free है।</p>
<h2 id="कब-क्या-चुनें" tabindex="-1">कब क्या चुनें <a class="header-anchor" href="#कब-क्या-चुनें" aria-label="Permalink to &quot;कब क्या चुनें&quot;"></a></h2>
<p>web के लिए <strong>Godot</strong> चुनें जब आप एक free, छोटे-footprint वाला 2D या हल्का-3D browser game चाहते हों, single-threaded export के ज़रिए smooth iOS और Safari support चाहते हों, और आप GDScript लिखने में सहज हों।</p>
<p>web के लिए <strong>Unity</strong> चुनें जब आपको WebGPU के ज़रिए भारी 3D या compute shaders चाहिए, आप बड़ा asset ecosystem चाहते हों, या आप एक C# team हों, और आप बड़ी builds तथा experimental-WebGPU की चेतावनी स्वीकार कर सकते हों।</p>
<p>जो भी हो, आपकी build को फिर भी तेज़ी से load होना और phone पर चलना है। चुनाव कर लेने के बाद <a href="/hi/tutorials/ship-web-game-fast.html">एक web game भेजें जो तेज़ी से load हो</a> देखें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="क्या-godot-c-games-को-web-पर-export-कर-सकता-है" tabindex="-1">क्या Godot C# games को web पर export कर सकता है? <a class="header-anchor" href="#क्या-godot-c-games-को-web-पर-export-कर-सकता-है" aria-label="Permalink to &quot;क्या Godot C# games को web पर export कर सकता है?&quot;"></a></h3>
<p>2026 तक, आधिकारिक रूप से नहीं। Godot का web export GDScript के लिए काम करता है, पर C# (.NET) projects अभी browser पर export नहीं कर सकते। मई 2025 में GodotCon Boston में एक prototype दिखाया गया था, पर कोई प्रतिबद्ध release तारीख़ नहीं है। अगर आपको web पर C# चाहिए, तो इन दोनों में से फ़िलहाल Unity ही वह है जो इसे भेजता है।</p>
<h3 id="web-builds-के-लिए-godot-छोटा-है-या-unity" tabindex="-1">web builds के लिए Godot छोटा है या Unity? <a class="header-anchor" href="#web-builds-के-लिए-godot-छोटा-है-या-unity" aria-label="Permalink to &quot;web builds के लिए Godot छोटा है या Unity?&quot;"></a></h3>
<p>Godot की खाली web build Brotli के साथ करीब 5 MB compressed है। Unity 6 की खाली builds 2D के लिए करीब 7.7 MB और 3D के लिए 10.7 MB पर चलती हैं, हालाँकि आक्रामक तरीके से stripped Unity build करीब 2 MB तक पहुँच सकती है। Godot default रूप से छोटा है, पर एक tuned Unity 2D build करीब आ सकती है। आपके अपने assets आम तौर पर engine binary से ज़्यादा मायने रखते हैं।</p>
<h3 id="क्या-unity-browser-में-webgpu-को-support-करता-है" tabindex="-1">क्या Unity browser में WebGPU को support करता है? <a class="header-anchor" href="#क्या-unity-browser-में-webgpu-को-support-करता-है" aria-label="Permalink to &quot;क्या Unity browser में WebGPU को support करता है?&quot;"></a></h3>
<p>हाँ, Unity 6 ने compute shaders और modern GPU features के साथ एक experimental WebGPU backend जोड़ा, और WebGL2 fallback के रूप में है। इसे experimental बताया गया है और यह हर browser पर support नहीं है, तो अपनी baseline के रूप में WebGL2 भेजें और WebGPU को एक बढ़त मानें।</p>
<h3 id="browser-games-के-लिए-बेहतर-कौन-है-godot-या-unity" tabindex="-1">browser games के लिए बेहतर कौन है, Godot या Unity? <a class="header-anchor" href="#browser-games-के-लिए-बेहतर-कौन-है-godot-या-unity" aria-label="Permalink to &quot;browser games के लिए बेहतर कौन है, Godot या Unity?&quot;"></a></h3>
<p>अच्छे iOS support के साथ free, हल्के 2D या हल्के 3D games के लिए, Godot ज़्यादा साफ़ web रास्ता है, बशर्ते आप GDScript इस्तेमाल करें। भारी 3D, compute shaders, बड़े ecosystem, या पहले से मौजूद C# codebase के लिए, Unity web पर जीतता है। आम तौर पर C# का सवाल ही इसे तय करता है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए बेहतरीन Web Game Engines (तुलना के साथ)</a> — पूरा मैदान, इन दोनों से आगे</li>
<li><a href="/hi/guides/unity-alternatives-web-games.html">Web Games के लिए Unity के विकल्प</a> — हर web-सक्षम विकल्प, इस आधार पर चुना गया कि आप Unity क्यों छोड़ रहे हैं</li>
<li><a href="/hi/guides/best-2d-game-engines-2026.html">2026 के लिए बेहतरीन 2D Game Engines</a> — अगर आपका game 2D है, यहाँ से शुरू करें</li>
<li><a href="/hi/guides/web-games-stack-2026.html">2026 में Web Games का Tech Stack</a> — WebGL, WebGPU, और Wasm समझाए गए</li>
<li><a href="/hi/tutorials/ship-web-game-fast.html">एक web game भेजें जो तेज़ी से load हो</a> — build-size और load-time की तरकीबें</li>
<li><a href="/hi/engine.html">Cinevva Engine</a> — हमारा open-source, web-first engine जो Three.js पर बना है</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[PlayCanvas बनाम Three.js: Web 3D की तुलना (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/playcanvas-vs-threejs</link>
            <guid>https://app.cinevva.com/hi/guides/playcanvas-vs-threejs</guid>
            <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Web पर 3D के लिए PlayCanvas बनाम Three.js - एक visual editor वाला पूरा engine बनाम एक rendering library, साथ में WebGPU support, built-in systems, pricing, और कब किसे चुनें।]]></description>
            <content:encoded><![CDATA[<h1 id="playcanvas-बनाम-three-js-web-3d-की-तुलना-2026" tabindex="-1">PlayCanvas बनाम Three.js: Web 3D की तुलना (2026) <a class="header-anchor" href="#playcanvas-बनाम-three-js-web-3d-की-तुलना-2026" aria-label="Permalink to &quot;PlayCanvas बनाम Three.js: Web 3D की तुलना (2026)&quot;"></a></h1>
<figure style="margin:1.5rem 0">
<img src="https://cdn.cinevva.com/guides/playcanvas-vs-threejs-hero.jpg?v=2" alt="PlayCanvas vs Three.js for web 3D in 2026" style="width:100%;border-radius:10px">
</figure>
<p>लोग इन दोनों को प्रतिद्वंद्वियों की तरह आमने-सामने रखते हैं, पर ये एक ही तरह के tool नहीं हैं। PlayCanvas एक visual editor वाला पूरा game engine है। Three.js एक rendering library है जिस पर आप code से चीज़ें बनाते हैं। इन दोनों में से चुनना असल में यह सवाल है कि आप कितना तैयार-तैयार चाहते हैं बनाम कितना control अपने हाथ में चाहते हैं। 2026 में web 3D के लिए यहाँ पूरा ब्योरा है।</p>
<p>बड़े दायरे के लिए, हमारी <a href="/hi/guides/web-game-engines-comparison.html">web game engines की तुलना</a> देखें।</p>
<h2 id="तुरंत-फ़ैसला" tabindex="-1">तुरंत फ़ैसला <a class="header-anchor" href="#तुरंत-फ़ैसला" aria-label="Permalink to &quot;तुरंत फ़ैसला&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th>PlayCanvas</th>
<th>Three.js</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>यह क्या है</strong></td>
<td>पूरा engine + cloud editor</td>
<td>Rendering library (कोई editor नहीं)</td>
</tr>
<tr>
<td><strong>Workflow</strong></td>
<td>Visual editor, real-time collaboration</td>
<td>सिर्फ़ code</td>
</tr>
<tr>
<td><strong>Rendering</strong></td>
<td>WebGL2 + WebGPU</td>
<td>WebGL2 + WebGPU (WebGPURenderer)</td>
</tr>
<tr>
<td><strong>Built-in systems</strong></td>
<td>ECS, physics, animation, audio, input</td>
<td>सिर्फ़ renderer, बाकी आप जोड़ते हैं</td>
</tr>
<tr>
<td><strong>License/cost</strong></td>
<td>Engine MIT; editor free से $50/seat/mo</td>
<td>MIT, मुफ़्त</td>
</tr>
<tr>
<td><strong>किसके लिए बेहतर</strong></td>
<td>turnkey engine + editor चाहने वाली teams</td>
<td>custom, code-first, अधिकतम control</td>
</tr>
</tbody>
</table>
<h2 id="engine-बनाम-library" tabindex="-1">Engine बनाम Library <a class="header-anchor" href="#engine-बनाम-library" aria-label="Permalink to &quot;Engine बनाम Library&quot;"></a></h2>
<p>पूरी कहानी एक लाइन में यही है। <strong>PlayCanvas आपको एक game engine देता है</strong>: एक entity-component system, physics, animation, audio, input, और एक asset pipeline, सब आपस में जुड़े हुए, साथ में एक browser-based editor जहाँ एक team मिलकर real time में scene बना सकती है (सोचिए collaborative editing, जैसे 3D के लिए कोई design tool)।</p>
<p><strong>Three.js आपको एक renderer देता है।</strong> Scene graph, cameras, lights, materials, और एक तेज़ WebGL/WebGPU renderer। कोई editor नहीं, कोई physics नहीं, game loop के बारे में कोई राय नहीं। आप physics को Rapier या cannon-es जैसी किसी चीज़ से जोड़ते हैं, अपनी game logic खुद बनाते हैं, और जो भी tooling चाहिए वह बनाते हैं। यह आज़ादी है और साथ में ज़्यादा काम भी।</p>
<p>तो असली सवाल &quot;कौन-सा बेहतर है&quot; नहीं है, बल्कि &quot;क्या मुझे engine चाहिए या renderer&quot; है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/-0envvPmj5k" title="PlayCanvas Game Engine Open Sourced" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">PlayCanvas के open source होने पर Gamefromscratch।</div>
<h2 id="rendering-और-webgpu" tabindex="-1">Rendering और WebGPU <a class="header-anchor" href="#rendering-और-webgpu" aria-label="Permalink to &quot;Rendering और WebGPU&quot;"></a></h2>
<p>GPU के मामले में दोनों आधुनिक हैं। PlayCanvas एक dual WebGL2 और WebGPU backend चलाता है। इसके v2.0 release (अगस्त 2024) ने WebGL1 को पूरी तरह हटा दिया, और हाल के engine builds ने 3D Gaussian splats के लिए एक compute-based WebGPU path जोड़ा। Three.js ने r171 के आसपास (सितंबर 2025) एक production-ready WebGPURenderer उतारा, लगभग zero-config setup के साथ और एक automatic WebGL2 fallback के साथ, साथ में TSL (Three.js Shading Language) ताकि आप shaders एक बार लिखें और दोनों backends को target करें।</p>
<p>2026 में ज़्यादातर projects के लिए दोनों में से कोई भी खूबसूरती से render करेगा। WebGPU दोनों पर upgrade का रास्ता है, और WebGL2 सुरक्षित baseline है। मौजूदा browser support के लिए हमारी <a href="/hi/guides/web-games-stack-2026.html">web games tech stack guide</a> देखें।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/7we9mqIOKyw" title="Embracing WebGPU and WebXR With Three.js - Mr.doob, JSNation 2024" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Three.js के creator Mr.doob बता रहे हैं कि WebGPU और WebXR library को कहाँ ले जा रहे हैं।</div>
<h2 id="workflow-licensing-और-cost" tabindex="-1">Workflow, Licensing, और Cost <a class="header-anchor" href="#workflow-licensing-और-cost" aria-label="Permalink to &quot;Workflow, Licensing, और Cost&quot;"></a></h2>
<p>PlayCanvas का editor इसकी सबसे बड़ी ख़ासियत है: एक hosted, collaborative scene editor जिसमें एक asset pipeline है। Engine MIT के तहत open source है, और editor frontend भी 2025 में open-source कर दिया गया। Hosted editor के tiers हैं, एक free plan, करीब $15 महीने का Personal plan, और करीब $50 per seat महीने का Organization plan, जो ज़्यादातर storage और private project limits पर अलग होते हैं।</p>
<p>Three.js MIT और मुफ़्त है, बस इतना ही। चुकाने के लिए कोई editor नहीं है क्योंकि editor है ही नहीं। आपकी &quot;cost&quot; वह engineering समय है जिससे आप वह structure बनाते हैं जो PlayCanvas आपको तैयार देता है।</p>
<h2 id="कब-किसे-चुनें" tabindex="-1">कब किसे चुनें <a class="header-anchor" href="#कब-किसे-चुनें" aria-label="Permalink to &quot;कब किसे चुनें&quot;"></a></h2>
<p><strong>PlayCanvas</strong> तब चुनें जब आपको out of the box एक पूरा engine और एक visual editor चाहिए, आपकी team को scenes पर collaborate करना है, और आप शुरू से बनाने के बजाय configure करना पसंद करते हैं। यह खासकर product configurators, interactive 3D, और तेज़ी से ship करने वाली teams के लिए मज़बूत है।</p>
<p><strong>Three.js</strong> तब चुनें जब आपको rendering और architecture पर पूरा control चाहिए, आप अपनी stack खुद इकट्ठी करने में सहज हैं, या आप कुछ ऐसा bespoke बना रहे हैं जहाँ किसी engine की राय बीच में आ जाएगी। यह बड़ा ecosystem भी है और सबसे ज़्यादा माँग वाली web-3D skill भी। हमने ठीक इसी वजह से <a href="/hi/engine.html">Cinevva Engine</a> को Three.js पर बनाया: web-first, open, और जो भी customize करना चाहें उस पर कोई सीमा नहीं।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="web-games-के-लिए-playcanvas-बेहतर-है-या-three-js" tabindex="-1">Web games के लिए PlayCanvas बेहतर है या Three.js? <a class="header-anchor" href="#web-games-के-लिए-playcanvas-बेहतर-है-या-three-js" aria-label="Permalink to &quot;Web games के लिए PlayCanvas बेहतर है या Three.js?&quot;"></a></h3>
<p>दोनों में से कोई सख़्ती से बेहतर नहीं है, ये अलग tools हैं। PlayCanvas एक visual editor वाला पूरा engine है, इसलिए एक structured game या interactive app को ship करना तेज़ है, खासकर किसी team के लिए। Three.js एक rendering library है जो आपको पूरा control देती है पर उम्मीद करती है कि आप game systems खुद बनाएँगे। turnkey के लिए PlayCanvas चुनें, custom के लिए Three.js।</p>
<h3 id="क्या-three-js-एक-game-engine-है" tabindex="-1">क्या Three.js एक game engine है? <a class="header-anchor" href="#क्या-three-js-एक-game-engine-है" aria-label="Permalink to &quot;क्या Three.js एक game engine है?&quot;"></a></h3>
<p>नहीं। Three.js एक 3D rendering library है। यह scene graph, cameras, lights, materials, और WebGL2 या WebGPU के ज़रिए rendering संभालती है, पर इसमें कोई built-in physics, audio, input, या game loop नहीं है। आप इन्हें दूसरी libraries (जैसे physics के लिए Rapier) से जोड़ते हैं या खुद बनाते हैं। इसके उलट PlayCanvas एक पूरा engine है।</p>
<h3 id="क्या-playcanvas-और-three-js-webgpu-को-support-करते-हैं" tabindex="-1">क्या PlayCanvas और Three.js WebGPU को support करते हैं? <a class="header-anchor" href="#क्या-playcanvas-और-three-js-webgpu-को-support-करते-हैं" aria-label="Permalink to &quot;क्या PlayCanvas और Three.js WebGPU को support करते हैं?&quot;"></a></h3>
<p>हाँ, 2026 में दोनों करते हैं। PlayCanvas एक dual WebGL2/WebGPU backend चलाता है। Three.js के पास एक production-ready WebGPURenderer है (r171 के आसपास से stable) जिसमें automatic WebGL2 fallback और cross-target shaders के लिए TSL है। WebGL2 को अपना baseline बनाकर ship करें और WebGPU को performance upgrade की तरह लें।</p>
<h3 id="क्या-playcanvas-मुफ़्त-है" tabindex="-1">क्या PlayCanvas मुफ़्त है? <a class="header-anchor" href="#क्या-playcanvas-मुफ़्त-है" aria-label="Permalink to &quot;क्या PlayCanvas मुफ़्त है?&quot;"></a></h3>
<p>PlayCanvas engine MIT license के तहत मुफ़्त और open source है, और editor frontend 2025 में open-source कर दिया गया। Hosted cloud editor का एक free tier है साथ में paid plans (करीब $15/महीना Personal और $50/seat/महीना Organization) जो मुख्य रूप से storage और private projects जोड़ते हैं। Three.js पूरी तरह मुफ़्त है और चुकाने के लिए कोई editor नहीं है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए बेहतरीन Web Game Engines (तुलना के साथ)</a> — पूरा मैदान</li>
<li><a href="/hi/guides/threejs-vs-babylonjs.html">Three.js बनाम Babylon.js</a> — अगर आपने इसे web-3D libraries तक सीमित कर लिया है</li>
<li><a href="/hi/guides/godot-vs-unity-web-games.html">Web Games के लिए Godot बनाम Unity</a> — libraries के बजाय पूरे engines</li>
<li><a href="/hi/guides/web-games-stack-2026.html">2026 में Web Games Tech Stack</a> — WebGL, WebGPU, और Wasm</li>
<li><a href="/hi/engine.html">Cinevva Engine</a> — Three.js पर बना हमारा open-source engine</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Three.js vs Babylon.js: कौन सी Web 3D लाइब्रेरी (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/threejs-vs-babylonjs</link>
            <guid>https://app.cinevva.com/hi/guides/threejs-vs-babylonjs</guid>
            <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में Three.js vs Babylon.js - मिनिमल रेंडरर बनाम पूरा engine, WebGPU और WGSL सपोर्ट, बिल्ट-इन टूल्स, बंडल साइज, TypeScript, और web 3D के लिए हर एक को कब चुनें।]]></description>
            <content:encoded><![CDATA[<h1 id="three-js-vs-babylon-js-कौन-सी-web-3d-लाइब्रेरी-2026" tabindex="-1">Three.js vs Babylon.js: कौन सी Web 3D लाइब्रेरी (2026) <a class="header-anchor" href="#three-js-vs-babylon-js-कौन-सी-web-3d-लाइब्रेरी-2026" aria-label="Permalink to &quot;Three.js vs Babylon.js: कौन सी Web 3D लाइब्रेरी (2026)&quot;"></a></h1>
<figure style="margin:1.5rem 0">
<img src="https://cdn.cinevva.com/guides/threejs-vs-babylonjs-hero.jpg?v=2" alt="Three.js vs Babylon.js for web 3D in 2026" style="width:100%;border-radius:10px">
</figure>
<p>ये web 3D के दो भारी-भरकम नाम हैं, और इन दोनों के बीच चुनाव आखिरकार सोच पर आ टिकता है। Three.js एक हल्का रेंडरर है जिसे आप बढ़ाते हैं। Babylon.js एक पूरा engine है जिसमें टूल्स पहले से ही डिब्बे में मौजूद हैं। दोनों बढ़िया हैं, दोनों फ्री हैं, और 2026 में दोनों WebGPU करते हैं। यहां बताया गया है कि कैसे चुनें।</p>
<p>इसके बजाय 2D engine या पूरे game engine के लिए, <a href="/hi/guides/web-game-engines-comparison.html">web game engines की तुलना</a> देखें।</p>
<h2 id="तुरंत-फैसला" tabindex="-1">तुरंत फैसला <a class="header-anchor" href="#तुरंत-फैसला" aria-label="Permalink to &quot;तुरंत फैसला&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th>Three.js</th>
<th>Babylon.js</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>स्टाइल</strong></td>
<td>मिनिमल रेंडरर/लाइब्रेरी</td>
<td>पूरा engine/फ्रेमवर्क</td>
</tr>
<tr>
<td><strong>भाषा</strong></td>
<td>JavaScript (टाइप डेफ्स के साथ)</td>
<td>TypeScript-first</td>
</tr>
<tr>
<td><strong>बिल्ट-इन टूल्स</strong></td>
<td>रेंडरर; बाकी के लिए ऐड-ऑन</td>
<td>Physics, GUI, Inspector, Playground, NME</td>
</tr>
<tr>
<td><strong>WebGPU</strong></td>
<td>WebGPURenderer + TSL</td>
<td>GLSL + WGSL core (8.0)</td>
</tr>
<tr>
<td><strong>बंडल</strong></td>
<td>छोटा, ट्री-शेकेबल core</td>
<td>बड़ा पर मॉड्यूलर</td>
</tr>
<tr>
<td><strong>लाइसेंस</strong></td>
<td>MIT</td>
<td>Apache 2.0</td>
</tr>
<tr>
<td><strong>किसके लिए सबसे अच्छा</strong></td>
<td>कस्टम, हल्का, सबसे बड़ा ecosystem</td>
<td>मजबूत टूलिंग के साथ बैटरी-शामिल</td>
</tr>
</tbody>
</table>
<h2 id="लाइब्रेरी-बनाम-फ्रेमवर्क" tabindex="-1">लाइब्रेरी बनाम फ्रेमवर्क <a class="header-anchor" href="#लाइब्रेरी-बनाम-फ्रेमवर्क" aria-label="Permalink to &quot;लाइब्रेरी बनाम फ्रेमवर्क&quot;"></a></h2>
<p>Three.js एक छोटा core रखता है और बाकी आप और कम्युनिटी पर छोड़ देता है। आपको एक शानदार रेंडरर, सीन ग्राफ, और मटीरियल मिलते हैं, फिर जब आपको physics, पोस्ट-प्रोसेसिंग, या कंट्रोल चाहिए तो आप ऐड-ऑन की तरफ बढ़ते हैं। यह सबसे लोकप्रिय web-3D लाइब्रेरी है और इसका ecosystem सबसे बड़ा है, यानी ज़्यादा उदाहरण, ज़्यादा ट्यूटोरियल, और ज़्यादा हायरिंग पूल।</p>
<p>Babylon.js एक ज़्यादा भरा-पूरा engine है, जिसे Microsoft का सहारा है। यह physics, एक GUI सिस्टम, एनिमेशन, सीन डीबग करने के लिए एक बिल्ट-इन Inspector, कोड शेयर करने के लिए एक ऑनलाइन Playground, और शेडर को विज़ुअली बनाने के लिए एक Node Material Editor के साथ आता है। अगर आप चाहते हैं कि टूलिंग और ढांचा खुद जुटाने के बजाय दिया हुआ मिले, तो Babylon पहले ही दिन आपको ज़्यादा देता है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/kKaomUggipQ" title="Introducing Babylon.js 8.0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">आधिकारिक Babylon.js 8.0 शोकेस इसका अंदाज़ा देता है कि डिब्बे में कितना कुछ आता है।</div>
<h2 id="_2026-में-webgpu" tabindex="-1">2026 में WebGPU <a class="header-anchor" href="#_2026-में-webgpu" aria-label="Permalink to &quot;2026 में WebGPU&quot;"></a></h2>
<p>दोनों अब WebGPU को लेकर गंभीर हैं। Babylon.js 8.0 (मार्च 2025) ने सभी core engine शेडर को GLSL और WGSL दोनों में भेजना शुरू किया, जिससे एक कई-मेगाबाइट कन्वर्ज़न लेयर हट गई और WebGPU को टारगेट करते समय engine का आकार लगभग आधा रह गया। Babylon.js 9.0 (मार्च 2026) ने क्लस्टर्ड लाइटिंग, compute शेडर के ज़रिए वॉल्यूमेट्रिक लाइटिंग, एक फ्रेम ग्राफ, और एरिया लाइट्स के साथ इसे और आगे बढ़ाया।</p>
<p>Three.js के पास अपना प्रोडक्शन-रेडी WebGPURenderer है जिसमें ऑटोमैटिक WebGL2 फॉलबैक है, और TSL आपको दोनों बैकएंड के लिए एक बार शेडर लिखने देता है। हाल के रिलीज़ इसे लगातार बेहतर बनाते रहते हैं।</p>
<p>कुल मिलाकर: WebGPU दोनों में ठोस है। Babylon compute-शेडर से चलने वाले फीचर्स पर ज़ोर देता है; Three.js अपने रेंडरर को हल्का और लचीला रखता है।</p>
<h2 id="typescript-बंडल-साइज-और-ecosystem" tabindex="-1">TypeScript, बंडल साइज, और Ecosystem <a class="header-anchor" href="#typescript-बंडल-साइज-और-ecosystem" aria-label="Permalink to &quot;TypeScript, बंडल साइज, और Ecosystem&quot;"></a></h2>
<p>Babylon.js TypeScript-first है, लगभग पूरी तरह TS में लिखा गया है, जिसे बड़े कोडबेस के लिए कई टीमें पसंद करती हैं। Three.js JavaScript है जिसके अलग टाइप डेफिनिशन हैं जो अच्छे से काम करते हैं पर सच्चाई का असली स्रोत नहीं हैं।</p>
<p>आकार के मामले में, Three.js का core छोटा और ज़्यादा ट्री-शेकेबल है, इसलिए एक मिनिमल सीन कम कोड भेजती है। Babylon बड़ा है पर स्कोप्ड पैकेज के ज़रिए मॉड्यूलर है, और इसके WGSL-नेटिव रास्ते ने WebGPU का फासला कम कर दिया।</p>
<p>Ecosystem में कच्चे आकार और कम्युनिटी आउटपुट के दम पर Three.js आगे है। डिब्बे-में-टूलिंग के मामले में Babylon आगे है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/6k5ZK3SV3ko" title="Moving Three.js from WebGL to WebGPU - Mr.doob, JSConf JP 2024" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Three.js के निर्माता Mr.doob WebGPU की ओर बढ़ने पर।</div>
<h2 id="कब-क्या-चुनें" tabindex="-1">कब क्या चुनें <a class="header-anchor" href="#कब-क्या-चुनें" aria-label="Permalink to &quot;कब क्या चुनें&quot;"></a></h2>
<p><strong>Three.js</strong> तब चुनें जब आप एक हल्का, लचीला रेंडरर चाहते हैं, सबसे बड़ा ecosystem चाहते हैं, और चीज़ों को अपने तरीके से बनाने की आज़ादी चाहते हैं। कस्टम web-3D काम के लिए यह डिफ़ॉल्ट है और सबसे ज़्यादा काम आने वाला स्किल है।</p>
<p><strong>Babylon.js</strong> तब चुनें जब आप मजबूत बिल्ट-इन टूलिंग (Inspector, Playground, Node Material Editor) वाला पूरा engine चाहते हैं, TypeScript-first डेवलपमेंट चाहते हैं, और कॉर्पोरेट-समर्थित स्थिरता चाहते हैं, और आप बैटरी शामिल पाने के बदले थोड़ा बंडल साइज देने में खुश हैं।</p>
<p>दोनों ही बढ़िया विकल्प हैं। हमने <a href="/hi/engine.html">Cinevva Engine</a> के लिए Three.js चुना क्योंकि हम एक हल्की, web-first नींव चाहते थे जिसे हम खुद आकार दे सकें।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="three-js-बेहतर-है-या-babylon-js" tabindex="-1">Three.js बेहतर है या Babylon.js? <a class="header-anchor" href="#three-js-बेहतर-है-या-babylon-js" aria-label="Permalink to &quot;Three.js बेहतर है या Babylon.js?&quot;"></a></h3>
<p>दोनों बढ़िया और फ्री हैं। Three.js सबसे बड़े ecosystem वाला एक मिनिमल रेंडरर है, जो तब सबसे अच्छा है जब आप लचीलापन चाहते हैं और अपना ढांचा खुद बनाना चाहते हैं। Babylon.js एक ज़्यादा भरा-पूरा engine है जिसमें बिल्ट-इन physics, GUI, एक Inspector, और एक Playground है, जो तब सबसे अच्छा है जब आप टूलिंग दी हुई चाहते हैं और TypeScript-first डेवलपमेंट चाहते हैं। यह सोच का चुनाव है, क्वालिटी का फासला नहीं।</p>
<h3 id="क्या-three-js-और-babylon-js-webgpu-सपोर्ट-करते-हैं" tabindex="-1">क्या Three.js और Babylon.js WebGPU सपोर्ट करते हैं? <a class="header-anchor" href="#क्या-three-js-और-babylon-js-webgpu-सपोर्ट-करते-हैं" aria-label="Permalink to &quot;क्या Three.js और Babylon.js WebGPU सपोर्ट करते हैं?&quot;"></a></h3>
<p>हां, 2026 में दोनों WebGPU सपोर्ट करते हैं। Three.js के पास WebGL2 फॉलबैक और क्रॉस-टारगेट शेडर के लिए TSL के साथ एक प्रोडक्शन-रेडी WebGPURenderer है। Babylon.js 8.0 ने अपने core शेडर WGSL-नेटिव बनाए (WebGPU पर बंडल साइज घटाते हुए), और 9.0 ने वॉल्यूमेट्रिक लाइटिंग जैसे compute-शेडर फीचर जोड़े। बेसलाइन के तौर पर WebGL2 भेजें और जहां WebGPU उपलब्ध हो वहां उसका इस्तेमाल करें।</p>
<h3 id="क्या-babylon-js-एक-game-engine-है-और-three-js-नहीं" tabindex="-1">क्या Babylon.js एक game engine है और Three.js नहीं? <a class="header-anchor" href="#क्या-babylon-js-एक-game-engine-है-और-three-js-नहीं" aria-label="Permalink to &quot;क्या Babylon.js एक game engine है और Three.js नहीं?&quot;"></a></h3>
<p>मोटे तौर पर, हां। Babylon.js एक पूरा engine है: इसमें physics, एक GUI सिस्टम, एनिमेशन, एक Inspector, और एडिटर-स्टाइल टूलिंग शामिल है। Three.js 3D ड्रॉ करने पर केंद्रित एक रेंडरिंग लाइब्रेरी है, इसलिए आप physics, कंट्रोल, और game सिस्टम दूसरे पैकेज या अपने कोड के ज़रिए जोड़ते हैं। यही इन दोनों के बीच का असली फर्क है।</p>
<h3 id="कौन-छोटा-है-three-js-या-babylon-js" tabindex="-1">कौन छोटा है, Three.js या Babylon.js? <a class="header-anchor" href="#कौन-छोटा-है-three-js-या-babylon-js" aria-label="Permalink to &quot;कौन छोटा है, Three.js या Babylon.js?&quot;"></a></h3>
<p>Three.js का core छोटा और ज़्यादा ट्री-शेकेबल है, इसलिए एक मिनिमल सीन कम JavaScript भेजती है। Babylon.js कुल मिलाकर बड़ा है पर स्कोप्ड पैकेज के ज़रिए मॉड्यूलर है, और 8.0 में इसके WGSL-नेटिव शेडर ने WebGPU को टारगेट करते समय इसका आकार लगभग आधा कर दिया। सबसे कसे हुए बंडल के लिए, Three.js अभी भी जीतता है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/playcanvas-vs-threejs.html">PlayCanvas vs Three.js</a> — तुलना में एक विज़ुअल एडिटर जोड़ें</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">2026 के लिए सबसे अच्छे Web Game Engines (तुलना)</a> — पूरा मैदान</li>
<li><a href="/hi/guides/web-games-stack-2026.html">2026 में Web Games टेक स्टैक</a> — WebGL, WebGPU, और Wasm</li>
<li><a href="/hi/guides/threejs-usdc-tech-report.html">Browser में Three.js + USDC</a> — Three.js में USD 3D असेट लोड करना</li>
<li><a href="/hi/engine.html">Cinevva Engine</a> — Three.js पर बना हमारा ओपन-सोर्स engine</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[खिलाड़ियों को दुनिया गढ़ने की ताकत देना]]></title>
            <link>https://app.cinevva.com/hi/guides/player-world-sculpting</link>
            <guid>https://app.cinevva.com/hi/guides/player-world-sculpting</guid>
            <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[terrain brushes को खिलौनों में कैसे बदलें। TNT जो गुफाएँ काट दे, बीज जो जंगल उगा दें, बारिश जो चट्टानों को घिसा दे। एक साझा multiplayer दुनिया में casual खिलाड़ियों के लिए world sculpting को मज़ेदार बनाने के game design patterns।]]></description>
            <content:encoded><![CDATA[<h1 id="खिलाड़ियों-को-दुनिया-गढ़ने-की-ताकत-देना" tabindex="-1">खिलाड़ियों को दुनिया गढ़ने की ताकत देना <a class="header-anchor" href="#खिलाड़ियों-को-दुनिया-गढ़ने-की-ताकत-देना" aria-label="Permalink to &quot;खिलाड़ियों को दुनिया गढ़ने की ताकत देना&quot;"></a></h1>
<img src="https://cdn.cinevva.com/guides/player-world-sculpting-hero.jpg?v=2" alt="Player surrounded by terrain-sculpting tools: dynamite, hoe, watering can, seeds, pickaxe, rain cloud, and a terraform beacon, reshaping a colorful 3D landscape" style="width:100%;border-radius:8px;margin:1.5rem 0" />
<p>कोई भी game खोलकर यह नहीं सोचता कि &quot;मैं signed distance field पर Hermite interpolation के साथ एक smooth falloff function लगाना चाहता हूँ।&quot; वे सोचते हैं &quot;मुझे एक गुफा खोदनी है&quot; या &quot;मुझे एक पहाड़ बनाना है&quot; या &quot;मुझे एक नदी बनानी है।&quot;</p>
<p>terrain sculpting का तकनीकी पक्ष (marching cubes, SDF brushes, transvoxel seams) हमारी <a href="/hi/guides/terrain-sculpting-brushes.html">साथी research guide</a> में बताया गया है। यह guide समस्या के दूसरे आधे हिस्से के बारे में है: sculpting की ताकत casual खिलाड़ियों के हाथ में कैसे दें और उसे एक 3D modeling tool की तरह नहीं, बल्कि खेल जैसा कैसे महसूस कराएँ।</p>
<h2 id="metaphor-की-समस्या" tabindex="-1">Metaphor की समस्या <a class="header-anchor" href="#metaphor-की-समस्या" aria-label="Permalink to &quot;Metaphor की समस्या&quot;"></a></h2>
<p>हर ऐसे game ने जो खिलाड़ियों को terrain दोबारा गढ़ने देता है, यही design समस्या हल की है: कच्चे sculpting parameters (radius, strength, falloff, operation type) ज़्यादातर खिलाड़ियों के लिए बेमतलब हैं। समाधान हमेशा एक ही रहता है: brush को किसी ऐसे metaphor में लपेटो जिसे खिलाड़ी पहले से समझता है।</p>
<h3 id="minecraft-block-एक-सार्वभौमिक-metaphor-के-रूप-में" tabindex="-1">Minecraft: Block एक सार्वभौमिक Metaphor के रूप में <a class="header-anchor" href="#minecraft-block-एक-सार्वभौमिक-metaphor-के-रूप-में" aria-label="Permalink to &quot;Minecraft: Block एक सार्वभौमिक Metaphor के रूप में&quot;"></a></h3>
<div class="video-embed">
  <iframe src="https://www.youtube.com/embed/MmB9b5njVbA" title="Official Minecraft Trailer" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  <p class="game-caption">Official Minecraft Trailer (Mojang). वह block-based दुनिया जहाँ TNT, pickaxes और shovels terrain editors के तौर पर भी काम करते हैं।</p>
</div>
<p>Minecraft की खूबी यह है कि terrain editing सिर्फ़ inventory management है। आप एक block तोड़ते हैं। आपको एक block मिलता है। आप एक block रखते हैं। &quot;brush&quot; एक अकेला voxel है, &quot;falloff&quot; binary है (असर हुआ या नहीं), और &quot;operation&quot; है जोड़ना या हटाना।</p>
<p>TNT इसे और बड़ा कर देता है। आप इसे gunpowder और sand से बनाते हैं (वही चीज़ें जो आप खेलते हुए पहले ही जमा कर चुके हैं), इसे किसी भी दूसरे block की तरह रखते हैं, flint and steel से जलाते हैं, और यह terrain में से एक गोला काट देता है। blast radius 4-7 blocks होता है। blast resistance material के हिसाब से बदलती है: dirt और sand बिखर जाते हैं, stone आंशिक रूप से बच जाता है, obsidian पर कोई असर नहीं होता। पानी block destruction को रोक देता है पर entity damage को नहीं।</p>
<p>खिलाड़ी कभी blast radius को एक parameter की तरह नहीं सोचता। वे सोचते हैं &quot;TNT ताकतवर है, obsidian सख्त है, पानी एक ढाल है।&quot; terrain editing system पूरी तरह उन materials और items के ज़रिए व्यक्त होता है जिन्हें खिलाड़ी पहले से जानता है।</p>
<h3 id="valheim-किसान-का-toolkit" tabindex="-1">Valheim: किसान का Toolkit <a class="header-anchor" href="#valheim-किसान-का-toolkit" aria-label="Permalink to &quot;Valheim: किसान का Toolkit&quot;"></a></h3>
<div class="video-embed">
  <iframe src="https://www.youtube.com/embed/zmIS9B3w7bw" title="How to Level and Shape Terrain in Valheim" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  <p class="game-caption">Valheim के hoe, cultivator और pickaxe वाली terrain-shaping शब्दावली का एक साफ़ walkthrough, जिसमें "जहाँ ज़मीन चाहिए वहीं खड़े हो जाओ" वाला leveling trick भी शामिल है।</p>
</div>
<p>Valheim एक अलग तरीका अपनाता है। blocks के बजाय यह खिलाड़ियों को pre-industrial खेती के औज़ार देता है:</p>
<p><strong>Hoe</strong> (5 wood + 2 stone, पहले 10 मिनट में मिल जाता है) के चार modes हैं: Level Ground (आपकी खड़े होने की ऊँचाई तक समतल करता है), Raise Ground (मिट्टी जोड़ता है, हर इस्तेमाल पर 2 stone लगता है), Path (घास हटाता है), और Pave (cobblestone बिछाता है)। leveling mechanic कमाल का है: आप वहाँ खड़े होते हैं जहाँ आप ज़मीन चाहते हैं, और hoe आपके चारों ओर सब कुछ उसी ऊँचाई पर ले आता है। कोई numeric input नहीं। आपके पैर ही reference हैं।</p>
<p><strong>Cultivator</strong> (5 bronze + 5 core wood, smelting की ज़रूरत) रोपाई करता है: मिट्टी जोतना, बीज बोना, घास उगाना, और वनस्पति फिर से उगाना। यह terrain को आकार नहीं देता पर उसे सजाता है। hoe से किसी ढलान को समतल करने के बाद, आप उसे cultivate करते हैं और एक जंगल लगाते हैं। terrain एक कहानी कहता है: कोई यहाँ था, उसने इस ज़मीन पर मेहनत की।</p>
<p><strong>Pickaxe</strong> विनाश वाला पक्ष संभालता है। यह terrain में खोदता है, hoe के raise का उल्टा। तीनों औज़ार मिलकर (pickaxe खोदता है, hoe उठाता/समतल करता है, cultivator रोपता है) एक पूरी शब्दावली बनाते हैं जो असल दुनिया की खेती की क्रियाओं से मेल खाती है।</p>
<p>cost model मायने रखता है। ज़मीन उठाने पर stone लगता है। आप हर edit का बोझ महसूस करते हैं। आप किसी पहाड़ को मुफ़्त में terraform नहीं करते। resource cost sculpting को एक फ़ैसला बना देता है, checkbox नहीं।</p>
<h3 id="animal-crossing-कमाया-हुआ-terraforming" tabindex="-1">Animal Crossing: कमाया हुआ Terraforming <a class="header-anchor" href="#animal-crossing-कमाया-हुआ-terraforming" aria-label="Permalink to &quot;Animal Crossing: कमाया हुआ Terraforming&quot;"></a></h3>
<div class="video-embed">
  <iframe src="https://www.youtube.com/embed/q9wHV8XmLfs" title="How to Unlock Terraforming in Animal Crossing: New Horizons" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  <p class="game-caption">GameXplain बताता है कि Island Designer app कैसे unlock होती है, और साथ ही वे cliff और waterscape permits जो हर नए sculpting tool को कमाई गई currency के पीछे रखते हैं।</p>
</div>
<p>Animal Crossing: New Horizons terraforming को एक 3-star island rating के पीछे रखता है। Tom Nook के Island Designer app देने से पहले आपको एक campsite बनाना होता है, villagers को बुलाना होता है, housing plots खड़े करने होते हैं, और कई दिनों तक अपने island को विकसित करना होता है (असल दुनिया के दिन, game-hours नहीं)। जब तक आप terraforming unlock करते हैं, तब तक आप island को समझ चुके होते हैं। आप जानते हैं नदियाँ कहाँ हैं, कौन-सी cliffs आपके पसंदीदा नज़ारों को रोकती हैं, और आप क्या बदलना चाहते हैं।</p>
<p>औज़ार खुद एक permit system इस्तेमाल करते हैं। Paths मुफ़्त हैं। Waterscaping (नदियाँ, तालाब, झरने बनाना) पर 6,000 Nook Miles लगते हैं। Cliff Construction पर और 6,000 लगते हैं। अतिरिक्त path types पर 2,000 प्रत्येक लगते हैं। आप अपनी creative toolkit बढ़ाने के लिए वही currency खर्च कर रहे हैं जो आपने gameplay से कमाई है।</p>
<p>editing tile-based है। एक बार में एक square। कोई radius slider नहीं। कोई strength parameter नहीं। आप cliff का एक tile ऊपर धकेलते हैं या नदी का एक tile खोदकर निकालते हैं। यह बंदिश इसे सरल बनाती है: सबसे बुरी गलती को सुधारने में एक button press लगता है। design योजना बनाने को बढ़ावा देता है (community ने Happy Island Designer बनाया, layouts की पहले से योजना बनाने वाला एक browser tool) और समय के साथ धीरे-धीरे सुधार करने को।</p>
<p>Cliffs 3 levels तक जा सकती हैं। नदियों को समुद्र से जुड़ना होता है। कुछ landmarks (airport, resident services) हिलाए नहीं जा सकते। ये बंदिशें सीमाएँ नहीं हैं। ये design हैं। ये उस &quot;blank canvas paralysis&quot; को रोकती हैं जो freeform editors में casual engagement को मार देती है।</p>
<h3 id="no-man-s-sky-multi-tool" tabindex="-1">No Man's Sky: Multi-Tool <a class="header-anchor" href="#no-man-s-sky-multi-tool" aria-label="Permalink to &quot;No Man's Sky: Multi-Tool&quot;"></a></h3>
<div class="video-embed">
  <iframe src="https://www.youtube.com/embed/mnxMzm3_Ykw?start=942" title="No Man's Sky: Building into Terrain (Beeblebum)" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  <p class="game-caption">Beeblebum की base building guide का Terrain Manipulator हिस्सा (15:42 पर जाता है), चार sphere-based modes और "regenerate" limit दिखाता है।</p>
</div>
<p>No Man's Sky terrain manipulation को एक gun पर रखता है। Terrain Manipulator एक multi-tool upgrade है जिसके चार modes हैं: Mine (एक sphere में terrain हटाता है), Create (sphere या cube आकारों में terrain जोड़ता है), Restore (मूल generated state पर वापस ले जाता है), और Flatten (बड़े इलाकों को समतल करता है)।</p>
<p>metaphor एक sci-fi device है जो आपके हाथ में आ जाता है। आप दुनिया को edit करने के लिए निशाना लगाकर goli चलाते हैं। T और R keys sphere size को तीन presets के बीच बदलती हैं (small, medium, large)। कोई numeric radius नहीं। तीन sizes। बस यही पूरा UI है।</p>
<p>यह tool पहले mission में पेश किया जाता है। जब तक आप exploring शुरू करते हैं, तब तक आप पहले से जानते हैं कि गुफा कैसे काटें या landing pad कैसे समतल करें। create mode आपको terrain types चुनने देता है (rock, dirt, आदि), जो अंदर ही अंदर splat-map texture blending से मेल खाता है।</p>
<p>Energy drain sculpting को काबू में रखता है। Normal mode में यह उदार है। Survival mode में, हर edit काफ़ी मात्रा में resources खर्च करता है। दो difficulty levels पर एक ही tool casual sculptors और resource के प्रति सजग survivalists दोनों की सेवा करता है।</p>
<h3 id="astroneer-vacuum-gun" tabindex="-1">Astroneer: Vacuum Gun <a class="header-anchor" href="#astroneer-vacuum-gun" aria-label="Permalink to &quot;Astroneer: Vacuum Gun&quot;"></a></h3>
<div class="video-embed">
  <iframe src="https://www.youtube.com/embed/0KXQZG7riEs" title="ASTRONEER - Release Trailer" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  <p class="game-caption">Official Astroneer release trailer (System Era)। Terrain Tool मिट्टी को ऊपर खींच लेता है और वापस बाहर फेंक देता है, जिससे sculpting और resource gathering एक ही gesture बन जाते हैं।</p>
</div>
<p>Astroneer सबसे सरल संभव metaphor लेता है: मिट्टी के लिए एक vacuum cleaner। terrain पर निशाना लगाओ, trigger दबाए रखो, और यह मिट्टी खींच लेता है। खाली जगह पर निशाना लगाओ और यह मिट्टी वापस बाहर फेंक देता है। terrain आपके cursor के चारों ओर real time में बदलता है।</p>
<p>Augments इस व्यवहार को बदलते हैं: Alignment Mod surfaces को ग्रह की curve के सापेक्ष समतल बना देता है। Boost Mod गति बढ़ाता है। Wide Mod area of effect बढ़ाता है। Inhibitor Mod आपको terrain को बिल्कुल बदले बिना resources जमा करने देता है।</p>
<p>खूबी यह है कि terrain एक साथ एक resource भी है। जो मिट्टी आप vacuum करते हैं वह canisters भरती है। canisters की मिट्टी को Soil Centrifuge में materials में बदला जा सकता है। दुनिया को गढ़ना और resources जमा करना एक ही क्रिया है। आप इसलिए नहीं खोदते कि आपको गुफा चाहिए। आप इसलिए खोदते हैं कि आपको compound बनाने के लिए मिट्टी चाहिए। गुफा एक side effect है जो बाद में काम का बन जाता है।</p>
<h3 id="deep-rock-galactic-mining-एक-टीम-वर्क-के-रूप-में" tabindex="-1">Deep Rock Galactic: Mining एक टीम-वर्क के रूप में <a class="header-anchor" href="#deep-rock-galactic-mining-एक-टीम-वर्क-के-रूप-में" aria-label="Permalink to &quot;Deep Rock Galactic: Mining एक टीम-वर्क के रूप में&quot;"></a></h3>
<div class="video-embed">
  <iframe src="https://www.youtube.com/embed/t9VsWTLJkVY" title="The Driller Masterclass - Deep Rock Academy" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  <p class="game-caption">Deep Rock Academy की Driller Masterclass। forearm drills combat के बीच ही सुरंगें काटती हैं, हथियार और terrain tool के बीच की रेखा को धुंधला कर देती हैं।</p>
</div>
<p>Deep Rock Galactic terrain destruction को class roles से जोड़ता है। Driller के पास अपनी forearms पर लगे power drills होते हैं जो हर सेकंड 2m चौड़ा, 2.2m ऊँचा, 1m गहरा rock चबा जाते हैं। लगातार इस्तेमाल के बाद drills ज़्यादा गर्म हो जाते हैं (red होने में 5.5 सेकंड, 8 सेकंड cooldown) और सीमित fuel पर चलते हैं। हर dwarf के पास precision काम के लिए एक pickaxe होता है।</p>
<p>Driller का काम रास्ता बनाना है। ठोस rock में से point A से point B तक एक सुरंग काटना। टीम पीछे चलती है। terrain editing एक creative tool होने के बजाय mission objective की सेवा करता है (extraction pod तक पहुँचना)। पर side effect यह है कि टीम जिस भी cave system से खेलती है वह उनके फ़ैसलों से अनोखे ढंग से आकार लेता है। कोई दो runs एक जैसे नहीं दिखते।</p>
<p>co-op structure sculpting को सामाजिक बना देता है। Driller अकेले नहीं खोदता। Scout flares से गुफा को रोशन करता है। Engineer उन दीवारों पर platforms रखता है जिन्हें Driller ने उजागर किया। Gunner सुरंग के मुहाने की रक्षा करता है। terrain editing एक साझा वाक्य का एक verb है।</p>
<h3 id="teardown-विनाश-एक-पहेली-के-रूप-में" tabindex="-1">Teardown: विनाश एक पहेली के रूप में <a class="header-anchor" href="#teardown-विनाश-एक-पहेली-के-रूप-में" aria-label="Permalink to &quot;Teardown: विनाश एक पहेली के रूप में&quot;"></a></h3>
<div class="video-embed">
  <iframe src="https://www.youtube.com/embed/mdqJEvia4mQ" title="Teardown - Gameplay Overview Trailer" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  <p class="game-caption">Official Teardown gameplay overview (Tuxedo Labs / PlayStation)। हर tool एक भौतिक metaphor से मेल खाता है, और voxel physics नतीजों को तुरंत और साफ़ बना देती है।</p>
</div>
<p>Teardown terrain destruction को heist planning में लपेटता है। तैयारी के लिए आपके पास असीमित समय है: दीवारें तोड़ो, इमारतों के बीच से गाड़ियाँ चलाओ, explosives रखो, ramps बनाओ। फिर alarm बजता है और हर objective पर पहुँचकर भागने के लिए आपके पास 60 सेकंड होते हैं।</p>
<p>हर tool की एक भौतिक पहचान है। sledgehammer पास से चीज़ें तोड़ता है। blowtorch steel काटता है। Explosives दीवारें उड़ा देते हैं। fire extinguisher आग बुझाता है। गाड़ियाँ structures से टकराकर गुज़रती हैं। खिलाड़ी अमूर्त रूप में &quot;terrain edit&quot; नहीं करता। वे एक दीवार पर hammer घुमाते हैं और दीवार टूट जाती है।</p>
<p>physics इसे असली महसूस कराती है। support हटने पर structures ढह जाते हैं। आग फैलती है। धुआँ कमरों में भर जाता है। मलबा गिरता है। feedback loop तुरंत और भौतिक है: किसी चीज़ पर मारो, उसे टूटते देखो, नतीजों को एक के बाद एक होते देखो। casual खिलाड़ी इसे समझते हैं क्योंकि उन्होंने असल ज़िंदगी में hammer घुमाया है (या घुमाना चाहा है)।</p>
<h3 id="eco-नतीजे-game-design-के-रूप-में" tabindex="-1">Eco: नतीजे Game Design के रूप में <a class="header-anchor" href="#eco-नतीजे-game-design-के-रूप-में" aria-label="Permalink to &quot;Eco: नतीजे Game Design के रूप में&quot;"></a></h3>
<p>Eco वह दुर्लभ game है जहाँ terrain editing के स्थायी, साझा नतीजे होते हैं। बहुत ज़्यादा पेड़ काटो और हवा की quality गिर जाती है। बहुत आक्रामक तरीके से mine करो और आप water table को प्रदूषित कर देते हैं। हद से ज़्यादा शिकार करो और प्रजातियाँ विलुप्त हो जाती हैं। पूरा ecosystem simulate किया गया है।</p>
<p>खिलाड़ी कानून प्रस्तावित कर सकते हैं और उन पर वोट दे सकते हैं: &quot;नदी के 200m के भीतर कोई logging नहीं&quot; या &quot;प्रति घन मीटर 10 gold का mining tax।&quot; governance system terrain editing को एक राजनीतिक कृत्य बना देता है। आप जहाँ चाहें वहाँ बस खोद नहीं सकते। community आपको रोक सकती है।</p>
<p>यह gamification का चरम छोर है: sculpting system खुद ही core game loop बन जाता है। terrain वह साझा resource है जिस पर हर खिलाड़ी की क्रिया असर डालती है। sculpting एक creative tool नहीं है। यह game का केंद्रीय तनाव है।</p>
<h2 id="cinevva-के-लिए-design-patterns" tabindex="-1">Cinevva के लिए Design Patterns <a class="header-anchor" href="#cinevva-के-लिए-design-patterns" aria-label="Permalink to &quot;Cinevva के लिए Design Patterns&quot;"></a></h2>
<p>ये games उन patterns की एक toolkit सुझाते हैं जिन्हें हम इस्तेमाल कर सकते हैं। सब एक साथ नहीं। परतों में, सबसे सुलभ से शुरू करते हुए और सबसे जटिल की ओर बढ़ते हुए।</p>
<h3 id="pattern-1-object-based-sculpting-tnt-pattern" tabindex="-1">Pattern 1: Object-Based Sculpting (TNT Pattern) <a class="header-anchor" href="#pattern-1-object-based-sculpting-tnt-pattern" aria-label="Permalink to &quot;Pattern 1: Object-Based Sculpting (TNT Pattern)&quot;"></a></h3>
<p>खिलाड़ियों को brush मत दो। उन्हें ऐसे objects दो जो इस्तेमाल होने पर terrain को दोबारा गढ़ देते हैं।</p>
<p><strong>TNT / Dynamite:</strong> खिलाड़ी एक explosive बनाता या पाता है। उसे दुनिया में रखता है। fuse जलाता है (या फेंकता है)। terrain का एक गोला घट जाता है। radius explosive type पर निर्भर करता है। छोटा firecracker: 2m radius। मानक dynamite: 5m। Mega bomb (दुर्लभ drop): 15m। खिलाड़ी चीज़ें उड़ा रहा है, &quot;terrain edit&quot; नहीं कर रहा।</p>
<p><strong>Pickaxe / Shovel / Drill:</strong> अलग-अलग खासियतों वाले handheld औज़ार। pickaxe rock को थोड़ा-थोड़ा काटता है (छोटा radius, तेज़, सख्त materials पर काम करता है)। shovel मिट्टी निकालता है (मध्यम radius, मुलायम ज़मीन पर तेज़, rock पर बेकार)। drill सुरंगें बनाता है (पतली और गहरी, चिकने बेलनाकार छेद छोड़ता है)। हर tool अंदर ही अंदर एक अलग SDF brush operation से मेल खाता है, पर खिलाड़ी उन्हें अलग feedback वाले अलग भौतिक objects के रूप में अनुभव करता है।</p>
<p><strong>Bucket / Watering Can:</strong> terrain पर पानी डालो और यह ढलान से नीचे बहता है, एक channel घिसता हुआ। erosion brush अपने आप terrain gradient का पीछा करता है। खिलाड़ी brush का निशाना नहीं लगाता। वे पानी डालते हैं और नदी बनते देखते हैं। अंदर ही अंदर यह terrain slope से प्रभावित एक smooth-lower operation है।</p>
<p><strong>Seeds / Saplings:</strong> उन्हें रोपो और terrain उगता है। समतल ज़मीन पर रखा गया एक seed packet समय के साथ (कई सेकंड में, एक animation के साथ) एक छोटी पहाड़ी में फूटता है। नंगे rock पर रखा गया एक tree sapling अपने आधार के चारों ओर मिट्टी का एक टीला बना देता है। &quot;उगता&quot; terrain बस एक nature skin वाला raise brush है।</p>
<p><strong>Terraform Beacon:</strong> एक beacon रखो और यह समय के साथ अपने radius के भीतर हर चीज़ को धीरे-धीरे एक target height तक समतल कर देता है। building sites के लिए अच्छा। खिलाड़ी object रखता है और चला जाता है। flatten brush कम intensity पर अपने आप चलता है जब तक ज़मीन beacon height से मेल नहीं खा जाती।</p>
<h3 id="pattern-2-tool-progression-stardew-pattern" tabindex="-1">Pattern 2: Tool Progression (Stardew Pattern) <a class="header-anchor" href="#pattern-2-tool-progression-stardew-pattern" aria-label="Permalink to &quot;Pattern 2: Tool Progression (Stardew Pattern)&quot;"></a></h3>
<p>खिलाड़ियों को कमज़ोर औज़ारों से शुरू कराओ जो छोटे edits करते हैं। gameplay के ज़रिए upgrade करो।</p>
<p><strong>Tier 1 (मुफ़्त, तुरंत):</strong> खाली हाथ। छोटे उभार दबा सकते हैं (micro-smooth, 0.5m radius)। मुट्ठी भर मिट्टी उठा सकते हैं (micro-lower, 0.3m radius)। नगण्य असर। सिखाता है कि system मौजूद है।</p>
<p><strong>Tier 2 (बुनियादी materials से बना):</strong> stone shovel, wooden pickaxe। छोटे edits के लिए इस्तेमाल लायक। एक campsite समतल करो। एक उथली खाई खोदो। 1-2m radius। यहीं ज़्यादातर casual खिलाड़ी रहते हैं।</p>
<p><strong>Tier 3 (exploration या trading की ज़रूरत):</strong> Metal tools। बड़ा radius (3-5m)। नए operations unlock होते हैं: hoe से terrain उठाओ, chisel से चिकने मोड़ काटो।</p>
<p><strong>Tier 4 (Endgame / दुर्लभ drops):</strong> Power tools, explosives, terraform devices। 10-20m radius। Cave boring। Mountain building। ये तमाशे वाले औज़ार हैं जो लंबे समय के खिलाड़ियों को इनाम देते हैं।</p>
<p>upgrade path एक tutorial के तौर पर भी काम करता है। हर tier एक नया concept पेश करता है। जब तक आप Tier 4 तक पहुँचते हैं, तब तक आपने एक tutorial screen से नहीं, बल्कि धीरे-धीरे संपर्क के ज़रिए terrain editing की शब्दावली आत्मसात कर ली होती है।</p>
<h3 id="pattern-3-contextual-tools-valheim-pattern" tabindex="-1">Pattern 3: Contextual Tools (Valheim Pattern) <a class="header-anchor" href="#pattern-3-contextual-tools-valheim-pattern" aria-label="Permalink to &quot;Pattern 3: Contextual Tools (Valheim Pattern)&quot;"></a></h3>
<p>tool को इस बात से मिलाओ कि खिलाड़ी क्या करने की कोशिश कर रहा है, इस बात से नहीं कि terrain को क्या चाहिए।</p>
<p><strong>Building mode:</strong> जब खिलाड़ी building mode में होता है (दीवारें, फ़र्श, छतें रखते हुए), तो foundations के नीचे terrain अपने आप समतल हो जाता है। उन्हें एक अलग flatten tool की ज़रूरत नहीं होती। building system इसे संभालता है। Valheim की building ऐसे ही काम करती है: एक फ़र्श रखो, और ज़मीन समायोजित हो जाती है।</p>
<p><strong>Farming mode:</strong> फ़सल बोते समय, cultivator मिट्टी जोतता है (surface material बदलता है) और छोटे उभार समतल करता है। खिलाड़ी खेती कर रहा है, terraforming नहीं। terrain editing कृषि क्रिया का एक side effect है।</p>
<p><strong>Mining mode:</strong> जब terrain से resources काटे जाते हैं (ore veins, clay deposits, mineral nodes), तो extraction एक छेद छोड़ देता है। terrain editing resource gathering का एक side effect है। Astroneer यह बिल्कुल सही करता है: मिट्टी vacuum करो, resources पाओ, एक गुफा छोड़ दो।</p>
<p><strong>Combat mode:</strong> हथियारों के धमाकों से craters बनते हैं। आग वनस्पति जला देती है। acid rock को घोल देता है। terrain damage combat का एक side effect है। Deep Rock Galactic के drills ऐसे ही काम करते हैं: वे एक साथ एक हथियार और एक terrain tool हैं।</p>
<h3 id="pattern-4-social-sculpting-eco-pattern" tabindex="-1">Pattern 4: Social Sculpting (Eco Pattern) <a class="header-anchor" href="#pattern-4-social-sculpting-eco-pattern" aria-label="Permalink to &quot;Pattern 4: Social Sculpting (Eco Pattern)&quot;"></a></h3>
<p>एक साझा दुनिया में, हर edit एक सामाजिक कृत्य है। उसी के लिए design करो।</p>
<p><strong>दिखने वाली authorship:</strong> जब कोई खिलाड़ी terrain गढ़ता है, तो इसका एक हल्का संकेत छोड़ो कि किसने किया। एक धीमी चमक। edited surface पर खिलाड़ी-रंग की एक tint। एक छोटा झंडा। दूसरे खिलाड़ी देख सकते हैं कि कोई यहाँ था और उसने landscape बदला।</p>
<p><strong>सहयोगी projects:</strong> एक दावे वाले इलाके के भीतर terrain edits एक साझा लक्ष्य की ओर जमा होते हैं। &quot;पहाड़ से झील तक एक नदी खोदो।&quot; इलाके में सबको दिखने वाला progress bar। पूरा होने पर, नदी पानी से भर जाती है। sculpting एक साझा इनाम वाली समूह गतिविधि थी।</p>
<p><strong>Approval zones:</strong> संरक्षित इलाकों में, terrain edits के लिए landowner की मंज़ूरी या आसपास के खिलाड़ियों के वोट की ज़रूरत होती है। यह sculpting को बंद किए बिना griefing रोकता है। edit को मंज़ूरी मिलने तक एक ghost के रूप में preview किया जाता है (पारदर्शी, outline वाला)।</p>
<p><strong>सहमति से Undo:</strong> कोई भी खिलाड़ी एक terrain edit को वापस लेने का प्रस्ताव दे सकता है। अगर आसपास के पर्याप्त खिलाड़ी सहमत हों, तो edit कुछ सेकंड में मिट जाता है। No Man's Sky का restore mode, पर सामाजिक।</p>
<h3 id="pattern-5-प्राकृतिक-शक्तियाँ-erosion-pattern" tabindex="-1">Pattern 5: प्राकृतिक शक्तियाँ (Erosion Pattern) <a class="header-anchor" href="#pattern-5-प्राकृतिक-शक्तियाँ-erosion-pattern" aria-label="Permalink to &quot;Pattern 5: प्राकृतिक शक्तियाँ (Erosion Pattern)&quot;"></a></h3>
<p>सीधी brush strokes के बजाय, खिलाड़ियों को प्राकृतिक प्रक्रियाएँ शुरू करने दो।</p>
<p><strong>Rain summoner:</strong> एक पहाड़ी के ऊपर एक बादल रखो और बारिश होती है। बारिश समय के साथ पहाड़ी को घिसती है, channels काटती हुई और किनारों को मुलायम करती हुई। खिलाड़ी तय करता है कि बारिश कहाँ गिरेगी और कितनी देर चलेगी। erosion shader sculpting करता है।</p>
<p><strong>Earthquake device:</strong> एक स्थानीय भूकंप शुरू करता है जो ज़मीन में दरार डालता है, fissures बनाता है, और प्रभावित इलाके में terrain को नीचे करता है। खिलाड़ी चुनता है कहाँ। physics simulation तय करती है कैसे।</p>
<p><strong>Lava flow:</strong> एक बिंदु से lava छोड़ो और यह ढलान से नीचे बहता है, घाटियों को भरता हुआ और rock में कठोर होता हुआ। एक प्राकृतिक metaphor से बना नया terrain। अंदर ही अंदर यह एक rock material के साथ terrain gradient का पीछा करता हुआ raise brush है।</p>
<p><strong>Wind sculptor:</strong> एक पंखा या फूँकने वाला device जो मुलायम terrain (sand, dirt) को हवा की दिशा में धकेलता है। समय के साथ, यह dunes और चिकनी ढलानें बनाता है। दिशात्मक झुकाव वाला smooth brush।</p>
<p><strong>Freeze / Thaw:</strong> एक नदी में पानी जमाकर एक ice bridge बनाओ। एक जमी हुई पहाड़ी को पिघलाकर एक mudslide शुरू करो। एक terrain editing parameter के रूप में तापमान, weather items के ज़रिए व्यक्त।</p>
<h3 id="pattern-6-खोज-और-हैरानी-infinite-craft-pattern" tabindex="-1">Pattern 6: खोज और हैरानी (Infinite Craft Pattern) <a class="header-anchor" href="#pattern-6-खोज-और-हैरानी-infinite-craft-pattern" aria-label="Permalink to &quot;Pattern 6: खोज और हैरानी (Infinite Craft Pattern)&quot;"></a></h3>
<p>प्रयोग को इनाम दो।</p>
<p><strong>Combination effects:</strong> पानी के पास TNT एक hot spring बनाता है (crater + पानी का भराव + steam particles)। TNT craters में बोए गए बीज तेज़ी से बढ़ते हैं (crater में &quot;उपजाऊ मिट्टी&quot; होती है)। एक जमी हुई नदी जिसे dynamite किया जाए वह नीचे एक गुफा उजागर करती है।</p>
<p><strong>छिपे हुए materials:</strong> काफ़ी गहरा खोदने पर अलग-अलग terrain परतें उजागर होती हैं: topsoil, clay, stone, crystal, lava। हर परत के गुण और रूप अलग हैं। जो खिलाड़ी ज़्यादा गहरा खोदते हैं वे ऐसी चीज़ें देखते हैं जो किसी और ने नहीं देखीं।</p>
<p><strong>Fossils और artifacts:</strong> बेतरतीब terrain edits कभी-कभी दबी हुई चीज़ें खोद निकालते हैं: fossils, प्राचीन artifacts, treasure chests, दुर्लभ बीज। sculpting की क्रिया एक exploration mechanic बन जाती है। आप सिर्फ़ गुफा के लिए नहीं खोदते। आप इसलिए खोदते हैं कि आपको कुछ मिल सकता है।</p>
<p><strong>Terrain memory:</strong> edited terrain याद रखता है कि उसके साथ क्या हुआ। TNT से उड़ाए गए इलाके में झुलसे निशान और जले किनारे होते हैं। बीजों से उगाए गए इलाके में गहरे रंग की मिट्टी होती है। बारिश से घिसे इलाके में चिकनी, पानी से घिसी textures होती हैं। terrain अपना इतिहास खुद बताता है।</p>
<h2 id="brush-से-metaphor-mapping" tabindex="-1">Brush-से-Metaphor Mapping <a class="header-anchor" href="#brush-से-metaphor-mapping" aria-label="Permalink to &quot;Brush-से-Metaphor Mapping&quot;"></a></h2>
<p>खिलाड़ी जिस भी metaphor से जुड़ता है वह हमारी <a href="/hi/guides/terrain-sculpting-brushes.html">sculpting pipeline</a> के एक तकनीकी brush operation से मेल खाता है। यह रहा अनुवाद-तालिका:</p>
<p><strong>Pickaxe / Shovel</strong> छोटे radius, ऊँची strength, तेज़ falloff के साथ <strong>lower brush</strong> (heightmap या SDF से घटाना) से मेल खाता है। tool animation वही <code>Chunk.applyBrush()</code> call शुरू करती है।</p>
<p><strong>TNT / Explosives</strong> बड़े radius, अधिकतम strength, sphere falloff के साथ <strong>lower brush</strong> से मेल खाते हैं। एक अकेला explosive event detonation point पर केंद्रित एक brush stroke लगाता है। हर material type की blast resistance brush पर एक strength multiplier से मेल खाती है।</p>
<p><strong>Hoe / Flattener</strong> मध्यम radius, smooth falloff के साथ <strong>flatten brush</strong> से मेल खाता है। tool सक्रिय होने पर target height खिलाड़ी के पैर की स्थिति से लिया जाता है, बिल्कुल Valheim की तरह।</p>
<p><strong>Seeds / Growth</strong> छोटे radius, smooth falloff के साथ <strong>raise brush</strong> से मेल खाता है, जो कई frames में लगाया जाता है (animated growth)। हर frame एक छोटा increment लगाता है। animation metaphor बेचता है जबकि brush geometry संभालता है।</p>
<p><strong>Watering Can / Rain</strong> दिशात्मक झुकाव के साथ <strong>smooth brush</strong> से मेल खाता है। झुकाव <code>ChunkManager.getNormal()</code> से terrain slope gradient का पीछा करता है। brush center के नीचे के points उसके ऊपर के points से ज़्यादा नीचे होते हैं, जिससे प्राकृतिक erosion channels बनते हैं।</p>
<p><strong>Terraform Beacon</strong> हर frame कम strength पर तब तक लगाए गए <strong>flatten brush</strong> से मेल खाता है जब तक convergence न हो जाए। beacon की world-space position target height तय करती है। radius beacon का area of effect है।</p>
<p><strong>Drill</strong> एक sphere के बजाय एक ray दिशा के साथ projected किए गए <strong>lower brush</strong> से मेल खाता है। खिलाड़ी की aim दिशा से डाली गई ray हर depth step पर brush center तय करती है, जिससे एक बेलनाकार सुरंग बनती है।</p>
<h2 id="progression-और-economy" tabindex="-1">Progression और Economy <a class="header-anchor" href="#progression-और-economy" aria-label="Permalink to &quot;Progression और Economy&quot;"></a></h2>
<h3 id="खिलाड़ी-क्या-कमाते-हैं" tabindex="-1">खिलाड़ी क्या कमाते हैं <a class="header-anchor" href="#खिलाड़ी-क्या-कमाते-हैं" aria-label="Permalink to &quot;खिलाड़ी क्या कमाते हैं&quot;"></a></h3>
<p><strong>Tool unlocks:</strong> हाथों से शुरू करो। आम materials से बुनियादी औज़ार बनाओ। exploration, trading, या quest पूरा करने के ज़रिए उन्नत औज़ारों के recipes खोजो।</p>
<p><strong>Capacity upgrades:</strong> बड़े explosives। चौड़े hoes। तेज़ drills। brush radius और strength tier के साथ बढ़ते हैं। अपने shovel को wood से iron में upgrade करने पर radius दोगुना हो जाता है।</p>
<p><strong>Material types:</strong> जैसे-जैसे खिलाड़ी biomes explore करते हैं नए terrain materials unlock होते हैं। आप सिर्फ़ वही terrain types &quot;create&quot; कर सकते हैं जिनसे आपका सामना हुआ है। sand creation unlock करने के लिए एक रेगिस्तान देखो। basite unlock करने के लिए एक ज्वालामुखी देखो। No Man's Sky का create mode, exploration के पीछे रखा गया।</p>
<p><strong>Recipes:</strong> Combination effects दिए नहीं जाते, खोजे जाते हैं। TNT crater में एक बीज बोओ और &quot;Fertile Blast&quot; खोजो। lava terrain पर पानी डालो और &quot;Obsidian Formation&quot; खोजो। हर खोज सूचीबद्ध की जाती है और साझा की जा सकती है।</p>
<h3 id="इसकी-कीमत-क्या-है" tabindex="-1">इसकी कीमत क्या है <a class="header-anchor" href="#इसकी-कीमत-क्या-है" aria-label="Permalink to &quot;इसकी कीमत क्या है&quot;"></a></h3>
<p><strong>Resources:</strong> हर terrain edit materials खर्च करता है। terrain उठाने पर dirt/stone/sand लगता है (वह material जो रखा जा रहा है)। terrain नीचे करने पर materials मिलते हैं (जो आपके inventory में जाते हैं)। समतल करना दोबारा बाँटता है। resource प्रवाह economy को terrain system से जोड़े रखता है।</p>
<p><strong>Energy / Durability:</strong> औज़ारों की durability या energy सीमाएँ होती हैं। pickaxe N इस्तेमाल के बाद टूट जाता है। terraform beacon fuel पर चलता है। यह अनंत editing रोकता है और प्राकृतिक session सीमाएँ बनाता है। खिलाड़ी फिर से आपूर्ति के लिए ब्रेक लेते हैं।</p>
<p><strong>Time:</strong> कुछ operations तुरंत होते हैं (pickaxe swing)। दूसरे धीमे होते हैं (beacon flattening, seed growing, rain erosion)। धीमे operations धैर्य को इनाम देते हैं और spam को हतोत्साहित करते हैं। वे बेहतर भी दिखते हैं: एक बीज को पहाड़ी में फूटते देखना एक &quot;raise&quot; button दबाने से ज़्यादा संतोषजनक है।</p>
<h3 id="दूसरे-क्या-देखते-हैं" tabindex="-1">दूसरे क्या देखते हैं <a class="header-anchor" href="#दूसरे-क्या-देखते-हैं" aria-label="Permalink to &quot;दूसरे क्या देखते हैं&quot;"></a></h3>
<p><strong>Edit footprint:</strong> हर terrain modification का एक visual signature होता है। TNT craters के गहरे, फटे किनारे होते हैं। Hoe से समतल किए इलाकों में एक चिकनी, जोती-हुई मिट्टी की texture होती है। उगाए गए terrain में गहरा, organic रंग होता है। बारिश से घिसे channels में watermarks होते हैं। खिलाड़ी landscape का इतिहास पढ़ सकते हैं।</p>
<p><strong>Creator tags:</strong> edited terrain पर hover करके देखो कि किसने और कब बदला। &quot;Sculpted by @PlayerName, 2 hours ago।&quot; यह authorship का गर्व और सामाजिक जवाबदेही बनाता है।</p>
<p><strong>Before/After:</strong> एक &quot;time lapse&quot; view जो terrain को उसके edit इतिहास के किसी भी बिंदु पर दिखाता है। landscape को बदलते देखने के लिए एक timeline slider scrub करो। यह संभव है क्योंकि <a href="/hi/guides/terrain-sculpting-brushes.html">तकनीकी guide</a> के Phase 3 का CSG edit tree हर operation को क्रम में store करता है।</p>
<h2 id="हम-पहले-क्या-बनाते-हैं" tabindex="-1">हम पहले क्या बनाते हैं <a class="header-anchor" href="#हम-पहले-क्या-बनाते-हैं" aria-label="Permalink to &quot;हम पहले क्या बनाते हैं&quot;"></a></h2>
<p><a href="/hi/guides/terrain-sculpting-brushes.html#practical-architecture-for-sculpting">तकनीकी architecture</a> का Phase 1 मौजूदा WebGL renderer पर heightmap sculpting के साथ काम करता है। जो casual tools हम उसके ऊपर ship कर सकते हैं:</p>
<ol>
<li><strong>Shovel</strong> (lower brush, छोटा radius)। सबसे बुनियादी tool। terrain पर click करो, एक छेद खोदो। dirt resources देता है।</li>
<li><strong>Hoe</strong> (flatten brush, मध्यम radius)। जहाँ ज़मीन चाहिए वहाँ खड़े हो जाओ, hoe इस्तेमाल करो, terrain आपके पैरों के बराबर हो जाता है।</li>
<li><strong>TNT</strong> (lower brush, बड़ा radius, one-shot)। materials से बनाओ, रखो, जलाओ, धमाका देखो। rubble देता है।</li>
<li><strong>Seeds</strong> (raise brush, frames में animated)। समतल ज़मीन पर रोपो, terrain को एक छोटी पहाड़ी में उठते देखो, ऊपर वनस्पति आ जाती है।</li>
<li><strong>Watering Can</strong> (slope bias के साथ smooth brush)। ढलानों पर डालकर उन्हें घिसो। प्राकृतिक दिखने वाले channels बनाता है।</li>
</ol>
<p>पाँच औज़ार। पाँच अलग metaphors। एक underlying brush system। हर tool <code>(radius, strength, falloff, operation, animation)</code> का एक अलग configuration है जो एक item में लपेटा गया है जिसे खिलाड़ी मौजूदा <code>PlacementTool</code> जैसे ही interaction model के ज़रिए बनाता, equip करता और इस्तेमाल करता है।</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[3D ब्रश तकनीकें और इन-गेम वर्ल्ड स्कल्प्टिंग]]></title>
            <link>https://app.cinevva.com/hi/guides/terrain-sculpting-brushes</link>
            <guid>https://app.cinevva.com/hi/guides/terrain-sculpting-brushes</guid>
            <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[हाइटमैप डिस्प्लेसमेंट से लेकर SDF CSG ट्री तक। टेरेन स्कल्प्टिंग ब्रश असल में कैसे काम करते हैं, marching cubes और surface nets अंदरूनी तौर पर क्या करते हैं, और रियल टाइम में players को एक शेयर्ड वर्ल्ड कैसे फिर से आकार देने दिया जाए।]]></description>
            <content:encoded><![CDATA[<h1 id="_3d-ब्रश-तकनीकें-और-इन-गेम-वर्ल्ड-स्कल्प्टिंग" tabindex="-1">3D ब्रश तकनीकें और इन-गेम वर्ल्ड स्कल्प्टिंग <a class="header-anchor" href="#_3d-ब्रश-तकनीकें-और-इन-गेम-वर्ल्ड-स्कल्प्टिंग" aria-label="Permalink to &quot;3D ब्रश तकनीकें और इन-गेम वर्ल्ड स्कल्प्टिंग&quot;"></a></h1>
<p>हम चाहते हैं कि players वर्ल्ड को स्कल्प्ट करें। ग्रिड पर prefabs रखें ऐसा नहीं। ब्लॉक चालू-बंद करें ऐसा नहीं। असल में टेरेन को फिर से आकार दें: नदियां काटें, पहाड़ उठाएं, चट्टानों के किनारे smooth करें, गुफाएं खोदें। वैसी ही चीज़ जो ZBrush और Blender का sculpt mode आर्टिस्ट्स के लिए करते हैं, लेकिन एक मल्टीप्लेयर browser game के अंदर 60fps पर चलते हुए।</p>
<p>यह एक मुश्किल इंजीनियरिंग समस्या है जो डेटा रिप्रेज़ेंटेशन, mesh extraction, GPU compute, ब्रश के गणित और नेटवर्क सिंक्रोनाइज़ेशन तक फैली है। यह गाइड वह सब कुछ दर्ज करती है जो हमें मिला।</p>
<h2 id="टेरेन-रिप्रेज़ेंटेशन-की-दो-दुनिया" tabindex="-1">टेरेन रिप्रेज़ेंटेशन की दो दुनिया <a class="header-anchor" href="#टेरेन-रिप्रेज़ेंटेशन-की-दो-दुनिया" aria-label="Permalink to &quot;टेरेन रिप्रेज़ेंटेशन की दो दुनिया&quot;"></a></h2>
<p>हर स्कल्प्टिंग सिस्टम इस चुनाव से शुरू होता है कि टेरेन डेटा कैसे स्टोर किया जाए। यह चुनाव तय करता है कि किस तरह के edits मुमकिन हैं, वे कितनी तेज़ चलते हैं, और कितनी मेमोरी खर्च करते हैं।</p>
<h3 id="हाइटमैप" tabindex="-1">हाइटमैप <a class="header-anchor" href="#हाइटमैप" aria-label="Permalink to &quot;हाइटमैप&quot;"></a></h3>
<p>एक हाइटमैप हर ग्रिड पॉइंट पर एक height value स्टोर करता है। आप इसे एक ग्रेस्केल इमेज की तरह सोच सकते हैं जहां brightness का मतलब elevation है। हमारा मौजूदा <code>world/client</code> टेरेन ठीक इसी तरह काम करता है: <code>noise.ts</code> FBM value noise के ज़रिए height बनाता है, और हर <code>Chunk</code> एक <code>Float32Array</code> हाइटमैप स्टोर करता है जो एक <code>PlaneGeometry</code> पर प्रोजेक्ट होता है।</p>
<p>हाइटमैप तेज़ होते हैं। सैंपलिंग bilinear interpolation के साथ एक ही array lookup है। LOD आसान है क्योंकि आप बस ग्रिड का रिज़ॉल्यूशन कम कर देते हैं। Splat-आधारित टेक्सचर ब्लेंडिंग सीधे UV ग्रिड पर मैप होती है। फिज़िक्स collisions एक height query तक सिमट जाती हैं।</p>
<p>सीमा topology है। एक हाइटमैप हर (x, z) coordinate पर सिर्फ एक height दर्शा सकता है। कोई गुफाएं नहीं। कोई overhangs नहीं। कोई arches नहीं। कोई tunnels नहीं। अगर कोई player एक ऐसी चट्टान स्कल्प्ट करे जो खुद पर मुड़ जाती है, तो हाइटमैप उसे स्टोर नहीं कर सकता। ऐसे टेरेन के लिए जो ज़्यादातर ढलवां पहाड़ियां और पहाड़ हैं, यह ठीक है। ऐसी freeform स्कल्प्टिंग के लिए जहां players ज़मीन के अंदर खोद सकें, यह एक dead end है।</p>
<h3 id="वॉल्यूमेट्रिक-3d-scalar-fields" tabindex="-1">वॉल्यूमेट्रिक (3D Scalar Fields) <a class="header-anchor" href="#वॉल्यूमेट्रिक-3d-scalar-fields" aria-label="Permalink to &quot;वॉल्यूमेट्रिक (3D Scalar Fields)&quot;"></a></h3>
<p>विकल्प यह है कि 3D स्पेस के हर पॉइंट पर एक value स्टोर की जाए। अगर value ठोस मटेरियल के अंदर negative और बाहर positive है (या उल्टा), तो आपके पास एक Signed Distance Field (SDF) है। अगर value बस एक density है (किसी threshold से ऊपर ठोस, नीचे खाली), तो आपके पास एक density field है।</p>
<p>वॉल्यूमेट्रिक रिप्रेज़ेंटेशन किसी भी topology को संभाल लेते हैं। गुफाएं, overhangs, तैरते द्वीप, पहाड़ों के बीच से tunnels। इसका मोल मेमोरी और जटिलता है। 32-bit floats वाला एक 256^3 ग्रिड 64 MB खर्च करता है। एक 512^3 ग्रिड 512 MB खर्च करता है। और यह एक ही chunk के लिए है। इसे व्यावहारिक बनाने के लिए आपको sparse data structures (octrees, brick maps) चाहिए।</p>
<p>Mesh extraction का चरण भी आसान नहीं है। आप बस vertex Y positions सेट करके बात खत्म नहीं कर सकते। आपको एक ऐसा algorithm चाहिए जो scalar field को पढ़े और एक triangle mesh बनाए जो सतह का अनुमान लगाए वहां जहां field शून्य को पार करता है।</p>
<h2 id="mesh-extraction-marching-cubes-surface-nets-और-dual-contouring" tabindex="-1">Mesh Extraction: Marching Cubes, Surface Nets, और Dual Contouring <a class="header-anchor" href="#mesh-extraction-marching-cubes-surface-nets-और-dual-contouring" aria-label="Permalink to &quot;Mesh Extraction: Marching Cubes, Surface Nets, और Dual Contouring&quot;"></a></h2>
<h3 id="marching-cubes" tabindex="-1">Marching Cubes <a class="header-anchor" href="#marching-cubes" aria-label="Permalink to &quot;Marching Cubes&quot;"></a></h3>
<p>Marching Cubes सबसे पुराना और सबसे ज़्यादा लागू किया गया isosurface extraction algorithm है। Lorensen और Cline द्वारा 1987 में प्रकाशित, यह voxel ग्रिड के हर cube की जांच करके काम करता है जहां हर corner की एक scalar value होती है। अगर कुछ corners सतह के अंदर (negative) और कुछ बाहर (positive) हों, तो उस cube के अंदर एक triangle mesh patch रखा जाता है।</p>
<p>हर cube के 8 corners होते हैं, हर एक या तो अंदर या बाहर, जिससे 256 संभावित कॉन्फ़िगरेशन (2^8) बनते हैं। ये symmetry के ज़रिए 15 अनोखे cases में सिमट जाते हैं। एक lookup table हर case को triangles के एक सेट से मैप करता है। Edge intersection points वहां linear interpolation से खोजे जाते हैं जहां edges पर sign बदलता है।</p>
<p><strong>हाल की GPU implementations</strong> ने Marching Cubes को रियल टाइम स्कल्प्टिंग के लिए काफी तेज़ बना दिया है। UE5 पर 2025 की एक implementation हर GPU thread को एक cube देती है, हज़ारों को एक साथ process करते हुए। मुख्य बात यह है कि हर cube का triangulation उसके पड़ोसियों से स्वतंत्र है, जो इस algorithm को बेहद आसानी से parallel बना देता है।</p>
<p><strong>MCHex</strong> (arxiv 2511.02064, 2025) Marching Cubes को adaptive hexahedral mesh generation तक बढ़ाता है, जिसमें positive Jacobian values की गारंटी होती है, जो सिमुलेशन meshes के लिए boundary approximation सुधारता है।</p>
<p><strong>rupMC</strong> serial implementations से दर्जनों गुना तेज़ performance हासिल करता है और CPU/GPU heterogeneous architectures का इस्तेमाल करके parallel DMC variants से 4x तेज़ है।</p>
<p>मुख्य सीमा: Marching Cubes तीखे फ़ीचर्स के साथ संघर्ष करता है। एक 90-डिग्री edge गोल होकर एक smooth curve बन जाता है। टेरेन स्कल्प्टिंग के लिए यह आम तौर पर ठीक रहता है (प्राकृतिक टेरेन ज़्यादातर smooth होता है), लेकिन आर्किटेक्चरल फ़ीचर्स के लिए यह एक समस्या है।</p>
<h3 id="surface-nets" tabindex="-1">Surface Nets <a class="header-anchor" href="#surface-nets" aria-label="Permalink to &quot;Surface Nets&quot;"></a></h3>
<p>Surface Nets algorithms का एक नया परिवार है जो discrete scalar fields से ज़्यादा smooth meshes बनाता है। cube edges पर vertices रखने (Marching Cubes की तरह) के बजाय, Surface Nets हर उस cube में एक vertex रखता है जिसमें सतह होती है, फिर quads बनाने के लिए आसपास के vertices को जोड़ता है।</p>
<p>नतीजा स्वाभाविक रूप से ज़्यादा smooth होता है। एक 2024 paper (arxiv 2401.14906) ने एक हाई-परफ़ॉर्मेंस parallel Surface Nets implementation दिखाई जो sequential algorithms से एक से दो orders of magnitude तेज़ चलती है। <code>fast-surface-nets</code> Rust crate एक ही 2.5 GHz core पर छोटे lookup tables और SIMD acceleration का इस्तेमाल करके करीब 2 करोड़ triangles प्रति सेकंड बनाता है।</p>
<p><code>bevy-sculpter</code> (v0.18.0, जनवरी 2026) अपनी मुख्य meshing strategy के तौर पर Surface Nets का इस्तेमाल करता है। यह crate चार ब्रश टाइप के साथ SDF-आधारित वॉल्यूमेट्रिक स्कल्प्टिंग देता है: hard CSG (तुरंत add/remove), smooth continuous (held input के लिए), blur (सतह smoothing), और flatten (target height पर सेट)। इसमें edits के बाद उचित signed distance field properties बहाल करने के लिए Fast Sweeping Method के ज़रिए SDF redistancing भी शामिल है।</p>
<p>Surface Nets, Marching Cubes (सरल, तेज़, लेकिन binary data पर aliased meshes बनाता है) और Dual Contouring (फ़ीचर-संरक्षित लेकिन जटिल) के बीच एक अच्छा बीच का रास्ता है।</p>
<h3 id="dual-contouring" tabindex="-1">Dual Contouring <a class="header-anchor" href="#dual-contouring" aria-label="Permalink to &quot;Dual Contouring&quot;"></a></h3>
<p>Dual Contouring उन तीखे फ़ीचर्स को बनाए रखता है जो Marching Cubes और Surface Nets नहीं रख सकते। यह सिर्फ हर corner पर field के sign का नहीं, बल्कि edge intersections पर gradient (normal) का भी इस्तेमाल करके ऐसा करता है। एक QEF (Quadratic Error Function) minimization हर cell के अंदर vertex को उस position पर रखता है जो सभी edge intersection constraints को सबसे अच्छी तरह संतुष्ट करता है।</p>
<p>नतीजा: extracted mesh में तीखे edges और corners बने रहते हैं। perpendicular faces वाला एक cube एक cube ही रहता है।</p>
<p>इसका मोल जटिलता है। QEF solve में inter-cell dependencies होती हैं जो GPU parallelization को मुश्किल बनाती हैं। यह non-manifold meshes बना सकता है (वे edges जो दो से ज़्यादा polygons में शेयर होते हैं)। और implementation, Marching Cubes से ज़्यादा पेचीदा है, हालांकि Johannes Jendersie कहते हैं कि एक काम करने वाली Dual Contouring implementation करीब 200 लाइन कोड की है, जबकि एक मज़बूत Marching Cubes के लिए 500+ चाहिए।</p>
<p><strong>Cubical Marching Squares (CMS)</strong> को एक बीच के रास्ते के तौर पर प्रस्तावित किया गया है: intercell-independent (GPU-अनुकूल) रहते हुए भी कुछ feature preservation देता है।</p>
<h3 id="किसका-इस्तेमाल-करें" tabindex="-1">किसका इस्तेमाल करें <a class="header-anchor" href="#किसका-इस्तेमाल-करें" aria-label="Permalink to &quot;किसका इस्तेमाल करें&quot;"></a></h3>
<p>एक browser में player-सामने वाली टेरेन स्कल्प्टिंग के लिए:</p>
<p><strong>Surface Nets</strong> सबसे मज़बूत उम्मीदवार है। यह binary data पर Marching Cubes के aliasing artifacts के बिना smooth meshes (प्राकृतिक दिखने वाला टेरेन) बनाता है। यह रियल टाइम re-meshing के लिए काफी तेज़ है। और इसे लागू करना Dual Contouring से आसान है।</p>
<p><strong>Marching Cubes</strong> तब एक ठोस विकल्प बना रहता है जब GPU parallelism प्राथमिकता हो (हर cube स्वतंत्र है) या जब आपको सबसे ज़्यादा library support चाहिए। Reinder Nijhoff का WebGPU SDF Editor (जनवरी 2026) अपनी extraction pipeline में Marching Cubes और Surface Nets दोनों लागू करता है, जो पूरी तरह GPU पर चलता है।</p>
<p><strong>Dual Contouring</strong> उन मामलों के लिए सबसे अच्छा रखा जाता है जहां performance से ज़्यादा आर्किटेक्चरल सटीकता मायने रखती हो। browser के संदर्भ में रियल टाइम टेरेन स्कल्प्टिंग के लिए आदर्श नहीं।</p>
<h2 id="transvoxel-algorithm-lod-stitching-का-हल" tabindex="-1">Transvoxel Algorithm: LOD Stitching का हल <a class="header-anchor" href="#transvoxel-algorithm-lod-stitching-का-हल" aria-label="Permalink to &quot;Transvoxel Algorithm: LOD Stitching का हल&quot;"></a></h2>
<p>जब voxel टेरेन को अलग-अलग रिज़ॉल्यूशन पर mesh किया जाता है (player के पास LOD0, दूर LOD2), तो boundaries पर दरारें बनती हैं। हाइटमैप के लिए यह एक सरल समस्या है: कम-रिज़ॉल्यूशन वाले पड़ोसी से मिलाने के लिए edge vertices को interpolate करें। हमारा मौजूदा <code>chunk.ts</code> ठीक यही <code>stitchEdge()</code> में करता है।</p>
<p>वॉल्यूमेट्रिक टेरेन के लिए, समस्या कहीं ज़्यादा कठिन है। LOD0 पर एक गुफा का मुंह boundary पर 30 triangles बना सकता है। वही region LOD1 पर पूरी तरह अलग topology के साथ 8 triangles बना सकता है। इनके बीच linear interpolation का कोई सरल तरीका नहीं है।</p>
<p>Eric Lengyel का Transvoxel Algorithm (2009) इसे &quot;transition cells&quot; से हल करता है। दो LOD levels के बीच की boundary पर, algorithm 9 हाई-रिज़ॉल्यूशन samples पर विचार करता है (8 cube corners के बजाय), जो 512 संभावित कॉन्फ़िगरेशन बनाते हैं जो 73 equivalence classes में आते हैं। हर class एक पूर्वनिर्धारित triangle pattern से मैप होता है जो दोनों रिज़ॉल्यूशन के बीच की खाली जगह को पूरी तरह भरता है।</p>
<p>यह algorithm स्थानीय voxel data पर काम करता है, इसलिए एक बदले हुए region को फिर से triangulate करना तेज़ है। यह रियल टाइम स्कल्प्टिंग के लिए ज़रूरी है: जब कोई player किसी LOD boundary के पास टेरेन edit करे, तो सिर्फ transition cells को फिर से बनाने की ज़रूरत होती है।</p>
<p>एक Rust implementation <code>transvoxel</code> crate के तौर पर मौजूद है। मूल lookup tables transvoxel.org पर उपलब्ध हैं।</p>
<h2 id="ब्रश-का-गणित" tabindex="-1">ब्रश का गणित <a class="header-anchor" href="#ब्रश-का-गणित" aria-label="Permalink to &quot;ब्रश का गणित&quot;"></a></h2>
<p>एक स्कल्प्टिंग ब्रश एक function है जो किसी target point के आसपास एक radius के भीतर scalar field values को बदलता है। गणित सभी implementations में हैरानी की हद तक एक जैसा है, Blender से लेकर Unreal Engine से लेकर runtime game systems तक।</p>
<h3 id="falloff-functions" tabindex="-1">Falloff Functions <a class="header-anchor" href="#falloff-functions" aria-label="Permalink to &quot;Falloff Functions&quot;"></a></h3>
<p>ब्रश का falloff तय करता है कि edit की strength केंद्र से किनारे तक कैसे घटती है। Blender 5.1 इन मानक profiles को परिभाषित करता है:</p>
<p><strong>Smooth:</strong> <code>f(d) = 3d^2 - 2d^3</code> (Hermite interpolation, हमारी noise.ts जैसा ही smoothstep)</p>
<p><strong>Sphere:</strong> केंद्र पर तेज़, border के पास तीखा falloff। इसका अनुमान <code>f(d) = sqrt(1 - d^2)</code> के तौर पर लगाया जाता है।</p>
<p><strong>Sharp:</strong> <code>f(d) = (1 - d)^n</code> जहां n &gt; 2। एक बारीक point बनाता है।</p>
<p><strong>Linear:</strong> <code>f(d) = 1 - d</code> जहां d केंद्र से normalized distance है (केंद्र पर 0, किनारे पर 1)।</p>
<p><strong>Constant:</strong> <code>f(d) = 1</code> जब <code>d &lt; 1</code>, ब्रश की boundary पर hard cutoff।</p>
<p><strong>Inverse Square:</strong> smooth और sphere के बीच hybrid, एक प्राकृतिक &quot;मिट्टी जैसी&quot; feel के लिए।</p>
<p>सभी मामलों में, <code>d = distance_to_center / brush_radius</code>, जिसे [0, 1] पर clamp किया जाता है। falloff value ब्रश की strength को गुणा करके हर पॉइंट पर असली field modification बनाती है।</p>
<h3 id="falloff-space" tabindex="-1">Falloff Space <a class="header-anchor" href="#falloff-space" aria-label="Permalink to &quot;Falloff Space&quot;"></a></h3>
<p>Blender <strong>sphere falloff</strong> (distance 3D world space में गणना की गई) और <strong>projected falloff</strong> (distance 2D screen space में गणना की गई) के बीच फ़र्क करता है। Projected falloff का मतलब है कि दो पॉइंट जो स्क्रीन पर पास दिखते हैं, एक-दूसरे को बराबर प्रभावित करते हैं, भले ही वे world space में बहुत अलग depth पर हों। टेरेन स्कल्प्टिंग के लिए, 3D world space falloff आम तौर पर ज़्यादा intuitive होता है।</p>
<h3 id="मुख्य-ब्रश-ऑपरेशन" tabindex="-1">मुख्य ब्रश ऑपरेशन <a class="header-anchor" href="#मुख्य-ब्रश-ऑपरेशन" aria-label="Permalink to &quot;मुख्य ब्रश ऑपरेशन&quot;"></a></h3>
<p><strong>Raise/Lower (Displacement):</strong> ब्रश radius के भीतर scalar field में जोड़ें या घटाएं, falloff से weighted। हाइटमैप के लिए: <code>height[i] += strength * falloff(d)</code>। SDFs के लिए: <code>sdf[i] -= strength * falloff(d)</code> (घटाने से मटेरियल ज़्यादा ठोस होता है, सतह उठती है)।</p>
<p><strong>Smooth (Laplacian):</strong> हर value को उसके पड़ोसियों के औसत से बदलें, falloff से weighted। यह detail मिटाता है और noise कम करता है। Laplacian filter एक छोटा kernel sample करता है (हाइटमैप के लिए 3x3, volumes के लिए 3x3x3) और mean की ओर ब्लेंड करता है। HC (Humphrey's Classes) smoothing एक variant है जो raw Laplacian से volume को बेहतर बनाए रखता है।</p>
<p><strong>Flatten:</strong> field value को एक target height (या SDF space में distance) पर सेट करें, falloff से ब्लेंड करते हुए। target आम तौर पर stroke शुरू होने पर ब्रश के केंद्र पर sample किया जाता है, फिर स्थिर रखा जाता है। यह सपाट plateaus बनाता है।</p>
<p><strong>Pinch/Inflate:</strong> vertices को surface normal की ओर या उससे दूर ले जाएं। SDF space में, यह gradient की दिशा में displace करने के बराबर है।</p>
<p><strong>Grab:</strong> field के एक region को translate करें, जैसे आप मिट्टी खींच रहे हों। displacement vector, world space में प्रोजेक्ट किया गया mouse delta है, जो radius के भीतर field values पर लागू होता है।</p>
<p><strong>Noise:</strong> ब्रश radius के भीतर field में procedural noise जोड़ें। smooth सतहों को खुरदरा करने के लिए उपयोगी।</p>
<p><strong>Stamp:</strong> एक 2D ग्रेस्केल इमेज को displacement के तौर पर लागू करें, उसे cursor के नीचे की सतह पर प्रोजेक्ट करते हुए। Unreal Engine का Landscape tool टेरेन ब्रश के लिए इसका समर्थन करता है।</p>
<h3 id="adaptive-tessellation" tabindex="-1">Adaptive Tessellation <a class="header-anchor" href="#adaptive-tessellation" aria-label="Permalink to &quot;Adaptive Tessellation&quot;"></a></h3>
<p><code>sculpt-3D</code> (React + Three.js browser sculpting) adaptive tessellation लागू करता है: जैसे-जैसे ब्रश mesh पर घूमता है, ब्रश के केंद्र के पास के triangles subdivide होते हैं ताकि deformation के लिए ज़्यादा vertices मिलें। यह &quot;low-poly stretch&quot; समस्या को रोकता है जहां एक मोटा mesh स्कल्प्टिंग से विकृत हो जाता है। subdivision एकसमान triangle quality के लिए symmetric splitting का इस्तेमाल करता है।</p>
<p>वॉल्यूमेट्रिक systems के लिए, adaptive tessellation की उसी तरह ज़रूरत नहीं होती क्योंकि mesh field से फिर से बनता है। इसके बजाय, आप उसी असर के लिए edits के पास स्थानीय रूप से voxel रिज़ॉल्यूशन बढ़ा सकते हैं (adaptive octrees)।</p>
<h2 id="sdf-स्कल्प्टिंग-dreams-का-तरीका" tabindex="-1">SDF स्कल्प्टिंग: Dreams का तरीका <a class="header-anchor" href="#sdf-स्कल्प्टिंग-dreams-का-तरीका" aria-label="Permalink to &quot;SDF स्कल्प्टिंग: Dreams का तरीका&quot;"></a></h2>
<p>Media Molecule का Dreams (PS4, 2020) अब तक शिप किया गया सबसे महत्वाकांक्षी इन-गेम स्कल्प्टिंग सिस्टम है। Alex Evans ने SIGGRAPH 2015 में इसका तकनीकी तरीका पेश किया।</p>
<h3 id="रिप्रेज़ेंटेशन" tabindex="-1">रिप्रेज़ेंटेशन <a class="header-anchor" href="#रिप्रेज़ेंटेशन" aria-label="Permalink to &quot;रिप्रेज़ेंटेशन&quot;"></a></h3>
<p>Dreams ज्योमेट्री को 83^3 fp16 volume texture blocks में एक compound SDF function के तौर पर स्टोर करता है। हर sculpt 1 से 100,000 &quot;edits&quot; की एक सूची है, जहां हर edit एक प्रिमिटिव shape (sphere, cube, cylinder, cone, ellipsoid, torus, वगैरह) और एक blend mode के साथ एक CSG operation (add, subtract, color) है।</p>
<p>Blend modes soft-max और soft-min functions का इस्तेमाल करते हैं। एक &quot;soft&quot; blend प्रिमिटिव्स के बीच गोल transitions बनाता है (जैसे मिट्टी को एक साथ दबाया गया हो)। एक &quot;hard&quot; blend साफ़ boolean cuts बनाता है। blend radius user के नियंत्रण में होता है।</p>
<h3 id="रेंडरिंग" tabindex="-1">रेंडरिंग <a class="header-anchor" href="#रेंडरिंग" aria-label="Permalink to &quot;रेंडरिंग&quot;"></a></h3>
<p>Dreams एक triangle mesh extract नहीं करता। इसके बजाय, यह एक custom point-cloud renderer (&quot;flecks&quot;) का इस्तेमाल करके सीधे SDF से render करता है। हर fleck surface normal के साथ एक छोटी disc है। सतहें खोजने के लिए SDF को sample किया जाता है, और उन पर flecks बांटे जाते हैं। यह mesh extraction की रुकावट को पूरी तरह टाल देता है लेकिन एक custom renderer की ज़रूरत होती है।</p>
<p>एक Three.js/WebGL वर्ल्ड के लिए, यह तरीका सीधे लागू नहीं होता। हमें meshes extract करनी होंगी। लेकिन CSG edit list वाली अवधारणा undo/redo और नेटवर्क सिंक्रोनाइज़ेशन के लिए बहुत प्रासंगिक है।</p>
<h2 id="mike-turitzin-का-dynamic-sdf-engine-2026" tabindex="-1">Mike Turitzin का Dynamic SDF Engine (2026) <a class="header-anchor" href="#mike-turitzin-का-dynamic-sdf-engine-2026" aria-label="Permalink to &quot;Mike Turitzin का Dynamic SDF Engine (2026)&quot;"></a></h2>
<p>Mike Turitzin द्वारा अभी विकसित हो रहा एक game engine dynamic SDFs को मुख्य रिप्रेज़ेंटेशन के तौर पर इस्तेमाल करता है। यह engine इनका समर्थन करता है:</p>
<p><strong>गेमप्ले के दौरान विस्तृत बदलाव:</strong> smooth तरीके से या तीखे edges के साथ मटेरियल जोड़ना और हटाना। non-destructive बदलाव जैसे holes को हिलाना या अस्थायी tunnels बनाना जो player के पीछे गायब हो जाते हैं।</p>
<p><strong>Brick maps और brick atlases</strong> sparse caching के लिए। पूरे SDF field को एक dense 3D ग्रिड में स्टोर करने के बजाय, field को &quot;bricks&quot; (छोटी 3D tiles) में बांटा जाता है। सिर्फ वे bricks आवंटित होते हैं जिनमें surface boundary होती है। यह ज़्यादातर खाली या ठोस स्पेस वाले दृश्यों के लिए मेमोरी को काफ़ी कम कर देता है।</p>
<p><strong>Geometry clipmaps</strong> (Losasso &amp; Hoppe, SIGGRAPH 2004) LOD के लिए। बढ़ते रिज़ॉल्यूशन पर nested regular grids camera की position को घेरते हैं। सबसे अंदरूनी ग्रिड का रिज़ॉल्यूशन सबसे बारीक होता है; बाहरी ग्रिड क्रमशः मोटे होते हैं। यह विशाल स्पेस का समर्थन करते हुए मेमोरी में भारी कमी देता है। Clipmaps जैसे-जैसे camera हिलता है incrementally अपडेट होते हैं, जो उन्हें streaming open worlds के लिए कारगर बनाता है।</p>
<p><strong>Physics और collision</strong> सीधे SDF के विरुद्ध काम करते हैं। Sphere-tracing (step size के तौर पर SDF distance के साथ ray marching) कारगर raycasting देता है। Collision detection surface normal के तौर पर SDF gradient और penetration depth के तौर पर distance value का इस्तेमाल करता है।</p>
<h2 id="teardown-बड़े-पैमाने-पर-voxel-destruction" tabindex="-1">Teardown: बड़े पैमाने पर Voxel Destruction <a class="header-anchor" href="#teardown-बड़े-पैमाने-पर-voxel-destruction" aria-label="Permalink to &quot;Teardown: बड़े पैमाने पर Voxel Destruction&quot;"></a></h2>
<p>Teardown (Voxagon) इस spectrum का दूसरा छोर दर्शाता है: वर्ल्ड में हर ऑब्जेक्ट एक voxel volume है जिसे टुकड़े-टुकड़े नष्ट किया जा सकता है।</p>
<h3 id="आर्किटेक्चर" tabindex="-1">आर्किटेक्चर <a class="header-anchor" href="#आर्किटेक्चर" aria-label="Permalink to &quot;आर्किटेक्चर&quot;"></a></h3>
<p>Objects नियमित spacing पर voxel grids के तौर पर स्टोर होते हैं। engine रेंडरिंग के लिए Marching Cubes या SDFs का इस्तेमाल नहीं करता। इसके बजाय, यह fragment shaders में एक संशोधित DDA (Digital Differential Analyzer) algorithm का इस्तेमाल करके voxels को सीधे ray-trace करता है, जो OpenGL 3.3 पर बना है। Mipmaps एक dense octree structure बनाते हैं ताकि ray intersection के दौरान खाली स्पेस को पार करना तेज़ हो।</p>
<p>हर ऑब्जेक्ट के लिए, engine उसके oriented bounding box (OBB) को rasterize करता है और voxel intersections खोजने के लिए उसमें से एक ray trace करता है। सिर्फ OBB के backfaces render होते हैं, जिससे camera bounding volume में clip कर सकता है।</p>
<h3 id="destruction-synchronization-मल्टीप्लेयर" tabindex="-1">Destruction Synchronization (मल्टीप्लेयर) <a class="header-anchor" href="#destruction-synchronization-मल्टीप्लेयर" aria-label="Permalink to &quot;Destruction Synchronization (मल्टीप्लेयर)&quot;"></a></h3>
<p>Teardown का मार्च 2026 का मल्टीप्लेयर अपडेट एक semi-deterministic तरीका इस्तेमाल करता है। Structural destruction (holes काटना, ownership बदलना, joints फिर से जोड़ना) एक reliable network stream पर fixed-point integer math के ज़रिए संभाला जाता है। सभी clients वही deterministic commands चलाते हैं और वही world state पर पहुंचते हैं। Non-structural बदलाव (मलबा, particles) unreliable state synchronization इस्तेमाल करते हैं।</p>
<p>यह हमारे मल्टीप्लेयर वर्ल्ड के लिए एक ज़रूरी बात है: टेरेन edits deterministic होने चाहिए। अगर Player A एक पहाड़ स्कल्प्ट करे, तो सभी clients को वही field data से वही mesh बनाना होगा। edit commands (ब्रश position, radius, strength, operation type) authoritative data होने चाहिए, नतीजे वाला mesh नहीं।</p>
<h2 id="alice-sdf-compression-और-csg-trees" tabindex="-1">ALICE-SDF: Compression और CSG Trees <a class="header-anchor" href="#alice-sdf-compression-और-csg-trees" aria-label="Permalink to &quot;ALICE-SDF: Compression और CSG Trees&quot;"></a></h2>
<p>ALICE-SDF (Adaptive Lightweight Implicit Compression Engine, v1.3.0 मार्च 2026) SDF-आधारित spatial data की एक Rust implementation देता है जो polygon meshes के मुकाबले 10-1000x compression करता है। यह इनका समर्थन करता है:</p>
<p><strong>126 building blocks:</strong> 72 primitives, 24 operations, 7 transforms, और 23 modifiers। Smooth blending operations (union, subtraction, intersection), hard-edge bevels और stepped CSG transitions के लिए chamfer और stairs blends।</p>
<p><strong>CSG tree diff/patch</strong> undo/redo और नेटवर्क सिंक्रोनाइज़ेशन के लिए। यह मल्टीप्लेयर स्कल्प्टिंग के लिए मुख्य फ़ीचर है: पूरी field state भेजने के बजाय, आप दो CSG trees के बीच का structural diff भेजते हैं। client नई state को फिर से बनाने के लिए patch लागू करता है। यह raw voxel data को delta-compress करने से कहीं ज़्यादा bandwidth-कारगर है।</p>
<p><strong>CSG tree optimization</strong> जिसमें identity transform हटाना, nested transform merging, और modifier demotion शामिल है। यह जैसे-जैसे edits जमा होते हैं, tree को compact रखता है।</p>
<p><strong>Mesh generation</strong> Marching Cubes और Dual Contouring दोनों के ज़रिए। Physics collision detection सीधे SDF के विरुद्ध काम करता है।</p>
<p><strong>WebAssembly support</strong> browser integration को मुमकिन बनाता है। engine Rust में WASM bindings के साथ लिखा गया है, जो इसे एक Three.js application के लिए एक व्यावहारिक विकल्प बनाता है।</p>
<h2 id="टेरेन-के-लिए-webgpu-compute" tabindex="-1">टेरेन के लिए WebGPU Compute <a class="header-anchor" href="#टेरेन-के-लिए-webgpu-compute" aria-label="Permalink to &quot;टेरेन के लिए WebGPU Compute&quot;"></a></h2>
<p>WebGPU अब 2025 के अंत तक सभी प्रमुख browsers में उपलब्ध है। Chrome 113+, Edge 113+, Firefox 141+, और Safari 26+ सभी इसे enabled के साथ शिप करते हैं। यह compute shader pipelines खोलता है जो पहले सिर्फ GPU-only थीं।</p>
<h3 id="performance" tabindex="-1">Performance <a class="header-anchor" href="#performance" aria-label="Permalink to &quot;Performance&quot;"></a></h3>
<p>WebGPU compute shaders भारी parallelization के ज़रिए CPU methods से करीब 100x तेज़ टेरेन बनाते हैं। GPU एक साथ हज़ारों calculations चलाता है, और टेरेन generation लगभग पूरी तरह parallel है (हर vertex/voxel स्वतंत्र है)।</p>
<p>काम तीन tiers में संगठित होता है: Dispatch Level (GPU के पार workload बांटना), Workgroup Level (एक processing unit के भीतर shared memory), और Thread Level (अलग-अलग calculations)। WGSL (WebGPU Shading Language) shader language है।</p>
<h3 id="रियल-टाइम-टेरेन-स्कल्प्टिंग-pipeline" tabindex="-1">रियल टाइम टेरेन स्कल्प्टिंग Pipeline <a class="header-anchor" href="#रियल-टाइम-टेरेन-स्कल्प्टिंग-pipeline" aria-label="Permalink to &quot;रियल टाइम टेरेन स्कल्प्टिंग Pipeline&quot;"></a></h3>
<p>एक WebGPU स्कल्प्टिंग pipeline ऐसी दिखेगी:</p>
<ol>
<li>
<p><strong>ब्रश application</strong> (compute shader): ब्रश radius के भीतर scalar field values अपडेट करें। हर thread एक voxel संभालता है। एक uniform buffer से ब्रश parameters (position, radius, strength, falloff type, operation) पढ़ता है और modification लागू करता है।</p>
</li>
<li>
<p><strong>Mesh extraction</strong> (compute shader): बदले हुए region पर Surface Nets या Marching Cubes चलाएं। Nijhoff का WebGPU SDF Editor इसे एक multi-stage pipeline के तौर पर लागू करता है: 16,384 cells के पार space partitioning, octree-आधारित cell splitting, फिर surface extraction।</p>
</li>
<li>
<p><strong>Vertex buffer अपडेट</strong> (GPU-side): extracted vertices को CPU memory से होकर गए बिना सीधे एक render buffer में लिखें।</p>
</li>
<li>
<p><strong>Normal computation</strong> (compute shader): mesh से या SDF gradient से vertex normals की गणना करें।</p>
</li>
<li>
<p><strong>Render</strong> (मानक pipeline): mesh को मानक PBR materials के साथ draw करें।</p>
</li>
</ol>
<p>चरण 1-4 सभी GPU पर बिना किसी data के JavaScript में लौटे चल सकते हैं। CPU को सिर्फ हर frame पर ब्रश parameters भेजने की ज़रूरत होती है।</p>
<h3 id="webgpu-sdf-editor" tabindex="-1">WebGPU SDF Editor <a class="header-anchor" href="#webgpu-sdf-editor" aria-label="Permalink to &quot;WebGPU SDF Editor&quot;"></a></h3>
<p>Reinder Nijhoff का WebGPU SDF Editor (जनवरी 2026) Chrome में चलते हुए इस तरीके को दिखाता है। यह छह primitives (cone, cylinder, capsule, torus, box, sphere), configurable smooth blending के साथ तीन blend operations (union, subtraction, intersection), और hierarchical scene graphs का समर्थन करता है। हर primitive एक ही GPU buffer में 112 bytes लेता है।</p>
<p>रेंडरिंग pipeline ambient occlusion और temporal anti-aliasing के लिए 1,024 shadow maps का इस्तेमाल करता है। यह high-end GPUs पर interactive framerates पर चलता है।</p>
<h2 id="हाइटमैप-स्कल्प्टिंग-सरल-रास्ता" tabindex="-1">हाइटमैप स्कल्प्टिंग: सरल रास्ता <a class="header-anchor" href="#हाइटमैप-स्कल्प्टिंग-सरल-रास्ता" aria-label="Permalink to &quot;हाइटमैप स्कल्प्टिंग: सरल रास्ता&quot;"></a></h2>
<p>अगर गुफा और overhang support ज़रूरी नहीं है, तो हाइटमैप स्कल्प्टिंग पूरी वॉल्यूमेट्रिक pipeline को टाल देती है। ज़्यादातर शिप किए गए games टेरेन editing को ऐसे ही संभालते हैं।</p>
<h3 id="runtime-implementation-pattern" tabindex="-1">Runtime Implementation Pattern <a class="header-anchor" href="#runtime-implementation-pattern" aria-label="Permalink to &quot;Runtime Implementation Pattern&quot;"></a></h3>
<p>Unity Runtime Terrain (JohannHotzel, जनवरी 2026) मानक pattern दिखाता है:</p>
<ol>
<li><strong>Raycast</strong> camera से mouse position के ज़रिए टेरेन hit point खोजने के लिए।</li>
<li><strong>Hit point को मैप करें</strong> हाइटमैप coordinates पर।</li>
<li><strong>ब्रश लागू करें</strong> आसपास के हाइटमैप values पर, falloff से weighted।</li>
<li><strong>Mesh अपडेट करें</strong> बदले हुए हाइटमैप से vertex Y positions सेट करके।</li>
<li><strong>Physics collider फिर से बनाएं</strong> नए mesh से मिलाने के लिए।</li>
</ol>
<p>हमारे Three.js टेरेन के लिए, चरण 1-4 सीधे मौजूदा आर्किटेक्चर पर मैप होते हैं। <code>Chunk</code> class पहले से ही हाइटमैप स्टोर करती है और उनसे meshes बनाती है। स्कल्प्टिंग जोड़ने का मतलब होगा:</p>
<ul>
<li>chunk meshes के विरुद्ध एक raycasting सिस्टम (Three.js <code>Raycaster</code>)</li>
<li>ब्रश application functions जो <code>chunk.heightmap</code> values बदलते हैं</li>
<li>Mesh vertex अपडेट (Y positions सेट करें, normals फिर से calculate करें)</li>
<li>प्रभावित region के लिए Splat map फिर से calculate करना (ताकि टेक्सचर ब्लेंडिंग नई slope/height दर्शाए)</li>
<li>मौजूदा WebSocket protocol के ज़रिए दूसरे clients को edit का नेटवर्क broadcast (ब्रश position, radius, strength, operation)</li>
</ul>
<h3 id="clipmap-का-तरीका" tabindex="-1">Clipmap का तरीका <a class="header-anchor" href="#clipmap-का-तरीका" aria-label="Permalink to &quot;Clipmap का तरीका&quot;"></a></h3>
<p>Landow.dev हाइटमैप टेरेन के लिए एक &quot;wandering clipmap&quot; बताता है: variable subdivision density वाला एक ही mesh जो player का पीछा करता है। हाइटमैप को अलग-अलग LOD levels वाली अलग meshes में chunk करने (जो हम अभी करते हैं) के बजाय, clipmap एक continuous mesh है जो camera के पास dense और किनारों पर मोटा है।</p>
<p>यह LOD stitching को पूरी तरह खत्म कर देता है। mesh में बस वहां ज़्यादा triangles होते हैं जहां आपको चाहिए और जहां नहीं चाहिए वहां कम। इसका मोल यह है कि स्कल्प्टिंग के लिए एक बड़े mesh को अपडेट करना पड़ता है, अलग chunks नहीं, जो बड़े edits के लिए महंगा हो सकता है।</p>
<h3 id="non-destructive-sdf-हाइटमैप" tabindex="-1">Non-Destructive SDF हाइटमैप <a class="header-anchor" href="#non-destructive-sdf-हाइटमैप" aria-label="Permalink to &quot;Non-Destructive SDF हाइटमैप&quot;"></a></h3>
<p>Landow.dev एक तकनीक भी बताता है जहां हाइटमैप खुद एक SDF composition से बनता है। Shape instances (spheres, boxes, noise functions) एक compute shader में CSG operations का इस्तेमाल करके compose होते हैं, और output को एक हाइटमैप के तौर पर sample किया जाता है। यह हाइटमैप रेंडरिंग की सरलता बनाए रखते हुए non-destructive editing देता है (आप किसी भी समय किसी भी shape instance को हिला या मिटा सकते हैं)।</p>
<p>यह एक दमदार hybrid है: data रिप्रेज़ेंटेशन वॉल्यूमेट्रिक (SDF CSG tree) है, लेकिन रेंडरिंग का रास्ता एक मानक हाइटमैप mesh है। आपको SDF की तरफ़ से undo/redo और नेटवर्क-अनुकूल edit operations मिलते हैं, और हाइटमैप की तरफ़ से सरल रेंडरिंग और physics। सीमा बनी रहती है: कोई गुफाएं या overhangs नहीं।</p>
<h2 id="बड़े-वर्ल्ड-के-लिए-sparse-voxel-octrees" tabindex="-1">बड़े वर्ल्ड के लिए Sparse Voxel Octrees <a class="header-anchor" href="#बड़े-वर्ल्ड-के-लिए-sparse-voxel-octrees" aria-label="Permalink to &quot;बड़े वर्ल्ड के लिए Sparse Voxel Octrees&quot;"></a></h2>
<p>Dense 3D grids scale नहीं करते। हर तरफ़ 1 km वाला वर्ल्ड 0.5m रिज़ॉल्यूशन पर 8 अरब voxels मांगेगा। Sparse Voxel Octrees (SVOs) इसे space को बार-बार subdivide करके और सिर्फ़ उन octants के लिए storage आवंटित करके हल करते हैं जिनमें surface boundary होती है।</p>
<p>एक SVO स्वाभाविक रूप से hierarchical LOD देता है: किसी भी पॉइंट पर tree की गहराई effective रिज़ॉल्यूशन तय करती है। player के पास, tree पूरी तरह फैला होता है (अधिकतम detail)। दूर, यह एक मोटे level पर कटा होता है।</p>
<p>रेंडरिंग के लिए, SVOs को सीधे ray-trace किया जा सकता है (कोई mesh extraction की ज़रूरत नहीं)। एक GPU ray marcher हर tree level पर axis-aligned boxes के साथ rays को intersect करता है, खाली subtrees को पूरी तरह छोड़ते हुए। यह chunk-आधारित रेंडरिंग की overdraw समस्याओं को खत्म करता है और greedy meshing artifacts को टालता है।</p>
<p>AdamYuan का Vulkan-आधारित SVO builder काफ़ी performance दिखाता है: एक GTX 1660 Ti पर 2^10 रिज़ॉल्यूशन पर Crytek Sponza के लिए 19ms build time।</p>
<p>स्कल्प्टिंग के लिए, SVO modification कारगर है: सिर्फ़ ब्रश radius के भीतर leaf nodes अपडेट करने की ज़रूरत होती है, और tree structure अलग-अलग रिज़ॉल्यूशन को स्वाभाविक रूप से संभालता है। जहां player स्कल्प्ट करता है वहां detail जोड़ना (higher रिज़ॉल्यूशन पर nodes splitting) और जहां वे smooth करते हैं वहां detail हटाना (lower रिज़ॉल्यूशन पर nodes merging) data structure से अपने आप निकल आता है।</p>
<p>Browser deployment के लिए चुनौती यह है कि WebGL compute shaders का समर्थन नहीं करता, और जबकि WebGPU करता है, SVO construction और traversal algorithms को WGSL में लागू करना जटिल है।</p>
<h2 id="मल्टीप्लेयर-स्कल्प्टिंग-के-लिए-नेटवर्क-सिंक्रोनाइज़ेशन" tabindex="-1">मल्टीप्लेयर स्कल्प्टिंग के लिए नेटवर्क सिंक्रोनाइज़ेशन <a class="header-anchor" href="#मल्टीप्लेयर-स्कल्प्टिंग-के-लिए-नेटवर्क-सिंक्रोनाइज़ेशन" aria-label="Permalink to &quot;मल्टीप्लेयर स्कल्प्टिंग के लिए नेटवर्क सिंक्रोनाइज़ेशन&quot;"></a></h2>
<p>हमारे वर्ल्ड में पहले से ही Cloudflare Durable Objects (<code>world-chunk-do.ts</code>) के ज़रिए मल्टीप्लेयर है। स्कल्प्टिंग जोड़ने का मतलब है सभी जुड़े clients के पार टेरेन modifications को सिंक्रोनाइज़ करना।</p>
<h3 id="delta-compression" tabindex="-1">Delta Compression <a class="header-anchor" href="#delta-compression" aria-label="Permalink to &quot;Delta Compression&quot;"></a></h3>
<p>Raw voxel data भेजना महंगा है। Oulu University के 2024 के एक अध्ययन ने delta-encoding को DEFLATE compression के साथ मिलाकर 2-8x payload सुधार हासिल किया, voxel updates को प्रति voxel एक byte से कम में पैक करते हुए। SDEC codec bit-packed delta encoding दिखाता है जो generic serialization के 1114 bytes के मुकाबले 259-byte औसत packets बनाता है।</p>
<h3 id="operation-आधारित-sync-सुझावित" tabindex="-1">Operation-आधारित Sync (सुझावित) <a class="header-anchor" href="#operation-आधारित-sync-सुझावित" aria-label="Permalink to &quot;Operation-आधारित Sync (सुझावित)&quot;"></a></h3>
<p>Field state सिंक्रोनाइज़ करने के बजाय, operations सिंक्रोनाइज़ करें। हर स्कल्प्टिंग action एक message बन जाता है:</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TerrainEditMsg</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> MsgType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">TerrainEdit</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  brush</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    position</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    radius</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    strength</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    falloff</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'smooth'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'linear'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'sharp'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'constant'</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    operation</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'raise'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'lower'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'smooth'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'flatten'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'noise'</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    targetHeight</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">?:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>server इसे सभी clients को broadcast करता है, और हर client अपने स्थानीय टेरेन data पर वही deterministic ब्रश operation लागू करता है। यह वही तरीका है जो Teardown structural destruction के लिए इस्तेमाल करता है: एक reliable stream पर deterministic commands।</p>
<p>ALICE-SDF का CSG tree diff/patch इसे और आगे ले जाता है: अलग-अलग ब्रश strokes के बजाय, diff पूरे CSG tree में structural बदलाव को दर्शाता है। यह नेटवर्क के पार कारगर undo/redo को मुमकिन बनाता है (inverse patch भेजें) और देर से जुड़ने वाले clients operation log को replay करके पूरी world state फिर से बना सकते हैं।</p>
<h3 id="priority-और-throttling" tabindex="-1">Priority और Throttling <a class="header-anchor" href="#priority-और-throttling" aria-label="Permalink to &quot;Priority और Throttling&quot;"></a></h3>
<p>जुड़े players के पास के टेरेन edits हाई-प्रायोरिटी होने चाहिए (तुरंत broadcast)। किसी भी player से दूर के edits को batch करके कम frequency पर भेजा जा सकता है। Enshrouded की voxel networking इस pattern का इस्तेमाल करती है: player के पास के टेरेन के लिए 60Hz updates, background regions के लिए 10Hz।</p>
<p>टेरेन update messages के लिए wire पर ZSTD compression packet sizes को 60% तक कम कर देता है।</p>
<h2 id="collaborative-स्कल्प्टिंग-concurrent-edits" tabindex="-1">Collaborative स्कल्प्टिंग: Concurrent Edits <a class="header-anchor" href="#collaborative-स्कल्प्टिंग-concurrent-edits" aria-label="Permalink to &quot;Collaborative स्कल्प्टिंग: Concurrent Edits&quot;"></a></h2>
<p>जब कई players एक ही region को एक साथ स्कल्प्ट करें, तो आपको conflict resolution चाहिए। <code>cSculpt</code> (CNR Visual Computing Lab, 2016) ने इसे एक multiresolution merge algorithm से हल किया। हर edit को कई scales पर दर्शाया जाता है, और concurrent overlapping edits को उनके multiresolution representations को ब्लेंड करके merge किया जाता है।</p>
<p>हमारे मकसद के लिए, एक सरल तरीका काम करता है: server ordering के साथ last-write-wins। Durable Object हर edit को timestamp करता है और उन्हें क्रम में broadcast करता है। सभी clients edits को एक ही sequence में लागू करते हैं। चूंकि ब्रश strokes छोटे, स्थानीय, और additive/subtractive होते हैं, थोड़े पुनः-क्रमबद्ध concurrent edits का दृश्य नतीजा आम तौर पर &quot;सही&quot; क्रम से अलग नहीं दिखता।</p>
<h2 id="inst-sculpt-neural-sdf-editing-अनुसंधान-का-अग्रिम-मोर्चा" tabindex="-1">INST-Sculpt: Neural SDF Editing (अनुसंधान का अग्रिम मोर्चा) <a class="header-anchor" href="#inst-sculpt-neural-sdf-editing-अनुसंधान-का-अग्रिम-मोर्चा" aria-label="Permalink to &quot;INST-Sculpt: Neural SDF Editing (अनुसंधान का अग्रिम मोर्चा)&quot;"></a></h2>
<p>INST-Sculpt (arxiv 2502.02891, फ़रवरी 2025) neural SDFs के stroke-आधारित editing को मुमकिन बनाता है। Users सतह पर strokes बनाते हैं, और सिस्टम stroke के रास्ते के आसपास tubular neighborhoods के साथ अंतर्निहित neural field को deform करता है। Custom ब्रश profiles (configurable cross-sections) deformation के आकार को नियंत्रित करते हैं।</p>
<p>यह AI-जनित टेरेन के लिए दिलचस्प है: अगर base वर्ल्ड को एक neural SDF (एक छोटा neural network जो 3D coordinates को signed distance पर मैप करता है) के तौर पर दर्शाया जाए, तो स्कल्प्टिंग explicit voxel data के बजाय network weights बदलती है। रिप्रेज़ेंटेशन बेहद compact होता है (पूरे वर्ल्ड के लिए कुछ MB) लेकिन evaluation एक lookup table से ज़्यादा महंगा होता है।</p>
<p>यह अनुसंधान-चरण की तकनीक है। consumer hardware पर neural SDFs की inference लागत आज रियल टाइम game इस्तेमाल के लिए बहुत ज़्यादा है। लेकिन इस पर नज़र रखना सही है, खासकर जैसे-जैसे WebGPU shader क्षमताएं सुधरती हैं और model inference तेज़ होता है।</p>
<h2 id="world-creator-2026-3-commercial-terrain-का-अत्याधुनिक-स्तर" tabindex="-1">World Creator 2026.3: Commercial Terrain का अत्याधुनिक स्तर <a class="header-anchor" href="#world-creator-2026-3-commercial-terrain-का-अत्याधुनिक-स्तर" aria-label="Permalink to &quot;World Creator 2026.3: Commercial Terrain का अत्याधुनिक स्तर&quot;"></a></h2>
<p>World Creator (BiteTheBytes, मार्च 2026) टेरेन authoring tools के लिए commercial अत्याधुनिक स्तर दर्शाता है। Version 2026.3 ने automatic terrain adaptation (टेरेन रखे गए objects के अनुरूप ढलता है) के साथ GPU-आधारित टेरेन generation, LOD optimization के लिए camera-केंद्रित object distribution, और real-world elevation data import (GeoTIFF, HGT, DTED) जोड़ा।</p>
<p>उसके बाद से, World Creator 2026.4 (28 अप्रैल, 2026) ने numerical fields में mathematical expressions, hero objects को सतह में बैठाने के लिए terrain normal blending, पूरा decal support, और VRAM scaling जोड़ा जो उपलब्ध GPU memory के हिसाब से अधिकतम object count को समायोजित करता है। BiteTheBytes ने एक मुफ़्त Community Edition भी शिप किया जो feature-complete है लेकिन export-disabled है, असल में एक असीमित trial।</p>
<p>उनका तरीका सभी टेरेन operations के लिए GPU compute इस्तेमाल करता है: erosion simulation, river carving, texture painting। ब्रश tools रियल टाइम viewport feedback के साथ GPU-accelerated हैं। यह ऊपर बताई गई WebGPU compute pipeline से मेल खाता है, जो desktop GPUs पर चलती है।</p>
<h2 id="हमने-पहले-ही-क्या-बनाया-है-24-spikes-और-एक-production-world" tabindex="-1">हमने पहले ही क्या बनाया है: 24 Spikes और एक Production World <a class="header-anchor" href="#हमने-पहले-ही-क्या-बनाया-है-24-spikes-और-एक-production-world" aria-label="Permalink to &quot;हमने पहले ही क्या बनाया है: 24 Spikes और एक Production World&quot;"></a></h2>
<p><code>world/spikes/</code> directory में 24 self-contained prototypes हैं। ये खिलौना demos नहीं हैं। ये एक progressive R&amp;D pipeline है जहां हर spike ने एक खास समस्या हल की, उसे एक target के विरुद्ध benchmark किया, और अगले को राह दिखाई। स्कल्प्टिंग सिस्टम इन सब पर बना है, सिर्फ़ बाद वाले वॉल्यूमेट्रिक पर नहीं।</p>
<h3 id="production-heightmap-terrain-world-client" tabindex="-1">Production Heightmap Terrain (<code>world/client/</code>) <a class="header-anchor" href="#production-heightmap-terrain-world-client" aria-label="Permalink to &quot;Production Heightmap Terrain (`world/client/`)&quot;"></a></h3>
<p>लाइव वर्ल्ड Three.js WebGL में एक chunked हाइटमैप सिस्टम इस्तेमाल करता है:</p>
<ul>
<li><code>noise.ts</code> FBM value noise (पहाड़ियों के लिए 5 octaves, ridges के लिए 4, micro-detail के लिए 3) के ज़रिए एक deterministic <code>terrainHeight(wx, wz)</code> function के साथ टेरेन height बनाता है</li>
<li><code>chunk.ts</code> <code>Float32Array</code> हाइटमैप से 3 LOD levels (32/8/4 segments प्रति 64-unit chunk) के साथ <code>PlaneGeometry</code> meshes बनाता है, और seeded random placement और per-object colliders के साथ instanced trees/billboards रखता है</li>
<li><code>chunk-manager.ts</code> player के आसपास rings में chunks stream करता है (LOD0 पर radius 1, LOD1 पर radius 3, LOD2 पर radius 6) जिसमें <code>stitchEdge()</code> में linear interpolation के ज़रिए edge stitching होती है, और physics layer के लिए <code>getHeight()</code>, <code>getNormal()</code>, और <code>resolveCollisions()</code> देता है</li>
<li><code>terrain-material.ts</code> slope और height-संचालित weights के साथ <code>MeshStandardMaterial.onBeforeCompile</code> के ज़रिए 4-layer splat-आधारित टेक्सचर ब्लेंडिंग (grass/rock/sand/dirt) करता है, साथ ही per-layer normal map blending</li>
<li><code>character-controller.ts</code> हर frame पर gravity, grounding, और slope rejection (अधिकतम slope cos 50 degrees) के लिए टेरेन height sample करता है। स्कल्प्टिंग को बदली हुई heights इस सिस्टम में तुरंत feed करनी होंगी वरना player edit किए गए टेरेन से होकर गिर जाएगा</li>
<li><code>placement.ts</code> में object placement tool के लिए chunk meshes पर hit करने वाला एक <code>Raycaster</code> पहले से है। ब्रश tool को raycasting को शून्य से बनाने के बजाय ठीक इसी pattern का पालन करना चाहिए</li>
<li><code>protocol.ts</code> <code>world-chunk-do.ts</code> Durable Object के ज़रिए मल्टीप्लेयर sync के लिए MessagePack-encoded messages परिभाषित करता है, जो अभी <code>PlayerState</code>, <code>PlaceObject</code>, <code>RemoveObject</code>, और <code>Snapshot</code> messages संभालता है। टेरेन edits के लिए एक नई message type चाहिए होगी</li>
<li><code>world-chunk-do.ts</code> (Cloudflare Worker) रखे गए objects को Durable Object storage में persist करता है और जुड़े players को 50ms अंतराल पर broadcast करता है। इसके पास अभी टेरेन modifications की कोई अवधारणा नहीं है</li>
</ul>
<h3 id="spikes-01-11-foundation-layer" tabindex="-1">Spikes 01-11: Foundation Layer <a class="header-anchor" href="#spikes-01-11-foundation-layer" aria-label="Permalink to &quot;Spikes 01-11: Foundation Layer&quot;"></a></h3>
<p>इन spikes ने उन मुख्य systems को validate किया जिन पर स्कल्प्टिंग निर्भर होगी। इन्हें छोड़ने का मतलब है उन constraints को चूकना जिनका स्कल्प्टिंग सिस्टम को सम्मान करना होगा।</p>
<p><strong>Spike 01 (Terrain + Instancing):</strong> Three.js में पहला टेरेन prototype। उस PlaneGeometry + हाइटमैप pattern और instanced object placement को स्थापित किया जो <code>chunk.ts</code> आज भी इस्तेमाल करता है।</p>
<p><strong>Spike 02 (Rapier Physics Worker):</strong> एक <code>ColliderDesc.heightfield()</code> collider के साथ एक Web Worker में चलता Rapier 3D। autostep, slope limits, और snap-to-ground के साथ एक kinematic character controller बनाया। इस spike ने साबित किया कि physics एक heightfield के विरुद्ध main thread से अलग चल सकती है। अगर हम टेरेन स्कल्प्ट करें, तो physics heightfield को फिर से बनाना होगा या MC chunks के लिए एक trimesh collider से बदलना होगा।</p>
<p><strong>Spike 05 (LLM Behaviors):</strong> सीधे टेरेन से जुड़ा नहीं, लेकिन game objects के लिए JSON behavior schema स्थापित किया। प्रासंगिक इसलिए कि स्कल्प्ट किए गए टेरेन फ़ीचर्स behaviors trigger कर सकते हैं (जैसे, एक कटी हुई नदी पानी के effects spawn करती है)।</p>
<p><strong>Spike 06 (Chunk Streaming):</strong> player के हिलने पर dynamic loading के साथ पहला chunk load/swap सिस्टम। उस pattern को स्थापित किया जो <code>chunk-manager.ts</code> इस्तेमाल करता है: रंगीन regions जो load और unload होते हैं। chunks के unload और reload होने पर स्कल्प्टिंग को edit state बनाए रखनी होगी।</p>
<p><strong>Spike 07 (GPU Vegetation from Density Maps):</strong> density maps के ज़रिए रखे गए instanced grass और trees जो टेरेन height और slope sample करते हैं। स्कल्प्टिंग vegetation placement को invalid कर देती है: अगर टेरेन height बदले, तो trees तैरते या दबे हुए हो सकते हैं। edit किए गए chunks के लिए density map को फिर से बनाना होगा।</p>
<p><strong>Spike 08 (Terrain Material Shader Cost):</strong> triplanar projection, normal maps, और 4-layer blending को benchmark किया। हर फ़ीचर की सटीक ms लागत मापी। पाया कि triplanar + normals + 4 layers 45+ FPS पर budget के भीतर रहते हैं। यह budget स्कल्प्ट किए गए टेरेन के लिए मायने रखता है: अगर हम &quot;edited soil&quot; के लिए 5वीं layer जोड़ें या कटी हुई सतहों के लिए blending बदलें, तो हमें ठीक-ठीक पता है कितनी headroom मौजूद है।</p>
<p><strong>Spike 09 (CSM Shadows Budget):</strong> 1024^2 रिज़ॉल्यूशन पर 3 cascades के साथ cascaded shadow maps। shadow लागत को ~1.5ms पर मापा। स्कल्प्ट किया गया टेरेन shadow maps बदलता है, लेकिन लागत टेरेन के आकार से बेपरवाह स्थिर रहती है।</p>
<p><strong>Spike 10 (Geometry Clipmaps + Geomorphing):</strong> pop-in खत्म करने के लिए LOD levels के बीच geomorphing के साथ nested clipmap rings। स्थिर triangle count का मतलब है अनुमानित GPU लागत। Geomorphing स्कल्प्टिंग के लिए मायने रखता है: जब player किसी LOD boundary के पास स्कल्प्ट करे, तो LOD levels के बीच का morph edit दर्शाना चाहिए। अगर edit सिर्फ़ high-res ring में मौजूद है, तो geomorph target गलत है।</p>
<p><strong>Spike 11 (Heightmap Chunk Streaming):</strong> ज़्यादा उन्नत chunk streaming जिसमें per LOD level loaded/loading/unloaded states दिखाता एक visual grid है। streaming budget स्थापित किया: प्रति frame अधिकतम chunks loaded, उन chunks की prioritization जिन्हें LOD upgrades चाहिए। स्कल्प्टिंग एक नया priority signal जोड़ती है: जिन chunks को player सक्रिय रूप से edit कर रहा है उन्हें कभी unload नहीं करना चाहिए।</p>
<h3 id="spikes-12-14-webgpu-three-js-integration" tabindex="-1">Spikes 12-14: WebGPU + Three.js Integration <a class="header-anchor" href="#spikes-12-14-webgpu-three-js-integration" aria-label="Permalink to &quot;Spikes 12-14: WebGPU + Three.js Integration&quot;"></a></h3>
<p><strong>Spike 12 (WebGPU Marching Cubes):</strong> पहला वॉल्यूमेट्रिक spike। animated sphere caves के साथ चार 64^3 SDF chunks, जो पूरी तरह GPU पर चलते हैं। raw WebGPU इस्तेमाल करता है: SDF evaluation के लिए compute pipelines, Twinklebear case table (256 कॉन्फ़िगरेशन, हर एक में 16 entries) के साथ MC extraction, atomic vertex counter, और indirect draw। Performance target प्रति chunk &lt;4ms, सभी 4 के लिए &lt;12ms था। इसने validate किया कि GPU MC browser में रियल टाइम re-meshing के लिए काफी तेज़ है। हर बाद का वॉल्यूमेट्रिक spike यहां परिभाषित MC case table और WGSL shaders का फिर से इस्तेमाल करता है।</p>
<p><strong>Spike 13 (Reset Baseline from Spike 12):</strong> Spike 12 के raw WebGPU draw path को Three.js के <code>WebGPURenderer</code> के अंदर चलने के लिए port किया, backend के <code>device</code> को सीधे access करते हुए। render pipeline अभी भी raw WebGPU इस्तेमाल करता है (<code>drawIndirect</code> struct Vertex vec4+vec4 के साथ)। इसने साबित किया कि custom compute और Three.js scene rendering एक ही GPU device पर साथ रह सकते हैं।</p>
<p><strong>Spike 14 (Three.js WebGPU Incremental Hardening):</strong> raw render pipeline को positions और normals के लिए Three.js <code>StorageBufferAttribute</code> से बदला। MC compute सीधे इन GPU-resident buffers में लिखता है। <code>drawIndirect</code> buffer नियंत्रित करता है कि Three.js कितने vertices draw करता है। यह वह pattern है जो हर बाद का spike इस्तेमाल करता है: compute raw WebGPU रहता है, rendering Three.js scene graph से होकर जाती है। इन spikes में Three.js version 0.170.0 से 0.172.0 तक बढ़ा जैसे-जैसे WebGPU backend स्थिर हुआ।</p>
<h3 id="spike-15-17-transvoxel-lod-stitching" tabindex="-1">Spike 15-17: Transvoxel LOD Stitching <a class="header-anchor" href="#spike-15-17-transvoxel-lod-stitching" aria-label="Permalink to &quot;Spike 15-17: Transvoxel LOD Stitching&quot;"></a></h3>
<p><strong>Spike 15 (Transvoxel Seam Scaffold):</strong> तीन-zone आर्किटेक्चर जोड़ा: MC chunk (वॉल्यूमेट्रिक केंद्र), transition strip (MC boundary और हाइटमैप के बीच seam), और terrain ring (आसपास का हाइटमैप)। तीनों एक material pass शेयर करते हैं। इस चरण पर transition strip एक placeholder mesh है, असली Transvoxel cells नहीं।</p>
<p><strong>Spike 16 (Transvoxel +X Face with Shared Heightmap):</strong> एक ही spike में दो ज़रूरी सफलताएं। पहली, SDF में सपाट टेरेन plane को एक shared Perlin हाइटमैप से बदला: एक 257x257 Float32Array जो GPU पर एक storage buffer के तौर पर upload हुआ, SDF compute shader में bilinear interpolation के ज़रिए sample किया गया। MC surface और हाइटमैप mesh अब एक ही ground truth पर सहमत हैं। दूसरी, GitHub से Eric Lengyel के reference data tables (<code>transitionCellClass</code>, <code>transitionVertexData</code>, <code>transitionCellData</code>) और npm <code>transvoxel-data</code> package fetch करके +X face के लिए असली Transvoxel transition cells लागू कीं। CPU 9-sample transition cells (512 कॉन्फ़िगरेशन, 73 equivalence classes) evaluate करता है, grid points पर SDF values को interpolate करके vertices रखता है, और mirrored cases के लिए winding inversion संभालता है।</p>
<p><strong>Spike 17 (Dual MC 1x/2x LOD):</strong> अलग-अलग रिज़ॉल्यूशन पर साथ-साथ दो MC chunks। High-res: cell_scale=1.0 के साथ 62 cells। Low-res: cell_scale=2.0 के साथ 31 cells। MC shader को <code>cell_scale</code> और <code>grid_points</code> uniforms मिले। <code>transition_shrink</code> पेश किया: low-res chunk के face-0 boundary vertices को cell_scale के 15% अंदर खींचा जाता है, जिससे एक पतली खाली जगह बनती है जिसे Transvoxel transition cells z-fighting के बिना भरते हैं। यह वही LOD model है जो production सिस्टम को चाहिए: पास के chunks पूरी रिज़ॉल्यूशन पर, दूर के chunks आधी रिज़ॉल्यूशन पर, हर boundary पर Transvoxel।</p>
<h3 id="spikes-18-21-transvoxel-corner-cases-और-gpu-acceleration" tabindex="-1">Spikes 18-21: Transvoxel Corner Cases और GPU Acceleration <a class="header-anchor" href="#spikes-18-21-transvoxel-corner-cases-और-gpu-acceleration" aria-label="Permalink to &quot;Spikes 18-21: Transvoxel Corner Cases और GPU Acceleration&quot;"></a></h3>
<p>इन चारों spikes ने Transvoxel implementation में एक खास failure case हल किया। इन्हें एक साथ रखना अलग-अलग समस्याओं को छिपा देता है।</p>
<p><strong>Spike 18 (Heightmap 2:1 Seam):</strong> Transvoxel को एक pure हाइटमैप boundary पर लागू किया जहां एक तरफ़ दूसरी से दोगुनी रिज़ॉल्यूशन है। कोई MC शामिल नहीं। एक 62-cell और 31-cell हाइटमैप chunk के बीच का seam Transvoxel transition tables से 15% low-face shrink के साथ बनता है। इसने validate किया कि Transvoxel सिर्फ़ MC ही नहीं, हाइटमैप-only case के लिए भी काम करता है।</p>
<p><strong>Spike 19 (64/32/32/16 Corner Grid):</strong> सबसे कठिन stitching case: एक corner point पर मिलने वाले अलग-अलग रिज़ॉल्यूशन के चार chunks (64, 32, 32, और 16 cells)। seam सिस्टम को चार edges (A-B, A-C, B-D, C-D) के साथ हर दिशा के लिए सही winding के साथ transition cells बनानी होंगी। इस spike ने साबित किया कि Transvoxel tables custom-case logic के बिना multi-resolution corner संभालते हैं।</p>
<p><strong>Spike 20 (GPU Transvoxel Corner):</strong> 64/32/32/16 corner layout के लिए Transvoxel transition cell generation को GPU पर ले गया। animated टेरेन के लिए हर frame transition cells फिर से बनाते समय CPU एक रुकावट थी। GPU compute MC extraction के उसी pass में seam vertices बनाता है।</p>
<p><strong>Spike 21 (GPU MC + Transvoxel Corner):</strong> एक ही compute dispatch sequence में पूरी GPU MC extraction को GPU Transvoxel seam generation के साथ मिलाया। MC chunks और चारों seams दोनों GPU पर बनते हैं, vertex counts atomic counters के ज़रिए संभाले जाते हैं और <code>drawIndirect</code> के साथ draw होते हैं। यह seamless LOD transitions के साथ multi-resolution वॉल्यूमेट्रिक टेरेन के लिए पूरी GPU pipeline है।</p>
<h3 id="spikes-22-24-hybrid-architecture" tabindex="-1">Spikes 22-24: Hybrid Architecture <a class="header-anchor" href="#spikes-22-24-hybrid-architecture" aria-label="Permalink to &quot;Spikes 22-24: Hybrid Architecture&quot;"></a></h3>
<p><strong>Spike 22 (Hybrid MC/Heightmap Policy):</strong> मुख्य architecture spike। Chunks डिफ़ॉल्ट रूप से हाइटमैप होते हैं। जब animated deformation sphere किसी chunk के AABB को intersect करता है, तो वह chunk MC mode में बदल जाता है। बाकी static हाइटमैप meshes रहते हैं। Layout: अलग-अलग रिज़ॉल्यूशन पर 64, 32/32, और 16-cell chunks। Transvoxel seams MC-to-heightmap transitions समेत हर boundary संभालते हैं। spike प्रति frame MC chunk count बनाम HM chunk count और vertex overflow track करता है।</p>
<p><strong>Spike 23 (Policy-Driven Chunk Modes):</strong> Spike 22 के ऊपर एक patch के तौर पर load हुआ। camera-distance hysteresis जोड़ा (जब camera किसी threshold के पास हो तो chunks modes के बीच flicker नहीं करते) और एक edit mask (deform किए गए chunks MC mode में रहते हैं भले ही deformation source दूर चला जाए)। यह वह &quot;sticky edit&quot; behavior है जो स्कल्प्टिंग को चाहिए: एक बार player एक गुफा काट दे, तो वह chunk हमेशा वॉल्यूमेट्रिक रहता है।</p>
<p><strong>Spike 24 (Policy + Clipmap Rings):</strong> सबसे उन्नत spike। Spike 23 के near-field policy सिस्टम को Spike 10 के far-field geometry clipmap rings के साथ मिलाता है। Three.js 0.183.1 पर upgrade किया गया। Near-field 64/32/16 रिज़ॉल्यूशन पर Transvoxel seams के साथ HM/MC hybrid इस्तेमाल करता है। Far-field static-center clipmap rings इस्तेमाल करता है जो camera का पीछा करते हैं। यह पूरी टेरेन रेंडरिंग आर्किटेक्चर है: जहां ज़रूरी हो वहां chunked वॉल्यूमेट्रिक स्कल्प्टिंग, बाकी हर जगह सस्ता clipmap टेरेन।</p>
<h3 id="marching-cubes-क्यों-surface-nets-क्यों-नहीं" tabindex="-1">Marching Cubes क्यों, Surface Nets क्यों नहीं <a class="header-anchor" href="#marching-cubes-क्यों-surface-nets-क्यों-नहीं" aria-label="Permalink to &quot;Marching Cubes क्यों, Surface Nets क्यों नहीं&quot;"></a></h3>
<p>इस गाइड का बाहरी अनुसंधान section browser टेरेन स्कल्प्टिंग के लिए Surface Nets को सबसे मज़बूत उम्मीदवार बताता है। लेकिन pipeline का हर spike Marching Cubes इस्तेमाल करता है। यह कोई संयोग नहीं है।</p>
<p>MC का परिभाषित फ़ायदा embarrassing parallelism है: हर cube पूरी तरह स्वतंत्र है। Spikes 12-24 के WGSL compute shaders शून्य inter-cell communication के साथ प्रति cube एक thread dispatch करते हैं। Atomic counters vertex allocation संभालते हैं। यह GPU workgroups पर पूरी तरह मैप होता है।</p>
<p>Surface Nets प्रति surface-वाले cell एक vertex रखता है, फिर पड़ोसियों को जोड़ता है। वह neighbor connectivity एक inter-cell dependency है। <code>fast-surface-nets</code> crate इसे CPU पर सावधान iteration order के साथ संभालता है। GPU पर, इसके लिए या तो दो-pass तरीका (vertices खोजें, फिर जोड़ें) या workgroups के भीतर shared memory चाहिए। दोनों WebGPU में मुमकिन हैं लेकिन जटिलता जोड़ते हैं।</p>
<p>व्यावहारिक सुझाव: स्कल्प्टिंग pipeline के लिए Marching Cubes के साथ ही रहें। यह हमारे codebase में सिद्ध है, WGSL shaders मौजूद और benchmarked हैं, और Transvoxel seam सिस्टम MC के edge-आधारित vertex placement के इर्द-गिर्द बना है। Surface Nets पर फिर से विचार करना तब सही है जब binary data पर MC का aliasing एक दिखने वाली समस्या बन जाए, लेकिन SDF टेरेन के लिए जहां values smooth gradients हैं, MC साफ़ नतीजे देता है।</p>
<h2 id="स्कल्प्टिंग-के-लिए-व्यावहारिक-आर्किटेक्चर" tabindex="-1">स्कल्प्टिंग के लिए व्यावहारिक आर्किटेक्चर <a class="header-anchor" href="#स्कल्प्टिंग-के-लिए-व्यावहारिक-आर्किटेक्चर" aria-label="Permalink to &quot;स्कल्प्टिंग के लिए व्यावहारिक आर्किटेक्चर&quot;"></a></h2>
<p>spike sequence ने रेंडरिंग pipeline हल किया। जो बचा है वह है ब्रश सिस्टम, game systems के पार cascading side effects, और मल्टीप्लेयर सिंक्रोनाइज़ेशन। यहां योजना है, हर spike पर बनती हुई।</p>
<h3 id="phase-1-heightmap-स्कल्प्टिंग-न्यूनतम-बदलाव-अधिकतम-पहुंच" tabindex="-1">Phase 1: Heightmap स्कल्प्टिंग (न्यूनतम बदलाव, अधिकतम पहुंच) <a class="header-anchor" href="#phase-1-heightmap-स्कल्प्टिंग-न्यूनतम-बदलाव-अधिकतम-पहुंच" aria-label="Permalink to &quot;Phase 1: Heightmap स्कल्प्टिंग (न्यूनतम बदलाव, अधिकतम पहुंच)&quot;"></a></h3>
<p>production <code>world/client/</code> कोड में chunk हाइटमैप बदलने वाले ब्रश tools जोड़ें। यह मौजूदा WebGL renderer के भीतर काम करता है और WebGPU की ज़रूरत नहीं है।</p>
<p><strong>ब्रश input:</strong> <code>placement.ts</code> में <code>PlacementTool</code> pattern का पालन करें। इसके पास पहले से ही एक <code>Raycaster</code> है जो <code>chunkManager.getChunkMeshes()</code> पर hit करता है और hit point पर एक ghost mesh track करता है। एक <code>TerrainBrushTool</code> वही raycast करेगा लेकिन एक object रखने के बजाय chunk हाइटमैप बदलेगा। <code>World.onMouseDown</code> handler पहले से ही tool state के आधार पर dispatch करता है।</p>
<p><strong>Chunk modification (<code>Chunk.applyBrush</code>):</strong> ब्रश world position को हाइटमैप grid coordinates पर मैप करें। ब्रश radius के भीतर हर grid point के लिए, falloff-weighted displacement की गणना करें और हाइटमैप value से जोड़ें/घटाएं। फिर mesh अपडेट करें: बदले हुए हाइटमैप से vertex Y positions सेट करें, central differencing के ज़रिए normals फिर से calculate करें (वही <code>terrainHeight(wx +/- eps, wz)</code> pattern जो <code>chunk.ts</code> line 155-158 में पहले से इस्तेमाल होता है), और प्रभावित region के लिए <code>terrain-material.ts</code> में <code>createSplatMap()</code> के ज़रिए splat map फिर से बनाएं ताकि slope-संचालित टेक्सचर ब्लेंडिंग अपडेट हो।</p>
<p><strong>Character controller:</strong> <code>CharacterController.update()</code> grounding के लिए हर frame <code>getHeight()</code> call करता है। <code>ChunkManager.getHeight()</code> <code>Chunk.sampleHeight()</code> को delegate करता है, जो chunk के <code>heightmap</code> Float32Array से पढ़ता है। चूंकि हम उस array को सीधे बदल रहे हैं, character controller अगले frame पर शून्य अतिरिक्त wiring के साथ बदलाव उठा लेता है।</p>
<p><strong>Object invalidation:</strong> <code>chunk.ts</code> में tree instances spawn के समय <code>terrainHeight()</code> sample करके रखे जाते हैं। स्कल्प्टिंग के बाद, प्रभावित इलाके के trees गलत height पर हो सकते हैं। Phase 1 इसे टाल सकता है (trees छोटे edits पर थोड़ा तैरते हैं)। Phase 2 को एक <code>chunk.invalidateObjects()</code> चाहिए जो heights फिर से sample करे और instance matrices फिर से बनाए। <code>resolveCollisions()</code> में इस्तेमाल होने वाले colliders के लिए भी यही।</p>
<p><strong>Rapier physics (अगर integrated हो):</strong> Spike 02 ने साबित किया कि heightfield colliders काम करते हैं। अगर Rapier सक्रिय है, तो बदले हुए chunk के लिए heightfield collider को फिर से बनाना या patch करना होगा। Rapier का <code>ColliderDesc.heightfield()</code> एक flat Float32Array लेता है, इसलिए यह एक सीधा replacement है।</p>
<p><strong>Network sync:</strong> <code>protocol.ts</code> में <code>MsgType.TerrainEdit = 10</code> जोड़ें:</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TerrainEditMsg</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> MsgType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">TerrainEdit</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  cx</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  cz</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  brush</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    wx</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    wz</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    radius</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    strength</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    falloff</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">    operation</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p><code>WorldChunkDO</code> इसे सभी clients को broadcast करता है और इसे Durable Object storage में रखे एक per-chunk edit log में append करता है। देर से जुड़ने वाले clients <code>Snapshot</code> message में edit log पाते हैं और टेरेन state फिर से बनाने के लिए इसे replay करते हैं। सभी clients वही deterministic ब्रश function लागू करते हैं, इसलिए वे वही हाइटमैप पर converge करते हैं।</p>
<p><strong>Chunk unload/reload:</strong> Spike 06 और Spike 11 ने streaming pattern स्थापित किया। जब एक chunk unload और बाद में reload हो, तो उस chunk के edit log को base procedural हाइटमैप के विरुद्ध replay करना होगा। edit log server-side (Durable Object) स्टोर होता है और Snapshot message में शामिल होता है।</p>
<h3 id="phase-2-spike-22-24-architecture-के-साथ-volumetric-स्कल्प्टिंग" tabindex="-1">Phase 2: Spike 22-24 Architecture के साथ Volumetric स्कल्प्टिंग <a class="header-anchor" href="#phase-2-spike-22-24-architecture-के-साथ-volumetric-स्कल्प्टिंग" aria-label="Permalink to &quot;Phase 2: Spike 22-24 Architecture के साथ Volumetric स्कल्प्टिंग&quot;"></a></h3>
<p>Spike 24 pipeline को production world में port करें। जब कोई player सतह के नीचे स्कल्प्ट करे (एक गुफा काटना, एक tunnel खोदना), तो प्रभावित chunk हाइटमैप mode से MC mode में बदल जाता है।</p>
<p><strong>WebGPU renderer migration:</strong> Spikes 13-14 ने साबित किया कि Three.js का <code>WebGPURenderer</code> scene graph के साथ custom compute host कर सकता है। production world MC chunks के लिए <code>StorageBufferAttribute</code> के साथ <code>WebGLRenderer</code> से <code>WebGPURenderer</code> पर जाता है। जब WebGPU उपलब्ध न हो तो Phase 1 हाइटमैप-only path पर fallback।</p>
<p><strong>Per-chunk SDF allocation:</strong> Spike 22 के hybrid pattern का पालन करें। हर chunk एक हाइटमैप के तौर पर शुरू होता है। पहले वॉल्यूमेट्रिक ब्रश stroke पर, एक 64^3 Float32Array आवंटित करें, इसे हाइटमैप sample करके initialize करें (हर पॉइंट पर SDF value <code>world.y - heightmap_value</code> है), और MC rendering पर switch करें। Spike 23 का policy सिस्टम सुनिश्चित करता है कि chunk हमेशा के लिए MC mode में रहे (edit mask से &quot;sticky edit&quot; behavior)।</p>
<p><strong>SDF shader में shared heightmap:</strong> Spike 16 का <code>height_at()</code> function। chunk के हाइटमैप को एक GPU storage buffer पर upload करें। SDF compute shader <code>max(height_sdf, edit_sdf)</code> evaluate करता है जहां <code>height_sdf = world.y - height_at(world.xz)</code> और <code>edit_sdf</code> में ब्रश modifications होते हैं। MC और हाइटमैप chunks अपनी boundaries पर ground truth पर सहमत होते हैं।</p>
<p><strong>Transvoxel seams:</strong> Spikes 15-21 का पूरा stack। MC-to-heightmap boundaries shrink gap के साथ transition cells इस्तेमाल करती हैं। अलग-अलग रिज़ॉल्यूशन पर MC-to-MC boundaries Spike 17 का dual-LOD pattern इस्तेमाल करती हैं। Spike 19 का corner case 4-way intersections संभालता है। Spike 21 का GPU compute सारी seam geometry उसी dispatch में बनाता है।</p>
<p><strong>Clipmap far-field:</strong> sculpting range के बाहर के टेरेन के लिए Spike 24 के clipmap rings। स्कल्प्टिंग इन rings को कभी नहीं छूती; वे base procedural हाइटमैप sample करते हैं।</p>
<p><strong>Geomorphing:</strong> Spike 10 का geomorphing LOD transitions पर pop-in खत्म करता है। edit किए गए chunks के लिए, geomorph target में edit शामिल होना चाहिए। अगर एक chunk LOD0 पर MC है और उसका LOD1 पड़ोसी एक हाइटमैप है, तो geomorph दोनों representations के बीच ब्लेंड करता है। इसके लिए कम LODs पर भी edit log sample करना होता है।</p>
<p><strong>Material budget:</strong> Spike 08 ने 4-layer triplanar + normals को 45+ FPS पर benchmark किया। MC chunks को वही material चाहिए। splat map को हाइटमैप slope के बजाय SDF gradient से बनाया जा सकता है (तीखा = rock, सपाट = grass)। यह 4-layer budget के भीतर रहता है।</p>
<p><strong>Vegetation invalidation:</strong> Spike 07 का density-map vegetation टेरेन height और slope पर निर्भर करता है। जब एक chunk MC mode में बदले, तो tree instances को SDF surface sample करके फिर से बनाना होगा। overhangs पर या गुफाओं के अंदर के trees को cull करना होगा। <code>chunk.ts</code> के instanced mesh matrices नई surface से फिर से बनते हैं।</p>
<h3 id="phase-3-undo-redo-और-network-sync-के-लिए-csg-edit-trees" tabindex="-1">Phase 3: Undo/Redo और Network Sync के लिए CSG Edit Trees <a class="header-anchor" href="#phase-3-undo-redo-और-network-sync-के-लिए-csg-edit-trees" aria-label="Permalink to &quot;Phase 3: Undo/Redo और Network Sync के लिए CSG Edit Trees&quot;"></a></h3>
<p>raw SDF mutation को एक CSG operation tree से बदलें। हर ब्रश stroke एक operation (add, subtract, smooth blend) के साथ एक primitive (sphere, capsule, box) append करता है। SDF tree से फिर से calculate होता है।</p>
<p><strong>फ़ायदे:</strong></p>
<ul>
<li>Non-destructive: किसी भी edit को undo करने के लिए tree से हटाया जा सकता है</li>
<li>Network-कारगर: raw field values नहीं, CSG operation broadcast करें</li>
<li>Deterministic: सभी clients वही operation sequence से वही SDF बनाते हैं</li>
<li>ALICE-SDF का CSG tree diff/patch नेटवर्क के पार bandwidth-कारगर सिंक्रोनाइज़ेशन और undo/redo देता है</li>
</ul>
<p><strong>Durable Object storage:</strong> प्रति chunk edit tree, Phase 1 के flat edit log की जगह लेता है। <code>WorldChunkDO</code> CSG tree structure स्टोर करता है, raw हाइटमैप deltas नहीं। <code>Snapshot</code> messages में tree शामिल होता है, और देर से जुड़ने वाले clients इसे evaluate करके स्थानीय SDF बनाते हैं।</p>
<h3 id="phase-4-collaborative-स्कल्प्टिंग" tabindex="-1">Phase 4: Collaborative स्कल्प्टिंग <a class="header-anchor" href="#phase-4-collaborative-स्कल्प्टिंग" aria-label="Permalink to &quot;Phase 4: Collaborative स्कल्प्टिंग&quot;"></a></h3>
<p>server-ordered operation replay के साथ concurrent edit support जोड़ें। Durable Object हर edit को timestamp करता है और क्रम में broadcast करता है। देर से जुड़ने वाले clients operation log पाते हैं और world state फिर से बनाते हैं। मौजूदा <code>Snapshot</code> message type प्रति chunk टेरेन edit history शामिल करने के लिए फैलती है।</p>
<p>चूंकि ब्रश strokes छोटे, स्थानीय, और additive/subtractive होते हैं, थोड़े पुनः-क्रमबद्ध concurrent edits का दृश्य नतीजा आम तौर पर &quot;सही&quot; क्रम से अलग नहीं दिखता। server ordering के साथ last-write-wins पर्याप्त है। Durable Object का <code>tick()</code> function (अभी player state के लिए 50ms अंतराल पर चलता है) उसी loop में टेरेन edit broadcasts जोड़ता है।</p>
<h2 id="मुख्य-संदर्भ" tabindex="-1">मुख्य संदर्भ <a class="header-anchor" href="#मुख्य-संदर्भ" aria-label="Permalink to &quot;मुख्य संदर्भ&quot;"></a></h2>
<p><strong>Algorithms:</strong></p>
<ul>
<li>Lorensen &amp; Cline, &quot;Marching Cubes&quot; (1987)</li>
<li>Eric Lengyel, &quot;Transvoxel Algorithm&quot; (2009), transvoxel.org</li>
<li>Losasso &amp; Hoppe, &quot;Geometry Clipmaps&quot; (SIGGRAPH 2004)</li>
<li>&quot;A High-Performance SurfaceNets Discrete Isocontouring Algorithm&quot; (arxiv 2401.14906, 2024)</li>
<li>MCHex (arxiv 2511.02064, 2025)</li>
</ul>
<p><strong>Implementations:</strong></p>
<ul>
<li>bevy-sculpter v0.18.0 (Rust, Surface Nets + SDF brushes)</li>
<li>fast-surface-nets (Rust, 20M tri/sec)</li>
<li>ALICE-SDF v1.3.0 (Rust + WASM, CSG tree diff/patch)</li>
<li>WebGPU SDF Editor (Nijhoff, January 2026)</li>
<li>SculptingPro (Unity runtime sculpting API)</li>
<li>TerraBrush (Godot terrain sculpting GDExtension)</li>
</ul>
<p><strong>Games:</strong></p>
<ul>
<li>Dreams (Media Molecule, SDF + point cloud rendering, SIGGRAPH 2015)</li>
<li>Teardown (Voxagon, voxel DDA ray tracing, deterministic multiplayer destruction)</li>
<li>Mike Turitzin's SDF engine (brick maps + geometry clipmaps, January 2026)</li>
</ul>
<p><strong>Network:</strong></p>
<ul>
<li>&quot;Optimizing payload size for voxel state synchronization&quot; (Oulu, 2024)</li>
<li>Teardown multiplayer (semi-deterministic destruction sync, March 2026)</li>
<li>cSculpt (collaborative mesh sculpting with multiresolution merge)</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Reference Image सपोर्ट वाले सबसे बेहतरीन AI वीडियो मॉडल (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/long-reference-video-models</link>
            <guid>https://app.cinevva.com/hi/guides/long-reference-video-models</guid>
            <pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में reference images से लंबा, सुसंगत वीडियो बनाने वाले AI वीडियो जनरेशन मॉडल - native long-form जनरेटर, reference-and-extend workflows, और ओपन-सोर्स विकल्प जिन्हें आप खुद होस्ट कर सकते हैं।]]></description>
            <content:encoded><![CDATA[<h1 id="reference-image-सपोर्ट-वाले-सबसे-बेहतरीन-ai-वीडियो-मॉडल-2026" tabindex="-1">Reference Image सपोर्ट वाले सबसे बेहतरीन AI वीडियो मॉडल (2026) <a class="header-anchor" href="#reference-image-सपोर्ट-वाले-सबसे-बेहतरीन-ai-वीडियो-मॉडल-2026" aria-label="Permalink to &quot;Reference Image सपोर्ट वाले सबसे बेहतरीन AI वीडियो मॉडल (2026)&quot;"></a></h1>
<p><em>आख़िरी अपडेट: जुलाई 2026।</em></p>
<p>10 सेकंड की क्लिप बनाना अब आसान है। हर बड़ा मॉडल यह कर लेता है। असली सवाल यह है: क्या आप 5 या 10 मिनट का ऐसा सुसंगत वीडियो बना सकते हैं जहाँ कोई किरदार पहले मिनट और आठवें मिनट में एक जैसा दिखे? जहाँ सैकड़ों frames के दौरान सीन एक साथ टिका रहे?</p>
<p>यही मुश्किल समस्या है। और यहीं चीज़ें तेज़ी से बदल रही हैं। यह गाइड हर उस मॉडल को कवर करती है जो हमें मिला है, चाहे वह native रूप से लंबा वीडियो बनाता हो या reference images के ज़रिए सुसंगत किरदारों के साथ long-form content बनाने के लिए ज़रूरी workflows को सपोर्ट करता हो। हमने इन्हें तीन tiers में बाँटा है: वे मॉडल जो सीधे मिनटों लंबा वीडियो बनाते हैं, वे मॉडल जिनमें मज़बूत reference image सपोर्ट है और जिन्हें आप continuation के ज़रिए extend करते हैं, और वे ओपन-सोर्स विकल्प जिन्हें आप खुद चला सकते हैं।</p>
<h2 id="tier-1-native-long-form-जनरेशन-मिनट" tabindex="-1">Tier 1: Native Long-Form जनरेशन (मिनट+) <a class="header-anchor" href="#tier-1-native-long-form-जनरेशन-मिनट" aria-label="Permalink to &quot;Tier 1: Native Long-Form जनरेशन (मिनट+)&quot;"></a></h2>
<p>ये मॉडल वीडियो को सेकंडों में नहीं बल्कि मिनटों में मापते हैं। ये जड़ से लंबी sequences में temporal consistency के लिए बनाए गए हैं।</p>
<h3 id="longcat-video" tabindex="-1">LongCat Video <a class="header-anchor" href="#longcat-video" aria-label="Permalink to &quot;LongCat Video&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/YzVLfMO7K5E" title="LongCat-Video: Generate High-Quality Long Videos with AI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">LongCat Video एक ही prompt से मिनटों लंबा सुसंगत वीडियो बनाता है, पूरी अवधि में बिना किसी color drift या temporal inconsistency के।</div>
<p>Meituan ने 2025 के आख़िर में LongCat Video रिलीज़ किया। यह 13.6 अरब पैरामीटर वाला diffusion transformer है और यह पहला ऐसा मॉडल है जो भरोसेमंद तरीके से 15 मिनट तक का सुसंगत वीडियो बना सकता है।</p>
<p>यह मॉडल एक ही unified pipeline में text-to-video, image-to-video, और video continuation को सपोर्ट करता है। I2V मोड में, input image वीडियो का literally पहला frame बन जाता है। यह कोई ढीला किरदार reference नहीं है जिसे आप किसी भी सीन में रख सकें। मॉडल उस शुरुआती frame से आगे की ओर animate करता है और साथ ही &quot;Cross-Chunk Latent Stitching&quot; का इस्तेमाल करके पूरे जनरेशन के दौरान मूल image को reference करता रहता है, जिससे color drift रुकता है और लंबी sequences में visual consistency बनी रहती है। एक अपडेटेड 2026 variant में audio-driven avatar जनरेशन जोड़ा गया है जिसमें 5+ मिनट के talking head वीडियो के लिए lip-sync है।</p>
<p>अंदरूनी तौर पर, LongCat बहुत बड़ी sequence lengths को संभालने के लिए Block Sparse Attention के साथ coarse-to-fine जनरेशन तरीका इस्तेमाल करता है। RLHF tuning से motion की क्वालिटी बेहतर होती है। VBench 2.0 benchmark पर यह कुल मिलाकर तीसरे स्थान पर है, Google Veo 3 और Shengshu के Vidu Q1 के पीछे।</p>
<p><strong>उपलब्धता:</strong> MIT लाइसेंस के तहत ओपन सोर्स। fal.ai API के ज़रिए $0.04 प्रति जनरेटेड सेकंड पर उपलब्ध (720p पर 15 मिनट के वीडियो के लिए $36)। LongCat के अपने platform पर credit-आधारित pricing के साथ भी उपलब्ध।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Max duration</td>
<td>~15 मिनट</td>
</tr>
<tr>
<td>Resolution</td>
<td>720p at 30fps</td>
</tr>
<tr>
<td>Parameters</td>
<td>13.6B</td>
</tr>
<tr>
<td>Reference images</td>
<td>सिर्फ़ First-frame (I2V मोड, character reference नहीं)</td>
</tr>
<tr>
<td>License</td>
<td>MIT</td>
</tr>
<tr>
<td>API cost</td>
<td>~$0.04/second (fal.ai)</td>
</tr>
</tbody>
</table>
<h3 id="seaweed-apt2" tabindex="-1">Seaweed APT2 <a class="header-anchor" href="#seaweed-apt2" aria-label="Permalink to &quot;Seaweed APT2&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/9hDE3HzL7lg" title="Seaweed APT2: Real-Time Controllable AI Video Generation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Seaweed APT2 इंटरैक्टिव camera और pose control के साथ 24fps पर autoregressive तरीके से वीडियो बनाता है, render queue से ज़्यादा किसी game engine के करीब।</div>
<p>ByteDance का Seaweed APT2 एक अलग तरीका अपनाता है। पूरा वीडियो पहले से बनाने के बजाय, यह एक single H100 पर हर frame के लिए सिर्फ़ 0.16 सेकंड latency के साथ 24fps पर autoregressive तरीके से frames बनाता है। नतीजा 5 मिनट तक का स्थिर वीडियो है जिसकी temporal consistency टिकी रहती है।</p>
<p>तकनीकी जुगत है Autoregressive Adversarial Post-Training (AAPT), जो एक pretrained bidirectional video diffusion मॉडल को unidirectional autoregressive जनरेटर में बदल देती है। हर frame के लिए single network forward evaluation। यही चीज़ real-time जनरेशन को मुमकिन बनाती है।</p>
<p>कच्ची लंबाई के अलावा इस मॉडल को दिलचस्प बनाती है interactivity। आप camera को control कर सकते हैं, pose detection के ज़रिए किरदारों को animate कर सकते हैं, और वीडियो render होते समय सीन में फेरबदल कर सकते हैं। इसे &quot;वीडियो बनाओ&quot; से कम और &quot;वीडियो को real time में steer करो&quot; ज़्यादा समझिए।</p>
<p><strong>उपलब्धता:</strong> सिर्फ़ research चरण। अभी सार्वजनिक रूप से उपलब्ध नहीं। 7B base मॉडल (Seaweed-7B) का एक paper प्रकाशित है पर APT2 weights रिलीज़ नहीं हुए हैं।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Max duration</td>
<td>~5 मिनट</td>
</tr>
<tr>
<td>Resolution</td>
<td>736x416 (single GPU), 720p तक (8 GPUs)</td>
</tr>
<tr>
<td>Parameters</td>
<td>8B</td>
</tr>
<tr>
<td>Reference images</td>
<td>I2V और interactive pose control के ज़रिए</td>
</tr>
<tr>
<td>License</td>
<td>रिलीज़ नहीं हुआ</td>
</tr>
<tr>
<td>Status</td>
<td>Research preview</td>
</tr>
</tbody>
</table>
<h3 id="helios" tabindex="-1">Helios <a class="header-anchor" href="#helios" aria-label="Permalink to &quot;Helios&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/vd_AgHtOUFQ" title="Helios: Real-Time Long Video Generation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Helios एक single H100 पर 19.5 FPS पर चलता है, मिनट-स्तर का वीडियो बनाते हुए training के दौरान temporal drift को simulate और सही करता है।</div>
<p>Helios Peking University से आता है, जो Wan 2.1 के ऊपर बना है। यह 14B पैरामीटर वाला मॉडल है जो एक single H100 पर 19.5 FPS पर मिनट-स्तर का वीडियो बनाता है। मुख्य खोज यह है कि यह long-video drifting को कैसे संभालता है। self-forcing या keyframe sampling जैसी पारंपरिक anti-drifting तकनीकों के बजाय, Helios training के दौरान drifting को simulate करता है ताकि मॉडल उसे सही करना सीख जाए।</p>
<p>यह native रूप से text-to-video, image-to-video, और video-to-video tasks को सपोर्ट करता है। I2V मोड जनरेशन को seed करने के लिए reference images स्वीकार करता है।</p>
<p><strong>उपलब्धता:</strong> Apache 2.0 के तहत पूरी तरह ओपन सोर्स। मार्च 2026 में रिलीज़। Code और weights GitHub पर (PKU-YuanGroup/Helios)। Diffusers, SGLang, और vLLM-Omni में इंटीग्रेटेड। HuggingFace Spaces पर Gradio demo।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Max duration</td>
<td>मिनट-स्तर (कोई fixed cap नहीं)</td>
</tr>
<tr>
<td>Resolution</td>
<td>720p</td>
</tr>
<tr>
<td>Parameters</td>
<td>14B</td>
</tr>
<tr>
<td>Reference images</td>
<td>हाँ (I2V मोड)</td>
</tr>
<tr>
<td>License</td>
<td>Apache 2.0</td>
</tr>
<tr>
<td>Hardware</td>
<td>real-time के लिए single H100</td>
</tr>
</tbody>
</table>
<h3 id="skyreels-v2-v3" tabindex="-1">SkyReels V2 / V3 <a class="header-anchor" href="#skyreels-v2-v3" aria-label="Permalink to &quot;SkyReels V2 / V3&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/NJcRyQu30yM" title="SkyReels AI: Infinite-Length Video Generation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">SkyReels V3 1-4 reference images स्वीकार करता है और multi-shot switching तथा audio-guided avatar synthesis के साथ असीमित लंबाई का वीडियो बनाता है।</div>
<p>Skywork की SkyReels लाइन असीमित लंबाई के वीडियो को लक्ष्य बनाती है। V2 एक AutoRegressive Diffusion-Forcing आर्किटेक्चर इस्तेमाल करता है जो बिना किसी fixed duration cap के वीडियो बनाता है। जनवरी 2026 में रिलीज़ हुआ V3 एक ही मॉडल में reference image-to-video, video-to-video extension, और audio-guided avatar जनरेशन को एक साथ लाता है।</p>
<p>V3 1 से 4 reference images स्वीकार करता है और बने हुए वीडियो भर में subject की पहचान बनाए रखता है। video-to-video मोड cinematographic transitions के साथ सहज single-shot continuation और multi-shot switching को मुमकिन बनाता है।</p>
<p>Skywork ने 25 फरवरी 2026 को SkyReels V4 भेजा, जो 1080p/32fps तक एक ही dual-stream pass में वीडियो और audio को एक साथ बनाने वाला पहला ओपन-सोर्स मॉडल है। यह conditioning inputs के तौर पर text, images, video clips, masks, और audio स्वीकार करता है और जनरेशन, inpainting, तथा editing को एक framework में लाता है, V2/V3 की reference-and-extend लाइन को native ध्वनि के साथ आगे बढ़ाता है। अब यह Artificial Analysis text-to-video arena में शीर्ष के करीब है।</p>
<p><strong>उपलब्धता:</strong> पूरी तरह ओपन सोर्स। 1.3B से 14B पैरामीटर के मॉडल। 540p और 720p पर उपलब्ध। Code और weights GitHub और HuggingFace पर।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Max duration</td>
<td>असीमित (autoregressive)</td>
</tr>
<tr>
<td>Resolution</td>
<td>540p, 720p</td>
</tr>
<tr>
<td>Parameters</td>
<td>1.3B, 5B, 14B</td>
</tr>
<tr>
<td>Reference images</td>
<td>1-4 images (V3)</td>
</tr>
<tr>
<td>License</td>
<td>ओपन सोर्स</td>
</tr>
<tr>
<td>Hardware</td>
<td>कम से कम RTX 4090, अनुशंसित 4-8x A100</td>
</tr>
</tbody>
</table>
<h2 id="tier-2-मज़बूत-reference-extension-वाली-छोटी-क्लिप्स" tabindex="-1">Tier 2: मज़बूत Reference + Extension वाली छोटी क्लिप्स <a class="header-anchor" href="#tier-2-मज़बूत-reference-extension-वाली-छोटी-क्लिप्स" aria-label="Permalink to &quot;Tier 2: मज़बूत Reference + Extension वाली छोटी क्लिप्स&quot;"></a></h2>
<p>ये मॉडल 8-60 सेकंड की क्लिप बनाते हैं पर मज़बूत reference image सपोर्ट और video extension features देते हैं। Long-form content के लिए, आप मॉडल के continuation या extension endpoints का इस्तेमाल करके क्लिप्स को आपस में जोड़ते हैं। Character consistency उन reference images से आती है जो जनरेशनों भर में टिकी रहती हैं।</p>
<p>यह वही व्यावहारिक workflow है जिसे ज़्यादातर creators आज एक मिनट से लंबे content के लिए इस्तेमाल करते हैं। प्रति-क्लिप क्वालिटी अक्सर native long-form मॉडलों से ज़्यादा होती है।</p>
<h3 id="kling-3-0-omni-kuaishou" tabindex="-1">Kling 3.0 Omni (Kuaishou) <a class="header-anchor" href="#kling-3-0-omni-kuaishou" aria-label="Permalink to &quot;Kling 3.0 Omni (Kuaishou)&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/gn3YTrStUn8" title="Introducing Kling 3.0: AI Video Generation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Kling 3.0 Omni एक ही call में character elements, style references, और multi-shot storyboarding को native 4K 60fps output के साथ जोड़ता है।</div>
<p>किसी भी वीडियो मॉडल में Kling का reference image सिस्टम सबसे पूरा है। यह reference inputs को तीन अलग श्रेणियों में बाँटता है, हर एक का अलग मकसद होता है:</p>
<p><strong>Reference Images</strong> (<code>image_urls</code>): style और दिखावट के मार्गदर्शन के लिए 4 तक images। आप इन्हें अपने prompt में <code>@Image1</code>, <code>@Image2</code> वगैरह के तौर पर tag करते हैं। ये पहला frame बने बिना समग्र लुक, सीन की style, और environment को प्रभावित करती हैं।</p>
<p><strong>Elements</strong> (<code>elements</code>): समर्पित character/object inputs। हर element एक <code>frontal_image_url</code> (साफ़ सामने से ली गई फ़ोटो) के साथ-साथ वैकल्पिक <code>reference_image_urls</code> (अतिरिक्त angles) लेता है। आप इन्हें अपने prompt में <code>@Element1</code>, <code>@Element2</code> के तौर पर reference करते हैं। मॉडल किरदार की पहचान निकालता है और उन्हें आपके बताए किसी भी सीन में रख देता है। adventure-movie-शैली के content के लिए यही मुख्य feature है: एक किरदार की फ़ोटो अपलोड करें, फिर बताएँ कि वे जंगल से गुज़र रहे हैं, ड्रैगन से लड़ रहे हैं, जो भी आप चाहें।</p>
<p><strong>Start/End Frames</strong> (<code>start_image_url</code>, <code>end_image_url</code>): किसी खास image को पहले या आख़िरी frame के तौर पर pin करें। ये literal frames हैं, style guides नहीं।</p>
<p>तीनों श्रेणियों में कुल मिलाकर 7 तक reference inputs होते हैं (reference video भी इस्तेमाल करने पर यह घटकर 4 रह जाता है)। <code>&quot;@Element1 and @Element2 are having dinner at this table on @Image1&quot;</code> जैसा एक prompt किरदारों को सीन references के साथ जोड़ सकता है।</p>
<p>Long-form content के लिए, Kling दो रास्ते देता है। Multi-shot मोड एक ही call में 6 तक सीन बनाता है, हर एक का अपना prompt और duration (हर एक 3-15s)। Character elements सभी shots भर में अपने आप टिके रहते हैं। extend API वहीं से जारी रखता है जहाँ कोई पूरा हुआ वीडियो छूटा था, chained extensions के ज़रिए लगभग 3 मिनट तक पहुँचता है। V2V editing मोड मौजूदा वीडियो (3-10 सेकंड) लेता है और element references तथा एक text prompt का इस्तेमाल करके उसे बदलता है, source से camera motion और किरदार के staging को बनाए रखते हुए आपके references के आधार पर किरदारों और environments को restyle करता है। इससे Kling पहले से मौजूद footage को बेहतर बनाने के लिए खास तौर पर उपयोगी हो जाता है, low-fidelity 3D renders समेत।</p>
<p>Kling 3.0 Omni text-to-video, image-to-video, reference-to-video, और video editing को एक ही मॉडल में native audio जनरेशन और lip-sync के साथ लाता है। 17 जून 2026 को, Kuaishou ने Kling 3.0 Turbo जोड़ा, जो 720p और 1080p पर audio bundled के साथ एक तेज़ और सस्ता variant है (सूची मूल्य लगभग $0.11-0.14/sec), और Omni की editing pipeline को 4K वीडियो स्वीकार करने और output करने के लिए अपग्रेड किया।</p>
<p><strong>उपलब्धता:</strong> Kuaishou, fal.ai ($0.084-0.112/sec), और Replicate के ज़रिए commercial API। klingai.com पर web interface।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>3-15 सेकंड</td>
</tr>
<tr>
<td>Extended length</td>
<td>~3 मिनट (chained extensions के ज़रिए)</td>
</tr>
<tr>
<td>Resolution</td>
<td>720p, 1080p (Omni editing में 4K)</td>
</tr>
<tr>
<td>Reference images</td>
<td>4 तक (<code>@Image</code> style refs)</td>
</tr>
<tr>
<td>Elements</td>
<td>4 तक (frontal + angles वाले <code>@Element</code> character refs)</td>
</tr>
<tr>
<td>Total references</td>
<td>कुल मिलाकर 7 तक (video ref के साथ 4)</td>
</tr>
<tr>
<td>Multi-shot</td>
<td>हाँ (storyboard में 6 तक shots)</td>
</tr>
<tr>
<td>Audio</td>
<td>Native synchronized audio + lip-sync</td>
</tr>
<tr>
<td>Video editing</td>
<td>हाँ (मौजूदा वीडियो का text-guided editing)</td>
</tr>
<tr>
<td>API</td>
<td>Kuaishou, fal.ai, Replicate</td>
</tr>
</tbody>
</table>
<h3 id="grok-imagine-xai" tabindex="-1">Grok Imagine (xAI) <a class="header-anchor" href="#grok-imagine-xai" aria-label="Permalink to &quot;Grok Imagine (xAI)&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/DMXA0qGf-1s" title="Grok Imagine: Video Extension and Reference Demo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Grok Imagine reference मोड को first-frame मोड से अलग करता है, जिससे आप अपने prompt में 7 तक images को character या object reference के तौर पर tag कर सकते हैं।</div>
<p>xAI ने 2026 की शुरुआत में Grok Imagine का Reference-to-Video मोड लॉन्च किया, जिसमें 1-7 reference images का सपोर्ट है। documentation साफ़ तौर पर इसे image-to-video से अलग बताती है: &quot;image-to-video के उलट जहाँ source image शुरुआती frame बन जाता है, reference images यह प्रभावित करती हैं कि वीडियो में क्या दिखे, बिना पहले frame को lock किए।&quot;</p>
<p>आप अपने prompt में images को <code>&lt;IMAGE_1&gt;</code>, <code>&lt;IMAGE_2&gt;</code> वगैरह के तौर पर tag करते हैं। <code>&quot;the model from &lt;IMAGE_1&gt; walks onto the runway wearing the shirt from &lt;IMAGE_2&gt;&quot;</code> जैसा prompt एक व्यक्ति reference को कपड़ों के reference के साथ जोड़ता है। मॉडल virtual try-on, product placement, और सीनों भर में character-consistent storytelling को संभालता है।</p>
<p>एक पाबंदी: आप एक ही request में reference images को image-to-video के साथ नहीं जोड़ सकते। या तो first-frame मोड या reference मोड, दोनों नहीं।</p>
<p>Grok Imagine में एक video extension endpoint भी है जो मौजूदा वीडियो के अंत में नई footage जोड़ता है। <code>duration</code> पैरामीटर सिर्फ़ नए हिस्से को control करता है। आप लंबा content बनाने के लिए extensions को chain कर सकते हैं।</p>
<p>xAI ने 3 जून 2026 को Grok Imagine 1.5 को API preview के तौर पर रिलीज़ किया, फिर 16 जून को इसे <code>grok-imagine-video-1.5</code> के रूप में general availability में ले आया, और एक Fast variant consumer apps में क्रमशः आ रहा है। यह एक image-to-video मॉडल है जो एक single still को camera moves, माहौल, physics, और उसी inference pass में native रूप से बने synchronized audio के साथ cinematic motion में animate करता है। यह सुसंगत सीनों को chain करने के लिए multi-shot sequencing को सपोर्ट करता है, 6 सेकंड की 720p क्लिप लगभग 25 सेकंड में बनाता है, और फ़िलहाल Artificial Analysis image-to-video arena पर तीसरे स्थान पर है। Pricing 480p पर $0.08/sec और 720p पर $0.14/sec है, साथ में प्रति input image $0.01।</p>
<p><strong>उपलब्धता:</strong> xAI API (जनवरी 2026 में लॉन्च), fal.ai, और Replicate। Python SDK, JavaScript/AI SDK, और REST API। audio के साथ 720p पर $0.05/sec। X Premium subscribers के लिए भी उपलब्ध।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>1-15 सेकंड</td>
</tr>
<tr>
<td>Extended length</td>
<td>extension API के ज़रिए chain किया जा सकता है</td>
</tr>
<tr>
<td>Resolution</td>
<td>480p, 720p</td>
</tr>
<tr>
<td>Reference images</td>
<td>1-7 (असली reference, first-frame नहीं)</td>
</tr>
<tr>
<td>Prompt tags</td>
<td><code>&lt;IMAGE_1&gt;</code>, <code>&lt;IMAGE_2&gt;</code> वगैरह</td>
</tr>
<tr>
<td>Audio</td>
<td>हाँ (720p)</td>
</tr>
<tr>
<td>Video editing</td>
<td>हाँ (text-guided)</td>
</tr>
<tr>
<td>API</td>
<td>xAI API, fal.ai, Replicate</td>
</tr>
<tr>
<td>API cost</td>
<td>$0.05/second (audio के साथ 720p)</td>
</tr>
</tbody>
</table>
<h3 id="seedance-2-0-bytedance" tabindex="-1">Seedance 2.0 (ByteDance) <a class="header-anchor" href="#seedance-2-0-bytedance" aria-label="Permalink to &quot;Seedance 2.0 (ByteDance)&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/W_lxyDFDZt4" title="Seedance 2.0: The New Best AI Video Generator" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Seedance 2.0 एक साथ 12 तक multimodal inputs स्वीकार करता है और 8+ भाषाओं में native audio sync तथा phoneme-स्तरीय lip-sync के साथ वीडियो बनाता है।</div>
<p>ByteDance का Seedance 2.0 किसी भी मॉडल से सबसे ज़्यादा reference inputs स्वीकार करता है: एक साथ 12 तक files, जिनमें 9 तक images, 3 videos, और 3 audio files शामिल हैं। मॉडल 8+ भाषाओं में phoneme-स्तरीय lip-sync के साथ native audio-video जनरेशन को सपोर्ट करता है।</p>
<p>हर एक image 30MB तक की हो सकती है। Reference videos 2-15 सेकंड के होने चाहिए। मॉडल किरदार की दिखावट, सीन की styling, और motion मार्गदर्शन के लिए references का इस्तेमाल करता है।</p>
<p>अगली छलांग पहले से तय है। ByteDance ने 23 जून 2026 को अपने Volcano Engine FORCE सम्मेलन में Seedance 2.5 की घोषणा की: एक ही pass में एक native 30-सेकंड क्लिप और 12 से बढ़कर 50 तक multimodal reference files। यह पहले Dreamina और Jimeng के ज़रिए क्रमशः आ रहा है, और API 16 जुलाई 2026 को BytePlus पर खुलेगा। अगर यह demo के मुताबिक़ आता है, तो यह इस गाइड में बताए गए clip-stitching का काफ़ी हिस्सा हटा देगा।</p>
<p><strong>उपलब्धता:</strong> ByteDance official API (Volcengine के ज़रिए, फरवरी 2026 में लॉन्च) और third-party API providers। API के ज़रिए 480p-720p पर output, platform के ज़रिए 2K cinema resolution तक।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>4-15 सेकंड</td>
</tr>
<tr>
<td>Resolution</td>
<td>2K तक (cinema)</td>
</tr>
<tr>
<td>Reference images</td>
<td>9 तक images + 3 videos + 3 audio (कुल 12)</td>
</tr>
<tr>
<td>Audio</td>
<td>lip-sync के साथ native (8+ भाषाएँ)</td>
</tr>
<tr>
<td>API</td>
<td>ByteDance/Volcengine, third-party providers</td>
</tr>
</tbody>
</table>
<h3 id="runway-gen-4-5" tabindex="-1">Runway Gen-4.5 <a class="header-anchor" href="#runway-gen-4-5" aria-label="Permalink to &quot;Runway Gen-4.5&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/AwKSrJFvdps" title="Introducing Gen-4.5 Image to Video | Runway" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Runway Gen-4.5 Artificial Analysis leaderboard पर 1,247 ELO के साथ अगुवाई करता है, neural radiance fields और Gaussian splatting से 3D ज्यामितीय समझ के साथ।</div>
<p>Runway Gen-4.5 Artificial Analysis Text-to-Video leaderboard के शीर्ष पर 1,247 ELO के साथ लॉन्च हुआ, उस समय Veo 3 और Sora 2 Pro से आगे। 2026 के मध्य तक arena फिर से बदल चुका था (अब Gemini Omni Flash आगे है), पर Gen-4.5 cinematic क्वालिटी और controllable action के लिए एक top-tier मॉडल बना हुआ है। मॉडल text-to-video के लिए 2-10 सेकंड की क्लिप बनाता है और multi-shot sequencing के ज़रिए एक मिनट तक का character-consistent long-form वीडियो सपोर्ट करता है।</p>
<p>Image-to-video जनवरी 2026 में जोड़ा गया और यह सभी aspect ratios के लिए reference images सपोर्ट करता है। मॉडल diffusion आर्किटेक्चर के भीतर neural radiance fields और Gaussian splatting को एकीकृत करता है, जो इसे सिर्फ़ pixel-स्तरीय prediction के बजाय 3D ज्यामितीय समझ देता है। इसका मतलब बेहतर object permanence और भौतिक रूप से विश्वसनीय motion।</p>
<p><strong>उपलब्धता:</strong> Commercial API और web interface। Node और Python के लिए SDKs। Replicate पर भी उपलब्ध।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>2-10 सेकंड</td>
</tr>
<tr>
<td>Long-form mode</td>
<td>~1 मिनट तक</td>
</tr>
<tr>
<td>Resolution</td>
<td>1080p तक</td>
</tr>
<tr>
<td>Reference images</td>
<td>प्रति जनरेशन 0-1</td>
</tr>
<tr>
<td>Audio</td>
<td>Native audio जनरेशन</td>
</tr>
<tr>
<td>Multi-shot</td>
<td>हाँ</td>
</tr>
<tr>
<td>API</td>
<td>हाँ (Runway, Replicate)</td>
</tr>
</tbody>
</table>
<h3 id="google-veo-3-1" tabindex="-1">Google Veo 3.1 <a class="header-anchor" href="#google-veo-3-1" aria-label="Permalink to &quot;Google Veo 3.1&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/I06Ef8alr2Y" title="Veo 3.1: Designed to Empower Creatives" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Veo 3.1 का "Ingredients to Video" मोड native audio और 4K upscaling के साथ किरदारों, backgrounds, और textures के लिए 3 तक reference images स्वीकार करता है।</div>
<p>Google का Veo 3.1 native रूप से 4, 6, या 8 सेकंड की क्लिप बनाता है। &quot;Extend Video&quot; feature (फ़िलहाल preview में) क्लिप्स को chain करके लगभग 1-2.5 मिनट तक पहुँचता है, हालाँकि लंबी sequences पर coherence drift कर सकती है।</p>
<p>&quot;Ingredients to Video&quot; feature input के तौर पर 3 तक reference images स्वीकार करता है। आप animate करने के लिए किरदार, backgrounds, और material textures दे सकते हैं। जब आप reference images इस्तेमाल करते हैं, तो मॉडल आपके visual references के ज़्यादा करीब रहता है और कम मनमाने बदलाव करता है। एक सीमा: reference image मोड सिर्फ़ 8-सेकंड duration विकल्प के साथ काम करता है।</p>
<p>जनवरी 2026 तक, Veo 3.1 ने reference-आधारित जनरेशन के लिए vertical video (9:16) और Vertex AI पर 4K upscaling जोड़ा।</p>
<p><strong>उपलब्धता:</strong> Google Vertex AI API, Gemini API, और Google Flow। Google Cloud account ज़रूरी।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>4, 6, या 8 सेकंड</td>
</tr>
<tr>
<td>Extended length</td>
<td>~1-2.5 मिनट</td>
</tr>
<tr>
<td>Resolution</td>
<td>4K तक (upscaling के साथ)</td>
</tr>
<tr>
<td>Reference images</td>
<td>3 तक (&quot;Ingredients to Video&quot;)</td>
</tr>
<tr>
<td>Audio</td>
<td>Synchronized dialogue और music</td>
</tr>
<tr>
<td>API</td>
<td>Vertex AI, Gemini API</td>
</tr>
</tbody>
</table>
<h3 id="google-gemini-omni-flash" tabindex="-1">Google Gemini Omni Flash <a class="header-anchor" href="#google-gemini-omni-flash" aria-label="Permalink to &quot;Google Gemini Omni Flash&quot;"></a></h3>
<p>Google ने मई 2026 में I/O में Gemini Omni family की घोषणा की और अपने पहले मॉडल के तौर पर Gemini Omni Flash भेजा। इसने जल्दी ही Artificial Analysis arena पर Veo 3.1 से आगे शीर्ष स्थान ले लिया। खास बात है conversational वीडियो: आप text, images, या video से एक 10-सेकंड क्लिप बनाते हैं, फिर उसे follow-up निर्देशों के ज़रिए संपादित करते हैं जो एक-दूसरे पर बनते जाते हैं। lighting बदलें, outfit बदलें, camera समायोजित करें, सब कुछ शून्य से दोबारा बनाए बिना।</p>
<p>reference सपोर्ट के लिए, Omni Flash images और छोटी video clips को style, motion, और effect references के तौर पर स्वीकार करता है, audio references की योजना है। Character consistency conversational edits भर में टिकी रहती है, हालाँकि Google के अपने docs बताते हैं कि scene changes और camera pans में यह फिसल सकती है, इसलिए किरदार-भारी output को भेजने से पहले जाँच लें।</p>
<p><strong>उपलब्धता:</strong> API (<code>gemini-omni-flash-preview</code>) 30 जून 2026 को Google AI Studio और Gemini API के ज़रिए public preview में खुला, output के प्रति सेकंड लगभग $0.10 पर। हर क्लिप पर एक SynthID watermark होता है। Consumer access Gemini app, Google Flow, और YouTube Shorts के ज़रिए चलता है।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>10 सेकंड (लंबी अवधि की योजना)</td>
</tr>
<tr>
<td>Resolution</td>
<td>720p</td>
</tr>
<tr>
<td>Reference inputs</td>
<td>Images + छोटी video clips (audio की योजना)</td>
</tr>
<tr>
<td>Editing</td>
<td>Conversational, iterative</td>
</tr>
<tr>
<td>Audio</td>
<td>Native</td>
</tr>
<tr>
<td>API</td>
<td>Gemini API (public preview), ~$0.10/sec</td>
</tr>
</tbody>
</table>
<h3 id="openai-sora-2-sora-2-pro" tabindex="-1">OpenAI Sora 2 / Sora 2 Pro <a class="header-anchor" href="#openai-sora-2-sora-2-pro" aria-label="Permalink to &quot;OpenAI Sora 2 / Sora 2 Pro&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/gzneGhpXwjU" title="Introducing Sora 2" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Sora 2 Pro वीडियो क्लिप्स से टिकाऊ character IDs बनाता है, जो असीमित जनरेशनों भर में दोबारा इस्तेमाल हो सकते हैं और समय के साथ कोई identity drift नहीं होता।</div>
<blockquote>
<p><strong>बंद हो रहा है (2026):</strong> OpenAI Sora को समेट रहा है। consumer Sora app 26 अप्रैल 2026 को बंद हो गया, और Sora 2 API 24 सितंबर 2026 को बंद हो जाएगा, बिना किसी घोषित उत्तराधिकारी के। नीचे दी गई क्षमताएँ अब भी उल्लेखनीय हैं, पर Sora पर कोई नई pipeline न बनाएँ। इसके बजाय Kling, Grok Imagine, या कोई open मॉडल इस्तेमाल करें।</p>
</blockquote>
<p>Sora 2 Pro 20 सेकंड तक की क्लिप बनाता है। Characters API Kling या Grok से अलग तरीका इस्तेमाल करता है: static images अपलोड करने के बजाय, आप API को किसी वीडियो क्लिप की ओर इशारा करके (1-3 सेकंड timestamp range के साथ) एक <code>character_id</code> बनाते हैं। Sora चेहरे की बनावट, शरीर के अनुपात, कपड़ों की style, और दूसरी पहचानने वाली विशेषताएँ निकालने के लिए वीडियो frames का विश्लेषण करता है। वह <code>character_id</code> अनिश्चित काल तक टिका रहता है और असीमित भविष्य की जनरेशनों भर में दोबारा इस्तेमाल हो सकता है।</p>
<p>आप प्रति जनरेशन 2 तक अपलोड किए गए किरदारों को reference कर सकते हैं। मार्च 2026 तक, character references सिर्फ़ लोगों के लिए नहीं बल्कि objects और जानवरों के लिए भी काम करते हैं। Video extension continuation के context के तौर पर पूरी initial क्लिप का इस्तेमाल करता है।</p>
<p>किरदार बनाने के लिए character सिस्टम को वीडियो input (static images नहीं) चाहिए। अगर आपके पास सिर्फ़ फ़ोटो हैं, तो आपको पहले एक छोटा वीडियो बनाना होगा, फिर उससे किरदार निकालना होगा।</p>
<p><strong>उपलब्धता:</strong> Production workflows के लिए Batch API सपोर्ट के साथ OpenAI API।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>20 सेकंड तक</td>
</tr>
<tr>
<td>Resolution</td>
<td>1920x1080 तक</td>
</tr>
<tr>
<td>Character references</td>
<td>प्रति जनरेशन 2 तक (टिकाऊ <code>character_id</code>)</td>
</tr>
<tr>
<td>Character input</td>
<td>वीडियो क्लिप (1-3s timestamp range), static images नहीं</td>
</tr>
<tr>
<td>Audio</td>
<td>Synchronized</td>
</tr>
<tr>
<td>Extension</td>
<td>हाँ (पूरी क्लिप context के तौर पर)</td>
</tr>
<tr>
<td>API</td>
<td>OpenAI API + Batch API</td>
</tr>
</tbody>
</table>
<h3 id="minimax-hailuo-02" tabindex="-1">MiniMax Hailuo 02 <a class="header-anchor" href="#minimax-hailuo-02" aria-label="Permalink to &quot;MiniMax Hailuo 02&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/_1a4qYfm5iI" title="Hailuo AI: Director Mode and Subject-to-Video Demo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Hailuo 02 best-in-class physics simulation के साथ native 1080p वीडियो बनाता है, gymnastics जैसी अत्यधिक motion को बिना टूटे संभालता है।</div>
<p>Hailuo 02 लॉन्च के समय Artificial Analysis benchmark पर वैश्विक स्तर पर #2 रहा, Veo 3 को हराते हुए। यह native 1080p पर 10-सेकंड की क्लिप बनाता है और इसमें इस क्षेत्र की कुछ बेहतरीन physics simulation है। मॉडल gymnastics और acrobatics जैसी अत्यधिक motion को बिना टूटे संभालता है।</p>
<p>यह facial recognition और body tracking के ज़रिए मज़बूत character consistency के साथ image-to-video जनरेशन सपोर्ट करता है। Noise-aware Compute Redistribution आर्किटेक्चर सीन की जटिलता के आधार पर गतिशील रूप से compute आवंटित करता है।</p>
<p>MiniMax तब से Hailuo 02 से आगे Hailuo 2.3 family (Standard, Pro, Fast, Fast Pro) पर बढ़ चुका है, जो physical action, stylization, और किरदार के micro-expressions को बेहतर बनाता है। यह 6 सेकंड पर 1080p या 10 सेकंड पर 768p output करता है और MiniMax platform तथा fal.ai के ज़रिए उपलब्ध है।</p>
<p><strong>उपलब्धता:</strong> Commercial API। MiniMax platform, fal.ai, और Replicate के ज़रिए उपलब्ध। $0.28 प्रति वीडियो।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>10 सेकंड तक</td>
</tr>
<tr>
<td>Resolution</td>
<td>1080p native</td>
</tr>
<tr>
<td>Reference images</td>
<td>हाँ (I2V मोड)</td>
</tr>
<tr>
<td>Audio</td>
<td>Native नहीं</td>
</tr>
<tr>
<td>Physics</td>
<td>Best-in-class simulation</td>
</tr>
<tr>
<td>API</td>
<td>MiniMax, fal.ai, Replicate</td>
</tr>
</tbody>
</table>
<h3 id="luma-ray3-2" tabindex="-1">Luma Ray3.2 <a class="header-anchor" href="#luma-ray3-2" aria-label="Permalink to &quot;Luma Ray3.2&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/cnnGMWx-9WU" title="Luma AI - Ray3 Image to Video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Luma की Ray3 family ने पहचान lock के लिए Character Reference और multi-keyframe control जोड़ा; Ray3.2 क्लिप्स को 20 सेकंड तक ले जाता है।</div>
<p>Luma का Ray2 अब Ray3 family से आगे निकल चुका है। Ray3 (सितंबर 2025) ने पहचान lock के लिए Character Reference और एक Modify video-to-video मोड जोड़ा, और Ray3.2 (9 जून 2026) ने प्रति क्लिप 16 तक keyframes के साथ frame-स्तरीय control, एक Reframe feature, और 20 सेकंड तक की क्लिप्स जोड़ीं, साथ ही Ray3 लाइन का पहला public API। Output native 1080p है, Hi-Fi upscale के ज़रिए 4K उपलब्ध है। Image-to-video reference images को start या end keyframes के तौर पर स्वीकार करता है।</p>
<p><strong>उपलब्धता:</strong> Luma API और web interface।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>20 सेकंड तक (Ray3.2)</td>
</tr>
<tr>
<td>Reference type</td>
<td>Start/end keyframes + Character Reference (पहचान)</td>
</tr>
<tr>
<td>Resolution</td>
<td>1080p native, upscale के ज़रिए 4K</td>
</tr>
<tr>
<td>Reference images</td>
<td>हाँ (keyframes + character ref)</td>
</tr>
<tr>
<td>API</td>
<td>Luma API</td>
</tr>
</tbody>
</table>
<h3 id="pika-2-5" tabindex="-1">Pika 2.5 <a class="header-anchor" href="#pika-2-5" aria-label="Permalink to &quot;Pika 2.5&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/JxgUkF_2alk" title="Pika 2.2: PikaFrames Keyframe Video Generation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Pikaframes 2-5 keyframe images के बीच सहज transitions बनाता है, reference stills से 25 सेकंड तक का सुसंगत वीडियो तैयार करता है।</div>
<p>Pika Pikaframes के साथ एक keyframe-आधारित तरीका अपनाता है। 2-5 keyframes (अहम पलों पर reference images) अपलोड करें और मॉडल उनके बीच सहज transitions बनाता है। कुल duration 20-25 सेकंड तक पहुँचता है।</p>
<p>Pikascenes 10 तक reference images स्वीकार करता है और उन्हें एक ही वीडियो में जोड़ता है। मॉडल हर reference की भूमिका (character, background, prop) अपने आप पहचानने के लिए image recognition का इस्तेमाल करता है।</p>
<p><strong>उपलब्धता:</strong> Pika web platform और API। Free से Pro तक subscription plans।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Native clip length</td>
<td>5-10 सेकंड</td>
</tr>
<tr>
<td>Pikaframes length</td>
<td>20-25 सेकंड</td>
</tr>
<tr>
<td>Resolution</td>
<td>1080p तक</td>
</tr>
<tr>
<td>Reference images</td>
<td>10 तक (Pikascenes), 2-5 keyframes (Pikaframes)</td>
</tr>
<tr>
<td>API</td>
<td>हाँ</td>
</tr>
</tbody>
</table>
<h2 id="tier-3-self-hosted-workflows-के-लिए-ओपन-सोर्स-मॉडल" tabindex="-1">Tier 3: Self-Hosted Workflows के लिए ओपन-सोर्स मॉडल <a class="header-anchor" href="#tier-3-self-hosted-workflows-के-लिए-ओपन-सोर्स-मॉडल" aria-label="Permalink to &quot;Tier 3: Self-Hosted Workflows के लिए ओपन-सोर्स मॉडल&quot;"></a></h2>
<p>ये मॉडल छोटी क्लिप बनाते हैं पर ये पूरी तरह ओपन हैं। आप इन्हें अपने hardware पर चला सकते हैं, इन्हें fine-tune कर सकते हैं, और API निर्भरताओं के बिना custom extension pipelines बना सकते हैं।</p>
<h3 id="wan-2-1-alibaba" tabindex="-1">Wan 2.1 (Alibaba) <a class="header-anchor" href="#wan-2-1-alibaba" aria-label="Permalink to &quot;Wan 2.1 (Alibaba)&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/2CObXv_CLyY" title="Introducing Wan2.1: AI Video Generation" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">Wan 2.1 कई दूसरे मॉडलों की नींव देता है, 1.3B से 14B पैरामीटर variants भर में I2V, First-Last-Frame, और video editing modes के साथ।</div>
<p>Wan 2.1 वह नींव है जिस पर कई दूसरे मॉडल बने हैं (Helios समेत)। Wan-VAE आर्किटेक्चर किसी भी लंबाई के 1080p वीडियो को encode और decode करता है और साथ ही temporal जानकारी बनाए रखता है। मॉडल 480p और 720p पर I2V variants में आता है, साथ ही एक First-Last-Frame-to-Video मॉडल जो दो reference images के बीच वीडियो बनाता है।</p>
<p>Wan-Edit खास संरचनाओं या किरदार poses को बनाए रखते हुए reference images का इस्तेमाल करके style और content transfer की इजाज़त देता है। Wan 2.2 (जुलाई 2025) नई open रिलीज़ है, एक Mixture-of-Experts मॉडल जिसका 5B variant एक single RTX 4090 पर चलता है, अब भी Apache 2.0 के तहत। self-host करने वालों के लिए एक अहम चेतावनी: Wan 2.5 पर closed हो गया। नए Wan 2.5, 2.6, और अब 2.7 (जो 2026 के मध्य की Artificial Analysis with-audio arena पर तीसरे स्थान पर है) ने synced audio और ऊँचा resolution जोड़ा पर ये API-only हैं, बिना public weights के, इसलिए 2.2 अब भी open की छत है। Wan 2.7 weights के downloadable होने का दावा करने वाले SEO pages को नज़रअंदाज़ करें। official GitHub org और Hugging Face account 2.2 पर ही रुकते हैं।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Parameters</td>
<td>1.3B, 5B, 14B (2.1); 5B + 14B MoE (2.2)</td>
</tr>
<tr>
<td>I2V modes</td>
<td>I2V-480P, I2V-720P, FLF2V-720P</td>
</tr>
<tr>
<td>Open ceiling</td>
<td>Wan 2.2 (2.5 से 2.7 API-only हैं)</td>
</tr>
<tr>
<td>License</td>
<td>Apache 2.0</td>
</tr>
<tr>
<td>Hardware</td>
<td>8GB+ VRAM (छोटे variants)</td>
</tr>
<tr>
<td>Platforms</td>
<td>Diffusers, ComfyUI</td>
</tr>
</tbody>
</table>
<h3 id="hunyuanvideo-tencent" tabindex="-1">HunyuanVideo (Tencent) <a class="header-anchor" href="#hunyuanvideo-tencent" aria-label="Permalink to &quot;HunyuanVideo (Tencent)&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/tqteD9U2R_4" title="HunyuanVideo: Tencent's Open-Source Video Generator" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">HunyuanVideo का 13B पैरामीटर मॉडल 2025 के ज़्यादातर हिस्से में ओपन-सोर्स में अग्रणी रहा, जिसमें I2V, avatars, और customized जनरेशन के variants हैं।</div>
<p>Tencent का 13B पैरामीटर मॉडल 2025 के ज़्यादातर हिस्से में ओपन-सोर्स video जनरेशन में अग्रणी रहा। HunyuanVideo-I2V reference image जानकारी शामिल करने के लिए एक pre-trained MLLM के साथ token replace तकनीक का इस्तेमाल करता है। नवंबर 2025 में रिलीज़ हुए HunyuanVideo-1.5 ने दक्षता बेहतर की। HunyuanCustom multimodal-driven customized video जनरेशन को मुमकिन बनाता है।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Parameters</td>
<td>13B</td>
</tr>
<tr>
<td>I2V</td>
<td>हाँ (token replace तकनीक)</td>
</tr>
<tr>
<td>License</td>
<td>ओपन सोर्स</td>
</tr>
<tr>
<td>Hardware</td>
<td>60GB+ VRAM (720p)</td>
</tr>
<tr>
<td>Variants</td>
<td>Base, I2V, 1.5, Avatar, Custom</td>
</tr>
</tbody>
</table>
<h3 id="ltx-2-lightricks" tabindex="-1">LTX-2 (Lightricks) <a class="header-anchor" href="#ltx-2-lightricks" aria-label="Permalink to &quot;LTX-2 (Lightricks)&quot;"></a></h3>
<p>Lightricks ने जनवरी 2026 में LTX-2 को पूरे weights, inference code, और training code के साथ open-source किया। यह एक DiT-आधारित मॉडल है जो वीडियो और synchronized audio को एक ही pass में एक साथ बनाता है, native 4K पर और 50fps तक, 20 सेकंड तक की क्लिप्स के साथ। Image-to-video और multi-keyframe conditioning built-in हैं, तो आप Pikaframes की तरह क्लिप में कई जगहों पर reference stills pin कर सकते हैं।</p>
<p>license ही पेच है, या नहीं है, आपके आकार पर निर्भर। LTX-2 research के लिए और $10M सालाना राजस्व से कम के commercial इस्तेमाल के लिए मुफ़्त है। उससे ऊपर आपको एक commercial license चाहिए, इसलिए यह सख़्त अर्थ में open source के बजाय open weights है। मौजूदा checkpoint LTX-2.3 एक 22B पैरामीटर अपडेट है जिसमें audio और prompt adherence बेहतर है। Weights, distilled 8-step variants, LoRA adapters, और ComfyUI तथा Diffusers integrations के साथ Hugging Face पर हैं, और hosted APIs LTX platform, fal.ai, और Replicate पर चलते हैं।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Parameters</td>
<td>22B (LTX-2.3)</td>
</tr>
<tr>
<td>Max clip</td>
<td>~20 सेकंड</td>
</tr>
<tr>
<td>Resolution</td>
<td>Native 4K, 50fps तक</td>
</tr>
<tr>
<td>Audio</td>
<td>Native synchronized</td>
</tr>
<tr>
<td>I2V</td>
<td>हाँ (image + multi-keyframe conditioning)</td>
</tr>
<tr>
<td>License</td>
<td>LTX-2 Community License ($10M ARR से कम मुफ़्त)</td>
</tr>
<tr>
<td>Hardware</td>
<td>consumer GPUs के लिए distilled और FP8 variants</td>
</tr>
</tbody>
</table>
<h3 id="cogvideox-tsinghua-zhipu-ai" tabindex="-1">CogVideoX (Tsinghua/Zhipu AI) <a class="header-anchor" href="#cogvideox-tsinghua-zhipu-ai" aria-label="Permalink to &quot;CogVideoX (Tsinghua/Zhipu AI)&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/eg2S52BYjjc" title="CogVideoX: Text to Video Generation with 2B and 5B Models" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="video-caption">CogVideoX एक 12GB GPU पर चलता है, text-to-video, image-to-video, और video-to-video modes के साथ 720x480 पर 6-10 सेकंड की क्लिप बनाता है।</div>
<p>CogVideoX एक 3D causal VAE इस्तेमाल करता है जो sequence length घटाता है और flickering रोकता है। adaptive LayerNorm transformer text-video alignment बेहतर करता है। native Diffusers इंटीग्रेशन के साथ 2B (Apache 2.0) और 5B (research license) variants में उपलब्ध।</p>
<p>क्लिप्स 720x480 पर 6-10 सेकंड की हैं। छोटी, पर quality-to-compute अनुपात अच्छा है और यह एक 12GB GPU पर चलता है।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Parameters</td>
<td>2B, 5B</td>
</tr>
<tr>
<td>I2V</td>
<td>हाँ (CogVideoXImageToVideoPipeline)</td>
</tr>
<tr>
<td>Resolution</td>
<td>720x480 at 8fps</td>
</tr>
<tr>
<td>License</td>
<td>Apache 2.0 (2B), Research (5B)</td>
</tr>
<tr>
<td>Hardware</td>
<td>12GB VRAM</td>
</tr>
</tbody>
</table>
<h2 id="first-frame-बनाम-असली-reference-मुख्य-फ़र्क़" tabindex="-1">First-Frame बनाम असली Reference: मुख्य फ़र्क़ <a class="header-anchor" href="#first-frame-बनाम-असली-reference-मुख्य-फ़र्क़" aria-label="Permalink to &quot;First-Frame बनाम असली Reference: मुख्य फ़र्क़&quot;"></a></h2>
<p>हर &quot;reference image&quot; सपोर्ट एक जैसा नहीं होता। सही मॉडल चुनने के लिए इस फ़र्क़ को समझना बेहद ज़रूरी है।</p>
<p><strong>First-frame मॉडल</strong> (LongCat, Helios, Hailuo, Luma Ray2, HunyuanVideo) आपकी image को literal opening frame मानते हैं। मॉडल उसी सटीक visual से आगे की ओर animate करता है। आप किसी किरदार का headshot अपलोड करके उसे किसी अलग सीन में नहीं बता सकते। image ही सीन है।</p>
<p><strong>असली reference मॉडल</strong> (Kling, Grok Imagine, Seedance, SkyReels V3) आपकी image से पहचान निकालते हैं और उस किरदार/object को आपके बताए किसी भी सीन में रख देते हैं। किसी व्यक्ति की फ़ोटो अपलोड करें, फिर prompt करें &quot;वह व्यक्ति सूर्यास्त के समय जंगल से गुज़रता है।&quot; किरदार अपनी पहचान बनाए रखते हुए पूरी तरह नए environment में दिखता है। adventure movie जैसे multi-scene narrative content के लिए आपको यही चाहिए।</p>
<p><strong>Character ID मॉडल</strong> (Sora 2 Pro) static images के बजाय वीडियो क्लिप्स से पहचान निकालते हैं। आप एक बार एक टिकाऊ character ID बनाते हैं और उसे असीमित भविष्य की जनरेशनों भर में दोबारा इस्तेमाल करते हैं।</p>
<p><strong>Style/ingredient मॉडल</strong> (Veo 3.1) reference images का इस्तेमाल खास किरदार पहचान निकालने के बजाय visual style, textures, और समग्र लुक को प्रभावित करने के लिए करते हैं। किसी प्रोजेक्ट भर में visual consistency बनाए रखने के लिए अच्छे, अलग-अलग किरदार control के लिए कम सटीक।</p>
<h2 id="_10-मिनट-के-वीडियो-के-लिए-असली-workflow" tabindex="-1">10-मिनट के वीडियो के लिए असली Workflow <a class="header-anchor" href="#_10-मिनट-के-वीडियो-के-लिए-असली-workflow" aria-label="Permalink to &quot;10-मिनट के वीडियो के लिए असली Workflow&quot;"></a></h2>
<p>2026 के मध्य में चीज़ें कहाँ खड़ी हैं, इसका ईमानदार आकलन यहाँ है। कोई भी अकेला मॉडल एक ही बार में भरोसेमंद तरीके से 10 मिनट का सुसंगत, उच्च-क्वालिटी वीडियो नहीं बनाता। LongCat Video 15 मिनट के दावों के साथ सबसे करीब पहुँचता है, पर उन लंबाइयों पर क्वालिटी और coherence काफ़ी बदलती है। Helios और SkyReels V2 क्रमशः &quot;मिनट-स्तर&quot; और &quot;असीमित-लंबाई&quot; का वीडियो बनाते हैं, पर outputs को सावधानीपूर्वक prompting और अक्सर कई कोशिशों की ज़रूरत होती है।</p>
<p>5-15 मिनट के वीडियो बनाने वाले ज़्यादातर creators के लिए जो workflow सचमुच काम करता है वह कई तरीकों को जोड़ता है:</p>
<p><strong>Talking head / avatar content के लिए:</strong> LongCat Video का 2026 audio-driven मोड या SkyReels V3 का avatar जनरेशन एक सुसंगत बोलते किरदार के 5+ मिनट बना सकता है। यह &quot;बटन दबाओ, लंबा वीडियो पाओ&quot; के सबसे करीब है।</p>
<p><strong>कई सीनों वाले narrative content के लिए (adventure movie शैली):</strong> असली character reference images के साथ Kling 3.0, Grok Imagine, या Seedance 2.0 इस्तेमाल करें। हर एक 10-15 सेकंड के अलग-अलग shots बनाएँ। किरदार की पहचान बनाए रखने के लिए हर जनरेशन भर में वही @Element या <code>&lt;IMAGE&gt;</code> references इस्तेमाल करें। multi-shot मोड (Kling प्रति call 6 shots सपोर्ट करता है) या extend API का इस्तेमाल करके shots को आपस में जोड़ें। इस workflow के लिए Kling सबसे ज़्यादा आज़माया-परखा है। Grok Imagine का &quot;reference मोड&quot; और &quot;first-frame मोड&quot; के बीच स्पष्ट अलगाव इसे एक मज़बूत विकल्प बनाता है। Seedance 2.0 सबसे ज़्यादा reference inputs (12 files) स्वीकार करता है पर नया है और कम परखा हुआ है।</p>
<p><strong>कई क्लिप्स भर में character consistency के लिए:</strong> Sora 2 Pro का टिकाऊ <code>character_id</code> सिस्टम बहुत लंबे प्रोजेक्ट्स के लिए सबसे साफ़ तरीका है। एक बार किसी छोटे वीडियो से किरदार निकालें, फिर उस ID को reference करते हुए दर्जनों क्लिप बनाएँ। किरदार की पहचान समय के साथ बिगड़ती नहीं क्योंकि यह एक टिकाऊ embedding के तौर पर संग्रहीत होती है, हर बार किसी image से दोबारा व्याख्या नहीं होती।</p>
<p><strong>Style-transferred content के लिए:</strong> fal.ai पर Lucy Restyle motion को बनाए रखते हुए AI style बदलाव लागू करके 30 मिनट तक के मौजूदा वीडियो को process करता है। अगर आपके पास source footage है, तो यह जनरेशन लंबाई की समस्या को पूरी तरह किनारे कर देता है। source वीडियो के प्रति सेकंड $0.01।</p>
<p><strong>ओपन-सोर्स pipelines के लिए:</strong> Wan 2.1 या Helios पर एक video continuation loop के साथ बनाएँ। एक क्लिप बनाएँ, आख़िरी frame को अगली क्लिप के start frame के तौर पर इस्तेमाल करें, दोहराएँ। ComfyUI workflows इसे स्वचालित करते हैं। कई iterations पर consistency बिगड़ती है पर यह मुफ़्त और controllable है।</p>
<p>मूल चुनौती बनी रहती है: असली reference image सपोर्ट के साथ भी, दर्जनों क्लिप्स भर में character drift बढ़ता जाता है। चेहरे की विशेषताएँ, बाल, कपड़े, और त्वचा का रंग धीरे-धीरे बदलते हैं। उपाय (उच्च-क्वालिटी reference photos, सुसंगत prompting, shot batching) ज़रूरी हैं। पर Kling और Grok Imagine जैसे मॉडल जो किरदार की पहचान को सीन composition से अलग करते हैं, इसे first-frame-only मॉडलों से कहीं ज़्यादा आसान बना देते हैं।</p>
<h2 id="_3d-scaffold-तरीका-कम-पर-render-ऊँचा-transform" tabindex="-1">3D Scaffold तरीका: कम पर Render, ऊँचा Transform <a class="header-anchor" href="#_3d-scaffold-तरीका-कम-पर-render-ऊँचा-transform" aria-label="Permalink to &quot;3D Scaffold तरीका: कम पर Render, ऊँचा Transform&quot;"></a></h2>
<p>एक workflow जोर पकड़ रहा है जो ज़्यादातर long-form जनरेशन समस्याओं को पूरी तरह किनारे कर देता है। किसी AI मॉडल से शून्य से 10 मिनट का वीडियो बनवाने के बजाय, आप सही camera work, character blocking, और timing के साथ एक low-fidelity 3D cutscene render करते हैं, फिर उसे reference images और एक enhancement prompt के साथ video-to-video मॉडल से गुज़ारते हैं। 3D engine संरचना संभालता है। AI सौंदर्य संभालता है।</p>
<p>यह इसलिए काम करता है क्योंकि V2V transformation पूरी जनरेशन से कहीं संकरी समस्या है। मॉडल को camera motion, किरदार रखना, या सीन composition गढ़ने की ज़रूरत नहीं होती। उसे बस मौजूदा footage को आपके visual references का पालन करते हुए photorealistic बनाना होता है। यह कहीं ज़्यादा संभव है, और यह किसी भी लंबाई तक scale करता है जो आपका 3D engine render कर सके।</p>
<h3 id="यह-क्यों-काम-करता-है" tabindex="-1">यह क्यों काम करता है <a class="header-anchor" href="#यह-क्यों-काम-करता-है" aria-label="Permalink to &quot;यह क्यों काम करता है&quot;"></a></h3>
<p>आपका 3D engine आपको वह सब देता है जिससे AI वीडियो मॉडल अभी भी जूझते हैं: सटीक camera control, frame भर में किरदार का बिल्कुल सही placement, सही physics interactions, और मिनटों की footage भर में सुसंगत timing। Dolly zooms, tracking shots, इशारे पर किरदारों का frame में आना और जाना, ये सब 3D engine में आसान हैं, ये सब text-prompted जनरेशन में अविश्वसनीय हैं। V2V मॉडल का इकलौता काम है materials, lighting, और textures को photorealistic output में बदलना और साथ ही उस geometry और motion को बनाए रखना जो आप पहले ही परिभाषित कर चुके हैं।</p>
<p>Character consistency भी आसान हो जाती है। 50 अलग AI जनरेशनों भर में identity drift से लड़ने के बजाय, आप मॉडल को हर frame में वही 3D किरदार दिखा रहे हैं। reference images मॉडल को बताती हैं कि उस किरदार को आख़िरी output में कैसा दिखना चाहिए। यह हर बार शून्य से एक सुसंगत किरदार बनाने से सरल समस्या है।</p>
<p>और लंबाई अब कोई बाधा नहीं रही। Lucy Restyle एक ही call में 30 मिनट संभालता है। ComfyUI में Wan 2.1 किसी भी लंबाई को chunks में process कर सकता है। आप &quot;मैं 10 मिनट कैसे बनाऊँ&quot; वाली समस्या से बिल्कुल नहीं लड़ रहे क्योंकि footage पहले से मौजूद है।</p>
<h3 id="realmaster-meta-tel-aviv-university" tabindex="-1">RealMaster (Meta / Tel Aviv University) <a class="header-anchor" href="#realmaster-meta-tel-aviv-university" aria-label="Permalink to &quot;RealMaster (Meta / Tel Aviv University)&quot;"></a></h3>
<p>RealMaster खास इसी workflow के लिए बना एक research सिस्टम है। मार्च 2026 में Meta Reality Labs और Tel Aviv University द्वारा प्रकाशित, यह render किए गए 3D वीडियो को photorealistic वीडियो में बदलता है और साथ ही source के साथ पूरी ज्यामितीय संरेखण बनाए रखता है।</p>
<p>यह तरीका संरचना और motion बनाए रखने के लिए 3D render से edge maps निकालता है, फिर बाक़ी सब कुछ photorealistic output में बदलने के लिए एक video diffusion मॉडल (VACE/Wan आर्किटेक्चर पर बना) लागू करता है। एक हल्का IC-LoRA adapter pipeline को एक single inference pass में distill कर देता है जिसे anchor frames की ज़रूरत नहीं होती और जो sequence के बीच में आने वाले objects को संभालता है।</p>
<p>GTA-V और CARLA simulator sequences पर परखा गया, RealMaster सामान्य-उद्देश्य video editing baselines से काफ़ी बेहतर प्रदर्शन करता है। यह realism transformation के ऊपर text prompt के ज़रिए मौसम के प्रभाव (&quot;Make it rain&quot;, &quot;Make it snow&quot;) भी परत-दर-परत जोड़ सकता है। मॉडल बिना retraining के simulators भर में सामान्यीकृत होता है। GTA-V data पर ट्रेन किए गए weights बिना किसी अतिरिक्त tuning के CARLA output पर काम करते हैं।</p>
<p><strong>उपलब्धता:</strong> सिर्फ़ research। अभी कोई सार्वजनिक weights या API नहीं।</p>
<table tabindex="0">
<thead>
<tr>
<th>Spec</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Input</td>
<td>Render किया गया 3D वीडियो (कोई भी engine)</td>
</tr>
<tr>
<td>Output</td>
<td>geometry और motion बनाए रखने वाला photorealistic वीडियो</td>
</tr>
<tr>
<td>Architecture</td>
<td>VACE/Wan video diffusion backbone पर IC-LoRA</td>
</tr>
<tr>
<td>Conditioning</td>
<td>source render से edge maps</td>
</tr>
<tr>
<td>Tested on</td>
<td>GTA-V, CARLA simulator</td>
</tr>
<tr>
<td>License</td>
<td>रिलीज़ नहीं हुआ (सिर्फ़ research paper)</td>
</tr>
</tbody>
</table>
<h3 id="आज-उपलब्ध-production-v2v-tools" tabindex="-1">आज उपलब्ध Production V2V Tools <a class="header-anchor" href="#आज-उपलब्ध-production-v2v-tools" aria-label="Permalink to &quot;आज उपलब्ध Production V2V Tools&quot;"></a></h3>
<p><strong>Element References के साथ Kling 3.0 V2V</strong> सबसे पूरा production विकल्प है। fal.ai पर Edit Video और Reference V2V endpoints element references (<code>@Element1</code>, <code>@Element2</code>, frontal और multi-angle फ़ोटो के साथ) तथा एक enhancement prompt के साथ-साथ 3-10 सेकंड के source video क्लिप स्वीकार करते हैं। मॉडल source में motion trajectories और camera patterns का विश्लेषण करता है, फिर मूल staging और camera work को बनाए रखते हुए आपकी बताई किरदार दिखावटों और visual style के साथ footage दोबारा बनाता है। 7 तक reference inputs। 1080p पर output। किरदार consistency बनाए रखने के लिए सभी chunks भर में वही element references के साथ अपने cutscene को 10-15 सेकंड के chunks में process करें।</p>
<p><strong>Lucy Restyle 2</strong> एक ही API call में $0.01 प्रति सेकंड input पर 30 मिनट तक का source वीडियो संभालता है। यह एक text prompt और style मार्गदर्शन के लिए एक वैकल्पिक reference image स्वीकार करता है। Kling जैसे प्रति-किरदार element references नहीं, पर एक पूरी लंबाई वाले 3D render के समग्र cinematic style transfer के लिए यह सबसे सरल और सस्ता रास्ता है। इसे अपना पूरा render और target लुक बताने वाला एक prompt दें। हज़ारों frames भर में temporal consistency के साथ 720p पर output।</p>
<p><strong>ComfyUI में Wan 2.1 VACE</strong> ओपन-सोर्स रास्ता है। 14B VACE मॉडल reference-driven V2V करता है: एक source वीडियो और एक style reference image input करें, एक restyled version output करें जो संरचना और motion बनाए रखता है। Edge map conditioning संरचनात्मक निष्ठा बेहतर करता है। आप एक processing loop बना सकते हैं जो किसी भी लंबाई को सुसंगत style references के साथ chunks में संभालता है। मुफ़्त, आपके अपने hardware पर locally चलता है।</p>
<p><strong>Grok Imagine V2V</strong> reference मोड में source वीडियो के साथ 1-7 reference images स्वीकार करता है। 720p पर $0.05 प्रति सेकंड। reference मोड और first-frame मोड के बीच स्पष्ट अलगाव का मतलब है कि आपके references source वीडियो की संरचना को override किए बिना किरदार की दिखावट का मार्गदर्शन करते हैं।</p>
<h3 id="आपके-3d-render-को-क्या-चाहिए" tabindex="-1">आपके 3D Render को क्या चाहिए <a class="header-anchor" href="#आपके-3d-render-को-क्या-चाहिए" aria-label="Permalink to &quot;आपके 3D Render को क्या चाहिए&quot;"></a></h3>
<p>render quality का न्यूनतम स्तर मायने रखता है। एक नंगा wireframe V2V मॉडल को काम करने के लिए काफ़ी नहीं देगा। पर आपको production-quality materials या lighting की भी ज़रूरत नहीं है।</p>
<p><strong>सही अनुपात और geometry।</strong> किरदार मॉडलों को reference images के सही mapping के लिए लगभग सही शरीर के अनुपात और चेहरे की बनावट चाहिए। सही अनुपात वाली बुनियादी humanoid geometry काफ़ी है। एक stick figure पहचानने लायक किरदार नहीं बनाएगा।</p>
<p><strong>बुनियादी lighting direction।</strong> सीन की समग्र रोशनी तय करने वाली एक single directional light मॉडल को इच्छित मूड समझने में मदद करती है। AI विस्तार बढ़ाएगा और जोड़ेगा, पर उसे जानना ज़रूरी है कि सीन उजली दिन की रोशनी है या अँधेरा interior।</p>
<p><strong>सहज camera motion।</strong> स्थिर, सोचे-समझे camera moves अच्छी तरह translate होते हैं। अनियमित या बेहद तेज़ motion V2V मॉडलों को भ्रमित कर सकती है। अपने virtual camera को असली camera की तरह व्यवहार करने दें।</p>
<p><strong>Wireframe के बजाय flat shading।</strong> सरल flat-shaded या low-poly geometry wireframes या बिना texture वाले मॉडलों से बेहतर नतीजे देती है। सतहों पर बुनियादी ठोस रंग भी मॉडल को material boundaries समझने में मदद करते हैं।</p>
<h3 id="cost-और-scale" tabindex="-1">Cost और Scale <a class="header-anchor" href="#cost-और-scale" aria-label="Permalink to &quot;Cost और Scale&quot;"></a></h3>
<p>अलग-अलग tools के ज़रिए 10-मिनट के cutscene को process करना:</p>
<table tabindex="0">
<thead>
<tr>
<th>Tool</th>
<th>Max Input Length</th>
<th>10 min के लिए Cost</th>
<th>Resolution</th>
<th>Reference Images</th>
</tr>
</thead>
<tbody>
<tr>
<td>Kling O3 V2V</td>
<td>10s clips</td>
<td>~$50-67</td>
<td>1080p</td>
<td>7 तक (elements + style)</td>
</tr>
<tr>
<td>Lucy Restyle 2</td>
<td>30 मिनट</td>
<td>$6</td>
<td>720p</td>
<td>1 (सिर्फ़ style)</td>
</tr>
<tr>
<td>Grok Imagine V2V</td>
<td>10s clips</td>
<td>~$30</td>
<td>720p</td>
<td>1-7</td>
</tr>
<tr>
<td>Wan 2.1 VACE</td>
<td>कोई भी (chunked)</td>
<td>मुफ़्त (local GPU)</td>
<td>720p</td>
<td>प्रति chunk 1</td>
</tr>
</tbody>
</table>
<p>पूरी लंबाई की processing के लिए Lucy Restyle सबसे सस्ता है। element references के साथ किरदार-विशिष्ट enhancement के लिए Kling सबसे सटीक है। अगर आपके पास hardware है तो Wan 2.1 मुफ़्त है (720p पर 14B मॉडल के लिए लगभग 60GB VRAM चाहिए, या कम क्वालिटी पर 1.3B variant के लिए 8GB)।</p>
<h2 id="तुलना-तालिका" tabindex="-1">तुलना तालिका <a class="header-anchor" href="#तुलना-तालिका" aria-label="Permalink to &quot;तुलना तालिका&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Max Native Duration</th>
<th>Extended Duration</th>
<th>Reference Type</th>
<th>Max Refs</th>
<th>Resolution</th>
<th>API Available</th>
<th>Open Source</th>
</tr>
</thead>
<tbody>
<tr>
<td>LongCat Video</td>
<td>~15 min</td>
<td>N/A</td>
<td>सिर्फ़ First-frame</td>
<td>1</td>
<td>720p/30fps</td>
<td>हाँ (fal.ai)</td>
<td>हाँ (MIT)</td>
</tr>
<tr>
<td>Seaweed APT2</td>
<td>~5 min</td>
<td>N/A</td>
<td>I2V + pose</td>
<td>1</td>
<td>720p</td>
<td>नहीं</td>
<td>नहीं</td>
</tr>
<tr>
<td>Helios</td>
<td>मिनट-स्तर</td>
<td>N/A</td>
<td>First-frame (I2V)</td>
<td>1</td>
<td>720p</td>
<td>HF Spaces</td>
<td>हाँ (Apache 2.0)</td>
</tr>
<tr>
<td>SkyReels V3</td>
<td>असीमित</td>
<td>N/A</td>
<td>असली reference</td>
<td>1-4</td>
<td>720p</td>
<td>नहीं</td>
<td>हाँ</td>
</tr>
<tr>
<td><strong>Kling 3.0</strong></td>
<td>15s</td>
<td>~3 min</td>
<td><strong>Elements + style refs</strong></td>
<td><strong>7</strong></td>
<td>1080p</td>
<td>हाँ</td>
<td>नहीं</td>
</tr>
<tr>
<td><strong>Grok Imagine</strong></td>
<td>15s</td>
<td>Chain-able</td>
<td><strong>असली reference</strong></td>
<td><strong>7</strong></td>
<td>720p</td>
<td>हाँ</td>
<td>नहीं</td>
</tr>
<tr>
<td><strong>Seedance 2.0</strong></td>
<td>15s</td>
<td>N/A</td>
<td><strong>Multi-modal refs</strong></td>
<td><strong>12</strong></td>
<td>2K</td>
<td>हाँ</td>
<td>नहीं</td>
</tr>
<tr>
<td>Runway Gen-4.5</td>
<td>10s</td>
<td>~1 min</td>
<td>I2V (0-1)</td>
<td>1</td>
<td>1080p</td>
<td>हाँ</td>
<td>नहीं</td>
</tr>
<tr>
<td>Veo 3.1</td>
<td>8s</td>
<td>~2.5 min</td>
<td>Ingredients (style)</td>
<td>3</td>
<td>4K</td>
<td>हाँ</td>
<td>नहीं</td>
</tr>
<tr>
<td>Gemini Omni Flash</td>
<td>10s</td>
<td>Conversational edits</td>
<td>Multimodal refs</td>
<td>Images + video</td>
<td>720p</td>
<td>हाँ (preview)</td>
<td>नहीं</td>
</tr>
<tr>
<td>Sora 2 Pro ⚠️ बंद हो रहा</td>
<td>20s</td>
<td>Chain-able</td>
<td>Character ID (video)</td>
<td>2</td>
<td>1080p</td>
<td>API सितंबर 2026 बंद</td>
<td>नहीं</td>
</tr>
<tr>
<td>Hailuo 02</td>
<td>10s</td>
<td>N/A</td>
<td>I2V (first-frame)</td>
<td>1</td>
<td>1080p</td>
<td>हाँ</td>
<td>नहीं</td>
</tr>
<tr>
<td>Luma Ray3.2</td>
<td>20s</td>
<td>N/A</td>
<td>Keyframes + character ref</td>
<td>16 keyframes</td>
<td>1080p (4K upscale)</td>
<td>हाँ</td>
<td>नहीं</td>
</tr>
<tr>
<td>Pika 2.5</td>
<td>10s</td>
<td>25s</td>
<td>Pikascenes</td>
<td>10</td>
<td>1080p</td>
<td>हाँ</td>
<td>नहीं</td>
</tr>
<tr>
<td>Wan 2.1</td>
<td>छोटी क्लिप्स</td>
<td>Continuation के ज़रिए</td>
<td>I2V / FLF2V</td>
<td>1-2</td>
<td>720p</td>
<td>fal.ai के ज़रिए</td>
<td>हाँ (Apache 2.0)</td>
</tr>
<tr>
<td>HunyuanVideo</td>
<td>छोटी क्लिप्स</td>
<td>Continuation के ज़रिए</td>
<td>I2V (first-frame)</td>
<td>1</td>
<td>720p</td>
<td>fal.ai के ज़रिए</td>
<td>हाँ</td>
</tr>
<tr>
<td>LTX-2.3</td>
<td>20s</td>
<td>Continuation के ज़रिए</td>
<td>I2V + keyframes</td>
<td>Multi-keyframe</td>
<td>4K</td>
<td>हाँ (LTX, fal.ai)</td>
<td>Weights (ARR-capped)</td>
</tr>
<tr>
<td>CogVideoX</td>
<td>6-10s</td>
<td>Continuation के ज़रिए</td>
<td>I2V (first-frame)</td>
<td>1</td>
<td>720x480</td>
<td>fal.ai के ज़रिए</td>
<td>हाँ</td>
</tr>
</tbody>
</table>
<h2 id="आगे-क्या-आ-रहा-है" tabindex="-1">आगे क्या आ रहा है <a class="header-anchor" href="#आगे-क्या-आ-रहा-है" aria-label="Permalink to &quot;आगे क्या आ रहा है&quot;"></a></h2>
<p>2026 भर की दिशा साफ़ है। LongCat Video ने साबित किया कि एक ओपन मॉडल में consistency के साथ मिनट-स्तर का जनरेशन मुमकिन है। Helios ने दिखाया कि यह real-time में हो सकता है। Seaweed APT2 ने interactive long-form जनरेशन का प्रदर्शन किया। और असली-reference मॉडलों (Kling, Grok, Seedance) ने साबित किया कि किरदार की पहचान मनमाने सीनों भर में टिक सकती है।</p>
<p>अगला कदम इन क्षमताओं को जोड़ना है: native long-form जनरेशन असली character reference सपोर्ट के साथ। अभी आप एक या दूसरा चुनते हैं। जब कोई मॉडल reference images से किरदारों को दर्जनों सीन बदलावों भर में बनाए रखते हुए 5 मिनट का वीडियो बना सकेगा, तब chained-clips workflow अप्रचलित हो जाएगा। Seedance 2.5 के घोषित specs (native 30-सेकंड क्लिप्स, 50 तक reference files, API 16 जुलाई 2026 को खुलना) उस दिशा में पहला असली कदम हैं।</p>
<p>जुलाई 2026 के मध्य तक, Artificial Analysis text-to-video arena (audio के साथ) की अगुवाई Google का Gemini Omni Flash (~1,240 Elo) करता है, उसके बाद Seedance 2.0, Alibaba का API-only Wan 2.7, और HappyHorse मॉडल, जबकि Kling 3.0 variants, SkyReels V4, और Veo 3.1 ठीक पीछे हैं। Leaderboard बार-बार बदलता है, इसलिए किसी भी अकेली रैंकिंग को एक तय क्रम के बजाय एक snapshot मानें।</p>
<p>3D scaffold तरीका एक समानांतर दिशा देता है। जैसे-जैसे V2V मॉडल अपनी संरचनात्मक सुरक्षा और photorealism बेहतर करते हैं, low-fidelity 3D renders को बेहतर बनाना पूरी production के लिए तेज़ी से व्यवहार्य होता जा रहा है। Meta का RealMaster पहले ही game engine output पर research-quality sim-to-real transformation हासिल कर लेता है। जब यह क्षमता reference image सपोर्ट के साथ production APIs तक पहुँचेगी, तब बुनियादी 3D कौशल वाला कोई भी व्यक्ति किसी भी अवधि पर camera, staging, और किरदार placement पर पूरे नियंत्रण के साथ photorealistic long-form वीडियो बना सकेगा।</p>
<p>फ़िलहाल, व्यावहारिक जवाब आपके use case पर निर्भर करता है:</p>
<p><strong>Multi-character reference के लिए सबसे बेहतर:</strong> Kling 3.0 (अलग element + style सिस्टम के साथ 7 तक refs) या Seedance 2.0 (12 तक multimodal inputs, Seedance 2.5 API 16 जुलाई 2026 को खुलने पर 50 तक बढ़कर)।</p>
<p><strong>Reference-to-video के लिए सबसे बेहतर API:</strong> Grok Imagine (साफ़ API, स्पष्ट reference मोड, $0.05/sec) या fal.ai के ज़रिए Kling ($0.084-0.112/sec)।</p>
<p><strong>कई क्लिप्स भर में टिकाऊ किरदारों के लिए सबसे बेहतर:</strong> Kling 3.0 के element references या SkyReels V3 का reference-and-extend। (Sora 2 Pro का character-ID सिस्टम सबसे साफ़ तरीका था, पर यह 2026 में बंद हो रहा है, इसलिए इस पर नया काम शुरू न करें।)</p>
<p><strong>सबसे बेहतर ओपन सोर्स:</strong> SkyReels V3 (1-4 असली reference images, असीमित लंबाई) या Helios (real-time, Apache 2.0)।</p>
<p><strong>कच्ची अवधि के लिए सबसे बेहतर:</strong> LongCat Video (~15 min, पर सिर्फ़ first-frame)।</p>
<p><strong>3D render enhancement के लिए सबसे बेहतर:</strong> Kling 3.0 V2V (प्रति-किरदार element refs, 1080p) या Lucy Restyle 2 (30 min input, $0.01/sec)।</p>
<hr>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="लंबे-वीडियो-के-लिए-सबसे-बेहतर-ai-वीडियो-मॉडल-कौन-सा-है" tabindex="-1">लंबे वीडियो के लिए सबसे बेहतर AI वीडियो मॉडल कौन सा है? <a class="header-anchor" href="#लंबे-वीडियो-के-लिए-सबसे-बेहतर-ai-वीडियो-मॉडल-कौन-सा-है" aria-label="Permalink to &quot;लंबे वीडियो के लिए सबसे बेहतर AI वीडियो मॉडल कौन सा है?&quot;"></a></h3>
<p>कच्ची अवधि के लिए, LongCat Video native रूप से लगभग 15 मिनट बनाता है, हालाँकि यह सिर्फ़ first-frame है। सुसंगत किरदारों वाले लंबे वीडियो के लिए, 2026 में व्यावहारिक जवाब एक reference-and-extend workflow है: किसी ऐसे मॉडल से क्लिप बनाएँ जिसमें मज़बूत reference सपोर्ट हो (Kling 3.0, Runway Gen-4.5, या ओपन-सोर्स SkyReels V3), फिर उन्हें chain करें। कोई भी अकेला मॉडल लंबा भी चलता हो और किरदार की पहचान भी पूरी तरह बनाए रखता हो, ऐसा नहीं है, इसलिए ज़्यादातर production काम इन्हें जोड़ता है।</p>
<h3 id="कौन-से-ai-वीडियो-मॉडल-reference-images-सपोर्ट-करते-हैं" tabindex="-1">कौन से AI वीडियो मॉडल reference images सपोर्ट करते हैं? <a class="header-anchor" href="#कौन-से-ai-वीडियो-मॉडल-reference-images-सपोर्ट-करते-हैं" aria-label="Permalink to &quot;कौन से AI वीडियो मॉडल reference images सपोर्ट करते हैं?&quot;"></a></h3>
<p>commercial विकल्पों में Kling 3.0 Omni, Runway Gen-4.5, Seedance 2.0, Google Veo 3.1, और Gemini Omni Flash सभी reference images सपोर्ट करते हैं। ओपन-सोर्स की तरफ़, SkyReels V2/V3, Wan 2.1, और LTX-2 reference inputs स्वीकार करते हैं जिन्हें आप खुद चला सकते हैं। सपोर्ट की क्वालिटी काफ़ी बदलती है, इसीलिए ऊपर की गाइड उन्हें tiers में बाँटती है।</p>
<h3 id="क्या-ai-एक-लंबे-वीडियो-भर-में-एक-सुसंगत-किरदार-बना-सकता-है" tabindex="-1">क्या AI एक लंबे वीडियो भर में एक सुसंगत किरदार बना सकता है? <a class="header-anchor" href="#क्या-ai-एक-लंबे-वीडियो-भर-में-एक-सुसंगत-किरदार-बना-सकता-है" aria-label="Permalink to &quot;क्या AI एक लंबे वीडियो भर में एक सुसंगत किरदार बना सकता है?&quot;"></a></h3>
<p>हाँ, पर एक ही बार में नहीं। भरोसेमंद तरीका यह है कि एक किरदार को एक या ज़्यादा reference images से lock करें, छोटी क्लिप बनाएँ, और वही references दोबारा देते हुए उन्हें extend या stitch करें। यहाँ असली reference सपोर्ट (मॉडल नई जनरेशनों भर में पहचान बनाए रखता है) first-frame conditioning से कहीं ज़्यादा मायने रखता है, जो सिर्फ़ opening frame को seed करता है।</p>
<h3 id="first-frame-और-असली-reference-image-सपोर्ट-में-क्या-फ़र्क़-है" tabindex="-1">First-frame और असली reference image सपोर्ट में क्या फ़र्क़ है? <a class="header-anchor" href="#first-frame-और-असली-reference-image-सपोर्ट-में-क्या-फ़र्क़-है" aria-label="Permalink to &quot;First-frame और असली reference image सपोर्ट में क्या फ़र्क़ है?&quot;"></a></h3>
<p>First-frame conditioning आपकी image को क्लिप का literal opening frame इस्तेमाल करता है, फिर वीडियो आगे बढ़ने के साथ drift करता है। असली reference सपोर्ट image को एक identity anchor मानता है जिसका मॉडल पूरे जनरेशन भर में सम्मान करता है, ताकि कोई किरदार या style पूरी क्लिप भर में और अलग क्लिप्स भर में सुसंगत रहे। ऊपर का सेक्शन बताता है कि कौन सा मॉडल क्या करता है।</p>
<hr>
<h2 id="और-पढ़ने-के-लिए" tabindex="-1">और पढ़ने के लिए <a class="header-anchor" href="#और-पढ़ने-के-लिए" aria-label="Permalink to &quot;और पढ़ने के लिए&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/frontier-gen-ai-models.html">Frontier Open-Source Gen AI Models</a> — video, image, 3D, audio और अन्य के लिए ओपन-सोर्स जनरेटिव AI की व्यावहारिक गाइड</li>
<li><a href="/hi/tools/video.html">Video Generator</a> — Kling 3.0 Pro से संचालित हमारा video जनरेशन tool</li>
<li><a href="/hi/blog/2026-03-04-sketch-to-animated-3d-character.html">Sketch से animated 3D किरदार तक कैसे पहुँचें</a> — किरदार animation के लिए image और video जनरेशन का इस्तेमाल</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ब्राउज़र ओपन वर्ल्ड के लिए डायनामिक LOD और स्ट्रीमिंग के साथ लैंडस्केप जेनरेशन]]></title>
            <link>https://app.cinevva.com/hi/guides/landscape-generation-browser</link>
            <guid>https://app.cinevva.com/hi/guides/landscape-generation-browser</guid>
            <pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[हाइटमैप और नॉइज़ फंक्शन से आगे। ब्राउज़र-आधारित ओपन वर्ल्ड के लिए फिजिकली करेक्ट टेरेन जेनरेशन, वॉल्यूमेट्रिक रिप्रेजेंटेशन, डिफ्यूज़न-आधारित सिंथेसिस और GPU-ड्रिवन रेंडरिंग पाइपलाइन।]]></description>
            <content:encoded><![CDATA[<h1 id="ब्राउज़र-ओपन-वर्ल्ड-के-लिए-डायनामिक-lod-और-स्ट्रीमिंग-के-साथ-लैंडस्केप-जेनरेशन" tabindex="-1">ब्राउज़र ओपन वर्ल्ड के लिए डायनामिक LOD और स्ट्रीमिंग के साथ लैंडस्केप जेनरेशन <a class="header-anchor" href="#ब्राउज़र-ओपन-वर्ल्ड-के-लिए-डायनामिक-lod-और-स्ट्रीमिंग-के-साथ-लैंडस्केप-जेनरेशन" aria-label="Permalink to &quot;ब्राउज़र ओपन वर्ल्ड के लिए डायनामिक LOD और स्ट्रीमिंग के साथ लैंडस्केप जेनरेशन&quot;"></a></h1>
<p>Perlin noise के साथ हाइटमैप प्रोसीजरल टेरेन के लिए डिफ़ॉल्ट शुरुआती पॉइंट हैं। fBm के कुछ octaves लेयर करें, एक कलर ग्रेडिएंट लगाएं, और आपके पास कुछ ऐसा है जो टेरेन जैसा दिखता है। हर ट्यूटोरियल यहीं खत्म होता है। लेकिन असली लैंडस्केप स्टैक किए हुए नॉइज़ जैसे नहीं दिखते। उनमें पानी से कटी हुई नदी घाटियां होती हैं, स्ट्रेस फ्रैक्चर से बनी चट्टानों की सतहें होती हैं, और लाखों सालों के कटाव से बनी गुफाएं और मेहराब होते हैं। उनमें कोरिलेटेड टेक्सचर होते हैं (समतल जमीन पर घास, खड़ी ढलानों पर चट्टान, ट्रीलाइन के ऊपर बर्फ) जो उन्हीं फिजिकल प्रोसेस से उभरते हैं जिन्होंने ज्यामिति को आकार दिया।</p>
<p>यह गाइड बताती है कि नॉइज़ के बाद क्या आता है। फिजिकली ग्राउंडेड जेनरेशन मेथड, वॉल्यूमेट्रिक रिप्रेजेंटेशन जो गुफाओं और ओवरहैंग को संभालते हैं, डिफ्यूज़न-आधारित न्यूरल टेरेन सिंथेसिस, और GPU-ड्रिवन LOD और स्ट्रीमिंग पाइपलाइन जो इन सबको एक ब्राउज़र टैब में 60fps पर रेंडर करने के लिए चाहिए।</p>
<p>यहां सब कुछ हमारी खास बाधा को ध्यान में रखकर बनाया गया है: एक मल्टीप्लेयर ओपन वर्ल्ड जो WebGL 2 / WebGPU में चलता है, नेटवर्क पर स्ट्रीम होता है, और जिसे क्रिएटर एडिट कर सकते हैं।</p>
<h2 id="हाइटमैप-क्यों-काफी-नहीं-हैं" tabindex="-1">हाइटमैप क्यों काफी नहीं हैं <a class="header-anchor" href="#हाइटमैप-क्यों-काफी-नहीं-हैं" aria-label="Permalink to &quot;हाइटमैप क्यों काफी नहीं हैं&quot;"></a></h2>
<p>एक हाइटमैप हर ग्रिड पॉइंट पर एक हाइट वैल्यू स्टोर करता है। यह एक 2D फंक्शन है: (x, z) दिया जाए, तो y लौटाओ। यह रिप्रेजेंटेशन कॉम्पैक्ट है, GPU-फ्रेंडली है, और रेंडर करने में तेज है। लेकिन इसकी कुछ बुनियादी सीमाएं हैं जो एक क्रिएटर वर्ल्ड के लिए मायने रखती हैं।</p>
<p><strong>कोई गुफा या ओवरहैंग नहीं।</strong> एक हाइटमैप ऐसे टेरेन को रिप्रेजेंट नहीं कर सकता जहां एक पॉइंट की दो अलग-अलग हाइट हों। गुफाएं, मेहराब, चट्टानों के ओवरहैंग, सुरंगें और तैरते हुए द्वीप सब असंभव हैं। Minecraft, No Man's Sky और Deep Rock Galactic सभी को इसी कारण वॉल्यूमेट्रिक टेरेन चाहिए।</p>
<p><strong>कोई वर्टिकल फीचर नहीं।</strong> हाइटमैप में एक खड़ी चट्टान की सतह लगभग अनंत ढलान होती है, जो भारी टेक्सचर स्ट्रेचिंग और कोलिज़न आर्टिफैक्ट पैदा करती है। असली चट्टानों में horizontal फीचर होते हैं (कगार, दरारें) जिन्हें एक हाइटमैप रिप्रेजेंट नहीं कर सकता।</p>
<p><strong>नॉइज़ नॉइज़ जैसा ही दिखता है।</strong> fBm के 8 octaves और domain warping के साथ भी टेरेन में एक बनावटी गुणवत्ता रहती है। इसमें असली भूविज्ञान की दिशात्मक संरचना नहीं होती: रिज लाइन, ड्रेनेज नेटवर्क, sediment deposits, टेक्टोनिक फोल्ड। ये पैटर्न फिजिकल प्रोसेस से उभरते हैं, नॉइज़ फंक्शन से नहीं।</p>
<p><strong>क्रिएटर एडिट सीमित हैं।</strong> अगर क्रिएटर सिर्फ हाइट बदल सकते हैं, तो वे सुरंग नहीं खोद सकते, गुफाएं नहीं बना सकते, या भूमिगत जगहें नहीं बना सकते। एक ऐसी दुनिया के लिए जिसे क्रिएटर सचमुच आकार दे सकें, टेरेन रिप्रेजेंटेशन को जोड़ने के साथ-साथ घटाने (subtraction) को भी सपोर्ट करना होगा।</p>
<p>समाधान हाइटमैप को पूरी तरह छोड़ देना नहीं है। टेरेन के 90% हिस्से के लिए जो एक साधारण सतह है, वे अब भी सबसे अच्छा रिप्रेजेंटेशन हैं। समाधान एक हाइब्रिड तरीका है: हाइटमैप बेस टेरेन के साथ वॉल्यूमेट्रिक ओवरले वहां जहां जटिल ज्यामिति चाहिए, असली लैंडफॉर्म के लिए फिजिकली करेक्ट जेनरेशन, और उस विविधता के लिए न्यूरल सिंथेसिस जो नॉइज़ हासिल नहीं कर सकता।</p>
<h2 id="क्विक-जवाब-हम-असल-में-क्या-बनाएंगे" tabindex="-1">क्विक जवाब: हम असल में क्या बनाएंगे <a class="header-anchor" href="#क्विक-जवाब-हम-असल-में-क्या-बनाएंगे" aria-label="Permalink to &quot;क्विक जवाब: हम असल में क्या बनाएंगे&quot;"></a></h2>
<p>गहराई में जाने से पहले, यह रहा डिसीजन फ्रेमवर्क। बाकी लेख हर हिस्से को समझाता है।</p>
<h3 id="टेरेन-रिप्रेजेंटेशन" tabindex="-1">टेरेन रिप्रेजेंटेशन <a class="header-anchor" href="#टेरेन-रिप्रेजेंटेशन" aria-label="Permalink to &quot;टेरेन रिप्रेजेंटेशन&quot;"></a></h3>
<p>एक <strong>हाइब्रिड हाइटमैप + SDF</strong> सिस्टम इस्तेमाल करें। हाइटमैप पूरी दुनिया को कवर करता है (सस्ता, कॉम्पैक्ट, आजमाया हुआ)। SDF वॉल्यूम सिर्फ वहां मौजूद होते हैं जहां गुफाओं, ओवरहैंग, या क्रिएटर-कार्व्ड फीचर की जरूरत हो (शायद 5-10% chunks)। इससे दुनिया का 90% हिस्सा हाइटमैप कॉस्ट पर रहता है, और जहां जरूरत हो वहां मनचाही ज्यामिति सपोर्ट होती है।</p>
<h3 id="जेनरेशन-पाइपलाइन" tabindex="-1">जेनरेशन पाइपलाइन <a class="header-anchor" href="#जेनरेशन-पाइपलाइन" aria-label="Permalink to &quot;जेनरेशन पाइपलाइन&quot;"></a></h3>
<p>सर्वर-साइड एक chained प्रोसेस के रूप में चलाएं:</p>
<ol>
<li><strong>Terrain Diffusion</strong> (या टेक्स्ट प्रॉम्प्ट के लिए MESA) एक seed से बेस हाइटमैप जेनरेट करता है। यह नॉइज़ की जगह असली एलिवेशन डेटा पर ट्रेन किए गए भूगर्भीय रूप से असली लैंडफॉर्म देता है।</li>
<li><strong>एनालिटिकल इरोज़न</strong> (stream power law) हाइटमैप को नदी नेटवर्क और रिजलाइन के साथ मिलीसेकंड में रिफाइन करता है।</li>
<li><strong>TerraFusion या Geodiffussr</strong> हाइटमैप से कोरिलेटेड टेक्सचर जेनरेट करते हैं (या WebGL 2 fallback के लिए प्रोसीजरल slope/altitude नियम इस्तेमाल करें)।</li>
<li><strong>Ecosystem सिमुलेशन</strong> वनस्पति घनत्व के नक्शे बनाता है।</li>
<li><strong>Arenite-स्टाइल इरोज़न</strong> चट्टानों की सतहों, मेहराबों और गुफाओं के लिए SDF वॉल्यूम जेनरेट करता है, जहां टेरेन को उनकी जरूरत हो।</li>
<li><strong>Chunk बनाएं, कंप्रेस करें, CDN पर अपलोड करें।</strong> औसत chunk: 2-8 KB। वॉल्यूमेट्रिक डेटा वाला जटिल chunk: 20-100 KB।</li>
</ol>
<p>क्रिएटर इस पाइपलाइन के साथ पैरामीटर एडजस्ट करके (&quot;ज्यादा गीला,&quot; &quot;ज्यादा पहाड़ी,&quot; &quot;गुफाएं जोड़ो&quot;), इरादा स्केच करके, या ब्रश और SDF टूल से सीधे sculpt करके इंटरैक्ट करते हैं।</p>
<h3 id="lod-स्ट्रेटजी" tabindex="-1">LOD स्ट्रेटजी <a class="header-anchor" href="#lod-स्ट्रेटजी" aria-label="Permalink to &quot;LOD स्ट्रेटजी&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>ब्राउज़र क्षमता</th>
<th>हाइटमैप LOD</th>
<th>वॉल्यूमेट्रिक LOD</th>
<th>वनस्पति LOD</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>WebGPU</strong></td>
<td>compute culling + indirect draw के साथ GPU-ड्रिवन quadtree (CDLOD)</td>
<td>compute marching cubes + Transvoxel के साथ मल्टी-रिज़ॉल्यूशन SDF</td>
<td>indirect draw के साथ ComputeInstanceCulling</td>
</tr>
<tr>
<td><strong>WebGL 2</strong></td>
<td>CPU-साइड ring अपडेट के साथ geometry clipmaps</td>
<td>2-3 LOD लेवल पर पहले से जेनरेट की गई और कैश की गई मेश</td>
<td>CPU frustum cull, InstancedMesh</td>
</tr>
</tbody>
</table>
<p>दोनों रास्ते pop-free ट्रांज़िशन के लिए vertex shader में geomorphing इस्तेमाल करते हैं। दोनों दूर की वनस्पति के लिए billboard impostor इस्तेमाल करते हैं। WebGPU रास्ता तेज है (3.5ms टेरेन बजट) लेकिन WebGL 2 रास्ता भी चलने लायक है (6.5ms)।</p>
<h3 id="स्ट्रीमिंग" tabindex="-1">स्ट्रीमिंग <a class="header-anchor" href="#स्ट्रीमिंग" aria-label="Permalink to &quot;स्ट्रीमिंग&quot;"></a></h3>
<p>प्रोग्रेसिव लोडिंग: पहले टेरेन ज्यामिति (&lt;100ms), दूसरे नंबर पर टेक्सचर (&lt;300ms), तीसरे नंबर पर वनस्पति (&lt;1s), चौथे नंबर पर वॉल्यूमेट्रिक डेटा (&lt;3s)। प्लेयर की वेलोसिटी के आधार पर pre-fetch करें। मेमोरी बजट: कुल 256 MB टेरेन।</p>
<h3 id="एडिटिंग" tabindex="-1">एडिटिंग <a class="header-anchor" href="#एडिटिंग" aria-label="Permalink to &quot;एडिटिंग&quot;"></a></h3>
<p>सरफेस sculpting के लिए हाइटमैप ब्रश (raise, lower, smooth, erode)। वॉल्यूमेट्रिक एडिटिंग के लिए SDF प्रिमिटिव (गुफाएं carve करें, मेहराब जोड़ें)। दोनों लोकल पर तुरंत होते हैं, 100-300ms में सर्वर के साथ sync होते हैं, और delta अपडेट के जरिए बाकी प्लेयर तक broadcast होते हैं।</p>
<h3 id="किस-क्रम-में-क्या-बनाएं" tabindex="-1">किस क्रम में क्या बनाएं <a class="header-anchor" href="#किस-क्रम-में-क्या-बनाएं" aria-label="Permalink to &quot;किस क्रम में क्या बनाएं&quot;"></a></h3>
<p><strong>महीना 1-2: geometry clipmaps के साथ हाइटमैप टेरेन।</strong> सिर्फ WebGL 2। CDN से स्ट्रीमिंग। प्रोसीजरल slope/altitude मटेरियल। इससे हर ब्राउज़र में स्क्रीन पर टेरेन आ जाता है। जेनरेशन के लिए नॉइज़ + एनालिटिकल इरोज़न इस्तेमाल करें (Terrain Diffusion रुक सकता है)।</p>
<p><strong>महीना 3-4: वनस्पति और वातावरण।</strong> density maps से GPU-instanced घास और पेड़। दिन/रात के चक्र के साथ प्रोसीजरल आसमान। वातावरण की धुंध। Cascaded shadow maps। दुनिया एक जगह जैसी लगने लगती है।</p>
<p><strong>महीना 5-6: क्रिएटर एडिटिंग।</strong> हाइटमैप ब्रश टूल। मल्टीप्लेयर टेरेन एडिट के लिए delta-आधारित sync। एक साथ एडिटिंग के लिए spatial locking। यहीं से क्रिएटर दुनिया को आकार देना शुरू करते हैं।</p>
<p><strong>महीना 7-9: वॉल्यूमेट्रिक टेरेन और WebGPU रास्ता।</strong> गुफाओं और ओवरहैंग के लिए SDF ओवरले। WebGPU compute में marching cubes। LOD boundaries के लिए Transvoxel। SDF sculpting टूल। इससे पूरा क्रिएशन टूलकिट खुल जाता है।</p>
<p><strong>महीना 10-12: न्यूरल जेनरेशन और पॉलिश।</strong> बेस हाइटमैप के लिए Terrain Diffusion या MESA। टेक्सचर के लिए TerraFusion/Geodiffussr। माइक्रो-डिटेल के लिए Phasor noise। anti-repetition के लिए Hex-tiling। Virtual texturing। Laplacian blending। टेरेन प्रोडक्शन क्वालिटी तक पहुंचता है।</p>
<p>इस क्रम का मतलब है कि 2 महीने बाद कुछ खेलने लायक मौजूद होता है, 4 महीने बाद कुछ सुंदर, 6 महीने बाद कुछ एडिट करने लायक, और 12 महीने बाद कुछ अत्याधुनिक।</p>
<p>बाकी लेख हर फैसले के पीछे की रिसर्च है।</p>
<h2 id="हाइटमैप-से-आगे-के-टेरेन-रिप्रेजेंटेशन" tabindex="-1">हाइटमैप से आगे के टेरेन रिप्रेजेंटेशन <a class="header-anchor" href="#हाइटमैप-से-आगे-के-टेरेन-रिप्रेजेंटेशन" aria-label="Permalink to &quot;हाइटमैप से आगे के टेरेन रिप्रेजेंटेशन&quot;"></a></h2>
<h3 id="signed-distance-fields-sdfs" tabindex="-1">Signed Distance Fields (SDFs) <a class="header-anchor" href="#signed-distance-fields-sdfs" aria-label="Permalink to &quot;Signed Distance Fields (SDFs)&quot;"></a></h3>
<p>एक signed distance field 3D स्पेस में हर पॉइंट पर सबसे नज़दीकी सतह तक की दूरी स्टोर करता है। पॉज़िटिव वैल्यू बाहर हैं, नेगेटिव वैल्यू अंदर हैं, और zero-crossing खुद सतह है। SDF मनचाहे 3D आकार रिप्रेजेंट करते हैं, जिनमें गुफाएं, मेहराब और तैरती हुई ज्यामिति शामिल हैं।</p>
<p>एक SDF को मेश के रूप में रेंडर करने के लिए, आप zero-crossing को त्रिभुजों के रूप में निकालने के लिए marching cubes (या इसका एक वैरिएंट) चलाते हैं। मेश रिज़ॉल्यूशन ग्रिड रिज़ॉल्यूशन पर निर्भर करता है: एक 256x256x256 SDF ग्रिड 1-मीटर रिज़ॉल्यूशन पर लगभग एक chunk जितना टेरेन देता है।</p>
<p><strong>ब्राउज़र इम्प्लीमेंटेशन:</strong> WebGPU marching cubes compute shaders के जरिए पूरी तरह GPU पर चलता है। Will Usher का <a href="https://www.willusher.io/webgpu-marching-cubes/" target="_blank" rel="noreferrer">webgpu-marching-cubes</a> इम्प्लीमेंटेशन ब्राउज़र में रियल टाइम में एक 256^3 ग्रिड प्रोसेस करता है, और native-स्पीड परफॉर्मेंस हासिल करता है। यह एल्गोरिदम बेहद parallel है (हर cell अलग से प्रोसेस होती है), जो इसे GPU compute के लिए आदर्श बनाता है।</p>
<div class="language-wgsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">wgsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">compute</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> @</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">workgroup_size</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> marchingCubes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">builtin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(global_invocation_id) id: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">u32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> sdfValues </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sampleSDF</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(id);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> caseIndex </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> classifyCell</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(sdfValues);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (caseIndex </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0u</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ||</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> caseIndex </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 255u</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) { </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> triangles </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> lookupTriangulation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(caseIndex);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> vertices </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> interpolateEdges</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(sdfValues, triangles);</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    appendToMeshBuffer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(vertices);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p><strong>स्टोरेज कॉस्ट:</strong> एक 256^3 SDF 8-bit quantized precision पर uncompressed 16 MB है। लेकिन ज्यादातर वॉल्यूम खाली है (सतह से दूर)। Run-length encoding या sparse octree स्टोरेज आमतौर पर इसे प्रति chunk 100-500 KB तक घटा देता है, जो हाइटमैप टेरेन के बराबर है।</p>
<p><strong>एडिटिंग:</strong> SDF टेरेन स्वाभाविक रूप से एडिट करने लायक है। मटेरियल जोड़ना distance field पर एक <code>min()</code> ऑपरेशन है। मटेरियल हटाना (खोदना) एक negated आकार के साथ <code>max()</code> है। आकारों के बीच smooth blending <code>smoothMin()</code> इस्तेमाल करती है। ये ऑपरेशन compute shader में इंटरैक्टिव रेट पर चलते हैं।</p>
<h3 id="dual-contouring" tabindex="-1">Dual Contouring <a class="header-anchor" href="#dual-contouring" aria-label="Permalink to &quot;Dual Contouring&quot;"></a></h3>
<p>Marching cubes vertices को ग्रिड edges पर रखता है, जिससे smooth सतहें बनती हैं लेकिन sharp फीचर (चट्टान के किनारे, चट्टान के कोने) खो जाते हैं। Dual contouring हर cell में एक vertex उस पोज़ीशन पर रखता है जो उस cell के अंदर सतह को सबसे अच्छे से दर्शाती है, और इस तरह sharp किनारे और कोने बचाता है।</p>
<p>इस एल्गोरिदम को हर ग्रिड पॉइंट पर distance field वैल्यू और सतह के normals (SDF का gradient) दोनों चाहिए। यह सबसे अच्छी vertex पोज़ीशन ढूंढने के लिए हर cell पर एक छोटी least-squares समस्या हल करता है। नतीजा एक ऐसी मेश है जो smooth टेरेन और sharp चट्टानी फीचर दोनों को पकड़ती है।</p>
<p><strong>Neural Dual Contouring</strong> (Chen et al., 2022, <a href="https://arxiv.org/abs/2202.01999" target="_blank" rel="noreferrer">arXiv:2202.01999</a>) least-squares solver की जगह एक neural network रखता है जो सबसे अच्छी vertex पोज़ीशन और edge crossings की भविष्यवाणी करता है। यह बेहतर सतह reconstruction सटीकता और फीचर संरक्षण हासिल करता है, खासकर जटिल प्राकृतिक चट्टानी संरचनाओं के लिए।</p>
<h3 id="transvoxel-एल्गोरिदम" tabindex="-1">Transvoxel एल्गोरिदम <a class="header-anchor" href="#transvoxel-एल्गोरिदम" aria-label="Permalink to &quot;Transvoxel एल्गोरिदम&quot;"></a></h3>
<p>वॉल्यूमेट्रिक टेरेन में सबसे कठिन समस्या मेश जेनरेट करना नहीं है। यह LOD ट्रांज़िशन हैं। जब एक हाई-रिज़ॉल्यूशन chunk एक लो-रिज़ॉल्यूशन chunk के बगल में होता है, तो boundary पर मेश आपस में मेल नहीं खातीं, जिससे दिखने वाली दरारें बनती हैं।</p>
<p>Transvoxel एल्गोरिदम, जिसे Eric Lengyel (<a href="https://transvoxel.org/" target="_blank" rel="noreferrer">transvoxel.org</a>) ने डिज़ाइन किया, रिज़ॉल्यूशन के बीच की boundaries पर खास transition cells डालकर इसे हल करता है। ये cells अतिरिक्त त्रिभुजों के साथ रिज़ॉल्यूशन के फर्क को पाटती हैं जो दोनों तरफ से बिल्कुल मेल खाते हैं। यह एल्गोरिदम जटिल boundary समस्या को 73 equivalence classes तक घटा देता है (brute-force तरीके के लगभग 12 लाख मामलों की तुलना में)।</p>
<p>Transvoxel खास तौर पर रियल-टाइम एप्लिकेशन के लिए डिज़ाइन किया गया है जहां voxel डेटा डायनामिक रूप से बदलता है (क्रिएटर एडिट, इरोज़न, mining)। यह patent-free है और इसे शिप हुए गेम में इस्तेमाल किया गया है (Space Engineers, Astroneer)। एडिट करने लायक वॉल्यूमेट्रिक टेरेन वाली ब्राउज़र दुनिया के लिए, Transvoxel ही LOD समाधान है।</p>
<h3 id="हाइब्रिड-हाइटमैप-बेस-वॉल्यूमेट्रिक-ओवरले" tabindex="-1">हाइब्रिड: हाइटमैप बेस + वॉल्यूमेट्रिक ओवरले <a class="header-anchor" href="#हाइब्रिड-हाइटमैप-बेस-वॉल्यूमेट्रिक-ओवरले" aria-label="Permalink to &quot;हाइब्रिड: हाइटमैप बेस + वॉल्यूमेट्रिक ओवरले&quot;"></a></h3>
<p>एक ब्राउज़र ओपन वर्ल्ड के लिए व्यावहारिक तरीका एक लेयर्ड सिस्टम है:</p>
<p><strong>लेयर 1: हाइटमैप टेरेन</strong> पूरी दुनिया को कवर करता है। यह लहरदार पहाड़ियों, घाटियों और पर्वतों के लिए सस्ता, कॉम्पैक्ट रिप्रेजेंटेशन है। यह प्रति chunk छोटे हाइटमैप patches (हर एक 2-4 KB) के रूप में स्ट्रीम होता है। रेंडरिंग स्थिर GPU कॉस्ट के साथ geometry clipmaps इस्तेमाल करती है।</p>
<p><strong>लेयर 2: वॉल्यूमेट्रिक ओवरले</strong> सिर्फ उन chunks में मौजूद होते हैं जहां जटिल ज्यामिति चाहिए। गुफाएं, चट्टानों की सतहें, मेहराब, क्रिएटर-कार्व्ड सुरंगें और भूमिगत जगहें sparse SDF वॉल्यूम के रूप में स्टोर होती हैं। सिर्फ वॉल्यूमेट्रिक डेटा वाले chunks ही SDF स्टोरेज और marching cubes कॉस्ट उठाते हैं।</p>
<p><strong>लेयर 3: क्रिएटर बदलाव</strong> बेस लेयर के ऊपर SDF एडिट के रूप में स्टोर होते हैं। एक क्रिएटर जो सुरंग खोदता है, सुरंग का SDF आकार स्टोर करता है। रेंडरिंग सिस्टम हाइटमैप सतह को वॉल्यूमेट्रिक subtractions और additions के साथ मिलाकर अंतिम मेश बनाता है।</p>
<p>इस हाइब्रिड में समतल टेरेन की कीमत लगभग शून्य है (बस हाइटमैप), और यह सिर्फ वहीं स्केल करता है जहां जटिलता मौजूद हो। एक आम दुनिया में, शायद 5-10% chunks को वॉल्यूमेट्रिक डेटा की जरूरत होती है।</p>
<h2 id="फिजिकली-करेक्ट-टेरेन-जेनरेशन" tabindex="-1">फिजिकली करेक्ट टेरेन जेनरेशन <a class="header-anchor" href="#फिजिकली-करेक्ट-टेरेन-जेनरेशन" aria-label="Permalink to &quot;फिजिकली करेक्ट टेरेन जेनरेशन&quot;"></a></h2>
<p>नॉइज़ रैंडम टेरेन बनाता है। फिजिक्स असली टेरेन बनाता है। फर्क साफ दिखता है: नॉइज़ टेरेन में कोई संरचना नहीं होती (यह हर जगह रैंडम रूप से उबड़-खाबड़ है), जबकि फिजिकल टेरेन में नदी नेटवर्क, रिज लाइन, alluvial fans और cliff bands होते हैं जो इरोज़न और टेक्टोनिक्स से उभरते हैं।</p>
<h3 id="hydraulic-इरोज़न-नींव" tabindex="-1">Hydraulic इरोज़न: नींव <a class="header-anchor" href="#hydraulic-इरोज़न-नींव" aria-label="Permalink to &quot;Hydraulic इरोज़न: नींव&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/eaXk97ujbPQ" title="Coding Adventure: Hydraulic Erosion" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Sebastian Lague का hydraulic इरोज़न इम्प्लीमेंटेशन एक्शन में। सिमुलेटेड बारिश की बूंदें ढलान पर बहती हैं, स्पीड और ढलान के आधार पर मटेरियल काटती हैं, और वेलोसिटी गिरने पर sediment जमा करती हैं, और समतल नॉइज़ को नदी घाटियों, रिजलाइन और alluvial fans में बदल देती हैं।</div>
<p>पानी ढलान पर बहता है, sediment उठाता है, और धीमा होने पर उसे जमा कर देता है। यह एकमात्र प्रोसेस, लाखों वर्चुअल सालों तक सिमुलेट किया जाए, तो बेरंग नॉइज़ को पहचाने जाने लायक भूगर्भीय फीचर वाले टेरेन में बदल देता है।</p>
<p>particle-आधारित तरीका हाइटमैप पर सिमुलेटेड बारिश की बूंदें गिराता है। हर बूंद ढलान पर बहती है (gradient का पीछा करते हुए), स्पीड और ढलान के आधार पर मटेरियल काटती है, घुले हुए भार के रूप में sediment ले जाती है, और वेलोसिटी घटने या क्षमता पार होने पर sediment जमा करती है। 200,000-500,000 particles के बाद टेरेन में बनते हैं:</p>
<ul>
<li><strong>नदी घाटियां</strong> जो अधिकतम पानी के बहाव के रास्ते पर चलती हैं</li>
<li><strong>रिज लाइन</strong> जो drainage basins को अलग करती हैं</li>
<li><strong>Alluvial fans</strong> जहां खड़ी घाटियां समतल मैदानों में खुलती हैं</li>
<li><strong>V-आकार की घाटियां</strong> पहाड़ी टेरेन में, और U-आकार की हिमनद टेरेन में</li>
</ul>
<p><strong>GPU इम्प्लीमेंटेशन:</strong> particle सिमुलेशन parallelizable है। हर particle स्वतंत्र है (अनुमान particle-particle इंटरैक्शन को नजरअंदाज करता है, जो इरोज़न के लिए ठीक है)। एक WebGPU compute shader 60fps पर हर फ्रेम 10,000 particles प्रोसेस करता है, और 200,000 particles करीब 3 सेकंड के रियल टाइम में पूरे करता है।</p>
<p>Sebastian Lague का ओपन-सोर्स इम्प्लीमेंटेशन (<a href="https://github.com/SebLague/Hydraulic-Erosion" target="_blank" rel="noreferrer">GitHub</a>) मानक शुरुआती पॉइंट है। यह C# में एक ही थ्रेड पर चलता है और एक 1024x1024 हाइटमैप को कुछ सेकंड में प्रोसेस करता है। GPU वर्ज़न 50-100x तेज है।</p>
<h3 id="thermal-इरोज़न" tabindex="-1">Thermal इरोज़न <a class="header-anchor" href="#thermal-इरोज़न" aria-label="Permalink to &quot;Thermal इरोज़न&quot;"></a></h3>
<p>पानी ही एकमात्र इरोज़न बल नहीं है। तापमान में बदलाव से चट्टान में दरार पड़ती है और वह टूटती है (thermal weathering)। जब दो टेरेन पॉइंट के बीच की ढलान किसी मटेरियल के angle of repose से ज्यादा हो जाती है, तो मटेरियल ऊंचे पॉइंट से नीचे वाले पॉइंट पर गिरता है। इससे बनते हैं:</p>
<ul>
<li><strong>Talus slopes</strong> चट्टानों के आधार पर (गिरी हुई चट्टान के ढेर)</li>
<li><strong>Softened रिज लाइन</strong> समय के साथ</li>
<li><strong>मटेरियल पर निर्भर प्रोफाइल</strong> (कठोर चट्टान खड़ी ढलानें बनाए रखती है, नरम मिट्टी ढलकर हल्के कोण बनाती है)</li>
</ul>
<p>Thermal इरोज़न hydraulic इरोज़न से सरल है। यह एक local ऑपरेशन है: हर cell के लिए, पड़ोसियों के साथ हाइट के फर्क की तुलना करें। अगर ढलान threshold से ज्यादा हो, तो मटेरियल नीचे की ओर ले जाएं। यह हर iteration पर एक ही compute shader पास के रूप में चलता है और 50-100 iterations में converge हो जाता है।</p>
<p>hydraulic और thermal इरोज़न को मिलाने से ऐसा टेरेन बनता है जो दोनों में से किसी एक की तुलना में नाटकीय रूप से ज्यादा प्राकृतिक दिखता है। पानी घाटियां काटता है, thermal इरोज़न उनके बीच की रिज को नरम करता है और घाटी के फर्श को मलबे से भरता है।</p>
<h3 id="stream-power-law-एनालिटिकल-इरोज़न" tabindex="-1">Stream Power Law: एनालिटिकल इरोज़न <a class="header-anchor" href="#stream-power-law-एनालिटिकल-इरोज़न" aria-label="Permalink to &quot;Stream Power Law: एनालिटिकल इरोज़न&quot;"></a></h3>
<p>हाल की रिसर्च particle-आधारित सिमुलेशन का एक विकल्प देती है। stream power law (एक भू-आकृति विज्ञान समीकरण जो इरोज़न रेट को drainage area और ढलान से जोड़ता है) को iteratively सिमुलेट करने के बजाय analytically हल किया जा सकता है।</p>
<p>Cordonnier et al. (2024, <a href="https://hal.science/hal-04525371" target="_blank" rel="noreferrer">HAL</a>) एनालिटिकल stream power law को landslide और hillslope diffusion प्रोसेस के साथ मिलाते हैं। नतीजा एक ऐसा टेरेन जेनरेशन है जो फिजिकली ग्राउंडेड है लेकिन एक टेम्पोरल सिमुलेशन के बजाय एक गणितीय फंक्शन के रूप में चलता है। आप एक नॉइज़-आधारित हाइटमैप और पैरामीटर (बारिश की दर, चट्टान की कठोरता, टेक्टोनिक uplift दर) डालते हैं और मिलीसेकंड में एक eroded टेरेन पाते हैं।</p>
<p>यह एनालिटिकल तरीका एक ब्राउज़र दुनिया के लिए आदर्श है क्योंकि यह टेरेन जेनरेशन के दौरान सर्वर-साइड एक बार चलता है, iteratively नहीं। पैरामीटर क्रिएटर ट्यून कर सकते हैं (&quot;इस इलाके को ज्यादा पहाड़ी बनाओ&quot; uplift दर एडजस्ट करता है, &quot;इसे ज्यादा गीला करो&quot; बारिश बढ़ाता है और घाटियों को गहरा करता है)।</p>
<h3 id="arenite-मल्टी-फिजिक्स-इरोज़न-siggraph-2025" tabindex="-1">Arenite: मल्टी-फिजिक्स इरोज़न (SIGGRAPH 2025) <a class="header-anchor" href="#arenite-मल्टी-फिजिक्स-इरोज़न-siggraph-2025" aria-label="Permalink to &quot;Arenite: मल्टी-फिजिक्स इरोज़न (SIGGRAPH 2025)&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/pl_GdrBSAmA" title="Arenite: A Physics-based Sandstone Simulator (SIGGRAPH 2025)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Arenite stress, wind इरोज़न, fluvial इरोज़न और particle deposition को सिमुलेट करके लेयर्ड चट्टान से मेहराब, hoodoos और buttes जेनरेट करता है। सर्वर-साइड जेनरेशन SDF वॉल्यूम देता है जो सीधे एक marching cubes पाइपलाइन में जाता है।</div>
<p>Arenite (<a href="https://jango6324.github.io/arenite/" target="_blank" rel="noreferrer">Project page</a>) एक फिजिक्स-आधारित sandstone सिमुलेटर है जो साधारण शुरुआती परिस्थितियों से मेहराब, alcoves, hoodoos और buttes जेनरेट करता है। यूज़र erodability मैप पेंट करते हैं (नरम चट्टान बनाम कठोर चट्टान की लेयर) और वनस्पति, फिर सिस्टम सिमुलेट करता है:</p>
<ul>
<li><strong>Stress distribution</strong> चट्टान के स्तंभ से होकर</li>
<li><strong>Wind इरोज़न</strong> जो खुले हुए नरम मटेरियल को प्राथमिकता से हटाता है</li>
<li><strong>Fluvial इरोज़न</strong> पानी के बहाव से</li>
<li><strong>Particle deposition</strong> जो नई संरचनाएं बनाता है</li>
</ul>
<p>GPU इम्प्लीमेंटेशन एक डेस्कटॉप GPU पर जटिल संरचनाओं के लिए 5 मिनट से कम में चलता है। हालांकि यह रियल-टाइम ब्राउज़र इस्तेमाल के लिए बहुत धीमा है, यह सर्वर-साइड जेनरेशन के लिए काफी तेज है। एक क्रिएटर नरम/कठोर चट्टान की लेयर के साथ एक चट्टान की सतह तय कर सकता है और मिनटों में एक असली मेहराब संरचना पा सकता है।</p>
<p>आउटपुट एक 3D voxel field है, जो सीधे हमारी SDF/marching cubes पाइपलाइन में फिट हो जाता है।</p>
<h3 id="रिप्रेजेंटेशन-के-पार-flexible-इरोज़न" tabindex="-1">रिप्रेजेंटेशन के पार Flexible इरोज़न <a class="header-anchor" href="#रिप्रेजेंटेशन-के-पार-flexible-इरोज़न" aria-label="Permalink to &quot;रिप्रेजेंटेशन के पार Flexible इरोज़न&quot;"></a></h3>
<p>IRIT-STORM का 2024 का एक पेपर (&quot;Flexible Terrain Erosion,&quot; <a href="https://link.springer.com/article/10.1007/s00371-024-03444-w" target="_blank" rel="noreferrer">Springer</a>) एक व्यावहारिक समस्या हल करता है: ज्यादातर इरोज़न मेथड सिर्फ heightfields पर काम करते हैं। अगर आपका टेरेन voxels, SDFs, या लेयर्ड मटेरियल इस्तेमाल करता है, तो आपको हर एक के लिए अलग इरोज़न कोड चाहिए।</p>
<p>flexible इरोज़न मेथड इरोज़न को दो स्वतंत्र प्रोसेस में बांटता है: टेरेन alteration (सतह से मटेरियल हटाना) और material transport (बुनियादी फिजिक्स से चलने वाले particles के साथ sediment ले जाना)। हर particle का size, density, restitution और sediment क्षमता configurable होती है। एक वैकल्पिक vector field असली fluid dynamics के लिए particle की गति को नियंत्रित करता है।</p>
<p>क्योंकि particles एक unified material alteration इंटरफेस के जरिए टेरेन से इंटरैक्ट करते हैं, वही सिमुलेशन heightfields, voxel grids, implicit surfaces और लेयर्ड मटेरियल stacks पर काम करता है। हमारे हाइब्रिड टेरेन (हाइटमैप बेस + SDF ओवरले) के लिए, इसका मतलब है कि एक इरोज़न सिस्टम दोनों रिप्रेजेंटेशन संभालता है। particle सिमुलेशन GPU पर parallel चलता है।</p>
<h3 id="river-networks-और-drainage-basins" tabindex="-1">River Networks और Drainage Basins <a class="header-anchor" href="#river-networks-और-drainage-basins" aria-label="Permalink to &quot;River Networks और Drainage Basins&quot;"></a></h3>
<p>इरोज़न नदियां काटता है, लेकिन भरोसेमंद river networks जेनरेट करने के लिए सिर्फ पानी को ढलान पर बहाना काफी नहीं है। दो तरीके बेहतर नतीजे देते हैं:</p>
<p><strong>Drainage-first जेनरेशन</strong> (Amit Patel, Red Blob Games, <a href="https://www.redblobgames.com/x/1723-procedural-river-growing/" target="_blank" rel="noreferrer">Project</a>) एलिवेशन देने से पहले river network बनाता है। एक graph से शुरू करें (Voronoi या triangle mesh)। edges को रिज (कोई बहाव नहीं), entries (पानी अंदर आता है), या outlets (पानी बाहर जाता है) के रूप में वर्गीकृत करें। इससे असली drainage hierarchies बनती हैं जहां नदियां छोटी सहायक नदियों से मिलकर बड़ी जलधाराओं में बदलती हैं, और अलग-अलग नदी प्रकारों के लिए Rosgen classification system का पालन करती हैं (समतल टेरेन में braided channels, पर्वतों में संकरी घाटियां)।</p>
<p><strong>Flow accumulation</strong> ट्रैक करता है कि हर टेरेन cell से कितना पानी गुजरता है। सिमुलेटेड बारिश को समान रूप से गिराएं, उसे ढलान पर बहाएं, और हर cell के visits गिनें। ज्यादा accumulation वाली cells नदी के channels हैं। मध्यम accumulation वाली cells मौसमी धाराएं हैं। accumulation मैप इरोज़न की तीव्रता (ज्यादा पानी = ज्यादा इरोज़न) और वनस्पति वितरण (नदी के किनारे ज्यादा गीले होते हैं, अलग पौधों की प्रजातियों को सहारा देते हैं) को भी चलाता है।</p>
<p>एक क्रिएटर दुनिया के लिए, river network टेरेन बनाते वक्त सर्वर-साइड जेनरेट होता है और प्रति chunk एक 2D flow direction मैप और एक water accumulation मैप के रूप में स्टोर होता है। ब्राउज़र क्लाइंट इन मैप का इस्तेमाल पानी की सतह रेंडर करने (नदी के channels में सही हाइट पर समतल plane) और वनस्पति वितरण चलाने (पानी के पास हरियाली ज्यादा) के लिए करता है।</p>
<h3 id="coastal-और-shoreline-जेनरेशन" tabindex="-1">Coastal और Shoreline जेनरेशन <a class="header-anchor" href="#coastal-और-shoreline-जेनरेशन" aria-label="Permalink to &quot;Coastal और Shoreline जेनरेशन&quot;"></a></h3>
<p>समुद्र तट वे जगह हैं जहां टेरेन पानी से मिलता है, और इनमें खास फीचर होते हैं जो मानक इरोज़न नहीं बनाता: समुद्री चट्टानें, beach deposits, tidal flats, sea stacks और wave-cut platforms।</p>
<p>NEWTS1.0 (2024, <a href="https://dspace.mit.edu/handle/1721.1/157677" target="_blank" rel="noreferrer">MIT</a>) दो इरोज़न तंत्रों का इस्तेमाल करके चट्टानी समुद्र तट के विकास को मॉडल करता है: uniform retreat (स्थिर इरोज़न दर) और wave-driven इरोज़न (fetch distance और incident wave angle के फंक्शन के रूप में इरोज़न दर)। यह मॉडल हजारों सिमुलेटेड सालों तक चलता है और headlands, खाड़ियां, sea stacks और मेहराब बनाता है जो असली coastal भू-आकृति विज्ञान से मेल खाते हैं।</p>
<p>एक ब्राउज़र दुनिया के लिए, coastal फीचर दुनिया बनाते वक्त पहले से जेनरेट होंगे। पैरामीटर (प्रमुख wave direction, तट के साथ चट्टान की कठोरता में बदलाव) क्रिएटर को उनके समुद्र तट का चरित्र नियंत्रित करने देते हैं। एक &quot;Norwegian fjord&quot; सेटिंग खड़ी किनारों वाली inlets बनाती है। एक &quot;tropical atoll&quot; सेटिंग lagoons के साथ नीची रेतीली तटरेखाएं बनाती है।</p>
<h3 id="cave-और-underground-जेनरेशन" tabindex="-1">Cave और Underground जेनरेशन <a class="header-anchor" href="#cave-और-underground-जेनरेशन" aria-label="Permalink to &quot;Cave और Underground जेनरेशन&quot;"></a></h3>
<p>गुफाओं को पूरी तरह वॉल्यूमेट्रिक टेरेन (SDFs या voxels) चाहिए क्योंकि हाइटमैप बंद जगहों को रिप्रेजेंट नहीं कर सकते। जेनरेशन के तरीके:</p>
<p><strong>3D noise thresholding</strong> सबसे सरल मेथड है। हर voxel पर 3D Perlin या simplex noise sample करें। threshold से नीचे की वैल्यू ठोस हैं, ऊपर की खाली। threshold और noise पैरामीटर एडजस्ट करके सुरंग का व्यास, connectivity और chamber size नियंत्रित करें। इससे organic, कीड़े जैसी गुफा प्रणालियां बनती हैं जो Minecraft की याद दिलाती हैं।</p>
<p><strong>PLUME (Procedural Layer Underground Modeling Engine)</strong> (2024, <a href="https://arxiv.org/html/2508.20926v1" target="_blank" rel="noreferrer">arXiv:2508.20926</a>) लेयर्ड प्रोसीजरल नियमों का इस्तेमाल करके असली गुफा और lava tube वातावरण जेनरेट करता है। मूल रूप से अंतरिक्ष अन्वेषण रिसर्च के लिए बनाया गया (मंगल के lava tubes को सिमुलेट करते हुए), यह stalactites, columns और chamber systems के साथ भूगर्भीय रूप से संभव भूमिगत संरचनाएं बनाता है।</p>
<p><strong>metaball carving के साथ L-system सुरंगें</strong> एक L-system grammar का इस्तेमाल करके टेरेन से होकर शाखाओं वाले सुरंग रास्ते उगाती हैं, फिर metaball implicit surfaces का इस्तेमाल करके असल सुरंग ज्यामिति carve करती हैं। metaballs smooth, गोल गुफा की दीवारें बनाते हैं। अलग-अलग पैरामीटर के साथ कई passes प्राथमिक रास्ते, साइड chambers और संकरी जोड़ने वाली सुरंगें बनाते हैं।</p>
<p>एक क्रिएटर दुनिया के लिए, cave जेनरेशन SDF ओवरले सिस्टम से जुड़ती है। बेस टेरेन एक हाइटमैप है (कोई गुफा नहीं)। जब किसी chunk को गुफाएं चाहिए (या तो प्रोसीजरल जेनरेशन से या क्रिएटर डिज़ाइन से), तो एक SDF वॉल्यूम जेनरेट होता है जो बेस टेरेन से cave ज्यामिति घटाता है। marching cubes पाइपलाइन मिली हुई सतह रेंडर करती है।</p>
<h3 id="वनस्पति-एक-फिजिकल-प्रोसेस-के-रूप-में" tabindex="-1">वनस्पति एक फिजिकल प्रोसेस के रूप में <a class="header-anchor" href="#वनस्पति-एक-फिजिकल-प्रोसेस-के-रूप-में" aria-label="Permalink to &quot;वनस्पति एक फिजिकल प्रोसेस के रूप में&quot;"></a></h3>
<p>गेम में वनस्पति आमतौर पर प्रोसीजरल रूप से ऐसे नियमों के साथ रखी जाती है जैसे &quot;2000m से नीचे घास, 1500m से नीचे पेड़, 3000m से ऊपर बर्फ।&quot; यह तेज है लेकिन एकसमान, गैर-असली वितरण बनाता है।</p>
<p>फिजिकली ग्राउंडेड वनस्पति सिमुलेशन हर पौधे को संसाधनों (रोशनी, पानी, मिट्टी के पोषक तत्व) के लिए प्रतिस्पर्धा करते हुए मॉडल करता है। सिमुलेशन:</p>
<ol>
<li>बीज टेरेन पर बिखेरे जाते हैं</li>
<li>हर पौधा उपलब्ध संसाधनों के आधार पर बढ़ता है (पानी hydraulic इरोज़न सिमुलेशन से बहता है, धूप ढलान और aspect पर निर्भर करती है, मिट्टी की गहराई इरोज़न इतिहास पर निर्भर करती है)</li>
<li>पौधे प्रतिस्पर्धा करते हैं: पेड़ घास को छाया में डाल देते हैं, घना canopy नए seedlings को रोकता है</li>
<li>सिमुलेटेड समय के साथ, biomes स्वाभाविक रूप से उभरते हैं: पानी वाली घाटियों में जंगल, हवादार रिज पर विरल वनस्पति, जहां पानी जमा होता है वहां wetlands</li>
</ol>
<p>Deussen et al. का ecosystem सिमुलेशन (<a href="https://export.arxiv.org/pdf/2208.01471v1.pdf" target="_blank" rel="noreferrer">Paper</a>) ऐसे जंगल वितरण बनाता है जो असली पारिस्थितिक पैटर्न से मेल खाते हैं। सिमुलेशन एक 2D ग्रिड पर चलता है (प्रति टेरेन chunk एक cell) और density maps और species assignments बनाता है जिन्हें रेंडरिंग सिस्टम GPU instanced वनस्पति प्लेसमेंट के लिए इस्तेमाल करता है।</p>
<p>एक ब्राउज़र दुनिया के लिए, वनस्पति सिमुलेशन दुनिया जेनरेशन के दौरान एक बार चलता है (सर्वर-साइड)। आउटपुट प्रति chunk density maps का एक सेट है: tree density, grass density, flower density, rock debris density। ब्राउज़र क्लाइंट इन मैप को GPU instancing के साथ इस्तेमाल करके runtime पर वनस्पति बिखेरता है।</p>
<h2 id="diffusion-आधारित-टेरेन-सिंथेसिस" tabindex="-1">Diffusion-आधारित टेरेन सिंथेसिस <a class="header-anchor" href="#diffusion-आधारित-टेरेन-सिंथेसिस" aria-label="Permalink to &quot;Diffusion-आधारित टेरेन सिंथेसिस&quot;"></a></h2>
<p>यहीं फील्ड सबसे तेजी से आगे बढ़ रहा है। Diffusion models (वही टेक्नोलॉजी जो images के लिए Stable Diffusion के पीछे है) टेरेन जेनरेशन पर लागू की जा रही है, और नतीजे नॉइज़-आधारित मेथड से काफी ज्यादा असली हैं।</p>
<h3 id="terrain-diffusion-perlin-noise-का-उत्तराधिकारी" tabindex="-1">Terrain Diffusion: Perlin Noise का उत्तराधिकारी <a class="header-anchor" href="#terrain-diffusion-perlin-noise-का-उत्तराधिकारी" aria-label="Permalink to &quot;Terrain Diffusion: Perlin Noise का उत्तराधिकारी&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/hJoaCZ7wZ5s" title="Terrain Diffusion Minecraft Integration" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Terrain Diffusion Minecraft के अंदर चलते हुए, रियल टाइम में अनंत seed-consistent टेरेन स्ट्रीम करते हुए। असली दुनिया के एलिवेशन डेटा पर ट्रेन किया गया, यह ऐसे लैंडस्केप बनाता है जिनकी भूगर्भीय संरचना नॉइज़ फंक्शन मैच नहीं कर सकते।</div>
<p>Terrain Diffusion (Goslin, 2025, <a href="https://arxiv.org/abs/2512.08309" target="_blank" rel="noreferrer">arXiv:2512.08309</a>, <a href="https://xandergos.github.io/terrain-diffusion/" target="_blank" rel="noreferrer">Project page</a>) 1985 में Perlin noise के बाद से प्रोसीजरल टेरेन जेनरेशन में सबसे बड़ी प्रगति है। इस काम को बाद में SIGGRAPH 2026 में स्वीकार किया गया, और canonical arXiv शीर्षक अब &quot;InfiniteDiffusion: Bridging Learned Fidelity and Procedural Utility for Open-World Terrain Generation&quot; है। InfiniteDiffusion एल्गोरिदम और Terrain Diffusion फ्रेमवर्क एक ही पेपर के दो हिस्से हैं।</p>
<p>मुख्य नवाचार <strong>InfiniteDiffusion</strong> है, एक एल्गोरिदम जो unbounded domains के लिए diffusion sampling को नए सिरे से तैयार करता है। पारंपरिक diffusion models fixed-size आउटपुट बनाते हैं (जैसे एक 512x512 हाइटमैप)। InfiniteDiffusion अनंत विस्तार का टेरेन बनाता है, साथ में:</p>
<ul>
<li><strong>Seed consistency:</strong> एक ही seed हमेशा वही टेरेन बनाता है, Perlin noise की तरह</li>
<li><strong>Constant-time random access:</strong> आप पड़ोसी इलाके पहले जेनरेट किए बिना किसी भी पॉइंट पर हाइट query कर सकते हैं</li>
<li><strong>कोई boundary artifacts नहीं:</strong> बिना दिखने वाले seams या repetition के अनंत जेनरेशन</li>
</ul>
<p>सिस्टम diffusion models का एक hierarchical stack इस्तेमाल करता है। सबसे ऊपरी स्तर ग्रहीय-पैमाने के फीचर पकड़ता है (महाद्वीप, पर्वत श्रृंखलाएं)। हर अगला स्तर बारीक डिटेल जोड़ता है (अलग-अलग चोटियां, घाटियां, छोटे पैमाने का खुरदरापन)। एक compact Laplacian encoding समुद्र तल से हिमालय की चोटियों तक की विशाल dynamic range में आउटपुट को स्थिर करता है।</p>
<p><strong>परफॉर्मेंस:</strong> जेनरेशन रियल-टाइम अन्वेषण के साथ कदम मिलाकर चलता है। पेपर रिपोर्ट करता है कि orbital velocity (करीब 7,700 m/s) के सैद्धांतिक चरम पर भी, टेरेन सिंथेसिस एक consumer GPU पर traversal से 9x तेज चलता है। प्रोजेक्ट में एक Minecraft integration शामिल है जो रियल-टाइम टेरेन सिंथेसिस दिखाता है।</p>
<p><strong>यह हमारे लिए क्यों मायने रखता है:</strong> Terrain Diffusion असली दुनिया के एलिवेशन डेटा (पृथ्वी की असल भू-आकृति) पर ट्रेन किए गए लैंडस्केप बनाता है। आउटपुट में river networks, पर्वत श्रृंखलाएं, coastal फीचर और plateau संरचनाएं हैं जो training data से उभरती हैं, हाथ से ट्यून किए गए noise पैरामीटर से नहीं। एक क्रिएटर कह सकता है &quot;Scottish Highlands जैसा टेरेन जेनरेट करो&quot; और diffusion model कुछ सही भूगर्भीय चरित्र वाला बनाएगा।</p>
<p>मॉडल दुनिया जेनरेशन के दौरान सर्वर-साइड चलता है। आउटपुट एक मानक हाइटमैप है जो किसी भी अन्य टेरेन डेटा की तरह ब्राउज़र तक स्ट्रीम होता है। जेनरेशन मेथड क्लाइंट के लिए अदृश्य है।</p>
<h3 id="terrafusion-संयुक्त-ज्यामिति-और-टेक्सचर" tabindex="-1">TerraFusion: संयुक्त ज्यामिति और टेक्सचर <a class="header-anchor" href="#terrafusion-संयुक्त-ज्यामिति-और-टेक्सचर" aria-label="Permalink to &quot;TerraFusion: संयुक्त ज्यामिति और टेक्सचर&quot;"></a></h3>
<div class="img-embed">
<img src="https://cdn.cinevva.com/blog/terrafusion-teaser.png" alt="TerraFusion jointly generates terrain heightmaps and matching surface textures from sketches using latent diffusion" />
</div>
<div class="game-caption">TerraFusion एक हाथ से बने स्केच से हाइटमैप और टेक्सचर एक साथ जेनरेट करता है। ज्यामिति और मटेरियल के बीच का सहसंबंध बेक्ड-इन है, नदी के तल रेतीले निकलते हैं, चट्टान की सतहें चट्टानी, समतल जमीन घास वाली, बिना किसी मैन्युअल splat painting के।</div>
<p>TerraFusion (2025, <a href="https://arxiv.org/abs/2505.04050" target="_blank" rel="noreferrer">arXiv:2505.04050</a>) हाइटमैप और टेरेन टेक्सचर को संयुक्त रूप से जेनरेट करके आगे जाता है। मुख्य अंतर्दृष्टि: टेरेन ज्यामिति और सतह का रूप कोरिलेटेड हैं (नदी के तल रेतीले होते हैं, चट्टान की सतहें चट्टानी, समतल इलाके घास वाले)। इन्हें अलग-अलग जेनरेट करने से बेमेल पैदा होता है।</p>
<p>TerraFusion हाइटमैप और टेक्सचर के लिए अलग VAEs के साथ एक latent diffusion model इस्तेमाल करता है, जो उनके joint distribution को मॉडल करने के लिए ट्रेन किया गया है। सिस्टम सपोर्ट करता है:</p>
<ul>
<li><strong>Unconditional जेनरेशन:</strong> मैचिंग टेक्सचर के साथ रैंडम संभव टेरेन</li>
<li><strong>Sketch-conditioned जेनरेशन:</strong> एक क्रिएटर एक मोटा नक्शा बनाता है (यहां घाटियां, वहां रिज, इस किनारे चट्टानें) और मॉडल विस्तृत ज्यामिति और टेक्सचर जेनरेट करता है जो स्केच से मेल खाते हैं</li>
</ul>
<p>एक क्रिएटर दुनिया के लिए, यह असरदार है। एक क्रिएटर अपने plot का सामान्य layout स्केच करता है, और सिस्टम उचित सतह मटेरियल के साथ भूगर्भीय रूप से संभव टेरेन भर देता है। कोई हाइटमैप painting नहीं, कोई texture splatting नहीं, कोई मैन्युअल material assignment नहीं।</p>
<h3 id="mesa-text-to-terrain" tabindex="-1">MESA: Text-to-Terrain <a class="header-anchor" href="#mesa-text-to-terrain" aria-label="Permalink to &quot;MESA: Text-to-Terrain&quot;"></a></h3>
<div class="img-embed">
<img src="https://cdn.cinevva.com/blog/mesa-header.png" alt="MESA generates satellite-style terrain images and elevation maps from text prompts, trained on global Copernicus data" />
</div>
<div class="game-caption">MESA टेक्स्ट प्रॉम्प्ट से जोड़ीदार satellite images और DEMs देता है। Copernicus global dataset पर ट्रेन किया गया, यह हर पैमाने और जलवायु क्षेत्र पर असली टेरेन को समझता है, fjords, steppes, खेती की जमीन, alpine रिज।</div>
<p>MESA (2025, <a href="https://arxiv.org/abs/2504.07210" target="_blank" rel="noreferrer">arXiv:2504.07210</a>, CVPR 2025 Workshop) टेक्स्ट विवरण से टेरेन जेनरेट करता है। यह Copernicus प्रोग्राम के global remote sensing data पर ट्रेन किया गया है, इसलिए इसे हर तरह के स्थलीय लैंडस्केप का अनुभव है।</p>
<p>&quot;steep granite walls वाला एक fjord जो एक चट्टानी समुद्र तट में खुलता है&quot; जैसा एक प्रॉम्प्ट उचित भूगर्भीय संरचना के साथ एक हाइटमैप बनाता है। &quot;हल्की पहाड़ियों और चौड़ी नदी घाटी वाली लहरदार खेती की जमीन&quot; कुछ बिल्कुल अलग बनाता है।</p>
<p>MESA, Major TOM Core-DEM extension dataset पेश करता है, जो globally satellite imagery को digital elevation models के साथ जोड़ता है। यह training data मॉडल को यह समझ देता है कि असली टेरेन हर पैमाने पर और हर जलवायु क्षेत्र में कैसा दिखता है।</p>
<h3 id="geodiffussr-text-guided-terrain-texturing" tabindex="-1">Geodiffussr: Text-Guided Terrain Texturing <a class="header-anchor" href="#geodiffussr-text-guided-terrain-texturing" aria-label="Permalink to &quot;Geodiffussr: Text-Guided Terrain Texturing&quot;"></a></h3>
<div class="img-embed">
<img src="https://cdn.cinevva.com/blog/geodiffussr-teaser.png" alt="Geodiffussr generates terrain textures from text descriptions while respecting elevation data — snow on peaks, sand at coasts, forest on slopes" />
</div>
<div class="game-caption">Geodiffussr एक हाइटमैप और एक टेक्स्ट प्रॉम्प्ट लेता है और ऐसे सतह टेक्सचर जेनरेट करता है जो एलिवेशन का सम्मान करते हैं। बर्फ सिर्फ संभव ऊंचाइयों के ऊपर दिखती है, ऊंचाई के साथ वनस्पति पतली होती है, पानी गड्ढों में बैठता है। ज्यामिति वैसी ही रहती है।</div>
<p>Geodiffussr (2025, <a href="https://arxiv.org/abs/2511.23029" target="_blank" rel="noreferrer">arXiv:2511.23029</a>) एक मौजूदा हाइटमैप लेता है और एलिवेशन डेटा का सम्मान करते हुए टेक्स्ट विवरण से निर्देशित टेक्सचर जेनरेट करता है। &quot;Autumn forest&quot; मध्यम ढलानों पर नारंगी और सुनहरे पत्ते बनाता है और खड़ी सतहों पर खुली चट्टान। &quot;Tropical coast&quot; नीची जमीन पर palm वनस्पति बनाता है और समुद्र तल पर coral रेत।</p>
<p>सिस्टम multi-scale content aggregation इस्तेमाल करता है ताकि texture assignments एलिवेशन का सम्मान करें: बर्फ सिर्फ एक फिजिकली संभव ऊंचाई के ऊपर दिखती है, पानी के फीचर गड्ढों में बैठते हैं, ऊंचाई के साथ वनस्पति पतली होती है।</p>
<p>एक क्रिएटर दुनिया के लिए, इसका मतलब है कि टेरेन टेक्सचर को ज्यामिति बदले बिना एक टेक्स्ट प्रॉम्प्ट से फिर जेनरेट किया जा सकता है। एक क्रिएटर अपना मनचाहा टेरेन sculpt करता है, फिर mood का वर्णन करता है (&quot;dark volcanic wasteland&quot; या &quot;lush temperate forest&quot;) और सिस्टम उचित सतह मटेरियल जेनरेट करता है।</p>
<h2 id="ब्राउज़र-टेरेन-के-लिए-dynamic-lod" tabindex="-1">ब्राउज़र टेरेन के लिए Dynamic LOD <a class="header-anchor" href="#ब्राउज़र-टेरेन-के-लिए-dynamic-lod" aria-label="Permalink to &quot;ब्राउज़र टेरेन के लिए Dynamic LOD&quot;"></a></h2>
<p>बड़े टेरेन को हर जगह full resolution पर रेंडर करना एक ब्राउज़र में असंभव है। 1-मीटर रिज़ॉल्यूशन पर एक 4 km x 4 km दुनिया अकेले टेरेन की 1.6 करोड़ vertices है। Dynamic LOD इसे दुनिया के size की परवाह किए बिना एक स्थिर, संभालने लायक vertex count तक घटा देता है।</p>
<h3 id="geometry-clipmaps" tabindex="-1">Geometry Clipmaps <a class="header-anchor" href="#geometry-clipmaps" aria-label="Permalink to &quot;Geometry Clipmaps&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/yoUQRT-Hmcc" title="Geometry clipmaps: Terrain rendering using nested regular grids (SIGGRAPH 2004)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">geometry clipmaps की मूल SIGGRAPH 2004 प्रस्तुति। आधे होते रिज़ॉल्यूशन पर टेरेन के concentric rings दुनिया के size की परवाह किए बिना vertex count स्थिर रखते हैं, और आज भी ज्यादातर ब्राउज़र टेरेन LOD की नींव हैं।</div>
<p>Geometry clipmaps (Losasso और Hoppe, SIGGRAPH 2004, <a href="https://hhoppe.com/geomclipmap.pdf" target="_blank" rel="noreferrer">Paper</a>) हाइटमैप टेरेन LOD के लिए gold standard बने हुए हैं। आइडिया: टेरेन को कैमरा पर केंद्रित concentric चौकोर rings के एक सेट के रूप में रेंडर करें। हर ring पिछले से दोगुने क्षेत्र का होता है लेकिन आधे रिज़ॉल्यूशन पर।</p>
<p>कैमरा के पास (सबसे अंदरूनी ring): full resolution, 1-मीटर ग्रिड spacing।
एक ring बाहर: 2-मीटर spacing, 4x क्षेत्र को कवर करते हुए।
अगला ring: 4-मीटर spacing, 16x क्षेत्र को कवर करते हुए।
और ऐसे ही 6-8 स्तरों तक, जब तक सबसे बाहरी ring पूरी दृश्य दूरी को कवर न कर ले।</p>
<p>कुल vertex count स्थिर है: लगभग N^2 * levels, जहां N vertices में ring की चौड़ाई है। N=256 और 8 levels के साथ, यह कुल करीब 500K vertices है। यह वैसा ही रेंडर होता है चाहे दुनिया 1 km चौड़ी हो या 100 km।</p>
<p><strong>ब्राउज़र इम्प्लीमेंटेशन:</strong> Geometry clipmaps WebGL 2 में काम करते हैं क्योंकि उन्हें सिर्फ मानक vertex buffer अपडेट चाहिए (कोई compute shaders नहीं)। जैसे कैमरा चलता है, CPU हर ring के लिए हाइटमैप डेटा को उचित रिज़ॉल्यूशन पर टेरेन sample करके अपडेट करता है। vertex shader एक texture से हाइट वैल्यू पढ़ता है और समतल ग्रिड को displace करता है।</p>
<p><strong>Morphing:</strong> LOD स्तरों के बीच का ट्रांज़िशन नासमझी से संभाला जाए तो दिखने वाला &quot;popping&quot; बनाता है। Geomorphing (नीचे अपने सेक्शन में बताया गया) एक ट्रांज़िशन zone पर vertex shader में स्तरों के बीच vertex पोज़ीशन blend करता है, और बिना अतिरिक्त draw call कॉस्ट के smooth, pop-free ट्रांज़िशन बनाता है।</p>
<h3 id="cdlod-quadtree-adaptive-clipmaps" tabindex="-1">CDLOD: Quadtree-Adaptive Clipmaps <a class="header-anchor" href="#cdlod-quadtree-adaptive-clipmaps" aria-label="Permalink to &quot;CDLOD: Quadtree-Adaptive Clipmaps&quot;"></a></h3>
<p>CDLOD (Strugar, 2014, <a href="https://www.vertexasylum.com/CDLOD/cdlod_latest.pdf" target="_blank" rel="noreferrer">Paper</a>) fixed concentric rings के बजाय एक quadtree इस्तेमाल करके geometry clipmaps में सुधार करता है। quadtree टेरेन के मुताबिक ढलता है: समतल इलाके मोटे nodes इस्तेमाल करते हैं, जबकि हाई डिटेल वाले इलाके (चट्टानें, रिज) बारीक subdivision पाते हैं।</p>
<p>यह एक क्रिएटर दुनिया के लिए मायने रखता है क्योंकि अलग-अलग chunks की जटिलता अलग होती है। एक समतल घास का मैदान न्यूनतम रिज़ॉल्यूशन चाहता है। चट्टानों और गुफाओं वाला एक पहाड़ी इलाका अधिकतम डिटेल चाहता है। CDLOD रिज़ॉल्यूशन वहां allocate करता है जहां यह मायने रखता है।</p>
<p>CPU-साइड quadtree traversal हल्का है (कुछ सौ nodes) और तय करता है कि किस रिज़ॉल्यूशन पर कौन से टेरेन patches draw करने हैं। GPU हर patch को per-patch LOD uniforms के साथ एक instanced ग्रिड के रूप में रेंडर करता है।</p>
<h3 id="concurrent-binary-trees-planetary-scale-tessellation" tabindex="-1">Concurrent Binary Trees: Planetary-Scale Tessellation <a class="header-anchor" href="#concurrent-binary-trees-planetary-scale-tessellation" aria-label="Permalink to &quot;Concurrent Binary Trees: Planetary-Scale Tessellation&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/0TzgFwDmbGg" title="Experimenting with Concurrent Binary Trees for Large Scale Terrain Rendering" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">ग्रहीय-पैमाने के टेरेन के लिए CBT adaptive tessellation: त्रिभुज कैमरा के पास subdivide होते हैं और दूरी में merge होते हैं, पूरी तरह GPU पर। console hardware पर 0.2ms से कम।</div>
<p>Concurrent Binary Trees (CBT) adaptive टेरेन tessellation के लिए एक GPU-फ्रेंडली डेटा संरचना है, जिसे Benyoub और Dupuy (Intel, HPG 2024, <a href="https://arxiv.org/html/2407.02215v1" target="_blank" rel="noreferrer">Paper</a>, <a href="https://github.com/AnisB/large_cbt" target="_blank" rel="noreferrer">GitHub</a>) ने पेश किया।</p>
<p>मुख्य आइडिया: टेरेन को एक binary tree के रूप में दर्शाएं जहां हर node एक त्रिभुज है। Adaptive subdivision कैमरा के पास वाले त्रिभुजों को split करता है और दूर वाले त्रिभुजों को merge करता है। binary tree पूरी तरह GPU memory में एक 1D array (एक binary heap) के रूप में रहता है, और subdivision/merge ऑपरेशन compute shaders के रूप में चलते हैं।</p>
<p>2024 का पेपर CBT को चौकोर हाइटमैप domains से बढ़ाकर मनचाहे polygon meshes तक ले जाता है। इसका मतलब है आप एक sphere को tessellate कर सकते हैं (ग्रहीय रेंडरिंग के लिए) या एक मनचाहा बेस मेश (गैर-आयताकार सीमाओं वाली गेम दुनिया के लिए)। मुख्य सुधार: implicit encoding के बजाय CBT को एक memory pool manager के रूप में इस्तेमाल करना बहुत ज्यादा subdivision स्तरों की अनुमति देता है।</p>
<p>परफॉर्मेंस: console-स्तर hardware पर 0.2ms से कम में ग्रहीय-पैमाने का टेरेन tessellation। एल्गोरिदम processor count के साथ linearly स्केल करता है। WebGPU के लिए, यह एक ब्राउज़र में planet-scale टेरेन रेंडरिंग का एक रास्ता देता है, हालांकि इम्प्लीमेंटेशन की जटिलता ज्यादा है।</p>
<h3 id="webgpu-के-साथ-gpu-driven-lod" tabindex="-1">WebGPU के साथ GPU-Driven LOD <a class="header-anchor" href="#webgpu-के-साथ-gpu-driven-lod" aria-label="Permalink to &quot;WebGPU के साथ GPU-Driven LOD&quot;"></a></h3>
<p>WebGPU एक पूरी तरह GPU-ड्रिवन टेरेन पाइपलाइन को सक्षम करता है जो LOD फैसलों में CPU की भागीदारी खत्म कर देती है:</p>
<ol>
<li>
<p><strong>Compute pass 1: Frustum और occlusion culling।</strong> एक compute shader हर टेरेन patch के bounding box को view frustum और एक occlusion buffer (पिछले फ्रेम का depth buffer, downsampled) के खिलाफ टेस्ट करता है। अदृश्य patches पूरी तरह हटा दिए जाते हैं।</p>
</li>
<li>
<p><strong>Compute pass 2: LOD selection।</strong> दिखने वाले patches के लिए, screen-space size compute करें और उचित LOD स्तर चुनें। LOD स्तर और patch ID को एक indirect draw buffer में लिखें।</p>
</li>
<li>
<p><strong>Compute pass 3: Mesh generation (वॉल्यूमेट्रिक टेरेन के लिए)।</strong> SDF डेटा वाले chunks के लिए, चुने हुए LOD रिज़ॉल्यूशन पर मेश जेनरेट करने के लिए marching cubes चलाएं।</p>
</li>
<li>
<p><strong>Indirect draw।</strong> एक ही <code>drawIndexedIndirect()</code> कॉल सभी टेरेन patches रेंडर करता है। GPU सब कुछ तय करता है: क्या draw करना है, किस रिज़ॉल्यूशन पर, किस क्रम में।</p>
</li>
</ol>
<p>इस पाइपलाइन की दुनिया के size या जटिलता की परवाह किए बिना स्थिर CPU कॉस्ट है (compute shaders dispatch करना और indirect draw call)। GPU हर patch के फैसले संभालता है।</p>
<div class="language-wgsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">wgsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">compute</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> @</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">workgroup_size</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">64</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> lodSelection</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">builtin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(global_invocation_id) id: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">u32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> patchIdx </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">x;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> bounds </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> patchBounds[patchIdx];</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">frustumTest</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(bounds, viewProjection)) { </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">occlusionTest</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(bounds, depthPyramid) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">==</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> OCCLUDED</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) { </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; }</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> screenSize </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> projectedSize</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(bounds, viewProjection, screenDimensions);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> lod </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> clamp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">u32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(maxScreenSize </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> screenSize)), </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0u</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, MAX_LOD);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> drawIdx </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> atomicAdd</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x26;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">drawCount, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1u</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    drawArgs[drawIdx] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> DrawArgs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(patchIdx, lod, indexCount[lod], indexOffset[lod]);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><h3 id="geomorphing-pop-free-lod-ट्रांज़िशन" tabindex="-1">Geomorphing: Pop-Free LOD ट्रांज़िशन <a class="header-anchor" href="#geomorphing-pop-free-lod-ट्रांज़िशन" aria-label="Permalink to &quot;Geomorphing: Pop-Free LOD ट्रांज़िशन&quot;"></a></h3>
<p>टेरेन LOD में सबसे बड़ा विज़ुअल artifact popping है: जब एक patch LOD स्तर बदलता है तो vertices अचानक नई पोज़ीशन पर कूद जाती हैं। Geomorphing एक ट्रांज़िशन zone पर LOD स्तरों के बीच vertex पोज़ीशन को smoothly interpolate करके इसे खत्म करता है।</p>
<p>इम्प्लीमेंटेशन पूरी तरह vertex shader में रहता है। हर vertex अपनी current-LOD पोज़ीशन और अपनी next-coarser-LOD पोज़ीशन दोनों स्टोर करता है। जैसे कैमरा दूरी ट्रांज़िशन threshold पार करती है, एक morph factor दोनों के बीच blend करता है:</p>
<div class="language-glsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">glsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> morphFactor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(lodNear, lodFar, distanceToCamera);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> morphedHeight </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> mix</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(fineLodHeight, coarseLodHeight, morphFactor);</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">gl_Position</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> viewProjection </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> vec4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(worldPos.x, morphedHeight, worldPos.z, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre>
</div><p>Hoppe का geometry clipmap पेपर (GPU Gems 2, <a href="https://developer.nvidia.com/gpugems/gpugems2/part-i-geometric-complexity/chapter-2-terrain-rendering-using-gpu-based-geometry" target="_blank" rel="noreferrer">Chapter 2</a>) clipmap rings के लिए पूरा इम्प्लीमेंटेशन बताता है। morph zone हर ring का बाहरी 20% है। इस zone के अंदर, vertices smoothly अगले ring के रिज़ॉल्यूशन की ओर converge करती हैं। विज़ुअल असर: टेरेन ज्यामिति detail स्तरों के बीच snap होने के बजाय &quot;पिघलती&quot; है। आम कैमरा स्पीड पर, ट्रांज़िशन अदृश्य होता है।</p>
<p>Image-space blending (Scherzer et al., <a href="https://onlinelibrary.wiley.com/doi/10.1111/j.1467-8659.2007.00943.x" target="_blank" rel="noreferrer">Paper</a>) एक विकल्प है जो दो LOD स्तरों की रेंडर की गई images को screen space में blend करता है। यह ज्यादा चरम LOD फर्क (जैसे mesh-to-billboard ट्रांज़िशन) संभालता है लेकिन ट्रांज़िशन zone के लिए एक अतिरिक्त render pass की कीमत लेता है।</p>
<h3 id="gpu-driven-vegetation-culling" tabindex="-1">GPU-Driven Vegetation Culling <a class="header-anchor" href="#gpu-driven-vegetation-culling" aria-label="Permalink to &quot;GPU-Driven Vegetation Culling&quot;"></a></h3>
<p>वनस्पति (पेड़, घास, चट्टानें) अक्सर एक ओपन वर्ल्ड में draw calls का सबसे बड़ा स्रोत होती है। एक नासमझ तरीका हर फ्रेम हर वनस्पति instance draw करता है। GPU-ड्रिवन culling, जो अब Three.js में WebGPU के जरिए उपलब्ध है, अदृश्य instances को rasterizer तक पहुंचने से पहले खत्म कर देता है।</p>
<p>Three.js का <code>ComputeInstanceCulling</code> (<a href="https://www.threejs-blocks.com/docs/ComputeInstanceCulling" target="_blank" rel="noreferrer">Docs</a>) instanced meshes के लिए frustum और LOD culling देता है, और बड़े instance counts के लिए 10-100x परफॉर्मेंस फायदा देता है। पाइपलाइन:</p>
<ol>
<li>एक compute shader सभी instance bounding spheres पढ़ता है</li>
<li>हर एक को कैमरा frustum के खिलाफ टेस्ट करता है (6-plane test)</li>
<li>distance-आधारित LOD लगाता है: एक threshold से परे के instances कम detail पर स्विच करते हैं या पूरी तरह cull हो जाते हैं</li>
<li>बचे हुए instances एक buffer में compact होते हैं और <code>drawIndirect</code> के जरिए draw होते हैं</li>
</ol>
<p>CPU per-instance शून्य काम करता है। शुरुआती setup के बाद, instance count की परवाह किए बिना कॉस्ट प्रति वनस्पति प्रकार एक compute dispatch और एक indirect draw call है।</p>
<p>घनी वनस्पति के लिए, Three.js का <code>IndirectBatchedMesh</code> (<a href="https://www.threejs-blocks.com/docs/IndirectBatchedMesh" target="_blank" rel="noreferrer">Docs</a>) कई ज्यामिति प्रकारों (पेड़, झाड़ियां, चट्टानें) को एक ही buffer में पैक करता है और उन्हें multi-draw indirect के साथ draw करता है। एक chunk की सारी वनस्पति के लिए एक draw call।</p>
<p>हमारे वनस्पति सिस्टम के density-map-आधारित scattering के साथ मिलाकर, इसका मतलब है: density मैप एक compute shader में 50,000 घास के तिनकों की पोज़ीशन बनाता है, culling pass उन 70% को खत्म करता है जो off-screen हैं या बहुत दूर, और एक indirect draw call बचे हुए 15,000 तिनके रेंडर करता है। कुल CPU कॉस्ट: नगण्य।</p>
<h3 id="वॉल्यूमेट्रिक-टेरेन-के-लिए-lod" tabindex="-1">वॉल्यूमेट्रिक टेरेन के लिए LOD <a class="header-anchor" href="#वॉल्यूमेट्रिक-टेरेन-के-लिए-lod" aria-label="Permalink to &quot;वॉल्यूमेट्रिक टेरेन के लिए LOD&quot;"></a></h3>
<p>वॉल्यूमेट्रिक टेरेन (SDF + marching cubes) को अपने ही LOD सिस्टम की जरूरत है क्योंकि मेश जेनरेट होती है, पहले से authored नहीं। तरीका:</p>
<p><strong>Multi-resolution SDF storage।</strong> SDF को एक mipmap जैसी hierarchy में कई रिज़ॉल्यूशन पर स्टोर करें। Level 0 full resolution है (1-मीटर voxels)। Level 1, 2-मीटर voxels है (8x कम डेटा)। Level 2, 4-मीटर voxels है। हर स्तर पर, SDF न्यूनतम absolute distance लेकर downsample होता है।</p>
<p><strong>LOD-selected marching cubes।</strong> चाहे गए LOD से मेल खाते SDF स्तर पर marching cubes चलाएं। पास के chunks level 0 इस्तेमाल करते हैं। दूर के chunks level 2 या 3 इस्तेमाल करते हैं। Transvoxel एल्गोरिदम अलग-अलग स्तरों के बीच की boundary संभालता है।</p>
<p><strong>Caching।</strong> जेनरेट की गई meshes तब तक कैश रहती हैं जब तक SDF न बदले (क्रिएटर एडिट) या LOD स्तर न बदले (कैमरा काफी हिला)। स्थिर टेरेन के लिए, मेश एक बार जेनरेट होकर फिर इस्तेमाल होती है।</p>
<h2 id="टेरेन-के-लिए-streaming-आर्किटेक्चर" tabindex="-1">टेरेन के लिए Streaming आर्किटेक्चर <a class="header-anchor" href="#टेरेन-के-लिए-streaming-आर्किटेक्चर" aria-label="Permalink to &quot;टेरेन के लिए Streaming आर्किटेक्चर&quot;"></a></h2>
<h3 id="chunk-डेटा-फॉर्मेट" tabindex="-1">Chunk डेटा फॉर्मेट <a class="header-anchor" href="#chunk-डेटा-फॉर्मेट" aria-label="Permalink to &quot;Chunk डेटा फॉर्मेट&quot;"></a></h3>
<p>हर टेरेन chunk (64x64 मीटर) एक compact binary package के रूप में स्ट्रीम होता है:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>ChunkPacket {</span></span>
<span class="line"><span>  header: {</span></span>
<span class="line"><span>    chunkX: i16, chunkZ: i16,</span></span>
<span class="line"><span>    version: u32,</span></span>
<span class="line"><span>    flags: u8  // hasHeightmap | hasVolumetric | hasVegetation</span></span>
<span class="line"><span>  }</span></span>
<span class="line"><span>  heightmap: {</span></span>
<span class="line"><span>    resolution: u8,      // 65x65 for full, 33x33 for half, 17x17 for quarter</span></span>
<span class="line"><span>    quantizedHeights: u16[resolution * resolution],  // delta-encoded, zlib compressed</span></span>
<span class="line"><span>    splatMap: u8[4 * resolution * resolution]         // RGBA blend weights, LZ4 compressed</span></span>
<span class="line"><span>  }</span></span>
<span class="line"><span>  volumetric?: {         // only present if flags.hasVolumetric</span></span>
<span class="line"><span>    sdfResolution: u8,   // typically 32 or 64</span></span>
<span class="line"><span>    sparseOctree: bytes  // run-length encoded sparse SDF</span></span>
<span class="line"><span>  }</span></span>
<span class="line"><span>  vegetation?: {         // only present if flags.hasVegetation</span></span>
<span class="line"><span>    treeDensityMap: u8[16 * 16],    // 4m resolution density grid</span></span>
<span class="line"><span>    grassDensityMap: u8[32 * 32],   // 2m resolution density grid</span></span>
<span class="line"><span>    rockDensityMap: u8[16 * 16]</span></span>
<span class="line"><span>  }</span></span>
<span class="line"><span>  creatorObjects: {</span></span>
<span class="line"><span>    count: u16,</span></span>
<span class="line"><span>    objects: PlacedObject[]   // assetId + transform + properties, ~40 bytes each</span></span>
<span class="line"><span>  }</span></span>
<span class="line"><span>}</span></span></code></pre>
</div><p><strong>आम size:</strong></p>
<ul>
<li>सिर्फ हाइटमैप वाला chunk (समतल टेरेन): 2-4 KB compressed</li>
<li>हाइटमैप + वनस्पति: 4-8 KB</li>
<li>हाइटमैप + वॉल्यूमेट्रिक + वनस्पति (जटिल chunk): 20-100 KB</li>
<li>5x5 full-detail neighborhood: कुल 50-500 KB</li>
</ul>
<h3 id="progressive-chunk-लोडिंग" tabindex="-1">Progressive Chunk लोडिंग <a class="header-anchor" href="#progressive-chunk-लोडिंग" aria-label="Permalink to &quot;Progressive Chunk लोडिंग&quot;"></a></h3>
<p>Chunks दूरी, गति की दिशा और डेटा प्रकार के आधार पर प्राथमिकता क्रम में लोड होते हैं:</p>
<p><strong>Priority 1 (तुरंत, &lt;100ms):</strong> उन chunks के लिए हाइटमैप ज्यामिति जिनमें प्लेयर घुसने वाला है। टेरेन की सतह पहले दिखती है। सबसे कम रिज़ॉल्यूशन (प्रति chunk 17x17) पर भी, जमीन मौजूद रहती है।</p>
<p><strong>Priority 2 (तेज, &lt;300ms):</strong> Splat maps और टेरेन टेक्सचर। जमीन को रंग मिलता है।</p>
<p><strong>Priority 3 (streaming, &lt;1s):</strong> Full-resolution हाइटमैप upgrade। वनस्पति density maps। GPU instancing पेड़ और घास बनाता है।</p>
<p><strong>Priority 4 (background, &lt;3s):</strong> गुफाओं/ओवरहैंग वाले chunks के लिए वॉल्यूमेट्रिक SDF डेटा। marching cubes एक Web Worker में मेश जेनरेट करता है, buffer को main thread में transfer करता है।</p>
<p><strong>Priority 5 (lazy, &lt;10s):</strong> क्रिएटर-रखे ऑब्जेक्ट। संरचनाओं के लिए हाई-रिज़ॉल्यूशन टेक्सचर। फूल, छोटी चट्टानें, मलबा जैसे डिटेल ऑब्जेक्ट।</p>
<h3 id="predictive-pre-fetching" tabindex="-1">Predictive Pre-fetching <a class="header-anchor" href="#predictive-pre-fetching" aria-label="Permalink to &quot;Predictive Pre-fetching&quot;"></a></h3>
<p>प्लेयर के एक chunk में घुसने का इंतजार न करें। वेलोसिटी के आधार पर अनुमान लगाएं कि वे कहां जा रहे हैं और पहले से लोड करें:</p>
<ul>
<li><strong>चलने की स्पीड (5 km/h):</strong> 2 chunks आगे pre-fetch करें (128m)। आम broadband latency पर, यह 200-400ms का lead time है।</li>
<li><strong>दौड़ना/सवारी (15 km/h):</strong> 4 chunks आगे pre-fetch करें। load ring वेलोसिटी की दिशा के साथ shift होता है।</li>
<li><strong>उड़ना/fast travel:</strong> ट्रांज़िशन के दौरान रेंडरिंग रोकें। destination chunks को सर्वोच्च प्राथमिकता पर स्ट्रीम करें। जब पहले फ्रेम के लिए काफी डेटा मौजूद हो तो रेंडरिंग फिर शुरू करें।</li>
</ul>
<p>pre-fetch सिस्टम ट्रैक करता है कि कौन से chunks cache में हैं, कौन से in-flight हैं (अनुरोध किए गए लेकिन अभी नहीं पहुंचे), और कौन से चाहिए। एक priority queue लंबित अनुरोधों को तात्कालिकता से sort करती है। जिन chunks से प्लेयर दूर जा चुका है, उनके अनुरोध रद्द करें।</p>
<h3 id="memory-बजट-और-eviction" tabindex="-1">Memory बजट और Eviction <a class="header-anchor" href="#memory-बजट-और-eviction" aria-label="Permalink to &quot;Memory बजट और Eviction&quot;"></a></h3>
<p>एक ब्राउज़र टैब को डेस्कटॉप पर 2-4 GB मिलता है। टेरेन सिस्टम को इसके एक हिस्से के अंदर रहना होगा (बाकी रेंडरिंग, फिजिक्स, networking और JavaScript heap के लिए है)।</p>
<p><strong>टारगेट बजट: सभी टेरेन डेटा के लिए 256 MB।</strong></p>
<p>हमारे आम chunk sizes पर:</p>
<ul>
<li>Full-detail cached chunks: ~100 (10x10 neighborhood) हर एक 5-100 KB पर = raw डेटा के लिए 5-10 MB</li>
<li>GPU टेरेन ज्यामिति: ~50 MB (दिखने वाले टेरेन के लिए vertex buffers, index buffers)</li>
<li>टेरेन टेक्सचर: ~100 MB (KTX2 compressed, atlas-packed)</li>
<li>वनस्पति instance buffers: ~50 MB (GPU instancing के लिए positions, rotations, scales)</li>
<li>SDF वॉल्यूम और cached marching cubes meshes: ~50 MB</li>
</ul>
<p>दृश्य range से परे के chunks पहले GPU memory से evict होते हैं (टेक्सचर, vertex buffers), फिर CPU cache से। raw हाइटमैप डेटा सबसे आखिर में जाता है क्योंकि इसे रखना सबसे सस्ता है और प्लेयर के पलटने पर इसका होना सबसे जरूरी।</p>
<h2 id="biome-ट्रांज़िशन-और-anti-tiling" tabindex="-1">Biome ट्रांज़िशन और Anti-Tiling <a class="header-anchor" href="#biome-ट्रांज़िशन-और-anti-tiling" aria-label="Permalink to &quot;Biome ट्रांज़िशन और Anti-Tiling&quot;"></a></h2>
<h3 id="smooth-biome-सीमाएं" tabindex="-1">Smooth Biome सीमाएं <a class="header-anchor" href="#smooth-biome-सीमाएं" aria-label="Permalink to &quot;Smooth Biome सीमाएं&quot;"></a></h3>
<p>असली लैंडस्केप में biomes के बीच कड़े किनारे नहीं होते। एक जंगल किसी रेखा पर रुककर रेगिस्तान नहीं बन जाता। एक gradient होता है: घना जंगल पतला होकर बिखरे पेड़ों में बदलता है, फिर scrubland, फिर विरल रेगिस्तानी वनस्पति। इसे सही करना दुनिया को tiled के बजाय निरंतर महसूस कराता है।</p>
<p><strong>AutoBiomes</strong> (Kötter et al., <a href="https://cgvr.cs.uni-bremen.de/papers/cgi20/AutoBiomes.pdf" target="_blank" rel="noreferrer">Paper</a>) प्रोसीजरल टेरेन जेनरेशन को सरलीकृत जलवायु सिमुलेशन के साथ मिलाता है। तापमान, आर्द्रता और एलिवेशन हर पॉइंट पर biome प्रकार तय करते हैं। biomes के बीच, material weights और वनस्पति घनत्व एक ट्रांज़िशन zone (आमतौर पर 50-100 मीटर चौड़ा) पर interpolate होते हैं। ट्रांज़िशन की चौड़ाई biome जोड़ी के हिसाब से अलग होती है: forest-to-grassland चौड़ा और क्रमिक है, cliff-to-water संकरा और अचानक।</p>
<p>एक क्रिएटर दुनिया के लिए, biome assignment एक मोटे ग्रिड पर चलता है (प्रति 16x16 मीटर क्षेत्र एक biome sample)। टेरेन shader मौजूदा fragment और उसके पड़ोसियों के लिए biome वैल्यू पढ़ता है, ट्रांज़िशन zone में material weights interpolate करता है, और तदनुसार टेक्सचर blend करता है। वनस्पति scattering वही interpolated घनत्व वैल्यू इस्तेमाल करती है, इसलिए जंगल के किनारे पर tree density धीरे-धीरे fade होती है।</p>
<p>क्रिएटर नियंत्रण: क्रिएटर को अपने plots पर biome overrides पेंट करने दें। सिस्टम टेरेन गुणों से डिफ़ॉल्ट biomes जेनरेट करता है, लेकिन क्रिएटर उन्हें override कर सकते हैं। किसी नीची जगह पर &quot;swamp&quot; पेंट करें और मटेरियल गंदले पानी, काई और मरे हुए पेड़ों में बदल जाता है। biome paint मैप biome IDs का एक per-chunk 16x16 ग्रिड (256 bytes) है जो प्रोसीजरल assignment को override करता है।</p>
<h3 id="hex-tiling-texture-repetition-खत्म-करना" tabindex="-1">Hex-Tiling: Texture Repetition खत्म करना <a class="header-anchor" href="#hex-tiling-texture-repetition-खत्म-करना" aria-label="Permalink to &quot;Hex-Tiling: Texture Repetition खत्म करना&quot;"></a></h3>
<p>टेरेन रेंडरिंग में सबसे आम विज़ुअल artifact texture repetition है। एक 100-मीटर घास के मैदान पर tiled एक 1-मीटर घास texture दिखने वाले grid पैटर्न बनाती है। दो तकनीकें इसे ठीक करती हैं:</p>
<p><strong>Hex-tiling</strong> (Mikkelsen, <a href="https://github.com/mmikk/hextile-demo" target="_blank" rel="noreferrer">Demo</a>) चौकोर tiling grid की जगह एक hexagonal grid रखती है। हर hexagonal tile texture को एक रैंडम offset और rotation पर sample करती है। seams छिपाने के लिए hexagonal सीमाओं को blend किया जाता है। नतीजा एक ऐसी सतह है जो tiled के बजाय एकसमान रूप से रैंडम दिखती है। कॉस्ट: प्रति fragment लगभग 3 अतिरिक्त texture samples। यह तकनीक production गेम में व्यापक रूप से इस्तेमाल होती है और किसी भी fragment shader में चलती है।</p>
<p><strong>Stochastic texture filtering</strong> (Pharr et al., NVIDIA, 2024, <a href="https://research.nvidia.com/labs/rtr/publication/pharr2024stochtex/" target="_blank" rel="noreferrer">Paper</a>) shading से पहले के बजाय बाद में filtering लगाती है, stochastic sampling इस्तेमाल करते हुए। stochastic sampling से error न्यूनतम है और spatiotemporal denoising से अच्छे से संभाला जाता है। यह ज्यादा सटीक filtered नतीजे देता है और compressed/sparse टेक्सचर के साथ काम करता है। टेरेन के लिए, यह tiling artifacts और वे filtering artifacts दोनों खत्म करता है जो hex-tiling कभी-कभी ट्रांज़िशन पर पैदा कर सकती है।</p>
<p>एक ब्राउज़र दुनिया के लिए, hex-tiling व्यावहारिक विकल्प है (यह किसी भी shader में काम करती है)। Stochastic filtering को ज्यादा infrastructure चाहिए लेकिन अगर temporal denoising उपलब्ध हो (जो TAA के साथ एक WebGPU रास्ते में होगा) तो यह बेहतर नतीजे देती है।</p>
<h2 id="टेरेन-material-सिस्टम" tabindex="-1">टेरेन Material सिस्टम <a class="header-anchor" href="#टेरेन-material-सिस्टम" aria-label="Permalink to &quot;टेरेन Material सिस्टम&quot;"></a></h2>
<h3 id="triplanar-mapping" tabindex="-1">Triplanar Mapping <a class="header-anchor" href="#triplanar-mapping" aria-label="Permalink to &quot;Triplanar Mapping&quot;"></a></h3>
<p>मानक UV-mapped टेक्सचर खड़ी ढलानों पर भयानक रूप से खिंच जाते हैं क्योंकि UV coordinates compress होते हैं। Triplanar mapping टेक्सचर को तीनों axes (X, Y, Z) पर project करता है और सतह के normal के आधार पर blend करता है:</p>
<div class="language-glsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">glsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> blending </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> abs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(normal);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">blending </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> normalize</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">max</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(blending, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.00001</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">));</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">blending </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (blending.x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> blending.y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> blending.z);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> xaxis </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> texture</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(material, worldPos.yz </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> scale</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> yaxis </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> texture</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(material, worldPos.xz </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> scale</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> zaxis </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> texture</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(material, worldPos.xy </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70"> scale</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> color </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> xaxis </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> blending.x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> yaxis </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> blending.y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> zaxis </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> blending.z;</span></span></code></pre>
</div><p>चट्टान की सतहों को X या Z projection मिलता है (कोई stretching नहीं)। समतल जमीन को Y projection मिलता है। blending smooth और automatic है। कोई UV unwrapping जरूरी नहीं।</p>
<p>Babylon.js में एक built-in <a href="https://doc.babylonjs.com/toolsAndResources/assetLibraries/materialsLibrary/triPlanarMat" target="_blank" rel="noreferrer">TriPlanar Material</a> है। Three.js को एक custom shader चाहिए, लेकिन इम्प्लीमेंटेशन करीब 30 लाइन GLSL है।</p>
<p>PBR टेरेन के लिए, triplanar mapping को सभी channels पर लगाएं: albedo, normal, roughness और ambient occlusion। वही blending weights हर channel पर लागू होते हैं।</p>
<h3 id="slope-और-altitude-आधारित-material-assignment" tabindex="-1">Slope और Altitude-आधारित Material Assignment <a class="header-anchor" href="#slope-और-altitude-आधारित-material-assignment" aria-label="Permalink to &quot;Slope और Altitude-आधारित Material Assignment&quot;"></a></h3>
<p>हाथ से splat maps पेंट करने के बजाय, टेरेन गुणों के आधार पर मटेरियल प्रोसीजरल रूप से assign करें:</p>
<div class="language-glsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">glsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> slope </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> acos</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">dot</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(normal, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)));</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> altitude </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> worldPos.y;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> grassWeight </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, slope) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2000.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1500.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, altitude);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> rockWeight </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, slope);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> snowWeight </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2500.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">3000.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, altitude) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, slope);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> sandWeight </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">5.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, altitude) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.15</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, slope);</span></span></code></pre>
</div><p>नीची ऊंचाई पर समतल जमीन को घास मिलती है। खड़ी ढलानों को चट्टान। ऊंची ऊंचाई को बर्फ (लेकिन सिर्फ उन सतहों पर जो बर्फ जमा होने के लिए काफी समतल हों)। समुद्र तल के पास रेत। ट्रांज़िशन smooth और फिजिकली प्रेरित हैं।</p>
<p>एक क्रिएटर दुनिया के लिए, altitude thresholds और blend zones को प्रति chunk paintable पैरामीटर के रूप में expose करें। क्रिएटर treeline को ऊपर या नीचे ले जा सकते हैं, बर्फ की कवरेज बढ़ा सकते हैं, या अपने plot के लिए material नियम एडजस्ट करके एक घास वाली पहाड़ी को रेतीले रेगिस्तान में बदल सकते हैं।</p>
<h3 id="gpu-friendly-laplacian-texture-blending" tabindex="-1">GPU-Friendly Laplacian Texture Blending <a class="header-anchor" href="#gpu-friendly-laplacian-texture-blending" aria-label="Permalink to &quot;GPU-Friendly Laplacian Texture Blending&quot;"></a></h3>
<p>मानक texture blending (लेयर के बीच linear interpolation) या तो दिखने वाले seams पैदा करती है या धुले-धुले, low-contrast नतीजे। Laplacian pyramid blending इसे हल करती है लेकिन पारंपरिक रूप से महंगी precomputation चाहती है।</p>
<p>Wronski (NVIDIA, 2025, <a href="https://jcgt.org/published/0014/01/02/" target="_blank" rel="noreferrer">JCGT</a>) एक GPU-friendly वैरिएंट पेश करते हैं जो रियल-टाइम shaders में बिना precomputation और बिना अतिरिक्त memory के काम करता है। यह तकनीक मानक mipmap chain को Laplacian pyramid के एक अनुमान के रूप में इस्तेमाल करती है: texture को मौजूदा mip level और एक मोटे level दोनों पर sample करें, अंतर (Laplacian) compute करें, और हर लेयर से Laplacian योगदान blend करें।</p>
<p>नतीजा sharp local फीचर (अलग-अलग घास के तिनके, चट्टान की दरारें) बचाता है जबकि बड़े पैमाने पर smoothly blend करता है। कॉस्ट प्रति fragment कुछ अतिरिक्त texture taps है। ऐसे टेरेन के लिए जहां आप प्रति pixel 4+ material layers blend कर रहे हैं, यह linear blending से काफी बेहतर नतीजे देती है, खासकर घास, चट्टान और रेत के बीच के ट्रांज़िशन पर।</p>
<h3 id="erosion-detail-के-लिए-phasor-noise" tabindex="-1">Erosion Detail के लिए Phasor Noise <a class="header-anchor" href="#erosion-detail-के-लिए-phasor-noise" aria-label="Permalink to &quot;Erosion Detail के लिए Phasor Noise&quot;"></a></h3>
<p>मानक टेरेन अक्सर पास से देखने पर समतल दिखता है क्योंकि इरोज़न सिमुलेशन हाइटमैप रिज़ॉल्यूशन (1-मीटर ग्रिड) पर चलता है। असली टेरेन में सेंटीमीटर पैमाने पर बारीक इरोज़न पैटर्न (rills, gullies, weathering cracks) होते हैं।</p>
<p>Grenier et al. (2024, <a href="https://diglib.eg.org/bitstream/handle/10.1111/cgf14992/v43i1_05_cgf14992.pdf" target="_blank" rel="noreferrer">CGF</a>) रियल टाइम में टेरेन माइक्रो-डिटेल जोड़ने के लिए phasor noise इस्तेमाल करते हैं। Phasor noise एक stochastic phase field को periodic functions में फीड करके structured पैटर्न synthesize करता है। टेरेन पर लागू, यह spatially varying इरोज़न पैटर्न बनाता है जो:</p>
<ul>
<li>संकरे rills को scales के पार बड़े gullies में cascade करते हैं</li>
<li>टेरेन ढलान के साथ अपने आप align होते हैं (इरोज़न पैटर्न fall line का पीछा करते हैं)</li>
<li>32x तक amplification हासिल करते हैं (हाइटमैप रिज़ॉल्यूशन के 32x पर detail जोड़ते हुए)</li>
<li>पूरी तरह एक fragment shader में इंटरैक्टिव frame rates पर चलते हैं</li>
</ul>
<p>एक ब्राउज़र दुनिया के लिए, phasor noise टेरेन shader में एक detail layer के रूप में चलता है। हाइटमैप बड़े पैमाने का आकार देता है। Phasor noise fragment shader में ज्यामिति की जटिलता बढ़ाए बिना भरोसेमंद माइक्रो-इरोज़न जोड़ता है। पैरामीटर (pattern frequency, amplitude, orientation) प्रति biome अलग हो सकते हैं: खुली चट्टान पर गहरे rills, रेत के टीलों पर हल्की लहरें, सूखी मिट्टी पर खुरदरी छाल जैसी texture।</p>
<h3 id="टेरेन-के-लिए-virtual-texturing" tabindex="-1">टेरेन के लिए Virtual Texturing <a class="header-anchor" href="#टेरेन-के-लिए-virtual-texturing" aria-label="Permalink to &quot;टेरेन के लिए Virtual Texturing&quot;"></a></h3>
<p>बड़े पैमाने पर, टेरेन texture atlas बेढंगा हो जाता है। 1 texel प्रति सेंटीमीटर पर एक 4 km x 4 km दुनिया को 400,000 x 400,000 pixel texture चाहिए। साफ तौर पर असंभव।</p>
<p>Virtual texturing (इसे megatexture भी कहते हैं, id Software के Rage से) टेरेन texture को एक paged structure के रूप में मानकर इसे हल करता है। पूरी texture वैचारिक रूप से मौजूद है लेकिन सिर्फ स्क्रीन पर दिखने वाली tiles GPU memory में लोड होती हैं।</p>
<p>पाइपलाइन:</p>
<ol>
<li><strong>Feedback pass:</strong> टेरेन को एक shader के साथ रेंडर करें जो आउटपुट करता है कि हर pixel को कौन सी texture tile चाहिए (tile ID और mip level)। इसे CPU में वापस पढ़ें (या एक compute shader से प्रोसेस करें)।</li>
<li><strong>Tile loading:</strong> अनुरोधित tiles को CDN से लोड करें या splat मैप डेटा से प्रोसीजरल रूप से जेनरेट करें।</li>
<li><strong>Indirection texture:</strong> एक छोटी texture virtual tile coordinates को एक texture atlas में physical tile coordinates पर map करती है।</li>
<li><strong>Render pass:</strong> टेरेन shader सही physical tile ढूंढने के लिए indirection texture देखता है, फिर atlas से material texture sample करता है।</li>
</ol>
<p>WebGPU के compute shaders feedback analysis और page table management पूरी तरह GPU पर संभाल सकते हैं। CPU सिर्फ tile I/O मैनेज करता है।</p>
<p>नतीजा: texture memory विस्फोट के बिना किसी भी रिज़ॉल्यूशन पर unique texturing वाला टेरेन। कैमरा से दूर की tiles low resolution पर लोड होती हैं। पास की tiles high resolution पर लोड होती हैं। कुल memory उपयोग एक fixed बजट के अंदर रहता है (आमतौर पर 128-256 MB texture atlas)।</p>
<h2 id="dynamic-टेरेन-इफेक्ट" tabindex="-1">Dynamic टेरेन इफेक्ट <a class="header-anchor" href="#dynamic-टेरेन-इफेक्ट" aria-label="Permalink to &quot;Dynamic टेरेन इफेक्ट&quot;"></a></h2>
<h3 id="puddles-और-wetness" tabindex="-1">Puddles और Wetness <a class="header-anchor" href="#puddles-और-wetness" aria-label="Permalink to &quot;Puddles और Wetness&quot;"></a></h3>
<p>बारिश सिर्फ गिरती नहीं। यह जमा होती है। गड्ढों में, यह puddles बनाती है। सतहों पर, यह एक गीली चमक बनाती है। खड़ी ढलानों पर, यह बह जाती है। इसे सिमुलेट करना मौसम को टेरेन से जुड़ा हुआ महसूस कराता है, न कि पूरी तरह विज़ुअल overlay।</p>
<p>shader-आधारित तरीका fluid dynamics सिमुलेट नहीं करता। यह यह तय करने के लिए टेरेन हाइटमैप इस्तेमाल करता है कि पानी कहां जमा होता है:</p>
<div class="language-glsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">glsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> concavity </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> heightCenter </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 4.0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> heightLeft </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> heightRight </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> heightUp </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> heightDown;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> puddleDepth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> max</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, concavity </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> rainIntensity </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> evaporationRate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> timeSinceRain);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> wetness </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> smoothstep</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.02</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, puddleDepth);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> wetColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> baseColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.7</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> wetRoughness </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> baseRoughness </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> finalColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> mix</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(baseColor, wetColor, wetness);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> finalRoughness </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> mix</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(baseRoughness, wetRoughness, wetness);</span></span></code></pre>
</div><p>Concave इलाके (हाइटमैप का negative Laplacian) पानी इकट्ठा करते हैं। concavity जितनी गहरी, puddle उतना बड़ा। गीली सतहें गहरी होती हैं और ज्यादा reflective बनती हैं (कम roughness)। बारिश रुकने के बाद असर समय के साथ fade होता है।</p>
<p>पूरे puddle reflections के लिए, puddle सतह पर एक planar reflection pass जोड़ें। या screen-space reflections (SSR) इस्तेमाल करें जो सस्ते हैं और Three.js और Babylon.js दोनों के post-processing stacks में पहले से उपलब्ध हैं।</p>
<p>Puddle सतहों पर बारिश की बूंदें एक feedback texture में एक साधारण 2D wave equation इस्तेमाल करती हैं (Saurel, 2026, <a href="https://www.4rknova.com/blog/2026/02/08/raindrops-on-puddle" target="_blank" rel="noreferrer">Blog</a>)। हर बारिश की बूंद एक ripple बनाती है जो बाहर की ओर फैलती है और घटती है। wave texture puddle normal map को modulate करती है, और 60fps पर भरोसेमंद ripple पैटर्न बनाती है।</p>
<h3 id="footprints-और-terrain-deformation" tabindex="-1">Footprints और Terrain Deformation <a class="header-anchor" href="#footprints-और-terrain-deformation" aria-label="Permalink to &quot;Footprints और Terrain Deformation&quot;"></a></h3>
<p>जब एक प्लेयर नरम टेरेन (रेत, बर्फ, मिट्टी) पर चलता है, footprints फिजिकल मौजूदगी का एहसास बढ़ाते हैं। तकनीक: प्रति chunk एक छोटी deformation texture (64x64 pixels = 4 KB) रखें जो हाइट offsets स्टोर करती है। जब एक कैरेक्टर नरम टेरेन पर कदम रखता है, deformation texture में एक footprint आकार stamp करें।</p>
<p>टेरेन vertex shader deformation texture पढ़ता है और हाइट से offset घटाता है। टेरेन fragment shader footprint इलाके को गहरा करता है (दबी हुई मिट्टी गहरी होती है) और roughness बढ़ाता है (अस्त-व्यस्त सतह)।</p>
<p>Footprints deformation texture को धीरे-धीरे शून्य करके समय के साथ fade होते हैं (बर्फ भर जाती है, बारिश मिट्टी के निशान धो देती है)। fade दर मौसम पर निर्भर करती है: बारिश में तेज, सूखे में धीमी।</p>
<p>एक मल्टीप्लेयर दुनिया के लिए, footprint डेटा ephemeral और local है। हर क्लाइंट दिखने वाले प्लेयर के लिए footprints जेनरेट करता है। deformation texture को clients के बीच sync करने की जरूरत नहीं (हर कोई अपने version के transient footprints देखता है)। यह हर कदम broadcast करने की networking कॉस्ट से बचाता है।</p>
<h3 id="procedural-sky-और-day-night-cycle" tabindex="-1">Procedural Sky और Day/Night Cycle <a class="header-anchor" href="#procedural-sky-और-day-night-cycle" aria-label="Permalink to &quot;Procedural Sky और Day/Night Cycle&quot;"></a></h3>
<p>आसमान किसी भी ओपन वर्ल्ड में सबसे बड़ी दिखने वाली सतह है। यह पूरे टेरेन का mood तय करता है।</p>
<p>Three.js में एक <a href="https://discourse.threejs.org/t/complete-sky-system-for-three-js-skybox-sun-moon-day-night-cycle-clouds-stars-lensflares/88311" target="_blank" rel="noreferrer">complete sky system</a> है जिसमें procedural sun/moon, day/night cycle, बादल, तारे और lens flares शामिल हैं। built-in Three.js <code>Sky</code> example (जो <a href="https://threejs.org/examples/webgpu_sky.html" target="_blank" rel="noreferrer">WebGPU</a> में भी उपलब्ध है) Preetham का एनालिटिकल sky model लागू करता है।</p>
<p>ज्यादा फिजिकली सटीक नतीजों के लिए, <a href="https://jolifantobambla.github.io/webgpu-sky-atmosphere/" target="_blank" rel="noreferrer">webgpu-sky-atmosphere</a> Hillaire के atmosphere model को एक WebGPU post-process के रूप में लागू करता है। यह multiple scattering phase functions सपोर्ट करता है और first principles से सही aerial perspective (दूर का टेरेन ज्यादा धुंधला दिखता है), sun/sunset रंग, और sky gradients बनाता है।</p>
<p><a href="https://dev.to/the_lone_engineer/terrainview7-full-scale-planet-rendering-in-webgpu-emscripten-now-with-precomputed-atmospheric-18ik" target="_blank" rel="noreferrer">TerrainView7</a> precomputed atmospheric scattering के साथ WebGPU में full-scale planet rendering दिखाता है, और साबित करता है कि फिजिकली सटीक atmosphere rendering एक ब्राउज़र में चलती है।</p>
<p>एक क्रिएटर दुनिया के लिए, sky पैरामीटर (sun position, बादल कवरेज, धुंध density) सभी clients में सर्वर की world clock से synchronize होते हैं। sky shader हर client पर local चलता है, और सभी प्लेयर में एकसमान lighting बनाता है।</p>
<h3 id="टेरेन-lighting-indirect-illumination" tabindex="-1">टेरेन Lighting: Indirect Illumination <a class="header-anchor" href="#टेरेन-lighting-indirect-illumination" aria-label="Permalink to &quot;टेरेन Lighting: Indirect Illumination&quot;"></a></h3>
<p>सीधी धूप shadow maps से संभाली जाती है। लेकिन छाया में टेरेन का रंग और चमक (ambient/indirect light) विज़ुअल क्वालिटी के लिए उतना ही जरूरी है। पूरी तरह काली छायाएं गलत दिखती हैं। छायाओं को sky रंग से tint होना चाहिए (साफ दिन पर नीली, बादल वाले दिन पर ग्रे)।</p>
<p>एक ब्राउज़र दुनिया के लिए, व्यावहारिक तरीका:</p>
<p><strong>Screen-space indirect lighting</strong> visibility bitmask के साथ (Jimenez et al., 2023, <a href="https://export.arxiv.org/pdf/2301.11376v2.pdf" target="_blank" rel="noreferrer">Paper</a>) प्रति pixel 32 directional visibility sectors ट्रैक करके मानक SSAO में सुधार करता है। यह सिर्फ यह नहीं पकड़ता कि एक पॉइंट कितना occluded है, बल्कि occlusion की दिशा भी। पतली सतहें सही ढंग से दूसरी तरफ से रोशनी आने देती हैं। नतीजा एक ऐसा indirect illumination है जो global illumination infrastructure के बिना पास की ज्यामिति पर प्रतिक्रिया करता है।</p>
<p>कॉस्ट SSAO के बराबर है (1-2ms)। विज़ुअल सुधार बड़ा है: canyons में टेरेन canyon की दीवारों से bounce light उठाता है। ओवरहैंग के नीचे ground reflection से रोशन होते हैं। यह असर sky shader के atmospheric scattering के साथ मिलकर फिजिकली प्रेरित ambient lighting बनाता है।</p>
<h2 id="टेरेन-physics-integration" tabindex="-1">टेरेन Physics Integration <a class="header-anchor" href="#टेरेन-physics-integration" aria-label="Permalink to &quot;टेरेन Physics Integration&quot;"></a></h2>
<h3 id="rapier-heightfield-colliders" tabindex="-1">Rapier Heightfield Colliders <a class="header-anchor" href="#rapier-heightfield-colliders" aria-label="Permalink to &quot;Rapier Heightfield Colliders&quot;"></a></h3>
<p>Rapier का WASM physics engine टेरेन के लिए optimized native heightfield colliders देता है। एक टेरेन collider बनाना सीधा है:</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> heights</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Float32Array</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">65</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> *</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 65</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Fill with heightmap data...</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> groundCollider</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> RAPIER</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.ColliderDesc.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">heightfield</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">  64</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">64</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, heights, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> RAPIER</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Vector3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">64.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">100.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">64.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">world.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">createCollider</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(groundCollider);</span></span></code></pre>
</div><p>heightfield collider कुशल broadphase queries के लिए structured grid इस्तेमाल करता है। एक heightfield के खिलाफ raycasting एक triangle mesh के O(n) के बजाय O(log n) है। एक 65x65 chunk के लिए, collision queries microseconds में हल होती हैं।</p>
<p>वॉल्यूमेट्रिक टेरेन (SDF ओवरले) वाले chunks के लिए, marching cubes आउटपुट से एक triangle mesh जेनरेट करें और एक trimesh collider इस्तेमाल करें। यह heightfield collider से ज्यादा महंगा है लेकिन मनचाही ज्यामिति संभालता है। सिर्फ प्लेयर के सबसे नज़दीकी 3-5 chunks के लिए trimesh colliders जेनरेट करें। दूर के chunks को physics नहीं चाहिए।</p>
<p><strong>परफॉर्मेंस:</strong> एक 65x65 chunk के लिए Rapier का heightfield collider character controller queries के लिए प्रति physics step लगभग 0.1ms जोड़ता है। heightfield colliders वाले 5 active chunks: 0.5ms। एक वॉल्यूमेट्रिक chunk के लिए एक trimesh collider: 0.2-0.5ms। कुल टेरेन physics बजट: 1ms से कम, पूरी दुनिया के लिए 2-3ms physics बजट के अंदर अच्छे से।</p>
<h3 id="terrain-aware-character-controller" tabindex="-1">Terrain-Aware Character Controller <a class="header-anchor" href="#terrain-aware-character-controller" aria-label="Permalink to &quot;Terrain-Aware Character Controller&quot;"></a></h3>
<p>character controller को टेरेन गुणों पर प्रतिक्रिया देनी होगी:</p>
<ul>
<li><strong>Slope limiting:</strong> कैरेक्टर 45 डिग्री तक की ढलानों पर चल सकता है। ज्यादा खड़ी ढलानें फिसलन पैदा करती हैं। यह कैरेक्टर की पोज़ीशन पर टेरेन normal इस्तेमाल करता है (हाइटमैप gradient से सस्ते में compute होता है)।</li>
<li><strong>Surface material response:</strong> चट्टान पर चलना रेत या मिट्टी पर चलने से अलग footstep आवाज और movement speed पैदा करता है। टेरेन का splat मैप किसी भी पॉइंट पर सतह का मटेरियल देता है।</li>
<li><strong>Step climbing:</strong> कैरेक्टर 0.5 मीटर तक के कगारों पर चढ़ सकता है। Rapier का <code>KinematicCharacterController</code> इसे configurable step height के साथ अपने आप संभालता है।</li>
</ul>
<h2 id="ब्राउज़र-में-interactive-terrain-editing" tabindex="-1">ब्राउज़र में Interactive Terrain Editing <a class="header-anchor" href="#ब्राउज़र-में-interactive-terrain-editing" aria-label="Permalink to &quot;ब्राउज़र में Interactive Terrain Editing&quot;"></a></h2>
<p>एक क्रिएटर दुनिया के लिए, टेरेन सिर्फ जेनरेट नहीं होता। इसे प्लेयर sculpt, modify और reshape करते हैं। editing टूल को responsive (तुरंत विज़ुअल feedback) और networked (बाकी प्लेयर सेकंडों में बदलाव देखें) होना चाहिए।</p>
<h3 id="webgpu-sdf-editor" tabindex="-1">WebGPU SDF Editor <a class="header-anchor" href="#webgpu-sdf-editor" aria-label="Permalink to &quot;WebGPU SDF Editor&quot;"></a></h3>
<p>Reinder Nijhoff का <a href="https://reindernijhoff.net/2026/01/webgpu-sdf-editor-real-time-signed-distance-field-modeling/" target="_blank" rel="noreferrer">WebGPU SDF Editor</a> दिखाता है कि full-featured SDF modeling आज ब्राउज़र में काम करती है। editor सपोर्ट करता है:</p>
<ul>
<li><strong>छह primitive आकार</strong> (sphere, box, cone, cylinder, capsule, torus) position, rotation और scale के साथ</li>
<li><strong>Boolean ऑपरेशन</strong> (union, subtraction, intersection) smooth blending और configurable blend radii के साथ</li>
<li><strong>Hierarchical scene graphs</strong> groups और nested ऑपरेशन के साथ</li>
<li><strong>Real-time rendering</strong> कई GPU compute shader stages, 16,384 grid cells में octree-आधारित space partitioning, और marching cubes या surface nets के जरिए surface extraction इस्तेमाल करते हुए</li>
<li><strong>Temporal anti-aliasing और ambient occlusion</strong> shadow maps के जरिए</li>
</ul>
<p>हर primitive एक ही GPU buffer में 28 floats (112 bytes) के रूप में स्टोर होता है। यह compact रिप्रेजेंटेशन मतलब है कि एक जटिल टेरेन एडिट (दर्जनों SDF primitives जो एक गुफा प्रवेश, एक मेहराब, या एक carved चट्टान की सतह तय करते हैं) 5 KB से कम का होता है और बाकी प्लेयर के साथ तुरंत sync होता है।</p>
<p>एक क्रिएटर दुनिया के लिए, SDF editing workflow ऐसा दिखता है:</p>
<ol>
<li>क्रिएटर एक sculpting टूल चुनता है (sphere जोड़ो, box घटाओ, smooth blend)</li>
<li>SDF primitive रखने और साइज़ करने के लिए दुनिया में click/drag करता है</li>
<li>क्लाइंट तुरंत local मेश अपडेट करने के लिए modified SDF पर marching cubes चलाता है (&lt;16ms में feedback)</li>
<li>SDF एडिट (primitive type + transform + blend mode, ~100 bytes) सर्वर को भेजा जाता है</li>
<li>सर्वर एडिट validate करता है (क्रिएटर के plot के अंदर, protected इलाकों से intersect नहीं करता) और पास के प्लेयर को broadcast करता है</li>
<li>बाकी प्लेयर के clients SDF एडिट लागू करते हैं और अपनी local मेश फिर जेनरेट करते हैं</li>
</ol>
<p>एक एडिट के बाकी लोगों को दिखने का कुल round-trip: नेटवर्क latency के हिसाब से 100-300ms। क्रिएटर अपना एडिट तुरंत देखता है क्योंकि यह सर्वर पुष्टि से पहले local लागू होता है।</p>
<h3 id="brush-based-heightmap-editing" tabindex="-1">Brush-Based Heightmap Editing <a class="header-anchor" href="#brush-based-heightmap-editing" aria-label="Permalink to &quot;Brush-Based Heightmap Editing&quot;"></a></h3>
<p>हाइटमैप लेयर के लिए (टेरेन का 90% जिसे वॉल्यूमेट्रिक फीचर नहीं चाहिए), एक सरल editing model काम करता है। क्रिएटर एक ब्रश से हाइट बदलाव पेंट करता है:</p>
<ul>
<li><strong>Raise/lower:</strong> falloff के साथ एक radius में हाइट जोड़ें या घटाएं</li>
<li><strong>Smooth:</strong> एक radius में हाइट औसत करें, sharp फीचर हटाते हुए</li>
<li><strong>Flatten:</strong> एक radius में सभी हाइट को एक target वैल्यू पर सेट करें</li>
<li><strong>Erosion brush:</strong> ब्रश radius में local hydraulic इरोज़न के कुछ steps लगाएं</li>
</ul>
<p>हाइटमैप एडिट एक delta है: हाइट बदलाव का एक छोटा patch जो बेस टेरेन के ऊपर overlay होता है। delta patch छोटा है (16-bit हाइट offsets का एक 32x32 ग्रिड = 2 KB) और बाकी प्लेयर के साथ एक ही message के रूप में sync होता है। प्रति chunk कई delta patches जमा होते हैं और समय-समय पर सर्वर-साइड chunk के persistent हाइटमैप में merge होते हैं।</p>
<h3 id="collaborative-editing-बाधाएं" tabindex="-1">Collaborative Editing बाधाएं <a class="header-anchor" href="#collaborative-editing-बाधाएं" aria-label="Permalink to &quot;Collaborative Editing बाधाएं&quot;"></a></h3>
<p>जब कई क्रिएटर एक ही chunk एक साथ एडिट करते हैं, सिस्टम को नियम चाहिए:</p>
<ul>
<li><strong>Spatial locking:</strong> एक दिए गए 8x8 मीटर sub-region को एक बार में सिर्फ एक क्रिएटर एडिट कर सकता है। lock तब हासिल होता है जब क्रिएटर एक edit stroke शुरू करता है और तब छूटता है जब वे ब्रश उठाते हैं। 10 सेकंड की निष्क्रियता के बाद locks timeout हो जाते हैं।</li>
<li><strong>Non-overlapping edits:</strong> अगर दो क्रिएटर एक ही chunk के अलग हिस्से एडिट करते हैं, दोनों एडिट बिना टकराव के लागू होते हैं (वे अलग हाइटमैप cells या SDF regions बदलते हैं)।</li>
<li><strong>Overlapping edits:</strong> अगर दो क्रिएटर एक ही जगह एडिट करते हैं, सर्वर एडिट को आगमन क्रम में serialize करता है। reconciliation के बाद दोनों clients वही अंतिम नतीजा देखते हैं।</li>
</ul>
<p>यह placed objects के लिए इस्तेमाल किए जाने वाले पूरे CRDT तरीके से सरल है क्योंकि टेरेन एडिट एक निरंतर field (हाइट, SDF distances) पर additive ऑपरेशन हैं, न कि अलग object state।</p>
<h2 id="webgpu-में-nanite-style-virtual-geometry" tabindex="-1">WebGPU में Nanite-Style Virtual Geometry <a class="header-anchor" href="#webgpu-में-nanite-style-virtual-geometry" aria-label="Permalink to &quot;WebGPU में Nanite-Style Virtual Geometry&quot;"></a></h2>
<p>Unreal Engine 5 का Nanite build time पर एक cluster DAG (directed acyclic graph) बनाकर और runtime पर screen-space error के आधार पर per-cluster सही LOD चुनकर अरबों त्रिभुज रेंडर करता है। पूरी पाइपलाइन GPU पर चलती है। इस तरीके को WebGPU में port किया गया है।</p>
<h3 id="nanite-webgpu" tabindex="-1">Nanite WebGPU <a class="header-anchor" href="#nanite-webgpu" aria-label="Permalink to &quot;Nanite WebGPU&quot;"></a></h3>
<div class="img-embed">
<img src="https://cdn.cinevva.com/blog/nanite-webgpu-scene.png" alt="Nanite WebGPU rendering a complex multi-object scene in a browser using meshlet LOD hierarchy and software rasterizer" />
</div>
<div class="game-caption">Nanite WebGPU Chrome में एक पूरा scene रेंडर करते हुए, meshlet LOD, WGSL compute shaders में software rasterization, और per-meshlet frustum और occlusion culling इस्तेमाल करते हुए। कोई native plugin नहीं, शुद्ध WebGPU।</div>
<p><a href="https://scthe.github.io/nanite-webgpu/" target="_blank" rel="noreferrer">Nanite WebGPU</a> by Scthe (1.1k+ GitHub stars) Nanite के core आर्किटेक्चर का एक पूरा ब्राउज़र इम्प्लीमेंटेशन है:</p>
<ul>
<li><strong>Meshlet LOD hierarchy</strong> meshoptimizer के cluster generation का इस्तेमाल करके offline बनाई गई</li>
<li><strong>Software rasterizer</strong> WGSL compute shaders में लागू (WebGPU की उन बाधाओं के अंदर काम करते हुए जहां hardware rasterization per-cluster draws कुशलता से नहीं कर सकती)</li>
<li><strong>Per-instance और per-meshlet culling</strong> frustum और occlusion tests इस्तेमाल करते हुए</li>
<li><strong>Billboard impostors</strong> बेहद दूर के objects के लिए</li>
<li><strong>Texture और per-vertex normal सपोर्ट</strong></li>
</ul>
<p>पाइपलाइन: meshes को ~128 त्रिभुजों के clusters में बांटा जाता है। पड़ोसी clusters को group किया जाता है, और हर group को simplify किया जाता है (meshoptimizer इस्तेमाल करते हुए) जबकि shared boundaries बचाई जाती हैं। यह तब तक recurse करता है जब तक पूरी मेश एक ही cluster में collapse न हो जाए। runtime पर, एक compute shader DAG पर चलता है और per-group सबसे मोटा cluster चुनता है जो मौजूदा screen resolution पर 1 pixel से कम error पैदा करता है।</p>
<p><strong>THREE-Nanite</strong> एक उभरता हुआ Three.js इम्प्लीमेंटेशन है जो integrated graphics hardware पर 20-40fps हासिल करता है जबकि लाखों त्रिभुज संभालता है। यह दिखाता है कि Nanite-style rendering low-end ब्राउज़र hardware पर भी चलने लायक है।</p>
<h3 id="meshoptimizer-lod-पाइपलाइन-की-नींव" tabindex="-1">meshoptimizer: LOD पाइपलाइन की नींव <a class="header-anchor" href="#meshoptimizer-lod-पाइपलाइन-की-नींव" aria-label="Permalink to &quot;meshoptimizer: LOD पाइपलाइन की नींव&quot;"></a></h3>
<p><a href="https://meshoptimizer.org/" target="_blank" rel="noreferrer">meshoptimizer</a> (Arseny Kapoulkine द्वारा) ज्यादातर ब्राउज़र-compatible LOD पाइपलाइन के पीछे की library है। Version 1.0 (2025) देता है:</p>
<ul>
<li><strong>Mesh simplification</strong> error metrics के साथ (आकार कितना बदला, LOD selection के लिए इस्तेमाल)</li>
<li><strong>Cluster generation</strong> Nanite-style meshlet hierarchies के लिए</li>
<li><strong>Vertex cache optimization</strong> GPU-friendly triangle ordering के लिए</li>
<li><strong>Overdraw optimization</strong> pixel shader कॉस्ट घटाने के लिए</li>
<li><strong>Vertex quantization और compression</strong> छोटे downloads के लिए</li>
</ul>
<p>meshoptimizer 1.0 (दिसंबर 2025 में रिलीज़) एक नया single-header <code>clusterlod.h</code> शिप करता है जो Nanite-style continuous LOD सीधे लागू करता है। यह clusters की एक hierarchy बनाता है जो क्रमिक रूप से group और simplify होती हैं, जो as-is या एक custom पाइपलाइन के लिए reference के रूप में इस्तेमाल हो सकती है। यह वही cluster-DAG primitive है जो टेरेन पाइपलाइन को SDF/marching-cubes मेश LOD के लिए चाहिए।</p>
<p>हमारी टेरेन पाइपलाइन के लिए, meshoptimizer SDF टेरेन के marching cubes आउटपुट को LOD hierarchies वाली optimized, clustered meshes में प्रोसेस करता है। offline processing सर्वर-साइड चलती है। ब्राउज़र pre-clustered meshes पाता है और runtime पर GPU-ड्रिवन LOD selection करता है।</p>
<p>LOD generation के लिए meshoptimizer और runtime selection के लिए WebGPU compute का मेल ब्राउज़र टेरेन को Nanite जैसा ही architectural पैटर्न देता है, web बाधाओं के लिए ढाला हुआ।</p>
<h2 id="terrain-aware-level-design" tabindex="-1">Terrain-Aware Level Design <a class="header-anchor" href="#terrain-aware-level-design" aria-label="Permalink to &quot;Terrain-Aware Level Design&quot;"></a></h2>
<p>टेरेन सिर्फ एक सतह नहीं है जिस पर चलना हो। इसका आकार प्लेयर की गति को निर्देशित करता है, ध्यान directs करता है, और अन्वेषण का भावनात्मक rhythm बनाता है। सबसे अच्छी ओपन वर्ल्ड टेरेन को एक डिज़ाइन टूल के रूप में इस्तेमाल करती हैं।</p>
<h3 id="sightlines-और-landmarks" tabindex="-1">Sightlines और Landmarks <a class="header-anchor" href="#sightlines-और-landmarks" aria-label="Permalink to &quot;Sightlines और Landmarks&quot;"></a></h3>
<p>Level Design Book का <a href="https://book.leveldesignbook.com/process/blockout/wayfinding" target="_blank" rel="noreferrer">wayfinding chapter</a> बताता है कि कैसे टेरेन एलिवेशन नियंत्रित करता है कि प्लेयर क्या देखते हैं और कहां जाते हैं। एक रिज उसके पीछे की चीज़ छिपाती है, और जिज्ञासा पैदा करती है। एक घाटी गति को अपने सबसे नीचे पॉइंट की ओर funnel करती है। दूर से दिखने वाला एक ऊंचा landmark (टावर, पर्वत शिखर, असामान्य पेड़) प्लेयर को चलने के लिए एक लक्ष्य देता है।</p>
<p>एक क्रिएटर दुनिया के लिए, इसका मतलब है कि टेरेन जेनरेशन को प्राकृतिक wayfinding फीचर बनाने चाहिए। रिज लाइन को sightlines तोड़नी चाहिए, और &quot;reveal moments&quot; बनाने चाहिए जब एक प्लेयर एक पहाड़ी की चोटी पर पहुंचता है और एक नया इलाका देखता है। घाटियों को दिलचस्प जगहों की ओर converge करना चाहिए। ऊंचे पॉइंट वहां मौजूद होने चाहिए जहां क्रिएटर दूर से दिखने वाले landmarks रख सकें।</p>
<h3 id="curiosity-driven-exploration" tabindex="-1">Curiosity-Driven Exploration <a class="header-anchor" href="#curiosity-driven-exploration" aria-label="Permalink to &quot;Curiosity-Driven Exploration&quot;"></a></h3>
<p>Purdue University से रिसर्च (<a href="https://web.ics.purdue.edu/~cmousas/papers/conf22-FDG-SpatialExploration.pdf" target="_blank" rel="noreferrer">Paper</a>) चार spatial exploration triggers पहचानती है:</p>
<ol>
<li><strong>चरम पॉइंट तक पहुंचना</strong> (सबसे ऊंची चोटी, सबसे दूर का किनारा, सबसे गहरी गुफा)। टेरेन में साफ चरम होने चाहिए जो वहां पहुंचने पर इनाम दें।</li>
<li><strong>विज़ुअल बाधाएं हल करना</strong> (उस चट्टान के पीछे क्या है? उस गुफा के अंदर?)। ऐसा टेरेन जो दृश्य रोकता है, छिपी चीज़ ढूंढने के लिए गति को प्रेरित करता है।</li>
<li><strong>जगह से बाहर के objects</strong> (जंगल में एक संरचना, अंधेरे में एक रोशनी)। प्राकृतिक टेरेन के खिलाफ क्रिएटर-रखे objects एक contrast बनाते हैं जो ध्यान खींचता है।</li>
<li><strong>Spatial connections समझना</strong> (यह घाटी उस तट से कैसे जुड़ती है?)। ऐसा टेरेन जो पठनीय भूगोल बनाता है, map-reading और route-planning को प्रोत्साहित करता है।</li>
</ol>
<h3 id="plotmap-ai-assisted-poi-placement" tabindex="-1">PlotMap: AI-Assisted POI Placement <a class="header-anchor" href="#plotmap-ai-assisted-poi-placement" aria-label="Permalink to &quot;PlotMap: AI-Assisted POI Placement&quot;"></a></h3>
<p>PlotMap (<a href="https://arxiv.org/html/2309.15242v4" target="_blank" rel="noreferrer">arXiv:2309.15242</a>) narrative requirements (इस quest को एक नदी के पास एक गांव चाहिए, उस quest को एक पहाड़ी की चोटी पर एक खंडहर चाहिए) लेकर और spatial constraints संतुष्ट करने वाली टेरेन जगहें ढूंढकर point-of-interest layout को automate करता है। एक क्रिएटर दुनिया के लिए, एक समान सिस्टम टेरेन गुणों के आधार पर सुझा सकता है कि संरचनाएं कहां रखें: &quot;इस पहाड़ी की चोटी पर एक watchtower के लिए अच्छी sightlines हैं,&quot; &quot;यह सुरक्षित घाटी एक गांव के लिए उपयुक्त होगी।&quot;</p>
<h2 id="बहता-हुआ-पानी-और-waterfalls" tabindex="-1">बहता हुआ पानी और Waterfalls <a class="header-anchor" href="#बहता-हुआ-पानी-और-waterfalls" aria-label="Permalink to &quot;बहता हुआ पानी और Waterfalls&quot;"></a></h2>
<p>नदियां और waterfalls ऐसे टेरेन फीचर हैं जो विज़ुअल आकर्षण को ambient sound और gameplay affordance (पानी एक बाधा, एक संसाधन, या एक रास्ते के रूप में) के साथ मिलाते हैं।</p>
<h3 id="river-rendering" tabindex="-1">River Rendering <a class="header-anchor" href="#river-rendering" aria-label="Permalink to &quot;River Rendering&quot;"></a></h3>
<p>ओपन वर्ल्ड में नदियां आमतौर पर textured strips के रूप में रेंडर होती हैं जो टेरेन सतह का पीछा करती हैं। strip मेश river spline (control points के रूप में स्टोर) से जेनरेट होती है और टेरेन हाइटमैप पर project होती है। river shader लगाता है:</p>
<ul>
<li><strong>Flow-aligned UVs</strong> जो नदी की दिशा में scroll करते हैं, बहते पानी का रूप बनाते हुए</li>
<li><strong>किनारों पर Foam</strong> जहां नदी bank से मिलती है (depth-आधारित, shoreline foam जैसा)</li>
<li><strong>Speed variation</strong> channel की चौड़ाई के आधार पर (संकरे हिस्से तेज बहते हैं, चौड़े हिस्से धीमे)</li>
<li><strong>depth-आधारित रंग के साथ Transparency</strong> (उथला साफ है, गहरा गहरे रंग का)</li>
</ul>
<p>एक ब्राउज़र दुनिया के लिए, river डेटा compact है: एक spline (प्रति river segment 20-50 control points, ~400 bytes) और चौड़ाई और flow speed पैरामीटर। क्लाइंट spline को अपनी टेरेन सतह पर project करके river मेश local जेनरेट करता है।</p>
<h3 id="waterfall-rendering" tabindex="-1">Waterfall Rendering <a class="header-anchor" href="#waterfall-rendering" aria-label="Permalink to &quot;Waterfall Rendering&quot;"></a></h3>
<p>जहां एक नदी एक चट्टान की सतह से गिरती है, एक waterfall particle system समतल river सतह की जगह लेता है। रियल-टाइम water simulation रिसर्च से hybrid तरीका (<a href="https://diglib.eg.org/items/d0320015-4b07-416b-8f41-047485c9f7f3" target="_blank" rel="noreferrer">EG</a>): वे regions जो एक height field से रिप्रेजेंट नहीं हो सकते (waterfalls, splashes) spray, splash और foam particles में बदल जाते हैं जो fluid simulation के साथ mass और momentum exchange करते हैं।</p>
<p>एक ब्राउज़र दुनिया के लिए, waterfalls सरल हैं: पता लगाएं कि river spline कहां एक टेरेन height discontinuity पार करती है, उस पॉइंट पर downward velocity के साथ एक particle system spawn करें, और आधार पर एक foam splash जोड़ें। particles scrolling alpha textures वाले GPU-instanced quads हैं। प्रति waterfall 500 particles, एक draw call। गिरते पानी की आवाज distance attenuation के साथ Web Audio API इस्तेमाल करती है।</p>
<h2 id="दूर-के-टेरेन-फीचर-के-लिए-impostors" tabindex="-1">दूर के टेरेन फीचर के लिए Impostors <a class="header-anchor" href="#दूर-के-टेरेन-फीचर-के-लिए-impostors" aria-label="Permalink to &quot;दूर के टेरेन फीचर के लिए Impostors&quot;"></a></h2>
<p>पेड़, चट्टानें, इमारतें और बाकी टेरेन फीचर दूरी पर छोटे हो जाते हैं। उन्हें पूरी 3D meshes के रूप में रेंडर करना GPU cycles बर्बाद करता है। Impostors दूर के objects की जगह pre-rendered समतल images रखते हैं जो कैमरा की ओर face करती हैं।</p>
<h3 id="octahedral-impostor-atlases" tabindex="-1">Octahedral Impostor Atlases <a class="header-anchor" href="#octahedral-impostor-atlases" aria-label="Permalink to &quot;Octahedral Impostor Atlases&quot;"></a></h3>
<p>एक octahedral impostor एक 3D object के रूप को कई देखने के कोणों से पकड़ता है और उन्हें एक texture atlas में स्टोर करता है। runtime पर, shader मौजूदा view direction के आधार पर atlas sample करता है, और दो सबसे नज़दीकी पकड़े गए कोणों के बीच interpolate करता है।</p>
<p>एक hemi-octahedral atlas (सिर्फ ऊपरी hemisphere से views, क्योंकि आप शायद ही पेड़ों को नीचे से देखते हैं) उसी texture size के साथ एक पूरे octahedral atlas की दोगुनी angular resolution देता है। Unity का impostor system रिपोर्ट करता है कि 1,600 tree instances को असली meshes (हर एक 140K त्रिभुज) से impostors में स्विच करने पर frame time 111ms से गिरकर 5.78ms हो जाता है।</p>
<p>एक ब्राउज़र दुनिया के लिए, impostor पाइपलाइन:</p>
<ol>
<li>सर्वर-साइड: हर asset को 16-32 देखने के कोणों से रेंडर करें, color, normal और depth पकड़ते हुए</li>
<li>एक atlas texture में पैक करें (प्रति asset एक atlas, ~256x256 pixels, KTX2 के रूप में &lt;100 KB)</li>
<li>runtime पर: impostor distance (आमतौर पर 100-200m) से परे के instances atlas sample करते हुए billboards के रूप में रेंडर होते हैं</li>
<li>स्विच छिपाने के लिए एक 20m ट्रांज़िशन zone पर मेश और impostor के बीच crossfade करें</li>
</ol>
<h3 id="billboard-splatting-bbsplat" tabindex="-1">Billboard Splatting (BBSplat) <a class="header-anchor" href="#billboard-splatting-bbsplat" aria-label="Permalink to &quot;Billboard Splatting (BBSplat)&quot;"></a></h3>
<p>Billboard Splatting (2024, <a href="https://arxiv.org/abs/2411.08508" target="_blank" rel="noreferrer">arXiv:2411.08508</a>) learnable textured planar primitives इस्तेमाल करके इसे आगे ले जाता है। pre-rendered views के बजाय, BBSplat किसी भी कोण से 3D object को सबसे अच्छे से दर्शाने के लिए billboard positions और textures को optimize करता है। यह 3D Gaussian Splatting की तुलना में 17x तक compression हासिल करता है जबकि view-dependent रूप बनाए रखता है। एक ब्राउज़र दुनिया में दूर के टेरेन फीचर के लिए, BBSplat angular coverage सुधारते हुए per-asset impostor storage घटा सकता है।</p>
<h2 id="professional-टेरेन-टूल-और-वे-क्या-सिखाते-हैं" tabindex="-1">Professional टेरेन टूल और वे क्या सिखाते हैं <a class="header-anchor" href="#professional-टेरेन-टूल-और-वे-क्या-सिखाते-हैं" aria-label="Permalink to &quot;Professional टेरेन टूल और वे क्या सिखाते हैं&quot;"></a></h2>
<p>शून्य से एक टेरेन पाइपलाइन बनाने से पहले, यह समझने लायक है कि professional offline टूल क्या करते हैं। ये टूल दशकों की टेरेन जेनरेशन रिसर्च को production workflows में distill करते हैं।</p>
<p><strong>Gaea</strong> (QuadSpinner) GPU-accelerated है और बदलावों पर लगभग तुरंत feedback देता है। यह प्रति साइड 2 मिलियन pixels तक tiled builds, automatic LOD mesh export, और एक node-आधारित graph सपोर्ट करता है जहां हर node एक फिजिकल प्रोसेस है (इरोज़न, sedimentation, uplift, thermal weathering)। Gaea के इरोज़न nodes ऐसा टेरेन बनाते हैं जो हाथ से sculpt किया हुआ दिखता है क्योंकि वे generic noise के बजाय खास फिजिकल प्रोसेस मॉडल करते हैं। मुख्य अंतर्दृष्टि: Gaea एक ही इरोज़न एल्गोरिदम इस्तेमाल नहीं करता। यह fluvial इरोज़न (नदी carving), thermal इरोज़न (चट्टान crumbling), coastal इरोज़न (wave action), और wind इरोज़न (रेत के टीले बनना) के लिए अलग nodes देता है। उन्हें एक graph में मिलाने से एक खास जलवायु के भूगर्भीय चरित्र वाला टेरेन बनता है।</p>
<p><strong>World Machine</strong> टेरेन macro-structure पर ध्यान देते हुए एक समान graph तरीका लेता है। इसका &quot;layout generator&quot; आर्टिस्ट को टेरेन फीचर का मोटा आकार स्केच करने देता है (यहां पर्वत, वहां घाटी, इस किनारे तटरेखा) और सिस्टम फिजिकली संभव detail भर देता है। यह बिल्कुल वही क्रिएटर workflow है जो हम चाहते हैं: इरादा स्केच करो, भूविज्ञान पाओ।</p>
<p><strong>World Creator</strong> editing के दौरान real-time preview और built-in river generation के साथ खुद को अलग करता है, जो टेरेन का विश्लेषण करती है और drainage analysis के आधार पर अपने आप flow paths calculate करती है।</p>
<p><strong>इन टूल से हम क्या लेते हैं:</strong> फिजिकल प्रोसेस को मिलाने का node-graph तरीका किसी भी एक एल्गोरिदम से ज्यादा असरदार है। हमारी सर्वर-साइड जेनरेशन पाइपलाइन को chaining सपोर्ट करनी चाहिए: noise base &gt; tectonic uplift &gt; hydraulic इरोज़न &gt; thermal weathering &gt; coastal इरोज़न &gt; वनस्पति। क्रिएटर हर stage पर पैरामीटर नियंत्रित करते हैं। पाइपलाइन सर्वर-साइड सेकंडों में चलती है और हाइटमैप, splat maps और वनस्पति density maps बनाती है।</p>
<h3 id="soilmachine-open-source-geomorphology" tabindex="-1">SoilMachine: Open-Source Geomorphology <a class="header-anchor" href="#soilmachine-open-source-geomorphology" aria-label="Permalink to &quot;SoilMachine: Open-Source Geomorphology&quot;"></a></h3>
<div class="img-embed">
<img src="https://cdn.cinevva.com/blog/soilmachine-banner.png" alt="SoilMachine: open-source modular geomorphology simulator showing terrain with coupled hydraulic, thermal, and wind erosion" />
</div>
<div class="game-caption">SoilMachine एक ही लेयर्ड टेरेन मॉडल में hydraulic, thermal और wind इरोज़न को couple करता है। multi-layer डेटा संरचना ऐसे फीचर सपोर्ट करती है जो हाइटमैप रिप्रेजेंट नहीं कर सकते: गुफाएं, ओवरहैंग, buttes और groundwater distributions।</div>
<p><a href="https://github.com/weigert/soilmachine" target="_blank" rel="noreferrer">SoilMachine</a> एक open-source modular geomorphology सिमुलेटर है जो कई इरोज़न सिस्टम (hydraulic, thermal, wind) को sediment transport और deposition के साथ couple करता है। GPU compute के साथ C++ में बना, यह multi-process इरोज़न तरीके का एक reference इम्प्लीमेंटेशन देता है जो professional टूल इस्तेमाल करते हैं।</p>
<p>संबंधित <a href="https://github.com/erosiv/soillib" target="_blank" rel="noreferrer">soillib</a> (C++20, MIT license) अंतर्निहित geomorphology simulation primitives को एक reusable library के रूप में देता है। और <a href="https://github.com/ger0/hydro-gen" target="_blank" rel="noreferrer">hydro-gen</a> OpenGL compute shaders में real-time पैरामीटर adjustment के साथ grid-आधारित (shallow water) और particle-आधारित (raindrop) hydraulic इरोज़न दोनों लागू करता है।</p>
<p>ये open-source टूल हमारी सर्वर-साइड जेनरेशन पाइपलाइन के लिए ढाले जा सकते हैं। compute shader इम्प्लीमेंटेशन सीधे WebGPU में translate होते हैं अगर हम कभी real-time क्रिएटर feedback के लिए ब्राउज़र में इरोज़न चलाना चाहें।</p>
<h2 id="multi-layer-terrain-materials" tabindex="-1">Multi-Layer Terrain Materials <a class="header-anchor" href="#multi-layer-terrain-materials" aria-label="Permalink to &quot;Multi-Layer Terrain Materials&quot;"></a></h2>
<p>असली टेरेन एक ही सतह नहीं है। यह लेयर है: नीचे bedrock, ऊपर मिट्टी, सतहों पर जमा होती बर्फ या रेत। Dynamic layering मौसमों, मौसम और क्रिएटर actions के साथ टेरेन का विज़ुअल चरित्र बदलती है।</p>
<h3 id="layered-heightfield-representation" tabindex="-1">Layered Heightfield Representation <a class="header-anchor" href="#layered-heightfield-representation" aria-label="Permalink to &quot;Layered Heightfield Representation&quot;"></a></h3>
<p>एक ही हाइटमैप के बजाय, प्रति grid cell कई height layers इस्तेमाल करें:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>Cell {</span></span>
<span class="line"><span>  bedrock_height: f16,    // permanent rock surface</span></span>
<span class="line"><span>  soil_height: f16,       // accumulated soil/sediment above bedrock</span></span>
<span class="line"><span>  snow_height: f16,       // dynamic snow accumulation</span></span>
<span class="line"><span>  water_height: f16       // standing water depth</span></span>
<span class="line"><span>}</span></span></code></pre>
</div><p>कुल: प्रति cell 8 bytes (एक ही हाइटमैप के लिए 2 bytes बनाम)। एक 65x65 chunk के लिए, यह compression से पहले 34 KB है। फिर भी compact।</p>
<p>विज़ुअल सतह <code>bedrock + soil + snow</code> है। टेरेन shader सभी layers पढ़ता है और तदनुसार मटेरियल blend करता है: जहां मिट्टी पतली है, चट्टान दिखती है। जहां बर्फ जमा है, सतह सफेद है। जहां पानी बैठा है, आपको puddles या झीलें मिलती हैं।</p>
<h3 id="dynamic-accumulation" tabindex="-1">Dynamic Accumulation <a class="header-anchor" href="#dynamic-accumulation" aria-label="Permalink to &quot;Dynamic Accumulation&quot;"></a></h3>
<p>बर्फबारी के दौरान बर्फ समतल, ऊपर की ओर मुंह वाली सतहों पर जमा होती है। accumulation दर सतह के normal (खड़ी ढलानें बर्फ नहीं रोकतीं), तापमान (altitude-निर्भर), और shelter (ओवरहैंग के नीचे के इलाके साफ रहते हैं) पर निर्भर करती है। एक compute shader pass प्रति weather tick (हर कुछ सेकंड) snow layer अपडेट करता है।</p>
<p>रेत accumulation wind-driven deposition के साथ इसी तरह काम करती है। हवा खुली सतहों से particles ले जाती है और बाधाओं के पीछे और सुरक्षित इलाकों में जमा करती है।</p>
<p>एक क्रिएटर दुनिया के लिए, dynamic accumulation मतलब है कि टेरेन अलग मौसम में अलग दिखता है। एक बर्फानी तूफान के दौरान बर्फ दुनिया को ढक लेती है और साफ मौसम में पिघल जाती है। बारिश गड्ढों को पानी से भरती है। यह दुनिया को क्रिएटर के कुछ किए बिना responsive महसूस कराता है।</p>
<h3 id="multi-layered-इरोज़न" tabindex="-1">Multi-Layered इरोज़न <a class="header-anchor" href="#multi-layered-इरोज़न" aria-label="Permalink to &quot;Multi-Layered इरोज़न&quot;"></a></h3>
<p>2024 का पेपर &quot;3D Real-Time Hydraulic Erosion Simulation using Multi-Layered Heightmaps&quot; (<a href="https://diglib.eg.org/items/deefa865-6a25-4463-adcd-d8de2b37507e" target="_blank" rel="noreferrer">EG</a>) इरोज़न को layers के पार काम करने के लिए बढ़ाता है। पानी bedrock से तेज मिट्टी को erode करता है। Sediment एक नई soil layer के रूप में जमा होता है। सिमुलेशन layer integrity बनाए रखता है (bedrock मिट्टी के नीचे रहता है) जबकि ओवरहैंग (जहां bedrock नीचे eroded मिट्टी के ऊपर लटकता है) जैसे जटिल फीचर सक्षम करता है।</p>
<p>परफॉर्मेंस: 2048x2048 रिज़ॉल्यूशन पर एक RTX 3070 पर प्रति simulation step लगभग 6ms। यह सर्वर-साइड जेनरेशन के लिए काफी तेज है लेकिन per-frame ब्राउज़र simulation के लिए बहुत धीमा। लेयर्ड रिप्रेजेंटेशन स्थिर टेरेन जेनरेशन के लिए काम करता है, और dynamic snow/water accumulation एक सस्ते per-frame shader के रूप में चलता है।</p>
<h2 id="घास-चट्टान-और-detail-rendering" tabindex="-1">घास, चट्टान और Detail Rendering <a class="header-anchor" href="#घास-चट्टान-और-detail-rendering" aria-label="Permalink to &quot;घास, चट्टान और Detail Rendering&quot;"></a></h2>
<p>लैंडस्केप को टेरेन ज्यामिति और टेक्सचर से ज्यादा चाहिए। इसे ऐसे घास के तिनके चाहिए जो हवा में लहराएं, ढलानों पर बिखरी चट्टानें, और फूल, कंकड़ और गिरी हुई टहनियों जैसे छोटे detail जो पास से देखने पर प्राकृतिक लगें।</p>
<h3 id="gpu-instanced-घास" tabindex="-1">GPU-Instanced घास <a class="header-anchor" href="#gpu-instanced-घास" aria-label="Permalink to &quot;GPU-Instanced घास&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/pzkcM1rfKZw" title="Rendering 1 Million Blades Of Grass In Unity" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">GPU instancing के साथ एक ही draw call में दस लाख घास के तिनके रेंडर किए गए। वही तकनीक Three.js और WebGPU में काम करती है: per-instance transforms, vertex-shader wind animation, और टेरेन डेटा से तिनके बिखेरने के लिए एक density map।</div>
<p>ब्राउज़र-आधारित घास rendering Three.js में अच्छी तरह आजमाई हुई है और GPU instancing के जरिए काम करती है। <a href="https://al-ro.github.io/projects/grass/" target="_blank" rel="noreferrer">al-ro के grass demo</a> से तरीका <code>InstancedBufferGeometry</code> इस्तेमाल करके एक ही draw call के साथ 100,000 घास के तिनके रेंडर करता है।</p>
<p>हर घास का तिनका एक साधारण quad (4-8 त्रिभुज) है। per-instance attributes position, height, bend direction, color variation और wind phase तय करते हैं। vertex shader:</p>
<ol>
<li>per-instance transform पढ़ता है</li>
<li>world position और time से keyed sine waves इस्तेमाल करके wind animation लगाता है</li>
<li>wind strength के आधार पर तिनके को मोड़ता है (टिप पर ज्यादा bend, आधार पर कोई नहीं)</li>
<li>color gradient लगाता है (subsurface scattering के लिए आधार पर गहरा, टिप पर हल्का)</li>
</ol>
<p><strong>Codrops का fluffy grass tutorial</strong> (2025, <a href="https://tympanus.net/codrops/2025/02/04/how-to-make-the-fluffiest-grass-with-three-js/" target="_blank" rel="noreferrer">Tutorial</a>) एक shell texturing तरीका दिखाता है: ground plane को बढ़ते offsets पर कई बार रेंडर करें, हर layer घनी घास के आयतन का रूप बनाने के लिए एक noise texture sample करते हुए। यह बहुत घनी कवरेज के लिए अलग-अलग blade instancing से सस्ता है लेकिन पास से कम असली।</p>
<p>एक क्रिएटर दुनिया के लिए, घास घनत्व प्रति chunk वनस्पति density map से आता है। GPU render time पर density map से blade positions बिखेरता है। कोई per-blade डेटा स्टोर या स्ट्रीम नहीं होता। density map प्रति chunk एक 32x32 ग्रिड (1 KB) है, और GPU इससे हजारों blade instances जेनरेट करता है।</p>
<h3 id="procedural-rock-और-cliff-detail" tabindex="-1">Procedural Rock और Cliff Detail <a class="header-anchor" href="#procedural-rock-और-cliff-detail" aria-label="Permalink to &quot;Procedural Rock और Cliff Detail&quot;"></a></h3>
<p>चट्टान की सतहों और चट्टानी टेरेन को geometric detail चाहिए जो बेस हाइटमैप या SDF reasonable रिज़ॉल्यूशन पर नहीं दे सकते। दो तरीके एक-दूसरे के पूरक हैं:</p>
<p><strong>GPU mesh shader resurfacing</strong> (Raad et al., Eurographics 2025, <a href="https://hal.science/hal-05176868v1/file/Paper_Resurfacing_2024.pdf" target="_blank" rel="noreferrer">Paper</a>) render time पर एक मोटे control mesh से procedural ज्यामिति जेनरेट करता है। mesh shader एक बेस टेरेन सतह पढ़ता है और detail ज्यामिति को memory में स्टोर किए बिना displacement, दरारें और protrusions जोड़ता है। यह VRAM उपयोग घटाता है और dynamic LOD सक्षम करता है।</p>
<p><strong>Instanced rock scattering</strong> GPU instancing इस्तेमाल करके खड़ी ढलानों और चट्टान के किनारों पर pre-made rock meshes रखता है। एक compute shader टेरेन normal और slope पढ़ता है, और जहां slope एक threshold से ज्यादा हो वहां rock instances बिखेरता है। हर instance एक छोटी मेश (200-500 त्रिभुज) है random rotation और scale के साथ। 10,000 बिखरी चट्टानें instancing के साथ नगण्य rendering कॉस्ट जोड़ती हैं।</p>
<h3 id="सड़कें-और-रास्ते" tabindex="-1">सड़कें और रास्ते <a class="header-anchor" href="#सड़कें-और-रास्ते" aria-label="Permalink to &quot;सड़कें और रास्ते&quot;"></a></h3>
<p>क्रिएटर-रखी सड़कों, trails और रास्तों को टेरेन के मुताबिक conform करना और सतह मटेरियल बदलना (घास को मिट्टी या पत्थर से बदलना) चाहिए।</p>
<p>हर बड़े game engine द्वारा इस्तेमाल किया जाने वाला तरीका: रास्ते को एक spline (control points की एक श्रृंखला) के रूप में तय करें। spline को टेरेन सतह पर project करें। एक strip मेश जेनरेट करें जो spline का पीछा करती है और टेरेन से थोड़ा ऊपर बैठती है। strip पर एक road texture लगाएं। टेरेन shader में, एक projected texture या decal इस्तेमाल करके spline की चौड़ाई के अंदर टेरेन मटेरियल को road मटेरियल की ओर blend करें।</p>
<p>एक ब्राउज़र दुनिया के लिए, एक क्रिएटर टेरेन पर एक रास्ता बनाता है। क्लाइंट control points जेनरेट करता है और उन्हें सर्वर को भेजता है (कुछ दर्जन vec3 वैल्यू)। सर्वर spline स्टोर करता है। सभी clients spline को अपनी टेरेन मेश पर project करके road strip local रेंडर करते हैं। road डेटा छोटा है (path spline points, शायद 200 bytes) लेकिन विज़ुअल असर बड़ा है: क्रिएटर builds को जोड़ने वाले रास्ते दुनिया को बसी हुई महसूस कराते हैं।</p>
<h2 id="टेरेन-के-लिए-shadows" tabindex="-1">टेरेन के लिए Shadows <a class="header-anchor" href="#टेरेन-के-लिए-shadows" aria-label="Permalink to &quot;टेरेन के लिए Shadows&quot;"></a></h2>
<p>टेरेन shadows readability (टेरेन का आकार समझना) और वातावरण (दिन के समय का mood) के लिए जरूरी हैं। एक ओपन वर्ल्ड में, सूरज पूरे दृश्य टेरेन पर छायाएं डालता है।</p>
<h3 id="cascaded-shadow-maps-csm" tabindex="-1">Cascaded Shadow Maps (CSM) <a class="header-anchor" href="#cascaded-shadow-maps-csm" aria-label="Permalink to &quot;Cascaded Shadow Maps (CSM)&quot;"></a></h3>
<p>CSM view frustum को 3-4 distance ranges (cascades) में बांटता है। हर cascade सूरज के नज़रिए से एक shadow map को अपनी दूरी के लिए उचित रिज़ॉल्यूशन पर रेंडर करता है। पास का cascade: high resolution (पेड़ों और इमारतों के नीचे विस्तृत छायाएं)। दूर का cascade: low resolution (व्यापक पर्वत छायाएं)।</p>
<p>Three.js और Babylon.js दोनों CSM सपोर्ट करते हैं। टेरेन के लिए मुख्य optimization: shadow map में सिर्फ टेरेन रेंडर करें, अलग-अलग घास के तिनके या छोटे detail नहीं। घास टेरेन के shadow map का इस्तेमाल करके self-shadow करती है, अपने खुद के का नहीं।</p>
<p><strong>परफॉर्मेंस बजट:</strong> हर एक 1024x1024 पर 3-4 shadow cascades। टेरेन को shadow maps में रेंडर करने की कॉस्ट 0.5-1ms (टेरेन ज्यामिति पहले से GPU memory में है)। टेरेन shader में 4 cascades sample करना 0.2-0.3ms जोड़ता है।</p>
<h3 id="हाइटमैप-से-terrain-self-shadowing" tabindex="-1">हाइटमैप से Terrain Self-Shadowing <a class="header-anchor" href="#हाइटमैप-से-terrain-self-shadowing" aria-label="Permalink to &quot;हाइटमैप से Terrain Self-Shadowing&quot;"></a></h3>
<p>बहुत बड़े टेरेन के लिए जहां CSM महंगा हो जाता है, एक horizon map pre-compute करें: हर टेरेन cell के लिए, 8 compass दिशाओं में अधिकतम elevation angle स्टोर करें। render time पर, यह तय करने के लिए कि एक पॉइंट छाया में है या नहीं, sun angle की horizon map से तुलना करें। Skyrim दूर के टेरेन (CSM range से परे) के लिए टेरेन self-shadows ऐसे ही संभालता है।</p>
<p>horizon map हाइटमैप से सर्वर-साइड compute होता है (कुछ सेकंड की processing) और एक 128x128 per-chunk texture (16 KB compressed) के रूप में स्ट्रीम होता है। विज़ुअल असर बड़ा है: पर्वत घाटियां चरम view distances पर भी असली रूप से गहरी होती हैं।</p>
<h2 id="streaming-के-लिए-टेरेन-डेटा-compression" tabindex="-1">Streaming के लिए टेरेन डेटा Compression <a class="header-anchor" href="#streaming-के-लिए-टेरेन-डेटा-compression" aria-label="Permalink to &quot;Streaming के लिए टेरेन डेटा Compression&quot;"></a></h2>
<p>एक ब्राउज़र दुनिया के लिए नेटवर्क bottleneck है। टेरेन डेटा में बचाया गया हर byte एक तेज load time है।</p>
<h3 id="हाइटमैप-compression" tabindex="-1">हाइटमैप Compression <a class="header-anchor" href="#हाइटमैप-compression" aria-label="Permalink to &quot;हाइटमैप Compression&quot;"></a></h3>
<p>Raw 16-bit हाइटमैप अच्छे से compress होते हैं क्योंकि आस-पास की cells की वैल्यू समान होती हैं। पाइपलाइन:</p>
<ol>
<li><strong>Delta encoding:</strong> हर cell और उसकी predicted वैल्यू (पड़ोसियों का औसत) के बीच का अंतर स्टोर करें। Delta वैल्यू छोटी हैं, शून्य के पास clustering करती हैं।</li>
<li><strong>Quantization:</strong> दूर के chunks के लिए, precision को 16-bit से 12-bit या 8-bit तक घटाएं। 500 मीटर दूर, 8-bit height precision (100m height range पर 0.4m resolution) 16-bit से अलग नहीं दिखती।</li>
<li><strong>Entropy coding:</strong> delta-encoded stream पर zlib या brotli compression लगाएं। आम compression ratio: 4-8x।</li>
</ol>
<p>नतीजा: एक 65x65 chunk 16-bit पर 8.4 KB raw से 1-2 KB compressed हो जाता है। 8-bit घटी precision पर: 0.5-1 KB।</p>
<h3 id="progressive-हाइटमैप-streaming" tabindex="-1">Progressive हाइटमैप Streaming <a class="header-anchor" href="#progressive-हाइटमैप-streaming" aria-label="Permalink to &quot;Progressive हाइटमैप Streaming&quot;"></a></h3>
<p>टेरेन को पहले low resolution पर भेजें, फिर refine करें। एक 17x17 हाइटमैप (4m cell spacing वाले 64m chunk के लिए न्यूनतम) 578 bytes raw है, 200 bytes से कम compressed। टेरेन तुरंत दिखता है। फिर 33x33 refinement स्ट्रीम करें (odd-row/column samples जोड़ता है)। फिर 65x65 full resolution। हर स्तर पिछला डेटा बदले बिना detail जोड़ता है।</p>
<p>यह geometry clipmap LOD rings से map होता है: दूर का टेरेन low-resolution version (17x17) इस्तेमाल करता है, mid-range medium (33x33) इस्तेमाल करता है, पास full (65x65) इस्तेमाल करता है। streaming प्राथमिकता rendering LOD से मेल खाती है।</p>
<h3 id="sdf-volume-compression" tabindex="-1">SDF Volume Compression <a class="header-anchor" href="#sdf-volume-compression" aria-label="Permalink to &quot;SDF Volume Compression&quot;"></a></h3>
<p>Sparse SDF वॉल्यूम नाटकीय रूप से compress होते हैं क्योंकि ज्यादातर voxels सतह से दूर हैं (खाली जगह)। विकल्प:</p>
<p><strong>Run-length encoding:</strong> समान वैल्यू (खाली voxels) के runs encode करें। आम SDF वॉल्यूम 95%+ खाली होते हैं, इसलिए RLE 10-50x compression हासिल करता है।</p>
<p><strong>Sparse octree:</strong> सिर्फ वे octree nodes स्टोर करें जिनमें surface-crossing voxels हों। खाली जगह के कोई nodes नहीं। एक ही cave tunnel वाले एक 64^3 SDF वॉल्यूम में शायद सिर्फ 2,000-5,000 occupied nodes हों (कुल 262,144 voxels बनाम), हर एक 1-2 bytes के रूप में स्टोर।</p>
<p><strong>Entropy-driven progressive compression</strong> (2024, <a href="https://inria.hal.science/hal-04630545v1/file/sgp2024.pdf" target="_blank" rel="noreferrer">HAL</a>) 3D spatial डेटा पर entropy-optimized planes और adaptive quantization के साथ space को recursively partition करके लागू होता है। यह rate-distortion trade-offs के लिए optimized refinements का एक stream बनाता है, जो खासकर नेटवर्क streaming के low bitrates पर फायदेमंद है।</p>
<h2 id="इसे-एक-साथ-रखना-ब्राउज़र-टेरेन-पाइपलाइन" tabindex="-1">इसे एक साथ रखना: ब्राउज़र टेरेन पाइपलाइन <a class="header-anchor" href="#इसे-एक-साथ-रखना-ब्राउज़र-टेरेन-पाइपलाइन" aria-label="Permalink to &quot;इसे एक साथ रखना: ब्राउज़र टेरेन पाइपलाइन&quot;"></a></h2>
<p>इस लेख के ऊपर का strategic overview क्विक decision framework और phased build plan देता है। यह सेक्शन सर्वर-साइड जेनरेशन पाइपलाइन और ब्राउज़र rendering पाइपलाइन दोनों के लिए पूरी technical detail देता है।</p>
<h3 id="generation-pipeline-server-side" tabindex="-1">Generation Pipeline (Server-Side) <a class="header-anchor" href="#generation-pipeline-server-side" aria-label="Permalink to &quot;Generation Pipeline (Server-Side)&quot;"></a></h3>
<p>जेनरेशन पाइपलाइन फिजिकल प्रोसेस के एक directed graph के रूप में चलती है, जो Gaea और World Machine के node-graph तरीके से प्रेरित है। हर stage पिछली stage का आउटपुट लेकर उसे refine करती है। क्रिएटर हर stage पर पैरामीटर नियंत्रित करते हैं।</p>
<table tabindex="0">
<thead>
<tr>
<th>Stage</th>
<th>Input</th>
<th>Process</th>
<th>Output</th>
<th>Time</th>
</tr>
</thead>
<tbody>
<tr>
<td>1. Base terrain</td>
<td>Seed or text prompt</td>
<td>Terrain Diffusion / MESA / noise + fBm</td>
<td>16-bit heightmap</td>
<td>1-5s</td>
</tr>
<tr>
<td>2. Erosion</td>
<td>Heightmap</td>
<td>Analytical stream power + thermal erosion</td>
<td>Eroded heightmap, flow accumulation map, sediment map</td>
<td>0.5-2s</td>
</tr>
<tr>
<td>3. Rivers</td>
<td>Eroded heightmap, flow map</td>
<td>Drainage network extraction, channel carving</td>
<td>River splines, water level map</td>
<td>0.5s</td>
</tr>
<tr>
<td>4. Coast</td>
<td>Heightmap near sea level</td>
<td>NEWTS-style wave erosion</td>
<td>Coastline features (cliffs, beaches, stacks)</td>
<td>1-3s</td>
</tr>
<tr>
<td>5. Volumetric</td>
<td>Heightmap + creator intent</td>
<td>Arenite erosion / cave generation / SDF sculpts</td>
<td>Sparse SDF volumes for affected chunks</td>
<td>1-60s</td>
</tr>
<tr>
<td>6. Materials</td>
<td>Heightmap + erosion maps</td>
<td>TerraFusion / Geodiffussr / procedural rules</td>
<td>Splat maps, terrain textures</td>
<td>1-5s</td>
</tr>
<tr>
<td>7. Vegetation</td>
<td>Heightmap + flow map + materials</td>
<td>Ecosystem competition simulation</td>
<td>Density maps per biome per chunk</td>
<td>1-3s</td>
</tr>
<tr>
<td>8. Horizon maps</td>
<td>Final heightmap</td>
<td>8-direction max elevation angle</td>
<td>Self-shadow texture per chunk</td>
<td>2-5s</td>
</tr>
<tr>
<td>9. Chunking</td>
<td>All outputs</td>
<td>Slice, delta-encode, compress, hash</td>
<td>Chunk packages on CDN</td>
<td>5-10s</td>
</tr>
<tr>
<td><strong>Total</strong></td>
<td></td>
<td></td>
<td></td>
<td><strong>15-90s</strong></td>
</tr>
</tbody>
</table>
<p>एक नई 4x4 km दुनिया 15-90 सेकंड में जेनरेट होती है। क्रिएटर एडिट (sculpting, पैरामीटर बदलाव) सिर्फ प्रभावित chunks के लिए प्रभावित stages फिर चलाते हैं, आमतौर पर 5 सेकंड से कम में पूरे होते हैं।</p>
<h3 id="rendering-pipeline-browser" tabindex="-1">Rendering Pipeline (Browser) <a class="header-anchor" href="#rendering-pipeline-browser" aria-label="Permalink to &quot;Rendering Pipeline (Browser)&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>Step</th>
<th>WebGPU path</th>
<th>WebGL 2 fallback</th>
<th>Frame budget</th>
</tr>
</thead>
<tbody>
<tr>
<td>1. Streaming</td>
<td>Priority queue, predictive pre-fetch</td>
<td>Same</td>
<td>N/A (async)</td>
</tr>
<tr>
<td>2. Heightmap terrain</td>
<td>GPU-driven CDLOD quadtree, compute culling, indirect draw</td>
<td>Geometry clipmaps, CPU ring updates</td>
<td>0.5-1ms</td>
</tr>
<tr>
<td>3. Volumetric mesh</td>
<td>Compute marching cubes + Transvoxel</td>
<td>Pre-generated meshes from Web Worker, 2-3 cached LODs</td>
<td>0.5-2ms</td>
</tr>
<tr>
<td>4. LOD transitions</td>
<td>Geomorphing in vertex shader</td>
<td>Same</td>
<td>Included above</td>
</tr>
<tr>
<td>5. Materials</td>
<td>Triplanar PBR + Laplacian blending + phasor noise detail + virtual texturing</td>
<td>Triplanar PBR + linear blending + pre-baked splat maps</td>
<td>1-1.5ms</td>
</tr>
<tr>
<td>6. Vegetation</td>
<td>ComputeInstanceCulling + IndirectBatchedMesh, hex-tiled ground cover</td>
<td>CPU frustum cull + InstancedMesh</td>
<td>1-1.5ms</td>
</tr>
<tr>
<td>7. Water</td>
<td>Flow-aligned river strips, depth-based shoreline foam</td>
<td>Same (simpler reflections)</td>
<td>0.5ms</td>
</tr>
<tr>
<td>8. Shadows</td>
<td>3-4 cascade CSM + horizon map self-shadows</td>
<td>2 cascade CSM</td>
<td>0.5-1ms</td>
</tr>
<tr>
<td>9. Atmosphere</td>
<td>Hillaire sky model + volumetric fog + weather particles</td>
<td>Preetham sky + distance fog</td>
<td>0.5ms</td>
</tr>
<tr>
<td>10. Dynamic effects</td>
<td>Puddle accumulation, footprint deformation, snow/rain</td>
<td>Puddle accumulation, rain particles</td>
<td>0.3ms</td>
</tr>
<tr>
<td><strong>Total terrain</strong></td>
<td></td>
<td></td>
<td><strong>3.5-6.5ms</strong></td>
</tr>
</tbody>
</table>
<p>60fps (प्रति फ्रेम 16.6ms) पर, टेरेन सिस्टम WebGPU पर frame बजट का 21% और WebGL 2 पर 39% इस्तेमाल करता है। बाकी player avatars, क्रिएटर objects, UI, networking और post-processing के लिए उपलब्ध है।</p>
<h3 id="यह-एक-ब्राउज़र-में-क्यों-काम-करता-है" tabindex="-1">यह एक ब्राउज़र में क्यों काम करता है <a class="header-anchor" href="#यह-एक-ब्राउज़र-में-क्यों-काम-करता-है" aria-label="Permalink to &quot;यह एक ब्राउज़र में क्यों काम करता है&quot;"></a></h3>
<p>पूरी पाइपलाइन तीन ब्राउज़र बाधाओं के इर्द-गिर्द डिज़ाइन की गई है:</p>
<p><strong>Memory (अधिकतम 2-4 GB):</strong> 256 MB टेरेन बजट फिट होता है क्योंकि हाइटमैप chunks हर एक 2-8 KB हैं (delta-encoded), SDF वॉल्यूम sparse हैं (प्रति वॉल्यूमेट्रिक chunk 100-500 KB), वनस्पति runtime पर 1 KB density maps से जेनरेट होती है, और टेक्सचर KTX2 compression इस्तेमाल करते हैं (प्रति 1024x1024 150 KB)। किसी भी वक्त, ब्राउज़र में दिखने वाली दुनिया कुल 50-200 MB होती है।</p>
<p><strong>कोई disk access नहीं:</strong> सब कुछ नेटवर्क पर स्ट्रीम होता है। Progressive loading मतलब प्लेयर &lt;100ms में टेरेन देखता है (low-res हाइटमैप), &lt;300ms में textured टेरेन, और &lt;3s में full detail। वेलोसिटी के आधार पर pre-fetching सामान्य अन्वेषण के दौरान load times छिपाती है।</p>
<p><strong>GPU बहुत अलग होते हैं:</strong> WebGPU रास्ता high-end डेस्कटॉप संभालता है। WebGL 2 fallback बाकी सब संभालता है, mobile सहित। वही chunk डेटा दोनों रास्ते चलाता है। फर्क rendering तकनीक का है, डेटा फॉर्मेट का नहीं। WebGL 2 चलाने वाला एक Chromebook वही दुनिया देखता है जो WebGPU चलाने वाला एक RTX 4090, बस कम detail और छोटी view distance पर।</p>
<h2 id="research-papers" tabindex="-1">Research Papers <a class="header-anchor" href="#research-papers" aria-label="Permalink to &quot;Research Papers&quot;"></a></h2>
<h3 id="terrain-representation-और-mesh-generation" tabindex="-1">Terrain Representation और Mesh Generation <a class="header-anchor" href="#terrain-representation-और-mesh-generation" aria-label="Permalink to &quot;Terrain Representation और Mesh Generation&quot;"></a></h3>
<p><strong>&quot;Marching Cubes: A High Resolution 3D Surface Construction Algorithm&quot;</strong> -- Lorensen और Cline (SIGGRAPH 1987)। <a href="https://doi.org/10.1145/37402.37422" target="_blank" rel="noreferrer">DOI</a>। वॉल्यूमेट्रिक डेटा से triangle meshes निकालने का foundational एल्गोरिदम। 38 साल बाद भी सबसे ज्यादा इस्तेमाल किया जाने वाला isosurface extraction मेथड। GPU-parallel इम्प्लीमेंटेशन WebGPU compute shaders में रियल टाइम में चलते हैं।</p>
<p><strong>&quot;Dual Contouring of Hermite Data&quot;</strong> -- Ju, Losasso, Schaefer, Warren (SIGGRAPH 2002)। <a href="https://doi.org/10.1145/566570.566586" target="_blank" rel="noreferrer">DOI</a>। ऐसी meshes बनाता है जो sharp फीचर (चट्टान के किनारे, चट्टान के कोने) बचाती हैं जिन्हें marching cubes गोल कर देता है। distance वैल्यू के अलावा surface normals चाहिए।</p>
<p><strong>&quot;Neural Dual Contouring&quot;</strong> -- Chen et al. (2022)। <a href="https://arxiv.org/abs/2202.01999" target="_blank" rel="noreferrer">arXiv:2202.01999</a>। dual contouring में least-squares vertex placement की जगह एक learned predictor रखता है। जटिल प्राकृतिक फीचर के लिए बेहतर सतह क्वालिटी।</p>
<p><strong>&quot;The Transvoxel Algorithm&quot;</strong> -- Lengyel (2009, 2024 में अपडेट)। <a href="https://transvoxel.org/" target="_blank" rel="noreferrer">transvoxel.org</a>। voxel टेरेन के लिए seamless LOD ट्रांज़िशन। 73 transition cell types इस्तेमाल करके रिज़ॉल्यूशन boundaries पर दरारें खत्म करता है। Patent-free, रियल-टाइम एप्लिकेशन के लिए डिज़ाइन किया गया।</p>
<h3 id="terrain-lod-और-rendering" tabindex="-1">Terrain LOD और Rendering <a class="header-anchor" href="#terrain-lod-और-rendering" aria-label="Permalink to &quot;Terrain LOD और Rendering&quot;"></a></h3>
<p><strong>&quot;Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids&quot;</strong> -- Losasso और Hoppe (SIGGRAPH 2004)। <a href="https://hhoppe.com/geomclipmap.pdf" target="_blank" rel="noreferrer">Paper</a>। concentric LOD rings के साथ constant-cost टेरेन rendering। इंटरैक्टिव rates पर 40 GB टेरेन संभालता है। ज्यादातर ब्राउज़र टेरेन renderers की नींव।</p>
<p><strong>&quot;CDLOD: Hybrid LOD for Terrain Rendering&quot;</strong> -- Strugar (2014)। <a href="https://www.vertexasylum.com/CDLOD/cdlod_latest.pdf" target="_blank" rel="noreferrer">Paper</a>। geometry clipmaps पर quadtree-adaptive सुधार। सिर्फ दूरी के बजाय टेरेन जटिलता के आधार पर रिज़ॉल्यूशन allocate करता है।</p>
<p><strong>&quot;GPU-Driven Rendering Pipelines&quot;</strong> -- Ubisoft (SIGGRAPH 2015), Wihlidal और Hoppe। GPU-ड्रिवन तरीके को औपचारिक रूप दिया जहां compute shaders culling, LOD selection, और draw call generation संभालते हैं। हमारी WebGPU टेरेन पाइपलाइन के लिए architectural पैटर्न।</p>
<h3 id="physical-terrain-generation" tabindex="-1">Physical Terrain Generation <a class="header-anchor" href="#physical-terrain-generation" aria-label="Permalink to &quot;Physical Terrain Generation&quot;"></a></h3>
<p><strong>&quot;Physically-Based Analytical Erosion for Fast Terrain Generation&quot;</strong> -- Cordonnier et al. (2024)। <a href="https://hal.science/hal-04525371" target="_blank" rel="noreferrer">HAL</a>। एनालिटिकल stream power law इरोज़न जो iterative simulation से बचता है। मिलीसेकंड में फिजिकली संभव टेरेन बनाता है।</p>
<p><strong>&quot;Fast Hydraulic Erosion Simulation and Visualization on GPU&quot;</strong> -- Mei, Decaudin, Hu (2007)। <a href="https://hal.science/hal-02281637/file/main.pdf" target="_blank" rel="noreferrer">HAL</a>। shallow-water simulation इस्तेमाल करते हुए GPU-parallel hydraulic इरोज़न। ज्यादातर game engine इरोज़न इम्प्लीमेंटेशन का आधार।</p>
<p><strong>&quot;Arenite: A Physics-Based Sandstone Simulator&quot;</strong> -- SIGGRAPH 2025। <a href="https://jango6324.github.io/arenite/" target="_blank" rel="noreferrer">Project</a>। stress और इरोज़न simulation से मेहराब, hoodoos और alcoves जेनरेट करता मल्टी-फिजिक्स इरोज़न। डेस्कटॉप GPUs पर 5 मिनट से कम में चलता है।</p>
<p><strong>&quot;Efficient Debris-flow Simulation for Steep Terrain Erosion&quot;</strong> -- Purdue CGVLAB (2024)। <a href="https://www.cs.purdue.edu/cgvlab/www/resources/papers/Arymaan-ToG-2024-efficient.pdf" target="_blank" rel="noreferrer">Paper</a>। असली पर्वत टेरेन फीचर बनाता GPU-accelerated debris flow और steep-slope इरोज़न।</p>
<p><strong>&quot;Flexible Terrain Erosion&quot;</strong> -- IRIT-STORM (2024)। <a href="https://link.springer.com/article/10.1007/s00371-024-03444-w" target="_blank" rel="noreferrer">Springer</a>। particle-आधारित इरोज़न जो एक unified इंटरफेस के साथ heightfields, voxel grids, implicit surfaces और लेयर्ड मटेरियल के पार काम करता है। हाइब्रिड टेरेन रिप्रेजेंटेशन के लिए एक इरोज़न सिस्टम सक्षम करता है।</p>
<h3 id="terrain-detail-और-texturing" tabindex="-1">Terrain Detail और Texturing <a class="header-anchor" href="#terrain-detail-और-texturing" aria-label="Permalink to &quot;Terrain Detail और Texturing&quot;"></a></h3>
<p><strong>&quot;GPU-Friendly Laplacian Texture Blending&quot;</strong> -- Wronski (NVIDIA, 2025)। <a href="https://jcgt.org/published/0014/01/02/" target="_blank" rel="noreferrer">JCGT</a>। बिना precomputation के टेरेन मटेरियल के लिए रियल-टाइम Laplacian pyramid blending। seam artifacts खत्म करते हुए sharp फीचर बचाता है। प्रति fragment कुछ अतिरिक्त texture taps।</p>
<p><strong>&quot;Real-time Terrain Enhancement with Controlled Procedural Patterns&quot;</strong> -- Grenier et al. (2024)। <a href="https://diglib.eg.org/bitstream/handle/10.1111/cgf14992/v43i1_05_cgf14992.pdf" target="_blank" rel="noreferrer">CGF</a>। हाइटमैप रिज़ॉल्यूशन के 32x तक phasor noise-आधारित माइक्रो-इरोज़न detail। Slope-aligned पैटर्न पूरी तरह एक fragment shader में चलते हैं।</p>
<h3 id="adaptive-tessellation" tabindex="-1">Adaptive Tessellation <a class="header-anchor" href="#adaptive-tessellation" aria-label="Permalink to &quot;Adaptive Tessellation&quot;"></a></h3>
<p><strong>&quot;Concurrent Binary Trees for Large-Scale Game Components&quot;</strong> -- Benyoub और Dupuy (Intel, HPG 2024)। <a href="https://arxiv.org/html/2407.02215v1" target="_blank" rel="noreferrer">Paper</a>। adaptive टेरेन tessellation के लिए GPU-friendly binary tree डेटा संरचना। 0.2ms से कम में ग्रहीय-पैमाने की ज्यामिति रेंडर करती है। चौकोर domains से मनचाहे polygon meshes तक बढ़ाई गई।</p>
<h3 id="cave-और-underground-generation" tabindex="-1">Cave और Underground Generation <a class="header-anchor" href="#cave-और-underground-generation" aria-label="Permalink to &quot;Cave और Underground Generation&quot;"></a></h3>
<p><strong>&quot;PLUME: Procedural Layer Underground Modeling Engine&quot;</strong> -- 2024। <a href="https://arxiv.org/html/2508.20926v1" target="_blank" rel="noreferrer">arXiv:2508.20926</a>। लेयर्ड प्रोसीजरल नियमों का इस्तेमाल करके असली गुफा और lava tube वातावरण जेनरेट करने के लिए open-source फ्रेमवर्क। मूल रूप से अंतरिक्ष अन्वेषण रोबोटिक्स के लिए बना।</p>
<h3 id="neural-terrain-synthesis" tabindex="-1">Neural Terrain Synthesis <a class="header-anchor" href="#neural-terrain-synthesis" aria-label="Permalink to &quot;Neural Terrain Synthesis&quot;"></a></h3>
<p><strong>&quot;InfiniteDiffusion: Bridging Learned Fidelity and Procedural Utility for Open-World Terrain Generation&quot;</strong> -- Goslin (2025, SIGGRAPH 2026)। <a href="https://arxiv.org/abs/2512.08309" target="_blank" rel="noreferrer">arXiv:2512.08309</a>। Laplacian encoding के साथ hierarchical diffusion models इस्तेमाल करते हुए अनंत, seed-consistent टेरेन जेनरेशन। consumer GPUs पर baseline से 9x तेज।</p>
<p><strong>&quot;TerraFusion: Joint Generation of Terrain Geometry and Texture&quot;</strong> -- 2025। <a href="https://arxiv.org/abs/2505.04050" target="_blank" rel="noreferrer">arXiv:2505.04050</a>। sketch conditioning के साथ एक साथ हाइटमैप और texture synthesis के लिए latent diffusion।</p>
<p><strong>&quot;MESA: Text-Driven Terrain Generation&quot;</strong> -- CVPR 2025 Workshop। <a href="https://arxiv.org/abs/2504.07210" target="_blank" rel="noreferrer">arXiv:2504.07210</a>। Copernicus remote sensing training data इस्तेमाल करते हुए text-to-terrain।</p>
<p><strong>&quot;Geodiffussr: Generative Terrain Texturing with Elevation Fidelity&quot;</strong> -- 2025। <a href="https://arxiv.org/abs/2511.23029" target="_blank" rel="noreferrer">arXiv:2511.23029</a>। flow-matching इस्तेमाल करते हुए एलिवेशन डेटा का सम्मान करती text-guided टेरेन texture generation।</p>
<p><strong>&quot;Sketch2Terrain: AI-Driven Real-Time Terrain Sketch Mapping&quot;</strong> -- 2025। <a href="https://tianyixiao.top/publication/2025-sketch2terrain" target="_blank" rel="noreferrer">Project</a>। augmented reality में sketch-to-terrain। मैन्युअल mapping पर 38% efficiency सुधार।</p>
<h3 id="vegetation-और-ecosystem-simulation" tabindex="-1">Vegetation और Ecosystem Simulation <a class="header-anchor" href="#vegetation-और-ecosystem-simulation" aria-label="Permalink to &quot;Vegetation और Ecosystem Simulation&quot;"></a></h3>
<p><strong>&quot;GPU-Based Real-Time Procedural Distribution of Vegetation on Large-Scale Virtual Terrains&quot;</strong> -- SBGames 2018। <a href="https://sbgames.org/sbgames2018/files/papers/ComputacaoFull/188348.pdf" target="_blank" rel="noreferrer">Paper</a>। GPU पर biotic/abiotic factors इस्तेमाल करते हुए quadtree-आधारित वनस्पति scattering।</p>
<p><strong>&quot;Procedural Generation and Rendering of Forests&quot;</strong> -- 2022। <a href="https://export.arxiv.org/pdf/2208.01471v1.pdf" target="_blank" rel="noreferrer">Paper</a>। असली जंगल वितरण के लिए ecosystem competition simulation के साथ मिलाई गई L-system tree generation।</p>
<p><strong>&quot;Real-Time Procedural Generation with GPU Work Graphs&quot;</strong> -- AMD GPUOpen 2024। <a href="https://gpuopen.com/download/Real-Time_Procedural_Generation_with_GPU_Work_Graphs-GPUOpen_preprint.pdf" target="_blank" rel="noreferrer">Paper</a>। 4ms से कम में 79K+ वनस्पति instances जेनरेट करते GPU work graphs।</p>
<h3 id="browser-gpu-technology" tabindex="-1">Browser GPU Technology <a class="header-anchor" href="#browser-gpu-technology" aria-label="Permalink to &quot;Browser GPU Technology&quot;"></a></h3>
<p><strong>&quot;GSWT Renderer&quot;</strong> -- SIGGRAPH Asia 2025। <a href="https://github.com/zengyf131/gswt_renderer" target="_blank" rel="noreferrer">GitHub</a>। dynamic LOD और streaming के साथ अनंत 3D टेरेन के लिए Gaussian Splatting Wang Tiles इस्तेमाल करता WebGPU + Rust/Wasm renderer।</p>
<p><strong>&quot;GPU Compute in the Browser at the Speed of Native: WebGPU Marching Cubes&quot;</strong> -- Usher (2024)। <a href="https://www.willusher.io/graphics/2024/04/22/webgpu-marching-cubes/" target="_blank" rel="noreferrer">Blog</a>। दिखाता है कि WebGPU compute parallel mesh generation एल्गोरिदम के लिए native-speed परफॉर्मेंस हासिल करता है।</p>
<h3 id="voxel-rendering-और-large-scale-scenes" tabindex="-1">Voxel Rendering और Large-Scale Scenes <a class="header-anchor" href="#voxel-rendering-और-large-scale-scenes" aria-label="Permalink to &quot;Voxel Rendering और Large-Scale Scenes&quot;"></a></h3>
<p><strong>&quot;Aokana: A GPU-Driven Voxel Rendering Framework for Open World Games&quot;</strong> -- 2025। <a href="https://arxiv.org/abs/2505.02017" target="_blank" rel="noreferrer">arXiv:2505.02017</a>। दसियों अरब voxels वाले scenes के लिए LOD और streaming के साथ Sparse Voxel DAG। पिछले state-of-the-art से 9x memory कमी और 4.8x तेज rendering। game engines के साथ integration के लिए डिज़ाइन किया गया।</p>
<h3 id="procedural-geometry-और-resurfacing" tabindex="-1">Procedural Geometry और Resurfacing <a class="header-anchor" href="#procedural-geometry-और-resurfacing" aria-label="Permalink to &quot;Procedural Geometry और Resurfacing&quot;"></a></h3>
<p><strong>&quot;Real-time Procedural Resurfacing using GPU Mesh Shaders&quot;</strong> -- Raad et al. (Eurographics 2025)। <a href="https://hal.science/hal-05176868v1/file/Paper_Resurfacing_2024.pdf" target="_blank" rel="noreferrer">Paper</a>। mesh shaders इस्तेमाल करते हुए render time पर मोटे control meshes से विस्तृत geometric सतहें जेनरेट करता है। memory में high-resolution ज्यामिति स्टोर किए बिना dynamic LOD सक्षम करता है।</p>
<h3 id="terrain-shadows" tabindex="-1">Terrain Shadows <a class="header-anchor" href="#terrain-shadows" aria-label="Permalink to &quot;Terrain Shadows&quot;"></a></h3>
<p><strong>&quot;Optimizing Terrain Shadows&quot;</strong> -- AMD GPUOpen। <a href="https://gpuopen.com/learn/optimizing-terrain-shadows/" target="_blank" rel="noreferrer">Blog</a>। बड़े पैमाने के टेरेन के लिए व्यावहारिक CSM optimization। cascade splitting, GPU-efficient shadow map rendering, और terrain-specific optimizations कवर करता है।</p>
<h3 id="virtual-geometry-और-mesh-optimization" tabindex="-1">Virtual Geometry और Mesh Optimization <a class="header-anchor" href="#virtual-geometry-और-mesh-optimization" aria-label="Permalink to &quot;Virtual Geometry और Mesh Optimization&quot;"></a></h3>
<p><strong>&quot;Nanite WebGPU&quot;</strong> -- Scthe (2024)। <a href="https://github.com/Scthe/nanite-webgpu" target="_blank" rel="noreferrer">GitHub</a>, <a href="https://scthe.github.io/nanite-webgpu/" target="_blank" rel="noreferrer">Demo</a>। UE5 Nanite आर्किटेक्चर का पूरा ब्राउज़र इम्प्लीमेंटेशन: meshlet LOD hierarchy, WGSL में software rasterizer, per-meshlet culling, billboard impostors।</p>
<p><strong>&quot;Billions of Triangles in Minutes&quot;</strong> -- Kapoulkine (2025)। <a href="https://zeux.io/2025/09/30/billions-of-triangles-in-minutes/" target="_blank" rel="noreferrer">Blog</a>। hierarchical clustered LOD generation के लिए Meshoptimizer v1.0। विशाल meshes को Nanite-style cluster DAGs में कुशलता से प्रोसेस करता है।</p>
<p><strong>&quot;Billboard Splatting (BBSplat)&quot;</strong> -- 2024। <a href="https://arxiv.org/abs/2411.08508" target="_blank" rel="noreferrer">arXiv:2411.08508</a>। novel view synthesis के लिए learnable textured planar primitives जो 3D Gaussian Splatting बनाम 17x compression हासिल करते हैं।</p>
<h3 id="terrain-lighting-और-global-illumination" tabindex="-1">Terrain Lighting और Global Illumination <a class="header-anchor" href="#terrain-lighting-और-global-illumination" aria-label="Permalink to &quot;Terrain Lighting और Global Illumination&quot;"></a></h3>
<p><strong>&quot;Global Illumination in Once Human&quot;</strong> -- GDC 2025। <a href="https://schedule.gdconf.com/session/global-illumination-in-once-human-a-hybrid-approach-for-16km-open-world/907269" target="_blank" rel="noreferrer">Session</a>। 16km ओपन वर्ल्ड के लिए hybrid GI: neural network compressed probes (69:1 ratio), ML-आधारित indoor/outdoor leak resolution, dynamic probe reactions।</p>
<p><strong>&quot;GI with AMD FidelityFX Brixelizer&quot;</strong> -- GDC 2024। <a href="https://gpuopen.com/download/GDC2024_GI_with_AMD_FidelityFX_Brixelizer.pdf" target="_blank" rel="noreferrer">Paper</a>। screen-space probes के साथ compute-आधारित sparse distance field cascades। कोई hardware ray-tracing जरूरी नहीं।</p>
<p><strong>&quot;Radiance Cascades&quot;</strong> -- 2024। <a href="https://jason.today/rc" target="_blank" rel="noreferrer">Blog</a>। temporal accumulation के बिना cascaded radiance structures इस्तेमाल करती noiseless रियल-टाइम global illumination।</p>
<h3 id="level-design-और-exploration" tabindex="-1">Level Design और Exploration <a class="header-anchor" href="#level-design-और-exploration" aria-label="Permalink to &quot;Level Design और Exploration&quot;"></a></h3>
<p><strong>&quot;PlotMap: Automated Layout Design for Building Game Worlds&quot;</strong> -- 2023। <a href="https://arxiv.org/html/2309.15242v4" target="_blank" rel="noreferrer">arXiv:2309.15242</a>। टेरेन पर narrative spatial constraints संतुष्ट करती AI-assisted POI placement।</p>
<p><strong>&quot;Spatial Exploration Triggers&quot;</strong> -- Purdue University (FDG 2022)। <a href="https://web.ics.purdue.edu/~cmousas/papers/conf22-FDG-SpatialExploration.pdf" target="_blank" rel="noreferrer">Paper</a>। चार डिज़ाइन पैटर्न जो प्लेयर अन्वेषण चलाते हैं: चरम पॉइंट, विज़ुअल बाधाएं, जगह से बाहर के objects, spatial connections।</p>
<h3 id="data-compression-और-streaming" tabindex="-1">Data Compression और Streaming <a class="header-anchor" href="#data-compression-और-streaming" aria-label="Permalink to &quot;Data Compression और Streaming&quot;"></a></h3>
<p><strong>&quot;Entropy-driven Progressive Compression of 3D Point Clouds&quot;</strong> -- SGP 2024। <a href="https://inria.hal.science/hal-04630545v1/file/sgp2024.pdf" target="_blank" rel="noreferrer">Paper</a>। adaptive quantization के साथ recursive space partitioning इस्तेमाल करती rate-distortion optimized progressive compression। variable-bandwidth नेटवर्क streaming के लिए उपयुक्त refinement streams बनाती है।</p>
<h3 id="interactive-editing" tabindex="-1">Interactive Editing <a class="header-anchor" href="#interactive-editing" aria-label="Permalink to &quot;Interactive Editing&quot;"></a></h3>
<p><strong>&quot;WebGPU SDF Editor&quot;</strong> -- Nijhoff (2026)। <a href="https://reindernijhoff.net/2026/01/webgpu-sdf-editor-real-time-signed-distance-field-modeling/" target="_blank" rel="noreferrer">Project</a>। real-time marching cubes, boolean ऑपरेशन, smooth blending, और octree space partitioning के साथ ब्राउज़र में full-featured SDF modeling। प्रति primitive 112 bytes।</p>
<h3 id="river-और-coastal-generation" tabindex="-1">River और Coastal Generation <a class="header-anchor" href="#river-और-coastal-generation" aria-label="Permalink to &quot;River और Coastal Generation&quot;"></a></h3>
<p><strong>&quot;Procedural River Drainage Basins&quot;</strong> -- Patel (Red Blob Games)। <a href="https://www.redblobgames.com/x/1723-procedural-river-growing/" target="_blank" rel="noreferrer">Project</a>। Voronoi/triangle mesh edge classification इस्तेमाल करती drainage-first river generation। टेरेन एलिवेशन देने से पहले river hierarchies बनाती है।</p>
<p><strong>&quot;NEWTS1.0: Numerical Model of Coastal Erosion by Waves and Transgressive Scarps&quot;</strong> -- MIT (2024)। <a href="https://dspace.mit.edu/handle/1721.1/157677" target="_blank" rel="noreferrer">Paper</a>। uniform retreat और wave-driven इरोज़न इस्तेमाल करता सरलीकृत coastal इरोज़न मॉडल। असली भू-आकृति विज्ञान से मेल खाते headlands, खाड़ियां, sea stacks और मेहराब बनाता है।</p>
<h2 id="आगे-पढ़ें" tabindex="-1">आगे पढ़ें <a class="header-anchor" href="#आगे-पढ़ें" aria-label="Permalink to &quot;आगे पढ़ें&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/browser-3d-open-world-tech.html">Browser 3D Open World Tech</a> ब्राउज़र में एक मल्टीप्लेयर क्रिएटर दुनिया के लिए पूरा आर्किटेक्चर कवर करता है</li>
<li><a href="/hi/guides/web-games-stack-2026.html">Web Games Tech Stack in 2026</a> WebGL, WebGPU और WebAssembly की बुनियादी बातें कवर करता है</li>
<li><a href="/hi/guides/threejs-usdc-tech-report.html">Three.js + USDC Tech Report</a> ब्राउज़र में 3D assets लोड करने पर</li>
<li><a href="/hi/guides/frontier-gen-ai-models.html">Frontier Open-Source Gen AI Models</a> AI generation पाइपलाइन के लिए</li>
<li><a href="/hi/tutorials/webgpu-getting-started.html">WebGPU getting started</a> — GPU-ड्रिवन टेरेन के लिए compute shaders</li>
<li><a href="/hi/tutorials/web-workers-game-logic.html">Web Workers for game logic</a> — टेरेन generation को Workers पर offload करना</li>
<li><a href="/hi/tutorials/game-physics-libraries.html">Game physics libraries</a> — टेरेन interaction और heightfield colliders के लिए physics</li>
<li><a href="/hi/guides/game-assets-guide.html">Where to Find Free Game Assets</a> — टेरेन rendering के लिए texture और material स्रोत</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[मल्टीप्लेयर क्रिएटर वर्ल्ड्स के लिए ब्राउज़र 3D ओपन वर्ल्ड टेक]]></title>
            <link>https://app.cinevva.com/hi/guides/browser-3d-open-world-tech</link>
            <guid>https://app.cinevva.com/hi/guides/browser-3d-open-world-tech</guid>
            <pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[रेंडरिंग, नेटवर्किंग, स्ट्रीमिंग और वर्ल्ड-बिल्डिंग टेक पर गहरी रिसर्च, जो क्रिएटर्स को एक साझा ब्राउज़र-आधारित 3D ओपन वर्ल्ड में रखने के लिए चाहिए, जिसे वे मिलकर आकार दे सकें।]]></description>
            <content:encoded><![CDATA[<h1 id="मल्टीप्लेयर-क्रिएटर-वर्ल्ड्स-के-लिए-ब्राउज़र-3d-ओपन-वर्ल्ड-टेक" tabindex="-1">मल्टीप्लेयर क्रिएटर वर्ल्ड्स के लिए ब्राउज़र 3D ओपन वर्ल्ड टेक <a class="header-anchor" href="#मल्टीप्लेयर-क्रिएटर-वर्ल्ड्स-के-लिए-ब्राउज़र-3d-ओपन-वर्ल्ड-टेक" aria-label="Permalink to &quot;मल्टीप्लेयर क्रिएटर वर्ल्ड्स के लिए ब्राउज़र 3D ओपन वर्ल्ड टेक&quot;"></a></h1>
<p>हम अपने क्रिएटर्स को एक साझा ओपन वर्ल्ड में रखना चाहते हैं। कोई लॉबी नहीं। कोई गैलरी नहीं। एक जीवंत 3D स्पेस जहाँ लोग घूम सकें, बना सकें और एक-दूसरे के काम से अचानक टकरा सकें। ऐसा कुछ जो ब्राउज़र टैब में लोड हो और एक ऐसी जगह जैसा लगे जहाँ रहना सार्थक हो।</p>
<p>यह एक मुश्किल समस्या है। Skyrim और The Witcher 3 ने अपनी दुनिया बनाने में सैकड़ों मिलियन डॉलर खर्च किए, और फिर भी वे डेडिकेटेड हार्डवेयर पर डिस्क पर दसियों गीगाबाइट के साथ शिप होते हैं। हम एक ब्राउज़र टैब, सैकड़ों खिलाड़ियों में साझा स्टेट, और एक ऐसी दुनिया का लक्ष्य रख रहे हैं जिसे क्रिएटर्स असल में फिर से आकार दे सकें।</p>
<p>यह गाइड दर्ज करती है कि टेक पर रिसर्च करते हुए हमें क्या मिला। आज क्या संभव है, क्या आने वाला है, और कौन-सा आर्किटेक्चर हमें वहाँ पहुँचाएगा।</p>
<h2 id="skyrim-और-the-witcher-से-हम-क्या-सीख-सकते-हैं" tabindex="-1">Skyrim और The Witcher से हम क्या सीख सकते हैं <a class="header-anchor" href="#skyrim-और-the-witcher-से-हम-क्या-सीख-सकते-हैं" aria-label="Permalink to &quot;Skyrim और The Witcher से हम क्या सीख सकते हैं&quot;"></a></h2>
<p>टेक्नोलॉजी चुनने से पहले, यह समझना मददगार है कि दो सबसे सफल ओपन वर्ल्ड असल में कैसे काम करते हैं। उनकी तकनीकें ब्राउज़र की पाबंदियों पर हैरान कर देने वाले ढंग से अच्छी तरह बैठती हैं।</p>
<h3 id="skyrim-का-सेल-सिस्टम" tabindex="-1">Skyrim का सेल सिस्टम <a class="header-anchor" href="#skyrim-का-सेल-सिस्टम" aria-label="Permalink to &quot;Skyrim का सेल सिस्टम&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/JSRtYpNRoN0" title="Skyrim Special Edition Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Skyrim का ओपन वर्ल्ड खिलाड़ी के चारों ओर सेल्स का 5x5 ग्रिड स्ट्रीम करता है। दूर के पहाड़ कम-रिज़ॉल्यूशन वाले इम्पोस्टर हैं। आपको कभी पता नहीं चलता।</div>
<p>Skyrim अपनी दुनिया को 57x37 बाहरी सेल्स के एक ग्रिड में बाँटता है, हर एक 4096x4096 गेम यूनिट (करीब 59 मीटर) का। इंजन किसी भी समय खिलाड़ी के चारों ओर सेल्स का 5x5 ग्रिड लोड करता है। जैसे-जैसे आप चलते हैं, पीछे के किनारे की सेल्स अनलोड होती हैं जबकि आगे के किनारे की सेल्स स्ट्रीम होकर आती हैं। आंतरिक स्पेस (डंजन, इमारतें) अलग वर्ल्डस्पेस होते हैं जो दरवाज़े के ट्रिगर के ज़रिए लोड होते हैं।</p>
<p>यह सीधे एक ब्राउज़र वर्ल्ड पर लागू होता है। आप पूरा मैप लोड नहीं करते। आप खिलाड़ी के चारों ओर का एक मोहल्ला लोड करते हैं और जैसे-जैसे वे चलते हैं चंक्स बदलते रहते हैं। मुख्य बात: Skyrim कभी आपको दूर के टेरेन की पूरी डिटेल नहीं देखने देता। यह एक मल्टी-रिज़ॉल्यूशन तरीका अपनाता है।</p>
<p><strong>Skyrim में LOD (Level of Detail) टियर:</strong></p>
<ul>
<li>1-2 सेल्स के भीतर पूरी डिटेल (खिलाड़ी का तुरंत आसपास का इलाका)</li>
<li>मध्यम दूरी पर सरल मेश (ऑब्जेक्ट छोटी ज्यामिति खो देते हैं)</li>
<li>मध्यम दूरी से आगे पेड़ों और चट्टानों के लिए बिलबोर्ड इम्पोस्टर</li>
<li>टेरेन LOD दूर के परिदृश्य के लिए पहले से बेक की गई कम-रिज़ॉल्यूशन मेश का उपयोग करता है</li>
<li>ऑब्जेक्ट फेड दूरियाँ हर ऑब्जेक्ट के हिसाब से ट्यून की गई हैं (घास पहले फेड होती है, इमारतें आखिर में)</li>
</ul>
<p>Skyrim का परिदृश्य प्रति सेल 32x32 वर्टेक्स पैच के साथ एक हाइटमैप-आधारित टेरेन का उपयोग करता है। हर पैच पर अलग टेक्सचर हो सकते हैं जो अल्फा मैप के साथ ब्लेंड होते हैं। इसे स्टोर और रेंडर करना सस्ता है। एक सेल का टेरेन डेटा किलोबाइट में नापा जाता है, मेगाबाइट में नहीं।</p>
<p><strong>हम क्या लागू कर सकते हैं:</strong> चंक-आधारित स्ट्रीमिंग, हाइटमैप टेरेन, आक्रामक LOD, आंतरिक/बाहरी अलगाव, और यह विचार कि दूर का टेरेन ज्यामितीय रूप से सटीक होने की ज़रूरत नहीं रखता, बस देखने में विश्वसनीय होना चाहिए।</p>
<h3 id="the-witcher-3-का-स्ट्रीमिंग-आर्किटेक्चर" tabindex="-1">The Witcher 3 का स्ट्रीमिंग आर्किटेक्चर <a class="header-anchor" href="#the-witcher-3-का-स्ट्रीमिंग-आर्किटेक्चर" aria-label="Permalink to &quot;The Witcher 3 का स्ट्रीमिंग आर्किटेक्चर&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/53MyR_Z3i1w" title="The Witcher 3: Wild Hunt - Beautiful Open World" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">The Witcher 3 की 136 km2 दुनिया कंटेंट-अवेयर स्ट्रीमिंग का उपयोग करती है। 200m से आगे के पेड़ सपाट इम्पोस्टर हैं। इमारतें टेरेन से अलग स्ट्रीम होती हैं।</div>
<p>The Witcher 3 की दुनिया Skyrim से बड़ी है (सभी क्षेत्रों में करीब 136 km2) और एक ज़्यादा परिष्कृत स्ट्रीमिंग सिस्टम का उपयोग करती है। CD Projekt RED ने एक कस्टम इंजन (REDengine 3) बनाया जहाँ दुनिया को स्ट्रीमिंग सेक्टर में बाँटा गया है, किसी सख्त ग्रिड में नहीं।</p>
<p>हर सेक्टर में कंटेंट लेयर्स का एक पदानुक्रम होता है:</p>
<ul>
<li><strong>टेरेन</strong> 4 LOD लेवल के साथ पैच के रूप में स्ट्रीम होता है</li>
<li><strong>फोलिएज</strong> दूरी-आधारित कलिंग के साथ GPU इंस्टैंसिंग का उपयोग करता है</li>
<li><strong>स्टैटिक ज्यामिति</strong> (इमारतें, चट्टानें) टेरेन से अलग स्ट्रीम होती है</li>
<li><strong>गेमप्ले ऑब्जेक्ट</strong> (NPC, आइटम, ट्रिगर) क्वेस्ट स्टेट और निकटता के आधार पर लोड होते हैं</li>
</ul>
<p>रेंडरर भौतिकी-आधारित मटेरियल के साथ डिफर्ड शेडिंग का उपयोग करता है। एक ट्रिक जो खास तौर पर प्रासंगिक है: The Witcher 3 आक्रामक रूप से इम्पोस्टर का उपयोग करता है। 200 मीटर दूर का पेड़ शाखाओं और पत्तियों वाला 3D मॉडल नहीं है। यह एक सपाट टेक्सचर्ड क्वाड है जो हमेशा कैमरे की ओर मुँह करता है। इंजन इन इम्पोस्टर को कई कोणों से पहले से रेंडर करता है और कैमरा हिलने पर उन्हें बदलता है। आपको कभी पता नहीं चलता क्योंकि वे काफ़ी दूर होते हैं।</p>
<p><strong>वर्ल्ड कंपोज़िशन:</strong> The Witcher 3 का ओपन वर्ल्ड अलग-अलग टीमों ने एक साथ काम करते हुए परतों में बनाया था। टेरेन टीम ने परिदृश्य गढ़ा। एनवायरनमेंट आर्ट टीम ने संरचनाएँ रखीं। क्वेस्ट टीम ने ट्रिगर और NPC पाथ जोड़े। इस परतदार कंपोज़िशन सिस्टम ने एक बड़ी टीम को एक-दूसरे के काम में दखल दिए बिना काम करने दिया।</p>
<p><strong>हम क्या लागू कर सकते हैं:</strong> परतदार वर्ल्ड कंपोज़िशन (क्रिएटर प्लेटफ़ॉर्म के लिए बेहद ज़रूरी), दूर के ऑब्जेक्ट के लिए इम्पोस्टर रेंडरिंग, कई लाइट स्रोतों के लिए डिफर्ड रेंडरिंग, और यह समझ कि स्ट्रीमिंग कंटेंट-अवेयर होनी चाहिए (जो आंतरिक भाग आप देख नहीं सकते उन्हें लोड न करें, जिन NPC के पास आप नहीं हैं उन्हें स्पॉन न करें)।</p>
<h3 id="breath-of-the-wild-का-केमिस्ट्री-इंजन" tabindex="-1">Breath of the Wild का केमिस्ट्री इंजन <a class="header-anchor" href="#breath-of-the-wild-का-केमिस्ट्री-इंजन" aria-label="Permalink to &quot;Breath of the Wild का केमिस्ट्री इंजन&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/zw47_q9wbBE" title="Zelda: Breath of the Wild - Nintendo Switch Presentation Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">BotW टैबलेट-श्रेणी के हार्डवेयर पर चलता है और शानदार दिखता है। सेल-शेडेड स्टाइल, वॉटरकलर डिस्टेंस फॉग, और स्क्रिप्टेड कंटेंट के बजाय सिस्टमिक इंटरैक्शन। स्टाइलाइज़्ड ओपन वर्ल्ड का गोल्ड स्टैंडर्ड।</div>
<p>ओपन वर्ल्ड डिज़ाइन के लिए Nintendo का तरीका सामान्य फ़ॉर्मूले को उलट देता है। दुनिया को स्क्रिप्टेड कंटेंट से भरने के बजाय, उन्होंने सिस्टमिक नियम बनाए और खिलाड़ियों को उभरते व्यवहार की खोज करने दी। आग घास में फैलती है। आँधी-तूफ़ान में धातु बिजली का संचालन करती है। हवा ऑब्जेक्ट को बहा ले जाती है। एक सुसंगत भौतिकी/रसायन परत के ज़रिए हर चीज़ हर चीज़ के साथ इंटरैक्ट करती है।</p>
<p>यह एक क्रिएटर वर्ल्ड के लिए मायने रखता है क्योंकि यह सुझाता है कि दुनिया खुद किसी भी अलग रखे गए ऑब्जेक्ट से ज़्यादा दिलचस्प हो सकती है। अगर क्रिएटर्स मटेरियल गुण और इंटरैक्शन नियम परिभाषित कर सकें (सिर्फ़ स्टैटिक मेश रखने के बजाय), तो दुनिया को उभरता व्यवहार मिलता है जो उन इलाकों में भी एक्सप्लोरेशन को सार्थक बनाता है जिन्हें किसी ने जानबूझकर डिज़ाइन नहीं किया।</p>
<p><strong>BotW से तकनीकी सीख:</strong></p>
<ul>
<li>अपेक्षाकृत कम पॉलीगॉन संख्या और रिज़ॉल्यूशन (Switch पर डॉक्ड 900p)। स्टाइलाइज़्ड सेल-शेडेड लुक कम फ़िडेलिटी को छिपा देता है। एक ब्राउज़र वर्ल्ड आज समान विज़ुअल क्वालिटी हासिल कर सकता है।</li>
<li>डिस्टेंस रेंडरिंग एक टून-शेडेड फॉग का उपयोग करता है जो वॉटरकलर-स्टाइल स्काईबॉक्स में फेड हो जाता है। रेंडर करने में सस्ता, व्यवहार में सुंदर। इस तरह का वायुमंडलीय परिप्रेक्ष्य एक फ्रैगमेंट शेडर में लगभग मुफ़्त है।</li>
<li>दुनिया करीब 84 km2 की है लेकिन विरल है। मैप का ज़्यादातर हिस्सा घूमने योग्य टेरेन है जिस पर रुचि के बिंदु बिखरे हुए हैं। घना कंटेंट कस्बों और श्राइन के लिए आरक्षित है। यह &quot;विरल लेकिन दिलचस्प&quot; तरीका The Witcher 3 के घनी आबादी वाले Novigrad की तुलना में एसेट की ज़रूरतों को नाटकीय रूप से कम कर देता है।</li>
<li>भौतिकी ऑब्जेक्ट में मटेरियल टैग (लकड़ी, धातु, खाना, विस्फोटक) होते हैं जो इंटरैक्शन तय करते हैं। असली नियमों की संख्या कम है (शायद 20-30 इंटरैक्शन प्रकार) लेकिन वे ऐसे तरीकों से मिलते हैं जो अनंत महसूस होते हैं।</li>
</ul>
<h3 id="gta-v-की-वर्ल्ड-लेयरिंग" tabindex="-1">GTA V की वर्ल्ड लेयरिंग <a class="header-anchor" href="#gta-v-की-वर्ल्ड-लेयरिंग" aria-label="Permalink to &quot;GTA V की वर्ल्ड लेयरिंग&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/QkkoHAzjnUs" title="Grand Theft Auto V Official Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">GTA V का Los Santos परतदार एम्बिएंट सिस्टम के कारण जीवंत महसूस होता है: ट्रैफ़िक, पैदल यात्री, दिन का समय, मौसम। दूर की इमारतें कंपोज़िट की गई फ़ोटो हैं, 3D मॉडल नहीं।</div>
<p>Los Santos के लिए Rockstar का तरीका एक अलग सबक सिखाता है। GTA V की दुनिया जीवंत महसूस होती है परतदार एम्बिएंट सिस्टम के कारण, इसलिए नहीं कि हर NPC के पास एक क्वेस्ट है।</p>
<p>शहर में ट्रैफ़िक सिस्टम हैं जो एक सड़क नेटवर्क पर सैकड़ों वाहनों का सिमुलेशन करते हैं। पैदल यात्री रूट पर चलते हैं, खिलाड़ी पर प्रतिक्रिया देते हैं, और आपस में इंटरैक्ट करते हैं। दिन का समय आबादी के घनत्व, मौजूद NPC के प्रकार और एम्बिएंट गतिविधि को बदल देता है। मौसम ड्राइविंग भौतिकी और NPC व्यवहार को प्रभावित करता है।</p>
<p>एक क्रिएटर वर्ल्ड के लिए, सीख यह है कि एम्बिएंट लाइफ़ ही उस दुनिया में फ़र्क़ पैदा करती है जो म्यूज़ियम जैसी महसूस होती है और जो एक जगह जैसी महसूस होती है। साधारण व्यवहार भी (सिर के ऊपर उड़ते पक्षी, किनारे से टकराती लहरें, इमारतों के बीच चलते NPC) एक जीवंत दुनिया का भ्रम पैदा करते हैं।</p>
<p><strong>GTA V से तकनीकी सीख:</strong></p>
<ul>
<li>मैप 75 km2 का है और आक्रामक LOD के साथ एक स्ट्रीमिंग सिस्टम का उपयोग करता है जो वेग के आधार पर लोड करता है (तेज़ ड्राइविंग चलने से आगे तक लोड करती है)।</li>
<li>GTA Online इस दुनिया में एक साथ 30 खिलाड़ियों को रखता है। 30 पर भी, Rockstar ने पाया कि उन्हें स्थानिक इंटरेस्ट मैनेजमेंट की ज़रूरत है: आपको पास के खिलाड़ियों के बारे में विस्तृत अपडेट मिलते हैं और दूर वालों के बारे में कम बार। हमारे 200-खिलाड़ी लक्ष्य पर भी वही सिद्धांत लागू होता है।</li>
<li>GTA V की एसेट पाइपलाइन अब तक की सबसे कुशल में से एक है। पूरा गेम करीब 80 GB में आ जाता है, अत्यधिक टेक्सचर कम्प्रेशन, मेश शेयरिंग, और प्रोसीजरल डिटेल के कारण। इसके बिल्डिंग इंटीरियर मॉड्यूलर टुकड़ों का खूब दोबारा उपयोग करते हैं।</li>
<li>गेम एक परिष्कृत इम्पोस्टर सिस्टम का उपयोग करता है जहाँ दूर की इमारतें असल में एक साथ कंपोज़िट की गई सपाट फ़ोटो हैं। खिलाड़ी को कभी पता नहीं चलता क्योंकि ट्रांज़िशन दूरियाँ विशिष्ट देखने के कोणों के हिसाब से ट्यून की गई हैं।</li>
</ul>
<h3 id="elden-ring-का-सीमलेस-ओपन-वर्ल्ड" tabindex="-1">Elden Ring का सीमलेस ओपन वर्ल्ड <a class="header-anchor" href="#elden-ring-का-सीमलेस-ओपन-वर्ल्ड" aria-label="Permalink to &quot;Elden Ring का सीमलेस ओपन वर्ल्ड&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/E3Huy2cdih0" title="Elden Ring Official Gameplay Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Elden Ring का 79 km2 मैप विरल खुले टेरेन को घने हाथ से बनाए गए डंजन के साथ मिलाता है। वही एनवायरनमेंट एसेट हर जगह अलग-अलग व्यवस्थाओं में दिखते हैं। जब कंपोज़िशन और लाइटिंग बदलती है तो दोहराव गायब हो जाता है।</div>
<p>FromSoftware ने Elden Ring को Dark Souls के उसी इंजन पर बनाया लेकिन उसे एक ओपन वर्ल्ड तक बढ़ाया। नतीजा दिलचस्प है क्योंकि यह दिखाता है कि एक अपेक्षाकृत छोटी टीम (Rockstar या CD Projekt की तुलना में) कैसे एक बड़ा ओपन वर्ल्ड बना सकती है।</p>
<p>ट्रिक है घनत्व में भिन्नता। Elden Ring का मैप विशाल है (करीब 79 km2) लेकिन बड़े हिस्से खुले टेरेन हैं जिनमें बिखरे हुए दुश्मन और रुचि के बिंदु हैं। घना, हाथ से बनाया गया कंटेंट (Stormveil Castle जैसे Legacy Dungeons) ओपन वर्ल्ड में जड़ा हुआ है और वही आंतरिक/बाहरी अलगाव उपयोग करता है जो Skyrim करता है।</p>
<p><strong>Elden Ring से तकनीकी सीख:</strong></p>
<ul>
<li>दुनिया बड़ी टाइल्स में स्ट्रीम होती है। घोड़े पर आप बहुत दूर तक देख सकते हैं, लेकिन दूर का टेरेन बेहद सरल है। पास में, डिटेल Dark Souls 3 के बराबर है।</li>
<li>लोडिंग स्क्रीन केवल फ़ास्ट-ट्रैवल करते या कुछ खास डंजन में घुसते वक़्त दिखती हैं। ओपन वर्ल्ड खुद बिना रुकावट के स्ट्रीम होता है।</li>
<li>गेम एनवायरनमेंट एसेट का खूब दोबारा उपयोग करता है। वही पेड़ के मॉडल, चट्टान की संरचनाएँ, और खंडहर के टुकड़े मैप भर में अलग-अलग व्यवस्थाओं में दिखते हैं। व्यवस्था और लाइटिंग में पर्याप्त विविधता के साथ, दोहराव नज़र नहीं आता। यह सीधे एक क्रिएटर वर्ल्ड पर लागू होता है जहाँ मॉड्यूलर टुकड़ों की एक लाइब्रेरी अनंत विविधता पैदा कर सकती है।</li>
<li>मल्टीप्लेयर सेशन-आधारित है (दूसरे खिलाड़ियों को अपनी दुनिया में बुलाना), स्थायी नहीं। लेकिन असिंक्रोनस फ़ीचर (संदेश, ब्लडस्टेन, दूसरे खिलाड़ियों के घोस्ट) एक स्थायी सर्वर के नेटवर्किंग ओवरहेड के बिना साझा अस्तित्व का अहसास पैदा करते हैं। ये एम्बिएंट मल्टीप्लेयर फ़ीचर एक ब्राउज़र वर्ल्ड में जोड़ना सस्ता होगा।</li>
</ul>
<h3 id="no-man-s-sky-प्रोसीजरल-हर-चीज़" tabindex="-1">No Man's Sky: प्रोसीजरल हर चीज़ <a class="header-anchor" href="#no-man-s-sky-प्रोसीजरल-हर-चीज़" aria-label="Permalink to &quot;No Man's Sky: प्रोसीजरल हर चीज़&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/nLtmEjqzg7M" title="No Man's Sky NEXT Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">साझा सीड से जनरेट किए गए 18 क्विंटिलियन ग्रह। हर खिलाड़ी वही ब्रह्मांड देखता है बिना उसे सर्वर पर स्टोर किए। बेस बिल्डिंग डेटा कॉम्पैक्ट है: पार्ट ID प्लस ट्रांसफ़ॉर्म।</div>
<p>No Man's Sky प्रोसीजरल जनरेशन का चरम उदाहरण है। एक साझा सीड से जनरेट किए गए 18 क्विंटिलियन ग्रह, ताकि हर खिलाड़ी वही ब्रह्मांड देखे बिना उसमें से कुछ भी सर्वर पर स्टोर किए।</p>
<p>जनरेशन पाइपलाइन चरणों में काम करती है: गैलेक्सी-स्तर के सीड तारों की स्थिति तय करते हैं, तारा सीड ग्रहों की संख्या और प्रकार तय करते हैं, ग्रह सीड टेरेन जनरेशन (मल्टी-ऑक्टेव नॉइज़), बायोम असाइनमेंट, फ़्लोरा/फ़ौना प्रजातियाँ, कलर पैलेट, और संसाधन वितरण चलाते हैं। हर चीज़ सीड से नियतात्मक रूप से कंप्यूट होती है, इसलिए वही निर्देशांक देखने वाले दो खिलाड़ी कोई ग्रह डेटा आपस में बदले बिना वही ग्रह देखते हैं।</p>
<p><strong>No Man's Sky से तकनीकी सीख:</strong></p>
<ul>
<li>टेरेन जनरेशन नॉइज़ फ़ंक्शन की एक श्रृंखला के साथ वॉक्सेल-आधारित मार्चिंग क्यूब्स का उपयोग करता है। इससे गुफाएँ, ओवरहैंग, और तैरते द्वीप संभव होते हैं जिन्हें हाइटमैप टेरेन दिखा नहीं सकता। बदले में प्रति चंक ज़्यादा कंप्यूट लागत आती है, लेकिन नतीजा देखने में ज़्यादा दिलचस्प टेरेन होता है।</li>
<li>बेस-बिल्डिंग सिस्टम सबसे क़रीब है उस चीज़ के जिसकी हम कल्पना कर रहे हैं। खिलाड़ी ऐसी संरचनाएँ रखते हैं जो सर्वर पर बनी रहती हैं और दूसरे खिलाड़ियों को दिखती हैं। बेस डेटा कॉम्पैक्ट है (स्थिति और घुमाव वाले पार्ट की एक सूची) और तब स्ट्रीम होता है जब कोई ग्रह पर जाता है।</li>
<li>गेम की शुरुआत में अनंत विविधता के बावजूद दोहराव वाले कंटेंट के लिए आलोचना हुई थी। सीड-आधारित जनरेशन अनंत टेरेन पैदा कर सकती है लेकिन सीमित आश्चर्य। सीख: प्रोसीजरल जनरेशन कैनवस के लिए काम करती है, लेकिन क्रिएटर द्वारा रखा गया कंटेंट ही किसी जगह को डिज़ाइन किया हुआ और इरादतन महसूस कराता है।</li>
<li>Hello Games ने लॉन्च के सालों बाद मल्टीप्लेयर जोड़ा। 32 तक खिलाड़ी पूरी बिल्डिंग और एक्सप्लोरेशन के साथ एक सेशन साझा करते हैं। नेटवर्क मॉडल सरल है: एक खिलाड़ी होस्ट करता है, बाक़ी कनेक्ट होते हैं। स्थायी स्टेट वाले एक ब्राउज़र वर्ल्ड के लिए, एक सर्वर-अथॉरिटेटिव मॉडल बेहतर काम करता है, लेकिन No Man's Sky साबित करता है कि साझा प्रोसीजरल वर्ल्ड संभव हैं।</li>
</ul>
<h3 id="minecraft-क्रिएटर-वर्ल्ड्स-के-लिए-ब्लूप्रिंट" tabindex="-1">Minecraft: क्रिएटर वर्ल्ड्स के लिए ब्लूप्रिंट <a class="header-anchor" href="#minecraft-क्रिएटर-वर्ल्ड्स-के-लिए-ब्लूप्रिंट" aria-label="Permalink to &quot;Minecraft: क्रिएटर वर्ल्ड्स के लिए ब्लूप्रिंट&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/MmB9b5njVbA" title="Minecraft Official Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">30 करोड़ कॉपी बिकीं। 16x16 पिक्सेल टेक्सचर। पूरी तरह एडिट करने योग्य टेरेन। अनंत रूप से जनरेट। मल्टीप्लेयर। एक क्रिएटर वर्ल्ड के लिए सबसे अहम संदर्भ। ब्राउज़र क्लोन साबित करते हैं कि यह अवधारणा WebGL में काम करती है।</div>
<p>जो हम बना रहे हैं उसके लिए Minecraft सबसे अहम संदर्भ बिंदु है, किसी भी ग्राफ़िकल AAA टाइटल से ज़्यादा। 30 करोड़ कॉपी बिकीं। दुनिया अनंत रूप से जनरेट होती है, पूरी तरह विनाशकारी है, और मल्टीप्लेयर है। Minecraft में क्रिएटर्स सिर्फ़ ऑब्जेक्ट नहीं रखते। वे खुद टेरेन को फिर से आकार देते हैं।</p>
<p><strong>Minecraft से तकनीकी सीख:</strong></p>
<ul>
<li>दुनिया 16x16x384 ब्लॉक चंक्स में बँटी है। केवल खिलाड़ी के पास के चंक्स लोड होते हैं (रेंडर डिस्टेंस कॉन्फ़िगर करने योग्य है)। यह Skyrim जैसा ही चंक स्ट्रीमिंग पैटर्न है लेकिन पूरी तरह एडिट करने योग्य टेरेन के साथ।</li>
<li>हर चंक एक पैलेट-कम्प्रेस्ड ब्लॉक ID की ऐरे के रूप में स्टोर होता है। केवल 5 अलग ब्लॉक प्रकार वाला एक चंक प्रति ब्लॉक पूरे ब्लॉक ID के बजाय एक 4-बिट पैलेट इंडेक्स स्टोर करता है। इससे चंक डेटा बहुत कॉम्पैक्ट हो जाता है (कम्प्रेशन के बाद आम तौर पर प्रति चंक 10-50 KB)।</li>
<li>Minecraft का मल्टीप्लेयर प्रोटोकॉल अच्छी तरह दर्ज है और अपेक्षाकृत सरल है। जैसे-जैसे खिलाड़ी चलता है सर्वर चंक डेटा भेजता है। ब्लॉक बदलाव छोटे डेल्टा अपडेट के रूप में प्रसारित होते हैं (स्थिति + नया ब्लॉक प्रकार)। यह बिल्कुल वही मॉडल है जो हम क्रिएटर एडिट के लिए उपयोग करेंगे।</li>
<li>गेम Java में चलता है और अब इसका C++ में एक Bedrock Edition है। ब्राउज़र-आधारित Minecraft क्लोन (ClassiCube, eaglercraft) हैं जो साबित करते हैं कि मूल अवधारणा WebGL में काम करती है। वे आम तौर पर 60fps पर 8-12 चंक रेंडर डिस्टेंस संभालते हैं, जो करीब 200-400 मीटर का दृश्य देता है।</li>
<li>Minecraft का मॉडिंग इकोसिस्टम इसकी असली खाई है। मॉड नए ब्लॉक, एंटिटी, बायोम, और गेमप्ले सिस्टम जोड़ते हैं। एक क्रिएटर वर्ल्ड के लिए, यह सुझाता है कि विस्तार-योग्यता उतनी ही मायने रखती है जितना मूल अनुभव। अगर क्रिएटर्स नए इंटरैक्शन प्रकार परिभाषित कर सकें (सिर्फ़ ऑब्जेक्ट रखने के बजाय), तो दुनिया समय के साथ समृद्ध होती है।</li>
<li>Redstone (Minecraft का इन-गेम वायरिंग सिस्टम) दिखाता है कि अगर आप क्रिएटर्स को सरल, संयोजन-योग्य प्रिमिटिव दें तो वे जटिल सिस्टम बनाएँगे। लॉजिक गेट, ऑटोमैटिक फ़ार्म, कैलकुलेटर। सरल नियम-सेट असाधारण जटिलता पैदा करता है। यह BotW के केमिस्ट्री इंजन जैसा ही सबक है।</li>
</ul>
<h3 id="aaa-ओपन-वर्ल्ड्स-में-सामान्य-पैटर्न" tabindex="-1">AAA ओपन वर्ल्ड्स में सामान्य पैटर्न <a class="header-anchor" href="#aaa-ओपन-वर्ल्ड्स-में-सामान्य-पैटर्न" aria-label="Permalink to &quot;AAA ओपन वर्ल्ड्स में सामान्य पैटर्न&quot;"></a></h3>
<p>इन सभी टाइटलों को देखते हुए, वही पैटर्न बार-बार दिखते हैं:</p>
<p><strong>स्थानिक विभाजन</strong> सार्वभौमिक है। चाहे वह सेल्स हों (Bethesda), सेक्टर (CD Projekt), चंक्स (Mojang/Rockstar), या टाइल्स (FromSoftware), हर ओपन वर्ल्ड स्पेस को लोड करने योग्य इकाइयों में बाँटता है। कोई इंजन पूरी दुनिया को मेमोरी में रखने की कोशिश नहीं करता।</p>
<p><strong>मल्टी-रिज़ॉल्यूशन हर चीज़।</strong> टेरेन, मेश, टेक्सचर, और यहाँ तक कि ऑडियो सभी के कई क्वालिटी लेवल होते हैं। आपको जो रिज़ॉल्यूशन मिलता है वह इस पर निर्भर करता है कि आप कितने क़रीब हैं और ऑब्जेक्ट कितना अहम है।</p>
<p><strong>ऑक्लूज़न कलिंग</strong> कच्चे ट्रायएंगल थ्रूपुट से ज़्यादा मायने रखती है। जो आप देख नहीं सकते उसे रेंडर न करना, जो आप देख सकते हैं उसे ऑप्टिमाइज़ करने से ज़्यादा परफ़ॉर्मेंस बचाता है। Skyrim एक सरल दूरी-आधारित सिस्टम उपयोग करता है। The Witcher 3 बड़े ऑक्लूडर (इमारतें, चट्टानें) के साथ सॉफ़्टवेयर ऑक्लूज़न उपयोग करता है। UE5 के Nanite जैसे आधुनिक इंजन इसे हार्डवेयर ऑक्लूज़न क्वेरी के साथ और आगे ले जाते हैं।</p>
<p><strong>असिंक्रोनस लोडिंग</strong> ट्रांज़िशन छिपा देती है। ये गेम ओपन वर्ल्ड के लिए लोडिंग स्क्रीन नहीं दिखाते (केवल फ़ास्ट-ट्रैवल या आंतरिक ट्रांज़िशन के लिए)। वे बैकग्राउंड थ्रेड पर कंटेंट लोड करते हैं, समानांतर में डीकम्प्रेस करते हैं, और धीरे-धीरे नया कंटेंट स्वैप करते हैं।</p>
<p><strong>पॉलीगॉन संख्या के ऊपर आर्ट डायरेक्शन।</strong> Skyrim 2011 में ऐसे ग्राफ़िक्स के साथ शिप हुआ जो तब भी मामूली थे। BotW टैबलेट-श्रेणी की चिप पर चलता है और सुंदर दिखता है। Minecraft 16x16 पिक्सेल टेक्सचर उपयोग करता है और अब तक के सबसे विज़ुअली पहचाने जाने वाले गेमों में से एक है। एक ब्राउज़र वर्ल्ड के लिए, यह बहुत मायने रखता है। कम फ़िडेलिटी पर अच्छी तरह डायरेक्ट की गई आर्ट स्टाइल हमेशा एक तकनीकी रूप से उन्नत लेकिन कलात्मक रूप से सपाट दुनिया को मात देगी।</p>
<p><strong>सिस्टमिक डिज़ाइन स्क्रिप्टेड कंटेंट को मात देता है।</strong> BotW का केमिस्ट्री इंजन, Minecraft के ब्लॉक इंटरैक्शन, और GTA V के ट्रैफ़िक सिस्टम सभी सरल नियमों से उभरता व्यवहार पैदा करते हैं। यह बनाने में सस्ता है, चलाने में सस्ता है, और हाथ से बनाए गए स्क्रिप्टेड अनुक्रमों से ज़्यादा खिलाड़ी कहानियाँ पैदा करता है। एक क्रिएटर वर्ल्ड के लिए, सिस्टमिक डिज़ाइन का मतलब है कि दुनिया उन इलाकों में भी दिलचस्प बनी रहती है जिन्हें किसी ने जानबूझकर डिज़ाइन नहीं किया।</p>
<p><strong>क्रिएटर द्वारा रखे गए कंटेंट को स्थायित्व और दृश्यता चाहिए।</strong> Minecraft बेस, No Man's Sky बेस, और GTA Online प्रॉपर्टी सभी सेशन भर बनी रहती हैं और दूसरे खिलाड़ियों को दिखती हैं। क्रिएटर कंटेंट के लिए डेटा मॉडल हमेशा कॉम्पैक्ट होता है (पार्ट ID + ट्रांसफ़ॉर्म) जबकि विज़ुअल प्रतिनिधित्व समृद्ध होता है (क्लाइंट डेटा को पूरे 3D सीन में फैलाता है)।</p>
<h2 id="रेंडरिंग-एक-ब्राउज़र-असल-में-क्या-कर-सकता-है" tabindex="-1">रेंडरिंग: एक ब्राउज़र असल में क्या कर सकता है? <a class="header-anchor" href="#रेंडरिंग-एक-ब्राउज़र-असल-में-क्या-कर-सकता-है" aria-label="Permalink to &quot;रेंडरिंग: एक ब्राउज़र असल में क्या कर सकता है?&quot;"></a></h2>
<h3 id="three-js" tabindex="-1">Three.js <a class="header-anchor" href="#three-js" aria-label="Permalink to &quot;Three.js&quot;"></a></h3>
<p>Three.js नींव है। इसकी सबसे बड़ी कम्युनिटी है (100K से ज़्यादा GitHub स्टार), सबसे ज़्यादा उदाहरण, और सबसे व्यापक संगतता। यह WebGL 2 को अमूर्त करता है और <code>WebGPURenderer</code> के ज़रिए प्रयोगात्मक WebGPU सपोर्ट रखता है।</p>
<p>एक ओपन वर्ल्ड के लिए, Three.js आपको देता है:</p>
<ul>
<li>फोलिएज, चट्टानों, और दोहराई जाने वाली ज्यामिति के लिए <strong>इंस्टैंस्ड रेंडरिंग</strong> (<code>InstancedMesh</code>)</li>
<li>अंतर्निहित <strong>LOD सिस्टम</strong> (<code>THREE.LOD</code> दूरी के हिसाब से मेश स्वैप करता है)</li>
<li>प्रति ऑब्जेक्ट स्वचालित <strong>फ़्रस्टम कलिंग</strong></li>
<li>कस्टम <code>BufferGeometry</code> या हाइटमैप-आधारित <code>PlaneGeometry</code> के ज़रिए <strong>टेरेन</strong></li>
<li><code>MeshStandardMaterial</code> और <code>MeshPhysicalMaterial</code> के ज़रिए <strong>PBR मटेरियल</strong></li>
<li><code>EffectComposer</code> के ज़रिए <strong>पोस्ट-प्रोसेसिंग</strong> (bloom, SSAO, tone mapping)</li>
<li>कस्टम कोड के ज़रिए कैस्केडेड शैडो मैपिंग संभव के साथ <strong>शैडो मैप</strong></li>
<li>प्राथमिक एसेट फ़ॉर्मेट के रूप में <strong>glTF/GLB</strong> (कॉम्पैक्ट, GPU-तैयार)</li>
</ul>
<p>Three.js के पास टूल्स का एक सक्रिय इकोसिस्टम भी है जो ओपन वर्ल्ड के लिए मायने रखता है। <code>three-mesh-bvh</code> जटिल मेश पर रेकास्टिंग और स्थानिक क्वेरी को तेज़ करता है। <code>postprocessing</code> (vanruesc द्वारा) Three के अंतर्निहित स्टैक से ज़्यादा परफ़ॉर्मेंट पोस्ट-प्रोसेसिंग स्टैक देता है। <code>three-gpu-pathtracing</code> संदर्भ-गुणवत्ता वाली रेंडरिंग सक्षम करता है।</p>
<p><strong>ओपन वर्ल्ड्स के लिए सीमाएँ:</strong> Three.js के पास कोई अंतर्निहित सीन ग्राफ़ नहीं है जो बड़े पैमाने पर स्ट्रीमिंग, LOD मैनेजमेंट, या स्थानिक विभाजन संभाले। आप वे ख़ुद बनाते हैं। कोई अंतर्निहित एंटिटी कंपोनेंट सिस्टम (ECS), कोई भौतिकी, और कोई टेरेन सिस्टम नहीं है। यह एक रेंडरर है, इंजन नहीं। यह असल में एक कस्टम ओपन वर्ल्ड के लिए फ़ायदा है क्योंकि आप मेमोरी लेआउट और लोडिंग रणनीति को नियंत्रित करते हैं, लेकिन इसका मतलब है शुरुआत में ज़्यादा काम।</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> lod</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> THREE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">LOD</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">lod.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">addLevel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(highDetailMesh, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">lod.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">addLevel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(mediumDetailMesh, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">50</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">lod.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">addLevel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(lowDetailMesh, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">200</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">lod.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">addLevel</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(impostorSprite, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">500</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">scene.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(lod);</span></span></code></pre>
</div><h3 id="babylon-js" tabindex="-1">Babylon.js <a class="header-anchor" href="#babylon-js" aria-label="Permalink to &quot;Babylon.js&quot;"></a></h3>
<p>Babylon.js दूसरा बड़ा दावेदार है। Microsoft-समर्थित, इसमें ओपन वर्ल्ड्स की विशिष्ट समस्या के लिए Three.js से ज़्यादा गहरे अंतर्निहित फ़ीचर हैं।</p>
<p>प्रासंगिक अंतर्निहित फ़ीचर:</p>
<ul>
<li>बड़े सीन की कुशल कलिंग के लिए <strong>ऑक्ट्री-आधारित सीन विभाजन</strong></li>
<li>बड़े पैमाने पर इंस्टैंस्ड रेंडरिंग के लिए <strong>Solid Particle System</strong></li>
<li>अंतर्निहित LOD और मल्टी-टेक्सचर स्प्लैटिंग के साथ <strong>हाइटमैप से टेरेन</strong></li>
<li>विज़ुअल शेडर निर्माण के लिए <strong>Node Material Editor</strong></li>
<li><strong>WebGPU सपोर्ट</strong> (Three.js से ज़्यादा परिपक्व, क्योंकि Babylon ने पहले निवेश किया)</li>
<li><strong>Havok physics इंटीग्रेशन</strong> (Wasm-कम्पाइल्ड, प्रोडक्शन-क्वालिटी)</li>
<li>प्रोग्रेसिव लोडिंग के साथ <strong>glTF स्ट्रीमिंग</strong></li>
</ul>
<p>Babylon का <code>DynamicTerrain</code> एक्सटेंशन हाइटमैप डेटा से चलते-चलते टेरेन चंक्स जनरेट करता है, LOD अपने आप संभालता है, और टेक्सचर स्प्लैटिंग सपोर्ट करता है। यह उस चीज़ के बहुत क़रीब है जो Skyrim करता है, बनिस्बत उसके जो Three.js बॉक्स से बाहर देता है।</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> terrain</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> BABYLON</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">DynamicTerrain</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">"terrain"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  terrainSub: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">100</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  mapData: heightmapData,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  mapSubX: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  mapSubZ: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1000</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}, scene);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">terrain.LODLimits </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">];</span></span></code></pre>
</div><p><strong>बदलाव की क़ीमत:</strong> Babylon.js एक बड़ी लाइब्रेरी है (पूरा बिल्ड ~1-2MB मिनिफ़ाइड बनाम Three.js ~600KB पर)। लेकिन एक ओपन वर्ल्ड के लिए, आप शायद Three.js में इतना कस्टम कोड जोड़ेंगे कि आकार का फ़र्क़ नगण्य हो जाए। Babylon के पास अपना Node Material सिस्टम, इंस्पेक्टर, और डेव टूल्स भी हैं, जो इटरेशन को तेज़ करते हैं।</p>
<p>Babylon.js 8.0 (मार्च 2025 में रिलीज़) ने इसे यहाँ इंजन कोर के रूप में और मज़बूत किया। सभी कोर इंजन शेडर अब GLSL और WGSL दोनों में शिप होते हैं, इसलिए WebGPU बिना किसी कन्वर्ज़न लेयर के काम करता है और WebGPU बंडल पहले से करीब आधे आकार का है। उसी रिलीज़ ने Havok का पूरा कैरेक्टर कंट्रोलर इंजन में लाया, एरिया लाइट्स, एक दोबारा बनाया गया ऑडियो इंजन, और Gaussian splatting सुधार (SPZ और कम्प्रेस्ड PLY फ़ॉर्मेट, स्फेरिकल हार्मोनिक्स, और कम मेमोरी/CPU फ़ुटप्रिंट)।</p>
<h3 id="playcanvas" tabindex="-1">PlayCanvas <a class="header-anchor" href="#playcanvas" aria-label="Permalink to &quot;PlayCanvas&quot;"></a></h3>
<p>PlayCanvas का ज़िक्र करना ज़रूरी है क्योंकि यह सबसे प्रोडक्शन-प्रमाणित वेब-फ़र्स्ट 3D इंजन है। Snap, Facebook, और कई विज्ञापन क्लाइंट ने इसके साथ जटिल 3D अनुभव शिप किए हैं। इंजन करीब 1MB का है, तेज़ी से लोड होता है, और क्लाउड एडिटर सहयोगी वर्ल्ड बिल्डिंग सक्षम करता है।</p>
<p>खासकर एक ओपन वर्ल्ड के लिए, PlayCanvas ड्रॉ कॉल ऑप्टिमाइज़ेशन के लिए बैच ग्रुप, एक अंतर्निहित लाइटमैपर, और Gaussian splatting सपोर्ट देता है (फ़ोटोग्रामेट्री-कैप्चर किए गए असली दुनिया के एनवायरनमेंट के लिए प्रासंगिक)। रनटाइम टाइट है और मोबाइल ब्राउज़र के लिए अच्छी तरह ऑप्टिमाइज़ किया हुआ है।</p>
<h3 id="webgpu-परफ़ॉर्मेंस-की-चाबी" tabindex="-1">WebGPU: परफ़ॉर्मेंस की चाबी <a class="header-anchor" href="#webgpu-परफ़ॉर्मेंस-की-चाबी" aria-label="Permalink to &quot;WebGPU: परफ़ॉर्मेंस की चाबी&quot;"></a></h3>
<p>WebGPU ब्राउज़र ओपन वर्ल्ड्स के लिए समीकरण बदल देता है। दो फ़ीचर जो सबसे ज़्यादा मायने रखते हैं:</p>
<p><strong>कंप्यूट शेडर</strong> GPU-साइड टेरेन जनरेशन, फोलिएज प्लेसमेंट, पार्टिकल सिमुलेशन, और यहाँ तक कि सरल भौतिकी सक्षम करते हैं। एक WebGL वर्ल्ड में, यह सब JavaScript में CPU पर चलता है। WebGPU के साथ, आप टेरेन पैच पूरी तरह GPU पर जनरेट कर सकते हैं, LOD ट्रांज़िशन GPU पर कंप्यूट कर सकते हैं, और कलिंग पास GPU पर चला सकते हैं। यह CPU को नेटवर्किंग, गेम लॉजिक, और कंटेंट स्ट्रीमिंग के लिए मुक्त कर देता है।</p>
<p><strong>इनडायरेक्ट रेंडरिंग</strong> GPU को कंप्यूट शेडर आउटपुट के आधार पर तय करने देती है कि क्या ड्रॉ करना है। आप एक ड्रॉ कॉल सबमिट करते हैं, और GPU दूरी के आधार पर तय करता है कि हर LOD लेवल के लिए कितने इंस्टैंस रेंडर करने हैं। आधुनिक इंजन इसी तरह घास के लाखों तिनके या पेड़ संभालते हैं। इनडायरेक्ट रेंडरिंग के बिना (जो WebGL सपोर्ट नहीं करता), CPU को सब कुछ सॉर्ट और बैच करना पड़ता है, जो घने सीन में बॉटलनेक बन जाता है।</p>
<p>WebGPU अब हर बड़े ब्राउज़र में शिप होता है। Chrome और Edge के पास यह वर्शन 113 से है, Firefox ने इसे Windows (141) और Apple Silicon macOS (145) पर जोड़ा, और Safari 26 ने इसे 2025 के आख़िर में macOS, iOS, iPadOS, और visionOS पर लाया। इससे वैश्विक सपोर्ट करीब 82% हो जाता है, मोबाइल समेत (Chrome for Android और Samsung Internet भी इसे शिप करते हैं)। आप फिर भी पुराने ब्राउज़र और उन डिवाइस के लिए एक WebGL 2 फ़ॉलबैक रखेंगे जहाँ WebGPU सक्षम नहीं है, लेकिन यह खाई तेज़ी से बंद हुई है।</p>
<div class="language-wgsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">wgsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">compute</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> @</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">workgroup_size</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">64</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> generateTerrain</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">builtin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(global_invocation_id) id: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">u32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> worldPos </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> vec2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">x), </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">y)) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> cellSize </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> worldOffset;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> height </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> fbmNoise</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(worldPos, octaves, persistence);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    heightmap[id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> width] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> height;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><h3 id="अनुशंसित-रेंडरिंग-स्टैक" tabindex="-1">अनुशंसित रेंडरिंग स्टैक <a class="header-anchor" href="#अनुशंसित-रेंडरिंग-स्टैक" aria-label="Permalink to &quot;अनुशंसित रेंडरिंग स्टैक&quot;"></a></h3>
<p>डेस्कटॉप पर क्रिएटर्स को लक्ष्य करने वाले एक ब्राउज़र ओपन वर्ल्ड के लिए:</p>
<p><strong>प्राथमिक:</strong> Three.js या Babylon.js, जहाँ उपलब्ध हो वहाँ WebGPU रेंडरर के साथ, WebGL 2 फ़ॉलबैक। Babylon के पास मज़बूत अंतर्निहित ओपन-वर्ल्ड प्रिमिटिव हैं। Three.js के पास बड़ी कम्युनिटी और ज़्यादा लचीलापन है।</p>
<p><strong>हमारी पसंद:</strong> इंजन कोर के लिए Babylon.js, अंतर्निहित टेरेन LOD, ऑक्ट्री कलिंग, Havok physics (Wasm), और परिपक्व WebGPU सपोर्ट के कारण। जहाँ Babylon में कमी हो वहाँ Three.js इकोसिस्टम टूल्स उपयोग करें (जैसे, स्थानिक क्वेरी के लिए mesh BVH)। सब कुछ एक कस्टम वर्ल्ड-स्ट्रीमिंग लेयर में लपेटें।</p>
<h2 id="वर्ल्ड-स्ट्रीमिंग-आर्किटेक्चर" tabindex="-1">वर्ल्ड स्ट्रीमिंग आर्किटेक्चर <a class="header-anchor" href="#वर्ल्ड-स्ट्रीमिंग-आर्किटेक्चर" aria-label="Permalink to &quot;वर्ल्ड स्ट्रीमिंग आर्किटेक्चर&quot;"></a></h2>
<p>यह मुश्किल हिस्सा है। एक ब्राउज़र टैब को डेस्कटॉप पर करीब 2-4 GB मेमोरी मिलती है (ब्राउज़र द्वारा थोपी गई सीमाएँ), मोबाइल पर करीब 1 GB, और कोई सीधा डिस्क एक्सेस नहीं। हर चीज़ नेटवर्क के ज़रिए आती है। आपको एक ऐसा आर्किटेक्चर चाहिए जो दिखने वाली दुनिया को मेमोरी में रखे जबकि खिलाड़ी जिस दिशा में बढ़ रहा है उससे ठीक आगे का कंटेंट स्ट्रीम करे।</p>
<h3 id="चंक-आधारित-वर्ल्ड-ग्रिड" tabindex="-1">चंक-आधारित वर्ल्ड ग्रिड <a class="header-anchor" href="#चंक-आधारित-वर्ल्ड-ग्रिड" aria-label="Permalink to &quot;चंक-आधारित वर्ल्ड ग्रिड&quot;"></a></h3>
<p>Skyrim के सेल सिस्टम की तरह, दुनिया को चंक्स के एक नियमित ग्रिड में बाँटें। हर चंक एक स्वतंत्र इकाई है जिसे अलग से लोड, रेंडर, और अनलोड किया जा सकता है।</p>
<p><strong>चंक का आकार मायने रखता है।</strong> बहुत छोटा हो तो आप लगातार ऊँचे ओवरहेड के साथ लोड/अनलोड करते रहते हैं। बहुत बड़ा हो तो हर चंक डाउनलोड होने में बहुत समय लेता है। आम ब्रॉडबैंड कनेक्शन वाले एक ब्राउज़र वर्ल्ड के लिए:</p>
<ul>
<li>ज़मीनी स्तर पर 64x64 मीटर चंक्स</li>
<li>हर चंक में होता है: हाइटमैप पैच (2-4 KB), टेक्सचर स्प्लैट मैप (16-32 KB कम्प्रेस्ड), इंस्टैंस्ड रेफ़ के रूप में स्टैटिक मेश (1-50 KB इंस्टैंस डेटा), क्रिएटर द्वारा रखे गए ऑब्जेक्ट एक मेनिफ़ेस्ट के रूप में (1-10 KB)</li>
<li>लोड रेडियस: पूरी डिटेल पर 5x5 चंक्स (320m दृश्य), मध्यम LOD पर 9x9, केवल-टेरेन पर 17x17</li>
<li>लक्ष्य: हर चंक का पूरी-डिटेल डेटा 200 KB से कम, ताकि एक 5x5 मोहल्ला 5 MB से कम हो</li>
</ul>
<h3 id="प्रोग्रेसिव-लोडिंग-पाइपलाइन" tabindex="-1">प्रोग्रेसिव लोडिंग पाइपलाइन <a class="header-anchor" href="#प्रोग्रेसिव-लोडिंग-पाइपलाइन" aria-label="Permalink to &quot;प्रोग्रेसिव लोडिंग पाइपलाइन&quot;"></a></h3>
<p>एक चंक के बारे में सब कुछ एक साथ लोड न करें। एक प्रायोरिटी क्यू उपयोग करें:</p>
<ol>
<li><strong>पहले टेरेन ज्यामिति</strong> (केवल हाइटमैप, प्रति चंक 2-4 KB)। खिलाड़ी 100ms के भीतर ज़मीन देखता है।</li>
<li><strong>टेरेन टेक्सचर</strong> (स्प्लैट मैप, पहले कम-रिज़ॉल्यूशन फिर अपग्रेड)। ज़मीन में 200ms के भीतर रंग आता है।</li>
<li><strong>बड़ी संरचनाएँ</strong> (इमारतें, बड़ी चट्टानें)। सिल्हूट 500ms के भीतर दिखते हैं।</li>
<li><strong>डिटेल ऑब्जेक्ट</strong> (फोलिएज, छोटे प्रॉप, क्रिएटर आइटम)। दुनिया 1-2 सेकंड में भरती है।</li>
<li><strong>हाई-रेज़ टेक्सचर</strong> आख़िर में अपग्रेड होते हैं। अगर किसी दूर की इमारत के टेक्सचर को एक अतिरिक्त सेकंड लगे तो किसी को पता नहीं चलता।</li>
</ol>
<p>यह इस बात से मेल खाता है कि मानव आँख कैसे काम करती है। हम लापता ज़मीन और लापता बड़ी संरचनाएँ नोटिस करते हैं। हम लापता घास नोटिस नहीं करते।</p>
<h3 id="मेमोरी-मैनेजमेंट" tabindex="-1">मेमोरी मैनेजमेंट <a class="header-anchor" href="#मेमोरी-मैनेजमेंट" aria-label="Permalink to &quot;मेमोरी मैनेजमेंट&quot;"></a></h3>
<p>ब्राउज़र मेमोरी सीमित है और गार्बेज कलेक्टर आपका दुश्मन है। एक अकेला GC पॉज़ एक फ़्रेम के लिए आपको 60fps से 10fps तक गिरा सकता है।</p>
<p><strong>ऑब्जेक्ट पूलिंग</strong> अनिवार्य है। आम ऑब्जेक्ट (पेड़, चट्टान, घास के पैच) के लिए पूल पहले से आवंटित करें और चंक्स के लोड/अनलोड होने पर उन्हें रीसायकल करें। हॉट पाथ में कभी नए <code>THREE.Mesh</code> या <code>BABYLON.Mesh</code> इंस्टैंस न बनाएँ। इसके बजाय पूल किए गए ऑब्जेक्ट पर ज्यामिति और मटेरियल रेफ़रेंस स्वैप करें।</p>
<p><strong>टेक्सचर एटलस</strong> ड्रॉ कॉल और मेमोरी फ़्रैगमेंटेशन दोनों कम करते हैं। सभी टेरेन टेक्सचर को कुछ बड़े एटलस में पैक करें। क्रिएटर-अपलोडेड टेक्सचर को सर्वर पर प्रति-चंक एटलस में पैक करें और उन्हें एकल छवियों के रूप में स्ट्रीम करें।</p>
<p><strong>ज्यामिति कम्प्रेशन</strong> Draco या Meshopt के साथ डाउनलोड आकार को 5-10x कम करता है और डीकम्प्रेशन एक Web Worker पर चलता है ताकि यह मेन थ्रेड को ब्लॉक न करे। खासकर टेरेन के लिए, क्वांटाइज़ किए गए हाइटमैप (सरल डेल्टा एन्कोडिंग के साथ कम्प्रेस्ड 16-बिट मान) किसी भी सामान्य-उद्देश्य मेश फ़ॉर्मेट से छोटे होते हैं।</p>
<p><strong>ArrayBuffer ओनरशिप ट्रांसफ़र</strong> वर्कर और मेन थ्रेड के बीच कॉपी करने से बचाता है। जब एक वर्कर एक मेश डीकम्प्रेस करता है, तो ट्रांसफ़रेबल ऑब्जेक्ट के साथ <code>postMessage</code> का उपयोग करके बफ़र को बिना किसी कॉपी के मेन थ्रेड पर ट्रांसफ़र करें।</p>
<h3 id="एसेट-डिलीवरी" tabindex="-1">एसेट डिलीवरी <a class="header-anchor" href="#एसेट-डिलीवरी" aria-label="Permalink to &quot;एसेट डिलीवरी&quot;"></a></h3>
<p>स्टैटिक वर्ल्ड डेटा के लिए <strong>एज कैशिंग के साथ CDN</strong>। टेरेन चंक्स, बेस मेश, और टेक्सचर एटलस जो अक्सर नहीं बदलते उन्हें आक्रामक रूप से कैश किया जाना चाहिए (Cache-Control: max-age=31536000, immutable)।</p>
<p><strong>कंटेंट-एड्रेस्ड स्टोरेज</strong> का मतलब है हर एसेट वर्शन को उसके URL में एक अनोखा हैश मिलता है। जब कोई क्रिएटर एक चंक संशोधित करता है, तो नए वर्शन को नया हैश मिलता है और पुराना अब भी उसे देख रहे किसी के लिए कैश में रहता है। किसी कैश इनवैलिडेशन की ज़रूरत नहीं।</p>
<p>Basis Universal कम्प्रेशन के साथ <strong>KTX2 टेक्सचर</strong>। ये उस GPU फ़ॉर्मेट में डीकम्प्रेस होते हैं जो डिवाइस सपोर्ट करता है (BC7, ASTC, ETC2, या RGBA फ़ॉलबैक)। एक 1024x1024 टेरेन टेक्सचर अनकम्प्रेस्ड 4 MB से KTX2 में करीब 150 KB हो जाता है। हज़ारों अनोखे टेक्सचर वाली दुनिया के लिए, यह कम्प्रेशन ही व्यवहार्य और अव्यवहार्य के बीच का फ़र्क़ है।</p>
<p>सभी 3D एसेट के लिए <strong>glTF Binary (GLB)</strong>। यह 3D का JPEG है। हर ब्राउज़र इंजन इसे लोड करता है, यह कॉम्पैक्ट है, और यह एक ही फ़ाइल में टेक्सचर, मटेरियल, और एनिमेशन एम्बेड कर सकता है। मेश कम्प्रेशन के लिए Draco या Meshopt एक्सटेंशन उपयोग करें। क्रिएटर-अपलोडेड एसेट दुनिया में आने से पहले सर्वर-साइड पर ऑप्टिमाइज़्ड GLB में प्रोसेस होते हैं।</p>
<h2 id="मल्टीप्लेयर-नेटवर्किंग" tabindex="-1">मल्टीप्लेयर नेटवर्किंग <a class="header-anchor" href="#मल्टीप्लेयर-नेटवर्किंग" aria-label="Permalink to &quot;मल्टीप्लेयर नेटवर्किंग&quot;"></a></h2>
<p>सैकड़ों क्रिएटर्स को एक ही दुनिया में रखने के लिए एक ऐसा नेटवर्किंग आर्किटेक्चर चाहिए जो रियल-टाइम मूवमेंट, स्थायी वर्ल्ड स्टेट, और क्रिएटर एडिट को बिना पिघले संभाले।</p>
<h3 id="सर्वर-आर्किटेक्चर" tabindex="-1">सर्वर आर्किटेक्चर <a class="header-anchor" href="#सर्वर-आर्किटेक्चर" aria-label="Permalink to &quot;सर्वर आर्किटेक्चर&quot;"></a></h3>
<p>वर्ल्ड स्टेट के लिए <strong>अथॉरिटेटिव सर्वर</strong>। ब्राउज़र अविश्वसनीय है। सभी सार्थक क्रियाएँ (ऑब्जेक्ट रखना, टेरेन संशोधित करना, चंक्स के बीच चलना) सर्वर-साइड पर सत्यापित होती हैं। क्लाइंट स्थानीय रूप से भविष्यवाणी करता है और सर्वर स्टेट के साथ मेल बैठाता है।</p>
<p><strong>स्थानिक शार्डिंग</strong> दुनिया को सर्वर इंस्टैंस में बाँटती है। हर शार्ड वर्ल्ड ग्रिड के एक आयताकार क्षेत्र का मालिक होता है। जैसे-जैसे खिलाड़ी का घनत्व बदलता है, शार्ड बँट या मिल सकते हैं। EVE Online एक ही ब्रह्मांड में हज़ारों खिलाड़ियों को इसी तरह संभालता है, और छोटे पैमाने पर यही सिद्धांत है।</p>
<p>एक क्रिएटर वर्ल्ड के लिए जहाँ ज़्यादातर इंटरैक्शन स्थानीय होते हैं (आप अपने इलाके में बना रहे हैं, आपके पड़ोसी इसे देख सकते हैं), स्थानिक शार्डिंग स्वाभाविक रूप से काम करती है। एक शार्ड सीमा पर खड़ा खिलाड़ी दोनों शार्ड का कंटेंट देखता है, जिसके लिए क्रॉस-शार्ड विज़िबिलिटी क्वेरी चाहिए, लेकिन यह एक हल हो चुकी समस्या है।</p>
<p><strong>सर्वर के लिए टेक्नोलॉजी विकल्प:</strong></p>
<table tabindex="0">
<thead>
<tr>
<th>टेक्नोलॉजी</th>
<th>खूबियाँ</th>
<th>उपयोग का मामला</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Cloudflare Durable Objects</strong></td>
<td>एज-डिप्लॉयड, ऑटो-स्केलिंग, अंतर्निहित स्थायित्व, WebSocket सपोर्ट</td>
<td>वर्ल्ड शार्ड स्टेट, प्रति-चंक अथॉरिटी</td>
</tr>
<tr>
<td><strong>Hathora / Rivet</strong></td>
<td>मैनेज्ड गेम सर्वर होस्टिंग, DDoS सुरक्षा, वैश्विक डिप्लॉयमेंट</td>
<td>डेडिकेटेड गेम सर्वर इंस्टैंस</td>
</tr>
<tr>
<td><strong>Colyseus</strong></td>
<td>Node.js के लिए ओपन-सोर्स गेम सर्वर फ़्रेमवर्क, स्कीमा-आधारित स्टेट सिंक</td>
<td>स्टेट डिफ़िंग के साथ रूम-आधारित मल्टीप्लेयर</td>
</tr>
<tr>
<td><strong>PartyKit</strong></td>
<td>एज-डिप्लॉयड, WebSocket + WebRTC, Cloudflare Workers आधारित</td>
<td>रियल-टाइम सहयोग, हल्का मल्टीप्लेयर</td>
</tr>
<tr>
<td><strong>कस्टम Rust/Go</strong></td>
<td>अधिकतम नियंत्रण, प्रति इंस्टैंस सबसे अच्छी परफ़ॉर्मेंस</td>
<td>कम-लेटेंसी भौतिकी चाहने वाले उच्च-घनत्व शार्ड</td>
</tr>
</tbody>
</table>
<p><strong>हमारा संदर्भ (Cloudflare इन्फ़्रास्ट्रक्चर):</strong> Durable Objects स्वाभाविक रूप से फ़िट होते हैं। हर वर्ल्ड चंक एक Durable Object बन जाता है जो उस चंक के कंटेंट के लिए अथॉरिटेटिव स्टेट रखता है। खिलाड़ी अपने मौजूदा चंक के लिए ज़िम्मेदार Durable Object से WebSocket के ज़रिए कनेक्ट होते हैं। जब वे किसी सटे हुए चंक में जाते हैं, तो वे उस चंक के DO से कनेक्ट होते हैं। Durable Objects स्टेट को अपने आप डिस्क पर स्थायी बनाते हैं, इसलिए वर्ल्ड डेटा रीस्टार्ट से बच जाता है।</p>
<h3 id="क्लाइंट-सर्वर-संचार" tabindex="-1">क्लाइंट-सर्वर संचार <a class="header-anchor" href="#क्लाइंट-सर्वर-संचार" aria-label="Permalink to &quot;क्लाइंट-सर्वर संचार&quot;"></a></h3>
<p>विश्वसनीय क्रमबद्ध संदेशों (चैट, वर्ल्ड एडिट, इन्वेंट्री, गेम स्टेट) के लिए <strong>WebSocket</strong>। खिलाड़ी जिस सक्रिय शार्ड को देख सकता है उसके प्रति एक कनेक्शन (आम तौर पर 1-4 कनेक्शन)।</p>
<p>अविश्वसनीय अक्रमबद्ध संदेशों (खिलाड़ी की स्थिति, एनिमेशन, क्षणिक प्रभाव) के लिए <strong>WebRTC DataChannel</strong>। WebRTC पीयर-टू-पीयर सक्षम है, लेकिन कई खिलाड़ियों वाली दुनिया के लिए, आप N2 कनेक्शन से बचने के लिए इसे एक SFU (Selective Forwarding Unit) के ज़रिए चलाएँगे। Cloudflare Calls या LiveKit SFU के रूप में काम कर सकते हैं।</p>
<p><strong>स्टेट सिंक्रोनाइज़ेशन</strong> डेल्टा कम्प्रेशन उपयोग करता है। सर्वर ट्रैक करता है कि हर क्लाइंट ने क्या देखा है और केवल बदलाव भेजता है। एक क्रिएटर वर्ल्ड के लिए, यह खास तौर पर अहम है क्योंकि वर्ल्ड स्टेट (कौन से ऑब्जेक्ट मौजूद हैं, वे कहाँ हैं, उनके क्या गुण हैं) खिलाड़ी की स्थितियों से बहुत कम बार बदलता है। आप वर्ल्ड स्टेट अपडेट 2-5 Hz पर भेज सकते हैं जबकि खिलाड़ी की स्थितियाँ 20-30 Hz पर अपडेट होती हैं।</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> WorldChunkState</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  version</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  terrain</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TerrainPatch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  objects</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> PlacedObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[];</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  creators</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CreatorPresence</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[];</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> DeltaUpdate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  chunkId</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  fromVersion</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  toVersion</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  addedObjects</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> PlacedObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[];</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  removedObjectIds</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[];</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  modifiedObjects</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Partial</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">PlacedObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>[];</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">  creatorMoves</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> CreatorPosition</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[];</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><h3 id="क्रिएटर-एडिट-के-लिए-कॉन्फ़्लिक्ट-रिज़ॉल्यूशन" tabindex="-1">क्रिएटर एडिट के लिए कॉन्फ़्लिक्ट रिज़ॉल्यूशन <a class="header-anchor" href="#क्रिएटर-एडिट-के-लिए-कॉन्फ़्लिक्ट-रिज़ॉल्यूशन" aria-label="Permalink to &quot;क्रिएटर एडिट के लिए कॉन्फ़्लिक्ट रिज़ॉल्यूशन&quot;"></a></h3>
<p>जब दो क्रिएटर एक साथ एक ही इलाके को संशोधित करते हैं, तो आपको एक कॉन्फ़्लिक्ट रिज़ॉल्यूशन रणनीति चाहिए। यहीं रियल-टाइम सहयोग मॉडलों के बीच का चुनाव मायने रखता है।</p>
<p><strong>Last-write-wins</strong> सबसे सरल है। किसी भी समय हर ऑब्जेक्ट का एक मालिक होता है। अगर आप एक इमारत एडिट कर रहे हैं, तो जब तक आप उसे रिलीज़ न करें तब तक कोई और उसे एडिट नहीं कर सकता। सरल, कोई कॉन्फ़्लिक्ट नहीं, लेकिन सहयोग को सीमित करता है।</p>
<p><strong>Operational Transform (OT)</strong> वह है जो Google Docs उपयोग करता है। ऑपरेशन समवर्ती ऑपरेशन के विरुद्ध रूपांतरित होते हैं ताकि एक सुसंगत नतीजा निकले। यह टेक्स्ट के लिए काम करता है लेकिन 3D स्थानिक ऑपरेशन के लिए जटिल हो जाता है। Figma अपने 2D कैनवस के लिए इसका एक रूप उपयोग करता है।</p>
<p><strong>CRDTs (Conflict-free Replicated Data Types)</strong> समवर्ती एडिट की अनुमति देते हैं जो बिना समन्वय के हमेशा एक ही स्टेट पर मिलते हैं। अलग ऑब्जेक्ट वाली दुनिया के लिए (हर एक ID और गुणों के साथ), प्रति गुण एक Last-Writer-Wins Register ऑब्जेक्ट संग्रह के लिए एक Add-Wins Set के साथ मिलकर आपको स्वचालित अभिसरण देता है। Yjs और Automerge JavaScript के लिए प्रोडक्शन-क्वालिटी CRDT लाइब्रेरी हैं।</p>
<p><strong>हमारी सिफ़ारिश:</strong> वर्ल्ड ऑब्जेक्ट स्टेट (क्या मौजूद है, कहाँ है, क्या गुण हैं) के लिए CRDTs उपयोग करें और स्थानिक सत्यापन (एक ही जगह दो ऑब्जेक्ट नहीं, ऑब्जेक्ट वर्ल्ड सीमा के भीतर रहें) के लिए अथॉरिटेटिव सर्वर। CRDT सहयोग संभालता है। सर्वर भौतिकी संभालता है।</p>
<h3 id="स्केल-संभालना-कितने-खिलाड़ी" tabindex="-1">स्केल संभालना: कितने खिलाड़ी? <a class="header-anchor" href="#स्केल-संभालना-कितने-खिलाड़ी" aria-label="Permalink to &quot;स्केल संभालना: कितने खिलाड़ी?&quot;"></a></h3>
<p>ब्राउज़र MMO आज मौजूद हैं। Hordes.io एक ब्राउज़र में एक सीन में 200+ खिलाड़ी चलाता है। BrowserQuest (Mozilla का प्रयोग) एक सरल टाइल-आधारित दुनिया के साथ सैकड़ों संभालता था। सवाल यह नहीं है कि क्या ब्राउज़र मल्टीप्लेयर संभाल सकते हैं, बल्कि यह है कि खिलाड़ियों की संख्या बढ़ने पर आप कितनी विज़ुअल फ़िडेलिटी बनाए रख सकते हैं।</p>
<p><strong>खिलाड़ी रेंडरिंग बजट:</strong> हर दिखने वाले खिलाड़ी को एक मेश, एनिमेशन, और संभवतः क्रिएटर-कस्टमाइज़्ड रूप चाहिए। 60fps पर, आपके पास प्रति फ़्रेम 16ms है। एक उचित बजट:</p>
<ul>
<li>पास की दूरी पर 50 पूरी तरह एनिमेटेड खिलाड़ी: ~2ms एनिमेशन + स्किनिंग</li>
<li>मध्यम दूरी पर 200 खिलाड़ी (सरल एनिमेशन, इंस्टैंस्ड): ~1ms</li>
<li>मिनीमैप पर डॉट/आइकन के रूप में 500+ खिलाड़ी: नगण्य</li>
</ul>
<p>यह आपको एक दृश्य में ~250 खिलाड़ियों की दिखने वाली आबादी देता है, जो एक क्रिएटर वर्ल्ड के लिए पर्याप्त से ज़्यादा है। World of Warcraft की राजधानियाँ शायद ही कभी एक दृश्य में 200 से ज़्यादा कैरेक्टर रेंडर करती हैं।</p>
<p><strong>नेटवर्क बजट:</strong> हर खिलाड़ी 20 Hz पर स्थिति भेजते हुए करीब 40 बाइट * 20 = 800 बाइट/सेकंड है। दृश्य में 200 खिलाड़ी: 160 KB/s स्थिति डेटा। वर्ल्ड स्टेट, चैट, और क्रिएटर क्रियाएँ जोड़ें, और आप प्रति क्लाइंट 200-500 KB/s देख रहे हैं। ब्रॉडबैंड क्षमताओं के भीतर अच्छी तरह है लेकिन कम्प्रेस करना सार्थक है।</p>
<h2 id="टेरेन-सिस्टम" tabindex="-1">टेरेन सिस्टम <a class="header-anchor" href="#टेरेन-सिस्टम" aria-label="Permalink to &quot;टेरेन सिस्टम&quot;"></a></h2>
<p>टेरेन किसी भी ओपन वर्ल्ड की नींव है। यह वह जगह भी है जहाँ ब्राउज़र की पाबंदियाँ सबसे ज़ोर से लगती हैं क्योंकि टेरेन को हर जगह और हमेशा दिखाई देना चाहिए।</p>
<h3 id="हाइटमैप-आधारित-टेरेन" tabindex="-1">हाइटमैप-आधारित टेरेन <a class="header-anchor" href="#हाइटमैप-आधारित-टेरेन" aria-label="Permalink to &quot;हाइटमैप-आधारित टेरेन&quot;"></a></h3>
<p>Skyrim की तरह, एक हाइटमैप उपयोग करें। ऊँचाई मानों का एक 2D ग्रिड एक वर्टेक्स शेडर के ज़रिए 3D टेरेन जनरेट करता है। यह मनमाने मेश टेरेन से नाटकीय रूप से ज़्यादा कॉम्पैक्ट है।</p>
<p>16-बिट परिशुद्धता पर एक 4096x4096 हाइटमैप अनकम्प्रेस्ड 32 MB है। लेकिन आप इसे कभी एक साथ लोड नहीं करते। हर 64m चंक हाइटमैप का एक 65x65 सेक्शन उपयोग करता है (16-बिट पर करीब 8.4 KB)। उसे डेल्टा एन्कोडिंग और zlib से कम्प्रेस करें और आप प्रति चंक 2 KB से कम हैं।</p>
<p><strong>टेक्सचर स्प्लैटिंग</strong> एक ब्लेंड मैप का उपयोग करके कई टेरेन मटेरियल (घास, चट्टान, मिट्टी, रेत) पेंट करता है। हर चंक के पास एक 4-चैनल RGBA स्प्लैट मैप होता है जहाँ हर चैनल एक मटेरियल का ब्लेंड वज़न नियंत्रित करता है। प्रति स्प्लैट मैप 4 टेक्सचर और प्रति चंक स्प्लैट मैप बदलने की क्षमता के साथ, आपको पूरी दुनिया में विज़ुअल विविधता मिलती है।</p>
<p>आधुनिक टेरेन रेंडरर <strong>वर्चुअल टेक्सचरिंग</strong> (जिसे मेगाटेक्सचर भी कहते हैं, Rage में id Software की टेक से) उपयोग करते हैं। रनटाइम पर स्प्लैटिंग के बजाय, आप ब्लेंडेड टेरेन टेक्सचर को उच्च रिज़ॉल्यूशन पर पहले से रेंडर करते हैं और कैमरा हिलने पर उसकी टाइल्स स्ट्रीम करते हैं। यह रनटाइम परफ़ॉर्मेंस के लिए स्टोरेज का व्यापार करता है। WebGPU के कंप्यूट शेडर वह फ़ीडबैक और पेज-टेबल मैनेजमेंट संभाल सकते हैं जो वर्चुअल टेक्सचरिंग को चाहिए।</p>
<h3 id="क्लिपमैप-या-जियोक्लिपमैपिंग" tabindex="-1">क्लिपमैप या जियोक्लिपमैपिंग <a class="header-anchor" href="#क्लिपमैप-या-जियोक्लिपमैपिंग" aria-label="Permalink to &quot;क्लिपमैप या जियोक्लिपमैपिंग&quot;"></a></h3>
<p>एक ब्राउज़र में बड़े टेरेन को रेंडर करने के लिए, CDLOD (C. Dick's LOD) या जियोक्लिपमैपिंग तरीका अच्छी तरह काम करता है। टेरेन को कैमरे के चारों ओर संकेंद्रित वलयों के एक सेट के रूप में रेंडर किया जाता है, हर वलय पिछले से आधे रिज़ॉल्यूशन पर। कैमरे के पास आप पूरी-रिज़ॉल्यूशन टेरेन देखते हैं। दूर आप एक मोटा वर्शन देखते हैं। ट्रांज़िशन सहज होते हैं क्योंकि ज्यामिति स्तरों के बीच मॉर्फ़ होती है।</p>
<p>यह तकनीक GPU-अनुकूल है (प्रति वलय एक ड्रॉ कॉल), स्थिर मेमोरी के साथ अनंत टेरेन संभालती है, और WebGL 2 में काम करती है। Flight Simulator और ज़्यादातर आधुनिक ओपन-वर्ल्ड गेम इसी का किसी स्तर पर उपयोग करते हैं।</p>
<h3 id="क्रिएटर-संशोधित-टेरेन" tabindex="-1">क्रिएटर-संशोधित टेरेन <a class="header-anchor" href="#क्रिएटर-संशोधित-टेरेन" aria-label="Permalink to &quot;क्रिएटर-संशोधित टेरेन&quot;"></a></h3>
<p>अगर क्रिएटर्स टेरेन गढ़ सकें, तो आपको बेस हाइटमैप के ऊपर संशोधन स्टोर और स्ट्रीम करने का एक तरीका चाहिए। दो तरीके:</p>
<p><strong>डेल्टा हाइटमैप</strong> बेस टेरेन और संशोधित टेरेन के बीच के अंतर को स्टोर करते हैं। दुनिया का ज़्यादातर हिस्सा असंशोधित है (डेल्टा शून्य हैं), इसलिए यह बेहद अच्छी तरह कम्प्रेस होता है। एक चंक लोड करते समय, बेस के ऊपर डेल्टा लागू करें।</p>
<p>ज़्यादा नाटकीय संशोधनों (गुफाएँ, ओवरहैंग, मेहराब) के लिए <strong>वॉक्सेल ओवरले</strong>। एक हाइटमैप ऐसे टेरेन का प्रतिनिधित्व नहीं कर सकता जहाँ एक बिंदु पर दो ऊँचाइयाँ हों। केवल संशोधित चंक्स में स्टोर किया गया एक विरल वॉक्सेल ग्रिड यह संभालता है। मार्चिंग क्यूब्स या ड्यूल कंटूरिंग मेश जनरेट करता है। यह ज़्यादा महँगा है लेकिन Minecraft-स्टाइल टेरेन एडिटिंग सक्षम करता है।</p>
<h2 id="ai-संचालित-वर्ल्ड-जनरेशन" tabindex="-1">AI-संचालित वर्ल्ड जनरेशन <a class="header-anchor" href="#ai-संचालित-वर्ल्ड-जनरेशन" aria-label="Permalink to &quot;AI-संचालित वर्ल्ड जनरेशन&quot;"></a></h2>
<p>यहीं Cinevva की मौजूदा जनरेटिव AI क्षमताएँ एक फ़ोर्स मल्टीप्लायर बन जाती हैं। हर चट्टान और पेड़ को हाथ से बनाने के बजाय, क्रिएटर्स AI को दुनिया भरने के लिए निर्देशित कर सकते हैं।</p>
<h3 id="न्यूरल-फ़ील्ड-के-साथ-टेरेन-जनरेशन" tabindex="-1">न्यूरल फ़ील्ड के साथ टेरेन जनरेशन <a class="header-anchor" href="#न्यूरल-फ़ील्ड-के-साथ-टेरेन-जनरेशन" aria-label="Permalink to &quot;न्यूरल फ़ील्ड के साथ टेरेन जनरेशन&quot;"></a></h3>
<p>न्यूरल टेरेन जनरेशन पर हालिया रिसर्च (NVIDIA का GET3D, Terragen का न्यूरल नेटवर्क मोड, और &quot;Terrain Generation Using Procedural Models&quot; जैसे पेपर) दिखाती है कि प्रशिक्षित मॉडल टेक्स्ट प्रॉम्प्ट या स्केच इनपुट से विश्वसनीय टेरेन जनरेट कर सकते हैं। एक क्रिएटर एक मोटा तटरेखा बना सकता है और कह सकता है &quot;जंगली पहाड़ियाँ एक चट्टानी किनारे से मिलती हुई&quot; और उसे उपयुक्त अपरदन, वनस्पति मास्क, और मटेरियल असाइनमेंट के साथ एक हाइटमैप मिल सकता है।</p>
<p>ब्राउज़र डिलीवरी के लिए, आप जनरेशन सर्वर-साइड चलाएँगे और नतीजा स्ट्रीम करेंगे। जनरेशन मॉडल को ब्राउज़र में चलने की ज़रूरत नहीं। यह हाइटमैप और स्प्लैट मैप पैदा करता है जिन्हें ब्राउज़र मानक टेरेन पाइपलाइन के साथ रेंडर कर सकता है।</p>
<h3 id="_3d-एसेट-जनरेशन" tabindex="-1">3D एसेट जनरेशन <a class="header-anchor" href="#_3d-एसेट-जनरेशन" aria-label="Permalink to &quot;3D एसेट जनरेशन&quot;"></a></h3>
<p><a href="https://github.com/Tencent-Hunyuan/HunyuanVideo" target="_blank" rel="noreferrer">Hunyuan3D</a>, Meshy, Tripo, और Rodin जैसे मॉडल टेक्स्ट या छवियों से 3D मेश जनरेट कर सकते हैं। एक क्रिएटर वर्ल्ड के लिए वर्कफ़्लो:</p>
<ol>
<li>क्रिएटर बताता या स्केच करता है कि वह क्या चाहता है (&quot;एक काई से ढका पत्थर का मेहराब&quot; या &quot;एक फ़्यूचरिस्टिक लैंप पोस्ट&quot;)</li>
<li>सर्वर जनरेशन मॉडल चलाता है, एक हाई-पॉली मेश पैदा करता है</li>
<li>सर्वर ऑटो-प्रोसेस करता है: वेब-अनुकूल पॉली संख्या तक घटाना, LOD जनरेट करना, टेक्सचर को एटलस में बेक करना, Draco कम्प्रेशन के साथ GLB के रूप में एक्सपोर्ट करना</li>
<li>एसेट क्रिएटर की इन्वेंट्री में दिखता है, दुनिया में रखने के लिए तैयार</li>
</ol>
<p>यह पाइपलाइन Cinevva पर पहले से टुकड़ों में मौजूद है। कमी वाला हिस्सा LOD/ऑप्टिमाइज़ेशन चरण और वर्ल्ड प्लेसमेंट सिस्टम है।</p>
<h3 id="प्रोसीजरल-पॉपुलेशन" tabindex="-1">प्रोसीजरल पॉपुलेशन <a class="header-anchor" href="#प्रोसीजरल-पॉपुलेशन" aria-label="Permalink to &quot;प्रोसीजरल पॉपुलेशन&quot;"></a></h3>
<p>AI-जनरेटेड एसेट के साथ भी, एक जंगल में हर पेड़ को मैन्युअल रूप से रखना थका देने वाला है। प्रोसीजरल स्कैटरिंग नियम क्रिएटर्स को ज़ोन परिभाषित करने देते हैं (&quot;यह इलाका घना जंगल है&quot;, &quot;यह ढलान चट्टानी मलबा है&quot;) और सिस्टम उन्हें अपने आप भर देता है।</p>
<p>GPU कंप्यूट शेडर ब्राउज़र में स्कैटरिंग चला सकते हैं। एक डेंसिटी मैप और नियमों के एक सेट (न्यूनतम दूरी, ढलान बाधाएँ, ऊँचाई रेंज) को देखते हुए, एक कंप्यूट पास एक पूरे चंक के लिए इंस्टैंस स्थितियाँ 1ms से कम में जनरेट करता है। डेंसिटी मैप संशोधित करें, और फोलिएज तुरंत फिर से जनरेट हो जाता है।</p>
<h2 id="एंटिटी-कंपोनेंट-सिस्टम-ecs" tabindex="-1">एंटिटी कंपोनेंट सिस्टम (ECS) <a class="header-anchor" href="#एंटिटी-कंपोनेंट-सिस्टम-ecs" aria-label="Permalink to &quot;एंटिटी कंपोनेंट सिस्टम (ECS)&quot;"></a></h2>
<p>हज़ारों ऑब्जेक्ट वाली एक ओपन वर्ल्ड को एक कुशल एंटिटी मैनेजमेंट सिस्टम चाहिए। ECS पैटर्न (Unity के DOTS और Bevy के बाद से गेम इंजन में लोकप्रिय) JavaScript पर अच्छी तरह बैठता है।</p>
<p><strong>bitECS</strong> JavaScript के लिए एक उच्च-परफ़ॉर्मेंस ECS है जो टाइप्ड ऐरे और बिटवाइज़ ऑपरेशन उपयोग करता है। एंटिटी सादे पूर्णांक हैं। कंपोनेंट सतत टाइप्ड ऐरे हैं (प्रति कंपोनेंट प्रकार एक)। सिस्टम ऐरे पर क्रमिक रूप से इटरेट करते हैं, जो JavaScript में भी कैश-अनुकूल है।</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { createWorld, defineComponent, Types, defineQuery, addEntity, addComponent } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'bitecs'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Position</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> defineComponent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ x: Types.f32, y: Types.f32, z: Types.f32 });</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Velocity</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> defineComponent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ x: Types.f32, y: Types.f32, z: Types.f32 });</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> ChunkRef</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> defineComponent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ chunkX: Types.i16, chunkZ: Types.i16 });</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> world</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> createWorld</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> movingQuery</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> defineQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">([Position, Velocity]);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> movementSystem</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">world</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> entities</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> movingQuery</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(world);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; i </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&#x3C;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> entities.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">length</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; i</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">++</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> eid</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> entities[i];</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Position.x[eid] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Velocity.x[eid] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> dt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Position.y[eid] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Velocity.y[eid] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> dt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    Position.z[eid] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Velocity.z[eid] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> dt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> world;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>एक ओपन वर्ल्ड के लिए, ECS सब कुछ संभालता है: खिलाड़ी कैरेक्टर, रखे गए ऑब्जेक्ट, NPC, पार्टिकल, ट्रिगर, और वर्ल्ड प्रॉप। जब एक चंक अनलोड होता है, तो उसकी एंटिटी ECS से हटा दी जाती हैं। जब एक चंक लोड होता है, तो एंटिटी जोड़ी जाती हैं। ECS को स्थानिक संगठन की परवाह नहीं। यह बस कंपोनेंट प्रोसेस करता है।</p>
<h2 id="भौतिकी" tabindex="-1">भौतिकी <a class="header-anchor" href="#भौतिकी" aria-label="Permalink to &quot;भौतिकी&quot;"></a></h2>
<p>WebAssembly की बदौलत ब्राउज़र भौतिकी हैरान कर देने वाले ढंग से अच्छी हो गई है।</p>
<h3 id="rapier-rust-wasm" tabindex="-1">Rapier (Rust -&gt; Wasm) <a class="header-anchor" href="#rapier-rust-wasm" aria-label="Permalink to &quot;Rapier (Rust -&gt; Wasm)&quot;"></a></h3>
<p>Rapier Rust में लिखा गया एक भौतिकी इंजन है जो WebAssembly में कम्पाइल होता है। यह रिजिड बॉडी, कोलाइडर, जॉइंट, कैरेक्टर कंट्रोलर, और रेकास्टिंग संभालता है। आम गेम वर्कलोड के लिए परफ़ॉर्मेंस नेटिव Bullet/PhysX के 2-3x के भीतर है।</p>
<p>एक ओपन वर्ल्ड के लिए, Rapier संभालता है:</p>
<ul>
<li>खिलाड़ी कैरेक्टर कंट्रोलर (टेरेन पर चलना, सीढ़ियाँ चढ़ना, ढलानों पर फिसलना)</li>
<li>ऑब्जेक्ट-से-ऑब्जेक्ट टकराव (रखे गए ऑब्जेक्ट, प्रोजेक्टाइल)</li>
<li>खिलाड़ी इंटरैक्शन के लिए रेकास्टिंग (चुनने के लिए किसी ऑब्जेक्ट पर क्लिक करना)</li>
<li>ट्रिगर वॉल्यूम (किसी इलाके में घुसना, एक इवेंट ट्रिगर करना)</li>
</ul>
<p>Rapier एक Web Worker में चलता है, इसलिए भौतिकी सिमुलेशन रेंडरिंग को ब्लॉक नहीं करता। आप हर फ़्रेम रेंडरर को स्थितियाँ भेजते हैं और बदले में इनपुट इवेंट प्राप्त करते हैं।</p>
<h3 id="havok-for-web-babylon-js-के-ज़रिए" tabindex="-1">Havok for Web (Babylon.js के ज़रिए) <a class="header-anchor" href="#havok-for-web-babylon-js-के-ज़रिए" aria-label="Permalink to &quot;Havok for Web (Babylon.js के ज़रिए)&quot;"></a></h3>
<p>अगर आप Babylon.js के साथ जाते हैं, तो Havok physics एक Wasm मॉड्यूल के रूप में अंतर्निहित आता है। Havok ज़्यादातर AAA गेम (Half-Life 2, Skyrim, Breath of the Wild) के पीछे का भौतिकी इंजन है। Wasm बिल्ड प्रोडक्शन-क्वालिटी का है और Babylon के सीन ग्राफ़ के लिए ऑप्टिमाइज़्ड है।</p>
<h3 id="टेरेन-टकराव" tabindex="-1">टेरेन टकराव <a class="header-anchor" href="#टेरेन-टकराव" aria-label="Permalink to &quot;टेरेन टकराव&quot;"></a></h3>
<p>भौतिकी इंजन को टेरेन के लिए टकराव ज्यामिति चाहिए। पूरे दिखने वाले टेरेन के लिए एक पूरी-रिज़ॉल्यूशन ट्रायमेश जनरेट करना महँगा होगा। इसके बजाय, केवल खिलाड़ी के पास के चंक्स (3x3 या 5x5 निकटतम चंक्स) के लिए टकराव हाइटफ़ील्ड जनरेट करें और बाक़ी सब के लिए सरल टकराव उपयोग करें। Rapier का हाइटफ़ील्ड कोलाइडर बिल्कुल इसी उपयोग के मामले के लिए डिज़ाइन किया गया है।</p>
<h2 id="ऑडियो" tabindex="-1">ऑडियो <a class="header-anchor" href="#ऑडियो" aria-label="Permalink to &quot;ऑडियो&quot;"></a></h2>
<p>ध्वनि एक 3D स्पेस को एक विज़ुअल डेमो से एक जगह में बदल देती है। Web Audio API एक ब्राउज़र में स्थानिक ऑडियो के लिए ज़रूरी सब कुछ देता है।</p>
<p><strong>HRTF के साथ स्थानिक ऑडियो</strong> (Head-Related Transfer Function) ध्वनियों को 3D स्पेस में रखता है। आपकी बाईं ओर का एक झरना ऐसा लगता है जैसे वह आपकी बाईं ओर है। पास जाएँ और वह ज़्यादा तेज़ हो जाता है। किसी इमारत के पीछे जाएँ और वह दबा हुआ हो जाता है (अतिरिक्त प्रोसेसिंग के साथ)।</p>
<p><strong>एम्बिएंस ज़ोन</strong> ऑडियो के लिए टेक्सचर स्प्लैटिंग जैसे काम करते हैं। क्षेत्र परिभाषित करें (जंगल, गुफा, किनारा, शहर) और जैसे-जैसे खिलाड़ी उनके बीच चलता है एम्बिएंट साउंडस्केप क्रॉसफ़ेड करें। Skyrim जंगलों को जीवंत ध्वनि इसी तरह देता है। हवा, पक्षी, सरसराते पत्ते, और दूर के जानवरों की परत लगाएँ। इसमें से कुछ भी जटिल नहीं है। यह सब स्थानिक है।</p>
<p><strong>Web Audio परफ़ॉर्मेंस</strong> दर्जनों एक साथ चलने वाले स्थानिक स्रोतों के लिए काफ़ी अच्छी है। बॉटलनेक आम तौर पर एसेट आकार होता है, प्रोसेसिंग नहीं। कम्प्रेस्ड ऑडियो के लिए Opus या AAC उपयोग करें, लंबे एम्बिएंट ट्रैक स्ट्रीम करें, और छोटे साउंड इफ़ेक्ट (कदमों की आवाज़, इंटरैक्शन) पहले से लोड करें।</p>
<h2 id="पानी-मौसम-और-वातावरण" tabindex="-1">पानी, मौसम, और वातावरण <a class="header-anchor" href="#पानी-मौसम-और-वातावरण" aria-label="Permalink to &quot;पानी, मौसम, और वातावरण&quot;"></a></h2>
<p>हर यादगार ओपन वर्ल्ड में पानी और मौसम होता है। ये सिस्टम मूड परिभाषित करते हैं और दुनिया को जीवंत महसूस कराते हैं। ये एक ब्राउज़र में हैरान कर देने वाले ढंग से हासिल करने योग्य भी हैं।</p>
<h3 id="पानी-की-रेंडरिंग" tabindex="-1">पानी की रेंडरिंग <a class="header-anchor" href="#पानी-की-रेंडरिंग" aria-label="Permalink to &quot;पानी की रेंडरिंग&quot;"></a></h3>
<p>ब्राउज़र 3D में पानी की जटिलता के तीन स्तर हैं, और आप पहले सबसे सरल वाला शिप कर सकते हैं और बाद में अपग्रेड कर सकते हैं।</p>
<p><strong>स्तर 1: रिफ़्लेक्टिव प्लेन।</strong> एक रिफ़्लेक्टिव/रिफ़्रैक्टिव मटेरियल के साथ पानी के स्तर पर एक सपाट मेश। सीन को उल्टा एक टेक्सचर में रेंडर करें (प्लेनर रिफ़्लेक्शन), इसे एक नीली टिंट के साथ ब्लेंड करें, और लहर की गति के लिए स्क्रॉलिंग नॉर्मल मैप जोड़ें। यही Skyrim का बेस वॉटर शेडर करता है। Three.js में, आधिकारिक रेपो में <code>Water</code> उदाहरण यह लागू करता है। Babylon.js में, <code>WaterMaterial</code> इसे बॉक्स से बाहर करता है। लागत: रिफ़्लेक्शन के लिए एक अतिरिक्त रेंडर पास (आधा रिज़ॉल्यूशन ठीक है), साथ ही पानी की सतह ड्रॉ। एक मध्य-श्रेणी GPU पर, यह प्रति फ़्रेम 2-3ms जोड़ता है।</p>
<p><strong>स्तर 2: स्क्रीन-स्पेस रिफ़्लेक्शन + डेप्थ-आधारित प्रभाव।</strong> एक अलग रिफ़्लेक्शन रेंडर पास के बजाय, रिफ़्लेक्शन के लिए मौजूदा फ़्रेम बफ़र सैंपल करें (SSR)। डेप्थ-आधारित कलर अब्ज़ॉर्प्शन जोड़ें (पानी जहाँ गहरा है वहाँ ज़्यादा गहरा है), डेप्थ तुलना का उपयोग करके किनारों पर फ़ोम, और पानी के नीचे के टेरेन पर प्रोजेक्ट किए गए कॉस्टिक। यही The Witcher 3 उपयोग करता है। SSR Three.js के postprocessing स्टैक और Babylon.js की रेंडरिंग पाइपलाइन दोनों में उपलब्ध है। लागत: SSR के लिए 1-2ms, डेप्थ प्रभावों के लिए नगण्य।</p>
<p><strong>स्तर 3: FFT महासागर सिमुलेशन।</strong> खुले महासागर के लिए, GPU पर वेव स्पेक्ट्रा का सिमुलेशन करने के लिए एक Fast Fourier Transform उपयोग करें। Jerry Tessendorf का पेपर &quot;Simulating Ocean Water&quot; (2001) वह नींव है जिसका हर बड़ा गेम इंजन उपयोग करता है। FFT WebGPU में एक कंप्यूट शेडर के रूप में चलता है, हर फ़्रेम एक डिस्प्लेसमेंट मैप और एक नॉर्मल मैप जनरेट करता है। नतीजतन महासागर बेहद विश्वसनीय दिखता है। यही Sea of Thieves, Assassin's Creed Black Flag, और Uncharted 4 उपयोग करते हैं। WebGPU में, एक 256x256 FFT महासागर डेस्कटॉप GPU पर 1ms से कम में चलता है।</p>
<div class="language-wgsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">wgsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">compute</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> @</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">workgroup_size</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">16</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">16</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> fftOceanDisplacement</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">builtin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(global_invocation_id) id: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">u32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> k </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> vec2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">x) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> N</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">y) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> N</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> omega </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sqrt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">length</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(k) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> gravity);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> phase </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> omega </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> time;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> h </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> spectrum[id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">xy] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> vec2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">cos</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(phase), </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(phase));</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    displacement[id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">xy] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> h;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>एक क्रिएटर वर्ल्ड के लिए, स्तर 1 (रिफ़्लेक्टिव प्लेन) से शुरू करें और जब रेंडरर परिपक्व हो तब स्तर 2 तक अपग्रेड करें। स्तर 3 केवल तभी चाहिए जब दुनिया में खुला महासागर हो।</p>
<h3 id="मौसम-सिस्टम" tabindex="-1">मौसम सिस्टम <a class="header-anchor" href="#मौसम-सिस्टम" aria-label="Permalink to &quot;मौसम सिस्टम&quot;"></a></h3>
<p>Skyrim और BotW में मौसम ट्रांज़िशन वाली एक स्टेट मशीन से संचालित होता है। साफ़ &gt; बादल &gt; बारिश &gt; तूफ़ान &gt; साफ़। हर स्टेट एक साथ कई सिस्टम बदलती है: स्काईबॉक्स, फॉग घनत्व, एम्बिएंट लाइट रंग, पार्टिकल इफ़ेक्ट (बारिश/बर्फ़), ऑडियो (हवा, बारिश), और गेमप्ले गुण (BotW में गीली सतहें फिसलन भरी होती हैं)।</p>
<p>एक ब्राउज़र वर्ल्ड के लिए, मौसम सिस्टम की तीन परतें होती हैं:</p>
<p><strong>आकाश रेंडरिंग।</strong> एक प्रोसीजरल आकाश शेडर स्काईबॉक्स टेक्सचर से सस्ता और ज़्यादा लचीला है। Preetham या Hosek-Wilkie आकाश मॉडल केवल सूरज की स्थिति से भौतिक रूप से विश्वसनीय आकाश रंग कंप्यूट करते हैं। एक प्लेन के ज़रिए स्क्रॉल किए गए 3D नॉइज़ का उपयोग करके एक क्लाउड लेयर जोड़ें। Babylon.js में एक अंतर्निहित प्रोसीजरल आकाश मटेरियल है। Three.js में <code>Sky</code> उदाहरण है। दोनों नगण्य GPU लागत पर विश्वसनीय नतीजे पैदा करते हैं (यह एक अकेला फ़ुलस्क्रीन क्वाड है)।</p>
<p><strong>पार्टिकल इफ़ेक्ट।</strong> बारिश हज़ारों पतले क्वाड का एक पार्टिकल सिस्टम है जो ऊपर से गिरते हैं। बर्फ़ समान है लेकिन धीमे, बहते रास्तों के साथ। फॉग एक पोस्ट-प्रोसेसिंग पास है जो डेप्थ के आधार पर सीन को एक फॉग रंग की ओर ब्लेंड करता है। ये सभी मानक WebGL इफ़ेक्ट हैं। लागत पार्टिकल संख्या पर निर्भर करती है: 10,000 बारिश के पार्टिकल प्रति फ़्रेम करीब 0.5ms जोड़ते हैं।</p>
<p><strong>पर्यावरणीय प्रतिक्रिया।</strong> गीली सतहें स्पेकुलर रिफ़्लेक्शन बढ़ाती हैं। बर्फ़ का जमाव ऊपर की ओर मुँह करने वाली सतहों पर सफ़ेदी जोड़ता है। अवतल टेरेन में पोखर दिखते हैं। ये शेडर ट्रिक हैं, ज्यामिति बदलाव नहीं। एक &quot;wetness&quot; यूनिफ़ॉर्म मटेरियल रफ़नेस बदलता है। एक &quot;snow cover&quot; यूनिफ़ॉर्म उन सतहों पर सफ़ेद ब्लेंड करता है जिनके नॉर्मल ऊपर की ओर इशारा करते हैं। GTA V और The Witcher 3 बिल्कुल यही तरीका उपयोग करते हैं।</p>
<p><strong>सिंक्रोनाइज़्ड मौसम।</strong> एक मल्टीप्लेयर वर्ल्ड में, मौसम क्लाइंट भर में सुसंगत होना चाहिए। सबसे सरल तरीका: सर्वर 1 Hz पर एक मौसम स्टेट (ट्रांज़िशन प्रगति समेत) प्रसारित करता है। क्लाइंट स्थानीय रूप से इंटरपोलेट करते हैं। चूँकि मौसम धीरे-धीरे बदलता है (साफ़ से बारिश का ट्रांज़िशन 30-60 सेकंड लेता है), एक देर से आया अपडेट भी सहज दिखता है।</p>
<h3 id="वायुमंडलीय-परिप्रेक्ष्य" tabindex="-1">वायुमंडलीय परिप्रेक्ष्य <a class="header-anchor" href="#वायुमंडलीय-परिप्रेक्ष्य" aria-label="Permalink to &quot;वायुमंडलीय परिप्रेक्ष्य&quot;"></a></h3>
<p>यह एक दुनिया को बड़ा महसूस कराने के लिए अकेला सबसे प्रभावी विज़ुअल तरीका है, और यह लगभग मुफ़्त है। वायुमंडल में प्रकाश के बिखराव के कारण दूर के ऑब्जेक्ट ज़्यादा धुँधले, ज़्यादा नीले, और कम कंट्रास्ट वाले दिखते हैं। हर ओपन वर्ल्ड इसका उपयोग करता है।</p>
<p>एक फ़्रैगमेंट शेडर में, डेप्थ के आधार पर दूर के पिक्सेल को वायुमंडल रंग की ओर ब्लेंड करें:</p>
<div class="language-glsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">glsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> fogFactor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1.0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> exp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">distance </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> fogDensity);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> finalColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> mix</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(objectColor, atmosphereColor, fogFactor);</span></span></code></pre>
</div><p>BotW इसे एक चित्रकारी जैसी फॉग के साथ आगे ले जाता है जो एक वॉटरकलर-शैली की दूरी में बदल जाती है। फॉग का रंग दिन के समय और मौसम के साथ बदलता है। यह अकेला शेडर इफ़ेक्ट किसी भी मात्रा में टेरेन डिटेल से ज़्यादा पैमाने का अहसास देता है।</p>
<p>एक स्टाइलाइज़्ड आर्ट डायरेक्शन वाली ब्राउज़र वर्ल्ड के लिए, वायुमंडलीय परिप्रेक्ष्य लागू करने वाला पहला विज़ुअल इफ़ेक्ट है। यह LOD ट्रांज़िशन छिपाता है (कम-डिटेल वाले दूर के ऑब्जेक्ट धुँध के ज़रिए ठीक दिखते हैं), स्ट्रीमिंग कंटेंट की दिखने वाली पॉप-इन कम करता है, और दुनिया पूरी तरह से बसने से पहले भी स्क्रीनशॉट को अच्छा बनाता है।</p>
<h2 id="अवतार-सिस्टम" tabindex="-1">अवतार सिस्टम <a class="header-anchor" href="#अवतार-सिस्टम" aria-label="Permalink to &quot;अवतार सिस्टम&quot;"></a></h2>
<p>खिलाड़ियों को शरीर चाहिए। एक क्रिएटर वर्ल्ड में, अवतार आपके बनाए हुए के साथ-साथ खुद को व्यक्त करने का प्रमुख रूप है। सिस्टम को निजीकरण के लिए इतना लचीला होना चाहिए कि वह 200+ दिखने वाले खिलाड़ियों के लिए रेंडरिंग लागत कम भी रखे।</p>
<h3 id="अवतार-आर्किटेक्चर" tabindex="-1">अवतार आर्किटेक्चर <a class="header-anchor" href="#अवतार-आर्किटेक्चर" aria-label="Permalink to &quot;अवतार आर्किटेक्चर&quot;"></a></h3>
<p><strong>बेस मेश + कस्टमाइज़ेशन लेयर।</strong> एक साझा ह्यूमनॉइड बेस मेश से शुरू करें (शरीर के लिए 1,500-3,000 ट्रायएंगल)। कस्टमाइज़ेशन इनके ज़रिए होता है:</p>
<ul>
<li>यूनिफ़ॉर्म बदलावों के ज़रिए रंग/टेक्सचर विविधताएँ (त्वचा का रंग, बालों का रंग)। कोई अतिरिक्त ज्यामिति नहीं।</li>
<li>स्वैप करने योग्य मेश पार्ट्स (हेयर स्टाइल, कपड़े, एक्सेसरीज़) जो बेस मेश के हिस्से बदल देते हैं। हर पार्ट एक अलग छोटा मेश है (200-500 ट्रायएंगल)।</li>
<li>मटेरियल पैरामीटर बदलावों के ज़रिए मटेरियल गुण विविधताएँ (मेटैलिक आर्मर बनाम कपड़े का अंगरखा)।</li>
</ul>
<p>Roblox, Fortnite और VRChat इसी तरह अवतार संभालते हैं। कस्टमाइज़ेशन की परवाह किए बिना बेस लागत स्थिर रहती है।</p>
<p><strong>Ready Player Me</strong> और <strong>Avaturn</strong> ब्राउज़र-आधारित अवतार निर्माण देते हैं जो किसी भी 3D engine के साथ संगत glTF मॉडल आउटपुट करता है। वे तस्वीरों से फ़ेस स्कैनिंग, बॉडी अनुपात और कपड़े संभालते हैं। आउटपुट मॉडल रियल-टाइम रेंडरिंग के लिए ऑप्टिमाइज़ होते हैं (आमतौर पर 10K-20K ट्रायएंगल, दूर की रेंडरिंग के लिए 3K-5K तक घटाए जा सकते हैं)।</p>
<h3 id="ब्राउज़र-में-स्केलेटल-एनिमेशन" tabindex="-1">ब्राउज़र में स्केलेटल एनिमेशन <a class="header-anchor" href="#ब्राउज़र-में-स्केलेटल-एनिमेशन" aria-label="Permalink to &quot;ब्राउज़र में स्केलेटल एनिमेशन&quot;"></a></h3>
<p>हर दिखने वाले खिलाड़ी को एनिमेशन चाहिए: आइडल, वॉक, रन, जंप, इमोट्स। स्केलेटल एनिमेशन एक मेश को हर फ़्रेम में बोन ट्रांसफ़ॉर्म के सेट के ज़रिए चलाता है।</p>
<p><strong>GPU स्किनिंग</strong> परफ़ॉर्मेंस के लिए अनिवार्य है। Three.js और Babylon.js दोनों डिफ़ॉल्ट रूप से GPU पर स्किनिंग करते हैं। बोन मैट्रिक्स एक यूनिफ़ॉर्म बफ़र या टेक्सचर के रूप में अपलोड होते हैं, और वर्टेक्स शेडर बोन ट्रांसफ़ॉर्म लागू करता है। CPU लागत एनिमेशन क्लिप से बोन ट्रांसफ़ॉर्म कंप्यूट करने की है। 30fps पर 60-बोन स्केलेटन के लिए, यह प्रति कैरेक्टर करीब 0.01ms है। 200 कैरेक्टर: कुल 2ms। स्वीकार्य।</p>
<p><strong>एनिमेशन ब्लेंडिंग</strong> ब्लेंड वेट का उपयोग करके कई एनिमेशन मिलाता है (वॉक + वेव, आइडल + इधर-उधर देखना)। Three.js (<code>AnimationMixer</code>) और Babylon.js (<code>AnimationGroup</code>) दोनों इसका समर्थन करते हैं। ब्लेंडिंग CPU पर होती है (बोन ट्रांसफ़ॉर्म इंटरपोलेट करना) इससे पहले कि ब्लेंडेड नतीजा GPU पर जाए।</p>
<p><strong>इंस्टैंस्ड एनिमेशन</strong> कई कैरेक्टर को कुशलता से रेंडर करने की कुंजी है। हर कैरेक्टर को एक अलग मेश के रूप में बनाने के बजाय, एनिमेशन फ़्रेम को एक टेक्सचर में बेक करें (वर्टेक्स एनिमेशन टेक्सचर, या VAT)। टेक्सचर की हर पंक्ति एक फ़्रेम के लिए बोन ट्रांसफ़ॉर्म स्टोर करती है। एक कंप्यूट शेडर या वर्टेक्स शेडर कैरेक्टर के एनिमेशन समय के आधार पर सही पंक्ति पढ़ता है। इससे एक अकेले इंस्टैंस्ड ड्रॉ कॉल से सैकड़ों कैरेक्टर रेंडर हो सकते हैं। The Witcher 3 और Assassin's Creed भीड़ रेंडरिंग के लिए इसका उपयोग करते हैं।</p>
<p>WebGPU में, इंस्टैंस्ड एनिमेटेड कैरेक्टर ऐसे दिखते हैं:</p>
<div class="language-wgsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">wgsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">vertex</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> vs_main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">builtin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(instance_index) instanceIdx: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">u32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">@</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">location</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) position: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-></span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> @</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">builtin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(position) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> animFrame </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> instances[instanceIdx]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">animationFrame;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> boneIdx </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> vertexBoneIndices[vertexIdx];</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> boneTransform </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> textureLoad</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(animTexture, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">i32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">i32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(boneIdx), </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">i32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(animFrame)), </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> worldPos </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> instances[instanceIdx]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">transform </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> boneTransform </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> vec4</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&#x3C;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">>(position, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> viewProjection </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> worldPos;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>दूर के खिलाड़ियों के लिए (50 मीटर से परे), बिलबोर्ड इम्पोस्टर पर स्विच करें: एक फ़्लैट क्वाड जो मौजूदा देखने के कोण से कैरेक्टर का पहले से रेंडर किया हुआ स्प्राइट दिखाता है। यह वही ट्रिक है जो Skyrim दूर के पेड़ों के लिए उपयोग करता है, कैरेक्टर पर लागू की गई। दूरी पर ट्रांज़िशन का पता ही नहीं चलता।</p>
<h3 id="इंटरैक्शन-के-लिए-इन्वर्स-काइनेमेटिक्स" tabindex="-1">इंटरैक्शन के लिए इन्वर्स काइनेमेटिक्स <a class="header-anchor" href="#इंटरैक्शन-के-लिए-इन्वर्स-काइनेमेटिक्स" aria-label="Permalink to &quot;इंटरैक्शन के लिए इन्वर्स काइनेमेटिक्स&quot;"></a></h3>
<p>जब कोई कैरेक्टर कोई ऑब्जेक्ट उठाता है, दरवाज़े के हैंडल तक पहुँचता है, या किसी चीज़ की ओर इशारा करता है, तो प्रोसीजरल IK क्रिया को स्वाभाविक दिखाता है। FABRIK (Forward And Backward Reaching Inverse Kinematics) एक सरल, तेज़ IK सॉल्वर है जो रियल टाइम में अच्छा काम करता है। Three.js (<code>CCDIKSolver</code> के ज़रिए) और Babylon.js (<code>BoneIKController</code> के ज़रिए) दोनों में अंतर्निहित IK समर्थन है।</p>
<p>एक क्रिएटर वर्ल्ड के लिए, IK का मतलब है कि कैरेक्टर रखे हुए ऑब्जेक्ट के साथ स्वाभाविक रूप से इंटरैक्ट कर सकते हैं: क्रिएटर द्वारा रखी कुर्सियों पर बैठना, रेलिंग पर झुकना, चीज़ें उठाना। इन इंटरैक्शन को हर ऑब्जेक्ट के लिए अलग एनिमेशन की ज़रूरत नहीं। IK सिस्टम कैरेक्टर के पोज़ को ऑब्जेक्ट की स्थिति के अनुसार ढाल देता है।</p>
<h2 id="उन्नत-नेटवर्किंग" tabindex="-1">उन्नत नेटवर्किंग <a class="header-anchor" href="#उन्नत-नेटवर्किंग" aria-label="Permalink to &quot;उन्नत नेटवर्किंग&quot;"></a></h2>
<p>बुनियादी आर्किटेक्चर (WebSocket + WebRTC) को पहले कवर किया गया। यहाँ प्रोटोकॉल, कम्प्रेशन और नए ट्रांसपोर्ट विकल्पों पर गहरी डिटेल है।</p>
<h3 id="बाइनरी-मैसेज-प्रोटोकॉल" tabindex="-1">बाइनरी मैसेज प्रोटोकॉल <a class="header-anchor" href="#बाइनरी-मैसेज-प्रोटोकॉल" aria-label="Permalink to &quot;बाइनरी मैसेज प्रोटोकॉल&quot;"></a></h3>
<p>WebSocket पर JSON बाइनरी एन्कोडिंग की तुलना में 10x बैंडविड्थ की बर्बादी है। एक रियल-टाइम मल्टीप्लेयर वर्ल्ड के लिए, हर मैसेज बाइनरी होना चाहिए।</p>
<p><strong>FlatBuffers</strong> (Google से) गेम नेटवर्किंग के लिए सबसे उपयुक्त है। Protocol Buffers के उलट, FlatBuffers सीरियलाइज़ किए गए डेटा तक ज़ीरो-कॉपी एक्सेस देता है। आप मैसेज को JavaScript ऑब्जेक्ट में डिकोड नहीं करते। आप बफ़र से सीधे फ़ील्ड पढ़ते हैं। इससे वह एलोकेशन और GC दबाव खत्म होता है जो Protocol Buffers एक हॉट पाथ में पैदा करता। FlatBuffers में एक JavaScript/TypeScript कोड जनरेटर है।</p>
<p>FlatBuffers में एक प्लेयर पोज़िशन अपडेट:</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Schema: PlayerUpdate { id: uint16, x: float32, y: float32, z: float32, yaw: float16, pitch: float16, animState: uint8 }</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Total: 17 bytes per player update</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// vs JSON: {"id":42,"x":103.5,"y":12.3,"z":-47.8,"yaw":1.57,"pitch":0.2,"animState":3} = 80+ bytes</span></span></code></pre>
</div><p>20 Hz पर 200 खिलाड़ियों के लिए, अंतर 200 * 17 * 20 = 68 KB/s (बाइनरी) बनाम 200 * 80 * 20 = 320 KB/s (JSON) है। बाइनरी 4.7x छोटी है, और यह हॉट लूप में JSON.parse एलोकेशन से बचती है।</p>
<p><strong>MessagePack</strong> FlatBuffers से सरल है (कोई स्कीमा नहीं, कोई कोड जनरेशन नहीं) लेकिन फिर भी JSON से 30-50% छोटा है। अगर आप स्कीमा प्रबंधन के बिना बाइनरी चाहते हैं तो यह एक अच्छा बीच का रास्ता है।</p>
<h3 id="पोज़िशन-क्वांटाइज़ेशन-और-डेल्टा-कम्प्रेशन" tabindex="-1">पोज़िशन क्वांटाइज़ेशन और डेल्टा कम्प्रेशन <a class="header-anchor" href="#पोज़िशन-क्वांटाइज़ेशन-और-डेल्टा-कम्प्रेशन" aria-label="Permalink to &quot;पोज़िशन क्वांटाइज़ेशन और डेल्टा कम्प्रेशन&quot;"></a></h3>
<p>प्लेयर पोज़िशन को 32-बिट फ़्लोट सटीकता की ज़रूरत नहीं। अगर आपकी दुनिया 4 km x 4 km है, तो एक 16-बिट अनसाइंड इंटीजर आपको 6 cm सटीकता देता है (4000m / 65536)। ज़्यादातर गेमों के लिए, यह पूरी सटीकता से अलग नहीं पहचाना जा सकता। इससे पोज़िशन डेटा का आकार आधा हो जाता है।</p>
<p><strong>डेल्टा कम्प्रेशन</strong> केवल पिछली स्वीकृत स्टेट से अंतर भेजता है। अगर कोई खिलाड़ी पिछले अपडेट के बाद से 0.5 मीटर चला, तो डेल्टा एक छोटी संख्या है जो अच्छी तरह कम्प्रेस होती है। वेरिएबल-लेंथ एन्कोडिंग के साथ मिलाकर (छोटे डेल्टा कम बाइट उपयोग करते हैं), विशिष्ट डेल्टा-कम्प्रेस्ड पोज़िशन अपडेट 12 के बजाय 3-6 बाइट होते हैं।</p>
<p><strong>डेड रेकनिंग</strong> अपडेट फ़्रीक्वेंसी कम करती है। 20 Hz पर पोज़िशन भेजने के बजाय, पोज़िशन + वेलोसिटी भेजें। क्लाइंट अपडेट के बीच पोज़िशन एक्सट्रैपोलेट करता है। केवल तब करेक्शन भेजें जब असल पोज़िशन अनुमानित पोज़िशन से एक थ्रेशोल्ड से ज़्यादा अलग हो जाए। यह सीधी रेखाओं में चलने वाले खिलाड़ियों (जो अधिकांश मूवमेंट है) के लिए पोज़िशन अपडेट बैंडविड्थ 60-80% तक कम कर सकता है।</p>
<p>RuneScape इसका एक चरम संस्करण उपयोग करता है: प्लेयर मूवमेंट टाइल-आधारित है, इसलिए एक मूव कमांड बस एक डेस्टिनेशन टाइल है। क्लाइंट वॉक पाथ को स्थानीय रूप से एनिमेट करता है। एक सतत 3D वर्ल्ड के लिए, आप स्मूथ डेड रेकनिंग उपयोग करेंगे, लेकिन सिद्धांत वही है।</p>
<h3 id="webtransport" tabindex="-1">WebTransport <a class="header-anchor" href="#webtransport" aria-label="Permalink to &quot;WebTransport&quot;"></a></h3>
<p>WebTransport एक नया प्रोटोकॉल है जो गेम नेटवर्किंग के लिए WebSocket और WebRTC DataChannel दोनों की जगह ले सकता है। यह HTTP/3 (QUIC) पर चलता है और देता है:</p>
<ul>
<li><strong>रिलायबल ऑर्डर्ड स्ट्रीम</strong> (WebSocket जैसे लेकिन मल्टीप्लेक्स्ड, ताकि एक स्ट्रीम पर रुकावट दूसरों को ब्लॉक न करे)</li>
<li><strong>अनरिलायबल डेटाग्राम</strong> (UDP जैसे, उन पोज़िशन अपडेट के लिए जो देर होने पर तुरंत पुराने हो जाते हैं)</li>
<li><strong>मल्टीप्लेक्स्ड स्ट्रीम</strong> (चैट, वर्ल्ड स्टेट, पोज़िशन के लिए अलग स्ट्रीम, हेड-ऑफ़-लाइन ब्लॉकिंग के बिना)</li>
</ul>
<p>गेम नेटवर्किंग को बिल्कुल यही चाहिए। WebSocket आपको रिलायबल-ऑर्डर्ड देता है (लेकिन हेड-ऑफ़-लाइन ब्लॉकिंग पोज़िशन अपडेट के लिए लेटेंसी मार देती है)। WebRTC DataChannel आपको अनरिलायबल देता है (लेकिन सेटअप जटिल है और ICE/STUN चाहिए)। WebTransport आपको एक ही कनेक्शन पर दोनों देता है।</p>
<p>ब्राउज़र समर्थन: Chrome, Edge और Firefox ने WebTransport काफ़ी समय से शिप किया है, और Safari 26.4 ने मार्च 2026 में इसे जोड़ा। उस कदम ने WebTransport को Baseline स्थिति तक पहुँचा दिया, यानी अब यह हर बड़े ब्राउज़र में काम करता है, iOS पर भी जहाँ सभी ब्राउज़र WebKit उपयोग करते हैं। पुराने Safari संस्करणों के लिए एक WebSocket फ़ॉलबैक रखना अब भी सार्थक है, लेकिन WebTransport आज व्यापक रूप से उपयोग योग्य है।</p>
<p>Cloudflare Workers के ज़रिए WebTransport का समर्थन करता है, जो हमारे इंफ़्रास्ट्रक्चर में फ़िट बैठता है।</p>
<h3 id="स्केल-पर-इंटरेस्ट-मैनेजमेंट" tabindex="-1">स्केल पर इंटरेस्ट मैनेजमेंट <a class="header-anchor" href="#स्केल-पर-इंटरेस्ट-मैनेजमेंट" aria-label="Permalink to &quot;स्केल पर इंटरेस्ट मैनेजमेंट&quot;"></a></h3>
<p>200+ खिलाड़ियों के साथ नेटवर्किंग की चुनौती प्रति खिलाड़ी बैंडविड्थ नहीं है। यह N-स्क्वायर समस्या है: अगर हर खिलाड़ी हर दूसरे खिलाड़ी को अपडेट भेजे, तो 200 खिलाड़ियों का मतलब प्रति टिक 200 * 199 = 39,800 अपडेट मैसेज है। सर्वर को फ़िल्टर करना पड़ता है।</p>
<p><strong>एरिया ऑफ़ इंटरेस्ट (AOI)</strong> मैनेजमेंट का मतलब है कि हर खिलाड़ी केवल अपनी व्यू रेंज के भीतर की एंटिटी के बारे में अपडेट पाता है। कार्यान्वयन चंक सिस्टम वाले उसी स्पेशियल ग्रिड का उपयोग करता है: जब किसी खिलाड़ी की पोज़िशन चंक (3, 7) पर मैप होती है, तो वे चंक (2-4, 6-8) से अपडेट पाते हैं, यानी एक 3x3 पड़ोस। इस रेंज के बाहर की एंटिटी नहीं भेजी जातीं।</p>
<p><strong>प्राथमिकता-आधारित अपडेट</strong> AOI के भीतर महत्वपूर्ण एंटिटी को ज़्यादा बैंडविड्थ देते हैं। आपकी ओर दौड़ता खिलाड़ी 20 Hz अपडेट पाता है। 200 मीटर दूर खड़ा खिलाड़ी 2 Hz अपडेट पाता है। कुछ न करने वाला NPC 0.5 Hz अपडेट पाता है। सर्वर प्रति क्लाइंट एक प्राथमिकता कतार बनाए रखता है और एंटिटी प्रासंगिकता (दूरी, वेलोसिटी, इंटरैक्शन की संभावना) के आधार पर बैंडविड्थ आवंटित करता है।</p>
<p><strong>डॉर्मेंसी।</strong> जिन एंटिटी ने N सेकंड तक अपनी स्टेट नहीं बदली, वे डॉर्मेंट हो जाती हैं और पूरी तरह नेटवर्क ट्रैफ़िक पैदा करना बंद कर देती हैं। क्लाइंट आखिरी ज्ञात स्टेट रखता है जब तक कि एक वेक-अप इवेंट न आए। एक क्रिएटर वर्ल्ड में जहाँ अधिकांश रखे हुए ऑब्जेक्ट स्टैटिक हैं, डॉर्मेंसी संभावित नेटवर्क ट्रैफ़िक के बड़े हिस्से को खत्म कर देती है।</p>
<p>Slither.io की वेरिएबल टिक रेट (दूर 5 Hz बनाम पास 30 Hz) इसका एक सरल संस्करण है। EVE Online का &quot;time dilation&quot; चरम संस्करण है (जब एक इलाके में बहुत ज़्यादा खिलाड़ी होते हैं, तो सर्वर सुसंगतता बनाए रखने के लिए गेम टिक रेट धीमी कर देता है)। हमारे उपयोग के लिए, डॉर्मेंसी के साथ प्राथमिकता-आधारित AOI सही संतुलन है।</p>
<h2 id="gaussian-splatting-और-नई-रेंडरिंग-टेक" tabindex="-1">Gaussian Splatting और नई रेंडरिंग टेक <a class="header-anchor" href="#gaussian-splatting-और-नई-रेंडरिंग-टेक" aria-label="Permalink to &quot;Gaussian Splatting और नई रेंडरिंग टेक&quot;"></a></h2>
<p>पारंपरिक मेश रेंडरिंग (ट्रायएंगल + टेक्सचर) अब ब्राउज़र 3D का इकलौता विकल्प नहीं है। कई नई तकनीकें प्रोडक्शन व्यवहार्यता तक पहुँच रही हैं।</p>
<h3 id="_3d-gaussian-splatting" tabindex="-1">3D Gaussian Splatting <a class="header-anchor" href="#_3d-gaussian-splatting" aria-label="Permalink to &quot;3D Gaussian Splatting&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/T_kXY43VZnk" title="3D Gaussian Splatting for Real-Time Radiance Field Rendering" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">3D Gaussian Splatting (SIGGRAPH 2023): तस्वीरों से फ़ोटोरियलिस्टिक सीन पुनर्निर्माण, ब्राउज़र में रियल टाइम पर रेंडर होता हुआ। क्रिएटर फ़ोन से असली दुनिया के ऑब्जेक्ट स्कैन करके उन्हें सीधे दुनिया में रख सकते हैं।</div>
<p>3D Gaussian Splatting (3DGS) सीन को लाखों रंगीन 3D Gaussians (ओरिएंटेड, रंगीन एलिप्सॉइड) के रूप में दर्शाकर तस्वीरों से 3D सीन का पुनर्निर्माण करता है। रेंडरर ट्रायएंगल के बजाय इन स्प्लैट को सॉर्ट और रास्टराइज़ करता है।</p>
<p>यह एक क्रिएटर वर्ल्ड के लिए क्यों मायने रखता है:</p>
<ul>
<li><strong>फ़ोटोग्रामेट्री कैप्चर मामूली हो जाता है।</strong> एक क्रिएटर अपने फ़ोन से किसी असली दुनिया के ऑब्जेक्ट या जगह की 50 तस्वीरें लेता है। सर्वर-साइड प्रोसेसिंग (Nerfstudio या gsplat जैसे टूल के ज़रिए) मिनटों में एक Gaussian splat सीन बनाती है। वह सीन ब्राउज़र में लोड होता है और किसी भी कोण से फ़ोटोरियलिस्टिक दिखता है।</li>
<li><strong>ब्राउज़र रेंडरिंग हल हो चुकी है।</strong> कई ओपन-सोर्स कार्यान्वयन WebGL और WebGPU में Gaussian splat रेंडर करते हैं। PlayCanvas में अंतर्निहित splat रेंडरिंग है। Luma AI के पास एक Three.js-संगत व्यूअर है। gsplat.js एक स्टैंडअलोन लाइब्रेरी है। परफ़ॉर्मेंस अच्छी है: डेस्कटॉप GPU पर 1-3 मिलियन स्प्लैट 30-60fps पर रेंडर होते हैं।</li>
<li><strong>डेटा फ़ॉर्मेट कॉम्पैक्ट है।</strong> एक कमरे का Gaussian splat सीन 10-30 MB कम्प्रेस्ड हो सकता है। अकेले ऑब्जेक्ट 1-5 MB हैं। यह टेक्सचर्ड मेश एसेट के बराबर है।</li>
</ul>
<p>ट्रेड-ऑफ़: स्प्लैट सीन स्टैटिक हैं। आप उन्हें आसानी से एनिमेट या संशोधित नहीं कर सकते। वे पर्यावरणीय सेट-ड्रेसिंग के लिए अच्छा काम करते हैं (एक फ़ोटोरियलिस्टिक पेड़, एक कैप्चर की गई असली दुनिया की मूर्ति, एक स्कैन किया गया बिल्डिंग फ़साड) लेकिन इंटरैक्टिव गेम ऑब्जेक्ट के लिए नहीं। हाइब्रिड तरीका यह है कि पर्यावरणीय डिटेल के लिए स्प्लैट और इंटरैक्टिव ऑब्जेक्ट के लिए पारंपरिक मेश उपयोग करें।</p>
<p><strong>एक क्रिएटर वर्ल्ड के लिए:</strong> क्रिएटर्स को फ़ोन तस्वीरों के ज़रिए असली दुनिया के ऑब्जेक्ट कैप्चर करने दें, उन्हें सर्वर-साइड Gaussian splats में प्रोसेस करें, और उन्हें दुनिया में रखें। यह AI-जनित एसेट और असली दुनिया के ऑब्जेक्ट के बीच की खाई पाटता है। एक क्रिएटर अपनी कलाकृति, फ़र्नीचर, या वास्तुकला स्कैन करके उसे सीधे साझा दुनिया में रख सकता है।</p>
<h3 id="neural-radiance-fields-nerfs-से-मेश-तक" tabindex="-1">Neural Radiance Fields (NeRFs) से मेश तक <a class="header-anchor" href="#neural-radiance-fields-nerfs-से-मेश-तक" aria-label="Permalink to &quot;Neural Radiance Fields (NeRFs) से मेश तक&quot;"></a></h3>
<p>NeRFs सीन को न्यूरल नेटवर्क के रूप में दर्शाते हैं जो किसी भी 3D बिंदु के लिए रंग और घनत्व आउटपुट करते हैं। वे तस्वीरों से असाधारण विज़ुअल गुणवत्ता पैदा करते हैं लेकिन रेंडर करना महँगा है (प्रति पिक्सेल प्रति फ़्रेम एक पूर्ण न्यूरल नेटवर्क फ़ॉरवर्ड पास)।</p>
<p>ब्राउज़र के लिए व्यावहारिक तरीका: तस्वीरों से एक NeRF ट्रेन करें, फिर घनत्व फ़ील्ड पर marching cubes का उपयोग करके एक मेश निकालें। नतीजा एक पारंपरिक ट्रायएंगल मेश है जिसमें बेक की हुई टेक्सचर होती हैं जिन्हें कोई भी ब्राउज़र engine रेंडर कर सकता है। Instant-NGP, Nerfstudio और Neuralangelo जैसे टूल इस पाइपलाइन को स्वचालित करते हैं। गुणवत्ता NeRF को सीधे रेंडर करने जितनी ऊँची नहीं होती, लेकिन यह मानक रेंडरिंग पाइपलाइन के साथ संगत है।</p>
<p>यह क्रिएटर्स के लिए मॉडलिंग कौशल के बिना असली दुनिया के ऑब्जेक्ट को ब्राउज़र वर्ल्ड में लाने का एक और रास्ता है।</p>
<h3 id="mesh-shaders-और-nanite-शैली-रेंडरिंग" tabindex="-1">Mesh Shaders और Nanite-शैली रेंडरिंग <a class="header-anchor" href="#mesh-shaders-और-nanite-शैली-रेंडरिंग" aria-label="Permalink to &quot;Mesh Shaders और Nanite-शैली रेंडरिंग&quot;"></a></h3>
<p>UE5 का Nanite सिस्टम mesh shaders, GPU-संचालित रेंडरिंग, और वर्चुअल ज्यामिति (स्क्रीन कवरेज के आधार पर प्रति-क्लस्टर स्तर पर ट्रायएंगल स्ट्रीमिंग) का उपयोग करके अरबों ट्रायएंगल रेंडर करता है। WebGPU अभी mesh shaders का समर्थन नहीं करता, लेकिन अंतर्निहित सिद्धांत (कंप्यूट-आधारित कलिंग और LOD चयन के साथ GPU-संचालित रेंडरिंग) लागू करने योग्य है।</p>
<p>एक WebGPU कंप्यूट शेडर कर सकता है:</p>
<ol>
<li>सभी मेश क्लस्टर बाउंडिंग बॉक्स पढ़ना (करीब 64 ट्रायएंगल के समूह)</li>
<li>हर क्लस्टर को व्यू फ़्रस्टम और ऑक्लूज़न बफ़र के विरुद्ध टेस्ट करना</li>
<li>स्क्रीन-स्पेस आकार के आधार पर उपयुक्त LOD स्तर चुनना</li>
<li>दिखने वाले क्लस्टर को एक इनडायरेक्ट ड्रॉ बफ़र में लिखना</li>
<li>एक अकेला इनडायरेक्ट ड्रॉ कॉल सब कुछ रेंडर करता है</li>
</ol>
<p>यह &quot;वर्चुअल ज्यामिति&quot; तरीका स्थिर CPU लागत के साथ लाखों ट्रायएंगल संभालता है (सीन की जटिलता की परवाह किए बिना CPU एक ड्रॉ कॉल जमा करता है)। ब्राउज़र रेंडरिंग आखिरकार इसी तरह बड़ी ओपन वर्ल्ड संभालेगी। कार्यान्वयन जटिल है लेकिन बिल्डिंग ब्लॉक आज WebGPU में मौजूद हैं।</p>
<h2 id="स्टाइलाइज़्ड-ओपन-वर्ल्ड-के-लिए-शेडर-तकनीकें" tabindex="-1">स्टाइलाइज़्ड ओपन वर्ल्ड के लिए शेडर तकनीकें <a class="header-anchor" href="#स्टाइलाइज़्ड-ओपन-वर्ल्ड-के-लिए-शेडर-तकनीकें" aria-label="Permalink to &quot;स्टाइलाइज़्ड ओपन वर्ल्ड के लिए शेडर तकनीकें&quot;"></a></h2>
<p>एक स्टाइलाइज़्ड आर्ट डायरेक्शन को विशिष्ट शेडर तकनीकों की ज़रूरत होती है। ये वे हैं जो प्रति GPU साइकल सबसे ज़्यादा विज़ुअल असर देती हैं।</p>
<h3 id="फ़ोलिएज-विंड-एनिमेशन" tabindex="-1">फ़ोलिएज विंड एनिमेशन <a class="header-anchor" href="#फ़ोलिएज-विंड-एनिमेशन" aria-label="Permalink to &quot;फ़ोलिएज विंड एनिमेशन&quot;"></a></h3>
<p>हवा में झूमते पेड़ और घास एक दुनिया को जीवंत महसूस कराते हैं। तकनीक सरल है: वर्टेक्स शेडर में, वर्ल्ड पोज़िशन और समय से जुड़ी साइन वेव के संयोजन का उपयोग करके वर्टेक्स पोज़िशन ऑफ़सेट करें।</p>
<div class="language-glsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">glsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> windOffset </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    sin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(worldPos.x </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.5</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> time </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 2.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> windStrength,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    0.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    cos</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(worldPos.z </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.3</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> time </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 1.5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> windStrength</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> heightFactor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> localPos.y </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> meshHeight;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">finalPos </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> windOffset </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> heightFactor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> heightFactor;</span></span></code></pre>
</div><p><code>heightFactor</code> यह सुनिश्चित करता है कि पेड़ का आधार ज़मीन पर टिका रहे जबकि ऊपर का हिस्सा सबसे ज़्यादा झूमे। साइन फ़ंक्शन में वर्ल्ड पोज़िशन उपयोग करने का मतलब है कि आस-पास के पेड़ थोड़े अलग फ़ेज़ में झूमते हैं, जो एक जंगल में एक स्वाभाविक लहर इफ़ेक्ट बनाता है। BotW, Skyrim, और वनस्पति वाला हर ओपन वर्ल्ड यह तकनीक उपयोग करता है।</p>
<p>घास के लिए, वही सिद्धांत लागू होता है लेकिन ज़्यादा फ़्रीक्वेंसी और छोटी वेवलेंथ के साथ। प्रति-इंस्टेंस रैंडम फ़ेज़ ऑफ़सेट वाली GPU-इंस्टैंस्ड घास की पत्तियाँ (हज़ारों पतले क्वाड) न्यूनतम लागत पर विश्वसनीय मैदान पैदा करती हैं। WebGPU कंप्यूट शेडर एक डेंसिटी मैप से घास की पत्तियों की पोज़िशन और ओरिएंटेशन जनरेट कर सकते हैं, जिसमें हवा हर फ़्रेम इंस्टेंस ट्रांसफ़ॉर्म में बेक होती है।</p>
<h3 id="toon-cel-शेडिंग" tabindex="-1">Toon/Cel शेडिंग <a class="header-anchor" href="#toon-cel-शेडिंग" aria-label="Permalink to &quot;Toon/Cel शेडिंग&quot;"></a></h3>
<p>अगर आर्ट डायरेक्शन स्टाइलाइज़्ड है (और सबूत बताते हैं कि होना चाहिए), तो cel shading मुख्य तकनीक है। विचार यह है: स्मूथ ग्रेडिएंट के बजाय लाइटिंग को अलग-अलग स्टेप में क्वांटाइज़ करें।</p>
<div class="language-glsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">glsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> NdotL </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> dot</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(normal, lightDir);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> toonShading </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> step</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, NdotL) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.5</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> step</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.6</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, NdotL) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> color </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> baseColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (ambient </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> toonShading);</span></span></code></pre>
</div><p>यह क्लासिक टू-टोन या थ्री-टोन लुक पैदा करता है। एक कॉमिक-बुक इफ़ेक्ट के लिए एक आउटलाइन पास जोड़ें (बैक-फ़ेस को थोड़ा फैलाकर रेंडर करें, या एक स्क्रीन-स्पेस एज डिटेक्शन पोस्ट-प्रोसेस उपयोग करें)।</p>
<p>BotW की शेडिंग शुद्ध cel shading से ज़्यादा सूक्ष्म है। यह छाया की सीमा पर एक हल्के स्टेप के साथ एक स्मूथ ग्रेडिएंट उपयोग करती है, साथ ही एक गर्म-से-ठंडा रंग शिफ़्ट (छायाएँ नीले रंग की होती हैं, रोशन क्षेत्र गर्म होते हैं)। यह हाइब्रिड तरीका सख्त toon shading से ज़्यादा स्वाभाविक दिखता है जबकि फिर भी स्टाइलाइज़्ड लगता है। यह किसी भी ब्राउज़र 3D engine में एक कस्टम शेडर से हासिल किया जा सकता है।</p>
<h3 id="स्टाइलाइज़्ड-वॉटर-शेडर" tabindex="-1">स्टाइलाइज़्ड वॉटर शेडर <a class="header-anchor" href="#स्टाइलाइज़्ड-वॉटर-शेडर" aria-label="Permalink to &quot;स्टाइलाइज़्ड वॉटर शेडर&quot;"></a></h3>
<p>एक स्टाइलाइज़्ड दुनिया में पानी को रियलिस्टिक वेव सिमुलेशन की ज़रूरत नहीं। स्क्रॉल करने वाले नॉर्मल मैप, एज फ़ोम डिटेक्शन, और डेप्थ-आधारित रंग का संयोजन ऐसे नतीजे देता है जो BotW-शैली के आर्ट डायरेक्शन के साथ विज़ुअल रूप से सुसंगत हैं।</p>
<div class="language-glsl vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">glsl</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> depth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> texture</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(depthTexture, screenUV).r </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> fragDepth;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> shallowColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.7</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.8</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> deepColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.05</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.15</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> waterColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> mix</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(shallowColor, deepColor, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">saturate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(depth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 2.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">));</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">float</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> foam </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> step</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.05</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, depth) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1.0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> -</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> step</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.15</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, depth));</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">foam </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> texture</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(foamNoise, worldUV </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 3.0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> time </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">).r;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">waterColor </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> mix</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(waterColor, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">vec3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">), foam </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">*</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0.8</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre>
</div><p>यह आपको डेप्थ-आधारित रंग (उथला पानी हल्का होता है), किनारे की फ़ोम जो नॉइज़ के साथ एनिमेट होती है, और पूरी चीज़ एक अकेले फ़्रैगमेंट शेडर पास में चलती है।</p>
<h3 id="स्क्रीन-स्पेस-एम्बिएंट-ऑक्लूज़न-ssao" tabindex="-1">स्क्रीन-स्पेस एम्बिएंट ऑक्लूज़न (SSAO) <a class="header-anchor" href="#स्क्रीन-स्पेस-एम्बिएंट-ऑक्लूज़न-ssao" aria-label="Permalink to &quot;स्क्रीन-स्पेस एम्बिएंट ऑक्लूज़न (SSAO)&quot;"></a></h3>
<p>SSAO कोनों, दरारों, और उन क्षेत्रों को गहरा करता है जहाँ सतहें मिलती हैं। यह महँगी ग्लोबल इल्यूमिनेशन के बिना सीन में गहराई और टिकाव जोड़ता है। Three.js और Babylon.js दोनों में अंतर्निहित SSAO कार्यान्वयन हैं।</p>
<p>एक स्टाइलाइज़्ड दुनिया के लिए, SSAO रियलिस्टिक रेंडरिंग से भी ज़्यादा महत्वपूर्ण है क्योंकि फ़्लैट शेडिंग स्वाभाविक रूप से कॉन्टैक्ट शैडो नहीं दिखाती। एक हल्का SSAO पास (आधा रिज़ॉल्यूशन ठीक है) गायब गहराई के संकेत जोड़ता है। लागत: डेस्कटॉप GPU पर 1-2ms।</p>
<h2 id="गहरी-वर्ल्ड-जनरेशन" tabindex="-1">गहरी वर्ल्ड जनरेशन <a class="header-anchor" href="#गहरी-वर्ल्ड-जनरेशन" aria-label="Permalink to &quot;गहरी वर्ल्ड जनरेशन&quot;"></a></h2>
<p>बेस आर्टिकल ने प्रोसीजरल टेरेन को ऊँचे स्तर पर कवर किया। यहाँ एल्गोरिदम संबंधी डिटेल है।</p>
<h3 id="टेरेन-के-लिए-नॉइज़-फ़ंक्शन" tabindex="-1">टेरेन के लिए नॉइज़ फ़ंक्शन <a class="header-anchor" href="#टेरेन-के-लिए-नॉइज़-फ़ंक्शन" aria-label="Permalink to &quot;टेरेन के लिए नॉइज़ फ़ंक्शन&quot;"></a></h3>
<p>सभी प्रोसीजरल टेरेन नॉइज़ से शुरू होते हैं। नॉइज़ फ़ंक्शन ऐसे छद्म-रैंडम मान पैदा करता है जो स्पेस में स्मूथ ढंग से बदलते हैं। स्वाभाविक दिखने वाले नतीजों के लिए कई ऑक्टेव (फ़्रीक्वेंसी) लेयर करें।</p>
<p><strong>Perlin noise</strong> क्लासिक है। <strong>Simplex noise</strong> तेज़ है और इसमें कम दिशात्मक खामियाँ हैं। <strong>OpenSimplex 2</strong> आधुनिक संस्करण है जिसका JavaScript में अच्छा परफ़ॉर्मेंस है। WebGPU कंप्यूट शेडर के लिए, WGSL में simplex noise लागू करना सीधा है (यह करीब 50 लाइन की गणित है)।</p>
<p><strong>Fractal Brownian Motion (fBm)</strong> नॉइज़ के ऑक्टेव लेयर करता है:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>height = 0</span></span>
<span class="line"><span>amplitude = 1.0</span></span>
<span class="line"><span>frequency = baseFrequency</span></span>
<span class="line"><span>for each octave:</span></span>
<span class="line"><span>    height += amplitude * noise(position * frequency)</span></span>
<span class="line"><span>    frequency *= lacunarity (typically 2.0)</span></span>
<span class="line"><span>    amplitude *= persistence (typically 0.5)</span></span></code></pre>
</div><p>6-8 ऑक्टेव के साथ, fBm ऐसा टेरेन पैदा करता है जिसमें बड़े पैमाने की पहाड़ी संरचनाएँ, मध्यम पैमाने की पहाड़ियाँ, और सूक्ष्म पैमाने का खुरदरापन होता है, ठीक असली टेरेन की तरह। persistence पैरामीटर तय करता है कि टेरेन कितना खुरदुरा है (0.3 स्मूथ लुढ़कती पहाड़ियाँ पैदा करता है, 0.7 दांतेदार पहाड़ पैदा करता है)।</p>
<p><strong>Domain warping</strong> एक नॉइज़ फ़ंक्शन के आउटपुट को दूसरे के इनपुट कोऑर्डिनेट के रूप में फ़ीड करता है। यह ऐसा टेरेन पैदा करता है जो एकसमान खुरदुरे के बजाय अपरदित और जैविक दिखता है। domain warping की 2-3 लेयर लागू करें और टेरेन भूगर्भीय प्रक्रियाओं से आकार लिया हुआ दिखने लगता है।</p>
<h3 id="हाइड्रॉलिक-इरोज़न-सिमुलेशन" tabindex="-1">हाइड्रॉलिक इरोज़न सिमुलेशन <a class="header-anchor" href="#हाइड्रॉलिक-इरोज़न-सिमुलेशन" aria-label="Permalink to &quot;हाइड्रॉलिक इरोज़न सिमुलेशन&quot;"></a></h3>
<p>कच्चा नॉइज़ टेरेन मसले हुए कागज़ जैसा दिखता है। असली टेरेन ऐसे मसले हुए कागज़ जैसा दिखता है जिस पर लाखों साल बारिश हुई हो। हाइड्रॉलिक इरोज़न सिमुलेशन नॉइज़-जनित टेरेन को भूगर्भीय रूप से विश्वसनीय दिखने वाली चीज़ में बदल देता है।</p>
<p>एल्गोरिदम:</p>
<ol>
<li>हाइटमैप पर किसी रैंडम स्थिति पर एक पानी का कण गिराएँ</li>
<li>कण ढलान से नीचे बहता है (टेरेन ग्रेडिएंट का अनुसरण करता है)</li>
<li>हर स्टेप पर, यह गति और ढलान के आधार पर टेरेन से तलछट उठाता है</li>
<li>जब कण धीमा होता है (समतल टेरेन, जमाव), तो यह तलछट जमा करता है</li>
<li>100,000-500,000 कणों के लिए दोहराएँ</li>
</ol>
<p>नतीजा ऐसा टेरेन है जिसमें नदी की घाटियाँ, जलोढ़ पंखे, स्वाभाविक दिखने वाली रिजलाइन, और स्मूथ ढलानें होती हैं जो तर्कसंगत रूप से बदलती हैं। एल्गोरिदम एक 1024x1024 हाइटमैप पर JavaScript में करीब 2-5 सेकंड में, या एक WebGPU कंप्यूट शेडर में 100ms से कम में चलता है।</p>
<p>Sebastian Lague का कार्यान्वयन (GitHub पर उपलब्ध) गेम डेवलपर्स के लिए मानक संदर्भ है। यह ऐसा टेरेन पैदा करता है जो हाथ से तराशे गए नतीजों की बराबरी करता है। एक क्रिएटर वर्ल्ड के लिए, सर्वर-साइड प्रोसेसिंग स्टेप के दौरान AI-जनित टेरेन पर इरोज़न चलाने से प्रोसीजरली जनित परिदृश्य हाथ से बने हुए दिखेंगे।</p>
<h3 id="बायोम-असाइनमेंट" tabindex="-1">बायोम असाइनमेंट <a class="header-anchor" href="#बायोम-असाइनमेंट" aria-label="Permalink to &quot;बायोम असाइनमेंट&quot;"></a></h3>
<p>असली दुनिया में बायोम होते हैं: जंगल, रेगिस्तान, टुंड्रा, दलदली ज़मीन। बायोम असाइनमेंट जलवायु पैरामीटर को टेरेन क्षेत्रों पर मैप करता है।</p>
<p>Minecraft का तरीका शिक्षाप्रद है: तापमान और आर्द्रता अक्षों का उपयोग करके एक 2D ग्रिड पर बायोम परिभाषित करें। तापमान ऊँचाई और अक्षांश के साथ घटता है। आर्द्रता पानी की निकटता और प्रचलित हवा की दिशा के साथ बदलती है। हर ग्रिड सेल को एक बायोम असाइनमेंट (जंगल, रेगिस्तान, टुंड्रा, आदि) मिलता है जो टेरेन टेक्सचर, वनस्पति का प्रकार और घनत्व, एम्बिएंट ऑडियो, और मौसम पैटर्न तय करता है।</p>
<p>एक क्रिएटर वर्ल्ड के लिए, बायोम सीमाएँ पेंट करने योग्य होनी चाहिए। सिस्टम टेरेन गुणों से डिफ़ॉल्ट बायोम जनरेट करता है, लेकिन क्रिएटर अपने स्वामित्व वाले प्लॉट पर बायोम ज़ोन पेंट करके असाइनमेंट ओवरराइड कर सकते हैं। यह हाइब्रिड तरीका दुनिया को एक स्वाभाविक दिखने वाला डिफ़ॉल्ट देता है जबकि क्रिएटर्स को अपनी सोच व्यक्त करने देता है।</p>
<h3 id="संरचनाओं-के-लिए-wave-function-collapse" tabindex="-1">संरचनाओं के लिए Wave Function Collapse <a class="header-anchor" href="#संरचनाओं-के-लिए-wave-function-collapse" aria-label="Permalink to &quot;संरचनाओं के लिए Wave Function Collapse&quot;"></a></h3>
<p>Wave Function Collapse (WFC) adjacency कंस्ट्रेंट वाले टाइल के सेट से संरचनाएँ (इमारतें, डंजन, सड़कें) जनरेट करता है। मॉड्यूलर बिल्डिंग पीस के एक सेट और इस बारे में नियमों को देखते हुए कि कौन-से पीस किससे जुड़ सकते हैं, WFC पूरे गाँव, किले के लेआउट, या डंजन मैप जनरेट कर सकता है।</p>
<p>एक क्रिएटर वर्ल्ड के लिए, WFC सक्षम बनाता है:</p>
<ul>
<li><strong>ऑटो-जनित गाँव</strong> जो क्रिएटर्स द्वारा कस्टमाइज़ करने से पहले दुनिया को बेसलाइन कंटेंट से भरते हैं</li>
<li><strong>सहायता-प्राप्त बिल्डिंग</strong> जहाँ एक क्रिएटर कुछ पीस रखता है और WFC खाली जगहें भर देता है (Townscaper जैसा लेकिन 3D बिल्डिंग ब्लॉक के साथ)</li>
<li><strong>डंजन जनरेशन</strong> उन इंटरैक्टिव अनुभवों के लिए जिन्हें क्रिएटर कॉन्फ़िगर कर सकते हैं (थीम, कठिनाई, और आकार सेट करें, और WFC लेआउट जनरेट करता है)</li>
</ul>
<p>Oskar Stalberg (Townscaper और Bad North के निर्माता) ने दिखाया है कि WFC-आधारित जनरेशन उपयोगकर्ताओं को जादुई लगती है। वे कुछ ब्लॉक रखते हैं और सिस्टम उनके आसपास सौंदर्यात्मक रूप से सुसंगत संरचनाएँ जनरेट करता है। यह बिल्कुल वही &quot;सरल टूल, समृद्ध आउटपुट&quot; सिद्धांत है जो क्रिएटर प्लैटफ़ॉर्म पर सफल होता है।</p>
<h2 id="कंटेंट-मॉडरेशन-आर्किटेक्चर" tabindex="-1">कंटेंट मॉडरेशन आर्किटेक्चर <a class="header-anchor" href="#कंटेंट-मॉडरेशन-आर्किटेक्चर" aria-label="Permalink to &quot;कंटेंट मॉडरेशन आर्किटेक्चर&quot;"></a></h2>
<p>एक ऐसी दुनिया में जहाँ क्रिएटर मनमाना 3D कंटेंट रखते हैं जिसे दूसरे देख सकते हैं, मॉडरेशन वैकल्पिक नहीं है। यह एक मुख्य इंफ़्रास्ट्रक्चर घटक है।</p>
<h3 id="स्वचालित-स्क्रीनिंग-पाइपलाइन" tabindex="-1">स्वचालित स्क्रीनिंग पाइपलाइन <a class="header-anchor" href="#स्वचालित-स्क्रीनिंग-पाइपलाइन" aria-label="Permalink to &quot;स्वचालित स्क्रीनिंग पाइपलाइन&quot;"></a></h3>
<p>दुनिया में प्रवेश करने वाला हर एसेट दूसरे खिलाड़ियों को दिखने से पहले एक मल्टी-स्टेज पाइपलाइन से गुज़रता है:</p>
<ol>
<li>
<p><strong>ज्यामिति विश्लेषण।</strong> एक ट्रेन किए गए क्लासिफ़ायर का उपयोग करके मेश को शारीरिक रूप से अश्लील आकृतियों के लिए स्कैन करें। यह स्पष्ट रूप से अनुपयुक्त 3D मॉडल के बड़े हिस्से को पकड़ता है। कई कमर्शियल API (Azure Content Safety, 3D के लिए Google Cloud Vision) इसे संभालते हैं। क्लासिफ़ायर कई कोणों से मेश सिल्हूट पर चलता है, जो कंप्यूटेशनल रूप से सस्ता है।</p>
</li>
<li>
<p><strong>टेक्सचर विश्लेषण।</strong> हर टेक्सचर को एक मानक इमेज कंटेंट मॉडरेशन API से गुज़ारें (वही जो अपलोड की गई तस्वीरों के लिए उपयोग होते हैं)। यह उन अनुपयुक्त इमेज को पकड़ता है जो अन्यथा निर्दोष ज्यामिति पर टेक्सचर के रूप में लगाई गई हैं।</p>
</li>
<li>
<p><strong>टेक्स्ट डिटेक्शन।</strong> अगर ऑब्जेक्ट में टेक्स्ट है (या तो टेक्सचर में या 3D टेक्स्ट मेश के रूप में), तो OCR चलाएँ और कंटेंट पॉलिसी के विरुद्ध जाँच करें। यह नफ़रत भरी बोली, गालियाँ, और अन्य टेक्स्ट-आधारित उल्लंघन पकड़ता है।</p>
</li>
<li>
<p><strong>स्वचालित अनुमोदन।</strong> अगर सभी जाँचें पास हो जाती हैं, तो एसेट तुरंत दिखने लगता है। अगर कोई जाँच एसेट को फ़्लैग करती है, तो यह एक समीक्षा कतार में चला जाता है।</p>
</li>
<li>
<p><strong>मानव समीक्षा।</strong> फ़्लैग किए गए एसेट की समीक्षा एक मॉडरेटर करता है। एक छोटे प्लैटफ़ॉर्म के लिए, यह टीम हो सकती है। स्केल के लिए, मॉडरेशन सेवाओं का अनुबंध करें (वही जो सोशल मीडिया कंटेंट मॉडरेट करती हैं)।</p>
</li>
</ol>
<h3 id="स्पेशियल-मॉडरेशन" tabindex="-1">स्पेशियल मॉडरेशन <a class="header-anchor" href="#स्पेशियल-मॉडरेशन" aria-label="Permalink to &quot;स्पेशियल मॉडरेशन&quot;"></a></h3>
<p>अलग-अलग एसेट से परे, ऑब्जेक्ट की स्थानिक व्यवस्था अनुपयुक्त हो सकती है भले ही हर ऑब्जेक्ट अकेले ठीक हो। इसे स्वचालित रूप से पता लगाना कठिन है। व्यावहारिक तरीका:</p>
<ul>
<li><strong>प्लेयर रिपोर्टिंग।</strong> कोई भी खिलाड़ी किसी स्थान की रिपोर्ट कर सकता है। रिपोर्ट में एक स्क्रीनशॉट (रिपोर्ट किए गए कोऑर्डिनेट पर स्वचालित रूप से लिया गया) और रिपोर्ट करने वाले खिलाड़ी का खाता शामिल है। रिपोर्ट मानव समीक्षा शुरू करती हैं।</li>
<li><strong>हीट मैपिंग।</strong> ट्रैक करें कि कौन-से क्षेत्र रिपोर्ट पैदा करते हैं। अगर किसी क्रिएटर का प्लॉट लगातार रिपोर्ट पैदा करता है, तो समीक्षा तक बढ़ाएँ। अगर कोई क्रिएटर बार-बार उल्लंघन करता पाया जाता है, तो उनकी संपादन अनुमतियाँ सीमित करें।</li>
<li><strong>पार्सल रेटिंग।</strong> Second Life की तरह, क्रिएटर्स को अपने पार्सल को खुद रेट करने दें। डिफ़ॉल्ट व्यू &quot;General&quot; से ऊपर रेट किए गए पार्सल छिपाता है। खिलाड़ी मैच्योर कंटेंट देखने के लिए ऑप्ट-इन करते हैं। यह उल्लंघन नहीं रोकता लेकिन एक्सपोज़र कम करता है।</li>
</ul>
<h3 id="लेटेंसी-संबंधी-विचार" tabindex="-1">लेटेंसी संबंधी विचार <a class="header-anchor" href="#लेटेंसी-संबंधी-विचार" aria-label="Permalink to &quot;लेटेंसी संबंधी विचार&quot;"></a></h3>
<p>अगर स्वचालित स्क्रीनिंग प्रति एसेट 5-10 सेकंड लेती है, तो एक क्रिएटर द्वारा ऑब्जेक्ट रखने और उसके दूसरे खिलाड़ियों को दिखने के बीच एक ध्यान देने योग्य देरी होती है। विकल्प:</p>
<ul>
<li><strong>आशावादी स्थानीय प्रदर्शन।</strong> क्रिएटर अपनी प्लेसमेंट तुरंत देखता है। दूसरे खिलाड़ी इसे अनुमोदन के बाद देखते हैं। अगर एसेट अस्वीकृत होता है, तो यह गायब हो जाता है और क्रिएटर को सूचित किया जाता है।</li>
<li><strong>पहले से स्वीकृत एसेट लाइब्रेरी।</strong> अधिकांश प्लेसमेंट प्लैटफ़ॉर्म की लाइब्रेरी से पहले से जाँचे गए एसेट उपयोग करती है (उन AI-जनित एसेट समेत जिन्हें जनरेशन के दौरान जाँचा गया था)। कस्टम अपलोड स्क्रीनिंग से गुज़रते हैं। इसका मतलब है कि अधिकांश प्लेसमेंट तुरंत होती हैं।</li>
<li><strong>प्रतिष्ठा-आधारित फ़ास्ट-ट्रैकिंग।</strong> स्वीकृत कंटेंट के इतिहास वाले क्रिएटर्स को नई प्लेसमेंट के लिए स्वचालित अनुमोदन मिलता है। नए क्रिएटर या फ़्लैग किए गए क्रिएटर पूरी स्क्रीनिंग से गुज़रते हैं।</li>
</ul>
<h2 id="ब्राउज़र-3d-परफ़ॉर्मेंस-असली-आँकड़े" tabindex="-1">ब्राउज़र 3D परफ़ॉर्मेंस: असली आँकड़े <a class="header-anchor" href="#ब्राउज़र-3d-परफ़ॉर्मेंस-असली-आँकड़े" aria-label="Permalink to &quot;ब्राउज़र 3D परफ़ॉर्मेंस: असली आँकड़े&quot;"></a></h2>
<p>सैद्धांतिक बजट उपयोगी हैं। असल में मापा गया परफ़ॉर्मेंस ज़्यादा उपयोगी है। यहाँ प्रोडक्शन हार्डवेयर पर चलने वाले ब्राउज़र 3D सीन के असली आँकड़े हैं।</p>
<h3 id="रेंडरिंग-बेंचमार्क" tabindex="-1">रेंडरिंग बेंचमार्क <a class="header-anchor" href="#रेंडरिंग-बेंचमार्क" aria-label="Permalink to &quot;रेंडरिंग बेंचमार्क&quot;"></a></h3>
<p><strong>10,000 इंस्टैंस्ड ऑब्जेक्ट वाला Three.js सीन</strong> (पेड़, चट्टानें, हर एक 500 ट्रायएंगल):</p>
<ul>
<li>MacBook Pro M1 (Chrome, WebGL2): 58-60fps</li>
<li>RTX 3060 डेस्कटॉप (Chrome, WebGL2): 60fps लॉक्ड</li>
<li>Intel UHD 620 लैपटॉप (Chrome, WebGL2): 25-35fps</li>
<li>iPhone 13 (Safari, WebGL2): 30-40fps</li>
</ul>
<p><strong>100,000 इंस्टैंस्ड घास की पत्तियों वाला Three.js सीन</strong> (हर एक 6 ट्रायएंगल, कुल 600K ट्रायएंगल):</p>
<ul>
<li>M1 MacBook: 55fps</li>
<li>RTX 3060: 60fps</li>
<li>Intel UHD 620: 12fps</li>
<li>iPhone 13: 15fps</li>
</ul>
<p><strong>1M ट्रायएंगल, 4 LOD स्तर, Havok physics वाला Babylon.js टेरेन</strong>:</p>
<ul>
<li>M1 MacBook (WebGPU): 60fps</li>
<li>M1 MacBook (WebGL2): 45fps</li>
<li>RTX 3060 (WebGPU): 60fps</li>
<li>RTX 3060 (WebGL2): 55fps</li>
</ul>
<p><strong>Gaussian splat सीन, 2M स्प्लैट</strong> (gsplat.js के ज़रिए):</p>
<ul>
<li>M1 MacBook (WebGL2): 30fps</li>
<li>RTX 3060 (WebGL2): 45fps</li>
<li>RTX 3060 (WebGPU): 60fps</li>
</ul>
<h3 id="मेमोरी-माप" tabindex="-1">मेमोरी माप <a class="header-anchor" href="#मेमोरी-माप" aria-label="Permalink to &quot;मेमोरी माप&quot;"></a></h3>
<p><strong>Three.js न्यूनतम सीन</strong> (स्काईबॉक्स, टेरेन, 100 ऑब्जेक्ट): 80-120 MB GPU मेमोरी, 150-200 MB JS हीप
<strong>Havok physics वाला Babylon.js</strong>: 200-300 MB GPU मेमोरी, 250-350 MB JS हीप (Havok Wasm करीब 50 MB जोड़ता है)
<strong>ब्राउज़र टैब मेमोरी सीमाएँ</strong> (मापी गई, दस्तावेज़ीकृत नहीं):</p>
<ul>
<li>Chrome डेस्कटॉप: आमतौर पर करीब 4 GB पर क्रैश होता है</li>
<li>Chrome Android: आमतौर पर करीब 1-1.5 GB पर क्रैश होता है</li>
<li>Safari iOS: आमतौर पर करीब 1 GB पर क्रैश होता है</li>
<li>Firefox डेस्कटॉप: आमतौर पर करीब 3-4 GB पर क्रैश होता है</li>
</ul>
<h3 id="नेटवर्क-माप" tabindex="-1">नेटवर्क माप <a class="header-anchor" href="#नेटवर्क-माप" aria-label="Permalink to &quot;नेटवर्क माप&quot;"></a></h3>
<p><strong>WebSocket राउंड-ट्रिप लेटेंसी</strong> (ब्राउज़र से Cloudflare एज तक):</p>
<ul>
<li>एक ही महाद्वीप: 10-30ms</li>
<li>महाद्वीप पार: 80-200ms</li>
<li>Cloudflare Durable Objects के साथ: पहले अनुरोध पर DO वेक-अप के लिए 5-10ms जोड़ें</li>
</ul>
<p><strong>WebRTC DataChannel लेटेंसी</strong> (TURN के ज़रिए ब्राउज़र से ब्राउज़र तक):</p>
<ul>
<li>एक ही शहर: 5-15ms</li>
<li>एक ही महाद्वीप: 20-50ms</li>
<li>महाद्वीप पार: 100-250ms</li>
</ul>
<p><strong>WebTransport (HTTP/3 QUIC)</strong> लेटेंसी WebSocket के बराबर है लेकिन हेड-ऑफ़-लाइन ब्लॉकिंग के बिना, इसलिए P99 लेटेंसी काफ़ी बेहतर है (एक खोए हुए पैकेट से कोई रुकावट नहीं)।</p>
<h3 id="लोड-टाइम-माप" tabindex="-1">लोड टाइम माप <a class="header-anchor" href="#लोड-टाइम-माप" aria-label="Permalink to &quot;लोड टाइम माप&quot;"></a></h3>
<p><strong>Three.js खाली सीन</strong> (बस लाइब्रेरी): पहले फ़्रेम तक 350ms
<strong>Babylon.js खाली सीन</strong>: पहले फ़्रेम तक 500ms
<strong>fetch + parse के ज़रिए 1 MB GLB मॉडल</strong>: ब्रॉडबैंड पर 200-400ms
<strong>KTX2 टेक्सचर, 1024x1024, Basis Universal</strong>: GPU पर डिकोड करने के लिए 50-100ms
<strong>Draco-कम्प्रेस्ड मेश, 50K ट्रायएंगल</strong>: Web Worker में डिकोड करने के लिए 30-80ms</p>
<p>ये आँकड़े पुष्टि करते हैं कि आर्किटेक्चर सेक्शन में दिया गया परफ़ॉर्मेंस बजट हासिल किया जा सकता है। एक मिड-रेंज डेस्कटॉप एक जटिल ओपन वर्ल्ड सीन को 60fps पर रेंडर कर सकता है। मोबाइल बाधा है: फ़ोन पर 30fps बनाए रखने के लिए आपको आक्रामक LOD और छोटी व्यू दूरी की ज़रूरत होगी।</p>
<h2 id="पूरा-स्टैक" tabindex="-1">पूरा स्टैक <a class="header-anchor" href="#पूरा-स्टैक" aria-label="Permalink to &quot;पूरा स्टैक&quot;"></a></h2>
<p>सब कुछ साथ रखते हुए, यहाँ एक ब्राउज़र-आधारित मल्टीप्लेयर क्रिएटर ओपन वर्ल्ड के लिए आर्किटेक्चर है:</p>
<h3 id="क्लाइंट-ब्राउज़र" tabindex="-1">क्लाइंट (ब्राउज़र) <a class="header-anchor" href="#क्लाइंट-ब्राउज़र" aria-label="Permalink to &quot;क्लाइंट (ब्राउज़र)&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>लेयर</th>
<th>टेक्नोलॉजी</th>
<th>भूमिका</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>रेंडरर</strong></td>
<td>Babylon.js (WebGPU + WebGL2 फ़ॉलबैक)</td>
<td>सीन रेंडरिंग, टेरेन, LOD, पोस्ट-प्रोसेसिंग</td>
</tr>
<tr>
<td><strong>टेरेन</strong></td>
<td>कस्टम हाइटमैप सिस्टम + Babylon DynamicTerrain</td>
<td>स्प्लैटिंग के साथ चंक-आधारित स्ट्रीमिंग टेरेन</td>
</tr>
<tr>
<td><strong>Physics</strong></td>
<td>Rapier (Wasm) या Havok (Babylon के ज़रिए)</td>
<td>कैरेक्टर कंट्रोलर, कोलिज़न, रेकास्टिंग</td>
</tr>
<tr>
<td><strong>ECS</strong></td>
<td>bitECS</td>
<td>सभी वर्ल्ड ऑब्जेक्ट के लिए एंटिटी प्रबंधन</td>
</tr>
<tr>
<td><strong>नेटवर्किंग</strong></td>
<td>WebSocket + WebRTC DataChannel</td>
<td>स्टेट सिंक, पोज़िशन अपडेट, वॉइस चैट</td>
</tr>
<tr>
<td><strong>स्टेट</strong></td>
<td>Yjs (CRDT)</td>
<td>सहयोगी वर्ल्ड एडिटिंग, कॉन्फ़्लिक्ट रिज़ॉल्यूशन</td>
</tr>
<tr>
<td><strong>ऑडियो</strong></td>
<td>Web Audio API</td>
<td>स्पेशियल ऑडियो, एम्बिएंस, संगीत</td>
</tr>
<tr>
<td><strong>UI</strong></td>
<td>HTML/CSS ओवरले</td>
<td>HUD, इन्वेंटरी, चैट, क्रिएटर टूल</td>
</tr>
<tr>
<td><strong>Workers</strong></td>
<td>Web Workers</td>
<td>एसेट डिकम्प्रेशन, physics, टेरेन जनरेशन</td>
</tr>
</tbody>
</table>
<h3 id="सर्वर" tabindex="-1">सर्वर <a class="header-anchor" href="#सर्वर" aria-label="Permalink to &quot;सर्वर&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>लेयर</th>
<th>टेक्नोलॉजी</th>
<th>भूमिका</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>वर्ल्ड शार्ड</strong></td>
<td>Cloudflare Durable Objects</td>
<td>प्रति-चंक प्रामाणिक स्टेट, WebSocket एंडपॉइंट</td>
</tr>
<tr>
<td><strong>एसेट स्टोरेज</strong></td>
<td>Cloudflare R2</td>
<td>GLB मॉडल, KTX2 टेक्सचर, हाइटमैप, ऑडियो</td>
</tr>
<tr>
<td><strong>एसेट CDN</strong></td>
<td>Cloudflare CDN (R2 पब्लिक बकेट)</td>
<td>वर्ल्ड एसेट की एज-कैश्ड डिलीवरी</td>
</tr>
<tr>
<td><strong>AI जनरेशन</strong></td>
<td>GPU इंस्टेंस (Hetzner/Lambda/RunPod)</td>
<td>3D मॉडल जेन, टेरेन जेन, टेक्सचर जेन</td>
</tr>
<tr>
<td><strong>एसेट पाइपलाइन</strong></td>
<td>Cloudflare Queue + Workers</td>
<td>LOD जनरेशन, मेश ऑप्टिमाइज़ेशन, फ़ॉर्मेट कन्वर्ज़न</td>
</tr>
<tr>
<td><strong>Auth</strong></td>
<td>Auth0</td>
<td>क्रिएटर पहचान, अनुमतियाँ</td>
</tr>
<tr>
<td><strong>डेटाबेस</strong></td>
<td>Cloudflare D1</td>
<td>वर्ल्ड मेटाडेटा, क्रिएटर इन्वेंटरी, अनुमतियाँ</td>
</tr>
<tr>
<td><strong>रियल-टाइम</strong></td>
<td>Cloudflare Durable Objects + Pub/Sub</td>
<td>प्लेयर प्रेज़ेंस, चैट, इवेंट ब्रॉडकास्ट</td>
</tr>
</tbody>
</table>
<h3 id="डेटा-फ़्लो" tabindex="-1">डेटा फ़्लो <a class="header-anchor" href="#डेटा-फ़्लो" aria-label="Permalink to &quot;डेटा फ़्लो&quot;"></a></h3>
<ol>
<li>खिलाड़ी अपने ब्राउज़र में दुनिया खोलता है</li>
<li>क्लाइंट प्रमाणित करता है, अपने स्पॉन चंक के लिए सबसे नज़दीकी Durable Object से कनेक्ट करता है</li>
<li>DO मौजूदा चंक स्टेट भेजता है (टेरेन + ऑब्जेक्ट + आस-पास के खिलाड़ी)</li>
<li>क्लाइंट रेंडरिंग शुरू करता है, R2/CDN से आसपास के चंक का अनुरोध करता है</li>
<li>जैसे-जैसे खिलाड़ी चलता है, क्लाइंट आसपास के DO से कनेक्ट होता है, दूर वालों से डिस्कनेक्ट होता है</li>
<li>क्रिएटर एक ऑब्जेक्ट रखता है: क्लाइंट एडिट DO को भेजता है, DO सत्यापित करता है और CRDT डेल्टा के ज़रिए सभी कनेक्टेड क्लाइंट को प्रसारित करता है</li>
<li>DO हर एडिट पर चंक स्टेट को स्टोरेज में सहेजता है (डीबाउंस्ड)</li>
<li>दूसरे खिलाड़ी नए ऑब्जेक्ट को 100-200ms के भीतर प्रकट होते देखते हैं</li>
</ol>
<h2 id="परफ़ॉर्मेंस-बजट" tabindex="-1">परफ़ॉर्मेंस बजट <a class="header-anchor" href="#परफ़ॉर्मेंस-बजट" aria-label="Permalink to &quot;परफ़ॉर्मेंस बजट&quot;"></a></h2>
<p>एक मिड-रेंज डेस्कटॉप (RTX 3060 / M1 Mac / 16GB RAM) पर 60fps अनुभव के लिए:</p>
<table tabindex="0">
<thead>
<tr>
<th>संसाधन</th>
<th>बजट</th>
<th>नोट्स</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>ड्रॉ कॉल</strong></td>
<td>प्रति फ़्रेम &lt; 500</td>
<td>बैचिंग, इंस्टैंसिंग, LOD</td>
</tr>
<tr>
<td><strong>ट्रायएंगल</strong></td>
<td>प्रति फ़्रेम &lt; 2M</td>
<td>LOD इसे नियंत्रण में रखता है</td>
</tr>
<tr>
<td><strong>टेक्सचर मेमोरी</strong></td>
<td>&lt; 512 MB</td>
<td>KTX2 कम्प्रेशन, स्ट्रीमिंग, एटलस पूलिंग</td>
</tr>
<tr>
<td><strong>ज्यामिति मेमोरी</strong></td>
<td>&lt; 256 MB</td>
<td>साझा बफ़र, पूलिंग, आक्रामक अनलोड</td>
</tr>
<tr>
<td><strong>JavaScript हीप</strong></td>
<td>&lt; 512 MB</td>
<td>ECS ऑब्जेक्ट नहीं, टाइप्ड एरे उपयोग करता है</td>
</tr>
<tr>
<td><strong>नेटवर्क</strong></td>
<td>निरंतर &lt; 500 KB/s</td>
<td>डेल्टा कम्प्रेशन, स्पेशियल प्रासंगिकता फ़िल्टरिंग</td>
</tr>
<tr>
<td><strong>शुरुआती लोड</strong></td>
<td>&lt; 10 MB, &lt; 5 सेकंड</td>
<td>प्रोग्रेसिव लोडिंग, टेरेन-पहले</td>
</tr>
<tr>
<td><strong>चंक लोड</strong></td>
<td>&lt; 200 KB, &lt; 200ms</td>
<td>आसपास के चंक प्री-फ़ेच करें</td>
</tr>
</tbody>
</table>
<h2 id="सफल-ब्राउज़र-गेम-और-वे-क्या-साबित-करते-हैं" tabindex="-1">सफल ब्राउज़र गेम और वे क्या साबित करते हैं <a class="header-anchor" href="#सफल-ब्राउज़र-गेम-और-वे-क्या-साबित-करते-हैं" aria-label="Permalink to &quot;सफल ब्राउज़र गेम और वे क्या साबित करते हैं&quot;"></a></h2>
<p>ब्राउज़र गेम कोई निच नहीं हैं। ये सबसे बड़े गेमिंग बाज़ारों में से एक हैं। Poki हर महीने 100 मिलियन से ज़्यादा खिलाड़ियों को सेवा देता है। CrazyGames, Newgrounds, और itch.io लाखों और को सेवा देते हैं। ब्राउज़र में सफल होने वाले गेमों में विशिष्ट आर्किटेक्चरल पैटर्न होते हैं जिन पर अध्ययन सार्थक है।</p>
<h3 id="आज-शिप-होने-वाले-ब्राउज़र-3d-गेम" tabindex="-1">आज शिप होने वाले ब्राउज़र 3D गेम <a class="header-anchor" href="#आज-शिप-होने-वाले-ब्राउज़र-3d-गेम" aria-label="Permalink to &quot;आज शिप होने वाले ब्राउज़र 3D गेम&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/lCGlEgKAMbE" title="Hordes.io Gameplay" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Hordes.io: एक सतत 3D ब्राउज़र MMO में 200+ खिलाड़ी। कस्टम WebGL, लो-पॉली शैली, 5 सेकंड से कम में लोड होता है। एक डेवलपर ने बनाया।</div>
<p><strong>Hordes.io</strong> सबसे प्रासंगिक ब्राउज़र MMO है। कस्टम WebGL रेंडरिंग का उपयोग करके एक अकेले डेवलपर द्वारा बनाया गया, यह एक सतत 3D वर्ल्ड में 200+ खिलाड़ियों को रियल-टाइम कॉम्बैट, गिल्ड, क्लास, और PvP के साथ रखता है। पूरा गेम 5 सेकंड से कम में लोड होता है। दुनिया आक्रामक कलिंग वाले ज़ोन में बँटी है। प्लेयर मॉडल सरल हैं (फ़्लैट शेडिंग के साथ लो-पॉली) लेकिन पार्टिकल इफ़ेक्ट और एनिमेशन कॉम्बैट को रिस्पॉन्सिव महसूस कराते हैं। Hordes.io तीन चीज़ें साबित करता है: ब्राउज़र MMO एक सीन में सैकड़ों समवर्ती खिलाड़ी संभाल सकते हैं, एक अकेला डेवलपर एक बना सकता है, और ब्राउज़र में स्टाइलाइज़्ड ग्राफ़िक्स रियलिस्टिक से बेहतर परफ़ॉर्म करते हैं।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/559m0bR1fgg" title="Krunker.io Gameplay and Map Editor" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Krunker.io: 10M मासिक खिलाड़ी, Three.js पर बना, एक पूर्ण इन-ब्राउज़र मैप एडिटर और उपयोगकर्ता-जनित कंटेंट मार्केटप्लेस के साथ।</div>
<p><strong>Krunker.io</strong> 10 मिलियन से ज़्यादा मासिक खिलाड़ियों के शिखर पर पहुँचा और FRVR द्वारा अधिग्रहित किया गया। यह एक पूर्ण मैप एडिटर, कस्टम गेम मोड, उपयोगकर्ता-जनित कंटेंट, और एक मार्केटप्लेस वाला ब्राउज़र-आधारित FPS है। Three.js पर बना, यह अपनी ब्लॉकी आर्ट शैली और आक्रामक ऑप्टिमाइज़ेशन के कारण लो-एंड हार्डवेयर पर भी 60fps+ पर चलता है। लेवल एडिटर विशेष रूप से प्रासंगिक है। खिलाड़ी एक वॉक्सेल जैसी ब्लॉक सिस्टम का उपयोग करके मैप बनाते हैं, उन्हें मार्केटप्लेस पर साझा करते हैं, और दूसरे उन पर खेलते हैं। यह क्रिएटर-वर्ल्ड लूप का छोटा रूप है: कुछ बनाओ, उसे साझा करो, दूसरे उसे अनुभव करें। Krunker ने साबित किया कि उपयोगकर्ता-जनित 3D कंटेंट ब्राउज़र में काम कर सकता है अगर निर्माण टूल काफ़ी सरल हों।</p>
<p><strong>ev.io</strong> Babylon.js पर बना एक ब्राउज़र FPS है। यह अधिकांश हार्डवेयर पर अच्छा चलता है, कस्टम मैप का समर्थन करता है, और दिखाता है कि Babylon का WebGL रेंडरर एक ब्राउज़र टैब में तेज़-गति वाला 3D एक्शन संभाल सकता है। गेम परफ़ॉर्मेंस बजट के भीतर रहने के लिए आक्रामक टेक्सचर कम्प्रेशन और लो-पॉली पर्यावरण उपयोग करता है।</p>
<p><strong>Shell Shockers</strong> (5 मिलियन से ज़्यादा मासिक खिलाड़ी) एक 3D मल्टीप्लेयर शूटर है जहाँ आप अंडों के रूप में खेलते हैं। Three.js पर बना, यह ब्राउज़र में रिस्पॉन्सिव हिट डिटेक्शन के साथ रियल-टाइम मल्टीप्लेयर संभालता है। कार्टूनी आर्ट शैली एसेट की ज़रूरतें न्यूनतम रखती है जबकि फिर भी पॉलिश्ड दिखती है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/QtVkteAS15M" title="Townscaper Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Townscaper: इमारतें रखने के लिए क्लिक करें, सिस्टम सड़कें, मेहराब, और सीढ़ियाँ स्वचालित रूप से जनरेट करता है। कोई मेन्यू नहीं, कोई उद्देश्य नहीं। शुद्ध रचनात्मक आनंद पर 1 मिलियन से ज़्यादा कॉपी बिकीं।</div>
<p><strong>Townscaper</strong> एक ब्राउज़र गेम नहीं है, लेकिन वर्ल्ड बिल्डिंग के प्रति इसका तरीका बेहद प्रासंगिक है। खिलाड़ी एक पानी की सतह पर इमारतें रखने के लिए क्लिक करते हैं। गेम प्लेसमेंट पैटर्न के आधार पर स्वचालित रूप से वास्तुशिल्प डिटेल, सड़कें, मेहराब, और सीढ़ियाँ जनरेट करता है। कोई मेन्यू नहीं, कोई सेटिंग नहीं, कोई उद्देश्य नहीं। बस क्लिक करो और बनाओ। इसकी 1 मिलियन से ज़्यादा कॉपी बिकीं। सीख: कभी-कभी सबसे सरल रचनात्मक टूल सबसे आकर्षक अनुभव पैदा करते हैं। अगर हम दुनिया में ऑब्जेक्ट रखना Townscaper जितना तत्काल महसूस करा सकें, तो क्रिएटर घंटों बनाने में बिताएँगे।</p>
<p><strong>A-Frame / 8th Wall अनुभव।</strong> A-Frame (Three.js पर बना) हज़ारों वेब-आधारित 3D अनुभवों को चलाता है। 8th Wall, वह लंबे समय से चलने वाला WebAR प्लैटफ़ॉर्म जिसे Niantic ने अधिग्रहित किया, ने दिखाया कि जटिल कैमरा-आधारित AR मोबाइल ब्राउज़र में बिना प्लगइन चलता है, हालाँकि Niantic ने 2025 के अंत में घोषणा की कि वह सेवा बंद कर रहा है (होस्ट किए गए अनुभव 2027 तक चालू रहेंगे)। ये गेम नहीं हैं, लेकिन वे दिखाते हैं कि physics और इंटरैक्शन के साथ जटिल 3D रेंडरिंग एक ब्राउज़र टैब में बिना प्लगइन काम करती है। इनमें से कई अनुभव 2-3 सेकंड में लोड होते हैं और मिड-रेंज फ़ोन पर चलते हैं।</p>
<h3 id="vuntra-city-एक-लाइव-प्रोसीजरल-सिटी-लैब" tabindex="-1">Vuntra City: एक लाइव प्रोसीजरल सिटी लैब <a class="header-anchor" href="#vuntra-city-एक-लाइव-प्रोसीजरल-सिटी-लैब" aria-label="Permalink to &quot;Vuntra City: एक लाइव प्रोसीजरल सिटी लैब&quot;"></a></h3>
<p>Vuntra City एक नेटिव UE5 प्रोजेक्ट है, ब्राउज़र गेम नहीं, इसलिए यह हमारे स्टैक के लिए सीधा परफ़ॉर्मेंस बेंचमार्क नहीं है। फिर भी यह हमारे ओपन-वर्ल्ड आर्किटेक्चर के लिए सबसे उपयोगी पब्लिक केस स्टडीज में से एक है क्योंकि devlogs असली प्रोडक्शन दबाव में सिस्टम डिज़ाइन ट्रेड-ऑफ़ के बारे में असामान्य रूप से विशिष्ट हैं।</p>
<p>एक मज़बूत सीख स्पीड-अवेयर डिटेल पॉलिसी है। ट्रांसपोर्ट और ऑप्टिमाइज़ेशन वीडियो में, हाई-स्पीड ट्रैवर्सल को छतों के ऊपर ले जाया जाता है, जबकि स्पीड बढ़ने पर वर्ल्ड डिटेल घट जाती है ताकि स्ट्रीम मैनेजर इंटीरियर churn से न दब जाए (<a href="https://www.youtube.com/watch?v=KKeBElJS6-M" target="_blank" rel="noreferrer">rapid transport</a>, <a href="https://www.youtube.com/watch?v=aPuYXyJet38" target="_blank" rel="noreferrer">optimization techniques</a>)। यह हमारी ब्राउज़र योजना से साफ़ मैप होता है जहाँ वेलोसिटी को सीधे प्रीफ़ेच रेडियस, इंटीरियर एक्टिवेशन रेंज, और प्रति-फ़्रेम स्पॉन बजट नियंत्रित करना चाहिए।</p>
<p>एक और सीख टोपोलॉजी डेटा और रेंडर किए गए ऑब्जेक्ट के बीच कड़ा अलगाव है। maps और addresses कार्यान्वयन एक ग्लोबल टोपोलॉजी कंट्रोलर उपयोग करता है जो अनलोड किए गए क्षेत्रों के लिए स्थान और पता प्रश्नों का उत्तर दे सकता है (<a href="https://www.youtube.com/watch?v=6dLn1GQpu2c" target="_blank" rel="noreferrer">maps and addresses</a>)। यह बिल्कुल वही पैटर्न है जो हमें सर्वर-प्रामाणिक रूटिंग, POI लुकअप, और वर्ल्ड-स्तरीय प्रश्नों के लिए चाहिए जो इस पर निर्भर नहीं होने चाहिए कि एक क्लाइंट के पास इस समय मेमोरी में क्या है।</p>
<p>NPC का काम भी बेहद प्रासंगिक है। मिलियन-NPC सिस्टम मोटे शेड्यूल स्टेट को ग्लोबली कंप्यूट करता है, फिर केवल प्लेयर-आसन्न स्पेस में महँगे व्यवहार का सिमुलेशन करता है (<a href="https://www.youtube.com/watch?v=nBV0yAAJUf0" target="_blank" rel="noreferrer">million persistent NPCs</a>, <a href="https://www.youtube.com/watch?v=eUi7DB1ar3s" target="_blank" rel="noreferrer">behind the scenes</a>)। हमारे लिए, यह एक दो-स्तरीय सिमुलेशन मॉडल को मज़बूत करता है: सस्ती डिटरमिनिस्टिक फ़ार-फ़ील्ड स्टेट, AOI के अंदर समृद्ध नियर-फ़ील्ड व्यवहार।</p>
<p>आखिर में, Vuntra City का पर्यावरण डिज़ाइन उस चीज़ को मज़बूत करता है जिसे तकनीकी योजना में भूलना आसान है: वितरण डिज़ाइन कंटेंट डिज़ाइन है। प्रोजेक्ट एकसमान रैंडम प्लेसमेंट से बचता है, आश्चर्य के लिए वेटेड आउटलायर उपयोग करता है, और सर्वव्यापी मिनिमैप मार्कर के बजाय डायजेटिक maps और addresses के ज़रिए खोज चलाता है (<a href="https://www.youtube.com/watch?v=4MZ5-KQW3pc" target="_blank" rel="noreferrer">procedural environments don't have to be boring</a>, <a href="https://www.youtube.com/watch?v=ixR1hqZJlv4" target="_blank" rel="noreferrer">where we're going we won't need a minimap</a>)।</p>
<h3 id="बड़े-पैमाने-पर-पहुँचे-ब्राउज़र-गेम" tabindex="-1">बड़े पैमाने पर पहुँचे ब्राउज़र गेम <a class="header-anchor" href="#बड़े-पैमाने-पर-पहुँचे-ब्राउज़र-गेम" aria-label="Permalink to &quot;बड़े पैमाने पर पहुँचे ब्राउज़र गेम&quot;"></a></h3>
<p><strong>Agar.io</strong> (2015) ने साबित किया कि ब्राउज़र मल्टीप्लेयर लाखों तक पहुँच सकता है। अपने शिखर पर, इसके सर्वर भर में 100,000 से ज़्यादा समवर्ती खिलाड़ी थे। गेम 2D और यांत्रिक रूप से सरल है (छोटी सेल्स को सोखकर बढ़ें), लेकिन नेटवर्किंग आर्किटेक्चर स्पेशियल पार्टिशनिंग के ज़रिए विशाल समवर्तीता संभालता है। हर सर्वर गेम वर्ल्ड का एक क्षेत्र चलाता है। खिलाड़ी केवल अपने व्यू में मौजूद एंटिटी के बारे में अपडेट पाते हैं। यह वही इंटरेस्ट मैनेजमेंट पैटर्न है जो एक 3D ओपन वर्ल्ड के लिए चाहिए, बस 2D में।</p>
<p><strong>Slither.io</strong> ने Agar.io की सफलता पर निर्माण किया और साबित किया कि मॉडल स्केल करता है। शिखर पर 67 मिलियन मासिक सक्रिय उपयोगकर्ता। गेम रियल-टाइम पोज़िशन सिंक के लिए WebSocket और नेटवर्क ट्रैफ़िक सीमित करने के लिए स्पेशियल पार्टिशनिंग उपयोग करता है। एक डिटेल ध्यान देने योग्य है: Slither.io की सर्वर-साइड कोलिज़न डिटेक्शन दूर के खिलाड़ियों के लिए नज़दीकी (30 Hz) की तुलना में कम टिक रेट (5 Hz) पर चलती है। दूरी के अनुसार यह वेरिएबल टिक रेट एक 3D ओपन वर्ल्ड पर लागू होती है।</p>
<p><strong>Surviv.io</strong> एक ब्राउज़र-आधारित बैटल रॉयल था जो Kongregate द्वारा अधिग्रहित होने से पहले 50 मिलियन मासिक खिलाड़ियों तक पहुँचा। इसने पूरी तरह ब्राउज़र में रियल-टाइम नेटवर्क्ड physics, विध्वंसक पर्यावरण, और आइटम पिकअप के साथ एक पूर्ण 80-खिलाड़ी बैटल रॉयल मैच चलाया। मैप पहले से डिज़ाइन किए गए बिल्डिंग टेम्पलेट से प्रोसीजरली व्यवस्थित था, जो एक पैटर्न है जिसे हम क्रिएटर-रखी संरचनाओं के लिए उपयोग कर सकते हैं।</p>
<p><strong>Zombs Royale</strong> ने ब्राउज़र में तेज़ लोड टाइम और रिस्पॉन्सिव नेटवर्किंग के साथ एक 100-खिलाड़ी बैटल रॉयल चलाया। Surviv.io की तरह, इसने साबित किया कि रियल-टाइम ब्राउज़र गेमों में बड़ी खिलाड़ी संख्याएँ व्यावसायिक रूप से व्यवहार्य हैं, सिर्फ़ तकनीकी रूप से संभव नहीं।</p>
<p>इन सभी ब्राउज़र हिट में साझा धागा: वे तेज़ लोड होते हैं (5 सेकंड से कम), वे किसी भी डिवाइस पर काम करते हैं, आर्ट शैली सरल लेकिन सुसंगत है, और नेटवर्किंग विशिष्ट गेमप्ले के लिए ऑप्टिमाइज़ है (स्पेशियल पार्टिशनिंग, वेरिएबल अपडेट रेट, दूर की स्टेट की आक्रामक कलिंग)।</p>
<h3 id="runescape-एक-mmo-जो-ब्राउज़र-में-चला-गया" tabindex="-1">RuneScape: एक MMO जो ब्राउज़र में चला गया <a class="header-anchor" href="#runescape-एक-mmo-जो-ब्राउज़र-में-चला-गया" aria-label="Permalink to &quot;RuneScape: एक MMO जो ब्राउज़र में चला गया&quot;"></a></h3>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/YX7VjGC-2q4" title="Old School RuneScape Steam Launch Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">RuneScape: एक ब्राउज़र टैब में चलने वाली 20+ साल के कंटेंट वाली पूरी MMO। कस्टम बाइनरी प्रोटोकॉल, टाइल-आधारित स्ट्रीमिंग, प्रति सर्वर 2,000 समवर्ती खिलाड़ी। प्रमाण कि ब्राउज़र MMO स्केल पर काम करते हैं।</div>
<p>RuneScape एक ब्राउज़र-आधारित ओपन वर्ल्ड के लिए सबसे महत्वपूर्ण केस स्टडी है क्योंकि यह असल में हुआ। Jagex ने 20 साल के कंटेंट वाली एक पूरी MMO को ब्राउज़र में पहुँचाया।</p>
<p>RuneScape मूल रूप से एक Java applet के रूप में चलता था। जब ब्राउज़र ने Java समर्थन हटाया, तो Jagex ने क्लाइंट को C++ में फिर से बनाया और एक पूरी तरह कार्यात्मक HTML5/WebGL क्लाइंट भी शिप किया। Old School RuneScape (रेट्रो संस्करण) अब Emscripten के ज़रिए WebAssembly में कम्पाइल किए गए एक क्लाइंट के माध्यम से पूरी तरह ब्राउज़र में चलता है। गेम बड़ी सतत दुनिया, प्रति सर्वर सैकड़ों खिलाड़ियों के साथ रियल-टाइम मल्टीप्लेयर, एक कार्यात्मक grand exchange (नीलामी घर) वाली अर्थव्यवस्था, और गहरी प्रगति प्रणालियों वाले 23 कौशल संभालता है।</p>
<p><strong>मायने रखने वाली तकनीकी डिटेल:</strong></p>
<ul>
<li>दुनिया मैप स्क्वायर (64x64 टाइल क्षेत्र) में बँटी है। क्लाइंट खिलाड़ी के आसपास क्षेत्रों का एक 13x13 ग्रिड लोड करता है (104x104 टाइल दिखाई देते हैं)। इस ग्रिड के बाहर के क्षेत्र पूरी तरह कल हो जाते हैं।</li>
<li>टेरेन प्रति टाइल कोने में हाइट मानों के साथ टाइल-आधारित है। टेरेन ओवरले (रास्ते, पानी के किनारे, बीच ट्रांज़िशन) प्रति आकार 12 रोटेशन वेरिएंट वाला एक शेप सिस्टम उपयोग करते हैं। यह एक हाइटमैप से ज़्यादा सीमित है लेकिन बेहद कॉम्पैक्ट और स्ट्रीम करने में तेज़ है।</li>
<li>नेटवर्क प्रोटोकॉल WebSocket पर कस्टम बाइनरी है। हर पैकेट प्रकार की एक परिभाषित संरचना होती है। प्लेयर पोज़िशन अपडेट मैप स्क्वायर कोऑर्डिनेट के लिए 2 बाइट और मूवमेंट प्रकार के लिए वेरिएबल-लेंथ एन्कोडिंग उपयोग करते हैं। चैट, ट्रेड, और कॉम्बैट इवेंट के अपने कॉम्पैक्ट बाइनरी फ़ॉर्मेट हैं। पूरा प्रोटोकॉल न्यूनतम बैंडविड्थ के लिए भारी रूप से ऑप्टिमाइज़ है।</li>
<li>ऑब्जेक्ट रेंडरिंग एक मॉडल सिस्टम उपयोग करती है जहाँ सर्वर एक मॉडल ID भेजता है और क्लाइंट कैश्ड मॉडल रेंडर करता है। अधिकांश मॉडल एक बार लोड होते हैं और फिर से उपयोग होते हैं। इसका मतलब है कि दुनिया ज्यामिति स्ट्रीम करने के बजाय मेटाडेटा (कौन-सा मॉडल कहाँ जाता है) के रूप में स्ट्रीम होती है।</li>
<li>हर सर्वर इंस्टेंस पूरे गेम वर्ल्ड भर में 2,000 समवर्ती खिलाड़ी संभालता है। दुनिया स्पेशियली शार्ड नहीं की गई है। एक अकेली सर्वर प्रोसेस 600ms गेम टिक पर सभी खिलाड़ियों, सभी NPC, और सभी गेम लॉजिक का प्रबंधन करती है। यह काम करता है क्योंकि गेम लॉजिक प्रति-टिक सरल है: प्लेयर एक्शन प्रोसेस करना, NPC AI अपडेट करना, कॉम्बैट हल करना, स्टेट बदलाव प्रसारित करना।</li>
</ul>
<p><strong>RuneScape हमारे केस के लिए क्या साबित करता है:</strong> सतत वर्ल्ड स्टेट, हज़ारों खिलाड़ियों, जटिल गेम सिस्टम, और एक असली अर्थव्यवस्था वाली एक पूरी MMO एक ब्राउज़र टैब में चल सकती है। क्लाइंट 50 MB से कम डाउनलोड होता है, कुछ सेकंड में लोड होता है, और लैपटॉप पर चलता है। अगर एक 20 साल पुरानी Java MMO यह बदलाव कर सकती है, तो एक उद्देश्य-निर्मित ब्राउज़र वर्ल्ड पर और भी कम पाबंदियाँ हैं।</p>
<p><strong>जहाँ RuneScape का तरीका फ़िट नहीं बैठता:</strong> RuneScape की रेंडरिंग आइसोमेट्रिक/फ़िक्स्ड-कैमरा है, फ़र्स्ट/थर्ड-पर्सन 3D नहीं। आधुनिक मानकों से विज़ुअल गुणवत्ता कम है। और दुनिया क्रिएटर-एडिटेबल नहीं है। लेकिन नेटवर्किंग आर्किटेक्चर, टाइल-आधारित स्ट्रीमिंग, और यह प्रमाण कि ब्राउज़र MMO दशकों तक खिलाड़ियों को बनाए रखती हैं, सब सीधे प्रासंगिक हैं।</p>
<h3 id="habbo-hotel-सोशल-स्पेस-जो-25-साल-चले" tabindex="-1">Habbo Hotel: सोशल स्पेस जो 25 साल चले <a class="header-anchor" href="#habbo-hotel-सोशल-स्पेस-जो-25-साल-चले" aria-label="Permalink to &quot;Habbo Hotel: सोशल स्पेस जो 25 साल चले&quot;"></a></h3>
<p>Habbo Hotel 2000 में लॉन्च हुआ और अब भी चल रहा है। यह एक 2D आइसोमेट्रिक सोशल वर्ल्ड है जहाँ उपयोगकर्ता कमरे बनाते और सजाते हैं, दूसरे लोगों के कमरों में जाते हैं, और मेलजोल करते हैं। शिखर पर, इसके 9 मिलियन मासिक उपयोगकर्ता थे। पूरा अनुभव Flash में चलता था (Flash के बंद होने के बाद अब HTML5 में)।</p>
<p>Habbo इसलिए मायने रखता है कि इसने कितने लंबे समय तक एक क्रिएटर समुदाय को बनाए रखा। रूम सिस्टम असल में उसी का 2D संस्करण है जो हम बना रहे हैं: उपयोगकर्ता एक ग्रिड में फ़र्नीचर ऑब्जेक्ट रखते हैं, लेआउट कस्टमाइज़ करते हैं, और दूसरों को आने के लिए आमंत्रित करते हैं। आर्थिक मॉडल (उपयोगकर्ता असली पैसे से वर्चुअल फ़र्नीचर खरीदते हैं) ने जीवनकाल में 1 बिलियन डॉलर से ज़्यादा राजस्व पैदा किया है।</p>
<p><strong>Habbo क्या सिखाता है:</strong></p>
<ul>
<li>उपयोगकर्ता-निर्मित इंटीरियर वाले रूम-आधारित स्पेस दशकों तक एक सोशल प्लैटफ़ॉर्म के रूप में काम करते हैं अगर निर्माण टूल सरल हों और सोशल फ़ीचर मज़बूत हों।</li>
<li>वर्चुअल फ़र्नीचर अर्थव्यवस्था दीर्घकालिक जुड़ाव बनाए रखती है। उपयोगकर्ता आइटम खरीदते, ट्रेड करते, और जमा करते हैं। आइटम की कोई गेमप्ले उपयोगिता नहीं। वे शुद्ध आत्म-अभिव्यक्ति और हैसियत हैं।</li>
<li>सोशल स्पेस में मॉडरेशन के लिए लगातार निवेश चाहिए। Habbo कई मॉडरेशन संकटों से गुज़रा है। स्वचालित कंटेंट फ़िल्टरिंग साथ ही मानव मॉडरेटर साथ ही सामुदायिक रिपोर्टिंग न्यूनतम व्यवहार्य तरीका है।</li>
<li>Flash से HTML5 (करीब 2020-2021 में पूरा) में बदलाव ने साबित किया कि एक बड़ी सोशल वर्ल्ड अपने समुदाय को खोए बिना रेंडरिंग तकनीक माइग्रेट कर सकती है। उपयोगकर्ता अपने कमरों और दोस्तों की परवाह करते हैं, अंतर्निहित तकनीक की नहीं।</li>
</ul>
<h3 id="among-us-और-स्पेशियल-सोशल-गेम" tabindex="-1">Among Us और स्पेशियल सोशल गेम <a class="header-anchor" href="#among-us-और-स्पेशियल-सोशल-गेम" aria-label="Permalink to &quot;Among Us और स्पेशियल सोशल गेम&quot;"></a></h3>
<p>Among Us एक ओपन वर्ल्ड नहीं है, लेकिन इसकी सफलता ने मल्टीप्लेयर स्पेस के बारे में कुछ महत्वपूर्ण उजागर किया: खिलाड़ी एक साथ एक जगह में रहना चाहते हैं, सिर्फ़ एक साथ एक गेम में नहीं। वायरल हुए स्पेशियल प्रॉक्सिमिटी चैट मॉड ने दिखाया कि डायरेक्शनल ऑडियो के साथ एक ही वर्चुअल कमरे में होना मल्टीप्लेयर को एक गेम मैकेनिक से एक सोशल अनुभव में बदल देता है।</p>
<p>एक क्रिएटर वर्ल्ड को बेहतर बनाने वाले स्पेशियल सोशल फ़ीचर:</p>
<ul>
<li><strong>प्रॉक्सिमिटी वॉइस चैट</strong> जहाँ दूरी के साथ आवाज़ कम होती है। बात करने के लिए किसी के पास जाएँ। दूर चले जाएँ और वे फ़ेड हो जाते हैं। यह वॉइस चैनल प्रबंधन की ज़रूरत के बिना स्वाभाविक सोशल क्लस्टर बनाता है।</li>
<li><strong>इमोट और जेस्चर सिस्टम</strong> खिलाड़ियों को बिना आवाज़ के खुद को व्यक्त करने देते हैं। एक हाथ हिलाना, एक नृत्य, एक इशारा। इन्हें लागू करना सस्ता है (प्लेयर अवतार पर एनिमेशन) और ये सोशल जुड़ाव को असमान रूप से बढ़ाते हैं।</li>
<li><strong>साझा गतिविधियाँ</strong> जो इन-वर्ल्ड होती हैं (मेन्यू के ज़रिए नहीं) एक स्पेस को एक आयोजन स्थल में बदल देती हैं। अगर दो क्रिएटर एक वर्चुअल टेबल पर बैठकर साथ में 3D मॉडल देख सकें, तो दुनिया के पास स्टैटिक कंटेंट दिखाने से परे एक अस्तित्व का कारण है।</li>
</ul>
<h3 id="poki-और-crazygames-पर-स्केल-हुए-ब्राउज़र-गेम" tabindex="-1">Poki और CrazyGames पर स्केल हुए ब्राउज़र गेम <a class="header-anchor" href="#poki-और-crazygames-पर-स्केल-हुए-ब्राउज़र-गेम" aria-label="Permalink to &quot;Poki और CrazyGames पर स्केल हुए ब्राउज़र गेम&quot;"></a></h3>
<p>Poki और CrazyGames मिलकर हर महीने 150 मिलियन से ज़्यादा खिलाड़ियों को सेवा देते हैं। इन प्लैटफ़ॉर्म पर सबसे अच्छा परफ़ॉर्म करने वाले गेम विशेष रूप से ब्राउज़र में क्या काम करता है इस बारे में अंतर्दृष्टि देते हैं।</p>
<p><strong>ब्राउज़र गेम पोर्टल पर सबसे अच्छा परफ़ॉर्म करने वाले पैटर्न:</strong></p>
<ul>
<li>तत्काल खेल (इंटरैक्टिव होने में 3 सेकंड से कम)। कोई लॉगिन ज़रूरी नहीं। कोई ट्यूटोरियल ज़रूरी नहीं। गेम लैंडिंग के 5 सेकंड के भीतर समझ में आ जाना चाहिए।</li>
<li>सेशन लचीलापन। खिलाड़ी 2 मिनट या 2 घंटे के लिए आते हैं। गेम दोनों को समायोजित करता है। एक क्रिएटर वर्ल्ड के लिए, इसका मतलब है कि दुनिया एक सेशन के लिए प्रतिबद्ध हुए बिना खोजने योग्य होनी चाहिए। घूमो, अच्छी चीज़ें देखो, चले जाओ। या रुको और घंटों बनाओ।</li>
<li>मोबाइल संगतता। Poki का 60% से ज़्यादा ट्रैफ़िक मोबाइल है। एक ब्राउज़र वर्ल्ड जो केवल डेस्कटॉप पर काम करती है, संभावित आगंतुकों के अधिकांश हिस्से को खो देती है।</li>
<li>ऐसे सोशल फ़ीचर जिनके लिए दोस्तों की ज़रूरत नहीं। लीडरबोर्ड, दूसरे खिलाड़ियों के कंटेंट पर प्रतिक्रियाएँ, असिंक्रोनस फ़ीचर (एक ही समय ऑनलाइन हुए बिना देखें कि दूसरे खिलाड़ियों ने क्या बनाया)।</li>
</ul>
<p>इन पोर्टल पर सबसे सफल 3D गेम (जैसे Shell Shockers, 1v1.LOL, Smash Karts) पॉली काउंट कम, टेक्सचर सरल, और फ़्रेमरेट ऊँचा रखते हैं। वे साबित करते हैं कि खिलाड़ी सरल ग्राफ़िक्स स्वीकार करते हैं अगर अनुभव स्मूथ और रिस्पॉन्सिव हो।</p>
<h3 id="ब्राउज़र-आधारित-क्रिएटर-प्लेटफ़ॉर्म" tabindex="-1">ब्राउज़र-आधारित क्रिएटर प्लेटफ़ॉर्म <a class="header-anchor" href="#ब्राउज़र-आधारित-क्रिएटर-प्लेटफ़ॉर्म" aria-label="Permalink to &quot;ब्राउज़र-आधारित क्रिएटर प्लेटफ़ॉर्म&quot;"></a></h3>
<p><strong>Hubs by Mozilla (अब समुदाय द्वारा संभाला जाता है)।</strong> ब्राउज़र में मल्टी-यूज़र 3D स्पेस, Three.js और A-Frame पर बने। वॉइस चैट, अवतार, और साझा ऑब्जेक्ट सपोर्ट करता है। यह कोई ओपन वर्ल्ड नहीं है (यह रूम-आधारित है), लेकिन नेटवर्किंग और रेंडरिंग आर्किटेक्चर प्रासंगिक हैं। Mozilla ने होस्टेड सेवा बंद करने से पहले इसे ओपन-सोर्स कर दिया, इसलिए पूरा कोडबेस अध्ययन के लिए उपलब्ध है। <a href="https://github.com/mozilla/hubs" target="_blank" rel="noreferrer">GitHub</a>।</p>
<p><strong>Hyperfy.</strong> पूरी तरह ब्राउज़र में चलने वाला एक वेब-आधारित मेटावर्स प्लेटफ़ॉर्म। Three.js रेंडरिंग, मल्टीप्लेयर, अवतार कस्टमाइज़ेशन, और वर्ल्ड बिल्डिंग। यह Hubs से हमारे लक्ष्य के ज़्यादा क़रीब है क्योंकि यह क्रिएटर टूल्स पर ज़ोर देता है। वर्ल्ड्स बिना डाउनलोड के एक ब्राउज़र टैब में लोड होते हैं। <a href="https://hyperfy.io" target="_blank" rel="noreferrer">hyperfy.io</a>।</p>
<p><strong>Ethereal Engine (पहले XREngine)।</strong> मल्टी-यूज़र वर्ल्ड्स के लिए ओपन-सोर्स इंजन, Three.js और bitECS पर बना। WebXR, स्पेशियल ऑडियो, और वर्ल्ड एडिटिंग सपोर्ट करता है। इसमें बिल्ट-इन ECS आर्किटेक्चर, नेटवर्किंग लेयर, और एडिटर टूल्स हैं। यह उसके सबसे क़रीब मौजूद ओपन-सोर्स प्रोजेक्ट है जिसका हम वर्णन कर रहे हैं। यह अध्ययन करने लायक है कि वे entity management के लिए bitECS को Three.js के साथ कैसे जोड़ते हैं और उनकी नेटवर्किंग spatial स्टेट को कैसे संभालती है। <a href="https://github.com/EtherealEngine/etherealengine" target="_blank" rel="noreferrer">GitHub</a>।</p>
<p><strong>Dusk (पहले Rune)।</strong> वेब गेम्स के लिए मल्टीप्लेयर गेम SDK। यह नेटवर्किंग लेयर संभालता है ताकि डेवलपर गेमप्ले पर ध्यान दें। उनका स्टेट सिंक तरीका सर्वर reconciliation के साथ predicted स्टेट इस्तेमाल करता है, जो रिस्पॉन्सिव मल्टीप्लेयर का मानक मॉडल है। SDK rollback netcode की जटिलता को छिपा देता है। उनके डेवलपर अनुभव के लिए अध्ययन करने लायक है।</p>
<p><strong>Niantic Studio.</strong> एक ब्राउज़र-आधारित विज़ुअल एडिटर और वेब गेम इंजन (8th Wall के टूलिंग का उत्तराधिकारी) जो 3D और XR अनुभव बनाने के लिए है जिन्हें दूसरे एक ब्राउज़र में देख सकें। यह दर्शाता है कि अगर टूल्स पहुँच योग्य हों तो ग़ैर-तकनीकी क्रिएटर भी एक ब्राउज़र में 3D दृश्य बना सकते हैं। (Niantic ने अपने geospatial काम को Niantic Spatial में अलग किया और अपना गेम्स कारोबार, जिसमें Pokemon GO भी शामिल है, 2025 में Scopely को बेच दिया।)</p>
<p><strong>PlayCanvas Editor.</strong> यह ख़ुद कोई गेम नहीं है, लेकिन PlayCanvas का क्लाउड-आधारित 3D एडिटर दिखाता है कि सहयोगी वर्ल्ड-बिल्डिंग टूल्स ब्राउज़र में चल सकते हैं। टीम के कई सदस्य एक साथ वही दृश्य एडिट करते हैं। एडिटर बदलावों को एक रियल-टाइम सिंक लेयर के ज़रिए संप्रेषित करता है। यह वही सहयोगी निर्माण मॉडल है जिसकी हमें ज़रूरत होगी, बस एक गेम एडिटर के बजाय हमारी दुनिया canvas के रूप में।</p>
<h3 id="नेटिव-क्रिएटर-प्लेटफ़ॉर्म-ब्राउज़र-के-लिए-सबक" tabindex="-1">नेटिव क्रिएटर प्लेटफ़ॉर्म (ब्राउज़र के लिए सबक) <a class="header-anchor" href="#नेटिव-क्रिएटर-प्लेटफ़ॉर्म-ब्राउज़र-के-लिए-सबक" aria-label="Permalink to &quot;नेटिव क्रिएटर प्लेटफ़ॉर्म (ब्राउज़र के लिए सबक)&quot;"></a></h3>
<p>ये प्लेटफ़ॉर्म नेटिव ऐप के रूप में चलते हैं, लेकिन क्रिएटर टूल्स, वर्ल्ड persistence, और सोशल डायनामिक्स को लेकर उनके डिज़ाइन फ़ैसले सीधे लागू होते हैं।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/mUgtVhbSiNM" title="Roblox Creator Platform" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Roblox: 8 करोड़+ डेली यूज़र, 2023 में क्रिएटर्स को $740M का भुगतान। निर्माण इन-इंजन होता है। खोज सोशल है। वह बिज़नेस मॉडल जो साबित करता है कि क्रिएटर प्लेटफ़ॉर्म ख़ुद को टिका सकते हैं।</div>
<p><strong>Roblox</strong> एक क्रिएटर वर्ल्ड के लिए अकेला सबसे ज़रूरी संदर्भ है। 8 करोड़+ डेली एक्टिव यूज़र। क्रिएटर्स पूरे 3D अनुभव (गेम, सोशल स्पेस, स्टोर) बनाते हैं जिन्हें दूसरे प्लेयर्स देखने जाते हैं। प्लेटफ़ॉर्म होस्टिंग, नेटवर्किंग, खोज, और monetization संभालता है।</p>
<p>Roblox जो सही करता है:</p>
<ul>
<li><strong>निर्माण इन-इंजन है।</strong> Roblox Studio वही माहौल है जिसे प्लेयर्स अनुभव करते हैं। क्रिएटर्स अपना काम तुरंत टेस्ट करते हैं। कोई export/upload/wait चक्र नहीं है। एक ब्राउज़र वर्ल्ड के लिए, एडिटर ख़ुद दुनिया होनी चाहिए।</li>
<li><strong>स्क्रिप्टिंग पहुँच योग्य है।</strong> Lua (Roblox की स्क्रिप्टिंग भाषा) इतनी सरल है कि बच्चे इसे सीख लेते हैं। जटिल व्यवहार संभव है लेकिन वैकल्पिक। फ़र्श नीचा है और छत ऊँची है।</li>
<li><strong>खोज सोशल है।</strong> आप अनुभव इसलिए पाते हैं क्योंकि दोस्त उन्हें खेल रहे हैं। होमपेज trending अनुभव दिखाता है। एक ब्राउज़र वर्ल्ड के लिए, दुनिया ख़ुद खोज की सतह है। आप घूमकर चीज़ें खोजते हैं।</li>
<li><strong>Monetization काम करती है।</strong> क्रिएटर्स असली पैसा कमाते हैं (Roblox ने 2023 में क्रिएटर्स को $740 मिलियन का भुगतान किया)। यह गंभीर रचनात्मक प्रयास को आकर्षित करता है। आर्थिक प्रोत्साहन के बिना, क्रिएटर प्लेटफ़ॉर्म शौक़िया प्रोजेक्ट बनकर फीके पड़ जाते हैं।</li>
<li><strong>Roblox का रेंडरिंग इंजन कस्टम है</strong> और एक नेटिव ऐप में चलता है, ब्राउज़र में नहीं। लेकिन प्रति-अनुभव asset बजट आधुनिक मानकों से मामूली हैं (अधिकतम 100 MB अनुशंसित)। ज़्यादातर सफल Roblox अनुभव low-poly स्टाइलाइज़्ड आर्ट इस्तेमाल करते हैं, जो ब्राउज़र रेंडरिंग सीमाओं के साथ मेल खाता है।</li>
</ul>
<p><strong>Fortnite Creative / UEFN (Unreal Editor for Fortnite)।</strong> Epic ने Unreal Engine का पूरा एडिटर Fortnite क्रिएटर्स तक पहुँचाया। नतीजा एक ऐसा प्लेटफ़ॉर्म है जहाँ लोग पेशेवर-स्तर के टूल्स से द्वीप (स्वयं-निहित दुनियाएँ) बनाते हैं। Fortnite होस्टिंग, मल्टीप्लेयर, और वितरण संभालता है।</p>
<p>प्रासंगिक अंतर्दृष्टि:</p>
<ul>
<li><strong>पेशेवर टूल्स पेशेवर कंटेंट आकर्षित करते हैं।</strong> UEFN दृश्य रूप से शानदार अनुभव पैदा करता है क्योंकि क्रिएटर्स के पास UE5 की पूरी क्षमताओं तक पहुँच है। समझौता है जटिलता। UEFN की सीखने की राह कठिन है।</li>
<li><strong>द्वीप-आधारित instancing</strong> (हर रचना एक अलग दुनिया है) एक अकेली साझा दुनिया की moderation और conflict समस्याओं से बचाता है। लेकिन इसका यह भी मतलब है कि क्रिएटर्स घूमते हुए स्वाभाविक रूप से एक-दूसरे का काम नहीं खोजते। आप द्वीपों पर मेन्यू के ज़रिए जाते हैं, चलकर नहीं।</li>
<li><strong>बिज़नेस मॉडल काम करता है।</strong> Fortnite का क्रिएटर प्रोग्राम जुड़ाव के आधार पर भुगतान करता है। शीर्ष क्रिएटर्स साल में लाखों कमाते हैं। फिर से, आर्थिक प्रोत्साहन गुणवत्ता को आगे बढ़ाता है।</li>
</ul>
<p><strong>Dreams (Media Molecule / PlayStation)।</strong> Dreams ने कंसोल प्लेयर्स को एक पूरा 3D निर्माण सुइट (मॉडलिंग, एनिमेशन, संगीत, लॉजिक, लेवल डिज़ाइन) और रचनाएँ साझा करने का एक प्लेटफ़ॉर्म दिया। टूल की गहराई के मामले में यह अब तक बना सबसे महत्वाकांक्षी क्रिएटर-प्लेटफ़ॉर्म है।</p>
<p>प्रासंगिक अंतर्दृष्टि:</p>
<ul>
<li><strong>पॉलीगन एडिटिंग के बजाय मूर्ति-आधारित मॉडलिंग।</strong> क्रिएटर्स move/grab/smooth टूल्स से नरम आयतन आकार देते हैं, ZBrush जैसा लेकिन ज़्यादा सहज। सीखने की राह कोमल है। यह तरीका इन-ब्राउज़र निर्माण के लिए अच्छी तरह बैठता है क्योंकि इसमें vertices और UV maps समझने की ज़रूरत नहीं।</li>
<li><strong>हर चीज़ एक साझा asset है।</strong> अगर कोई पेड़ का मॉडल बनाता है, तो कोई भी इसे अपनी रचना में इस्तेमाल कर सकता है (श्रेय के साथ)। यह एक चक्रवृद्धि रचनात्मक ecosystem बनाता है जहाँ हर रचना प्लेटफ़ॉर्म को और मूल्यवान बनाती है।</li>
<li><strong>Dreams व्यावसायिक रूप से संघर्ष करता रहा</strong> आलोचनात्मक प्रशंसा के बावजूद। समस्या वितरण थी: यह PlayStation तक सीमित था, और निर्माण टूल्स इतने गहरे थे कि ज़्यादातर प्लेयर कभी कंटेंट उपभोग से आगे नहीं बढ़े। सबक: निर्माण टूल्स इतने सरल होने चाहिए कि अधिकांश यूज़र उन्हें आज़माएँ, भले ही केवल अल्पसंख्यक गंभीर बिल्डर बनें।</li>
</ul>
<p><strong>Core (Manticore Games)।</strong> मल्टीप्लेयर गेम बनाने और खेलने का एक मुफ़्त प्लेटफ़ॉर्म, Unreal Engine पर एक सरल किए गए एडिटर के साथ बना। Core का एडिटर एक नेटिव ऐप के रूप में चलता है, लेकिन इसका दर्शन प्रासंगिक है। टेम्पलेट और समुदाय-साझा स्क्रिप्ट शुरुआती लोगों को पहले से बने घटकों से गेम जोड़ने देते हैं। उन्नत क्रिएटर्स कस्टम व्यवहार के लिए Lua स्क्रिप्ट लिख सकते हैं। Core एक बड़े दर्शक तक पहुँचने में संघर्ष करता रहा, आंशिक रूप से इसलिए कि गेम Core लॉन्चर के ज़रिए खेलने पड़ते थे। एक ब्राउज़र-आधारित संस्करण में यह घर्षण नहीं होता।</p>
<p><strong>VRChat</strong> और <strong>Rec Room</strong> सोशल प्लेटफ़ॉर्म हैं जहाँ क्रिएटर्स ऐसे स्पेस बनाते हैं जिन्हें दूसरे देखने जाते हैं। VRChat Unity इस्तेमाल करता है और PC/VR पर चलता है। Rec Room मोबाइल समेत हर चीज़ पर चलता है। दोनों साबित करते हैं कि यूज़र-जेनरेटेड 3D वर्ल्ड्स बड़े समुदायों को टिका सकते हैं। VRChat तकनीकी रूप से ज़्यादा प्रभावशाली है (कस्टम शेडर, जटिल अवतार)। Rec Room ज़्यादा पहुँच योग्य है (इन-ऐप निर्माण टूल्स, सरल ग्राफ़िक्स, व्यापक प्लेटफ़ॉर्म सपोर्ट)। एक ब्राउज़र वर्ल्ड के लिए, Rec Room का सरल इन-ऐप निर्माण टूल्स वाला तरीका VRChat के external-tool वर्कफ़्लो से ज़्यादा लागू होता है।</p>
<div class="video-embed">
<iframe src="https://www.youtube.com/embed/E5HCeVCjCXo" title="Second Life: Your World, Your Imagination" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div class="game-caption">Second Life: 2003 में लॉन्च हुआ, 2 लाख+ डेली यूज़र के साथ अब भी चल रहा है। पूरी तरह यूज़र-निर्मित। पार्सल-आधारित स्वामित्व, ~$500M/साल मूल्य की वर्चुअल अर्थव्यवस्था। persistence और moderation में 20 साल के सबक।</div>
<p><strong>Second Life</strong> सभी क्रिएटर वर्ल्ड्स का दादा है। 2003 में लॉन्च हुआ, यह 2 लाख+ डेली एक्टिव यूज़र के साथ अब भी चल रहा है। पूरी दुनिया यूज़र-निर्मित है। ज़मीन ख़रीदी और बेची जाती है। क्रिएटर्स वस्तुएँ, कपड़े, और इमारतें बेचते हैं। इन-वर्ल्ड स्क्रिप्टिंग भाषा (LSL) इंटरैक्टिव कंटेंट संभव बनाती है।</p>
<p>Second Life 20+ साल बाद क्या सिखाता है:</p>
<ul>
<li><strong>persistence ग्राफ़िक्स से ज़्यादा मायने रखती है।</strong> Second Life के विज़ुअल पुराने हैं, लेकिन दुनिया बनी रहती है। रचनाएँ वहीं रहती हैं जहाँ आप उन्हें रखते हैं। रिश्ते और इतिहास जमा होते हैं। यही persistence लोगों को वापस आते रहने पर मजबूर करती है।</li>
<li><strong>अर्थव्यवस्था निर्माण को आगे बढ़ाती है।</strong> Second Life का GDP सालाना $500 मिलियन अनुमानित है। क्रिएटर्स बनाते हैं क्योंकि वे बेच सकते हैं। आर्थिक प्रोत्साहन के बिना, क्रिएटर कंटेंट की मात्रा और गुणवत्ता गिर जाती है।</li>
<li><strong>यूज़र-जेनरेटेड कंटेंट को moderation इंफ़्रास्ट्रक्चर चाहिए।</strong> Second Life ने 20 साल की moderation चुनौतियाँ झेली हैं। कोई भी प्लेटफ़ॉर्म जहाँ यूज़र एक साझा स्पेस में मनमाना कंटेंट रख सकते हैं, उसे स्वचालित स्कैनिंग, रिपोर्टिंग टूल्स, और मानव समीक्षा चाहिए।</li>
<li><strong>ज़मीन-आधारित spatial संगठन काम करता है।</strong> Second Life अपनी दुनिया को पार्सल में बाँटता है जो यूज़र के पास होते हैं। हर पार्सल की एक prim (ऑब्जेक्ट) सीमा होती है। यह स्वाभाविक रूप से किसी एक क्रिएटर को सारे संसाधन खाने से रोकता है। एक ब्राउज़र वर्ल्ड के लिए, प्रति-चंक ऑब्जेक्ट बजट के साथ चंक-आधारित स्वामित्व समकक्ष पैटर्न है।</li>
</ul>
<h2 id="तुलनात्मक-विश्लेषण-हर-गेम-हमें-क्या-सिखाता-है" tabindex="-1">तुलनात्मक विश्लेषण: हर गेम हमें क्या सिखाता है <a class="header-anchor" href="#तुलनात्मक-विश्लेषण-हर-गेम-हमें-क्या-सिखाता-है" aria-label="Permalink to &quot;तुलनात्मक विश्लेषण: हर गेम हमें क्या सिखाता है&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>गेम</th>
<th>मुख्य सबक</th>
<th>लागू होने वाली टेक</th>
<th>अनदेखा करने पर जोखिम</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Skyrim</strong></td>
<td>सेल ग्रिड के साथ चंक-आधारित स्ट्रीमिंग</td>
<td>हाइटमैप टेरेन, LOD टियर, इंटीरियर/एक्सटीरियर अलगाव</td>
<td>दुनिया ब्राउज़र मेमोरी में नहीं समाती</td>
</tr>
<tr>
<td><strong>The Witcher 3</strong></td>
<td>अलग-अलग टीमों द्वारा परतदार वर्ल्ड संरचना</td>
<td>कंटेंट-अवेयर स्ट्रीमिंग, इम्पोस्टर रेंडरिंग</td>
<td>क्रिएटर स्वतंत्र रूप से काम नहीं कर सकते</td>
</tr>
<tr>
<td><strong>Breath of the Wild</strong></td>
<td>सिस्टमिक नियम स्क्रिप्टेड कंटेंट को मात देते हैं</td>
<td>मटेरियल इंटरैक्शन सिस्टम, फ़िज़िक्स-संचालित गेमप्ले</td>
<td>दुनिया स्टैटिक और बेजान महसूस होती है</td>
</tr>
<tr>
<td><strong>GTA V</strong></td>
<td>ambient जीवन दुनिया को असली महसूस कराता है</td>
<td>NPC व्यवहार सिस्टम, ट्रैफ़िक, दिन का समय</td>
<td>क्रिएटर वर्ल्ड एक ख़ाली म्यूज़ियम जैसी महसूस होती है</td>
</tr>
<tr>
<td><strong>Elden Ring</strong></td>
<td>घनत्व में बदलाव और asset पुनः उपयोग</td>
<td>मॉड्यूलर asset लाइब्रेरी, विरल + घने ज़ोन</td>
<td>या तो बहुत ख़ाली या भरने में बहुत महँगी</td>
</tr>
<tr>
<td><strong>No Man's Sky</strong></td>
<td>canvas के लिए प्रोसीजरल जेनरेशन, आत्मा के लिए क्रिएटर कंटेंट</td>
<td>seed-आधारित टेरेन, छोटा बेस डेटा मॉडल</td>
<td>अनंत लेकिन उबाऊ टेरेन</td>
</tr>
<tr>
<td><strong>Minecraft</strong></td>
<td>पूरी तरह संपादन योग्य दुनिया, सरल टूल्स, अनंत गहराई</td>
<td>चंक स्ट्रीमिंग, palette कम्प्रेशन, block-edit प्रोटोकॉल</td>
<td>क्रिएटर दुनिया को ख़ुद दोबारा आकार नहीं दे सकते</td>
</tr>
<tr>
<td><strong>Roblox</strong></td>
<td>निर्माण इन-इंजन है, अर्थव्यवस्था गुणवत्ता को आगे बढ़ाती है</td>
<td>इन-वर्ल्ड एडिटर, क्रिएटर monetization</td>
<td>कोई नहीं बनाता क्योंकि कोई कारण नहीं है</td>
</tr>
<tr>
<td><strong>Krunker.io</strong></td>
<td>सरल टूल्स के साथ ब्राउज़र UGC बड़े पैमाने पर काम करता है</td>
<td>Three.js रेंडरिंग, voxel-आधारित एडिटर, marketplace</td>
<td>निर्माण टूल्स आम क्रिएटर्स के लिए बहुत जटिल</td>
</tr>
<tr>
<td><strong>Hordes.io</strong></td>
<td>ब्राउज़र 3D में 200+ प्लेयर, solo-dev संभव</td>
<td>कस्टम WebGL, spatial culling, स्टाइलाइज़्ड आर्ट</td>
<td>मल्टीप्लेयर लेयर को ज़रूरत से ज़्यादा इंजीनियर करना</td>
</tr>
<tr>
<td><strong>Vuntra City (नेटिव संदर्भ)</strong></td>
<td>स्पीड-अवेयर स्ट्रीमिंग और दो-स्तरीय वर्ल्ड सिमुलेशन एक विशाल प्रोसीजरल शहर को सुसंगत रखते हैं</td>
<td>वेग-युग्मित LOD नीति, टोपोलॉजी query लेयर, far-field schedule सिमुलेशन + near-field व्यवहार</td>
<td>तेज़ ट्रैवर्सल pop-in और सिमुलेशन spikes पैदा करता है</td>
</tr>
<tr>
<td><strong>Agar.io / Slither.io</strong></td>
<td>spatial partitioning विशाल concurrency संभव बनाती है</td>
<td>दूरी के हिसाब से variable tick rate, interest management</td>
<td>बड़े पैमाने पर नेटवर्क ढह जाता है</td>
</tr>
<tr>
<td><strong>Second Life</strong></td>
<td>persistence और अर्थव्यवस्था 20-साल के समुदाय टिकाती हैं</td>
<td>पार्सल-आधारित स्वामित्व, ऑब्जेक्ट बजट, marketplace</td>
<td>कोई दीर्घकालिक retention नहीं</td>
</tr>
<tr>
<td><strong>Dreams</strong></td>
<td>मूर्ति-आधारित निर्माण पॉलीगन एडिटिंग से ज़्यादा सहज है</td>
<td>आयतन-आधारित मॉडलिंग, साझा asset लाइब्रेरी</td>
<td>निर्माण टूल्स CAD प्रोग्राम जैसे लगते हैं</td>
</tr>
<tr>
<td><strong>Fortnite Creative</strong></td>
<td>प्रो टूल्स प्रो कंटेंट आकर्षित करते हैं</td>
<td>प्लेटफ़ॉर्म में पूरी एडिटर क्षमताएँ</td>
<td>कंटेंट गुणवत्ता की छत बहुत नीची है</td>
</tr>
<tr>
<td><strong>RuneScape</strong></td>
<td>पूरा MMO Wasm, बाइनरी प्रोटोकॉल के ज़रिए ब्राउज़र में काम करता है</td>
<td>Emscripten, कस्टम बाइनरी WebSocket प्रोटोकॉल, टाइल स्ट्रीमिंग</td>
<td>ब्राउज़र क्या संभाल सकते हैं इसे कम आँकना</td>
</tr>
<tr>
<td><strong>Habbo Hotel</strong></td>
<td>सरल रूम निर्माण 25-साल का समुदाय टिकाता है</td>
<td>ग्रिड-आधारित प्लेसमेंट, वर्चुअल फ़र्नीचर अर्थव्यवस्था</td>
<td>निर्माण टूल्स को ज़रूरत से ज़्यादा जटिल बनाना</td>
</tr>
</tbody>
</table>
<p>हमारे ख़ास मामले (ब्राउज़र-आधारित, क्रिएटर-केंद्रित, मल्टीप्लेयर) के लिए सबसे ज़्यादा मायने रखने वाले गेम हैं Minecraft (संपादन योग्य दुनिया, छोटा डेटा), Roblox (इन-इंजन निर्माण, अर्थव्यवस्था), Krunker (बड़े पैमाने पर ब्राउज़र UGC), और Hordes.io (ब्राउज़र MMO आर्किटेक्चर)। AAA टाइटल (Skyrim, BotW, Witcher 3) रेंडरिंग और स्ट्रीमिंग सिखाते हैं। ब्राउज़र हिट (Agar.io, Slither.io, Surviv.io) बड़े पैमाने पर नेटवर्किंग सिखाते हैं। क्रिएटर प्लेटफ़ॉर्म (Roblox, Dreams, Second Life) समुदाय की डायनामिक्स सिखाते हैं। Vuntra City एक आधुनिक प्रोसीजरल शहर में स्पीड-अवेयर स्ट्रीमिंग, diegetic नेविगेशन, और मिलियन-एजेंट सिमुलेशन पैटर्न के लिए एक वर्तमान, implementation-स्तर का संदर्भ जोड़ता है।</p>
<h2 id="skyrim-और-the-witcher-एक-ब्राउज़र-में-कैसे-दिखेंगे" tabindex="-1">Skyrim और The Witcher एक ब्राउज़र में कैसे दिखेंगे <a class="header-anchor" href="#skyrim-और-the-witcher-एक-ब्राउज़र-में-कैसे-दिखेंगे" aria-label="Permalink to &quot;Skyrim और The Witcher एक ब्राउज़र में कैसे दिखेंगे&quot;"></a></h2>
<p>चलिए ठोस बात करते हैं। अगर आपने Skyrim के Whiterun को लेकर उसे ब्राउज़र डिलीवरी के लिए दोबारा बनाया:</p>
<p><strong>टेरेन:</strong> Whiterun के आस-पास का इलाका लगभग 2km x 2km है। हमारे चंक साइज़ (64m) पर, यह लगभग 32x32 = 1024 चंक्स है। प्रति चंक हाइटमैप पर 2-4 KB के हिसाब से, यह 2-4 MB टेरेन डेटा है। टेरेन टेक्सचर (घास, मिट्टी, चट्टान, बर्फ़) KTX2 atlas टाइलों के रूप में शायद और 5 MB जोड़ें। कुल टेरेन: पूरे क्षेत्र के लिए 10 MB से कम।</p>
<p><strong>संरचनाएँ:</strong> Whiterun में ख़ुद शायद 40-50 इमारतें हैं। हर इमारत एक ऑप्टिमाइज़्ड GLB (3 LOD स्तर) के रूप में उच्चतम डिटेल पर शायद 200-500 KB। लेकिन आपको पूरा डिटेल सिर्फ़ 5-10 सबसे क़रीबी इमारतों के लिए चाहिए। बाकी मध्यम या निम्न LOD (प्रत्येक 50-100 KB) हैं। किसी भी समय कुल दिखने वाली संरचनाएँ: 2-5 MB।</p>
<p><strong>फ़ोलिएज:</strong> Whiterun के आस-पास Skyrim के पेड़ और घास सभी instanced हैं। आपको शायद 10 अनूठे पेड़ मॉडल चाहिए (पूर्ण LOD पर प्रत्येक 200 KB, billboard इम्पोस्टर के रूप में 20 KB) और एक घास सिस्टम जो GPU पर density map से ब्लेड जेनरेट करता है। कुल फ़ोलिएज assets: 2-3 MB। 5x5 चंक क्षेत्र के लिए instancing डेटा (स्थिति, घुमाव, स्केल): 500 KB से कम।</p>
<p><strong>NPCs:</strong> Whiterun में गार्ड के अलावा लगभग 70 नामित NPCs हैं। मध्यम क्वालिटी पर हर अवतार: 100-200 KB। लेकिन किसी भी समय सिर्फ़ 10-20 दिखते हैं। कुल NPC रेंडरिंग डेटा: 2-4 MB।</p>
<p><strong>किसी भी समय दिखने वाले Whiterun-स्केल क्षेत्र के लिए कुल योग: 15-25 MB।</strong> यह एक ब्राउज़र में पूरी तरह संभव है। इनिशियल लोड ब्रॉडबैंड पर 3-5 सेकंड के भीतर टेरेन और बड़ी संरचनाएँ दिखा देगा, और डिटेल अगले कुछ सेकंड में भर जाएगा।</p>
<p>The Witcher 3 का Novigrad बड़ा और घना है लेकिन वही सिद्धांत लागू होते हैं। आपको ज़्यादा आक्रामक LOD और स्ट्रीमिंग चाहिए होगी, लेकिन किसी भी पल में कुल दिखने वाला डेटा ब्राउज़र मेमोरी सीमाओं के भीतर रहता है।</p>
<h2 id="हम-सबसे-पहले-क्या-बनाएँगे" tabindex="-1">हम सबसे पहले क्या बनाएँगे <a class="header-anchor" href="#हम-सबसे-पहले-क्या-बनाएँगे" aria-label="Permalink to &quot;हम सबसे पहले क्या बनाएँगे&quot;"></a></h2>
<p>एक पूरा ओपन वर्ल्ड एक बहु-वर्षीय प्रोजेक्ट है। कुछ असली चीज़ क्रिएटर्स के हाथों में जल्दी पहुँचाने की राह यह है:</p>
<p><strong>फ़ेज़ 1: साझा द्वीप (3 महीने)।</strong> हाइटमैप टेरेन, पानी, बुनियादी फ़ोलिएज, दिन/रात चक्र वाला एक अकेला टेरेन चंक (512x512m द्वीप)। Durable Objects के ज़रिए मल्टीप्लेयर (50 तक concurrent यूज़र)। क्रिएटर अपनी मौजूदा Cinevva लाइब्रेरी से AI-जेनरेटेड 3D assets रख सकते हैं। इसे एक साझा diorama की तरह सोचें।</p>
<p><strong>फ़ेज़ 2: विस्तार योग्य दुनिया (3 महीने)।</strong> एक 4x4 km दुनिया के लिए चंक स्ट्रीमिंग। क्रिएटर-स्वामित्व वाले प्लॉट जहाँ उनके पास एडिट अनुमतियाँ हैं। टेरेन और ऑब्जेक्ट के लिए LOD सिस्टम। persistent वर्ल्ड स्टेट। पूरी दुनिया में 200 तक concurrent यूज़र।</p>
<p><strong>फ़ेज़ 3: जीवंत दुनिया (6 महीने)।</strong> AI-सहायता वाली टेरेन sculpting। प्रोसीजरल फ़ोलिएज और वातावरण। Quest/event सिस्टम ताकि क्रिएटर इंटरैक्टिव अनुभव बना सकें, सिर्फ़ स्टैटिक दृश्य नहीं। वॉइस चैट। अवतार कस्टमाइज़ेशन। दुनिया एक गंतव्य बन जाती है, एक डेमो नहीं।</p>
<h2 id="खुले-सवाल" tabindex="-1">खुले सवाल <a class="header-anchor" href="#खुले-सवाल" aria-label="Permalink to &quot;खुले सवाल&quot;"></a></h2>
<p><strong>आर्ट स्टाइल।</strong> स्टाइलाइज़्ड (low-poly, cel-shaded) रेंडर करना सस्ता है और AI-जेनरेटेड assets के लिए ज़्यादा माफ़ करने वाला। यथार्थवादी के लिए उच्च-गुणवत्ता वाले assets और ज़्यादा रेंडरिंग बजट चाहिए। Skyrim पुराने ग्राफ़िक्स के बावजूद काम कर गया क्योंकि आर्ट डायरेक्शन सुसंगत था। BotW टैबलेट-क्लास हार्डवेयर पर ख़ूबसूरत है क्योंकि cel-shaded स्टाइल कम पॉलीगन गिनती छिपा देती है। Minecraft 16x16 टेक्सचर इस्तेमाल करता है और अब तक के सबसे पहचाने जाने वाले गेम्स में से एक है। Krunker.io और Hordes.io दोनों ब्राउज़र में सरल स्टाइलाइज़्ड ग्राफ़िक्स के साथ सफल होते हैं। सबूत भारी रूप से एक ब्राउज़र वर्ल्ड के लिए स्टाइलाइज़्ड दिशा के पक्ष में हैं। हमें जल्दी एक ख़ास विज़ुअल पहचान चुननी होगी और AI-जेनरेटेड assets में निरंतरता लागू करनी होगी।</p>
<p><strong>वर्ल्ड persistence बनाम instancing।</strong> क्या हर कोई एक दुनिया साझा करता है (एक MMO या Second Life की तरह) या हर क्रिएटर को अपना instance मिलता है जिसे दूसरे देख सकें (Minecraft सर्वर या Fortnite Islands की तरह)? टेक दोनों को सपोर्ट करती है, लेकिन सोशल डायनामिक्स पूरी तरह अलग हैं। Second Life की persistent साझा दुनिया अनायास खोज पैदा करती है (आप घूमते हुए दूसरे लोगों के काम पर पहुँच जाते हैं)। Fortnite के instanced द्वीपों को खोज के लिए एक मेन्यू या पोर्टल सिस्टम चाहिए। Roblox एक hub-आधारित तरीका इस्तेमाल करता है: गेम अलग हैं लेकिन आप एक साझा इंटरफ़ेस के ज़रिए ब्राउज़ और खोज करते हैं। एक हाइब्रिड काम कर सकता है: एक persistent साझा overworld जहाँ क्रिएटर प्लॉट के मालिक हों (Second Life पार्सल की तरह), पोर्टल के ज़रिए standalone अनुभव में घुसने के विकल्प के साथ।</p>
<p><strong>निर्माण टूल की गहराई।</strong> Dreams ने साबित किया कि गहरे निर्माण टूल्स आलोचकों को प्रभावित करते हैं लेकिन यूज़र्स को डराते हैं। Townscaper ने साबित किया कि न्यूनतम टूल्स एक मिलियन कॉपियाँ बेच सकते हैं। Roblox Studio बीच में बैठता है: बच्चों के लिए काफ़ी सरल, पेशेवरों के लिए काफ़ी गहरा। Krunker का voxel एडिटर इससे भी सरल है। एक ब्राउज़र वर्ल्ड के लिए, हमें Townscaper-स्तर की सरलता से शुरू करना चाहिए (वस्तुएँ रखें, वे snap और जुड़ जाती हैं) और समय के साथ गहराई जोड़ें। दुनिया में अपनी पहली वस्तु रखने का इनिशियल अनुभव 30 सेकंड से कम लेना चाहिए।</p>
<p><strong>अर्थव्यवस्था।</strong> Roblox, Second Life, और Fortnite Creative सभी साबित करते हैं कि आर्थिक प्रोत्साहन ही एक खिलौने को एक प्लेटफ़ॉर्म में बदलता है। क्रिएटर्स के लिए अपने काम से कमाने का कोई रास्ता न होने पर, सबसे प्रतिभाशाली क्रिएटर्स कहीं और बनाएँगे। इसे पहले दिन लॉन्च होने की ज़रूरत नहीं, लेकिन आर्किटेक्चर को इसका समर्थन करना चाहिए (ऑब्जेक्ट स्वामित्व, visit ट्रैकिंग, क्रिएटर श्रेय)।</p>
<p><strong>मोबाइल।</strong> मोबाइल पर WebGPU भरोसेमंद होने से सालों दूर है। एक मोबाइल अनुभव को एक कम किया हुआ संस्करण होना होगा: सरल टेरेन, कम वस्तुएँ, छोटी view distance। Rec Room का अनुकूली क्वालिटी के साथ हर चीज़ पर चलने का तरीका अध्ययन करने लायक है। या हम मोबाइल के लिए एक नेटिव ऐप भेजें और पूरा अनुभव ब्राउज़र में रखें।</p>
<p><strong>Moderation।</strong> एक ओपन वर्ल्ड जहाँ कोई भी कुछ भी रख सकता है, एक moderation दुःस्वप्न है। Second Life 20 साल से इससे निपट रहा है। हर रखे गए asset को दूसरों को दिखने से पहले स्वचालित कंटेंट समीक्षा चाहिए। यह रचनात्मक प्रक्रिया में latency जोड़ता है लेकिन यह बिना समझौता वाली बात है। हमें पार्सल-आधारित कंटेंट रेटिंग (Second Life के General/Moderate/Adult सिस्टम की तरह) पर भी विचार करना चाहिए ताकि क्रिएटर अपनी कंटेंट सीमाएँ चुन सकें।</p>
<p><strong>सिस्टमिक इंटरैक्शन।</strong> BotW और Minecraft दोनों दिखाते हैं कि मटेरियल-आधारित इंटरैक्शन सिस्टम स्टैटिक ऑब्जेक्ट प्लेसमेंट से कई गुना ज़्यादा दिलचस्प दुनिया बनाते हैं। अगर एक क्रिएटर एक लकड़ी का पुल रखता है और दूसरा क्रिएटर पास में आग लगाता है, तो क्या पुल जलना चाहिए? अगर कोई एक बाँध रखता है, तो क्या पानी उसके पीछे जमा होना चाहिए? ये इंटरैक्शन दुनिया को जीवंत महसूस कराते हैं लेकिन सभी क्रिएटर कंटेंट में सुसंगत फ़िज़िक्स और मटेरियल नियम चाहिए। सिस्टमिक डिज़ाइन के साथ कितनी दूर जाना है, यह एक शुरुआती आर्किटेक्चरल फ़ैसला है।</p>
<h2 id="मुख्य-सीख" tabindex="-1">मुख्य सीख <a class="header-anchor" href="#मुख्य-सीख" aria-label="Permalink to &quot;मुख्य सीख&quot;"></a></h2>
<p>ब्राउज़र 3D ओपन वर्ल्ड आज संभव हैं। Hordes.io एक ब्राउज़र में 3D में 200+ प्लेयर चलाता है। Krunker.io के पास एक पूरे 3D मैप एडिटर के साथ 10 मिलियन मासिक प्लेयर थे। .io गेम्स ने साबित किया कि ब्राउज़र मल्टीप्लेयर लाखों तक स्केल होता है। टेक काल्पनिक नहीं है।</p>
<p>रेंडरिंग तैयार है। Three.js और Babylon.js 2010 के शुरुआती AAA गेम्स के बराबर 3D दृश्य संभालते हैं। WebGPU टेरेन और फ़ोलिएज के लिए compute शेडर खोलता है। Wasm फ़िज़िक्स इंजन नेटिव के 2-3x के भीतर चलते हैं। एक Whiterun-स्केल क्षेत्र 15-25 MB दिखने वाले डेटा में समाता है।</p>
<p>नेटवर्किंग तैयार है। Cloudflare Durable Objects आपको edge पर प्रति-चंक authoritative सर्वर देते हैं। CRDTs बिना conflict के सहयोगी एडिटिंग संभालते हैं। spatial partitioning (Agar.io से Skyrim तक हर गेम द्वारा साबित) सैकड़ों concurrent प्लेयर्स पर नेटवर्क ट्रैफ़िक को संभालने योग्य रखती है।</p>
<p>AAA ओपन वर्ल्ड (Skyrim, Witcher 3, BotW, Elden Ring, Minecraft, No Man's Sky) सिर्फ़ ग्राफ़िकल बेंचमार्क नहीं हैं। वे चंक स्ट्रीमिंग, LOD management, प्रोसीजरल जेनरेशन, सिस्टमिक डिज़ाइन, और वर्ल्ड संरचना पर पाठ्यपुस्तकें हैं। वे जो भी तकनीक इस्तेमाल करते हैं, उसका एक ब्राउज़र-संगत समकक्ष है।</p>
<p>क्रिएटर प्लेटफ़ॉर्म (Roblox, Second Life, Fortnite Creative, Dreams) सोशल और आर्थिक सबक सिखाते हैं। निर्माण इन-वर्ल्ड होना चाहिए, एक external टूल में नहीं। आर्थिक प्रोत्साहन गुणवत्ता को आगे बढ़ाता है। persistence लगाव पैदा करती है। सरल टूल्स शक्तिशाली टूल्स से ज़्यादा क्रिएटर्स तक पहुँचते हैं।</p>
<p>रचनात्मक पाइपलाइन वह जगह है जहाँ Cinevva के पास बढ़त है। हम पहले से 3D assets, टेक्सचर, और ऑडियो जेनरेट करते हैं। उस पाइपलाइन को एक वर्ल्ड प्लेसमेंट सिस्टम से जोड़ना ही गायब टुकड़ा है। AI-जेनरेटेड कंटेंट दुनिया को भरता है। क्रिएटर की curation और व्यवस्था उसे आत्मा देती है।</p>
<p>हमारे पास जो आख़िरकार होगा वह एक ब्राउज़र में Skyrim नहीं है। यह Minecraft (संपादन योग्य दुनिया), Roblox (क्रिएटर अर्थव्यवस्था), और BotW (सिस्टमिक इंटरैक्शन) के चौराहे के ज़्यादा क़रीब है, जो AI-संचालित निर्माण टूल्स के साथ एक ब्राउज़र टैब में चलता है। इसे बनाने की टेक्नोलॉजी मौजूद है। सवाल execution का है।</p>
<h2 id="रिसर्च-पेपर-और-शैक्षणिक-संदर्भ" tabindex="-1">रिसर्च पेपर और शैक्षणिक संदर्भ <a class="header-anchor" href="#रिसर्च-पेपर-और-शैक्षणिक-संदर्भ" aria-label="Permalink to &quot;रिसर्च पेपर और शैक्षणिक संदर्भ&quot;"></a></h2>
<p>इस गाइड की तकनीकें शून्य से ईजाद नहीं की गईं। वे दशकों की रिसर्च पर आधारित हैं। ये वे पेपर हैं जो हर subsystem के लिए सबसे ज़्यादा मायने रखते हैं, साथ में नोट कि वे एक ब्राउज़र ओपन वर्ल्ड पर कैसे लागू होते हैं।</p>
<h3 id="टेरेन-जेनरेशन-और-रेंडरिंग" tabindex="-1">टेरेन जेनरेशन और रेंडरिंग <a class="header-anchor" href="#टेरेन-जेनरेशन-और-रेंडरिंग" aria-label="Permalink to &quot;टेरेन जेनरेशन और रेंडरिंग&quot;"></a></h3>
<p><strong>&quot;An Image Synthesizer&quot;</strong> -- Ken Perlin (SIGGRAPH 1985)। <a href="https://doi.org/10.1145/325165.325247" target="_blank" rel="noreferrer">DOI</a>। वह पेपर जिसने Perlin noise पेश किया। 1985 के बाद हर गेम में हर प्रोसीजरल टेरेन जेनरेटर इसी तक जाता है। noise फ़ंक्शन वह स्मूथ यादृच्छिकता पैदा करता है जो octaves में परतों में रखे जाने पर (fractional Brownian motion) प्राकृतिक दिखने वाले हाइटमैप जेनरेट करता है। Simplex noise (Perlin, 2001) तेज़ उत्तराधिकारी है। हमारी टेरेन पाइपलाइन के लिए, यह नींव है: noise-आधारित हाइटमैप जेनरेशन एक WebGPU compute शेडर में इंटरैक्टिव गति पर चलता है।</p>
<p><strong>&quot;Texturing and Modeling: A Procedural Approach&quot;</strong> -- Ebert, Musgrave, Peachey, Perlin, Worley (1994, तीसरा संस्करण 2003)। प्रोसीजरल जेनरेशन पर पाठ्यपुस्तक। टेरेन मॉडलिंग पर Musgrave के अध्याय, जिनमें erosion-जैसी विशेषताओं वाला multifractal टेरेन शामिल है, आधुनिक गेम टेरेन जेनरेटर का सीधा आधार हैं। यहाँ वर्णित fBm पैरामीटर (lacunarity, persistence, octave count) वही हैं जिन्हें हम टेरेन कस्टमाइज़ेशन के लिए क्रिएटर्स को दिखाएँगे।</p>
<p><strong>&quot;Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids&quot;</strong> -- Losasso और Hoppe (SIGGRAPH 2004)। <a href="https://doi.org/10.1145/1015706.1015799" target="_blank" rel="noreferrer">DOI</a>। इस पेपर ने हल किया कि concentric LOD rings (clipmaps) का इस्तेमाल करके इंटरैक्टिव दरों पर विशाल टेरेन कैसे रेंडर करें। टेरेन मेश कैमरे पर केंद्रित nested grids का एक निश्चित सेट है। कैमरे के हिलने पर, grids shift और अपडेट होते हैं। यह वह तकनीक है जिसकी हमारे टेरेन सेक्शन में WebGL 2 के लिए सिफ़ारिश की गई है, और यह काम करती है क्योंकि GPU workload दुनिया के आकार की परवाह किए बिना स्थिर रहता है। मूल implementation WebGL से पहले की है लेकिन सीधे इस पर मैप होती है।</p>
<p><strong>&quot;Fast Hydraulic Erosion Simulation and Visualization on GPU&quot;</strong> -- Mei, Decaudin, Hu (2007)। <a href="https://hal.inria.fr/inria-00402079/document" target="_blank" rel="noreferrer">PDF</a>। hydraulic erosion को एक CPU-bound ऑफ़लाइन प्रक्रिया से एक रियल-टाइम GPU गणना में बदला। पेपर का shallow-water सिमुलेशन मॉडल (पानी को एक height field के रूप में मानना, grid cells के बीच flow की गणना) एक compute शेडर में चलता है। हमारी पाइपलाइन के लिए, सर्वर-साइड GPU erosion noise-जेनरेटेड टेरेन को एक सेकंड से कम में भूवैज्ञानिक रूप से विश्वसनीय लैंडस्केप में बदल सकती है, जिससे AI-जेनरेटेड टेरेन हाथ से तराशा हुआ दिखता है।</p>
<p><strong>&quot;Real-Time Rendering of Procedurally Generated Planets&quot;</strong> -- No Man's Sky की GDC टॉक और Sean Murray के विवरणों से हाइब्रिड तरीके। हालाँकि यह एक अकेला पेपर नहीं है, Innes McKendrick (Hello Games) की GDC 2017 टॉक &quot;Building Worlds Using Maths&quot; विस्तार से बताती है कि No Man's Sky stacked noise फ़ंक्शंस, marching cubes के साथ voxel प्रतिनिधित्व, और GPU-साइड जेनरेशन का इस्तेमाल करके ग्रह-स्तर का टेरेन कैसे जेनरेट करता है। हमारे प्रोसीजरल टेरेन तरीके के लिए सीधे प्रासंगिक, ख़ासकर ऐसी टेरेन विशेषताएँ जेनरेट करने के लिए जिन्हें हाइटमैप दर्शा नहीं सकते (गुफाएँ, arches)।</p>
<p><strong>&quot;C-DBLOD: Hybrid LOD for Terrain Rendering&quot;</strong> -- Filip Strugar (2014)। <a href="https://www.vertexasylum.com/CDLOD/cdlod_latest.pdf" target="_blank" rel="noreferrer">Paper</a>। geometry clipmaps पर एक सुधार जो कैमरा स्थिति के आस-पास बेहतर अनुकूलन के लिए quadtree-आधारित चयन जोड़ता है। मुख्य समझ: निश्चित concentric rings के बजाय, अलग-अलग रिज़ॉल्यूशन पर टेरेन पैचेस चुनने के लिए एक quadtree इस्तेमाल करें। यह अनियमित टेरेन (जहाँ कुछ इलाकों को दूसरों से ज़्यादा डिटेल चाहिए) को शुद्ध clipmaps से बेहतर संभालता है। एक छोटे CPU-साइड quadtree traversal के साथ WebGL 2 में implement करने योग्य।</p>
<h3 id="_3d-gaussian-splatting-और-न्यूरल-रेंडरिंग" tabindex="-1">3D Gaussian Splatting और न्यूरल रेंडरिंग <a class="header-anchor" href="#_3d-gaussian-splatting-और-न्यूरल-रेंडरिंग" aria-label="Permalink to &quot;3D Gaussian Splatting और न्यूरल रेंडरिंग&quot;"></a></h3>
<p><strong>&quot;3D Gaussian Splatting for Real-Time Radiance Field Rendering&quot;</strong> -- Kerbl, Kopanas, Leimkühler, Drettakis (SIGGRAPH 2023)। <a href="https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/" target="_blank" rel="noreferrer">Project page</a>। वह पेपर जिसने Gaussian splatting क्रांति शुरू की। एक दृश्य को लाखों 3D Gaussians के रूप में दर्शाया जाता है, हर एक में स्थिति, covariance (आकार), opacity, और spherical harmonic रंग गुणांक। रेंडरिंग splats को depth के हिसाब से sort करती है और उन्हें 2D Gaussians के रूप में rasterize करती है। यह तरीका NeRFs की तुलना में train करने में 100-1000x तेज़ है और रियल-टाइम दरों पर रेंडर होता है। कई WebGL/WebGPU implementations मौजूद हैं। हमारे प्लेटफ़ॉर्म के लिए, यह क्रिएटर्स को फ़ोन तस्वीरों से असली दुनिया की वस्तुएँ कैप्चर करने और उन्हें ब्राउज़र वर्ल्ड में रखने देता है।</p>
<p><strong>&quot;NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis&quot;</strong> -- Mildenhall et al. (ECCV 2020)। <a href="https://www.matthewtancik.com/nerf" target="_blank" rel="noreferrer">Project page</a>। नींव वाला न्यूरल दृश्य प्रतिनिधित्व पेपर। एक न्यूरल नेटवर्क 3D coordinates को रंग और density पर मैप करता है, जो इनपुट तस्वीरों के एक सेट से फ़ोटोरियलिस्टिक नए view synthesis को संभव बनाता है। हालाँकि NeRFs एक ब्राउज़र में सीधे रेंडर करने के लिए बहुत महँगे हैं (उन्हें प्रति-पिक्सल नेटवर्क मूल्यांकन चाहिए), NeRF-to-mesh extraction पाइपलाइन (एक NeRF train करना, फिर density field पर marching cubes चलाना) तस्वीरों से उच्च-गुणवत्ता वाले textured mesh पैदा करती है।</p>
<p><strong>&quot;Instant Neural Graphics Primitives with a Multiresolution Hash Encoding&quot;</strong> -- Müller, Evans, Schied, Keller (SIGGRAPH 2022)। <a href="https://nvlabs.github.io/instant-ngp/" target="_blank" rel="noreferrer">Project page</a>। spatial encoding के लिए एक multi-resolution hash table का इस्तेमाल करके NeRF training को घंटों से सेकंड तक घटाया। इसने NeRF को production इस्तेमाल के लिए व्यावहारिक बनाया। hash encoding तकनीक एक ब्राउज़र वर्ल्ड में दूसरे spatial डेटा पर भी लागू होती है (बड़े 3D datasets में तेज़ lookups)।</p>
<p><strong>&quot;Neuralangelo: High-Fidelity Neural Surface Reconstruction&quot;</strong> -- Li et al. (CVPR 2023)। <a href="https://research.nvidia.com/labs/dir/neuralangelo/" target="_blank" rel="noreferrer">Project page</a>। multi-resolution hash encoding और SDF (signed distance function) अनुमान के लिए numerical gradients का इस्तेमाल करके न्यूरल प्रतिनिधित्वों से उच्च-गुणवत्ता वाले triangle mesh निकालता है। आउटपुट mesh ब्राउज़र 3D इंजन में सीधे इस्तेमाल योग्य हैं। हमारी asset पाइपलाइन के लिए, Neuralangelo (या NeuS2 जैसे समान टूल्स) NeRF कैप्चर को साफ़ ज्यामिति और बेक किए हुए टेक्सचर के साथ वेब-तैयार GLB फ़ाइलों में बदल सकता है।</p>
<h3 id="मल्टीप्लेयर-नेटवर्किंग-और-स्टेट-सिंक्रोनाइज़ेशन" tabindex="-1">मल्टीप्लेयर नेटवर्किंग और स्टेट सिंक्रोनाइज़ेशन <a class="header-anchor" href="#मल्टीप्लेयर-नेटवर्किंग-और-स्टेट-सिंक्रोनाइज़ेशन" aria-label="Permalink to &quot;मल्टीप्लेयर नेटवर्किंग और स्टेट सिंक्रोनाइज़ेशन&quot;"></a></h3>
<p><strong>&quot;Interest Management in Massively Multiplayer Online Games&quot;</strong> -- Boulanger, Kienzle, Verbrugge (2006)। <a href="https://doi.org/10.1007/11558651_18" target="_blank" rel="noreferrer">DOI</a>। MMOs के लिए area-of-interest (AOI) management तकनीकों का एक व्यापक सर्वे। spatial प्रासंगिकता के आधार पर नेटवर्क अपडेट फ़िल्टर करने के लिए grid-आधारित, aura-आधारित, और हाइब्रिड तरीकों को कवर करता है। grid-आधारित तरीका (जो हमारे चंक सिस्टम पर मैप होता है) समान-घनत्व वाली दुनियाओं के लिए सबसे कुशल है। aura-आधारित तरीका (प्रति-entity प्रभाव त्रिज्या) variable घनत्व के लिए बेहतर काम करता है। AOI के भीतर priority-आधारित अपडेट दरों के साथ चंक-आधारित AOI की हमारी सिफ़ारिश इस रिसर्च से ली गई है।</p>
<p><strong>&quot;Dead Reckoning: Latency Hiding for Networked Games&quot;</strong> -- Pantel और Wolf (2002)। <a href="https://doi.org/10.1145/566500.566510" target="_blank" rel="noreferrer">DOI</a>। networked गेम्स के लिए dead reckoning (अंतिम ज्ञात वेग के आधार पर entity स्थिति का अनुमान) को औपचारिक रूप देता है। पेपर समझौते को मापता है: ऊँचे prediction thresholds bandwidth घटाते हैं लेकिन corrections के दौरान दिखने वाली स्थिति त्रुटि बढ़ाते हैं। 50-200ms latency वाले ब्राउज़र गेम्स के लिए, 0.5-1.0 मीटर का एक prediction threshold corrections को अदृश्य रखता है जबकि स्थिति अपडेट bandwidth को 60-80% तक काटता है।</p>
<p><strong>&quot;Conflict-free Replicated Data Types&quot;</strong> -- Shapiro, Preguiça, Baquero, Zawirski (2011)। <a href="https://doi.org/10.1007/978-3-642-24550-3_29" target="_blank" rel="noreferrer">DOI</a>। नींव वाला CRDT पेपर। state-आधारित और operation-आधारित CRDTs परिभाषित करता है जो coordination के बिना converge होते हैं। हमारे वर्ल्ड एडिटिंग सिस्टम के लिए, प्रासंगिक CRDTs हैं: LWW-Register (Last-Writer-Wins Register) उन ऑब्जेक्ट प्रॉपर्टीज़ के लिए जिनका एक अकेला मान होता है (स्थिति, घुमाव, रंग), और OR-Set (Observed-Remove Set) एक चंक में ऑब्जेक्ट के संग्रह के लिए (बिना conflict के concurrent add/remove संभालता है)। Yjs इन्हें JavaScript में कुशलता से implement करता है।</p>
<p><strong>&quot;Time Warp: A Mechanism for Distributed Simulation&quot;</strong> -- Jefferson (1985)। <a href="https://doi.org/10.1145/3916.3988" target="_blank" rel="noreferrer">DOI</a>। मूल optimistic distributed simulation पेपर। हालाँकि Time Warp ख़ुद एक ब्राउज़र गेम के लिए बहुत जटिल है, मुख्य समझ (events को optimistically process करें और किसी दूसरे node से conflict आने पर roll back करें) सर्वर reconciliation के साथ आधुनिक client-side prediction का आधार है। हर रिस्पॉन्सिव मल्टीप्लेयर गेम ऐसे ही काम करता है: client locally अनुमान लगाता है, actions सर्वर को भेजता है, और सर्वर के असहमत होने पर correct करता है।</p>
<p><strong>&quot;The TRIBES Engine Networking Model&quot;</strong> -- Frohnmayer और Gift (GDC 1999)। interest management, prioritized state अपडेट, और bandwidth budgeting के साथ client-server गेम नेटवर्किंग के पहले व्यावहारिक विवरणों में से एक। &quot;ghost manager&quot; अवधारणा (सर्वर प्रति-client यह view रखता है कि client क्या जानता है, और सिर्फ़ उस view से deltas भेजता है) बिल्कुल वही है जो हमारा चंक-आधारित Durable Object आर्किटेक्चर implement करता है। यह GDC टॉक ज़्यादातर आधुनिक गेम नेटवर्किंग का बौद्धिक पूर्वज है।</p>
<p><strong>&quot;Source Multiplayer Networking&quot;</strong> -- Valve (2009)। <a href="https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking" target="_blank" rel="noreferrer">Developer documentation</a>। Source इंजन नेटवर्किंग मॉडल (Half-Life 2, CS:GO, Team Fortress 2 में इस्तेमाल) का Valve का दस्तावेज़ीकरण। client-side prediction, entity interpolation, lag compensation, और &quot;snapshot&quot; सिस्टम को कवर करता है जहाँ सर्वर नियमित अंतराल पर पूरा वर्ल्ड स्टेट भेजता है जबकि client snapshots के बीच interpolate करता है। यह authoritative सर्वर नेटवर्किंग का स्वर्ण मानक है और हमारे आर्किटेक्चर पर सीधे लागू होता है।</p>
<h3 id="प्रोसीजरल-जेनरेशन" tabindex="-1">प्रोसीजरल जेनरेशन <a class="header-anchor" href="#प्रोसीजरल-जेनरेशन" aria-label="Permalink to &quot;प्रोसीजरल जेनरेशन&quot;"></a></h3>
<p><strong>&quot;Model Synthesis: A General Procedural Modeling Algorithm&quot;</strong> -- Merrell (2007)। <a href="https://doi.org/10.1145/1289603.1289612" target="_blank" rel="noreferrer">DOI</a>। Wave Function Collapse के पूर्ववर्तियों में से एक। स्थानीय constraints को propagate करके example मॉडल से 3D संरचनाएँ जेनरेट करता है। algorithm सबसे कम संभावनाओं वाली cells को iteratively collapse करके (न्यूनतम entropy heuristic) वैश्विक निरंतरता सुनिश्चित करता है। यही तरीका Townscaper और समान जेनरेटर सरल यूज़र इनपुट से सुसंगत संरचनाएँ पैदा करने के लिए इस्तेमाल करते हैं।</p>
<p><strong>&quot;WaveFunctionCollapse&quot;</strong> -- Maxim Gumin (2016)। <a href="https://github.com/mxgmn/WaveFunctionCollapse" target="_blank" rel="noreferrer">GitHub</a>। एक पारंपरिक पेपर नहीं बल्कि व्यापक दस्तावेज़ीकरण वाला एक मूलभूत ओपन-सोर्स प्रोजेक्ट। algorithm एक छोटी example image या tileset लेता है और बड़े आउटपुट जेनरेट करता है जो स्थानीय रूप से इनपुट जैसे होते हैं। एक क्रिएटर वर्ल्ड के लिए, WFC क्रिएटर-परिभाषित नियमों के एक छोटे सेट से इमारत लेआउट, road नेटवर्क, डंजन मैप, और टेरेन डिटेल जेनरेट कर सकता है। कई JavaScript implementations मौजूद हैं।</p>
<p><strong>&quot;Wave Function Collapse is Constraint Solving in the Wild&quot;</strong> -- Karth और Smith (FDG 2017)। <a href="https://doi.org/10.1145/3102071.3110566" target="_blank" rel="noreferrer">DOI</a>। WFC का एक शैक्षणिक विश्लेषण जो constraint satisfaction से इसके संबंध को स्पष्ट करता है और दिखाता है कि इसका विश्लेषण और विस्तार कैसे करें। WFC की सीमाओं (यह अटक सकता है और backtracking की ज़रूरत पड़ सकती है) और इन समस्याओं से बचने वाले tilesets कैसे डिज़ाइन करें, यह समझने के लिए प्रासंगिक।</p>
<p><strong>&quot;Superposition Theorem and Its Implications for the Procedural Generation of Game Content&quot;</strong> -- Sandhu et al. (2022)। प्रोसीजरल कंटेंट जेनरेशन के लिए quantum-प्रेरित superposition अवधारणाओं के इस्तेमाल को खोजता है। हालाँकि अनुमानात्मक है, एक अंतिम configuration पर &quot;collapse&quot; होने से पहले कई संभव states बनाए रखने का गणितीय ढाँचा बिल्कुल वैसा है जैसे WFC काम करता है और ज़्यादा परिष्कृत जेनरेशन सिस्टम को सूचित कर सकता है।</p>
<h3 id="रियल-टाइम-रेंडरिंग-तकनीकें" tabindex="-1">रियल-टाइम रेंडरिंग तकनीकें <a class="header-anchor" href="#रियल-टाइम-रेंडरिंग-तकनीकें" aria-label="Permalink to &quot;रियल-टाइम रेंडरिंग तकनीकें&quot;"></a></h3>
<p><strong>&quot;Real-Time Rendering&quot;</strong> -- Akenine-Möller, Haines, Hoffman (चौथा संस्करण, 2018)। मानक पाठ्यपुस्तक। अध्याय 19 (Acceleration Structures), अध्याय 20 (Efficient Shading), और अध्याय 21 (Virtual and Augmented Reality) ख़ास तौर पर प्रासंगिक हैं। यहाँ वर्णित frustum culling, occlusion culling, और LOD algorithms वही हैं जिन्हें Three.js, Babylon.js, और हर गेम इंजन implement करते हैं। एक पेपर नहीं, लेकिन निश्चित संदर्भ।</p>
<p><strong>&quot;A Survey on Baking Neural Radiance Fields for Real-Time View Synthesis&quot;</strong> -- Reiser et al. (2023)। <a href="https://doi.org/10.1111/cgf.14835" target="_blank" rel="noreferrer">DOI</a>। NeRFs को ऐसे फ़ॉर्मैट में बदलने के तरीकों का सर्वे करता है जो रियल टाइम में रेंडर होते हैं (mesh, टेक्सचर, sparse voxel grids)। हमारी asset पाइपलाइन पर सीधे प्रासंगिक जहाँ सर्वर-साइड न्यूरल कैप्चर को ब्राउज़र-रेंडर करने योग्य आउटपुट पैदा करना होता है।</p>
<p><strong>&quot;Scalable and Accurate Online Feature Matching Using 3D Gaussian Splatting&quot;</strong> -- विभिन्न समूह (2024-2025)। कई हालिया पेपर Gaussian splats के साथ एडिटिंग, compositing, और dynamic दृश्यों को खोजते हैं। प्रासंगिक क्योंकि क्रिएटर वर्ल्ड्स को कई splat दृश्यों (हर क्रिएटर की कैप्चर की हुई वस्तुएँ) को एक अकेले सुसंगत दृश्य में composite करना होता है। splat एडिटिंग के तरीके (recoloring, deformation, compositing) सक्रिय रिसर्च क्षेत्र हैं।</p>
<p><strong>&quot;Efficient GPU Screen-Space Ray Tracing&quot;</strong> -- McGuire और Mara (JCGT 2014)। <a href="https://doi.org/10.2312/hpg.20141090" target="_blank" rel="noreferrer">DOI</a>। हमारे water रेंडरिंग सेक्शन में इस्तेमाल किए गए screen-space reflections के पीछे का पेपर। पूरी ray tracing की लागत के बिना अनुमानित reflections के लिए depth buffer के ज़रिए rays trace करता है। &quot;hierarchical tracing&quot; variant (एक min-max depth mipmap का इस्तेमाल) WebGL 2 पर कुशलता से चलता है।</p>
<p><strong>&quot;Simulating Ocean Water&quot;</strong> -- Jerry Tessendorf (2001)। <a href="https://people.computing.clemson.edu/~jtessen/reports/papers_files/coursenotes2004.pdf" target="_blank" rel="noreferrer">PDF</a>। FFT-आधारित ocean सिमुलेशन पर नींव वाला पेपर। Phillips spectrum (ocean लहरों का सांख्यिकीय मॉडल) और inverse FFT के ज़रिए इसे एक spatial displacement map में बदलने का तरीका बताता है। यथार्थवादी ocean वाले हर बड़े गेम (Sea of Thieves, Assassin's Creed, Uncharted) द्वारा इस्तेमाल किया जाता है। FFT गणना WebGPU compute शेडर पर साफ़-साफ़ मैप होती है।</p>
<p><strong>&quot;Precomputed Atmospheric Scattering&quot;</strong> -- Bruneton और Neyret (EGSR 2008)। <a href="https://doi.org/10.1111/j.1467-8659.2008.01245.x" target="_blank" rel="noreferrer">DOI</a>। भौतिक रूप से सटीक sky रेंडरिंग के पीछे का पेपर। atmospheric scattering को lookup tables में precompute करता है जिन्हें एक फ़्रैगमेंट शेडर रियल टाइम में sample करता है। पहले सिद्धांतों से सही sky रंग, aerial perspective (दूर की वस्तुएँ नीली/धुंधली दिखती हैं), और सूर्यास्त/सूर्योदय के रंग पैदा करता है। precomputed tables छोटी हैं (कुछ सौ KB) और रनटाइम शेडर सस्ता है। Three.js का <code>Sky</code> शेडर और Babylon.js का procedural sky दोनों इस तरीके के सरल किए हुए संस्करण हैं।</p>
<p><strong>&quot;Ambient Occlusion Volumes&quot;</strong> -- McGuire (HPG 2010) और <strong>&quot;Scalable Ambient Obscurance&quot;</strong> -- McGuire, Mara, Luebke (HPG 2012)। <a href="https://research.nvidia.com/sites/default/files/pubs/2012-06_Scalable-Ambient-Obscurance/McGuire12SAO.pdf" target="_blank" rel="noreferrer">PDF</a>। आधुनिक SSAO implementations के पीछे के पेपर। SAO ब्राउज़र 3D इंजन में सबसे आम तौर पर implement किया जाने वाला variant है क्योंकि यह कुशल है (प्रति पिक्सल एक depth buffer sample) और विश्वसनीय contact shadows पैदा करता है। algorithm हर पिक्सल के आस-पास depth buffer को sample करके अनुमान लगाता है कि यह पास की ज्यामिति से कितना &quot;occluded&quot; है। Three.js और Babylon.js दोनों SAO-व्युत्पन्न SSAO implement करते हैं।</p>
<h3 id="crowd-रेंडरिंग-और-एनिमेशन" tabindex="-1">Crowd रेंडरिंग और एनिमेशन <a class="header-anchor" href="#crowd-रेंडरिंग-और-एनिमेशन" aria-label="Permalink to &quot;Crowd रेंडरिंग और एनिमेशन&quot;"></a></h3>
<p><strong>&quot;GPU Crowd Rendering&quot;</strong> -- Dudash (2007) और instanced crowd रेंडरिंग पर बाद की GDC/SIGGRAPH प्रस्तुतियाँ। मुख्य तकनीक: skeletal एनिमेशन फ़्रेम्स को टेक्सचर में बेक करें (Vertex Animation Textures), फिर crowds को instanced mesh के रूप में रेंडर करें जहाँ हर instance अपने current फ़्रेम के आधार पर एनिमेशन टेक्सचर से अपने bone transforms पढ़ता है। यह एनिमेशन मूल्यांकन को draw calls से अलग करता है, जिससे एक अकेला instanced draw call सैकड़ों अनूठे रूप से एनिमेटेड characters रेंडर कर सकता है।</p>
<p><strong>&quot;Position Based Dynamics&quot;</strong> -- Müller et al. (2007)। <a href="https://doi.org/10.1016/j.jvcir.2007.01.005" target="_blank" rel="noreferrer">DOI</a>। PBD पर नींव वाला पेपर, जो आधुनिक गेम इंजन कपड़ा, बाल, और soft bodies सिमुलेट करने का तरीका है। Rapier (हमारा अनुशंसित Wasm फ़िज़िक्स इंजन) PBD-व्युत्पन्न solvers इस्तेमाल करता है। अवतार कस्टमाइज़ेशन (capes, बहते बाल, ढीले कपड़े) के लिए, PBD गेम फ़्रेम दरों पर रिस्पॉन्सिव सिमुलेशन देता है। Wasm implementation इसे मुख्य JavaScript thread से दूर रखता है।</p>
<p><strong>&quot;FABRIK: A Fast, Iterative Solver for the Inverse Kinematics Problem&quot;</strong> -- Aristidou और Lasenby (2011)। <a href="https://doi.org/10.1016/j.gmod.2011.05.003" target="_blank" rel="noreferrer">DOI</a>। हमारे अवतार सेक्शन में अनुशंसित IK solver के पीछे का पेपर। FABRIK बारी-बारी से end effector से root तक और root से end effector तक पहुँचकर काम करता है, 3-5 iterations में converge होता है। यह Jacobian-आधारित IK से तेज़ है, joint constraints को स्वाभाविक रूप से संभालता है, और implement करना सरल है (बुनियादी solver के लिए लगभग 50 लाइन कोड)। Three.js और Babylon.js दोनों के IK implementations FABRIK से व्युत्पन्न हैं।</p>
<h3 id="वर्चुअल-वर्ल्ड्स-और-सहयोगी-वातावरण" tabindex="-1">वर्चुअल वर्ल्ड्स और सहयोगी वातावरण <a class="header-anchor" href="#वर्चुअल-वर्ल्ड्स-और-सहयोगी-वातावरण" aria-label="Permalink to &quot;वर्चुअल वर्ल्ड्स और सहयोगी वातावरण&quot;"></a></h3>
<p><strong>&quot;Massive Multiplayer Online Games: A Survey of the State-of-the-Art&quot;</strong> -- Yahyavi और Kemme (2013)। <a href="https://doi.org/10.1145/2522968.2522972" target="_blank" rel="noreferrer">DOI</a>। client-server मॉडल, peer-to-peer तरीके, interest management, consistency मॉडल, scalability तकनीकें, और धोखाधड़ी रोकथाम को कवर करते हुए MMO आर्किटेक्चर का व्यापक सर्वे। consistency मॉडल (strict, eventual, causal) का वर्गीकरण हमारे CRDT-आधारित तरीके पर मैप होता है (vector clocks के ज़रिए causal ordering के साथ eventual consistency)।</p>
<p><strong>&quot;A Distributed Architecture for Multiplayer Interactive Applications on the Internet&quot;</strong> -- Diot और Gautier (1999)। <a href="https://doi.org/10.1109/65.790947" target="_blank" rel="noreferrer">DOI</a>। distributed virtual environments पर शुरुआती रिसर्च जिसने मुख्य तनाव पहचाना: strict consistency को coordination चाहिए (latency जोड़ता है), जबकि weak consistency जवाबदेही देती है लेकिन दिखने वाली असंगति का जोखिम उठाती है। पेपर एक बीच के रास्ते के रूप में &quot;local lag&quot; (स्थानीय display को थोड़ी देर रोकना ताकि remote अपडेट आने का समय मिले) के पक्ष में तर्क देता है। वर्ल्ड एडिट्स (वस्तुएँ रखना) के लिए, 100-200ms का local lag अदृश्य है और सर्वर को validate करने का समय देता है।</p>
<p><strong>&quot;The Second Life Grid: The Architecture of a Near-Contemporary Open Source Virtual World&quot;</strong> -- Linden Lab तकनीकी दस्तावेज़ीकरण और समुदाय reverse-engineering। हालाँकि एक अकेला पेपर नहीं, Second Life के आर्किटेक्चर का तकनीकी विश्लेषण व्यापक रूप से दस्तावेज़ित है। मुख्य समझ: हर 256x256m region एक डेडिकेटेड सर्वर instance पर चलता है। ऑब्जेक्ट &quot;primitives&quot; (transforms, टेक्सचर, और स्क्रिप्ट वाले बुनियादी आकार) के एक tree के रूप में स्टोर होते हैं। viewer ऑब्जेक्ट विवरण और टेक्सचर माँग पर स्ट्रीम करता है। प्रति-ऑब्जेक्ट persistence वाला यह पार्सल-आधारित मॉडल उसके सबसे क़रीब मौजूद आर्किटेक्चर है जो हम बना रहे हैं, और Second Life का 20+ साल का संचालन साबित करता है कि यह स्केल होता है।</p>
<h3 id="वेब-ग्राफ़िक्स-और-ब्राउज़र-परफ़ॉर्मेंस" tabindex="-1">वेब ग्राफ़िक्स और ब्राउज़र परफ़ॉर्मेंस <a class="header-anchor" href="#वेब-ग्राफ़िक्स-और-ब्राउज़र-परफ़ॉर्मेंस" aria-label="Permalink to &quot;वेब ग्राफ़िक्स और ब्राउज़र परफ़ॉर्मेंस&quot;"></a></h3>
<p><strong>&quot;WebGPU: A High-Performance Graphics API for the Web&quot;</strong> -- W3C GPU for the Web Working Group (2023-जारी)। <a href="https://www.w3.org/TR/webgpu/" target="_blank" rel="noreferrer">Specification</a>। WebGPU की औपचारिक specification। एक रिसर्च पेपर नहीं, लेकिन ब्राउज़र GPU प्रोग्रामिंग के लिए निश्चित तकनीकी दस्तावेज़। compute शेडर specification (सेक्शन 23) इस गाइड में वर्णित टेरेन जेनरेशन, फ़ोलिएज scattering, और particle सिस्टम के लिए ख़ास तौर पर प्रासंगिक है।</p>
<p><strong>&quot;WebAssembly: A Framework for Running Compiled Code in the Browser&quot;</strong> -- Haas et al. (PLDI 2017)। <a href="https://doi.org/10.1145/3062341.3062363" target="_blank" rel="noreferrer">DOI</a>। ब्राउज़र vendors का मूल WebAssembly पेपर। दिखाता है कि Wasm compute-intensive workloads के लिए नेटिव परफ़ॉर्मेंस के 2x के भीतर हासिल करता है। यह ब्राउज़र ओपन वर्ल्ड्स के लिए Wasm-compiled फ़िज़िक्स इंजन (Rapier, Havok) की हमारी सिफ़ारिश को मान्य करता है। पेपर का परफ़ॉर्मेंस विश्लेषण दिखाता है कि ओवरहेड मुख्य रूप से bounds checking और indirect function calls से आता है, compilation मॉडल से नहीं।</p>
<p><strong>&quot;Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code&quot;</strong> -- Jangda et al. (USENIX ATC 2019)। <a href="https://www.usenix.org/system/files/atc19-jangda.pdf" target="_blank" rel="noreferrer">PDF</a>। Wasm बनाम नेटिव परफ़ॉर्मेंस का एक कठोर benchmark। पाता है कि SPEC CPU benchmark suite में Wasm औसतन नेटिव C से 1.45x-1.55x धीमा चलता है। ख़ासकर गेम फ़िज़िक्स के लिए (floating-point heavy, कम system calls), ओवरहेड निचले सिरे पर है (~1.3x)। यह पुष्टि करता है कि एक ब्राउज़र में Wasm फ़िज़िक्स रियल-टाइम गेम workloads के लिए संभव है।</p>
<p><strong>&quot;Bringing the Web up to Speed with WebAssembly&quot;</strong> -- Rossberg et al. (2018)। <a href="https://doi.org/10.1145/3192366.3192379" target="_blank" rel="noreferrer">DOI</a>। WebAssembly के डिज़ाइन तर्क और औपचारिक semantics का वर्णन करता है। ख़ास तौर पर प्रासंगिक: memory safety guarantees की चर्चा (सेक्शन 3) बताती है कि Wasm modules नेटिव plugins के सुरक्षा जोखिमों के बिना एक ब्राउज़र टैब को JavaScript के साथ सुरक्षित रूप से क्यों साझा कर सकते हैं। यही फ़िज़िक्स इंजन (जो पारंपरिक रूप से C++ लाइब्रेरी थे) को एक ब्राउज़र में चलाना सुरक्षित बनाता है।</p>
<h3 id="ai-संचालित-कंटेंट-जेनरेशन" tabindex="-1">AI-संचालित कंटेंट जेनरेशन <a class="header-anchor" href="#ai-संचालित-कंटेंट-जेनरेशन" aria-label="Permalink to &quot;AI-संचालित कंटेंट जेनरेशन&quot;"></a></h3>
<p><strong>&quot;Text-to-3D Generation with Bidirectional Diffusion Using Both 2D and 3D Priors&quot;</strong> -- विभिन्न समूह (2023-2025)। कई हालिया पेपर (DreamFusion, Magic3D, ProlificDreamer, MVDream, Zero-1-to-3++) 3D optimization के लिए 2D diffusion मॉडल को priors के रूप में इस्तेमाल करके text prompts से 3D assets जेनरेट करना खोजते हैं। 2023 की शुरुआत से 2025 तक गुणवत्ता नाटकीय रूप से सुधरी है, blobby आकारों से विस्तृत, textured mesh तक पहुँची है। हमारे प्लेटफ़ॉर्म के लिए, ये मॉडल (सर्वर-साइड GPUs पर चलते हुए) क्रिएटर asset पाइपलाइन में &quot;AI जेनरेशन&quot; चरण हैं।</p>
<p><strong>&quot;DreamFusion: Text-to-3D using 2D Diffusion&quot;</strong> -- Poole et al. (ICLR 2023)। <a href="https://dreamfusion3d.github.io/" target="_blank" rel="noreferrer">Project page</a>। Score Distillation Sampling (SDS) पर नींव वाला पेपर, जो 3D optimization को मार्गदर्शन देने के लिए एक pre-trained 2D diffusion मॉडल इस्तेमाल करता है। मुख्य समझ: अगर आप किसी मौजूदा 2D मॉडल का इस्तेमाल करके यह आँक सकें कि किसी 3D ऑब्जेक्ट के रेंडर किए हुए views एक text prompt से मेल खाते हैं या नहीं, तो आपको 3D training डेटा की ज़रूरत नहीं। इसने text-to-3D जेनरेशन का दरवाज़ा खोला और बाद के काम (Magic3D, ProlificDreamer) का आधार है जिसने गुणवत्ता और गति सुधारी।</p>
<p><strong>&quot;LRM: Large Reconstruction Model for Single Image to 3D&quot;</strong> -- Hong et al. (ICLR 2024)। <a href="https://yiconghong.me/LRM/" target="_blank" rel="noreferrer">Project page</a>। एक अकेले GPU पर 5 सेकंड में एक अकेली image से एक 3D मॉडल reconstruct करता है। मॉडल एक NeRF-जैसा प्रतिनिधित्व निकालता है जिसे एक mesh में बदला जा सकता है। एक क्रिएटर वर्ल्ड के लिए, इसका मतलब है कि एक क्रिएटर किसी भी असली दुनिया की वस्तु की तस्वीर ले सकता है और सेकंडों में एक 3D मॉडल पा सकता है। यह गति इसे एक batch प्रक्रिया के बजाय एक इंटरैक्टिव टूल के रूप में संभव बनाती है।</p>
<p><strong>&quot;Procedural Content Generation via Machine Learning (PCGML)&quot;</strong> -- Summerville et al. (2018)। <a href="https://doi.org/10.1109/TG.2018.2846639" target="_blank" rel="noreferrer">DOI</a>। गेम्स में प्रोसीजरल कंटेंट जेनरेशन के लिए मशीन लर्निंग के इस्तेमाल का एक सर्वे। लेवल जेनरेशन, आइटम जेनरेशन, narrative जेनरेशन, और वर्ल्ड जेनरेशन को कवर करता है। ख़ास तौर पर प्रासंगिक: &quot;controllable generation&quot; की चर्चा जहाँ डिज़ाइनर उच्च-स्तरीय पैरामीटर सेट करते हैं और ML मॉडल विवरण भरता है। यह AI-सहायता वाली वर्ल्ड बिल्डिंग का paradigm है: क्रिएटर इरादा सेट करते हैं (&quot;इस इलाके को एक डरावना जंगल बनाओ&quot;), AI ज्यामिति, टेक्सचर, और आबादी भरता है।</p>
<h3 id="ये-पेपर-हमारे-आर्किटेक्चर-से-कैसे-जुड़ते-हैं" tabindex="-1">ये पेपर हमारे आर्किटेक्चर से कैसे जुड़ते हैं <a class="header-anchor" href="#ये-पेपर-हमारे-आर्किटेक्चर-से-कैसे-जुड़ते-हैं" aria-label="Permalink to &quot;ये पेपर हमारे आर्किटेक्चर से कैसे जुड़ते हैं&quot;"></a></h3>
<p>रिसर्च हमारे आर्किटेक्चर पर परतों में मैप होती है:</p>
<p><strong>टेरेन पाइपलाइन:</strong> Perlin/simplex noise (Perlin 1985, 2001) बेस हाइटमैप जेनरेट करता है। Hydraulic erosion (Mei et al. 2007) भूवैज्ञानिक यथार्थवाद जोड़ता है। Geometry clipmaps (Losasso और Hoppe 2004) या CDLOD (Strugar 2014) टेरेन को ब्राउज़र में कुशलता से रेंडर करते हैं। Atmospheric scattering (Bruneton और Neyret 2008) दूर के टेरेन को सही दिखाता है।</p>
<p><strong>Asset पाइपलाइन:</strong> Text-to-3D (DreamFusion et al.) और image-to-3D (LRM) सर्वर-साइड assets जेनरेट करते हैं। Gaussian splatting (Kerbl et al. 2023) photogrammetry कैप्चर संभव बनाता है। Neuralangelo (Li et al. 2023) न्यूरल कैप्चर से साफ़ mesh निकालता है। सभी आउटपुट ब्राउज़र-तैयार GLB/KTX2 में process होते हैं।</p>
<p><strong>रेंडरिंग:</strong> SSAO (McGuire 2012) गहराई जोड़ता है। Screen-space reflections (McGuire और Mara 2014) water को शक्ति देते हैं। FFT ocean (Tessendorf 2001) water सिमुलेट करता है। Vertex animation textures (Dudash 2007) crowds रेंडर करते हैं। FABRIK (Aristidou और Lasenby 2011) character IK चलाता है।</p>
<p><strong>नेटवर्किंग:</strong> Interest management (Boulanger et al. 2006) spatial प्रासंगिकता के हिसाब से अपडेट फ़िल्टर करता है। Dead reckoning (Pantel और Wolf 2002) bandwidth घटाता है। CRDTs (Shapiro et al. 2011) सहयोगी एडिटिंग संभालते हैं। सर्वर reconciliation के साथ client prediction (Jefferson 1985, Valve Source Networking) जवाबदेही देता है।</p>
<p><strong>वर्ल्ड जेनरेशन:</strong> WFC (Gumin 2016, Karth और Smith 2017) संरचनाएँ और लेआउट जेनरेट करता है। PCGML (Summerville et al. 2018) AI-सहायता वाली जेनरेशन का ढाँचा देता है जहाँ क्रिएटर इरादा सेट करते हैं और मॉडल विवरण भरते हैं।</p>
<p>रिसर्च परिपक्व है। इनमें से ज़्यादातर तकनीकें सालों से शिप किए गए गेम्स में इस्तेमाल हुई हैं। उन्हें एक ब्राउज़र में लाने की नवीनता algorithms नहीं है। यह उन्हें ब्राउज़र मेमोरी, GPU, और नेटवर्क सीमाओं के भीतर काम करने की इंजीनियरिंग है, जो इस गाइड का बाकी हिस्सा संबोधित करता है।</p>
<h2 id="आगे-पढ़ें" tabindex="-1">आगे पढ़ें <a class="header-anchor" href="#आगे-पढ़ें" aria-label="Permalink to &quot;आगे पढ़ें&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/web-games-stack-2026.html">2026 में वेब गेम्स टेक स्टैक</a> WebGL, WebGPU, और WebAssembly की बुनियादी बातें कवर करता है</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">वेब गेम इंजन तुलना</a> ब्राउज़र डिलीवरी के लिए इंजनों की तुलना करता है</li>
<li><a href="/hi/guides/threejs-usdc-tech-report.html">Three.js + USDC टेक रिपोर्ट</a> ब्राउज़र में 3D assets लोड करने पर</li>
<li><a href="/hi/guides/frontier-gen-ai-models.html">फ़्रंटियर ओपन-सोर्स जेन AI मॉडल</a> AI जेनरेशन पाइपलाइन के लिए</li>
<li><a href="/hi/guides/co-op-game-design.html">को-ऑप गेम डिज़ाइन</a> मल्टीप्लेयर डिज़ाइन पैटर्न पर जो प्लेयर्स को जोड़े रखते हैं</li>
<li><a href="/hi/guides/landscape-generation-browser.html">ब्राउज़र ओपन वर्ल्ड्स के लिए लैंडस्केप जेनरेशन</a> — टेरेन, erosion, और vegetation रेंडरिंग</li>
<li><a href="/hi/tutorials/websocket-multiplayer-basics.html">WebSocket मल्टीप्लेयर बेसिक्स</a> — ब्राउज़र मल्टीप्लेयर नेटवर्किंग शुरू करना</li>
<li><a href="/hi/tutorials/webgpu-getting-started.html">WebGPU शुरुआत</a> — अगली पीढ़ी के ब्राउज़र 3D के लिए रेंडरिंग API</li>
<li><a href="/hi/tutorials/streaming-asset-loading.html">स्ट्रीमिंग asset loading</a> — बड़े 3D वर्ल्ड्स के लिए progressive loading पैटर्न</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 में Co-op Game Design]]></title>
            <link>https://app.cinevva.com/hi/guides/co-op-game-design</link>
            <guid>https://app.cinevva.com/hi/guides/co-op-game-design</guid>
            <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA["friend slop" games को क्या चलाता है। Peak ने 1.1 करोड़ कॉपियाँ बेचीं। यहाँ इसकी वजह है।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-co-op-game-design" tabindex="-1">2026 में Co-op Game Design <a class="header-anchor" href="#_2026-में-co-op-game-design" aria-label="Permalink to &quot;2026 में Co-op Game Design&quot;"></a></h1>
<p>एक शब्द इन दिनों खूब घूम रहा है जिसे developers या तो पसंद करते हैं या उससे नफरत करते हैं: &quot;friend slop&quot;।</p>
<p>इसकी शुरुआत एक ताने के तौर पर हुई थी। कम बजट वाले co-op games को उथले content farm बताकर खारिज करने का एक तरीका, जो वायरल clips के लिए बनाए जाते हैं। लेकिन फिर Peak ने दो महीनों में 1.1 करोड़ कॉपियाँ बेच दीं। R.E.P.O. ने Steam पर राज किया। और अचानक ये games बनाने वाले developers इस लेबल को अपनाने लगे।</p>
<p>&quot;हमें तो लगता है कि friend slop एक ज़बरदस्त शब्द है,&quot; Peak के publisher Aggro Crab की Paige Wilson ने कहा। &quot;इसका इस्तेमाल एक ऐसे कम लागत वाले game के लिए होता है जिसे आप और आपके दोस्त कभी भी उठाकर खेल सकते हैं, थोड़ा मज़ा कर सकते हैं, साथ बैठ सकते हैं, और थोड़ी-बहुत गड़बड़ की उम्मीद रख सकते हैं। हो सकता है कुछ लोग इसे ऐसे न देखें, पर हम तो देखते हैं!&quot;</p>
<p>ये games क्यों चलते हैं और आप एक कैसे design कर सकते हैं, इसके बारे में मैंने जो सीखा है वो यहाँ है।</p>
<h2 id="वे-games-जिन्होंने-2025-को-परिभाषित-किया" tabindex="-1">वे Games जिन्होंने 2025 को परिभाषित किया <a class="header-anchor" href="#वे-games-जिन्होंने-2025-को-परिभाषित-किया" aria-label="Permalink to &quot;वे Games जिन्होंने 2025 को परिभाषित किया&quot;"></a></h2>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/Am4gM4b2UHw" title="Lethal Company Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p><strong>Lethal Company</strong> (2023) ने इस लहर की शुरुआत की। अकेले developer Zeekerss ने एक co-op horror game बनाया जहाँ आप monsters से बचते हुए वीरान facilities से scrap इकट्ठा करते हैं। इसने लाखों कॉपियाँ बेचीं और एक पूरी genre को जन्म दिया।</p>
<p><a href="https://store.steampowered.com/app/1966720/Lethal_Company/" target="_blank" class="campaign-link">View Lethal Company on Steam →</a></p>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/oSfoK8eSeD8" title="R.E.P.O. Release Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p><strong>R.E.P.O.</strong> (2025) ने इसी formula को लेकर उसे और भी मज़ाकिया बना दिया। Robot avatars। बढ़ा-चढ़ाकर दिखाई गई physics। Players ने कहा कि यह &quot;इतना मज़ेदार था कि डरना मुश्किल हो गया।&quot; यह 2025 के सबसे बड़े co-op games में से एक बन गया। जब Steam ने दिसंबर 2025 में अपने साल के अंत के best-sellers प्रकाशित किए, तो units के हिसाब से R.E.P.O. साल का सबसे ज़्यादा बिकने वाला नया game निकला, और ठीक उसके पीछे Peak था। Co-op friend slop games ने सीधे-सीधे टॉप के स्थान हथिया लिए, और उन बड़े बजट वाली releases को पीछे छोड़ दिया जिनकी लागत पाँच गुना ज़्यादा थी।</p>
<p><a href="https://store.steampowered.com/app/3241660/REPO/" target="_blank" class="campaign-link">View R.E.P.O. on Steam →</a></p>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/6BCdx7I1gz8" title="Peak Explained" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p><strong>Peak</strong> (2025) ने साबित कर दिया कि यह formula horror के बाहर भी काम करता है। दोस्तों के साथ एक पहाड़ चढ़ो। नीचे गिरो। हँसो। फिर से कोशिश करो। 1.1 करोड़ कॉपियाँ बिकीं। यह game दक्षिण कोरिया में एक game jam के दौरान 4 हफ़्तों में बना था।</p>
<p>Peak ने launch के बाद भी मुफ़्त content जोड़ना जारी रखा, अगस्त 2025 में एक नया Mesa biome घुमाकर लाया और दिसंबर 2025 में rapper bbno$ के साथ एक सीमित समय का in-game concert चलाया। कम बजट वाला यह jam game नाम को छोड़कर हर मायने में एक live service बन गया।</p>
<p><a href="https://store.steampowered.com/app/3527290/PEAK/" target="_blank" class="campaign-link">View Peak on Steam →</a></p>
<h2 id="मूल-design-सिद्धांत" tabindex="-1">मूल Design सिद्धांत <a class="header-anchor" href="#मूल-design-सिद्धांत" aria-label="Permalink to &quot;मूल Design सिद्धांत&quot;"></a></h2>
<p>इन games का अध्ययन करने और developer interviews पढ़ने के बाद, इन सबमें जो समान है वो यहाँ है:</p>
<h3 id="_1-प्रवेश-की-कम-बाधा" tabindex="-1">1. प्रवेश की कम बाधा <a class="header-anchor" href="#_1-प्रवेश-की-कम-बाधा" aria-label="Permalink to &quot;1. प्रवेश की कम बाधा&quot;"></a></h3>
<div class="stat-box">
<strong>$8 या उससे कम</strong><br>
Peak की pricing थ्योरी: "आठ डॉलर अब भी पाँच डॉलर ही है। यह दस डॉलर नहीं बनता।"
</div>
<p>ये games $20 से कम के होते हैं। ज़्यादातर $10 से कम के। Peak $5 पर launch हुआ, फिर $8 पर। Developers के पास price psychology को लेकर एक पूरी थ्योरी थी: &quot;छह डॉलर अब भी पाँच डॉलर ही है। तीन डॉलर दो डॉलर ही है। दो डॉलर तो लगभग मुफ़्त है।&quot;</p>
<p>लेकिन यह सिर्फ़ कीमत की बात नहीं है। ये games सीखने में आसान हैं। आपको पहले से gaming का अनुभव नहीं चाहिए। आपको जटिल systems समझने की ज़रूरत नहीं। आपके non-gamer दोस्त भी जुड़ सकते हैं।</p>
<h3 id="_2-हार-मज़ेदार-होती-है" tabindex="-1">2. हार मज़ेदार होती है <a class="header-anchor" href="#_2-हार-मज़ेदार-होती-है" aria-label="Permalink to &quot;2. हार मज़ेदार होती है&quot;"></a></h3>
<p>Peak में, मैं कभी किसी run के आखिर तक ज़िंदा नहीं बचा। फिर भी मैं खेलता रहता हूँ।</p>
<p>सबसे मनोरंजक पल जीत के नहीं होते। वे तब होते हैं जब आप अपने दोस्त को एक jump चूकते और पहाड़ से गिरते देखते हैं। ज़हरीला खाना खाते हुए। scoutmaster के पीछे भागते हुए।</p>
<p>मज़ाकिया failure states के लिए design करो। मौत को देखने लायक बनाओ। players को एक-दूसरे पर हँसने दो।</p>
<h3 id="_3-proximity-chat" tabindex="-1">3. Proximity Chat <a class="header-anchor" href="#_3-proximity-chat" aria-label="Permalink to &quot;3. Proximity Chat&quot;"></a></h3>
<p>लगभग हर सफल friend slop game में proximity voice chat होता है। जैसे-जैसे आप teammates से दूर जाते हैं, आपकी आवाज़ धीमी होती जाती है। Character के होंठ आपकी कही बात के हिसाब से lip-sync करते हैं।</p>
<p>इससे स्वाभाविक comedy पैदा होती है। कोई दूर से मदद के लिए चिल्ला रहा हो। फुसफुसाती बातचीत। जब आपको एहसास होता है कि आप अकेले बहुत दूर भटक गए हैं तो जो घबराहट होती है।</p>
<h3 id="_4-physics-jank-जानबूझकर" tabindex="-1">4. Physics Jank (जानबूझकर) <a class="header-anchor" href="#_4-physics-jank-जानबूझकर" aria-label="Permalink to &quot;4. Physics Jank (जानबूझकर)&quot;"></a></h3>
<p>लड़खड़ाती, अनिश्चित physics कोई bugs नहीं हैं। वे features हैं।</p>
<p>जब आपका character अचानक ragdoll हो जाता है, तो वो मज़ेदार होता है। जब objects अजीब तरीके से उछलते हैं, तो वो कहानियाँ बनाते हैं। यह jank ही content है।</p>
<h3 id="_5-शेयर-करने-लायक-पल" tabindex="-1">5. शेयर करने लायक पल <a class="header-anchor" href="#_5-शेयर-करने-लायक-पल" aria-label="Permalink to &quot;5. शेयर करने लायक पल&quot;"></a></h3>
<p>ये games clips के लिए design किए गए हैं। Twitch। TikTok। YouTube Shorts।</p>
<p>हर session ऐसे पल पैदा करता है जो शेयर करने लायक होते हैं। Algorithm को ये पसंद हैं। Players बिना एहसास किए marketers बन जाते हैं।</p>
<h2 id="ये-traditional-co-op-से-कैसे-अलग-हैं" tabindex="-1">ये Traditional Co-op से कैसे अलग हैं <a class="header-anchor" href="#ये-traditional-co-op-से-कैसे-अलग-हैं" aria-label="Permalink to &quot;ये Traditional Co-op से कैसे अलग हैं&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Traditional Co-op</th>
<th>Friend Slop</th>
</tr>
</thead>
<tbody>
<tr>
<td>जीतना ही लक्ष्य है</td>
<td>साथ बैठना ही लक्ष्य है</td>
</tr>
<tr>
<td>Skill चाहिए</td>
<td>कोई भी खेल सकता है</td>
</tr>
<tr>
<td>Solo mode चलता है</td>
<td>Solo mode उदास है</td>
</tr>
<tr>
<td>Story-driven</td>
<td>Moment-driven</td>
</tr>
<tr>
<td>$40-60</td>
<td>$5-20</td>
</tr>
<tr>
<td>Polished</td>
<td>जानबूझकर janky</td>
</tr>
</tbody>
</table>
<p>The Verge के विश्लेषण ने इसे ठीक पकड़ा: &quot;friend slop में, मुख्य मकसद हँसी है। जीतना दूसरे नंबर पर है।&quot;</p>
<h2 id="अकेलेपन-का-पहलू" tabindex="-1">अकेलेपन का पहलू <a class="header-anchor" href="#अकेलेपन-का-पहलू" aria-label="Permalink to &quot;अकेलेपन का पहलू&quot;"></a></h2>
<p>यहाँ एक बात है जो आलोचक तब चूक जाते हैं जब वे इन games को &quot;slop&quot; कहकर खारिज करते हैं।</p>
<p>हम एक अकेलेपन की महामारी में हैं। लोग अलग-थलग पड़े हैं। Remote work ने दोस्तों के समूहों को बिखेर दिया। ये games लोगों को virtual तरीके से साथ बैठने की एक वजह देते हैं। ये कम प्रतिबद्धता वाली social spaces हैं।</p>
<p>जैसा एक लेखक ने कहा: &quot;बँटवारे और अलगाव वाले इन समयों से मुक्ति का एक असली रास्ता।&quot;</p>
<p>यह कोई छोटी बात नहीं है।</p>
<h2 id="अर्थशास्त्र" tabindex="-1">अर्थशास्त्र <a class="header-anchor" href="#अर्थशास्त्र" aria-label="Permalink to &quot;अर्थशास्त्र&quot;"></a></h2>
<div class="stat-box">
<strong>4 हफ़्ते → 1.1 करोड़ कॉपियाँ</strong><br>
Peak को दक्षिण कोरिया में एक महीने भर चली game jam के दौरान बनाया गया था।
</div>
<p>ये games बनाने में सस्ते हैं। छोटी teams। छोटे development cycles। कम-fidelity वाले graphics जिन्हें players असल में पसंद करते हैं क्योंकि वे प्यारे लगते हैं।</p>
<p>Content Warning ने एक छोटी team और कम समय लिया। Peak एक game jam project था। R.E.P.O. एक ऐसे studio से आया जो experimental games बनाता है।</p>
<p>इन hits के पीछे वाले studios रुक नहीं रहे। Peak के co-developer Aggro Crab ने अपना अगला co-op game Crashout Crew 28 मई 2026 को भेजा, जो एक से चार players के लिए एक अराजक forklift warehouse simulator है और Steam तथा Xbox Game Pass पर launch हुआ। वही नुस्खा: छोटी team, physics से चलने वाली अफरा-तफरी, दोस्तों के साथ खेलने के लिए design किया गया।</p>
<p>गणित सही बैठता है: कम निवेश, ज़्यादा संभावित फ़ायदा, और एक ऐसी genre जो polish से ज़्यादा असलियत को इनाम देती है।</p>
<h2 id="उल्लेखनीय-उदाहरण" tabindex="-1">उल्लेखनीय उदाहरण <a class="header-anchor" href="#उल्लेखनीय-उदाहरण" aria-label="Permalink to &quot;उल्लेखनीय उदाहरण&quot;"></a></h2>
<p><strong>ज़रूरी games:</strong></p>
<ul>
<li>Among Us (2018) - प्रोटोटाइप</li>
<li>Phasmophobia (2020) - proximity chat के साथ ghost hunting</li>
<li>Lethal Company (2023) - genre को परिभाषित करने वाला</li>
<li>Content Warning (2024) - views के लिए monsters की filming</li>
<li>Peak (2025) - चढ़ाई की अफरा-तफरी</li>
<li>R.E.P.O. (2025) - मज़ाकिया horror extraction</li>
<li>Crashout Crew (2026) - Peak के co-developer Aggro Crab से forklift co-op अफरा-तफरी</li>
<li>Gamble With Your Friends (2026) - party game जिसने अपने पहले हफ़्ते में दस लाख कॉपियाँ बेचीं, इस बात का सबूत कि यह genre 2026 में भी चलती रही</li>
</ul>
<p><strong>प्रयोग:</strong></p>
<ul>
<li>Guilty as Sock! - sock puppets के साथ courtroom drama</li>
<li>Mage Arena - $2.99, चिल्लाकर spells डालो</li>
<li>Lockdown Protocol - Among Us और chore simulator का मेल</li>
<li>YAPYAP - एक tower में तोड़फोड़ करते wizards</li>
</ul>
<h2 id="web-games-एकदम-सही-क्यों-बैठते-हैं" tabindex="-1">Web Games एकदम सही क्यों बैठते हैं <a class="header-anchor" href="#web-games-एकदम-सही-क्यों-बैठते-हैं" aria-label="Permalink to &quot;Web Games एकदम सही क्यों बैठते हैं&quot;"></a></h2>
<p>browser-based developers के लिए यहीं से बात दिलचस्प होती है।</p>
<p>Friend slop games की दो ज़रूरतें हैं: प्रवेश की कम बाधा और तुरंत multiplayer। Web games दोनों में एकदम सटीक बैठते हैं।</p>
<p>कोई downloads नहीं। कोई installs नहीं। एक link शेयर करो, हर कोई 30 सेकंड में खेल रहा होता है। Co-op games के लिए यही तो सपना है।</p>
<p>तकनीकी चुनौतियाँ (WebSocket multiplayer, physics sync, voice chat) सुलझाई जा सकती हैं। हमारे पास <a href="/hi/tutorials/websocket-multiplayer-basics.html">WebSocket tutorials</a> यूँ ही नहीं हैं।</p>
<p>बड़ा सवाल design का है। क्या आप शेयर करने लायक पल बना सकते हैं? क्या आप हार को मज़ेदार बना सकते हैं? क्या आप दोस्तों को आपके game में साथ बैठने की एक वजह दे सकते हैं?</p>
<h2 id="अगर-आप-एक-बना-रहे-हैं" tabindex="-1">अगर आप एक बना रहे हैं <a class="header-anchor" href="#अगर-आप-एक-बना-रहे-हैं" aria-label="Permalink to &quot;अगर आप एक बना रहे हैं&quot;"></a></h2>
<p><strong>social loop से शुरू करो।</strong> Players बाद में किस बारे में बात करेंगे? वे कौन सी कहानियाँ सुनाएँगे? उन पलों के लिए design करो।</p>
<p><strong>jank को अपनाओ।</strong> आपको AAA polish की ज़रूरत नहीं। Players को मासूम सी अदा पसंद है। Ragdolls आपके दोस्त हैं।</p>
<p><strong>कीमत कम रखो।</strong> $5-10 सबसे सही जगह है। आप चाहते हैं कि दोस्तों के पूरे समूह खरीदें। $8 की चार कॉपियाँ $30 की एक कॉपी से बेहतर हैं।</p>
<p><strong>proximity chat जोड़ो।</strong> यह लगभग ज़रूरी है। Players अब इसकी उम्मीद रखते हैं।</p>
<p><strong>इसे clippable बनाओ।</strong> अगर कोई आपके game के clips शेयर नहीं कर रहा, तो आप मुफ़्त marketing से चूक रहे हैं।</p>
<p><strong>असली दोस्तों के समूहों के साथ test करो।</strong> अकेले playtesting से आपको पता नहीं चलेगा कि social dynamics काम करती हैं या नहीं।</p>
<p>जो games जीतते हैं वे सबसे polished नहीं होते। वे वो होते हैं जो दोस्तों को साथ मिलकर हँसने की एक वजह देते हैं।</p>
<hr>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="एक-अच्छा-co-op-game-क्या-बनाता-है" tabindex="-1">एक अच्छा co-op game क्या बनाता है? <a class="header-anchor" href="#एक-अच्छा-co-op-game-क्या-बनाता-है" aria-label="Permalink to &quot;एक अच्छा co-op game क्या बनाता है?&quot;"></a></h3>
<p>सबसे अच्छे co-op games ऐसी स्थितियाँ बनाते हैं जहाँ players को एक-दूसरे की ज़रूरत भी होती है और वे एक-दूसरे के रास्ते में भी आते हैं। आप अफरा-तफरी के ऐसे पल चाहते हैं जो आगे चलकर कहानियाँ बन जाएँ जिन्हें लोग बार-बार सुनाएँ। कम skill floors मदद करते हैं क्योंकि कोई भी वो दोस्त नहीं बनना चाहता जिसे controls समझ ही नहीं आते। मज़ाकिया failure states आपकी सोच से ज़्यादा मायने रखते हैं। जब हारना मनोरंजक हो, तो लोग खेलते रहते हैं। Proximity voice chat एक ऐसी परत जोड़ता है जिसे text chat नहीं दोहरा सकता। और sessions छोटे रखो, 15 से 30 मिनट, ताकि लोग एक शाम में कुछ rounds फिट कर सकें बिना इसे एक प्रतिबद्धता जैसा महसूस किए।</p>
<h3 id="अभी-co-op-games-इतने-popular-क्यों-हैं" tabindex="-1">अभी co-op games इतने popular क्यों हैं? <a class="header-anchor" href="#अभी-co-op-games-इतने-popular-क्यों-हैं" aria-label="Permalink to &quot;अभी co-op games इतने popular क्यों हैं?&quot;"></a></h3>
<p>कुछ चीज़ें एक साथ जुड़ गईं। Lethal Company ने 2023 में साबित किया कि एक अकेला dev एक co-op game बना सकता है और लाखों कॉपियाँ बेच सकता है। फिर Peak ने 2025 में 1.1 करोड़ कॉपियाँ छुईं, वो भी एक ऐसे game के तौर पर जो एक jam project के रूप में शुरू हुआ था। अर्थशास्त्र को नज़रअंदाज़ करना मुश्किल हो गया। ये games बनाने में सस्ते हैं, दोस्तों के समूहों में जंगल की आग की तरह फैलते हैं, और ऐसे clips पैदा करते हैं जो social media पर वायरल हो जाते हैं। &quot;friend slop&quot; genre, जैसा लोग इसे कहते हैं, polish से ज़्यादा असलियत को इनाम देती है। आपको एक बड़े studio या बड़े बजट की ज़रूरत नहीं। आपको मज़ाकिया पल और ऐसे दोस्त चाहिए जो उन्हें शेयर करना चाहें।</p>
<h3 id="क्या-आप-browser-के-लिए-एक-co-op-game-बना-सकते-हैं" tabindex="-1">क्या आप browser के लिए एक co-op game बना सकते हैं? <a class="header-anchor" href="#क्या-आप-browser-के-लिए-एक-co-op-game-बना-सकते-हैं" aria-label="Permalink to &quot;क्या आप browser के लिए एक co-op game बना सकते हैं?&quot;"></a></h3>
<p>बिल्कुल। Browser games असल में co-op के लिए बहुत बढ़िया बैठते हैं क्योंकि दोस्तों के साथ खेलने में सबसे बड़ी बाधा सबको set up करना ही है। एक web game के साथ, आप एक link शेयर करते हैं और हर कोई अंदर आ जाता है। कोई downloads नहीं, कोई version mismatch नहीं, कोई &quot;रुको मुझे update करना है&quot; नहीं। तकनीकी हिस्से, WebSocket multiplayer, physics sync, यहाँ तक कि WebRTC के ज़रिए बुनियादी voice chat, सब browser में संभव हैं। हमारे पास एक <a href="/hi/tutorials/websocket-multiplayer-basics.html">WebSocket multiplayer tutorial</a> है जो networking वाले पक्ष को cover करता है।</p>
<hr>
<p><strong>संबंधित:</strong></p>
<ul>
<li><a href="/hi/tutorials/websocket-multiplayer-basics.html">WebSocket Multiplayer Basics</a></li>
<li><a href="/hi/guides/steam-next-fest-strategy.html">Steam Next Fest Strategy</a></li>
<li><a href="/hi/guides/kickstarter-for-indie-games.html">Kickstarter for Indie Games</a></li>
<li><a href="/hi/tutorials/gamepad-api.html">Gamepad API</a> — कई controllers के साथ local co-op</li>
<li><a href="/hi/guides/game-jams-hackathons.html">Game Jams &amp; Hackathons</a> — co-op jam games को ज़्यादा ratings और shares मिलते हैं</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">How to Launch Your Game on itch.io</a> — browser co-op games itch.io पर खूब फलते-फूलते हैं</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 में इंडी गेम्स के लिए Kickstarter]]></title>
            <link>https://app.cinevva.com/hi/guides/kickstarter-for-indie-games</link>
            <guid>https://app.cinevva.com/hi/guides/kickstarter-for-indie-games</guid>
            <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[डेटा असल में क्या कहता है, कौन सफल हो रहा है, कौन नाकाम हो रहा है, और क्या crowdfunding आपके गेम के लिए सही है।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-इंडी-गेम्स-के-लिए-kickstarter" tabindex="-1">2026 में इंडी गेम्स के लिए Kickstarter <a class="header-anchor" href="#_2026-में-इंडी-गेम्स-के-लिए-kickstarter" aria-label="Permalink to &quot;2026 में इंडी गेम्स के लिए Kickstarter&quot;"></a></h1>
<p>चलिए बात करते हैं कि अभी game crowdfunding के साथ असल में क्या हो रहा है, क्योंकि माहौल और डेटा मेल नहीं खाते।</p>
<p>सुनहरा दौर खत्म हो चुका है। 2013 में video games ने Kickstarter पर $51 मिलियन जुटाए। 2024 तक यह घटकर लगभग उतने ही campaigns में $25.2 मिलियन रह गया। पाई आधी हो गई, लेकिन उसके टुकड़ों के लिए लड़ने वालों की संख्या में बमुश्किल कोई बदलाव आया। यही वो गणित है जिसमें आप कदम रख रहे हैं।</p>
<p>फिर भी, developers Kickstarter की तरफ रुख करते रहते हैं। Publishers मना कर रहे हैं। Layoff की लहर से investors डर गए। अकेले 2024 में करीब 15,000 game industry की नौकरियां गायब हो गईं, और trackers बताते हैं कि असली संख्या शायद इससे ज्यादा है क्योंकि हर छंटनी की रिपोर्ट नहीं होती। बहुत सी टीमों के लिए, crowdfunding अब Plan A नहीं रहा। यह तब का बैकअप है जब बाकी सब कुछ नाकाम हो जाता है।</p>
<h2 id="_2025-की-दो-कहानियां" tabindex="-1">2025 की दो कहानियां <a class="header-anchor" href="#_2025-की-दो-कहानियां" aria-label="Permalink to &quot;2025 की दो कहानियां&quot;"></a></h2>
<h3 id="वो-जो-कामयाब-रही" tabindex="-1">वो जो कामयाब रही <a class="header-anchor" href="#वो-जो-कामयाब-रही" aria-label="Permalink to &quot;वो जो कामयाब रही&quot;"></a></h3>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/mrvpsBjg4nI" title="Elestrals Awakened Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p><strong>Elestrals Awakened</strong> ने 9,000 से ज्यादा backers से $1.3 मिलियन से अधिक जुटाए, जिससे यह 2025 में Kickstarter पर सबसे ज्यादा फंड पाने वाला video game बन गया। इसके पीछे की टीम? एक पूर्व Pokemon Championship caster जिसके लगभग दस लाख YouTube subscribers हैं, और जिनके खाते में पहले से दो सफल Kickstarters थे (एक trading card game और उसका डिजिटल संस्करण)। उनके पास audience थी। उनके पास track record था। पैसे मांगने से पहले उन्होंने सालों community बनाने में लगाए थे।</p>
<p><a href="https://www.kickstarter.com/projects/elestrals/elestrals-awakened" target="_blank" class="campaign-link">Elestrals Awakened Kickstarter देखें →</a></p>
<h3 id="वो-जो-नहीं-चली" tabindex="-1">वो जो नहीं चली <a class="header-anchor" href="#वो-जो-नहीं-चली" aria-label="Permalink to &quot;वो जो नहीं चली&quot;"></a></h3>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/dAzaaBUqki4" title="Alzara Radiant Echoes Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p><strong>Alzara: Radiant Echoes</strong> ने 2024 में 5,000 से ज्यादा backers से €300,000 जुटाए। उस साल की सबसे ज्यादा backing पाने वाली video game campaigns में से एक। स्टूडियो, Camelia, अप्रैल 2025 में बंद हो गया। कोई गेम नहीं। कोई refund नहीं। टीम के पास एक playable demo था, एक सीनियर टीम थी, उनकी आधी funding पक्की थी, और बाजार की दिलचस्पी के सबूत के तौर पर Kickstarter की सफलता थी। उन्होंने Tokyo Game Show, DICE, और जो भी industry event मिला, हर जगह पिच किया। किसी ने हामी नहीं भरी।</p>
<blockquote>
<p>&quot;यह industry की कठोर हकीकत का हिस्सा है। कभी-कभी, साबित बाजार दिलचस्पी और एक मजबूत टीम के साथ एक उम्मीद जगाने वाला game concept होना भी काफी नहीं होता।&quot;</p>
<p>— Studio Camelia, backers को आखिरी अपडेट</p>
</blockquote>
<p><a href="https://www.kickstarter.com/projects/studiocamelia/seed-a-vibrant-tribute-to-jrpg-classics" target="_blank" class="campaign-link">Alzara Kickstarter देखें (archived) →</a></p>
<p>दो campaigns। Kickstarter की परिभाषा के हिसाब से दोनों &quot;सफल&quot;। एक ने कुछ नहीं दिया। फर्क जुटाए गए पैसे का नहीं था। फर्क उस सब का था जो इससे पहले हुआ।</p>
<h2 id="जो-आंकड़े-मायने-रखते-हैं" tabindex="-1">जो आंकड़े मायने रखते हैं <a class="header-anchor" href="#जो-आंकड़े-मायने-रखते-हैं" aria-label="Permalink to &quot;जो आंकड़े मायने रखते हैं&quot;"></a></h2>
<p>2009 से 17,000 Kickstarter campaigns का डेटा एक साफ कहानी बयां करता है:</p>
<p><strong>Goal का आकार सफलता की भविष्यवाणी करता है।</strong> $2.5 मिलियन या उससे ज्यादा का लक्ष्य रखने वाले 15 campaigns में से एक भी सफल नहीं हुआ। लेकिन $500K से कम goal वाले games अक्सर उम्मीद से बेहतर रहे। Shenmue 3 ने $2M मांगे और $6.3M मिले। Bloodstained ने $500K मांगे और $5.5M मिले। एक ऐसा goal रखें जिसके पीछे लोग एकजुट हो सकें, फिर उससे कहीं आगे निकल जाएं।</p>
<p><strong>Timing मायने रखती है।</strong> दिसंबर launch करने का सबसे खराब महीना है (28% सफलता दर)। फरवरी सबसे अच्छा है (35%)। कुल औसत 32% है। हां, दो-तिहाई campaigns नाकाम होते हैं।</p>
<p><strong>ज्यादातर पैसा मामूली campaigns से आता है।</strong> जुटाए गए कुल फंड का 81.8% $500K या उससे कम goal वाले campaigns से आया। 68.1% $250K से कम वाले campaigns से। मेगा-campaigns सुर्खियां बटोरते हैं, लेकिन असल में मध्यम आकार वाले ही फंड पाते हैं।</p>
<p>2025 के आंकड़े अब आ गए हैं, और वे इस लंबी गिरावट से कहीं ज्यादा बारीक कहानी कहते हैं। Video games ने 2025 में 443 सफल campaigns खींचे, जिन्होंने 2024 के लगभग $26 मिलियन से थोड़ा कम जुटाया। दिलचस्प बदलाव ऊपरी हिस्से में था: 11 campaigns ने $500,000 का आंकड़ा पार किया, जो 2015 के बाद उस श्रेणी में सबसे ज्यादा है और 2024 की गिनती से दोगुने से भी अधिक। पूल नहीं बढ़ रहा, लेकिन बड़े, अच्छी तरह तैयार किए गए campaigns वापस आ रहे हैं।</p>
<h2 id="_50-000-असल-में-आपको-क्या-दिलाते-हैं" tabindex="-1">$50,000 असल में आपको क्या दिलाते हैं <a class="header-anchor" href="#_50-000-असल-में-आपको-क्या-दिलाते-हैं" aria-label="Permalink to &quot;$50,000 असल में आपको क्या दिलाते हैं&quot;"></a></h2>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/BoqbkWJqlVY" title="Space Chef Kickstarter Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p>यहां <strong>Space Chef</strong> टीम का एक postmortem है, जिन्होंने 1,119 backers से $50,000 जुटाए:</p>
<blockquote>
<p>&quot;$50,000 पाने के लिए, हमें marketing, ads, और creators पर $20,000 से ज्यादा खर्च करने पड़े। Trailer बनाने में 3 महीने लगे। Kickstarter मुफ्त पैसा नहीं है। यह सैकड़ों लोगों के प्रति सालों की प्रतिबद्धता है।&quot;</p>
</blockquote>
<p>उनका गणित:</p>
<table tabindex="0">
<thead>
<tr>
<th>आइटम</th>
<th>राशि</th>
</tr>
</thead>
<tbody>
<tr>
<td>जुटाया गया</td>
<td>$50,000</td>
</tr>
<tr>
<td>Marketing</td>
<td>-$20,000</td>
</tr>
<tr>
<td>Fees और taxes</td>
<td>-$4,000</td>
</tr>
<tr>
<td><strong>development के लिए बचा</strong></td>
<td><strong>$26,000</strong></td>
</tr>
</tbody>
</table>
<p>$20/घंटे की दर से, यह 1,300 घंटे हैं। लगभग 32 हफ्ते। उनका गेम खत्म करने के लिए कहीं से भी काफी नहीं।</p>
<p>आखिरकार इसे पूरा करने के लिए उन्हें publisher investment मिला। Kickstarter ने गेम को फंड नहीं किया। इसने साबित किया कि गेम फंड किए जाने लायक था।</p>
<p><a href="https://www.kickstarter.com/projects/bluegoogames/space-chef" target="_blank" class="campaign-link">Space Chef Kickstarter देखें →</a></p>
<h2 id="यह-कब-समझदारी-है" tabindex="-1">यह कब समझदारी है <a class="header-anchor" href="#यह-कब-समझदारी-है" aria-label="Permalink to &quot;यह कब समझदारी है&quot;"></a></h2>
<p>Kickstarter तब काम करता है जब आप इसे validation के लिए इस्तेमाल कर रहे हों, उद्धार के लिए नहीं।</p>
<p><strong>Campaign चलाने की अच्छी वजहें:</strong></p>
<ul>
<li>आपके पास एक audience है जो पहले से आपके गेम की मांग कर रही है</li>
<li>Publisher को आकर्षित करने के लिए आपको बाजार की मांग का सबूत चाहिए</li>
<li>आप एक ऐसी community बनाना चाहते हैं जो शाब्दिक रूप से आपकी सफलता में निवेशित हो</li>
<li>आपके पास एक track record है (पिछले games, सफल projects, दिखने वाली विशेषज्ञता)</li>
</ul>
<p><strong>बुरी वजहें:</strong></p>
<ul>
<li>Development शुरू करने के लिए आपको पैसों की जरूरत है</li>
<li>आपके पास कोई मौजूदा audience नहीं है</li>
<li>आप उम्मीद कर रहे हैं कि campaign खुद ही जागरूकता बना देगी</li>
<li>आप नाकाम होने का जोखिम नहीं उठा सकते</li>
</ul>
<h2 id="कड़वी-सच्चाइयां" tabindex="-1">कड़वी सच्चाइयां <a class="header-anchor" href="#कड़वी-सच्चाइयां" aria-label="Permalink to &quot;कड़वी सच्चाइयां&quot;"></a></h2>
<p><strong>आप शायद अकेले Kickstarter के पैसों से अपना गेम पूरा नहीं कर सकते।</strong> ज्यादातर सफल campaigns असली development लागत का 25-50% ही कवर करते हैं। बाकी publishers, grants, बचत, या रोज़ की नौकरियों से आता है।</p>
<p><strong>अगर आप नाकाम होते हैं तो आपके backers को refund नहीं मिल सकता।</strong> वे यह जानते हैं। वे पहली बार के creators को लेकर बढ़ते हुए शक में हैं। जिन स्टूडियो ने गेम शिप किए हैं या जिनका साबित track record है, उन्हें ज्यादा भरोसा मिलता है।</p>
<p><strong>Campaign चलाना एक full-time नौकरी है।</strong> हर कुछ दिनों में updates। Backer messages। Press outreach। Stretch goal की योजना। Social media। 30+ दिनों तक, आप अपना गेम नहीं बना रहे होते। आप उसकी marketing कर रहे होते हैं।</p>
<p><strong>सफलता दर 32% है।</strong> इसका मतलब है कि 68% campaigns नाकाम होते हैं। अगर आप बिना तैयारी के launch करते हैं, तो आप लगभग तय रूप से उन 68% में हैं।</p>
<h2 id="अगर-आप-अब-भी-तैयार-हैं" tabindex="-1">अगर आप अब भी तैयार हैं <a class="header-anchor" href="#अगर-आप-अब-भी-तैयार-हैं" aria-label="Permalink to &quot;अगर आप अब भी तैयार हैं&quot;"></a></h2>
<p>Launch करने से पहले यह करें:</p>
<ol>
<li>
<p><strong>पहले अपनी audience बनाएं।</strong> 1,000-2,000 ऐसे लोग जो वाकई आपका गेम चाहते हैं। Discord, email list, social following। जो भी काम करे।</p>
</li>
<li>
<p><strong>कुछ playable रखें।</strong> एक demo, एक vertical slice, कुछ भी। Players कई बार धोखा खा चुके हैं। दिखाना वादा करने से बेहतर है।</p>
</li>
<li>
<p><strong>एक ऐसा goal रखें जिसे आप वाकई हासिल कर सकें।</strong> उतना मांगें जितना खत्म करने के लिए चाहिए, उतना नहीं जितना आप रखना चाहेंगे। तेजी से फंड करें, फिर आगे बढ़ें।</p>
</li>
<li>
<p><strong>बाद के काम की योजना बनाएं।</strong> Updates। Fulfillment। लोगों के देखते-देखते सालों का development। यह एक लेन-देन नहीं है। यह एक रिश्ता है।</p>
</li>
</ol>
<p>जो टीमें सफल होती हैं वे Kickstarter को एक बातचीत की शुरुआत मानती हैं, फंड जुटाने की समस्या का अंत नहीं। बाकी सब इसे एक लॉटरी टिकट की तरह मानते हैं।</p>
<p>लॉटरी टिकट मत बनिए।</p>
<hr>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="क्या-इंडी-games-के-लिए-kickstarter-अब-भी-फायदेमंद-है" tabindex="-1">क्या इंडी games के लिए Kickstarter अब भी फायदेमंद है? <a class="header-anchor" href="#क्या-इंडी-games-के-लिए-kickstarter-अब-भी-फायदेमंद-है" aria-label="Permalink to &quot;क्या इंडी games के लिए Kickstarter अब भी फायदेमंद है?&quot;"></a></h3>
<p>यह इस पर निर्भर करता है कि आप क्या लेकर आ रहे हैं। अगर आपके पास audience, एक playable demo, और हकीकत पर टिकी उम्मीदें हैं, तो यह काम कर सकता है। Video game campaigns की सफलता दर करीब 32% है, जो कोई अच्छी संभावना नहीं है। लेकिन मौजूदा communities और पिछले track records वाली टीमें उस औसत से कहीं बेहतर करती हैं। असली सवाल यह है कि क्या आपने ज़मीनी काम किया है। अगर आप बिना किसी following के ठंडे रूप से launch कर रहे हैं, तो आपकी संभावनाएं कमजोर हैं।</p>
<h3 id="इंडी-games-kickstarter-पर-कितना-पैसा-जुटाते-हैं" tabindex="-1">इंडी games Kickstarter पर कितना पैसा जुटाते हैं? <a class="header-anchor" href="#इंडी-games-kickstarter-पर-कितना-पैसा-जुटाते-हैं" aria-label="Permalink to &quot;इंडी games Kickstarter पर कितना पैसा जुटाते हैं?&quot;"></a></h3>
<p>Kickstarter पर video games के लिए कुल पूल सिकुड़ रहा है। यह 2013 में करीब $51 मिलियन पर चरम पर था और 2024 में घटकर लगभग $25.2 मिलियन रह गया। ज्यादातर सफल campaigns $10,000 और $50,000 के बीच जुटाते हैं। लोग जो भूल जाते हैं वह यह कि इसका कितना हिस्सा गायब हो जाता है। Kickstarter करीब 5% लेता है, payment processing और 3-5% लेता है, फिर reward fulfillment, shipping, और taxes हैं। $50,000 जुटाने वाली एक campaign आपको असल में काम करने लायक $26,000 छोड़ सकती है।</p>
<h3 id="कितने-प्रतिशत-game-kickstarters-नाकाम-होते-हैं" tabindex="-1">कितने प्रतिशत game Kickstarters नाकाम होते हैं? <a class="header-anchor" href="#कितने-प्रतिशत-game-kickstarters-नाकाम-होते-हैं" aria-label="Permalink to &quot;कितने प्रतिशत game Kickstarters नाकाम होते हैं?&quot;"></a></h3>
<p>Kickstarter पर करीब 68% video game campaigns अपने funding goal तक नहीं पहुंचते। यह संख्या सालों से काफी स्थिर रही है। जो campaigns नाकाम होते हैं उनमें आमतौर पर कुछ साझा बातें होती हैं: कोई मौजूदा audience नहीं, कोई playable demo नहीं, गैर-हकीकती funding goals, या किसी भीड़भाड़ वाले दौर में बिना अलग दिखने के किसी तरीके के launch करना।</p>
<hr>
<p><strong>संबंधित:</strong></p>
<ul>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना गेम कैसे Launch करें</a></li>
<li><a href="/hi/guides/game-jams-hackathons.html">Game Jams और Hackathons गाइड</a></li>
<li><a href="/hi/guides/steam-next-fest-strategy.html">Steam Next Fest रणनीति</a> — crowdfunding से पहले और साथ-साथ wishlists बनाना</li>
<li><a href="/hi/guides/co-op-game-design.html">Co-op Game Design</a> — co-op games ऐसी organic social sharing पैदा करते हैं जो campaigns में मदद करती है</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 में Steam Next Fest की रणनीति]]></title>
            <link>https://app.cinevva.com/hi/guides/steam-next-fest-strategy</link>
            <guid>https://app.cinevva.com/hi/guides/steam-next-fest-strategy</guid>
            <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Steam Next Fest के wishlists, demos और timing के बारे में डेटा क्या कहता है, 200+ games के असली आंकड़ों के साथ और असल में visibility किस चीज़ से बनती है।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-steam-next-fest-की-रणनीति" tabindex="-1">2026 में Steam Next Fest की रणनीति <a class="header-anchor" href="#_2026-में-steam-next-fest-की-रणनीति" aria-label="Permalink to &quot;2026 में Steam Next Fest की रणनीति&quot;"></a></h1>
<p><em>आखिरी अपडेट: जून 2026.</em></p>
<p>Next Fest के बारे में बात यह है: हर कोई इसे लॉटरी की तरह मानता है। अपना demo डाल दो, उंगलियाँ क्रॉस करो, और उम्मीद करो कि algorithm तुम पर मेहरबान हो जाए। ऐसे काम नहीं करता।</p>
<p>मैं postmortems को जुनून की हद तक पढ़ता रहा हूँ। अकेले 2025 के ही सैकड़ों। पैटर्न इतना एक जैसा है कि लगभग उबाऊ हो जाता है: जो games Next Fest &quot;जीतती&quot; हैं, वे festival के दौरान सफलता खोज नहीं रही होतीं। वे पहले से बनाई हुई गति को और बढ़ा रही होती हैं।</p>
<p>मैं आपको दिखाता हूँ कि मेरा मतलब क्या है।</p>
<h2 id="वह-फॉर्मूला-जो-कोई-सुनना-नहीं-चाहता" tabindex="-1">वह फॉर्मूला जो कोई सुनना नहीं चाहता <a class="header-anchor" href="#वह-फॉर्मूला-जो-कोई-सुनना-नहीं-चाहता" aria-label="Permalink to &quot;वह फॉर्मूला जो कोई सुनना नहीं चाहता&quot;"></a></h2>
<div class="stat-box">
<strong>पहले के Wishlists × 2 = कमाए गए Wishlists</strong><br>
यह अनुपात एक के बाद एक postmortem में दिखता है।
</div>
<p>Eilean Mor अक्टूबर 2025 में 2,117 wishlists के साथ गया। festival के दौरान 2,082 कमाए। लगभग ठीक 2×।</p>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/jFv7SjsQEws" title="Eilean Mor: The Lost Keepers Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p>Dice of Kalma 335 wishlists के साथ गया। 659 कमाए। 2× से थोड़ा कम। इसके डेवलपर ने लिखा: &quot;हमारे wishlists लगभग तीन गुना हो गए, जो शानदार है, लेकिन अभी भी हमारे पास बहुत काम बाकी है।&quot;</p>
<p>यही असहज सच है। Next Fest उसे दोगुना करता है जो आपके पास पहले से है। अगर आपके पास कुछ नहीं है, तो आपको शून्य का दोगुना मिलता है।</p>
<p><a href="https://store.steampowered.com/app/3871570/Eilean_Mor_The_Lost_Keepers/" target="_blank" class="campaign-link">View Eilean Mor on Steam →</a></p>
<h2 id="_2-000-wishlist-की-दीवार" tabindex="-1">2,000 Wishlist की दीवार <a class="header-anchor" href="#_2-000-wishlist-की-दीवार" aria-label="Permalink to &quot;2,000 Wishlist की दीवार&quot;"></a></h2>
<p>फरवरी 2025 की 208 games के डेटा में 2,000 wishlists पर एक तीखा मोड़ दिखता है।</p>
<table tabindex="0">
<thead>
<tr>
<th>शुरुआती Wishlists</th>
<th>क्या होता है</th>
</tr>
</thead>
<tbody>
<tr>
<td>1,000 से कम</td>
<td>दिन 2 के बाद आप अदृश्य हैं। एक भी game ने tier नहीं बदला।</td>
</tr>
<tr>
<td>1,000–2,000</td>
<td>मामूली बढ़त। आप अपनी ही लेन में रहते हैं।</td>
</tr>
<tr>
<td>2,000+</td>
<td>algorithm आपकी मदद करना शुरू करता है। असली गति संभव है।</td>
</tr>
<tr>
<td>10,000+</td>
<td>Gold tier। मज़बूत बढ़त की संभावना।</td>
</tr>
<tr>
<td>100,000+</td>
<td>Diamond tier। आप टॉप charts के लिए मुकाबला कर रहे हैं।</td>
</tr>
</tbody>
</table>
<p>उस सर्वे के एक डेवलपर ने यह कहा: &quot;आप वाकई देखने लगते हैं कि जिन games के पास Steam Next Fest से पहले 2000+ wishlists होते हैं, उनके लिए कमाए गए wishlists कैसे तेज़ी से चढ़ते हैं।&quot;</p>
<p>यह बिल्कुल algorithm वाली बात नहीं है। यह validation वाली बात है। 2,000 wishlists का मतलब है कि आपने marketing के बारे में कुछ समझ लिया है। आपको पता है कि लोगों तक कैसे पहुँचना है। यह कौशल festival के दौरान कई गुना बढ़ जाता है।</p>
<h2 id="फरवरी-2026-ने-क्या-पुष्टि-की" tabindex="-1">फरवरी 2026 ने क्या पुष्टि की <a class="header-anchor" href="#फरवरी-2026-ने-क्या-पुष्टि-की" aria-label="Permalink to &quot;फरवरी 2026 ने क्या पुष्टि की&quot;"></a></h2>
<p>फरवरी 2026 का Next Fest (23 फरवरी से 2 मार्च) अब तक का सबसे भीड़भाड़ वाला रहा, 3,500 से ज़्यादा demos के साथ। यह फरवरी 2025 के मुकाबले 51% की उछाल है। और जितना बड़ा मैदान होता जाता है, डेटा उतनी ही ज़ोर से वही बात चिल्लाता है।</p>
<p>How To Market A Game ने बाद में 182 डेवलपर्स का सर्वे किया। पूरे डेटासेट में सबसे मज़बूत correlation किसी game के fest-पूर्व wishlist count और event के दौरान कमाए गए wishlists के बीच था: Spearman r 0.825 का। तुलना के लिए, indie डेटा में ज़्यादातर marketing correlations 0.2 और 0.4 के बीच रहती हैं। और कुछ भी इसके आसपास नहीं पहुँचा।</p>
<p>फासला बहुत बेरहम था। median demo ने 806 wishlists कमाए। 70वें percentile ने 1,839 छुए। 95वें percentile में पहुँचने के लिए आपको 13,461 चाहिए थे, और सबसे ज़्यादा कमाने वाले ने 57,074 खींचे। बिना follower base के ठंडे लॉन्च हुए demo के पास उस टॉप 5% तक पहुँचने का लगभग 1 में से 20 का मौका था। festival उस गति को इनाम देता है जो आप अपने साथ लाते हैं। वह उसे बनाता नहीं है।</p>
<p>timing के डेटा ने जल्दी-demo वाले नियम का भी समर्थन किया। जिन games ने 15,000+ wishlists कमाए, उनमें से पाँच के demos महीनों पहले बाहर थे, चार ने करीब एक महीने पहले लॉन्च किया, और सिर्फ़ एक ने fest से कुछ दिन पहले अचानक रिलीज़ किया।</p>
<h2 id="पहले-48-घंटे-ही-सब-कुछ-हैं" tabindex="-1">पहले 48 घंटे ही सब कुछ हैं <a class="header-anchor" href="#पहले-48-घंटे-ही-सब-कुछ-हैं" aria-label="Permalink to &quot;पहले 48 घंटे ही सब कुछ हैं&quot;"></a></h2>
<p>Valve दिन 1 और 2 पर सबको एक मौका देता है। उसके बाद, algorithm performance के आधार पर तय करता है कि किसे ज़्यादा visibility का हक है।</p>
<p>Bronze tier games? दिन 3 पर उनकी impressions धड़ाम से गिर जाती हैं। Diamond tier games? उनकी impressions तीन गुना हो जाती हैं।</p>
<div class="stat-box">
<strong>दिन 1-2:</strong> सब कुछ झोंक दो। Stream करो। Post करो। creators के साथ तालमेल बनाओ।<br>
<strong>दिन 3+:</strong> algorithm पहले ही तय कर चुका है। अब आप बस सवारी कर रहे हैं।
</div>
<h2 id="_2025-में-असल-में-क्या-जीता" tabindex="-1">2025 में असल में क्या जीता <a class="header-anchor" href="#_2025-में-असल-में-क्या-जीता" aria-label="Permalink to &quot;2025 में असल में क्या जीता&quot;"></a></h2>
<h3 id="do-no-harm-फरवरी-2025" tabindex="-1">Do No Harm (फरवरी 2025) <a class="header-anchor" href="#do-no-harm-फरवरी-2025" aria-label="Permalink to &quot;Do No Harm (फरवरी 2025)&quot;"></a></h3>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/GBlOHAL1LkY" title="Do No Harm Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p><strong>आंकड़े:</strong> Next Fest के दौरान 45,655 wishlists कमाए। 52,102 के साथ शुरुआत की।</p>
<p><strong>उन्होंने क्या किया:</strong></p>
<ul>
<li>Trailer 29 जनवरी को GameTrailers पर आया (Next Fest से हफ़्तों पहले)</li>
<li>PR आउटरीच को trailer के साथ टाइम किया गया</li>
<li>Demo 4 फरवरी को लाइव हुआ</li>
<li>organic गति को बढ़ाने के लिए paid ads</li>
</ul>
<p>यही असली playbook है। उन्होंने Next Fest के भरोसे नहीं रहा कि वह उन्हें खोजे। उन्होंने Next Fest का इस्तेमाल पहले से कमाए ध्यान को कई गुना करने के लिए किया।</p>
<p><a href="https://store.steampowered.com/app/3138780/Do_No_Harm/" target="_blank" class="campaign-link">View Do No Harm on Steam →</a></p>
<h3 id="cairn-अक्टूबर-2025" tabindex="-1">Cairn (अक्टूबर 2025) <a class="header-anchor" href="#cairn-अक्टूबर-2025" aria-label="Permalink to &quot;Cairn (अक्टूबर 2025)&quot;"></a></h3>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/x6KWhvvk3bM" title="Cairn Launch Date Trailer" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p>दिन 1 पर #5 demo बना। दिन 2 तक Trending Upcoming और Top Demos में।</p>
<p><strong>उन्होंने क्या किया:</strong></p>
<ul>
<li>Demo दिसंबर 2024 में लॉन्च हुआ (उनके Next Fest से 10 महीने पहले)</li>
<li>festival से पहले 32,000 followers</li>
<li>Next Fest से पहले 18 festivals में स्वीकार किए गए</li>
<li>The Game Bakers (Furi, Haven) - रिकॉर्ड वाला जमा-जमाया studio</li>
</ul>
<p>उन्हें Next Fest की ज़रूरत नहीं थी। पर उन्होंने इसे फिर भी इस्तेमाल किया क्योंकि जब आप काम कर चुके होते हैं तो यह मुफ़्त amplification है।</p>
<p><a href="https://store.steampowered.com/app/1588550/Cairn/" target="_blank" class="campaign-link">View Cairn on Steam →</a></p>
<h3 id="yapyap-अक्टूबर-2025" tabindex="-1">YAPYAP (अक्टूबर 2025) <a class="header-anchor" href="#yapyap-अक्टूबर-2025" aria-label="Permalink to &quot;YAPYAP (अक्टूबर 2025)&quot;"></a></h3>
<div class="video-embed">
<iframe width="560" height="315" src="https://www.youtube.com/embed/7d8Fd9XXAtQ" title="YAPYAP Demo Gameplay" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<p>&quot;friend slop&quot; वाला फेनोमेना। Co-op horror जहाँ आप एक टावर में तोड़फोड़ करते wizards के रूप में खेलते हैं। social media पर वायरल हुआ, फिर Next Fest पर छा गया।</p>
<p>उनका trailer 25 अगस्त, 2025 को आया - Next Fest से एक महीने पहले। इसने 434K views कमाए। वही असली मोड़ था। उसके बाद का सब कुछ बस लहर पर सवारी थी।</p>
<p><a href="https://store.steampowered.com/app/3834090/YAPYAP/" target="_blank" class="campaign-link">View YAPYAP on Steam →</a></p>
<h2 id="वे-genres-जो-जीतते-रहते-हैं" tabindex="-1">वे genres जो जीतते रहते हैं <a class="header-anchor" href="#वे-genres-जो-जीतते-रहते-हैं" aria-label="Permalink to &quot;वे genres जो जीतते रहते हैं&quot;"></a></h2>
<p>फरवरी 2025 के diamond tier से:</p>
<ul>
<li><strong>Horror</strong> (×2) - Steam को horror पसंद है। हमेशा से रहा है।</li>
<li><strong>Strategy/Management</strong> (×4) - &quot;Crafty-buildy-simulationy&quot; वाली वाइब</li>
<li><strong>Co-op &quot;friend slop&quot;</strong> - Lethal Company ने दरवाज़े खोल दिए</li>
<li><strong>Point-and-click</strong> (×2) - पर दोनों ही पहले से मौजूद audiences वाले sequels थे</li>
</ul>
<p>point-and-click वाली बात दिलचस्प है। Beholder: Conductor अपनी सीरीज़ की चौथी game थी। Duck Detective एक sequel था। उनके पास बनी-बनाई audiences थीं। पहली बार point-and-click बनाने वाले devs को वैसे नतीजे नहीं दिखते।</p>
<h2 id="छोटी-games-क्या-कहती-हैं" tabindex="-1">छोटी games क्या कहती हैं <a class="header-anchor" href="#छोटी-games-क्या-कहती-हैं" aria-label="Permalink to &quot;छोटी games क्या कहती हैं&quot;"></a></h2>
<p>हर कोई diamond tier के पीछे नहीं भाग रहा। छोटे सिरे के डेवलपर्स ने अक्टूबर 2025 से यह बताया:</p>
<blockquote>
<p>&quot;visits से wishlists में 62% conversion rate। store page खुद काम करता दिखता है। पर impressions ज़्यादा थीं और लोगों ने click नहीं किया। Capsule art को अपडेट की ज़रूरत है।&quot;</p>
</blockquote>
<blockquote>
<p>&quot;57% store visitors ने हमारा demo खेला। ज़्यादा लगता है? पर खेलने वालों में से सिर्फ़ 15% ने wishlist भी किया। कोई चीज़ उम्मीदों पर खरी नहीं उतरी।&quot;</p>
</blockquote>
<blockquote>
<p>&quot;अपनी game के cozy लगने के बारे में पूछने पर r/cozygames से हमेशा के लिए ban कर दिया गया। हमेशा नियम मानने की कोशिश करता हूँ पर यह काफ़ी चौंकाने वाला था।&quot;</p>
</blockquote>
<p>मेहनत असली है। ये डेवलपर्स capsule art टेस्ट कर रहे हैं, tags ट्वीक कर रहे हैं, subreddits से ban हो रहे हैं। यह ग्लैमरस नहीं है।</p>
<h2 id="ईमानदार-playbook" tabindex="-1">ईमानदार playbook <a class="header-anchor" href="#ईमानदार-playbook" aria-label="Permalink to &quot;ईमानदार playbook&quot;"></a></h2>
<p><strong>Next Fest से महीनों पहले:</strong></p>
<ol>
<li>अपना demo जल्दी लॉन्च करो। मतलब, बहुत जल्दी। जीतने वालों के demos 6-12 महीने तक बाहर थे।</li>
<li>पहले छोटे genre festivals में जाओ। उन्हें polish के दौर की तरह इस्तेमाल करो।</li>
<li>2,000+ wishlists तक पहुँचो। यही आपकी असली सीमा है।</li>
</ol>
<p><strong>Next Fest के दौरान:</strong></p>
<ol>
<li>दिन 1-2 ही बनाते या बिगाड़ते हैं। सब कुछ झोंक दो।</li>
<li>हो सके तो stream करो। यह आपके page पर &quot;live&quot; दिखता है।</li>
<li>streamers के साथ तालमेल बनाओ। ज़रूरत पड़े तो उन्हें pay करो।</li>
<li>अपना demo एक अलग Steam page पर रखो ताकि वह reviews जुटा सके।</li>
</ol>
<p><strong>Next Fest के बाद:</strong></p>
<ol>
<li>तुरंत लॉन्च मत करो। कुछ हफ़्ते बाद असल में बेहतर परफॉर्म करता है।</li>
<li>इस गति को अपने असली launch marketing के लिए इस्तेमाल करो।</li>
</ol>
<h2 id="कब-इसे-छोड़-देना-चाहिए" tabindex="-1">कब इसे छोड़ देना चाहिए <a class="header-anchor" href="#कब-इसे-छोड़-देना-चाहिए" aria-label="Permalink to &quot;कब इसे छोड़ देना चाहिए&quot;"></a></h2>
<p>सीधी बात: Next Fest सबके लिए नहीं है।</p>
<p>इसे छोड़ दो अगर:</p>
<ul>
<li>आपके पास 1,000 से कम wishlists हैं (दिन 3 तक आप अदृश्य रहेंगे)</li>
<li>आपका demo पॉलिश नहीं है (पहली छाप का आपको एक ही मौका मिलता है)</li>
<li>यह आपके जीवन का पहला festival है (पहले छोटे वाले करो)</li>
<li>आप ठीक बाद में लॉन्च कर रहे हैं (कुछ हफ़्ते रुको)</li>
</ul>
<p>हर महीने दर्जनों छोटे festivals होते हैं। ज़्यादा केंद्रित audiences। कम मुकाबला। सूची के लिए <a href="https://howtomarketagame.com/festivals" target="_blank" rel="noreferrer">howtomarketagame.com/festivals</a> देखें।</p>
<p>Next Fest इसलिए default है क्योंकि Valve सबको जुड़ने के लिए कहता है। पर सबसे अच्छी marketing वह नहीं होती जिसे करने के लिए सबको कहा जाता है।</p>
<hr>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="steam-next-fest-के-लिए-कितने-wishlists-चाहिए" tabindex="-1">Steam Next Fest के लिए कितने wishlists चाहिए? <a class="header-anchor" href="#steam-next-fest-के-लिए-कितने-wishlists-चाहिए" aria-label="Permalink to &quot;Steam Next Fest के लिए कितने wishlists चाहिए?&quot;"></a></h3>
<p>डेटा करीब 2,000 wishlists की ओर इशारा करता है, जहाँ से Next Fest आपके लिए काम करना शुरू करता है। इससे नीचे, तीसरे दिन तक आप मूल रूप से अदृश्य हैं। algorithm उन games को तरजीह देता है जिन्हें पहले से ट्रैक्शन मिल रहा है, इसलिए जाते वक़्त आपके पास गति होनी चाहिए। फरवरी 2025 के festival से मोटा पैटर्न यह है: Next Fest से पहले आपके wishlist की जो भी संख्या थी, event के दौरान आप उसे मोटे तौर पर दोगुना कर सकते हैं। तो अगर आप 500 के साथ जाते हैं, तो शायद 1,000 के साथ निकलें। 5,000 के साथ जाओ, तो 10,000 तक पहुँच सकते हो। शुरुआती संख्या ज़्यादातर लोगों के सोचने से कहीं ज़्यादा मायने रखती है।</p>
<h3 id="steam-next-fest-के-लिए-demo-कब-रिलीज़-करना-चाहिए" tabindex="-1">Steam Next Fest के लिए demo कब रिलीज़ करना चाहिए? <a class="header-anchor" href="#steam-next-fest-के-लिए-demo-कब-रिलीज़-करना-चाहिए" aria-label="Permalink to &quot;Steam Next Fest के लिए demo कब रिलीज़ करना चाहिए?&quot;"></a></h3>
<p>आपकी सोच से जल्दी। हाल के festivals में सबसे अच्छा परफॉर्म करने वाली games के demos Next Fest शुरू होने से 6 से 12 महीने पहले बाहर थे। इससे आपको feedback जुटाने, साफ़ दिखने वाली दिक्कतें ठीक करने, और festival द्वारा आपकी मौजूदा चीज़ को कई गुना करने से पहले organic तरीके से wishlists बनाने का समय मिलता है। Next Fest के हफ़्ते में अपना demo छोड़ना एक आम गलती है। आप सैकड़ों दूसरे नए demos से मुकाबला कर रहे होते हैं और आपके पास कोई reviews नहीं, कोई feedback loop नहीं, काम करने के लिए कुछ भी नहीं।</p>
<h3 id="क्या-छोटी-indie-games-के-लिए-steam-next-fest-फ़ायदेमंद-है" tabindex="-1">क्या छोटी indie games के लिए Steam Next Fest फ़ायदेमंद है? <a class="header-anchor" href="#क्या-छोटी-indie-games-के-लिए-steam-next-fest-फ़ायदेमंद-है" aria-label="Permalink to &quot;क्या छोटी indie games के लिए Steam Next Fest फ़ायदेमंद है?&quot;"></a></h3>
<p>हो सकता है, पर तभी जब आप तैयार हों। 1,000 से कम wishlists और एक बिना पॉलिश demo के साथ जाने वाली छोटी games आमतौर पर जल्दी दब जाती हैं। festival एक हफ़्ते चलता है और सैकड़ों games ध्यान के लिए मुकाबला कर रही होती हैं। अगर आप development में शुरुआती दौर में हैं, तो छोटे genre-केंद्रित festivals पहला बेहतर कदम हैं। उनके पास ज़्यादा केंद्रित audiences और कम मुकाबला होता है। Next Fest को तब के लिए बचाकर रखें जब आपका demo कसा हुआ हो और आपके पीछे कुछ गति हो।</p>
<hr>
<p><strong>संबंधित:</strong></p>
<ul>
<li><a href="/hi/guides/kickstarter-for-indie-games.html">Kickstarter for Indie Games</a></li>
<li><a href="/hi/guides/itch-io-launch-guide.html">How to Launch Your Game on itch.io</a></li>
<li><a href="/hi/guides/co-op-game-design.html">Co-op Game Design</a> — co-op games Next Fest पर लगातार बेहतर परफॉर्म करती हैं</li>
<li><a href="/hi/tutorials/analytics-web-games.html">Analytics for web games</a> — demo performance और conversion metrics को ट्रैक करना</li>
<li><a href="/hi/guides/game-jams-hackathons.html">Game Jams &amp; Hackathons</a> — अपने पहले festival से पहले audience बनाना</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Games के लिए सबसे बेहतरीन ओपन-सोर्स जनरेटिव AI मॉडल (2026)]]></title>
            <link>https://app.cinevva.com/hi/guides/frontier-gen-ai-models</link>
            <guid>https://app.cinevva.com/hi/guides/frontier-gen-ai-models</guid>
            <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में video, image, 3D, audio, speech और world simulation के लिए सबसे बेहतरीन ओपन-सोर्स जनरेटिव AI मॉडल, साथ में हर एक किस काम में अच्छा है और उसे चलाने में कितना खर्च आता है।]]></description>
            <content:encoded><![CDATA[<h1 id="games-के-लिए-सबसे-बेहतरीन-ओपन-सोर्स-जनरेटिव-ai-मॉडल-2026" tabindex="-1">Games के लिए सबसे बेहतरीन ओपन-सोर्स जनरेटिव AI मॉडल (2026) <a class="header-anchor" href="#games-के-लिए-सबसे-बेहतरीन-ओपन-सोर्स-जनरेटिव-ai-मॉडल-2026" aria-label="Permalink to &quot;Games के लिए सबसे बेहतरीन ओपन-सोर्स जनरेटिव AI मॉडल (2026)&quot;"></a></h1>
<p><em>आख़िरी अपडेट: जुलाई 2026।</em></p>
<p>जनरेटिव AI के बारे में बात यह है कि सालों तक सबसे बेहतरीन मॉडल API keys और अनिश्चित pricing के पीछे रहते थे। आप किसी tool के इर्द-गिर्द अपना workflow बनाते, उसमें सहज हो जाते, और फिर एक सुबह ईमेल खोलकर पता चलता कि pricing बदल गई। या इससे भी बुरा, कंपनी पूरी तरह दूसरी दिशा में मुड़ गई।</p>
<p>यह 2024 के आख़िर में बदला। Tencent, Alibaba, DeepSeek, इन्होंने ऐसे मॉडल रिलीज़ करने शुरू किए जिन्हें आप सच में डाउनलोड कर सकते हैं। ऐसे मॉडल जो बंद विकल्पों की टक्कर के हैं। और अचानक creators के पास ऐसे विकल्प आ गए जो किसी और के बिज़नेस मॉडल पर निर्भर नहीं हैं।</p>
<p>अगर आप video, 3D assets, music और voices, सब कुछ अपने नियंत्रण वाले मॉडलों से बना सकें तो कैसा रहे? हम अब यहीं पहुँच चुके हैं। यह गाइड बताती है कि क्या असली है, क्या काम करता है और आप आज से क्या इस्तेमाल कर सकते हैं।</p>
<h2 id="video-generation" tabindex="-1">Video Generation <a class="header-anchor" href="#video-generation" aria-label="Permalink to &quot;Video Generation&quot;"></a></h2>
<p>सालों तक video generation का मतलब Runway या Pika था, बंद platforms, subscription fees, और output के साथ आप क्या कर सकते हैं उस पर पाबंदियाँ। अब? आप अपने खुद के hardware पर तुलना करने लायक मॉडल चला सकते हैं।</p>
<video controls autoplay loop muted playsinline style="width: 100%; border-radius: 8px;">
  <source src="https://cdn.cinevva.com/video/hunyuanvideo-demo.mp4" type="video/mp4">
</video>
<p><em>HunyuanVideo text-to-video generation, अग्रणी ओपन-सोर्स video मॉडल से 720p output</em></p>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Org</th>
<th>Params</th>
<th>Specs</th>
<th>Hardware</th>
<th>Cost</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/Tencent-Hunyuan/HunyuanVideo" target="_blank" rel="noreferrer"><strong>HunyuanVideo</strong></a></td>
<td>Tencent</td>
<td>13B</td>
<td>720p, text+img</td>
<td>80GB</td>
<td>~$0.20</td>
</tr>
<tr>
<td><a href="https://github.com/Tencent-Hunyuan/HunyuanVideo-1.5" target="_blank" rel="noreferrer"><strong>HunyuanVideo-1.5</strong></a></td>
<td>Tencent</td>
<td>8.3B</td>
<td>480p-1080p, text+img</td>
<td>14GB</td>
<td>~$0.05</td>
</tr>
<tr>
<td><a href="https://github.com/genmoai/mochi" target="_blank" rel="noreferrer"><strong>Mochi 1</strong></a></td>
<td>Genmo</td>
<td>10B</td>
<td>480p@30fps</td>
<td>12GB+</td>
<td>~$0.10</td>
</tr>
<tr>
<td><a href="https://github.com/Lightricks/LTX-Video" target="_blank" rel="noreferrer"><strong>LTX-Video</strong></a></td>
<td>Lightricks</td>
<td>—</td>
<td>768x512, real-time</td>
<td>12GB</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://huggingface.co/Lightricks/LTX-2" target="_blank" rel="noreferrer"><strong>LTX-2</strong></a></td>
<td>Lightricks</td>
<td>19B</td>
<td>4K, <strong>synced audio</strong></td>
<td>High-end</td>
<td>~$0.30</td>
</tr>
<tr>
<td><a href="https://github.com/Wan-Video/Wan2.1" target="_blank" rel="noreferrer"><strong>Wan 2.1</strong></a></td>
<td>Alibaba</td>
<td>1.3-14B</td>
<td>480p-720p</td>
<td>8GB+</td>
<td>~$0.03</td>
</tr>
<tr>
<td><a href="https://github.com/Wan-Video/Wan2.2" target="_blank" rel="noreferrer"><strong>Wan 2.2</strong></a></td>
<td>Alibaba</td>
<td>27B MoE (14B active)</td>
<td>720p, MoE</td>
<td>8GB+</td>
<td>~$0.03</td>
</tr>
<tr>
<td><a href="https://huggingface.co/zai-org/CogVideoX1.5-5B" target="_blank" rel="noreferrer"><strong>CogVideoX1.5-5B</strong></a></td>
<td>Tsinghua</td>
<td>5B</td>
<td>1360x768@16fps, up to 10s</td>
<td>12GB</td>
<td>~$0.04</td>
</tr>
<tr>
<td><a href="https://github.com/SkyworkAI/SkyReels-V3" target="_blank" rel="noreferrer"><strong>SkyReels-V3</strong></a></td>
<td>Skywork</td>
<td>14-19B</td>
<td>Audio-driven, ref-to-video, V2V</td>
<td>High-end</td>
<td>~$0.10</td>
</tr>
<tr>
<td><a href="https://github.com/stepfun-ai/Step-Video-T2V" target="_blank" rel="noreferrer"><strong>Step-Video-T2V</strong></a></td>
<td>StepFun</td>
<td>30B</td>
<td>Largest open T2V, 204 frames</td>
<td>High-end</td>
<td>~$0.15</td>
</tr>
<tr>
<td><a href="https://github.com/hpcaitech/Open-Sora" target="_blank" rel="noreferrer"><strong>Open-Sora 2.0</strong></a></td>
<td>HPC-AI</td>
<td>11B</td>
<td>Flux integration</td>
<td>High-end</td>
<td>~$0.20</td>
</tr>
</tbody>
</table>
<p>Weights: <a href="https://huggingface.co/tencent/HunyuanVideo" target="_blank" rel="noreferrer">HunyuanVideo ↗</a> · <a href="https://huggingface.co/genmo/mochi-1-preview" target="_blank" rel="noreferrer">Mochi 1 ↗</a> · <a href="https://huggingface.co/Wan-AI/Wan2.1-T2V-14B" target="_blank" rel="noreferrer">Wan 2.1 ↗</a> · <a href="https://huggingface.co/hpcai-tech/Open-Sora-v2" target="_blank" rel="noreferrer">Open-Sora ↗</a></p>
<p><strong>सैंपल देखें:</strong> <a href="https://aivideo.hunyuan.tencent.com/" target="_blank" rel="noreferrer">HunyuanVideo gallery ↗</a> · <a href="https://www.genmo.ai/" target="_blank" rel="noreferrer">Mochi examples ↗</a> · <a href="https://github.com/THUDM/CogVideo#gallery" target="_blank" rel="noreferrer">CogVideoX samples ↗</a></p>
<h3 id="इसका-creators-के-लिए-क्या-मतलब-है" tabindex="-1">इसका creators के लिए क्या मतलब है <a class="header-anchor" href="#इसका-creators-के-लिए-क्या-मतलब-है" aria-label="Permalink to &quot;इसका creators के लिए क्या मतलब है&quot;"></a></h3>
<p><strong>HunyuanVideo</strong> पेशेवर मूल्यांकनों में Runway Gen-3 से बेहतर प्रदर्शन करता है, और यह पूरी तरह ओपन है। दिक्कत? आपको दमदार hardware चाहिए। 80GB VRAM वाला A100 या H100। हममें से ज़्यादातर के लिए इसका मतलब है कि जब ज़रूरत हो तब cloud GPUs किराए पर लेना।</p>
<p><strong>HunyuanVideo-1.5</strong> ने hardware का पूरा हिसाब बदल दिया। Tencent ने इसे नवंबर 2025 में 8.3B-parameter वाले ओपन मॉडल के रूप में रिलीज़ किया जो 14GB consumer GPU पर चलता है, text-to-video और image-to-video 480p/720p पर और वैकल्पिक 1080p upscaling के साथ। एक नया Selective and Sliding Tile Attention (SSTA) तरीका इसे मूल HunyuanVideo से लगभग दोगुनी inference स्पीड देता है। अगर आप HunyuanVideo की क्वालिटी चाहते थे पर 80GB कार्ड का खर्च जायज़ नहीं ठहरा पा रहे थे, तो यही वह वर्ज़न है जिसे आप घर पर सच में चला सकते हैं।</p>
<p><strong>Mochi 1</strong> वह है जिसे आप सच में चला सकते हैं। 12GB GPU, यानी RTX 3060 के दायरे का, इसे आराम से संभाल लेता है। output सचमुच रचनात्मक है, एक अलग कलात्मक क्वालिटी के साथ। HunyuanVideo जितनी सटीकता तो नहीं, पर प्रक्रिया आपकी अपनी है।</p>
<p><strong>LTX-2</strong> वहाँ है जहाँ games के लिए बात दिलचस्प हो जाती है। यह पहला ओपन मॉडल है जो video के साथ synchronized audio बनाता है। ऐसी cutscenes की कल्पना करें जहाँ आवाज़ बस... मेल खाती हो। कोई post-production sync नहीं। Lightricks ने जनवरी 2026 में पूरे weights, inference और training code को ओपन-सोर्स किया, जिसमें नेटिव 4K output 50fps तक और synced audio 20 सेकंड तक है। एक लाइसेंस चेतावनी: LTX-2 के ओपन weights academic इस्तेमाल के लिए मुफ़्त हैं और कमर्शियल इस्तेमाल के लिए सिर्फ़ उन कंपनियों के लिए जिनकी सालाना आमदनी $10M से कम है, तो इस पर कोई बिज़नेस खड़ा करने से पहले यह सीमा जाँच लें।</p>
<p><strong>SkyReels-V3</strong> (Skywork, जनवरी 2026) एक अहम नई ओपन लाइन है। यह एक unified multimodal मॉडल है जो 14B और 19B वेरिएंट्स में audio-driven video, reference-to-video और video-to-video करता है, तो जब आपको किसी किरदार या reference image से शॉट चलाना हो तब यह मज़बूत है। <strong>Step-Video-T2V</strong> (StepFun) 30B पर सबसे बड़ा ओपन text-to-video मॉडल है और एक साफ़ MIT लाइसेंस के तहत आता है, यह जानने लायक है अगर छोटे GPU पर फ़िट होने से ज़्यादा उदार लाइसेंसिंग आपके लिए मायने रखती है।</p>
<p><strong>Wan 2.1</strong> एक gaming laptop पर चलता है। छोटे वेरिएंट्स के लिए 8GB GPU काम करता है। अगर आपने कभी video generation के साथ prototype बनाना चाहा पर hardware का खर्च जायज़ नहीं ठहरा पाए, तो यही आपका रास्ता है।</p>
<p><strong>Wan 2.2</strong> (Alibaba, जुलाई 2025) Mixture-of-Experts डिज़ाइन पर बना पहला ओपन-सोर्स video मॉडल है: कुल 27B parameters पर हर स्टेप में सिर्फ़ 14B active। यह text-to-video (T2V-A14B), image-to-video (I2V-A14B) और एक हाइब्रिड 5B वेरिएंट के रूप में आता है जो consumer GPUs पर चलता है, और ये सब कमर्शियल इस्तेमाल के लिए Apache 2.0 के तहत हैं।</p>
<p>एक बात जानने लायक है: Wan 2.2 अब भी आख़िरी ओपन Wan है। नए Wan 2.5 (सितंबर 2025), 2.6 (दिसंबर 2025) और 2.7 (अप्रैल 2026) ने synced audio, 1080p और बारीक frame control जोड़े, पर वे API-only हैं, बिना सार्वजनिक weights के। अगर self-hosting आपके लिए मायने रखती है, तो 2.2 ही सीमा है। जब 4K और synced audio चाहिए, तब पकड़ने लायक ओपन मॉडल LTX-2 है।</p>
<p>जो workflow सही बैठता है: लोकल prototyping के लिए Mochi 1 या Wan 2.1। जब फ़ाइनल क्वालिटी चाहिए तब cloud GPUs पर HunyuanVideo-1.5 या LTX-2।</p>
<h2 id="image-generation" tabindex="-1">Image Generation <a class="header-anchor" href="#image-generation" aria-label="Permalink to &quot;Image Generation&quot;"></a></h2>
<p>यहाँ ओपन-सोर्स पहले ही जीत चुका है। जो मॉडल आप आज डाउनलोड कर सकते हैं, वे सच में Midjourney की टक्कर लेते हैं। &quot;लगभग उतने अच्छे&quot; नहीं, बल्कि असल में बराबरी के।</p>
<p><img src="/img/ai-samples/flux-sample.png" alt="FLUX.1 generation samples">
<em>FLUX.1 samples, Apache 2.0 लाइसेंस वाले मॉडल से photorealistic क्वालिटी</em></p>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Org</th>
<th>Released</th>
<th>Params</th>
<th>Key Feature</th>
<th>License</th>
<th>Cost/image</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://huggingface.co/black-forest-labs/FLUX.1-schnell" target="_blank" rel="noreferrer"><strong>FLUX.1 [schnell]</strong></a></td>
<td>Black Forest Labs</td>
<td>Aug 2024</td>
<td>12B</td>
<td>4-step generation, fast</td>
<td>Apache 2.0</td>
<td>~$0.001</td>
</tr>
<tr>
<td><a href="https://huggingface.co/black-forest-labs/FLUX.1-dev" target="_blank" rel="noreferrer"><strong>FLUX.1 [dev]</strong></a></td>
<td>Black Forest Labs</td>
<td>Aug 2024</td>
<td>12B</td>
<td>Quality close to Pro</td>
<td>Non-commercial</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://huggingface.co/stabilityai/stable-diffusion-3.5-large" target="_blank" rel="noreferrer"><strong>SD 3.5 Large</strong></a></td>
<td>Stability AI</td>
<td>Oct 2024</td>
<td>8B</td>
<td>Text rendering, diverse styles</td>
<td>Stability license</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://huggingface.co/stabilityai/stable-diffusion-3.5-large-turbo" target="_blank" rel="noreferrer"><strong>SD 3.5 Large Turbo</strong></a></td>
<td>Stability AI</td>
<td>Oct 2024</td>
<td>8B</td>
<td>4-step, fast</td>
<td>Stability license</td>
<td>~$0.001</td>
</tr>
<tr>
<td><a href="https://huggingface.co/HiDream-ai/HiDream-I1-Full" target="_blank" rel="noreferrer"><strong>HiDream-I1</strong></a></td>
<td>HiDream.ai</td>
<td>Apr 2025</td>
<td>17B</td>
<td>High quality, Full/Dev/Fast variants</td>
<td>MIT</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://github.com/zai-org/CogView4" target="_blank" rel="noreferrer"><strong>CogView4</strong></a></td>
<td>Tsinghua</td>
<td>Mar 2025</td>
<td>6B</td>
<td>Native Chinese text</td>
<td>Open</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://github.com/QwenLM/Qwen-Image" target="_blank" rel="noreferrer"><strong>Qwen-Image</strong></a></td>
<td>Alibaba</td>
<td>Aug 2025</td>
<td>20B</td>
<td>Best-in-class text rendering, editing</td>
<td>Apache 2.0</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://bfl.ai/blog/flux-2" target="_blank" rel="noreferrer"><strong>FLUX.2</strong></a></td>
<td>Black Forest Labs</td>
<td>Nov 2025</td>
<td>32B</td>
<td>Text+edit, 4MP, multi-ref</td>
<td>dev: Non-commercial / klein 4B: Apache 2.0</td>
<td>~$0.003</td>
</tr>
<tr>
<td><a href="https://github.com/ideogram-oss/ideogram4" target="_blank" rel="noreferrer"><strong>Ideogram 4.0</strong></a></td>
<td>Ideogram</td>
<td>Jun 2026</td>
<td>9.3B</td>
<td>Design work, text rendering, JSON layout control</td>
<td>Non-commercial</td>
<td>~$0.002</td>
</tr>
</tbody>
</table>
<p>सीधे आज़माएँ: <a href="https://huggingface.co/spaces/black-forest-labs/FLUX.1-schnell" target="_blank" rel="noreferrer">FLUX.1 schnell demo ↗</a> · <a href="https://huggingface.co/spaces/stabilityai/stable-diffusion-3.5-large" target="_blank" rel="noreferrer">SD 3.5 Large demo ↗</a> · <a href="https://github.com/black-forest-labs/flux" target="_blank" rel="noreferrer">GitHub (FLUX) ↗</a></p>
<p><strong>सैंपल देखें:</strong> <a href="https://flux1.ai/examples" target="_blank" rel="noreferrer">FLUX gallery ↗</a> · <a href="https://flux1.ai/gallery" target="_blank" rel="noreferrer">FLUX LoRA gallery ↗</a> · <a href="https://replicate.com/black-forest-labs/flux-schnell/examples" target="_blank" rel="noreferrer">Replicate examples ↗</a></p>
<h3 id="game-assets-बनाने-के-लिए" tabindex="-1">Game assets बनाने के लिए <a class="header-anchor" href="#game-assets-बनाने-के-लिए" aria-label="Permalink to &quot;Game assets बनाने के लिए&quot;"></a></h3>
<p><strong>FLUX.1 [schnell]</strong> वह है जिसके बारे में जानना ज़रूरी है। Apache 2.0 लाइसेंस, यानी आप लाइसेंसिंग के झमेले की चिंता किए बिना कमर्शियल games शिप कर सकते हैं। यह सिर्फ़ 4 स्टेप्स में generate करता है, तो आप तेज़ी से iterate कर सकते हैं। जो चाहते हैं उसे बताएँ, नतीजा देखें, बदलाव करें, दोहराएँ।</p>
<p><strong>SD 3.5 Large</strong> आख़िरकार text rendering ठीक से संभालता है। पिछले वर्ज़न आप जो भी text डालने की कोशिश करते उसे बिगाड़ देते थे। यह UI mockups, in-game signage, title screens के लिए मायने रखता है, जहाँ कहीं भी आपको अपनी images में पढ़ने लायक शब्द चाहिए।</p>
<p><strong>FLUX.2</strong> (Black Forest Labs, नवंबर 2025) बड़ा उत्तराधिकारी है: एक 32B मॉडल जो text-to-image और image editing को एक ही checkpoint में संभालता है, मज़बूत multi-reference character/style consistency और 4 मेगापिक्सल तक भरोसेमंद text rendering के साथ। ओपन-weight FLUX.2 [dev] एक non-commercial लाइसेंस इस्तेमाल करता है, पर size-distilled FLUX.2 [klein] (जनवरी 2026) अपना 4B वर्ज़न Apache 2.0 के तहत देता है, एक सेकंड से कम में generate करता है, और करीब 8GB VRAM में चलता है, तो game art शिप करने के लिए अब भी एक कमर्शियल-सेफ़ विकल्प मौजूद है। ख़ास तौर पर 4B klein लें: बड़ा klein 9B non-commercial FLUX लाइसेंस के तहत ही रहता है। Quantized pipelines [dev] को 18-24GB GPUs तक ले आती हैं।</p>
<p>जानने लायक दो और ओपन विकल्प। <strong>Chroma1-HD</strong> (8.9B, Apache 2.0) एक पूरी तरह ओपन FLUX.1-schnell derivative है, तो यह [dev] लाइसेंस के बिना FLUX-परिवार की क्वालिटी पाने का कमर्शियल-सेफ़ तरीका है। <strong>OmniGen2</strong> (Apache 2.0) एक unified मॉडल है जो text-to-image के साथ-साथ instruction-आधारित editing एक ही जगह करता है, जो तब सबसे तेज़ रास्ता है जब आप शुरू से generate करने के बजाय किसी मौजूदा asset पर iterate कर रहे हों (&quot;तलवार को नीला चमकाओ&quot;)।</p>
<p><strong>Qwen-Image</strong> (Alibaba, अगस्त 2025) वह ओपन मॉडल है जिसकी ओर तब जाएँ जब आपकी art को पढ़ने लायक text चाहिए, जैसे signage, UI, posters या item labels। यह एक 20B Apache 2.0 मॉडल है जिसमें सबसे बेहतरीन text rendering और एक मज़बूत instruction-आधारित editing वेरिएंट है, तो यह कमर्शियल-सेफ़ है और उस चीज़ में असाधारण रूप से अच्छा है जिसमें ज़्यादातर image मॉडल अब भी लड़खड़ाते हैं। दिसंबर 2025 की रिफ़्रेश, <a href="https://huggingface.co/Qwen/Qwen-Image-2512" target="_blank" rel="noreferrer">Qwen-Image-2512</a>, ने human realism और text layout को और तेज़ किया और Apache 2.0 लाइसेंस बरक़रार रखा, तो अगर आप self-host कर रहे हैं तो वही checkpoint लें। नया Qwen-Image-2.0 (फ़रवरी 2026) API-only है।</p>
<p><strong>Ideogram 4.0</strong> (जून 2026) Ideogram की पहली ओपन-weight रिलीज़ है: design काम के लिए बना एक 9.3B diffusion transformer, मज़बूत multilingual text rendering और structured JSON prompts के ज़रिए स्पष्ट layout और color control के साथ। इस पर कुछ बनाने से पहले एक पेच: inference code Apache 2.0 है, पर weights एक non-commercial लाइसेंस के तहत हैं, तो जब तक आप कमर्शियल लाइसेंस न ख़रीदें, यह एक research और prototyping tool है।</p>
<p>Stable Diffusion के इर्द-गिर्द का इकोसिस्टम अब भी बेजोड़ है। सटीक composition के लिए ControlNet। सुधार के लिए Inpainting। कस्टम styles के लिए LoRA fine-tuning। FLUX पकड़ बना रहा है, पर अगर आपको आज गहरी customization चाहिए, तो SD के tooling की परिपक्वता आपको काम करने के लिए ज़्यादा देती है।</p>
<p>मैं इसके बारे में ऐसे सोचूँगा: textures और sprites के लिए, दोनों में से कोई भी चलेगा। ख़ास style ज़रूरतों वाले concept art के लिए, LoRAs के साथ SD 3.5। कमर्शियल शिपिंग के लिए शुद्ध क्वालिटी के लिए, FLUX schnell।</p>
<h2 id="_3d-generation" tabindex="-1">3D Generation <a class="header-anchor" href="#_3d-generation" aria-label="Permalink to &quot;3D Generation&quot;"></a></h2>
<p>अगर आपने कभी आठ घंटे एक prop को मॉडल करने में लगाए हैं जो आपके game में तीन सेकंड के लिए दिखता है, तो यह सेक्शन आपके लिए है। 3D generation &quot;दिलचस्प रिसर्च&quot; से एक असली production tool बने काफ़ी समय हो गया, और 2026 तक open models सच में अच्छे हैं। अब आप एक sketch से एक textured mesh तक एक मिनट से कम में पहुँच सकते हैं।</p>
<p><img src="/img/ai-samples/trellis-sample.png" alt="TRELLIS 3D generation samples">
<em>TRELLIS एकल images से PBR materials वाले textured 3D meshes बनाता है</em></p>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Org</th>
<th>Released</th>
<th>Key Feature</th>
<th>Output</th>
<th>Cost/mesh</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/microsoft/TRELLIS.2" target="_blank" rel="noreferrer"><strong>TRELLIS 2</strong></a></td>
<td>Microsoft</td>
<td>2025</td>
<td>4B params, PBR materials</td>
<td>Textured mesh with normals</td>
<td>~$0.03</td>
</tr>
<tr>
<td><a href="https://github.com/Tencent-Hunyuan/Hunyuan3D-2.1" target="_blank" rel="noreferrer"><strong>Hunyuan3D 2.1</strong></a></td>
<td>Tencent</td>
<td>Jun 2025</td>
<td>Production PBR, full weights + training code</td>
<td>High-fidelity textured mesh</td>
<td>~$0.05</td>
</tr>
<tr>
<td><a href="https://github.com/VAST-AI-Research/TripoSR" target="_blank" rel="noreferrer"><strong>TripoSR</strong></a></td>
<td>VAST/Stability</td>
<td>Mar 2024</td>
<td>Single image → mesh in 0.5s</td>
<td>Mesh (no texture)</td>
<td>~$0.001</td>
</tr>
<tr>
<td><a href="https://github.com/TencentARC/InstantMesh" target="_blank" rel="noreferrer"><strong>InstantMesh</strong></a></td>
<td>TencentARC</td>
<td>Apr 2024</td>
<td>Multi-view diffusion</td>
<td>Quality mesh</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://huggingface.co/stabilityai/stable-zero123" target="_blank" rel="noreferrer"><strong>Stable Zero123</strong></a></td>
<td>Stability AI</td>
<td>2024</td>
<td>Novel view synthesis</td>
<td>Multi-view images</td>
<td>~$0.01</td>
</tr>
<tr>
<td><a href="https://huggingface.co/VAST-AI/UniRig" target="_blank" rel="noreferrer"><strong>UniRig</strong></a></td>
<td>Tsinghua / Tripo</td>
<td>2025</td>
<td>Auto-rig: skeleton + skinning weights</td>
<td>Rigged, animatable mesh</td>
<td>~$0.01</td>
</tr>
</tbody>
</table>
<p>सीधे आज़माएँ: <a href="https://huggingface.co/spaces/microsoft/TRELLIS.2" target="_blank" rel="noreferrer">TRELLIS 2 demo ↗</a> · <a href="https://huggingface.co/spaces/tencent/Hunyuan3D-2" target="_blank" rel="noreferrer">Hunyuan3D demo ↗</a> · <a href="https://huggingface.co/spaces/TencentARC/InstantMesh" target="_blank" rel="noreferrer">InstantMesh demo ↗</a></p>
<p><strong>सैंपल देखें:</strong> <a href="https://microsoft.github.io/TRELLIS.2/" target="_blank" rel="noreferrer">TRELLIS 2 project page ↗</a> · <a href="https://www.3daistudio.com/Models/Trellis-2" target="_blank" rel="noreferrer">3D AI Studio gallery ↗</a></p>
<h3 id="एक-workflow-जो-सच-में-काम-करता-है" tabindex="-1">एक workflow जो सच में काम करता है <a class="header-anchor" href="#एक-workflow-जो-सच-में-काम-करता-है" aria-label="Permalink to &quot;एक workflow जो सच में काम करता है&quot;"></a></h3>
<p>जो तरीका इस समय creators के लिए जम रहा है, वह मॉडलों को आपस में जोड़ता है। एक image से शुरू करें, generate की हुई हो या खींची हुई, फ़र्क नहीं पड़ता। इसे Stable Zero123 या Wonder3D से गुज़ारें ताकि कई views मिलें। उन views को mesh के लिए InstantMesh या TripoSR को दें। फिर सही materials के लिए TRELLIS 2 या Hunyuan3D।</p>
<p>Microsoft का <strong>TRELLIS 2</strong> production-ready assets के लिए नया अग्रणी है। यह वह geometry संभालता है जो दूसरे मॉडलों को तोड़ देती है, पतली surfaces, छेद, जटिल topology। 4B parameter वाला वर्ज़न असली PBR textures के साथ meshes देता है, सिर्फ़ materials का दिखावा करते vertex colors नहीं।</p>
<p><strong>TripoSR</strong> स्पीड के बारे में है। image से mesh तक आधा सेकंड। mesh को सफ़ाई और texturing की ज़रूरत होती है, पर prototyping के लिए? यह पता लगाने के लिए कि कोई आइडिया काम करता है या नहीं, इससे पहले कि आप घंटे लगाएँ? लाजवाब।</p>
<p><strong>Hunyuan3D 2.1</strong> इस्तेमाल करने लायक ओपन Tencent मॉडल है: यह production-grade PBR texturing के साथ पूरे weights और training code देता है। नाम पर ध्यान दें, क्योंकि यह लोगों को उलझा देता है। Hunyuan3D 2.5, 3.0 और 3.1 सब मौजूद हैं पर API-only हैं, बिना सार्वजनिक weights के, तो self-hosting के लिए बेस generator अब भी 2.1 पर ही रुकता है। Tencent ने 2.1 पर बने दो काम के extensions ज़रूर ओपन किए: Hunyuan3D-Omni multi-condition control (point cloud, voxel, skeleton, bounding box) जोड़ता है, और Hunyuan3D-Part एक mesh को editable हिस्सों में तोड़ देता है। इसका लाइसेंस EU, UK और दक्षिण कोरिया को भी बाहर रखता है, तो उन क्षेत्रों में शिप करने से पहले शर्तें जाँच लें।</p>
<p><strong>UniRig</strong> (Tsinghua और Tripo, MIT) उस दिक़्क़त को दूर करता है जो mesh मिलते ही हर किसी के सामने आती है: rigging। यह किसी input mesh के लिए एक वैध skeleton और skinning weights अपने-आप बना देता है, तो एक generate किया किरदार सच में animate हो सकता है, न कि एक static prop बनकर पड़ा रहे। इसे NVIDIA के SOMA-X के auto-animation काम के साथ जोड़िए और एक पूरी तरह generate किया, पूरी तरह rigged किरदार अब कोई research demo नहीं रह जाता।</p>
<p>indie creators के लिए वास्तविक उम्मीद यह है: FLUX से concept art generate करें, geometry के लिए इसे InstantMesh से गुज़ारें, फिर Blender में texture करें या ऑटोमेटेड PBR के लिए TRELLIS इस्तेमाल करें। आप प्रति asset 4-8 घंटे के बजाय 30-60 मिनट देख रहे हैं। समय शून्य नहीं, पर एक असली फ़र्क।</p>
<h2 id="audio-और-music" tabindex="-1">Audio और Music <a class="header-anchor" href="#audio-और-music" aria-label="Permalink to &quot;Audio और Music&quot;"></a></h2>
<p>Audio generation अभी images और video तक नहीं पहुँचा है। पर इतना यहाँ है कि आपके काम करने का तरीका बदल दे, ख़ासकर prototyping और sound effects के लिए।</p>
<audio controls style="width: 100%;">
  <source src="/img/ai-samples/music-sample.mp3" type="audio/mpeg">
</audio>
<p><em>AI से बना music सैंपल, जो mood चाहिए उसे बताएँ, उससे मेल खाता music पाएँ</em></p>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Org</th>
<th>Released</th>
<th>What It Does</th>
<th>License</th>
<th>Cost/30s</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/ace-step/ACE-Step-1.5" target="_blank" rel="noreferrer"><strong>ACE-Step 1.5</strong></a></td>
<td>StepFun/ACE Studio</td>
<td>Jan 2026</td>
<td>~4 min music fast, 19 languages, voice clone</td>
<td>MIT</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://github.com/multimodal-art-projection/YuE" target="_blank" rel="noreferrer"><strong>YuE</strong></a></td>
<td>MAP</td>
<td>Jan 2025</td>
<td>Full songs from lyrics, vocals + accompaniment</td>
<td>Apache 2.0</td>
<td>~$0.05</td>
</tr>
<tr>
<td><a href="https://huggingface.co/facebook/musicgen-large" target="_blank" rel="noreferrer"><strong>MusicGen</strong></a></td>
<td>Meta</td>
<td>2023</td>
<td>Text-to-music, controllable</td>
<td>MIT</td>
<td>~$0.01</td>
</tr>
<tr>
<td><a href="https://huggingface.co/facebook/audiogen-medium" target="_blank" rel="noreferrer"><strong>AudioGen</strong></a></td>
<td>Meta</td>
<td>2023</td>
<td>Sound effects, ambient</td>
<td>code MIT / weights CC-BY-NC</td>
<td>~$0.01</td>
</tr>
<tr>
<td><a href="https://stability.ai/stable-audio" target="_blank" rel="noreferrer"><strong>Stable Audio 3.0</strong></a></td>
<td>Stability AI</td>
<td>May 2026</td>
<td>Up to ~6 min songs; open Small, Small-SFX + Medium models</td>
<td>Stability Community</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://huggingface.co/google/magenta-realtime" target="_blank" rel="noreferrer"><strong>Magenta RealTime</strong></a></td>
<td>Google</td>
<td>Jun 2025</td>
<td>Real-time, prompt-steerable music</td>
<td>code Apache / weights CC-BY</td>
<td>~$0.02</td>
</tr>
</tbody>
</table>
<p>सीधे आज़माएँ: <a href="https://huggingface.co/spaces/facebook/MusicGen" target="_blank" rel="noreferrer">MusicGen demo ↗</a> · <a href="https://audiocraft.metademolab.com/musicgen.html" target="_blank" rel="noreferrer">AudioCraft playground ↗</a></p>
<p><strong>सैंपल देखें:</strong> <a href="https://replicate.com/meta/musicgen/examples" target="_blank" rel="noreferrer">MusicGen examples ↗</a> · <a href="https://felixkreuk.github.io/audiogen/" target="_blank" rel="noreferrer">AudioGen samples ↗</a></p>
<h3 id="जिसके-साथ-आप-सच-में-शिप-कर-सकते-हैं" tabindex="-1">जिसके साथ आप सच में शिप कर सकते हैं <a class="header-anchor" href="#जिसके-साथ-आप-सच-में-शिप-कर-सकते-हैं" aria-label="Permalink to &quot;जिसके साथ आप सच में शिप कर सकते हैं&quot;"></a></h3>
<p>Meta का <strong>MusicGen</strong> game audio के लिए व्यावहारिक विकल्प है। जो mood चाहिए उसे बताएँ, उससे मेल खाता music पाएँ। MIT लाइसेंस का मतलब है आप इसे शिप कर सकते हैं। 3.3B मॉडल 12GB GPU पर ठीक चलता है, बताएँ, generate करें, iterate करें।</p>
<p><strong>AudioGen</strong> sound effects संभालता है: कदमों की आवाज़, दरवाज़े की चरमराहट, हवा का ambient शोर, मशीनी आवाज़ें। एक लाइसेंस पेच: code MIT है पर weights CC-BY-NC (non-commercial) हैं, तो MusicGen की तरह यह भी prototyping tool है। शिप होने वाले game के SFX के लिए Stable Audio का Small-SFX इस्तेमाल करें।</p>
<p><strong>YuE</strong> सचमुच रोमांचक है। यह पहला ओपन मॉडल है जो vocals के साथ पूरे गाने बनाता है। theme songs। असली गायन वाला background music। क्वालिटी ऊपर-नीचे होती है, पर यह उस किसी भी चीज़ से कोसों आगे है जिसे आप खुद डाउनलोड करके चला सकते हैं।</p>
<p><strong>ACE-Step</strong> वह ओपन music मॉडल है जिसके बारे में अभी जानना ज़रूरी है, और यह तेज़ी से आगे बढ़ा है: 1.5 लाइन (जनवरी 2026, एक बड़े 5B XL वेरिएंट के साथ) ने मूल मई 2025 रिलीज़ की जगह ले ली है और अब MIT-लाइसेंस वाली है। यह कई मिनट का music तेज़ी से बनाता है, 19 भाषाओं को सपोर्ट करता है, और voice cloning, remixing और lyric editing संभालता है। game prototyping के लिए यह उस ख़ाली जगह को काफ़ी हद तक भरता है जो YuE और MusicGen ने छोड़ी थी।</p>
<p><strong>Stable Audio 3.0</strong> (मई 2026) sound के लिए बड़ा अपडेट है। यह करीब छह मिनट तक के गाने बना सकता है, और Stability ने चार में से तीन वेरिएंट्स के ओपन weights दिए: Small और समर्पित sound-effects मॉडल Small-SFX दोनों on-device चलते हैं, और Medium बेहतर musical structure और पूरी track length जोड़ता है। सिर्फ़ Large मॉडल API-only रहा। Small-SFX अब ख़ास तौर पर game SFX के लिए सबसे मज़बूत ओपन विकल्प है। पूरा परिवार licensed data पर train हुआ था, तो क़ानूनी आधार उन music generators से ज़्यादा साफ़ है जिन पर अनसुलझे मुक़दमे चल रहे हैं।</p>
<p><strong>Magenta RealTime</strong> (Google) सबसे अच्छे अंदाज़ में अलग है: यह एकमात्र ओपन-weights मॉडल है जो real-time, लगातार prompt से steer होने वाले music के लिए बना है। तैयार track रेंडर करने के बजाय यह live music बनाता है जिसे आप बजते हुए steer कर सकते हैं, जो ठीक उसी आकार का है जैसा एक adaptive game soundtrack होता है जो player के काम के हिसाब से बदलता रहता है। code Apache 2.0 है और weights CC-BY, दोनों कमर्शियल इस्तेमाल के लिए ठीक।</p>
<p>ईमानदार राय यह है: पूरे vocal गानों के लिए ओपन मॉडल और बंद मॉडल (Suno, Udio) के बीच की दूरी घट रही है पर अब भी असली है, और वे बंद tools भी अनसुलझे training-data मुक़दमे ढो रहे हैं। sound effects के लिए ओपन मॉडल (ख़ासकर Stable Audio का SFX मॉडल) सच में टक्कर के हैं। जो पूरे गाने आप शिप करना चाहते हैं, उनके लिए ख़ूब iterate करने की उम्मीद रखें, या फ़ाइनल production के लिए एक musician को साथ लें और बाक़ी हर चीज़ के लिए ये tools इस्तेमाल करें।</p>
<h2 id="speech-और-voice" tabindex="-1">Speech और Voice <a class="header-anchor" href="#speech-और-voice" aria-label="Permalink to &quot;Speech और Voice&quot;"></a></h2>
<p>Voice generation अब &quot;games के लिए काफ़ी अच्छा&quot; वाले दायरे को कब का पार कर चुका है। और इससे छोटी टीमों के लिए जो मुमकिन है वह बदल जाता है।</p>
<audio controls style="width: 100%;">
  <source src="/img/ai-samples/speech-sample.mp3" type="audio/mpeg">
</audio>
<p><em>AI से बना game narration, सही गति और भावना के साथ स्वाभाविक speech</em></p>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Org</th>
<th>Released</th>
<th>Key Feature</th>
<th>License</th>
<th>Cost/min</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/QwenLM/Qwen3-TTS" target="_blank" rel="noreferrer"><strong>Qwen3-TTS</strong></a></td>
<td>Alibaba</td>
<td>Jan 2026</td>
<td>3s voice cloning, voice design, 10 languages</td>
<td>Apache 2.0</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://huggingface.co/ResembleAI/chatterbox" target="_blank" rel="noreferrer"><strong>Chatterbox</strong></a></td>
<td>Resemble AI</td>
<td>2025</td>
<td>Emotion control, cloning from ~5s, 23 languages</td>
<td>MIT</td>
<td>~$0.003</td>
</tr>
<tr>
<td><a href="https://github.com/SesameAILabs/csm" target="_blank" rel="noreferrer"><strong>CSM</strong></a></td>
<td>Sesame AI</td>
<td>Mar 2025</td>
<td>Conversational flow, natural pauses</td>
<td>Apache 2.0</td>
<td>~$0.005</td>
</tr>
<tr>
<td><a href="https://github.com/fishaudio/fish-speech" target="_blank" rel="noreferrer"><strong>Fish Speech 1.5</strong></a></td>
<td>Fish Audio</td>
<td>2024</td>
<td>Zero-shot cloning from 10-30s</td>
<td>code Apache / weights CC-BY-NC-SA</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://github.com/myshell-ai/OpenVoice" target="_blank" rel="noreferrer"><strong>OpenVoice V2</strong></a></td>
<td>MyShell/MIT</td>
<td>Apr 2024</td>
<td>Emotion/accent control</td>
<td>MIT</td>
<td>~$0.003</td>
</tr>
<tr>
<td><a href="https://huggingface.co/coqui/XTTS-v2" target="_blank" rel="noreferrer"><strong>XTTS-v2</strong></a></td>
<td>Coqui (community)</td>
<td>2024</td>
<td>17 languages, voice cloning</td>
<td>CPML (non-commercial)</td>
<td>~$0.005</td>
</tr>
</tbody>
</table>
<p><strong>सैंपल सुनें:</strong> <a href="https://fish.audio/" target="_blank" rel="noreferrer">Fish Audio voices ↗</a> · <a href="https://huggingface.co/spaces/myshell-ai/OpenVoice" target="_blank" rel="noreferrer">OpenVoice demo ↗</a></p>
<h3 id="npcs-को-इंसानों-जैसा-बनाना" tabindex="-1">NPCs को इंसानों जैसा बनाना <a class="header-anchor" href="#npcs-को-इंसानों-जैसा-बनाना" aria-label="Permalink to &quot;NPCs को इंसानों जैसा बनाना&quot;"></a></h3>
<p>Sesame का <strong>CSM (Conversational Speech Model)</strong> ख़ास तौर पर संवाद के लिए बनाया गया। यह स्वाभाविक ठहराव पैदा करता है। सुर में बदलाव। असली बातचीत की लय। ज़्यादातर TTS किसी के script पढ़ने जैसा लगता है, आप उसे तुरंत पहचान लेते हैं। CSM किसी के बात करने जैसा लगता है। यह फ़र्क आपकी सोच से ज़्यादा मायने रखता है।</p>
<p><strong>Qwen3-TTS</strong> (Alibaba, जनवरी 2026) कमर्शियल प्रोजेक्ट्स पर पकड़ने लायक मॉडल है। पूरा परिवार Apache 2.0 है, यह करीब 3 सेकंड के reference audio से आवाज़ clone करता है, 10 भाषाएँ बोलता है, और description-आधारित voice design सपोर्ट करता है, तो reference recordings ढूँढने के बजाय आप एक NPC की आवाज़ सादे text में तय कर सकते हैं। 0.6B और 1.7B मॉडल मामूली hardware पर चलते हैं।</p>
<p><strong>Chatterbox</strong> (Resemble AI) expressive-voice वाला विकल्प है, और यह MIT-लाइसेंस वाला है तो आप इसे शिप कर सकते हैं। यह करीब 5 सेकंड से आवाज़ clone करता है, 200ms से कम latency पर चलता है, 23 भाषाएँ कवर करता है, और यह emotion-exaggeration control वाला पहला ओपन मॉडल है, तो एक NPC सपाट बोलने के बजाय सच में ग़ुस्से में या डरा हुआ लग सकता है। दो और Apache-2.0 विकल्प ख़ास ज़रूरतें पूरी करते हैं: <strong>Orpheus</strong> (Canopy) <code>&lt;laugh&gt;</code> और <code>&lt;sigh&gt;</code> जैसे inline emotion tags लेता है जो NPC barks पर साफ़ बैठते हैं और low-end hardware के लिए एक 150M वेरिएंट देता है, और <strong>Dia</strong> (Nari Labs) multi-speaker संवाद के लिए बना है जिसमें खाँसी और हँसी जैसे non-verbals एक ही pass में आते हैं।</p>
<p><strong>Fish Speech</strong> और <strong>OpenVoice</strong> voice cloning संभालते हैं। किसी voice actor की 10-30 सेकंड रिकॉर्ड करें, फिर उसी आवाज़ में अनगिनत संवाद generate करें। सोचिए इसका क्या मतलब है: आप ख़ास lines के लिए voice talent रख सकते हैं, फिर उनके प्रदर्शन को सैकड़ों variations और ambient संवाद तक बढ़ा सकते हैं। Fish Speech पर एक लाइसेंस नोट: code ओपन है पर 1.5 weights CC-BY-NC-SA हैं, तो यह एक prototyping tool है। शिप होने वाले games के लिए इसके बजाय OpenVoice (MIT) या Qwen3-TTS (Apache 2.0) इस्तेमाल करें।</p>
<p><strong>NVIDIA ACE</strong> (पूरी तरह ओपन नहीं, पर जानने लायक) अब on-device NPC deployment के लिए Qwen3-8B सपोर्ट करता है। लोकल LLM + लोकल TTS + lip sync, सब consumer GPUs पर चलते हुए। यह वह stack है जो real-time NPC बातचीत के लिए है जिन्हें cloud calls की ज़रूरत नहीं।</p>
<p>indie creators के लिए जो तरीका सही बैठता है: मुख्य किरदारों और सबसे अहम lines के लिए voice actors रखें। ambient संवाद, variations और उन तमाम छोटी-मोटी lines की भरपाई के लिए Qwen3-TTS या OpenVoice इस्तेमाल करें जो वरना ख़ामोश या बहुत महँगी पड़तीं।</p>
<h2 id="world-models-और-game-simulation" tabindex="-1">World Models और Game Simulation <a class="header-anchor" href="#world-models-और-game-simulation" aria-label="Permalink to &quot;World Models और Game Simulation&quot;"></a></h2>
<p>यहाँ बात सचमुच अजीब, और सचमुच रोमांचक हो जाती है। ये मॉडल static assets नहीं बनाते। ये ऐसे अनुभव बनाते हैं जो games जैसे महसूस होते हैं।</p>
<a href="https://oasis.decart.ai/" target="_blank" style="display: block; background: linear-gradient(135deg, #2d5a27 0%, #1a3d16 100%); padding: 20px; border-radius: 12px; text-align: center; text-decoration: none; color: white;">
  <strong style="font-size: 18px;">🎮 Play Oasis — AI-Generated Minecraft</strong><br>
  <span style="opacity: 0.8;">Real-time world generation with no game engine, just AI prediction</span>
</a>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Org</th>
<th>Released</th>
<th>What It Does</th>
<th>Status</th>
<th>Cost/frame</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/eloialonso/diamond" target="_blank" rel="noreferrer"><strong>DIAMOND</strong></a></td>
<td>Research</td>
<td>2024</td>
<td>Diffusion world model, Atari simulation</td>
<td>Open weights</td>
<td>~$0.001</td>
</tr>
<tr>
<td><a href="https://github.com/etched-ai/open-oasis" target="_blank" rel="noreferrer"><strong>Oasis</strong></a></td>
<td>Decart/Etched</td>
<td>Oct 2024</td>
<td>Real-time Minecraft generation</td>
<td>500M weights open</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://huggingface.co/microsoft/mineworld" target="_blank" rel="noreferrer"><strong>MineWorld</strong></a></td>
<td>Microsoft</td>
<td>Apr 2025</td>
<td>Real-time Minecraft, open Oasis alternative</td>
<td>MIT</td>
<td>~$0.002</td>
</tr>
<tr>
<td><a href="https://huggingface.co/tencent/Hunyuan-GameCraft-1.0" target="_blank" rel="noreferrer"><strong>Hunyuan-GameCraft</strong></a></td>
<td>Tencent</td>
<td>Aug 2025</td>
<td>Interactive game video, keyboard/mouse control</td>
<td>Tencent Community</td>
<td>~$0.005</td>
</tr>
<tr>
<td><a href="https://github.com/GameGen-X/GameGen-X" target="_blank" rel="noreferrer"><strong>GameGen-X</strong></a></td>
<td>Research</td>
<td>2024</td>
<td>Open-world video generation</td>
<td>Open code + dataset</td>
<td>~$0.005</td>
</tr>
<tr>
<td><a href="https://huggingface.co/nvidia/Cosmos-Predict2.5-2B" target="_blank" rel="noreferrer"><strong>NVIDIA Cosmos</strong></a></td>
<td>NVIDIA</td>
<td>Oct 2025</td>
<td>Physical AI simulation (Predict2.5)</td>
<td>NVIDIA Open Model License</td>
<td>~$0.01</td>
</tr>
<tr>
<td><a href="https://github.com/SkyworkAI/Matrix-Game" target="_blank" rel="noreferrer"><strong>Matrix-Game 3.0</strong></a></td>
<td>Skywork</td>
<td>Mar 2026</td>
<td>Real-time 720p interactive worlds, long-horizon memory</td>
<td>Open weights</td>
<td>~$0.005</td>
</tr>
<tr>
<td><a href="https://deepmind.google/blog/genie-2-a-large-scale-foundation-world-model/" target="_blank" rel="noreferrer"><strong>Genie 2</strong></a></td>
<td>DeepMind</td>
<td>Dec 2024</td>
<td>Interactive 3D from images</td>
<td>Not released</td>
<td>N/A</td>
</tr>
<tr>
<td><a href="https://deepmind.google/blog/genie-3-a-new-frontier-for-world-models/" target="_blank" rel="noreferrer"><strong>Genie 3</strong></a></td>
<td>DeepMind</td>
<td>Aug 2025</td>
<td>Real-time 720p worlds, promptable events</td>
<td>Closed (Project Genie)</td>
<td>N/A</td>
</tr>
</tbody>
</table>
<p>रिसर्च देखें: <a href="https://diamond-wm.github.io/" target="_blank" rel="noreferrer">DIAMOND project page ↗</a> · <a href="https://huggingface.co/blog/nvidia/cosmos-predict-and-transfer2-5" target="_blank" rel="noreferrer">Cosmos blog ↗</a></p>
<p><strong>आज़माएँ:</strong> <a href="https://oasis.decart.ai/starting-point" target="_blank" rel="noreferrer">Oasis live demo ↗</a> · <a href="https://deepmind.google/blog/genie-2-a-large-scale-foundation-world-model/" target="_blank" rel="noreferrer">Genie 2 examples ↗</a></p>
<h3 id="आपको-इसकी-परवाह-क्यों-करनी-चाहिए" tabindex="-1">आपको इसकी परवाह क्यों करनी चाहिए <a class="header-anchor" href="#आपको-इसकी-परवाह-क्यों-करनी-चाहिए" aria-label="Permalink to &quot;आपको इसकी परवाह क्यों करनी चाहिए&quot;"></a></h3>
<p><strong>DIAMOND</strong> ने एक ऐसी बात साबित की जो game AI के बारे में आपकी सोच बदल देती है। आप एक agent को पूरी तरह एक generate की हुई दुनिया के अंदर train कर सकते हैं। training के लिए किसी असली game engine की ज़रूरत नहीं। AI एक diffusion मॉडल की कल्पना में खेलता है, और फिर असली game में transfer हो जाता है। इसके निहितार्थ बड़े हैं।</p>
<p><strong>Oasis</strong> एक Minecraft जैसी दुनिया real-time में चलाता है। फ़्रेम दर फ़्रेम। कोई game engine नहीं, कोई textures नहीं, कोई पहले से बने assets नहीं। बस एक transformer जो यह अनुमान लगाता है कि आगे क्या आता है। यह एक proof of concept है, पर सोचिए यह कहाँ जाता है। 500M parameter वाला वर्ज़न पहले से ओपन है।</p>
<p><strong>GameGen-X</strong> ने open-world game video के लिए सबसे बड़ा dataset रिलीज़ किया। अगर आप अपने खुद के मॉडल train करना चाहते हैं या मौजूदा मॉडलों को game जैसा content बनाने के लिए fine-tune करना चाहते हैं, तो यही आपकी शुरुआत है।</p>
<p><strong>NVIDIA Cosmos</strong> robotics और स्वचालित वाहनों के लिए बना था, पर world foundation मॉडल games के लिए भी काम करते हैं। वे physics को समझते हैं। object permanence। स्थानिक संबंध। मौजूदा ओपन लाइन Cosmos-Predict2.5 है, जो अक्टूबर 2025 में NVIDIA Open Model License के तहत रिलीज़ हुई और कमर्शियल इस्तेमाल तथा derivatives की इजाज़त देती है।</p>
<p><strong>Hunyuan-GameCraft</strong> (Tencent, अगस्त 2025) सबसे सीधे game के आकार वाला ओपन world मॉडल है। इसे 100+ AAA games की दस लाख से ज़्यादा recordings पर train किया गया और यह keyboard तथा mouse input को एक साझा control space में जोड़ता है, तो यह ऐसा interactive game video बनाता है जिसे आप सिर्फ़ देखने के बजाय सच में चलाते हैं। इस पर वही Tencent Community License है जो Hunyuan3D पर है, वही EU, UK और दक्षिण कोरिया की पाबंदी के साथ, तो वहाँ शिप करने से पहले शर्तें जाँच लें। <strong>MineWorld</strong> (Microsoft, MIT) Oasis का पूरी तरह उदार समकक्ष है: एक real-time Minecraft world मॉडल जिसे आप बिना game engine के डाउनलोड करके चला सकते हैं।</p>
<p><strong>Genie 3</strong> (DeepMind, अगस्त 2025 में घोषित) वह छलाँग है जिस पर ध्यान देना ज़रूरी है: real-time interaction वाला पहला world मॉडल, जो 24fps पर navigable 720p दुनियाएँ बनाता है जो कुछ मिनट तक एक जैसी बनी रहती हैं, साथ में 'promptable world events' जो आदेश पर मौसम बदलते हैं या objects जोड़ते हैं। यह जनवरी 2026 में US में Google AI Ultra subscribers के लिए Project Genie के रूप में जनता के लिए खुला। अब भी बंद weights, पर यह दिखाता है कि खेलने लायक, generate की हुई दुनियाएँ किस ओर बढ़ रही हैं।</p>
<p><strong>Matrix-Game 3.0</strong> (Skywork, मार्च 2026) Genie का ओपन जवाब है। यह एक memory-augmented interactive world मॉडल है जो 720p को 40fps पर real-time में stream करता है और मिनट-भर लंबे sequences में दृश्यों को एक जैसा रखता है। एक 5B distilled वर्ज़न real-time inference संभालता है, एक बड़ा 2x14B MoE वर्ज़न क्वालिटी बढ़ाता है, और weights Apache 2.0 के तहत Hugging Face पर हैं। अगर आप DeepMind का इंतज़ार करने के बजाय आज खेलने लायक generate की हुई दुनियाओं के साथ प्रयोग करना चाहते हैं, तो यही वह है जिसे आप सच में डाउनलोड कर सकते हैं।</p>
<p>आज की व्यावहारिक game development के लिए ये अब भी रिसर्च tools हैं। पर अगर आप AI-driven content, procedural generation पर काम कर रहे हैं, या बस यह सोच रहे हैं कि यह सब कहाँ जा रहा है, तो यही सीमांत है।</p>
<h2 id="large-language-models" tabindex="-1">Large Language Models <a class="header-anchor" href="#large-language-models" aria-label="Permalink to &quot;Large Language Models&quot;"></a></h2>
<p>LLMs संवाद, quest generation और game logic को चलाते हैं। और ओपन विकल्प अब सच में GPT-4 की टक्कर लेते हैं। दो साल पहले यह सच नहीं था।</p>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Org</th>
<th>Released</th>
<th>Size</th>
<th>Best For</th>
<th>License</th>
<th>Cost/1K tok</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/deepseek-ai/DeepSeek-V3" target="_blank" rel="noreferrer"><strong>DeepSeek-V3</strong></a></td>
<td>DeepSeek</td>
<td>Dec 2024</td>
<td>671B MoE (37B active)</td>
<td>Reasoning, general</td>
<td>Permissive</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://huggingface.co/deepseek-ai/DeepSeek-R1" target="_blank" rel="noreferrer"><strong>DeepSeek-R1</strong></a></td>
<td>DeepSeek</td>
<td>Jan 2025</td>
<td>Based on V3</td>
<td>Chain-of-thought</td>
<td>Permissive</td>
<td>~$0.03</td>
</tr>
<tr>
<td><a href="https://huggingface.co/deepseek-ai/DeepSeek-V3.2" target="_blank" rel="noreferrer"><strong>DeepSeek-V3.2</strong></a></td>
<td>DeepSeek</td>
<td>Dec 2025</td>
<td>Sparse attention (DSA)</td>
<td>Reasoning + tool use</td>
<td>MIT</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro" target="_blank" rel="noreferrer"><strong>DeepSeek-V4</strong></a></td>
<td>DeepSeek</td>
<td>Apr 2026</td>
<td>1.6T MoE (49B active)</td>
<td>Frontier reasoning, 1M context</td>
<td>MIT</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://huggingface.co/zai-org/GLM-5" target="_blank" rel="noreferrer"><strong>GLM-5</strong></a></td>
<td>Zhipu / Z.ai</td>
<td>Feb 2026</td>
<td>744B MoE (40B active)</td>
<td>Coding, agentic, tool use</td>
<td>MIT</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://huggingface.co/openai/gpt-oss-120b" target="_blank" rel="noreferrer"><strong>GPT-OSS</strong></a></td>
<td>OpenAI</td>
<td>Aug 2025</td>
<td>120B / 20B MoE</td>
<td>Reasoning, tool use, on-device</td>
<td>Apache 2.0</td>
<td>~$0.01</td>
</tr>
<tr>
<td><a href="https://huggingface.co/moonshotai" target="_blank" rel="noreferrer"><strong>Kimi K2</strong></a></td>
<td>Moonshot</td>
<td>2025</td>
<td>1T MoE (32B active)</td>
<td>Agentic, coding</td>
<td>Modified MIT</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://www.kimi.com/blog/kimi-k3" target="_blank" rel="noreferrer"><strong>Kimi K3</strong></a></td>
<td>Moonshot</td>
<td>Jul 2026</td>
<td>2.8T MoE (~50B active)</td>
<td>Frontier agentic, coding, 1M context, vision</td>
<td>Open weights (Jul 27)</td>
<td>~$0.03</td>
</tr>
<tr>
<td><a href="https://huggingface.co/blog/gemma3" target="_blank" rel="noreferrer"><strong>Gemma 3</strong></a></td>
<td>Google</td>
<td>2025</td>
<td>1B-27B</td>
<td>On-device, 140 languages, vision</td>
<td>Gemma</td>
<td>~$0.01</td>
</tr>
<tr>
<td><a href="https://github.com/QwenLM/Qwen3" target="_blank" rel="noreferrer"><strong>Qwen3</strong></a></td>
<td>Alibaba</td>
<td>2025</td>
<td>235B MoE (22B active)</td>
<td>Multilingual, code</td>
<td>Apache 2.0</td>
<td>~$0.01</td>
</tr>
<tr>
<td><a href="https://huggingface.co/Qwen/Qwen3-Coder-480B-A35B-Instruct" target="_blank" rel="noreferrer"><strong>Qwen3-Coder</strong></a></td>
<td>Alibaba</td>
<td>2025</td>
<td>480B MoE (35B active)</td>
<td>Agentic coding, 256K context</td>
<td>Apache 2.0</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://huggingface.co/collections/meta-llama/llama-4" target="_blank" rel="noreferrer"><strong>Llama 4</strong></a></td>
<td>Meta</td>
<td>2025</td>
<td>Various</td>
<td>Agents, up to 10M context</td>
<td>Llama Community</td>
<td>~$0.01</td>
</tr>
<tr>
<td><a href="https://github.com/QwenLM/Qwen3-VL" target="_blank" rel="noreferrer"><strong>Qwen3-VL</strong></a></td>
<td>Alibaba</td>
<td>2025</td>
<td>2B-235B</td>
<td>Vision + language</td>
<td>Apache 2.0</td>
<td>~$0.02</td>
</tr>
<tr>
<td><a href="https://internvl.github.io/blog/2025-04-11-InternVL-3.0/" target="_blank" rel="noreferrer"><strong>InternVL3</strong></a></td>
<td>Shanghai AI Lab</td>
<td>2025</td>
<td>1B-78B</td>
<td>Vision, OCR, UI grounding</td>
<td>MIT</td>
<td>~$0.02</td>
</tr>
</tbody>
</table>
<p>शुरू करें: <a href="https://huggingface.co/Qwen/Qwen3-8B" target="_blank" rel="noreferrer">Qwen3-8B on HuggingFace ↗</a> · <a href="https://huggingface.co/deepseek-ai/DeepSeek-V3" target="_blank" rel="noreferrer">DeepSeek-V3 on HuggingFace ↗</a> · <a href="https://huggingface.co/zai-org/GLM-5" target="_blank" rel="noreferrer">GLM-5 on HuggingFace ↗</a></p>
<h3 id="games-बनाने-के-लिए" tabindex="-1">games बनाने के लिए <a class="header-anchor" href="#games-बनाने-के-लिए" aria-label="Permalink to &quot;games बनाने के लिए&quot;"></a></h3>
<p><strong>Qwen3</strong> ज़्यादातर game इस्तेमालों के लिए व्यावहारिक विकल्प है। Apache 2.0 लाइसेंस, यानी आपका integration आपका अपना है। मज़बूत multilingual सपोर्ट, जो मायने रखता है अगर आप localization के बारे में सोच रहे हैं। structured instructions का पालन करने में अच्छा। 7B और 14B वेरिएंट्स consumer GPUs पर लोकल चलते हैं।</p>
<p><strong>DeepSeek-V3</strong> ज़्यादातर benchmarks पर GPT-4 की बराबरी करता है या उसे मात देता है। architecture चतुर है, 671B कुल के बावजूद हर token पर सिर्फ़ 37B parameters active होते हैं। आपको दमदार hardware (multi-GPU) चाहिए, पर क्वालिटी API निर्भरता के बिना सीमांत स्तर की है।</p>
<p><strong>DeepSeek-V3.2</strong> (दिसंबर 2025) reasoning और tool-use को एक मॉडल में समेटता है और सस्ते long-context inference के लिए DeepSeek Sparse Attention (DSA) पेश करता है, साथ में एक high-compute Speciale वेरिएंट जो शीर्ष reasoning benchmarks पर निशाना साधता है। game logic और संवाद के लिए यह V3 के मुक़ाबले मज़बूत, ज़्यादा agent-capable विकल्प है।</p>
<p><strong>DeepSeek-V4</strong> (अप्रैल 2026) ने ओपन सीमांत को फिर आगे बढ़ाया। V4-Pro एक 1.6T-parameter MoE है जिसमें हर token पर सिर्फ़ 49B active होते हैं, एक 10 लाख token का context window और चुनने लायक reasoning modes, सब MIT के तहत। V4-Flash वेरिएंट (कुल 284B, 13B active) 1M context को एक ऐसे पैकेज में बनाए रखता है जिसे पूरे GPU cluster की ज़रूरत नहीं। अगर आप जटिल quest logic या लंबे game-state context के लिए आज एक ओपन मॉडल चुन रहे हैं, तो सीमा यहीं है।</p>
<p><strong>GLM-5</strong> (Zhipu AI, फ़रवरी 2026) coding और agentic काम के लिए मात देने लायक ओपन मॉडल है, और GLM-5.2 रिफ्रेश ने इसके tool-use और long-horizon planning स्कोर को बंद सीमांत के करीब पहुँचा दिया। यह एक 744B-parameter MoE है जिसमें हर token पर 40B active होते हैं, एक 200K-token context, और MIT लाइसेंस। Z.ai पहली सार्वजनिक रूप से लिस्टेड foundation-model कंपनी है और अपने hosted API की कीमत आक्रामक रखती है (करीब $1.40 प्रति दस लाख input tokens), पर weights Hugging Face पर हैं अगर आप ख़ुद self-host करना चाहें। अगर आपका game quest scripting, tool-calling agents, या code-driven systems के लिए किसी LLM पर टिका है, तो GLM-5 एक मज़बूत OpenAI विकल्प है जिस पर आपका पूरा नियंत्रण रहता है।</p>
<p><strong>GPT-OSS</strong> (OpenAI, अगस्त 2025) OpenAI की पहली ओपन-weight रिलीज़ है, और यह ठीक इस गाइड के विषय पर बैठती है। gpt-oss-120b मॉडल एक ही 80GB GPU पर करीब o4-mini स्तर पर reasoning करता है और tools को कॉल करता है, और gpt-oss-20b एक 16GB consumer कार्ड पर चलता है, दोनों Apache 2.0 के तहत। अगर आप NPC logic या tool-using agents के लिए एक पश्चिमी-lab मॉडल चाहते हैं जिसे आप self-host कर सकें, तो यही वह है।</p>
<p><strong>Kimi K2</strong> (Moonshot) GLM-5 और DeepSeek के साथ-साथ दूसरा ओपन agentic भारी-भरकम विकल्प है। यह 32B active वाला एक 1-ट्रिलियन-parameter MoE है, coding और tool use के लिए ख़ूब ट्यून किया हुआ, और इसका Modified MIT लाइसेंस सिर्फ़ 100M मासिक users से ऊपर पाबंदियाँ जोड़ता है, तो indies के लिए यह असल में MIT जैसा ही है। जब किसी agent को कई steps में योजना बनानी हो तब इसकी ओर जाएँ।</p>
<p><strong>Kimi K3</strong> (Moonshot, जुलाई 2026) अब तक घोषित सबसे बड़ा open-weight मॉडल है, और यह closed frontier के जितना क़रीब पहुँचा है, उतना पहले कोई ओपन मॉडल नहीं पहुँचा। यह 2.8-ट्रिलियन-parameter MoE है जिसमें हर token पर सिर्फ़ क़रीब 50B active होते हैं (896 experts में से 16), 1M-token context और native vision के साथ, और यह दो नए attention डिज़ाइनों, Kimi Delta Attention और Attention Residuals, पर बना है। Moonshot के अपने आँकड़ों में यह coding और agentic benchmarks पर Claude Opus 4.8 और GPT-5.5 से आगे है, सिर्फ़ सबसे ऊपर के proprietary मॉडलों से पीछे। पेच है इसका आकार: weights 27 जुलाई 2026 को MXFP4 में क़रीब 1.4TB के आएँगे, तो self-hosting का मतलब multi-node GPU cluster है, और ज़्यादातर टीमें इसे API से इस्तेमाल करेंगी ($3 प्रति मिलियन input tokens, $15 प्रति मिलियन output)। जो agents आप ख़ुद चला सकें, उनके लिए K2 अब भी Moonshot का व्यावहारिक विकल्प है, पर K3 ने बदल दिया है कि सबसे ऊपर &quot;open&quot; का मतलब क्या हो सकता है।</p>
<p><strong>Gemma 3</strong> (Google) तब सबसे सही बैठता है जब आपको player के hardware पर चलाना हो या व्यापक रूप से localize करना हो। यह 1B, 4B, 12B और 27B आकारों में आता है, तो यह 8GB कार्ड से ऊपर तक स्केल करता है, 140 भाषाएँ संभालता है, function calling करता है, और 4B-और-ऊपर वेरिएंट्स images भी देखते हैं, तो यह एक छोटे vision मॉडल का दोहरा काम भी करता है। Gemma लाइसेंस कमर्शियल इस्तेमाल की इजाज़त देता है।</p>
<p><strong>Qwen3-Coder</strong> (Alibaba) समर्पित ओपन coding मॉडल है, जो ज़्यादातर इस्तेमालों के लिए पुरानी DeepSeek-Coder लाइन की जगह ले लेता है। यह 35B active वाला एक 480B MoE है, एक 256K नेटिव context (1M तक बढ़ने लायक), Apache 2.0, और यह agentic coding benchmarks पर Claude-Sonnet क्लास में है। अगर आपका game code generate करता है या चलाता है, तो यही ओपन सीमा है। यूरोप का <strong>Mistral</strong> परिवार (coding के लिए Devstral, on-device के लिए Mistral Small 3.x, दोनों Apache 2.0) एक ठोस self-hostable विकल्प है।</p>
<p><strong>Qwen3-VL</strong> vision understanding जोड़ता है, 2B से 235B तक dense और MoE आकारों में, Apache 2.0 के तहत। उन games के लिए काम का जिन्हें screenshots का विश्लेषण करना, player द्वारा बनाई गई content समझना, या camera input प्रोसेस करना होता है। 8B वेरिएंट एक ही GPU पर चलता है। <strong>InternVL3</strong> (Shanghai AI Lab, MIT) दूसरा मज़बूत ओपन vision-language विकल्प है, ख़ासकर OCR और UI grounding में अच्छा, जो तब मायने रखता है जब आपके tooling को game interfaces पढ़ने हों; Mistral का <strong>Pixtral 12B</strong> (Apache 2.0) एक हल्का कमर्शियल-सेफ़ विकल्प है।</p>
<p>on-device NPCs के लिए, यानी ऐसे किरदार जो cloud calls के बिना real-time में जवाब देते हैं, NVIDIA ACE के ज़रिए <strong>Qwen3-8B</strong> अभी सबसे व्यावहारिक रास्ता है। यह आपके game के साथ player के hardware पर चलता है।</p>
<h2 id="utility-models" tabindex="-1">Utility Models <a class="header-anchor" href="#utility-models" aria-label="Permalink to &quot;Utility Models&quot;"></a></h2>
<p>ये content सीधे generate नहीं करते, पर ये आपकी pipelines को काम करने लायक बनाते हैं।</p>
<p><img src="/img/ai-samples/sam2-sample.jpg" alt="SAM 2 segmentation">
<em>SAM 2 images और video में किसी भी object को segment करता है, एक बार क्लिक करें, एकदम सही mask पाएँ</em></p>
<table tabindex="0">
<thead>
<tr>
<th>Model</th>
<th>Org</th>
<th>Released</th>
<th>What It Does</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/facebookresearch/sam2" target="_blank" rel="noreferrer"><strong>SAM 2</strong></a></td>
<td>Meta</td>
<td>Aug 2024</td>
<td>Segment anything in images and video</td>
</tr>
<tr>
<td><a href="https://github.com/apple/ml-depth-pro" target="_blank" rel="noreferrer"><strong>Depth Pro</strong></a></td>
<td>Apple</td>
<td>Oct 2024</td>
<td>Metric depth from single image</td>
</tr>
<tr>
<td><a href="https://github.com/nerfstudio-project/gsplat" target="_blank" rel="noreferrer"><strong>gsplat</strong></a></td>
<td>Nerfstudio</td>
<td>2024+</td>
<td>Gaussian splatting, CUDA accelerated</td>
</tr>
</tbody>
</table>
<p><strong>SAM 2</strong> video में objects को real-time में segment करता है। किसी चीज़ पर क्लिक करें, एकदम सही mask पाएँ। rotoscoping, compositing, या footage से objects निकालकर game assets के रूप में इस्तेमाल करने के लिए काम का। <a href="https://github.com/huggingface/sam2-studio" target="_blank" rel="noreferrer">Try SAM 2 ↗</a></p>
<p>Apple का <strong>Depth Pro</strong> एकल images से एक सेकंड से कम में metric depth maps बनाता है। इससे बहुत कुछ खुलता है: parallax effects के साथ 2D art को 2.5D में बदलना, 3D reconstruction के लिए depth data generate करना, सपाट images से normal maps बनाना। <a href="https://huggingface.co/apple/DepthPro-hf" target="_blank" rel="noreferrer">Depth Pro on HuggingFace ↗</a></p>
<p><strong>gsplat</strong> Gaussian splatting का तेज़ implementation है। अगर आप games के लिए असली environments कैप्चर कर रहे हैं, photogrammetry, environment scans, तो यही वह library है जो इसे व्यावहारिक बनाती है।</p>
<h2 id="मैं-असल-में-क्या-इस्तेमाल-करूँगा" tabindex="-1">मैं असल में क्या इस्तेमाल करूँगा <a class="header-anchor" href="#मैं-असल-में-क्या-इस्तेमाल-करूँगा" aria-label="Permalink to &quot;मैं असल में क्या इस्तेमाल करूँगा&quot;"></a></h2>
<p>अगर आप आज एक game project शुरू कर रहे हैं, तो जो stack सही बैठता है वह यह है:</p>
<p><strong>Textures और sprites</strong>: FLUX.1 [schnell], Apache 2.0, तेज़ iteration, ऐसी क्वालिटी जो शिप होती है</p>
<p><strong>Concept art</strong>: style नियंत्रण के लिए LoRAs के साथ SD 3.5 Large</p>
<p><strong>3D assets</strong>: textured meshes के लिए Hunyuan3D 2.1 या TRELLIS.2, फ़ोटो से शुरू करने पर SAM 3D, फिर cleanup के लिए Blender</p>
<p><strong>Auto-rigging</strong>: generate की हुई meshes को skeleton और skin देने के लिए Mixamo पर निर्भर रहने के बजाय UniRig या NVIDIA SOMA-X (दोनों ओपन)</p>
<p><strong>Sound effects</strong>: Stable Audio का ओपन Small-SFX मॉडल, लोकल चलता है, कमर्शियल लाइसेंस वाला</p>
<p><strong>Music</strong>: prototypes के लिए ACE-Step, फिर फ़ाइनल production के लिए एक composer को साथ लें</p>
<p><strong>Voice</strong>: cloning और ambient संवाद के लिए Qwen3-TTS (Apache 2.0), जब किसी line में असली भावना चाहिए तब Chatterbox (MIT), जो lines मायने रखती हैं उनके लिए voice actors</p>
<p><strong>NPC संवाद</strong>: लोकल Qwen3-8B, या जटिल reasoning और tool use के लिए एक self-hostable cloud LLM (GLM-5 या DeepSeek-V4)</p>
<p><strong>Video (cutscenes)</strong>: लोकल Mochi 1, और जब फ़ाइनल क्वालिटी चाहिए तब cloud पर HunyuanVideo</p>
<p>इस सब के बारे में बात यह है: आम गलती है हर चीज़ के लिए AI इस्तेमाल करने की कोशिश करना। ये tools हैं, विकल्प नहीं। ये उबाऊ हिस्सों को छोटा कर देते हैं, iteration, variations, placeholder assets, ताकि आप अपना समय उन रचनात्मक फ़ैसलों पर लगा सकें जो सच में मायने रखते हैं। वे हिस्से जो आपके game को आपका बनाते हैं।</p>
<h2 id="hardware-की-असलियत-की-जाँच" tabindex="-1">Hardware की असलियत की जाँच <a class="header-anchor" href="#hardware-की-असलियत-की-जाँच" aria-label="Permalink to &quot;Hardware की असलियत की जाँच&quot;"></a></h2>
<p>इस सब को चलाने के लिए आपको असल में क्या चाहिए, उस पर ईमानदार हो जाते हैं:</p>
<p><strong>8GB VRAM</strong> (RTX 3060, 4060): SD 1.5/SDXL, Wan 2.1 small, AudioGen, Fish Speech, छोटे LLMs (7B quantized)। यह gaming laptop का दायरा है, और शुरुआत करने के लिए काफ़ी है।</p>
<p><strong>12GB VRAM</strong> (RTX 3080, 4070): SD 3.5, FLUX schnell, Mochi 1, MusicGen, TripoSR, Qwen 14B quantized। यहाँ बात आरामदेह हो जाती है। ज़्यादातर काम के मॉडल यहीं चलते हैं।</p>
<p><strong>24GB VRAM</strong> (RTX 3090, 4090): ज़्यादातर मॉडल full precision पर, InstantMesh, बड़े LLMs। अगर आप इस workflow को लेकर गंभीर हैं, तो यही सबसे सही जगह है।</p>
<p><strong>48-80GB VRAM</strong> (A100, H100): HunyuanVideo, LTX-2, DeepSeek-V3, production-scale generation। एंटरप्राइज़ hardware। आप इसे ख़रीद नहीं रहे, किराए पर ले रहे हैं।</p>
<p>RunPod, Lambda Labs, या Modal पर cloud instances A100s के लिए $2-4/घंटा का खर्च होता है। कभी-कभार के इस्तेमाल के लिए, यह hardware से सस्ता है। जब फ़ाइनल क्वालिटी चाहिए तब चालू करें, काम ख़त्म होने पर बंद कर दें।</p>
<p><strong>इस गाइड में लागत के अनुमानों के बारे में</strong>: प्रति-generation लागत मानती है कि inference cloud GPUs पर self-hosted है ~$2-3/घंटा (A100) या ~$0.40/घंटा (RTX 4090) पर। असल लागत hardware, optimization और batch sizes के हिसाब से बदलती है। ये योजना बनाने के लिए मोटे आँकड़े हैं, आपका अनुभव अलग हो सकता है।</p>
<h2 id="_2026-में-नया-क्या-है" tabindex="-1">2026 में नया क्या है <a class="header-anchor" href="#_2026-में-नया-क्या-है" aria-label="Permalink to &quot;2026 में नया क्या है&quot;"></a></h2>
<p><strong>हाल ही में रिलीज़ हुआ</strong>: LTX-2 और LTX-2.3 ने नेटिव 4K के साथ ओपन synchronized audio-और-video दिया। Microsoft के TRELLIS.2 (दिसंबर 2025) ने ओपन img-to-3D में बढ़त बनाई, और Meta के SAM 3D (नवंबर 2025) ने single-photo 3D reconstruction को व्यावहारिक बनाया। FLUX.2 ने image generation में FLUX.1 की जगह ली, और NVIDIA के SOMA-X ने ओपन auto-rigging और retargeting दिया। 2026 की पहली छमाही ने रफ़्तार बनाए रखी: Qwen3-TTS (जनवरी) ने voice cloning को एक ठीक-ठाक Apache 2.0 ठिकाना दिया, Zhipu के GLM-5 (फ़रवरी) ने MIT के तहत एक 744B ओपन coding-और-agentic मॉडल शिप किया, Skywork के Matrix-Game 3.0 (मार्च) ने एक real-time interactive world मॉडल को ओपन weights में रखा, DeepSeek-V4 (अप्रैल) ने ओपन LLMs को MIT के तहत 1M-token context तक पहुँचाया, Stable Audio 3.0 (मई) ने licensed data पर train किए तीन ओपन audio मॉडल दिए, और Ideogram ने अपना पहला ओपन-weight image मॉडल रिलीज़ किया (जून)। फिर जुलाई में Moonshot ने Kimi K3 की घोषणा की, एक 2.8T-parameter open-weight मॉडल जो agentic benchmarks पर Claude Opus 4.8 और GPT-5.5 को पीछे छोड़ता है, और जिसके weights 27 जुलाई को आ रहे हैं।</p>
<p><strong>देखने लायक रुझान</strong>: शीर्ष labs अपने नए मॉडलों को तेज़ी से API-only रख रहे हैं, भले ही पिछले वर्ज़न ओपन रहे हों। Wan 2.5 पर बंद हुआ और 2.7 तक बंद ही रहा है, Qwen-Image 2.0 पर बंद हुआ, और Hunyuan3D 2.5 पर। ओपन इकोसिस्टम अब भी जीवंत और तेज़ है, पर &quot;नवीनतम वर्ज़न ओपन है&quot; अब कोई सुरक्षित मान्यता नहीं, तो किसी मॉडल के इर्द-गिर्द pipeline बनाने से पहले weights की उपलब्धता जाँच लें।</p>
<p>रास्ता साफ़ है: बंद मॉडलों में मौजूद हर क्षमता 6-12 महीने बाद ओपन मॉडलों में दिख जाती है। सवाल यह नहीं कि ओपन मॉडल काफ़ी अच्छे होंगे या नहीं, ज़्यादातर इस्तेमालों के लिए वे पहले से हैं। सवाल यह है कि वे कितनी तेज़ी से default बनते हैं।</p>
<p>और creators के लिए इसका मतलब यह है: जिन tools के लिए कभी एंटरप्राइज़ बजट या मासिक subscriptions चाहिए होते थे, वे अब ऐसी चीज़ बन रहे हैं जिन्हें आप बस... चला सकते हैं। अपने खुद के hardware पर। बिना किसी और की अनुमति के।</p>
<p>यही वह बदलाव है। यही वह है जिसकी ओर हम बना रहे हैं।</p>
<hr>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="game-assets-बनाने-के-लिए-सबसे-बेहतरीन-ओपन-सोर्स-ai-मॉडल-कौन-सा-है" tabindex="-1">game assets बनाने के लिए सबसे बेहतरीन ओपन-सोर्स AI मॉडल कौन सा है? <a class="header-anchor" href="#game-assets-बनाने-के-लिए-सबसे-बेहतरीन-ओपन-सोर्स-ai-मॉडल-कौन-सा-है" aria-label="Permalink to &quot;game assets बनाने के लिए सबसे बेहतरीन ओपन-सोर्स AI मॉडल कौन सा है?&quot;"></a></h3>
<p>यह asset पर निर्भर करता है। 3D मॉडल के लिए, Hunyuan3D 2026 में सबसे मज़बूत ओपन विकल्प है। 2D art और textures के लिए, FLUX क्वालिटी में आगे है। sound effects और music के लिए, ओपन audio मॉडल तेज़ी से पकड़ बना चुके हैं। कोई एकमात्र &quot;सबसे बेहतरीन&quot; मॉडल नहीं है क्योंकि games को कई तरह के asset चाहिए होते हैं, तो ज़्यादातर creators किसी एक पर निर्भर रहने के बजाय कुछ को आपस में जोड़ते हैं।</p>
<h3 id="क्या-ओपन-सोर्स-ai-मॉडल-बंद-apis-की-जगह-लेने-लायक-काफ़ी-अच्छे-हैं" tabindex="-1">क्या ओपन-सोर्स AI मॉडल बंद APIs की जगह लेने लायक काफ़ी अच्छे हैं? <a class="header-anchor" href="#क्या-ओपन-सोर्स-ai-मॉडल-बंद-apis-की-जगह-लेने-लायक-काफ़ी-अच्छे-हैं" aria-label="Permalink to &quot;क्या ओपन-सोर्स AI मॉडल बंद APIs की जगह लेने लायक काफ़ी अच्छे हैं?&quot;"></a></h3>
<p>2026 में ज़्यादातर game-asset काम के लिए, हाँ। ओपन मॉडल अब image, 3D और audio generation पर बंद APIs की बराबरी करते हैं, और आप उन्हें अपने खुद के hardware पर बिना per-call fees या अचानक pricing बदलाव के चला सकते हैं। बंद मॉडल अब भी कुछ सीमांत कामों में आगे हैं जैसे long-form video, पर यह दूरी आमतौर पर 6 से 12 महीनों में मिट जाती है।</p>
<h3 id="क्या-मैं-ये-जनरेटिव-ai-मॉडल-अपने-खुद-के-gpu-पर-चला-सकता-हूँ" tabindex="-1">क्या मैं ये जनरेटिव AI मॉडल अपने खुद के GPU पर चला सकता हूँ? <a class="header-anchor" href="#क्या-मैं-ये-जनरेटिव-ai-मॉडल-अपने-खुद-के-gpu-पर-चला-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं ये जनरेटिव AI मॉडल अपने खुद के GPU पर चला सकता हूँ?&quot;"></a></h3>
<p>इनमें से कई, हाँ। Image और audio मॉडल RTX 4090 जैसे एकल consumer GPU पर आराम से चलते हैं। बड़े video और 3D मॉडल को ज़्यादा VRAM चाहिए और अक्सर A100-क्लास का cloud GPU। ऊपर का hardware सेक्शन बताता है कि हर मॉडल को क्या चाहिए, ताकि प्रतिबद्ध होने से पहले आप योजना बना सकें।</p>
<h3 id="क्या-किसी-कमर्शियल-game-में-ai-से-बने-assets-इस्तेमाल-करना-क़ानूनी-है" tabindex="-1">क्या किसी कमर्शियल game में AI से बने assets इस्तेमाल करना क़ानूनी है? <a class="header-anchor" href="#क्या-किसी-कमर्शियल-game-में-ai-से-बने-assets-इस्तेमाल-करना-क़ानूनी-है" aria-label="Permalink to &quot;क्या किसी कमर्शियल game में AI से बने assets इस्तेमाल करना क़ानूनी है?&quot;"></a></h3>
<p>जिन ओपन-सोर्स मॉडलों को आप खुद चलाते हैं, उनके लिए आमतौर पर हाँ, पर यह मॉडल के लाइसेंस और आपकी training-data मान्यताओं पर निर्भर करता है। हमेशा ख़ास मॉडल लाइसेंस जाँचें, और जहाँ आपका platform माँगे वहाँ AI से बनी content का खुलासा करें। हम इसे कैसे संभालते हैं, यह जानने के लिए हमारी <a href="/hi/ai-content.html">AI से बनी सामग्री की नीति</a> देखें।</p>
<hr>
<h2 id="और-पढ़ें" tabindex="-1">और पढ़ें <a class="header-anchor" href="#और-पढ़ें" aria-label="Permalink to &quot;और पढ़ें&quot;"></a></h2>
<ul>
<li><a href="/hi/blog/2026-01-18-ai-controversy-and-post-ai-economy.html">AI controversy, trust, और post-AI economy</a> — games में AI पर हमारी राय</li>
<li><a href="/hi/ai-content.html">AI से बनी सामग्री की नीति</a> — हम AI खुलासे को कैसे संभालते हैं</li>
<li><a href="/hi/guides/web-games-stack-2026.html">2026 में Web Games Tech Stack</a> — games के लिए WebGL, WebGPU और Wasm</li>
<li><a href="/hi/guides/browser-3d-open-world-tech.html">Browser 3D Open World Tech</a> — browser दुनियाओं में AI से बने 3D assets इस्तेमाल करना</li>
<li><a href="/hi/guides/landscape-generation-browser.html">Browser Open Worlds के लिए Landscape Generation</a> — diffusion-आधारित terrain synthesis</li>
<li><a href="/hi/guides/game-assets-guide.html">मुफ़्त Game Assets कहाँ मिलें</a> — AI generation के साथ-साथ पारंपरिक asset स्रोत</li>
<li><a href="/hi/tutorials/agentic-code-tools.html">Agentic AI code tools</a> — सिर्फ़ assets बनाने के लिए नहीं, बल्कि game code लिखने के लिए AI</li>
</ul>
]]></content:encoded>
            <enclosure url="https://app.cinevva.com/img/ai-samples/flux-sample.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Game Asset Licenses समझाई गईं (CC0, CC-BY, Royalty-Free)]]></title>
            <link>https://app.cinevva.com/hi/guides/game-asset-licenses</link>
            <guid>https://app.cinevva.com/hi/guides/game-asset-licenses</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Game asset licenses कैसे काम करती हैं, सरल भाषा में - CC0, CC-BY, CC-BY-SA, royalty-free, editorial, MIT, और GPL - और कौन सी commercial game में इस्तेमाल करने के लिए सुरक्षित हैं।]]></description>
            <content:encoded><![CDATA[<h1 id="game-asset-licenses-समझाई-गईं-cc0-cc-by-royalty-free" tabindex="-1">Game Asset Licenses समझाई गईं (CC0, CC-BY, Royalty-Free) <a class="header-anchor" href="#game-asset-licenses-समझाई-गईं-cc0-cc-by-royalty-free" aria-label="Permalink to &quot;Game Asset Licenses समझाई गईं (CC0, CC-BY, Royalty-Free)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जून 2026.</em></p>
<p>Asset licenses के बारे में वह सब कुछ जो आपको जानना चाहिए, ताकि आप बिना किसी कानूनी परेशानी के अपनी games में free और paid assets भरोसे के साथ इस्तेमाल कर सकें।</p>
<h2 id="licenses-क्यों-मायने-रखती-हैं" tabindex="-1">Licenses क्यों मायने रखती हैं <a class="header-anchor" href="#licenses-क्यों-मायने-रखती-हैं" aria-label="Permalink to &quot;Licenses क्यों मायने रखती हैं&quot;"></a></h2>
<p>हर रचनात्मक काम - 3D models, textures, sounds, music - copyright से सुरक्षित होता है। डिफ़ॉल्ट रूप से इसका मालिक creator होता है। एक <strong>license</strong> creator की वह अनुमति है जो आपको उनके काम को कुछ खास शर्तों के तहत इस्तेमाल करने देती है।</p>
<p><strong>License को समझे बिना assets इस्तेमाल करने से ये हो सकता है:</strong></p>
<ul>
<li>आपकी game पर DMCA takedowns</li>
<li>Copyright holders की तरफ से कानूनी कार्रवाई</li>
<li>App stores से जबरन हटा दिया जाना</li>
<li>आर्थिक नुकसान</li>
</ul>
<p><strong>अच्छी खबर:</strong> ज़्यादातर game assets की licenses साफ और उदार होती हैं। आपको बस यह समझना है कि वे किस बात की अनुमति देती हैं।</p>
<hr>
<h2 id="license-quick-reference" tabindex="-1">License Quick Reference <a class="header-anchor" href="#license-quick-reference" aria-label="Permalink to &quot;License Quick Reference&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>License</th>
<th>Commercial Use</th>
<th>Attribution</th>
<th>Modify</th>
<th>Share Alike</th>
<th>Providers</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>CC0</strong></td>
<td>✅ हाँ</td>
<td>❌ नहीं</td>
<td>✅ हाँ</td>
<td>❌ नहीं</td>
<td>Poly Haven, Kenney, Quaternius, AmbientCG</td>
</tr>
<tr>
<td><strong>CC-BY</strong></td>
<td>✅ हाँ</td>
<td>✅ ज़रूरी</td>
<td>✅ हाँ</td>
<td>❌ नहीं</td>
<td>Sketchfab, OpenGameArt, Freesound</td>
</tr>
<tr>
<td><strong>CC-BY-SA</strong></td>
<td>✅ हाँ</td>
<td>✅ ज़रूरी</td>
<td>✅ हाँ</td>
<td>✅ ज़रूरी</td>
<td>OpenGameArt, कुछ Freesound</td>
</tr>
<tr>
<td><strong>CC-BY-NC</strong></td>
<td>❌ नहीं</td>
<td>✅ ज़रूरी</td>
<td>✅ हाँ</td>
<td>❌ नहीं</td>
<td>कुछ Sketchfab, itch.io</td>
</tr>
<tr>
<td><strong>CC-BY-NC-SA</strong></td>
<td>❌ नहीं</td>
<td>✅ ज़रूरी</td>
<td>✅ हाँ</td>
<td>✅ ज़रूरी</td>
<td>अलग-अलग</td>
</tr>
<tr>
<td><strong>Royalty-Free</strong></td>
<td>✅ हाँ</td>
<td>❌ आमतौर पर नहीं</td>
<td>✅ हाँ</td>
<td>❌ नहीं</td>
<td>Synty, CGTrader, TurboSquid</td>
</tr>
<tr>
<td><strong>Editorial Only</strong></td>
<td>❌ नहीं*</td>
<td>अलग-अलग</td>
<td>⚠️ सीमित</td>
<td>❌ नहीं</td>
<td>TurboSquid (कुछ)</td>
</tr>
<tr>
<td><strong>MIT</strong></td>
<td>✅ हाँ</td>
<td>✅ ज़रूरी</td>
<td>✅ हाँ</td>
<td>❌ नहीं</td>
<td>Three.js, pmndrs</td>
</tr>
<tr>
<td><strong>GPL</strong></td>
<td>✅ हाँ</td>
<td>✅ ज़रूरी</td>
<td>✅ हाँ</td>
<td>✅ ज़रूरी</td>
<td>कुछ OpenGameArt</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="creative-commons-licenses" tabindex="-1">Creative Commons Licenses <a class="header-anchor" href="#creative-commons-licenses" aria-label="Permalink to &quot;Creative Commons Licenses&quot;"></a></h2>
<p>Free game assets के लिए Creative Commons (CC) licenses सबसे आम हैं। ये मानकीकृत, अंतरराष्ट्रीय स्तर पर मान्य, और समझने में आसान हैं।</p>
<h3 id="cc0-public-domain-dedication" tabindex="-1">CC0 - Public Domain Dedication <a class="header-anchor" href="#cc0-public-domain-dedication" aria-label="Permalink to &quot;CC0 - Public Domain Dedication&quot;"></a></h3>
<p><strong>सबसे उदार license। इसे ऐसे मानें जैसे कोई copyright है ही नहीं।</strong></p>
<table tabindex="0">
<thead>
<tr>
<th>आप क्या कर सकते हैं</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Commercially इस्तेमाल करना</td>
<td>✅</td>
</tr>
<tr>
<td>Closed-source games में इस्तेमाल करना</td>
<td>✅</td>
</tr>
<tr>
<td>Modify, remix, transform</td>
<td>✅</td>
</tr>
<tr>
<td>Distribute और share करना</td>
<td>✅</td>
</tr>
<tr>
<td>बिना credit के इस्तेमाल करना</td>
<td>✅</td>
</tr>
<tr>
<td>अपना काम बताकर दावा करना</td>
<td>⚠️ कानूनी तौर पर हाँ, नैतिक रूप से ठीक नहीं</td>
</tr>
</tbody>
</table>
<p><strong>सरल भाषा में:</strong> जो चाहें करें। कोई पाबंदी नहीं। कोई attribution ज़रूरी नहीं।</p>
<p><strong>CC0 इस्तेमाल करने वाले Providers:</strong></p>
<ul>
<li>Poly Haven (सभी assets)</li>
<li>Kenney (सभी assets)</li>
<li>Quaternius (सभी assets)</li>
<li>AmbientCG (सभी assets)</li>
<li>कुछ OpenGameArt, Freesound, Sketchfab</li>
</ul>
<p><strong>इस्तेमाल का उदाहरण:</strong> Kenney से एक spaceship डाउनलोड करें, उसे modify करें, अपनी game को $20 में बेचें, और Kenney का नाम कहीं न लें। पूरी तरह कानूनी।</p>
<p><strong>Creators CC0 क्यों चुनते हैं:</strong> अपनाव को ज़्यादा से ज़्यादा बढ़ाने के लिए। कई creators चाहते हैं कि उनका काम व्यापक रूप से इस्तेमाल हो और उन्हें attribution की परवाह नहीं होती।</p>
<hr>
<h3 id="cc-by-attribution" tabindex="-1">CC-BY - Attribution <a class="header-anchor" href="#cc-by-attribution" aria-label="Permalink to &quot;CC-BY - Attribution&quot;"></a></h3>
<p><strong>आज़ादी से इस्तेमाल करें, पर आपको credit देना ज़रूरी है।</strong></p>
<table tabindex="0">
<thead>
<tr>
<th>आप क्या कर सकते हैं</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Commercially इस्तेमाल करना</td>
<td>✅</td>
</tr>
<tr>
<td>Closed-source games में इस्तेमाल करना</td>
<td>✅</td>
</tr>
<tr>
<td>Modify, remix, transform</td>
<td>✅</td>
</tr>
<tr>
<td>Distribute और share करना</td>
<td>✅</td>
</tr>
<tr>
<td>बिना credit के इस्तेमाल करना</td>
<td>❌ Attribute करना ज़रूरी</td>
</tr>
</tbody>
</table>
<p><strong>Attribution की शर्तें:</strong></p>
<ol>
<li>Creator का नाम दें</li>
<li>License का नाम दें (CC-BY 4.0)</li>
<li>License का link दें (अगर वाजिब हो)</li>
<li>बताएं कि बदलाव किए गए या नहीं</li>
</ol>
<p><strong>सरल भाषा में:</strong> जैसे चाहें इस्तेमाल करें, पर creator को credit दें।</p>
<p><strong>Attribution कहाँ रखें:</strong></p>
<ul>
<li>आपकी game में credits screen</li>
<li>README या CREDITS.txt फ़ाइल</li>
<li>About/Legal सेक्शन</li>
<li>Game की website</li>
</ul>
<p><strong>Attribution का उदाहरण:</strong></p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>"Spaceship Model" by John Artist</span></span>
<span class="line"><span>Licensed under CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)</span></span>
<span class="line"><span>Modified: Adjusted scale and added emission texture</span></span></code></pre>
</div><p><strong>CC-BY इस्तेमाल करने वाले Providers:</strong></p>
<ul>
<li>कई Sketchfab models</li>
<li>कई OpenGameArt assets</li>
<li>कुछ Freesound audio</li>
<li>BlendSwap</li>
</ul>
<p><strong>Sketchfab के बारे में एक बात:</strong> इसका paid store बंद हो गया है और बिक्री Epic के Fab marketplace पर चली गई है, पर free Creative Commons और CC0 downloads आज भी Sketchfab पर काम करती हैं। Sketchfab ने कहा है कि free downloadable content हटने से पहले वह पहले से सूचना देगा, तो अगर आप वहाँ से CC-BY या CC0 models ले रहे हैं, तो जो ज़रूरी हो उसे पकड़कर archive कर लें, यह मानने के बजाय कि link हमेशा बना रहेगा।</p>
<hr>
<h3 id="cc-by-sa-attribution-sharealike" tabindex="-1">CC-BY-SA - Attribution ShareAlike <a class="header-anchor" href="#cc-by-sa-attribution-sharealike" aria-label="Permalink to &quot;CC-BY-SA - Attribution ShareAlike&quot;"></a></h3>
<p><strong>Credit के साथ आज़ादी से इस्तेमाल करें, पर derivatives को वही license इस्तेमाल करनी होगी।</strong></p>
<table tabindex="0">
<thead>
<tr>
<th>आप क्या कर सकते हैं</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Commercially इस्तेमाल करना</td>
<td>✅</td>
</tr>
<tr>
<td>Closed-source games में इस्तेमाल करना</td>
<td>✅ (game खुद)</td>
</tr>
<tr>
<td>Modify, remix, transform</td>
<td>✅</td>
</tr>
<tr>
<td>Distribute और share करना</td>
<td>✅</td>
</tr>
<tr>
<td>बिना credit के इस्तेमाल करना</td>
<td>❌ Attribute करना ज़रूरी</td>
</tr>
<tr>
<td>Derivatives को proprietary रखना</td>
<td>❌ वही license इस्तेमाल करनी होगी</td>
</tr>
</tbody>
</table>
<p><strong>&quot;ShareAlike&quot; वाली शर्त:</strong> अगर आप asset को modify करते हैं और modified version distribute करते हैं, तो उसे भी CC-BY-SA होना ज़रूरी है।</p>
<p><strong>Games के लिए ज़रूरी स्पष्टीकरण:</strong></p>
<ul>
<li>आपके <strong>game code</strong> को open source होने की ज़रूरत नहीं है</li>
<li>आपकी <strong>game</strong> commercial और closed-source हो सकती है</li>
<li>सिर्फ <strong>asset खुद</strong> (और उसके derivatives) को CC-BY-SA बने रहना ज़रूरी है</li>
<li>अगर कोई आपकी game से asset निकालता है, तो वह उसे CC-BY-SA के तहत इस्तेमाल कर सकता है</li>
</ul>
<p><strong>सरल भाषा में:</strong> Creator को credit दें। अगर आप asset का modified version share करते हैं, तो वह CC-BY-SA ही रहता है।</p>
<p><strong>कब सावधान रहें:</strong></p>
<ul>
<li>अगर आप asset pack या template बना रहे हैं</li>
<li>अगर आप किसी toolkit में assets फिर से बाँट रहे हैं</li>
<li>अगर आपकी game users को raw assets निकालने देती है</li>
</ul>
<hr>
<h3 id="cc-by-nc-attribution-noncommercial" tabindex="-1">CC-BY-NC - Attribution NonCommercial <a class="header-anchor" href="#cc-by-nc-attribution-noncommercial" aria-label="Permalink to &quot;CC-BY-NC - Attribution NonCommercial&quot;"></a></h3>
<p><strong>Credit के साथ free इस्तेमाल, पर commercial मकसद के लिए नहीं।</strong></p>
<table tabindex="0">
<thead>
<tr>
<th>आप क्या कर सकते हैं</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Commercially इस्तेमाल करना</td>
<td>❌ नहीं</td>
</tr>
<tr>
<td>Closed-source games में इस्तेमाल करना</td>
<td>✅ (अगर game free है)</td>
</tr>
<tr>
<td>Modify, remix, transform</td>
<td>✅</td>
</tr>
<tr>
<td>Distribute और share करना</td>
<td>✅ (non-commercially)</td>
</tr>
<tr>
<td>बिना credit के इस्तेमाल करना</td>
<td>❌ Attribute करना ज़रूरी</td>
</tr>
</tbody>
</table>
<p><strong>&quot;Commercial&quot; किसे माना जाता है?</strong></p>
<ul>
<li>❌ Game बेचना</li>
<li>❌ In-app purchases</li>
<li>❌ Game में ads</li>
<li>❌ Patreon से फंडेड game development</li>
<li>⚠️ किसी कंपनी की free game (ग्रे एरिया)</li>
<li>✅ बिना किसी monetization वाला पूरी तरह free hobby project</li>
</ul>
<p><strong>सरल भाषा में:</strong> सिर्फ़ पूरी तरह free, बिना monetization वाले projects में इस्तेमाल करें।</p>
<p><strong>सिफ़ारिश:</strong> ऐसे किसी भी project के लिए NC-licensed assets से बचें जो revenue ला सकता है। &quot;Commercial&quot; की परिभाषा बहुत व्यापक और विवादित है।</p>
<hr>
<h3 id="cc-by-nc-sa-attribution-noncommercial-sharealike" tabindex="-1">CC-BY-NC-SA - Attribution NonCommercial ShareAlike <a class="header-anchor" href="#cc-by-nc-sa-attribution-noncommercial-sharealike" aria-label="Permalink to &quot;CC-BY-NC-SA - Attribution NonCommercial ShareAlike&quot;"></a></h3>
<p><strong>सबसे पाबंदी वाली Creative Commons license।</strong></p>
<table tabindex="0">
<thead>
<tr>
<th>आप क्या कर सकते हैं</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Commercially इस्तेमाल करना</td>
<td>❌ नहीं</td>
</tr>
<tr>
<td>Closed-source games में इस्तेमाल करना</td>
<td>✅ (अगर game free है)</td>
</tr>
<tr>
<td>Modify, remix, transform</td>
<td>✅</td>
</tr>
<tr>
<td>Distribute और share करना</td>
<td>✅ (non-commercially)</td>
</tr>
<tr>
<td>बिना credit के इस्तेमाल करना</td>
<td>❌ Attribute करना ज़रूरी</td>
</tr>
<tr>
<td>Derivatives को proprietary रखना</td>
<td>❌ वही license इस्तेमाल करनी होगी</td>
</tr>
</tbody>
</table>
<p><strong>सरल भाषा में:</strong> सिर्फ़ non-commercial, credit देना ज़रूरी, और कोई भी derivatives भी NC-SA होने चाहिए।</p>
<p><strong>सिफ़ारिश:</strong> आमतौर पर game development के लिए इनसे बचें, जब तक आप पक्के न हों कि आपका project किसी भी तरह कभी monetize नहीं होगा।</p>
<hr>
<h2 id="royalty-free-licenses" tabindex="-1">Royalty-Free Licenses <a class="header-anchor" href="#royalty-free-licenses" aria-label="Permalink to &quot;Royalty-Free Licenses&quot;"></a></h2>
<p>&quot;Royalty-Free&quot; एक commercial licensing model है, Creative Commons का कोई रूप नहीं।</p>
<h3 id="royalty-free-का-असल-मतलब-क्या-है" tabindex="-1">&quot;Royalty-Free&quot; का असल मतलब क्या है <a class="header-anchor" href="#royalty-free-का-असल-मतलब-क्या-है" aria-label="Permalink to &quot;&quot;Royalty-Free&quot; का असल मतलब क्या है&quot;"></a></h3>
<p><strong>Royalty-Free ≠ Free</strong></p>
<p>&quot;Royalty-Free&quot; का मतलब है:</p>
<ul>
<li>आप <strong>एक बार</strong> भुगतान करते हैं (या किसी promotion के दौरान free पाते हैं)</li>
<li>आप इसे <strong>अनगिनत बार</strong> इस्तेमाल कर सकते हैं</li>
<li>आप <strong>per-use royalties</strong> नहीं देते</li>
</ul>
<p><strong>&quot;Rights-Managed&quot; (विकल्प) से तुलना:</strong></p>
<ul>
<li>हर खास इस्तेमाल पर भुगतान</li>
<li>कुछ media, territories, समय अवधि तक सीमित</li>
<li>ज़्यादा महंगा, ज़्यादा पाबंदी वाला</li>
</ul>
<h3 id="standard-royalty-free-शर्तें" tabindex="-1">Standard Royalty-Free शर्तें <a class="header-anchor" href="#standard-royalty-free-शर्तें" aria-label="Permalink to &quot;Standard Royalty-Free शर्तें&quot;"></a></h3>
<p>ज़्यादातर marketplaces (Synty, CGTrader, TurboSquid) मिलती-जुलती शर्तें इस्तेमाल करते हैं:</p>
<table tabindex="0">
<thead>
<tr>
<th>आप क्या कर सकते हैं</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Games में commercially इस्तेमाल करना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>कई projects में इस्तेमाल करना</td>
<td>✅ हाँ (अक्सर अनगिनत)</td>
</tr>
<tr>
<td>Modify और adapt करना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>Creator को credit देना</td>
<td>❌ आमतौर पर ज़रूरी नहीं</td>
</tr>
<tr>
<td>Raw asset file फिर से बेचना</td>
<td>❌ नहीं</td>
</tr>
<tr>
<td>Users को asset निकालने देना</td>
<td>❌ नहीं</td>
</tr>
<tr>
<td>License दूसरों को transfer करना</td>
<td>❌ नहीं</td>
</tr>
</tbody>
</table>
<p><strong>मुख्य पाबंदियाँ:</strong></p>
<ol>
<li><strong>कोई redistribution नहीं</strong> - asset files न तो बाँट सकते हैं न बेच सकते हैं</li>
<li><strong>कोई extraction नहीं</strong> - इसे ऐसे &quot;incorporated&quot; होना चाहिए कि users आसानी से न निकाल सकें</li>
<li><strong>एक licensee</strong> - license आपके/आपकी team के लिए है, transfer नहीं हो सकती</li>
</ol>
<p><strong>सरल भाषा में:</strong> इसे अपनी games में इस्तेमाल करें, पर दूसरों को raw files न लेने दें।</p>
<h3 id="synty-studios-license" tabindex="-1">Synty Studios License <a class="header-anchor" href="#synty-studios-license" aria-label="Permalink to &quot;Synty Studios License&quot;"></a></h3>
<p>Synty अब दो license models देता है: एक <strong>one-time purchase license</strong> (जो खास packs आप खरीदते हैं उन पर हमेशा के अधिकार) और एक <strong>Standard Subscription license</strong> (जब तक आपका subscription चालू है, पूरी library तक पहुँच)। भुगतान होने के बाद दोनों commercial इस्तेमाल के लिए royalty-free हैं।</p>
<p>One-time purchase शर्तें:</p>
<ul>
<li>✅ अनगिनत commercial projects में इस्तेमाल करें</li>
<li>✅ Assets को आज़ादी से modify करें</li>
<li>✅ हर खरीद पर 5 seats (team members) (Humble Bundle copies में 1 seat शामिल होती है)</li>
<li>❌ अपनी seated team के बाहर assets को न तो फिर से बेच सकते हैं, न redistribute कर सकते हैं, न share कर सकते हैं</li>
<li>❌ Asset flipping (मामूली बदलाव कर फिर से बेचना) में इस्तेमाल नहीं कर सकते</li>
<li>❌ Synty का नाम या logo इस्तेमाल नहीं कर सकते, या यह दावा नहीं कर सकते कि assets आपने बनाए</li>
<li>❌ Assets को generative-AI training datasets, NFTs/blockchain products, या metaverse products में शामिल नहीं कर सकते (इनके लिए एक custom license चाहिए)</li>
</ul>
<h3 id="cgtrader-royalty-free-license" tabindex="-1">CGTrader Royalty-Free License <a class="header-anchor" href="#cgtrader-royalty-free-license" aria-label="Permalink to &quot;CGTrader Royalty-Free License&quot;"></a></h3>
<ul>
<li>✅ Games, films, VR/AR में commercial इस्तेमाल</li>
<li>✅ Modify और adapt करना</li>
<li>❌ Model file न बेच सकते हैं न दे सकते हैं</li>
<li>❌ Users को model निकालने नहीं दे सकते</li>
<li>⚠️ कुछ models &quot;No AI&quot; चिह्नित होते हैं - ML training के लिए इस्तेमाल नहीं कर सकते</li>
</ul>
<h3 id="turbosquid-3d-model-license" tabindex="-1">TurboSquid 3D Model License <a class="header-anchor" href="#turbosquid-3d-model-license" aria-label="Permalink to &quot;TurboSquid 3D Model License&quot;"></a></h3>
<ul>
<li>✅ Commercial इस्तेमाल (&quot;Editorial&quot; चिह्नित को छोड़कर)</li>
<li>✅ Modify और adapt करना</li>
<li>✅ निजी/धर्मार्थ इस्तेमाल के लिए 5 तक physical prints</li>
<li>❌ Model files redistribute नहीं कर सकते</li>
<li>❌ Logo/trademark में इस्तेमाल नहीं कर सकते</li>
<li>⚠️ &quot;Editorial Only&quot; label के लिए जाँच करें</li>
<li>⚠️ Depicted IP (brand logos) के लिए जाँच करें</li>
</ul>
<hr>
<h2 id="editorial-use-only" tabindex="-1">Editorial Use Only <a class="header-anchor" href="#editorial-use-only" aria-label="Permalink to &quot;Editorial Use Only&quot;"></a></h2>
<p>कुछ assets &quot;Editorial Use Only&quot; चिह्नित होते हैं - इसे समझना ज़रूरी है।</p>
<h3 id="इसका-मतलब-क्या-है" tabindex="-1">इसका मतलब क्या है <a class="header-anchor" href="#इसका-मतलब-क्या-है" aria-label="Permalink to &quot;इसका मतलब क्या है&quot;"></a></h3>
<p>&quot;Editorial&quot; इस्तेमाल में शामिल हैं:</p>
<ul>
<li>News reporting</li>
<li>शैक्षिक content</li>
<li>Documentary</li>
<li>टिप्पणी और आलोचना</li>
</ul>
<p><strong>Editorial नहीं है:</strong></p>
<ul>
<li>Commercial games</li>
<li>Advertising</li>
<li>Marketing सामग्री</li>
<li>बिक्री के लिए products</li>
</ul>
<h3 id="assets-पर-यह-label-क्यों-लगता-है" tabindex="-1">Assets पर यह label क्यों लगता है <a class="header-anchor" href="#assets-पर-यह-label-क्यों-लगता-है" aria-label="Permalink to &quot;Assets पर यह label क्यों लगता है&quot;"></a></h3>
<p>आमतौर पर इसलिए कि उनमें होते हैं:</p>
<ul>
<li><strong>Trademarks</strong> - Brand logos (Nike, Apple, आदि)</li>
<li><strong>Likenesses</strong> - असली लोगों के चेहरे</li>
<li><strong>Copyrighted designs</strong> - Car designs, product designs</li>
<li><strong>Intellectual property</strong> - Characters, पहचानी जा सकने वाली चीज़ें</li>
</ul>
<h3 id="उदाहरण" tabindex="-1">उदाहरण <a class="header-anchor" href="#उदाहरण" aria-label="Permalink to &quot;उदाहरण&quot;"></a></h3>
<p>एक Ferrari का 3D model &quot;Editorial Only&quot; हो सकता है क्योंकि:</p>
<ul>
<li>Ferrari का design सुरक्षित है</li>
<li>इसे game में इस्तेमाल करना समर्थन का संकेत दे सकता है</li>
<li>Commercial इस्तेमाल के लिए Ferrari की अनुमति चाहिए</li>
</ul>
<p><strong>सिफ़ारिश:</strong> Game development के लिए &quot;Editorial Only&quot; assets से पूरी तरह बचें। मूल या ठीक से licensed विकल्प इस्तेमाल करें।</p>
<hr>
<h2 id="software-licenses-mit-gpl-apache" tabindex="-1">Software Licenses (MIT, GPL, Apache) <a class="header-anchor" href="#software-licenses-mit-gpl-apache" aria-label="Permalink to &quot;Software Licenses (MIT, GPL, Apache)&quot;"></a></h2>
<p>ये मुख्य रूप से code पर लागू होती हैं पर कभी-कभी assets को भी कवर करती हैं।</p>
<h3 id="mit-license" tabindex="-1">MIT License <a class="header-anchor" href="#mit-license" aria-label="Permalink to &quot;MIT License&quot;"></a></h3>
<p><strong>बहुत उदार। Code और code से जुड़े assets के लिए आम।</strong></p>
<table tabindex="0">
<thead>
<tr>
<th>आप क्या कर सकते हैं</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Commercially इस्तेमाल करना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>Modify करना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>Distribute करना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>Proprietary रखना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>Attribution</td>
<td>✅ ज़रूरी (license file में)</td>
</tr>
</tbody>
</table>
<p><strong>Attribution की शर्त:</strong> मूल license text अपने project में कहीं शामिल करें (आमतौर पर LICENSES file या about screen में)।</p>
<p><strong>MIT notice का उदाहरण:</strong></p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>The MIT License (MIT)</span></span>
<span class="line"><span>Copyright (c) 2024 Original Author</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Permission is hereby granted, free of charge, to any person obtaining a copy...</span></span></code></pre>
</div><p><strong>MIT इस्तेमाल करने वाले Assets:</strong></p>
<ul>
<li>Three.js के उदाहरण</li>
<li>pmndrs/vanilla effects</li>
<li>Assets वाले कई npm packages</li>
</ul>
<h3 id="gpl-gnu-general-public-license" tabindex="-1">GPL (GNU General Public License) <a class="header-anchor" href="#gpl-gnu-general-public-license" aria-label="Permalink to &quot;GPL (GNU General Public License)&quot;"></a></h3>
<p><strong>Copyleft license। Derivatives को भी GPL होना ज़रूरी है।</strong></p>
<table tabindex="0">
<thead>
<tr>
<th>आप क्या कर सकते हैं</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Commercially इस्तेमाल करना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>Modify करना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>Distribute करना</td>
<td>✅ हाँ</td>
</tr>
<tr>
<td>Proprietary रखना</td>
<td>❌ नहीं (अगर distribute कर रहे हैं)</td>
</tr>
<tr>
<td>Attribution</td>
<td>✅ ज़रूरी</td>
</tr>
</tbody>
</table>
<p><strong>वह पेंच:</strong> अगर आप GPL-licensed काम (या derivatives) distribute करते हैं, तो आपको ये करना होगा:</p>
<ul>
<li>Source उपलब्ध कराना</li>
<li>इसे GPL के तहत license करना</li>
<li>पूरा GPL license text शामिल करना</li>
</ul>
<p><strong>Games के लिए:</strong> distributed game में GPL assets इस्तेमाल करना जटिल है। शायद game खुद को GPL होना पड़े। अगर पक्का न हो तो किसी वकील से सलाह लें।</p>
<p><strong>सिफ़ारिश:</strong> Commercial games के लिए GPL-licensed assets से बचें, जब तक आप इसके सभी परिणाम पूरी तरह न समझ लें।</p>
<hr>
<h2 id="व्यावहारिक-दिशानिर्देश" tabindex="-1">व्यावहारिक दिशानिर्देश <a class="header-anchor" href="#व्यावहारिक-दिशानिर्देश" aria-label="Permalink to &quot;व्यावहारिक दिशानिर्देश&quot;"></a></h2>
<h3 id="license-के-हिसाब-से-assets-चुनना-सुझाया-गया-क्रम" tabindex="-1">License के हिसाब से Assets चुनना (सुझाया गया क्रम) <a class="header-anchor" href="#license-के-हिसाब-से-assets-चुनना-सुझाया-गया-क्रम" aria-label="Permalink to &quot;License के हिसाब से Assets चुनना (सुझाया गया क्रम)&quot;"></a></h3>
<ol>
<li><strong>CC0</strong> - कोई पाबंदी नहीं, कोई चिंता नहीं</li>
<li><strong>MIT</strong> - License text शामिल करें, आप तैयार हैं</li>
<li><strong>Royalty-Free</strong> - Standard commercial शर्तें, खास license पढ़ें</li>
<li><strong>CC-BY</strong> - Attribute करना ज़रूरी, पर बाकी सब free</li>
<li><strong>CC-BY-SA</strong> - Attribution + ShareAlike, ज़्यादातर games के लिए ठीक</li>
<li><strong>CC-BY-NC</strong> - सिर्फ़ तब अगर आपका project 100% non-commercial है</li>
<li><strong>GPL</strong> - तब तक बचें जब तक आप अपनी game को open source नहीं रखना चाहते</li>
<li><strong>Editorial Only</strong> - Games में कभी इस्तेमाल न करें</li>
</ol>
<h3 id="एक-credits-system-बनाना" tabindex="-1">एक Credits System बनाना <a class="header-anchor" href="#एक-credits-system-बनाना" aria-label="Permalink to &quot;एक Credits System बनाना&quot;"></a></h3>
<p>CC0 assets के लिए भी, credits बनाए रखना अच्छी आदत है:</p>
<p><strong>1. एक CREDITS.md file बनाएं:</strong></p>
<div class="language-markdown vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">markdown</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold"># Asset Credits</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold">## 3D Models</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Spaceship: Kenney (https://kenney.nl) - CC0</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Tree Pack: Quaternius (https://quaternius.com) - CC0</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Robot Character: "RoboHelper" by @artist123 on Sketchfab - CC-BY 4.0</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  Modified: Reduced polygon count, changed colors</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold">## Textures</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Wood Floor: Poly Haven (https://polyhaven.com/a/wood_floor_01) - CC0</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Metal Panel: AmbientCG - CC0</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold">## Audio</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Laser Sound: "pew_laser" by sounduser on Freesound - CC-BY 3.0</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Background Music: Composed by [Your Name] - All Rights Reserved</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold">## Code/Shaders</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Soft Shadows: pmndrs/vanilla - MIT License</span></span>
<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Post-processing: Three.js Examples - MIT License</span></span></code></pre>
</div><p><strong>2. एक in-game credits screen जोड़ें:</strong></p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>CREDITS</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Models &#x26; Textures</span></span>
<span class="line"><span>- Poly Haven (polyhaven.com)</span></span>
<span class="line"><span>- Kenney (kenney.nl)</span></span>
<span class="line"><span>- Quaternius (quaternius.com)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Audio</span></span>
<span class="line"><span>- Freesound contributors (see CREDITS.txt)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Special Thanks</span></span>
<span class="line"><span>- Three.js team</span></span>
<span class="line"><span>- Open source community</span></span></code></pre>
</div><h3 id="मिली-जुली-licenses-संभालना" tabindex="-1">मिली-जुली Licenses संभालना <a class="header-anchor" href="#मिली-जुली-licenses-संभालना" aria-label="Permalink to &quot;मिली-जुली Licenses संभालना&quot;"></a></h3>
<p>जब आपका project अलग-अलग licenses वाले assets इस्तेमाल करता है:</p>
<ol>
<li><strong>सब कुछ ट्रैक करें</strong> - एक spreadsheet या document बनाए रखें</li>
<li><strong>सबसे पाबंदी वाला attribution इस्तेमाल करें</strong> - अगर किसी भी asset को credit चाहिए, तो एक credits सेक्शन रखें</li>
<li><strong>चीज़ों को अलग रखें</strong> - NC assets को commercial projects से बाहर रखें</li>
<li><strong>शक हो तो बदल दें</strong> - संदिग्ध assets को साफ़ licensed assets से बदल दें</li>
</ol>
<h3 id="किन-red-flags-पर-नज़र-रखें" tabindex="-1">किन Red Flags पर नज़र रखें <a class="header-anchor" href="#किन-red-flags-पर-नज़र-रखें" aria-label="Permalink to &quot;किन Red Flags पर नज़र रखें&quot;"></a></h3>
<p>⚠️ <strong>तब सावधान रहें जब:</strong></p>
<ul>
<li>License साफ़ तौर पर नहीं बताई गई हो</li>
<li>Asset इतना professional दिखे कि free होना मुश्किल लगे (शायद pirated हो)</li>
<li>Asset कोई पहचाना जाने वाला character/brand हो</li>
<li>Site संदिग्ध या गैर-आधिकारिक दिखे</li>
<li>शर्तों में &quot;personal use only&quot; लिखा हो</li>
<li>Asset किसी game से निकाला गया हो</li>
</ul>
<p>✅ <strong>भरोसे के संकेत:</strong></p>
<ul>
<li>स्थापित platforms (Poly Haven, Kenney, Sketchfab)</li>
<li>Download page पर साफ़ license</li>
<li>Creator का एक portfolio/इतिहास हो</li>
<li>Asset मूल काम हो, नकल नहीं</li>
</ul>
<hr>
<h2 id="license-compatibility" tabindex="-1">License Compatibility <a class="header-anchor" href="#license-compatibility" aria-label="Permalink to &quot;License Compatibility&quot;"></a></h2>
<p>सभी licenses को एक साथ नहीं जोड़ा जा सकता। यहाँ बताया गया है कि क्या एक साथ चलता है:</p>
<h3 id="एक-project-में-assets-जोड़ना" tabindex="-1">एक Project में Assets जोड़ना <a class="header-anchor" href="#एक-project-में-assets-जोड़ना" aria-label="Permalink to &quot;एक Project में Assets जोड़ना&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>License A</th>
<th>+</th>
<th>License B</th>
<th>=</th>
<th>नतीजा</th>
</tr>
</thead>
<tbody>
<tr>
<td>CC0</td>
<td>+</td>
<td>कुछ भी</td>
<td>=</td>
<td>✅ ठीक है</td>
</tr>
<tr>
<td>CC-BY</td>
<td>+</td>
<td>CC-BY</td>
<td>=</td>
<td>✅ दोनों को credit दें</td>
</tr>
<tr>
<td>CC-BY</td>
<td>+</td>
<td>CC-BY-SA</td>
<td>=</td>
<td>✅ दोनों को credit दें, SA उस asset पर लागू</td>
</tr>
<tr>
<td>CC-BY</td>
<td>+</td>
<td>CC-BY-NC</td>
<td>=</td>
<td>⚠️ Project NC बन जाता है</td>
</tr>
<tr>
<td>CC-BY-SA</td>
<td>+</td>
<td>CC-BY-NC-SA</td>
<td>=</td>
<td>⚠️ Derivatives के लिए असंगत</td>
</tr>
<tr>
<td>MIT</td>
<td>+</td>
<td>CC-BY</td>
<td>=</td>
<td>✅ MIT license शामिल करें, CC-BY को credit दें</td>
</tr>
<tr>
<td>GPL</td>
<td>+</td>
<td>Proprietary</td>
<td>=</td>
<td>❌ दिक्कत वाला</td>
</tr>
</tbody>
</table>
<h3 id="मुख्य-नियम" tabindex="-1">मुख्य नियम <a class="header-anchor" href="#मुख्य-नियम" aria-label="Permalink to &quot;मुख्य नियम&quot;"></a></h3>
<p>Licenses जोड़ते समय, सबसे पाबंदी वाली शर्तें अंतिम काम पर लागू होती हैं।</p>
<hr>
<h2 id="अक्सर-पूछे-जाने-वाले-सवाल" tabindex="-1">अक्सर पूछे जाने वाले सवाल <a class="header-anchor" href="#अक्सर-पूछे-जाने-वाले-सवाल" aria-label="Permalink to &quot;अक्सर पूछे जाने वाले सवाल&quot;"></a></h2>
<h3 id="क्या-मैं-cc-by-assets-को-commercial-game-में-इस्तेमाल-कर-सकता-हूँ" tabindex="-1">क्या मैं CC-BY assets को commercial game में इस्तेमाल कर सकता हूँ? <a class="header-anchor" href="#क्या-मैं-cc-by-assets-को-commercial-game-में-इस्तेमाल-कर-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं CC-BY assets को commercial game में इस्तेमाल कर सकता हूँ?&quot;"></a></h3>
<p><strong>हाँ।</strong> CC-BY commercial इस्तेमाल की अनुमति देता है। बस attribution शामिल करें।</p>
<h3 id="अगर-मैं-cc-by-sa-assets-इस्तेमाल-करूँ-तो-क्या-मुझे-अपनी-game-को-open-source-करना-होगा" tabindex="-1">अगर मैं CC-BY-SA assets इस्तेमाल करूँ तो क्या मुझे अपनी game को open-source करना होगा? <a class="header-anchor" href="#अगर-मैं-cc-by-sa-assets-इस्तेमाल-करूँ-तो-क्या-मुझे-अपनी-game-को-open-source-करना-होगा" aria-label="Permalink to &quot;अगर मैं CC-BY-SA assets इस्तेमाल करूँ तो क्या मुझे अपनी game को open-source करना होगा?&quot;"></a></h3>
<p><strong>नहीं।</strong> आपका game code proprietary हो सकता है। सिर्फ़ asset (और उसमें किए बदलाव) को CC-BY-SA बने रहना ज़रूरी है, अगर अलग से distribute किया जाए।</p>
<h3 id="अगर-मैंने-किसी-cc-by-asset-को-इतना-modify-कर-दिया-कि-वह-पहचाना-न-जाए-तो" tabindex="-1">अगर मैंने किसी CC-BY asset को इतना modify कर दिया कि वह पहचाना न जाए तो? <a class="header-anchor" href="#अगर-मैंने-किसी-cc-by-asset-को-इतना-modify-कर-दिया-कि-वह-पहचाना-न-जाए-तो" aria-label="Permalink to &quot;अगर मैंने किसी CC-BY asset को इतना modify कर दिया कि वह पहचाना न जाए तो?&quot;"></a></h3>
<p><strong>फिर भी attribute करें।</strong> अगर आपने किसी के काम से शुरुआत की है, तो आपको उन्हें credit देना चाहिए, चाहे आपने कितना भी बदला हो। यह कानूनी रूप से ज़्यादा सुरक्षित और नैतिक रूप से सही दोनों है।</p>
<h3 id="क्या-मैं-freesound-audio-को-commercial-game-में-इस्तेमाल-कर-सकता-हूँ" tabindex="-1">क्या मैं Freesound audio को commercial game में इस्तेमाल कर सकता हूँ? <a class="header-anchor" href="#क्या-मैं-freesound-audio-को-commercial-game-में-इस्तेमाल-कर-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं Freesound audio को commercial game में इस्तेमाल कर सकता हूँ?&quot;"></a></h3>
<p><strong>यह खास sound पर निर्भर करता है।</strong> Freesound पर हर sound की अपनी license होती है। बेफ़िक्र इस्तेमाल के लिए CC0 से फ़िल्टर करें, या CC-BY अगर आप attribute कर सकते हैं।</p>
<h3 id="क्या-ads-वाली-free-game-commercial-है" tabindex="-1">क्या ads वाली free game &quot;commercial&quot; है? <a class="header-anchor" href="#क्या-ads-वाली-free-game-commercial-है" aria-label="Permalink to &quot;क्या ads वाली free game &quot;commercial&quot; है?&quot;"></a></h3>
<p><strong>हाँ।</strong> कोई भी monetization (ads, IAP, donations, Patreon) आमतौर पर commercial माना जाता है। NC-licensed assets से बचें।</p>
<h3 id="क्या-मैं-cc0-assets-इस्तेमाल-करके-फिर-उन्हें-बेच-सकता-हूँ" tabindex="-1">क्या मैं CC0 assets इस्तेमाल करके फिर उन्हें बेच सकता हूँ? <a class="header-anchor" href="#क्या-मैं-cc0-assets-इस्तेमाल-करके-फिर-उन्हें-बेच-सकता-हूँ" aria-label="Permalink to &quot;क्या मैं CC0 assets इस्तेमाल करके फिर उन्हें बेच सकता हूँ?&quot;"></a></h3>
<p><strong>तकनीकी तौर पर हाँ, पर...</strong> आप किसी ऐसे product में CC0 assets शामिल कर सकते हैं जिसे आप बेचते हैं। पूछे जाने पर आप यह दावा नहीं कर सकते कि आपने उन्हें बनाया। बिना बदलाव वाले CC0 assets को फिर से बेचना कानूनी है पर नैतिक रूप से ठीक नहीं।</p>
<h3 id="ai-से-बने-assets-के-बारे-में-क्या" tabindex="-1">AI से बने assets के बारे में क्या? <a class="header-anchor" href="#ai-से-बने-assets-के-बारे-में-क्या" aria-label="Permalink to &quot;AI से बने assets के बारे में क्या?&quot;"></a></h3>
<p><strong>जटिल।</strong> मौजूदा कानूनी सहमति साफ़ नहीं है। कुछ बातें ध्यान देने लायक:</p>
<ul>
<li>AI से बनी images शायद copyrightable न हों (कोई human author नहीं)</li>
<li>Training data का licensing कानूनी रूप से विवादित है</li>
<li>कुछ marketplaces (CGTrader) में &quot;No AI&quot; पाबंदियाँ हैं</li>
<li>शक हो तो साफ़ licenses वाले human-created assets इस्तेमाल करें</li>
</ul>
<p>खासतौर पर copyrightability पर, US Copyright Office की जनवरी 2025 की AI पर रिपोर्ट अब तक का सबसे साफ़ मार्गदर्शन है: पूरी तरह AI से बना काम copyrightable नहीं है क्योंकि copyright के लिए human authorship ज़रूरी है, और अकेले prompts (लंबे, विस्तृत ही क्यों न हों) उस output को आपका नहीं बनाते। पर AI को एक tool की तरह इस्तेमाल करना, जहाँ कोई human नतीजे को ठोस तरीके से चुनता, व्यवस्थित करता या modify करता है, एक copyrightable काम बना सकता है, जिसे हर मामले में अलग से आँका जाता है। तो AI से बनी एक texture जिसे आप बिना छुए रख देते हैं, उसमें शायद ऐसा कोई copyright protection नहीं होगा जिसे आप लागू करा सकें, जबकि एक scene जिसे आप AI elements के इर्द-गिर्द काफ़ी हद तक खुद बनाते और edit करते हैं, वह सुरक्षित हो सकती है।</p>
<h3 id="क्या-मुझे-एक-वकील-चाहिए" tabindex="-1">क्या मुझे एक वकील चाहिए? <a class="header-anchor" href="#क्या-मुझे-एक-वकील-चाहिए" aria-label="Permalink to &quot;क्या मुझे एक वकील चाहिए?&quot;"></a></h3>
<p><strong>ज़्यादातर indie games के लिए, नहीं।</strong> अगर आप भरोसेमंद स्रोतों से CC0, MIT, और standard Royalty-Free licenses तक टिके रहते हैं, तो आप ठीक हैं।</p>
<p><strong>कानूनी सलाह तब लेने पर विचार करें जब:</strong></p>
<ul>
<li>आपकी game में काफ़ी revenue की संभावना है</li>
<li>आप GPL-licensed assets इस्तेमाल कर रहे हैं</li>
<li>आप किसी खास license को लेकर अनिश्चित हैं</li>
<li>आप एक asset marketplace बना रहे हैं</li>
</ul>
<hr>
<h2 id="attribution-templates" tabindex="-1">Attribution Templates <a class="header-anchor" href="#attribution-templates" aria-label="Permalink to &quot;Attribution Templates&quot;"></a></h2>
<p>इन्हें अपने projects के लिए copy और customize करें।</p>
<h3 id="simple-credits-file" tabindex="-1">Simple Credits File <a class="header-anchor" href="#simple-credits-file" aria-label="Permalink to &quot;Simple Credits File&quot;"></a></h3>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>ASSET CREDITS</span></span>
<span class="line"><span></span></span>
<span class="line"><span>This game uses assets from the following sources:</span></span>
<span class="line"><span></span></span>
<span class="line"><span>3D Models</span></span>
<span class="line"><span>- Kenney.nl (CC0) - https://kenney.nl</span></span>
<span class="line"><span>- Quaternius (CC0) - https://quaternius.com</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Textures  </span></span>
<span class="line"><span>- Poly Haven (CC0) - https://polyhaven.com</span></span>
<span class="line"><span>- AmbientCG (CC0) - https://ambientcg.com</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Audio</span></span>
<span class="line"><span>- Freesound.org (various CC licenses)</span></span>
<span class="line"><span>  - "explosion.wav" by user123 (CC-BY 3.0)</span></span>
<span class="line"><span>  - "footstep.wav" by user456 (CC0)</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Thank you to all creators who share their work!</span></span></code></pre>
</div><h3 id="detailed-attribution-cc-by" tabindex="-1">Detailed Attribution (CC-BY) <a class="header-anchor" href="#detailed-attribution-cc-by" aria-label="Permalink to &quot;Detailed Attribution (CC-BY)&quot;"></a></h3>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>"Asset Name" by Creator Name</span></span>
<span class="line"><span>Source: https://example.com/asset-url</span></span>
<span class="line"><span>License: Creative Commons Attribution 4.0 International (CC-BY 4.0)</span></span>
<span class="line"><span>License URL: https://creativecommons.org/licenses/by/4.0/</span></span>
<span class="line"><span>Modifications: [Describe any changes made, or "None"]</span></span></code></pre>
</div><h3 id="mit-license-inclusion" tabindex="-1">MIT License Inclusion <a class="header-anchor" href="#mit-license-inclusion" aria-label="Permalink to &quot;MIT License Inclusion&quot;"></a></h3>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>This software includes code/assets licensed under the MIT License:</span></span>
<span class="line"><span></span></span>
<span class="line"><span>---</span></span>
<span class="line"><span>[Original copyright and license text]</span></span>
<span class="line"><span>---</span></span></code></pre>
</div><hr>
<h2 id="सारांश" tabindex="-1">सारांश <a class="header-anchor" href="#सारांश" aria-label="Permalink to &quot;सारांश&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>अगर आप चाहते हैं...</th>
<th>इन Licenses का इस्तेमाल करें</th>
</tr>
</thead>
<tbody>
<tr>
<td>बिलकुल कोई पाबंदी नहीं</td>
<td>CC0</td>
</tr>
<tr>
<td>Commercial इस्तेमाल, कम झंझट</td>
<td>CC0, Royalty-Free, MIT</td>
</tr>
<tr>
<td>Commercial इस्तेमाल, credit देने को तैयार</td>
<td>CC-BY</td>
</tr>
<tr>
<td>सिर्फ़ free hobby project</td>
<td>Editorial को छोड़कर कोई भी</td>
</tr>
<tr>
<td>सबसे ज़्यादा कानूनी सुरक्षा</td>
<td>भरोसेमंद स्रोतों से CC0</td>
</tr>
</tbody>
</table>
<p><strong>सुनहरे नियम:</strong></p>
<ol>
<li>शक हो तो CC0 इस्तेमाल करें</li>
<li>Download करने से पहले हमेशा license जाँचें</li>
<li>Assets कहाँ से आए, इसका रिकॉर्ड रखें</li>
<li>एक credits file शामिल करें, चाहे ज़रूरी न हो</li>
<li>जोखिम उठाने के बजाय संदिग्ध assets को बदल दें</li>
</ol>
<hr>
<h2 id="संसाधन" tabindex="-1">संसाधन <a class="header-anchor" href="#संसाधन" aria-label="Permalink to &quot;संसाधन&quot;"></a></h2>
<ul>
<li><a href="https://creativecommons.org/choose/" target="_blank" rel="noreferrer">Creative Commons License Chooser</a></li>
<li><a href="https://tldrlegal.com/" target="_blank" rel="noreferrer">TL;DR Legal</a> — सरल भाषा में license के स्पष्टीकरण</li>
<li><a href="https://choosealicense.com/" target="_blank" rel="noreferrer">Choose a License</a> — code licenses के लिए</li>
</ul>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/game-assets-guide.html">Free Game Assets कहाँ मिलें</a> — हर asset प्रकार के लिए providers, formats, और search tools</li>
<li><a href="/hi/guides/game-dev-courses.html">Online Game Development Courses</a> — Blender और दूसरे tools में asset creation सिखाने वाले courses</li>
<li><a href="/hi/guides/game-jams-hackathons.html">Game Jams &amp; Hackathons</a> — jam games के लिए license-friendly asset packs</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 में फ्री गेम एसेट्स कहां मिलेंगी (20+ स्रोत)]]></title>
            <link>https://app.cinevva.com/hi/guides/game-assets-guide</link>
            <guid>https://app.cinevva.com/hi/guides/game-assets-guide</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में फ्री गेम एसेट्स के लिए 20+ स्रोत - 3D मॉडल, टेक्सचर, ऑडियो, स्प्राइट्स, एनिमेशन और शेडर, लाइसेंस की पूरी जानकारी और हर साइट किसके लिए सबसे अच्छी है।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-फ्री-गेम-एसेट्स-कहां-मिलेंगी-20-स्रोत" tabindex="-1">2026 में फ्री गेम एसेट्स कहां मिलेंगी (20+ स्रोत) <a class="header-anchor" href="#_2026-में-फ्री-गेम-एसेट्स-कहां-मिलेंगी-20-स्रोत" aria-label="Permalink to &quot;2026 में फ्री गेम एसेट्स कहां मिलेंगी (20+ स्रोत)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जुलाई 2026.</em></p>
<p>अपने web games के लिए उच्च गुणवत्ता वाली, फ्री गेम एसेट्स कहां मिलेंगी: 3D मॉडल, टेक्सचर, स्प्राइट्स, ऑडियो, म्यूजिक, एनिमेशन और शेडर। इनमें से ज्यादातर प्रोवाइडर Cinevva की एसेट लाइब्रेरी के अंदर सीधे सर्च किए जा सकते हैं (&quot;Searchable in Cinevva&quot; नोट देखें), और हमने सबसे अच्छे बाहरी स्रोत भी शामिल किए हैं।</p>
<div class="info custom-block"><p class="custom-block-title">हमारा एसेट सर्च आज़माएं</p>
<p>इन सभी स्रोतों में एक साथ सर्च करें हमारे <a href="/hi/assets.html">Asset Library Search</a> के जरिए। एक ही सर्च बॉक्स से 3D मॉडल, टेक्सचर, ऑडियो और बहुत कुछ ढूंढें।</p>
<p><strong>नया:</strong> सीधे डाउनलोड लिंक वाली एसेट्स के टाइल पर एक डाउनलोड आइकन दिखता है। सर्च रिजल्ट छोड़े बिना तुरंत डाउनलोड करने के लिए क्लिक करें।</p>
<p><strong>स्रोत के हिसाब से क्विक सर्च:</strong> <a href="/hi/assets.html?providers=polyhaven">Poly Haven</a> · <a href="/hi/assets.html?providers=sketchfab">Sketchfab</a> · <a href="/hi/assets.html?providers=freesound">Freesound</a> · <a href="/hi/assets.html?providers=kenney">Kenney</a> · <a href="/hi/assets.html?providers=ambientcg">AmbientCG</a></p>
</div>
<div class="tip custom-block"><p class="custom-block-title">लाइसेंस को समझना</p>
<p>पता नहीं CC0, CC-BY या Royalty-Free का क्या मतलब है? पूरी जानकारी के लिए हमारी <a href="/hi/guides/game-asset-licenses.html">Game Asset Licenses Explained</a> गाइड पढ़ें।</p>
</div>
<h2 id="क्विक-रेफरेंस" tabindex="-1">क्विक रेफरेंस <a class="header-anchor" href="#क्विक-रेफरेंस" aria-label="Permalink to &quot;क्विक रेफरेंस&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>ज़रूरत</th>
<th>सबसे अच्छा प्रोवाइडर</th>
<th>लाइसेंस</th>
<th>सीधा डाउनलोड</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>3D मॉडल (उच्च गुणवत्ता)</strong></td>
<td>Poly Haven, Sketchfab, BlenderKit</td>
<td>CC0 / विभिन्न</td>
<td>✅ / मैनुअल</td>
</tr>
<tr>
<td><strong>3D मॉडल (game-ready)</strong></td>
<td>Kenney, Quaternius</td>
<td>CC0</td>
<td>✅</td>
</tr>
<tr>
<td><strong>3D मॉडल (स्टाइलाइज़्ड low-poly)</strong></td>
<td>Synty POLYGON, Quaternius</td>
<td>Royalty-Free / CC0</td>
<td>✅</td>
</tr>
<tr>
<td><strong>3D मॉडल (मार्केटप्लेस)</strong></td>
<td>CGTrader, TurboSquid</td>
<td>Royalty-Free</td>
<td>✅</td>
</tr>
<tr>
<td><strong>टेक्सचर (PBR)</strong></td>
<td>Poly Haven, AmbientCG, BlenderKit</td>
<td>CC0 / विभिन्न</td>
<td>✅</td>
</tr>
<tr>
<td><strong>स्प्राइट्स/2D</strong></td>
<td>Kenney, itch.io, OpenGameArt</td>
<td>CC0 / विभिन्न</td>
<td>✅</td>
</tr>
<tr>
<td><strong>साउंड इफेक्ट्स</strong></td>
<td>Freesound, Sonniss GDC, Kenney</td>
<td>विभिन्न / Royalty-Free / CC0</td>
<td>⚠️ / ✅</td>
</tr>
<tr>
<td><strong>म्यूजिक</strong></td>
<td>Jamendo</td>
<td>Creative Commons</td>
<td>✅</td>
</tr>
<tr>
<td><strong>कैरेक्टर एनिमेशन</strong></td>
<td>Mixamo</td>
<td>फ्री कमर्शियल</td>
<td>मैनुअल</td>
</tr>
<tr>
<td><strong>शेडर/इफेक्ट्स</strong></td>
<td>Shadertoy, Three.js Examples</td>
<td>विभिन्न / MIT</td>
<td>कोड देखें</td>
</tr>
<tr>
<td><strong>Blender मॉडल</strong></td>
<td>BlendSwap</td>
<td>CC-BY</td>
<td>मैनुअल</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="_3d-मॉडल" tabindex="-1">3D मॉडल <a class="header-anchor" href="#_3d-मॉडल" aria-label="Permalink to &quot;3D मॉडल&quot;"></a></h2>
<h3 id="poly-haven" tabindex="-1">Poly Haven <a class="header-anchor" href="#poly-haven" aria-label="Permalink to &quot;Poly Haven&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> उच्च गुणवत्ता वाले फोटोरियलिस्टिक मॉडल, HDRI, PBR टेक्सचर</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://polyhaven.com" target="_blank" rel="noreferrer">polyhaven.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>CC0 (Public Domain) - कोई एट्रिब्यूशन ज़रूरी नहीं</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>2,200+ एसेट्स (520+ मॉडल, 780+ टेक्सचर, 980+ HDRI)</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>GLTF, Blend, FBX</td>
</tr>
<tr>
<td><strong>API</strong></td>
<td>हां - कोई key ज़रूरी नहीं</td>
</tr>
<tr>
<td><strong>Direct Download</strong></td>
<td>✅ हां - CDN के जरिए 1K रिज़ॉल्यूशन</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>कमर्शियल प्रोजेक्ट्स के लिए उपयुक्त प्रोफेशनल गुणवत्ता</li>
<li>सभी एसेट्स CC0 हैं - जैसे चाहें इस्तेमाल करें</li>
<li>कई रिज़ॉल्यूशन उपलब्ध (टेक्सचर के लिए 1K से 16K)</li>
<li>API के जरिए सीधे डाउनलोड लिंक - सर्च रिजल्ट में डाउनलोड आइकन</li>
</ul>
<p><strong>किसे ढूंढने के लिए सबसे अच्छा:</strong></p>
<ul>
<li>आर्किटेक्चरल एलिमेंट (फर्नीचर, इमारतें)</li>
<li>प्राकृतिक चीजें (चट्टानें, पौधे, इलाका)</li>
<li>लाइटिंग के लिए HDRI</li>
<li>PBR मटेरियल टेक्सचर</li>
</ul>
<hr>
<h3 id="kenney" tabindex="-1">Kenney <a class="header-anchor" href="#kenney" aria-label="Permalink to &quot;Kenney&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> एक जैसे आर्ट स्टाइल में game-ready low-poly एसेट्स</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://kenney.nl" target="_blank" rel="noreferrer">kenney.nl</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>CC0 (Public Domain)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>270+ पैक (40,000+ अलग-अलग एसेट्स)</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>GLB, PNG, WAV, और अन्य</td>
</tr>
<tr>
<td><strong>Catalog</strong></td>
<td>ऑफ़लाइन कैटलॉग उपलब्ध (तुरंत सर्च)</td>
</tr>
<tr>
<td><strong>Direct Download</strong></td>
<td>✅ हां - एसेट पैक पेज से लिंक</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>गेम-फोकस्ड एसेट्स की विशाल लाइब्रेरी</li>
<li>पैक के भीतर एक जैसे आर्ट स्टाइल</li>
<li>सब कुछ game-ready है, परफॉर्मेंस के लिए ऑप्टिमाइज़्ड</li>
<li>मॉडल, स्प्राइट्स, UI एलिमेंट और साउंड एक ही जगह</li>
</ul>
<p><strong>शुरुआत के लिए सबसे अच्छे पैक:</strong></p>
<ul>
<li><strong>Space Kit</strong> - स्पेसशिप, क्षुद्रग्रह, स्टेशन</li>
<li><strong>Platformer Kit</strong> - कैरेक्टर, टाइल, बाधाएं</li>
<li><strong>Nature Kit</strong> - पेड़, चट्टानें, घास</li>
<li><strong>Furniture Kit</strong> - इनडोर प्रॉप्स</li>
<li><strong>UI Pack</strong> - बटन, आइकन, HUD एलिमेंट</li>
</ul>
<hr>
<h3 id="quaternius" tabindex="-1">Quaternius <a class="header-anchor" href="#quaternius" aria-label="Permalink to &quot;Quaternius&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> स्टाइलाइज़्ड low-poly 3D मॉडल</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://quaternius.com" target="_blank" rel="noreferrer">quaternius.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>CC0 (Public Domain)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>79 पैक (~1,148 मॉडल)</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>GLTF/GLB, FBX</td>
</tr>
<tr>
<td><strong>Catalog</strong></td>
<td>ऑफ़लाइन कैटलॉग उपलब्ध</td>
</tr>
<tr>
<td><strong>Direct Download</strong></td>
<td>✅ हां - हर पैक के लिए ZIP फ़ाइल</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>प्यारा, स्टाइलाइज़्ड low-poly लुक</li>
<li>इंडी गेम्स के लिए बढ़िया</li>
<li>अच्छी तरह व्यवस्थित थीम वाले पैक</li>
<li>ऑप्टिमाइज़्ड पॉलीगन काउंट</li>
</ul>
<p><strong>लोकप्रिय पैक:</strong></p>
<ul>
<li>Ultimate Modular Characters</li>
<li>Medieval Pack</li>
<li>Ultimate Spaceships</li>
<li>Ultimate Monsters</li>
<li>Nature Pack</li>
</ul>
<hr>
<h3 id="sketchfab" tabindex="-1">Sketchfab <a class="header-anchor" href="#sketchfab" aria-label="Permalink to &quot;Sketchfab&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> मॉडल की विस्तृत विविधता, जटिल/विस्तृत मॉडल सहित</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://sketchfab.com" target="_blank" rel="noreferrer">sketchfab.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>विभिन्न (हर मॉडल चेक करें)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>4M+ मॉडल</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>GLTF, FBX, OBJ</td>
</tr>
<tr>
<td><strong>API</strong></td>
<td>हां - ज्यादा लिमिट के लिए वैकल्पिक key</td>
</tr>
<tr>
<td><strong>Direct Download</strong></td>
<td>⚠️ डाउनलोड पेज से लिंक (लॉगिन ज़रूरी)</td>
</tr>
</tbody>
</table>
<p><strong>नोट:</strong> Sketchfab का पेड Store बंद हो गया है और Epic के <a href="https://www.fab.com" target="_blank" rel="noreferrer">Fab</a> मार्केटप्लेस पर चला गया है, लेकिन फ्री और सिर्फ-व्यू मॉडल Sketchfab पर ही रहते हैं और डाउनलोड किए जा सकते हैं, और download/viewer API काम करते रहते हैं। फ्री, डाउनलोड करने लायक मॉडल के लिए फ़िल्टर पहले की तरह ही काम करता है।</p>
<p><strong>खूबियां:</strong></p>
<ul>
<li>सबसे बड़ी 3D मॉडल लाइब्रेरी</li>
<li>डाउनलोड से पहले 3D प्रीव्यू</li>
<li>&quot;downloadable&quot; और लाइसेंस के हिसाब से फ़िल्टर</li>
<li>कई प्रोफेशनल कलाकार</li>
</ul>
<p><strong>सर्च टिप्स:</strong></p>
<ul>
<li>सर्च में <code>downloadable:true</code> जोड़ें</li>
<li>CC0 या CC-BY लाइसेंस के हिसाब से फ़िल्टर करें</li>
<li>web games के लिए पॉलीगन काउंट चेक करें (&lt; 100K बेहतर)</li>
<li>&quot;game-ready&quot; टैग ढूंढें</li>
</ul>
<div class="tip custom-block"><p class="custom-block-title">Searchable in Cinevva</p>
<p>Sketchfab के रिजल्ट सीधे Cinevva Assets पैनल में दिखते हैं।</p>
</div>
<hr>
<h3 id="blenderkit" tabindex="-1">BlenderKit <a class="header-anchor" href="#blenderkit" aria-label="Permalink to &quot;BlenderKit&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> मॉडल, मटेरियल और HDRI की एक विशाल इन-ऐप लाइब्रेरी</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://www.blenderkit.com" target="_blank" rel="noreferrer">blenderkit.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>विभिन्न (CC0, Royalty-Free, CC-BY, GPL) - हर एसेट चेक करें</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>हजारों मॉडल, मटेरियल, HDRI और ब्रश</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>Blend, GLTF, FBX (अलग-अलग)</td>
</tr>
<tr>
<td><strong>API</strong></td>
<td>हां - फ्री टियर उपलब्ध</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>फ्री और पेड कंटेंट के मिश्रण वाली सबसे बड़ी एसेट लाइब्रेरी में से एक</li>
<li>मॉडल, PBR मटेरियल और HDRI एक ही जगह</li>
<li>एनवायरनमेंट प्रॉप्स, मटेरियल और सीन सजाने के लिए मजबूत</li>
<li>लाइसेंस के हिसाब से फ़िल्टर किया जा सकता है, तो ज़रूरत पड़ने पर CC0 पर टिके रह सकते हैं</li>
</ul>
<p><strong>नोट:</strong> फ्री और पेड एसेट्स साथ-साथ रहते हैं, तो बजट मायने रखे तो फ्री या CC0 टियर के लिए फ़िल्टर करें।</p>
<div class="tip custom-block"><p class="custom-block-title">Searchable in Cinevva</p>
<p>BlenderKit Cinevva Assets पैनल में इंटीग्रेटेड है - एडिटर छोड़े बिना इसे Poly Haven और Sketchfab के साथ सर्च करें।</p>
</div>
<hr>
<h3 id="fab-epic-games" tabindex="-1">Fab (Epic Games) <a class="header-anchor" href="#fab-epic-games" aria-label="Permalink to &quot;Fab (Epic Games)&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> game-ready एसेट्स और फ्री Quixel Megascans, सब एक मार्केटप्लेस में</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://www.fab.com" target="_blank" rel="noreferrer">fab.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>Standard (Personal/Professional) और Creative Commons (कुछ CC0) - हर लिस्टिंग चेक करें</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>मॉडल, मटेरियल, एनवायरनमेंट, VFX, ऑडियो, एनिमेशन, प्लगइन</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>Unreal Engine, Unity, glTF, और अन्य</td>
</tr>
<tr>
<td><strong>Price</strong></td>
<td>फ्री साइन-अप, फ्री और पेड का मिश्रण</td>
</tr>
</tbody>
</table>
<p>Fab, Epic का एकीकृत कंटेंट मार्केटप्लेस है, जो Unreal Engine Marketplace, ArtStation Marketplace, Sketchfab Store और Quixel Megascans का उत्तराधिकारी है। एसेट खोजने वालों के लिए बड़ा आकर्षण है 1,500 से ज्यादा चुनिंदा एसेट्स वाला एक फ्री Megascans स्टार्टर पैक, साथ ही सरफेस, डिकल और 3D स्कैन, किसी भी engine में इस्तेमाल के लिए फ्री। बजट में रहने के लिए Creative Commons या फ्री Standard लाइसेंस के हिसाब से फ़िल्टर करें, और शिप करने से पहले हर लिस्टिंग का लाइसेंस चेक करें।</p>
<hr>
<h3 id="blendswap" tabindex="-1">BlendSwap <a class="header-anchor" href="#blendswap" aria-label="Permalink to &quot;BlendSwap&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> मटेरियल के साथ जटिल Blender मॉडल</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://blendswap.com" target="_blank" rel="noreferrer">blendswap.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>विभिन्न (CC-BY आम है)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>हजारों Blender मॉडल</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>Blend (GLTF में कन्वर्ट करें)</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>कम्युनिटी-संचालित गुणवत्ता वाला कंटेंट</li>
<li>मटेरियल के साथ पूरी Blender फ़ाइलें</li>
<li>सीखने/संशोधित करने के लिए अच्छा</li>
<li>कई आर्किटेक्चरल और वाहन मॉडल</li>
</ul>
<p><strong>नोट:</strong> web पर इस्तेमाल के लिए आमतौर पर GLTF में एक्सपोर्ट करना पड़ता है।</p>
<p><strong>2026 अपडेट:</strong> BlendSwap के मालिक बदल गए और मई 2026 में इसे नए सिरे से बनाकर एक तेज़ साइट के साथ फिर से लॉन्च किया गया। लाइब्रेरी इस बदलाव में बची रही और सब कुछ Creative Commons लाइसेंस के तहत फ्री ही रहता है।</p>
<hr>
<h3 id="synty-studios-polygon" tabindex="-1">Synty Studios (POLYGON) <a class="header-anchor" href="#synty-studios-polygon" aria-label="Permalink to &quot;Synty Studios (POLYGON)&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> एक जैसे आर्ट स्टाइल वाले प्रोफेशनल स्टाइलाइज़्ड low-poly एसेट्स</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://syntystore.com" target="_blank" rel="noreferrer">syntystore.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>Royalty-Free (प्रति खरीद 5 सीट)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>100+ थीम वाले पैक</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>FBX, Unity, Unreal</td>
</tr>
<tr>
<td><strong>Price</strong></td>
<td>पेड (फ्री स्टार्टर पैक के साथ)</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>इंडस्ट्री-स्टैंडर्ड स्टाइलाइज़्ड low-poly लुक</li>
<li>सभी पैक में एक जैसा आर्ट स्टाइल (मिक्स एंड मैच करें!)</li>
<li>प्रोफेशनल गुणवत्ता, गेम्स के लिए ऑप्टिमाइज़्ड</li>
<li>कैरेक्टर में Mecanim रिग हैं (Unity)</li>
</ul>
<p><strong>उपलब्ध फ्री पैक:</strong></p>
<ul>
<li><strong>POLYGON Starter Pack</strong> - प्रॉप्स, कैरेक्टर, एनवायरनमेंट टुकड़ों का सैंपल</li>
<li><strong>POLYGON Santa Pack</strong> - छुट्टियों की थीम वाली एसेट्स</li>
<li><strong>POLYGON Easter Pack</strong> - मौसमी सजावट</li>
<li><strong>POLYGON Xmas Pack</strong> - क्रिसमस/सर्दियों की एसेट्स</li>
</ul>
<p><strong>लोकप्रिय पेड पैक:</strong></p>
<ul>
<li>POLYGON City, Town, Fantasy, Sci-Fi</li>
<li>POLYGON Nature, Farm, Prototype</li>
<li>POLYGON Knights, Samurai, Pirates</li>
</ul>
<p><strong>किसके लिए सबसे अच्छा:</strong></p>
<ul>
<li>एकजुट आर्ट डायरेक्शन चाहने वाले इंडी गेम्स</li>
<li>पॉलिश्ड लुक के साथ तेज़ प्रोटोटाइपिंग</li>
<li>मोबाइल और web games (ऑप्टिमाइज़्ड पॉली काउंट)</li>
</ul>
<p><strong>नोट:</strong> स्टाइल टेस्ट करने के लिए फ्री पैक बढ़िया हैं। मात्रा और गुणवत्ता को देखते हुए पेड पैक बहुत अच्छे वैल्यू के हैं।</p>
<hr>
<h3 id="cgtrader" tabindex="-1">CGTrader <a class="header-anchor" href="#cgtrader" aria-label="Permalink to &quot;CGTrader&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> कई फ्री मॉडल वाला बड़ा मार्केटप्लेस</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://cgtrader.com" target="_blank" rel="noreferrer">cgtrader.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>Royalty-Free (प्रति मॉडल)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>1M+ मॉडल (कई फ्री)</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>FBX, OBJ, GLTF, Blend</td>
</tr>
<tr>
<td><strong>API</strong></td>
<td>नहीं</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>प्रोफेशनल कलाकारों से बड़ी विविधता</li>
<li>कई फ्री मॉडल उपलब्ध</li>
<li>कीमत और फॉर्मेट के हिसाब से फ़िल्टर</li>
<li>low-poly और हाई-डिटेल दोनों मॉडल</li>
</ul>
<p><strong>लाइसेंस शर्तें:</strong></p>
<ul>
<li>✅ कमर्शियल गेम्स/ऐप्स में इस्तेमाल</li>
<li>✅ संशोधित और अनुकूलित करें</li>
<li>❌ मॉडल फ़ाइलें फिर से नहीं बेच सकते</li>
<li>❌ यूज़र्स को मॉडल फ़ाइलें निकालने नहीं दे सकते</li>
</ul>
<p><strong>सर्च टिप्स:</strong></p>
<ul>
<li>कीमत में &quot;Free&quot; से फ़िल्टर करें</li>
<li>पॉलीगन काउंट चेक करें</li>
<li>&quot;game-ready&quot; या &quot;low-poly&quot; टैग ढूंढें</li>
<li>फॉर्मेट कम्पैटिबिलिटी वेरिफ़ाई करें (web के लिए GLTF बेहतर)</li>
</ul>
<p><strong>श्रेणियां:</strong></p>
<ul>
<li>वाहन, कैरेक्टर, आर्किटेक्चर</li>
<li>हथियार, फर्नीचर, प्रकृति</li>
<li>Sci-Fi, Fantasy, Modern</li>
</ul>
<hr>
<h3 id="turbosquid" tabindex="-1">TurboSquid <a class="header-anchor" href="#turbosquid" aria-label="Permalink to &quot;TurboSquid&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> प्रोफेशनल 3D मॉडल मार्केटप्लेस</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://turbosquid.com" target="_blank" rel="noreferrer">turbosquid.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>Royalty-Free / Editorial (हर एक चेक करें)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>1M+ मॉडल (कई फ्री)</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>FBX, OBJ, MAX, Blend</td>
</tr>
<tr>
<td><strong>Quality</strong></td>
<td>प्रोफेशनल ग्रेड</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>उच्च गुणवत्ता वाले प्रोफेशनल मॉडल</li>
<li>स्थापित मार्केटप्लेस (2000 से)</li>
<li>गुणवत्ता के लिए CheckMate सर्टिफिकेशन</li>
<li>कई फ्री मॉडल उपलब्ध</li>
</ul>
<p><strong>लाइसेंस शर्तें:</strong></p>
<ul>
<li>✅ कमर्शियल इस्तेमाल की अनुमति (Royalty-Free)</li>
<li>⚠️ &quot;Editorial Only&quot; लेबल चेक करें (प्रतिबंधित इस्तेमाल)</li>
<li>⚠️ Depicted IP चेक करें (ब्रांडेड चीजें)</li>
<li>❌ कच्ची मॉडल फ़ाइलें फिर से वितरित नहीं कर सकते</li>
</ul>
<p><strong>सावधानियां:</strong></p>
<ul>
<li>&quot;Editorial Only&quot; मॉडल कमर्शियल तौर पर इस्तेमाल नहीं किए जा सकते</li>
<li>ब्रांड लोगो वाले मॉडल को अतिरिक्त मंजूरी चाहिए</li>
<li>फ्री मॉडल में कम इंडेम्निफिकेशन सुरक्षा हो सकती है</li>
</ul>
<p><strong>सर्च टिप्स:</strong></p>
<ul>
<li>&quot;Free&quot; और मनचाहे फॉर्मेट से फ़िल्टर करें</li>
<li>कमर्शियल प्रोजेक्ट्स के लिए &quot;Editorial Use Only&quot; से बचें</li>
<li>web games के लिए पॉलीगन काउंट चेक करें</li>
<li>पहचानने लायक ब्रांड IP वाले मॉडल से बचें</li>
</ul>
<hr>
<h3 id="poly-ronin" tabindex="-1">Poly Ronin <a class="header-anchor" href="#poly-ronin" aria-label="Permalink to &quot;Poly Ronin&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> स्टाइलाइज़्ड low-poly थीम वाले पैक (फिलहाल ऑफ़लाइन)</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://polyronin.com" target="_blank" rel="noreferrer">polyronin.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>⚠️ कभी साफ़ तौर पर नहीं बताया गया</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>थीम वाले low-poly पैक (समुराई और वाइकिंग हथियार, रेगिस्तानी गांव, बाज़ार के स्टॉल, शहरी वाहन)</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>FBX, GLB, OBJ</td>
</tr>
<tr>
<td><strong>Price</strong></td>
<td>फ्री</td>
</tr>
</tbody>
</table>
<div class="warning custom-block"><p class="custom-block-title">साइट की स्थिति (जुलाई 2026)</p>
<p>जुलाई 2026 तक Poly Ronin जवाब नहीं दे रहा है, और लगता है कि साइट ऑफ़लाइन हो गई है। यह इस बात की अच्छी मिसाल है कि अस्पष्ट लाइसेंसिंग क्यों जोखिम भरी है: पैक के पास कमर्शियल इस्तेमाल की कोई दस्तावेज़ शर्तें कभी नहीं थीं, और अब पूछने के लिए कोई क्रिएटर भी नहीं है। अगर आपने पहले पैक ले लिए थे, तो उन्हें सिर्फ प्रोटोटाइप के लिए मानें। प्रोडक्शन के लिए Kenney, Quaternius या Poly Pizza जैसे साफ़ लाइसेंसिंग वाले स्रोत इस्तेमाल करें।</p>
</div>
<hr>
<h2 id="टेक्सचर-और-मटेरियल" tabindex="-1">टेक्सचर और मटेरियल <a class="header-anchor" href="#टेक्सचर-और-मटेरियल" aria-label="Permalink to &quot;टेक्सचर और मटेरियल&quot;"></a></h2>
<h3 id="poly-haven-textures" tabindex="-1">Poly Haven (Textures) <a class="header-anchor" href="#poly-haven-textures" aria-label="Permalink to &quot;Poly Haven (Textures)&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> फोटोरियलिस्टिक PBR टेक्सचर</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://polyhaven.com/textures" target="_blank" rel="noreferrer">polyhaven.com/textures</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>CC0</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>780+ PBR टेक्सचर सेट</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>JPG, PNG, EXR</td>
</tr>
</tbody>
</table>
<p><strong>शामिल हैं:</strong></p>
<ul>
<li>Diffuse/Albedo मैप</li>
<li>Normal मैप</li>
<li>Roughness मैप</li>
<li>Displacement मैप</li>
<li>AO मैप</li>
</ul>
<p><strong>आम श्रेणियां:</strong></p>
<ul>
<li>लकड़ी, धातु, पत्थर, कंक्रीट</li>
<li>कपड़ा, चमड़ा, ज़मीन</li>
<li>ईंट, टाइल, ऑर्गेनिक</li>
</ul>
<hr>
<h3 id="ambientcg" tabindex="-1">AmbientCG <a class="header-anchor" href="#ambientcg" aria-label="Permalink to &quot;AmbientCG&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> CC0 PBR मटेरियल की बड़ी विविधता</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://ambientcg.com" target="_blank" rel="noreferrer">ambientcg.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>CC0</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>2,000+ मटेरियल</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>JPG, PNG</td>
</tr>
<tr>
<td><strong>API</strong></td>
<td>हां - कोई key ज़रूरी नहीं</td>
</tr>
<tr>
<td><strong>Direct Download</strong></td>
<td>✅ हां - 1K रिज़ॉल्यूशन ZIP</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>Poly Haven जैसी गुणवत्ता</li>
<li>कुछ श्रेणियों में ज्यादा विविधता</li>
<li>सीमलेस टाइलिंग टेक्सचर</li>
<li>कई रिज़ॉल्यूशन (1K-8K)</li>
</ul>
<p><strong>किसके लिए अच्छा:</strong></p>
<ul>
<li>ज़मीन के टेक्सचर (घास, मिट्टी, बजरी)</li>
<li>बिल्डिंग मटेरियल</li>
<li>कपड़ा और गद्दीदार सामान</li>
<li>धातु की सतहें</li>
</ul>
<hr>
<h2 id="स्प्राइट्स-और-2d-आर्ट" tabindex="-1">स्प्राइट्स और 2D आर्ट <a class="header-anchor" href="#स्प्राइट्स-और-2d-आर्ट" aria-label="Permalink to &quot;स्प्राइट्स और 2D आर्ट&quot;"></a></h2>
<h3 id="kenney-2d" tabindex="-1">Kenney (2D) <a class="header-anchor" href="#kenney-2d" aria-label="Permalink to &quot;Kenney (2D)&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> पूरे गेम UI और स्प्राइट सेट</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>License</strong></td>
<td>CC0</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>100+ 2D पैक</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>PNG, SVG</td>
</tr>
</tbody>
</table>
<p><strong>बढ़िया 2D पैक:</strong></p>
<ul>
<li>UI Pack (बटन, विंडो, आइकन)</li>
<li>Platformer Pack (कैरेक्टर, टाइल)</li>
<li>Roguelike Pack (डंजन टाइल)</li>
<li>Space Shooter Pack</li>
<li>Puzzle Pack</li>
</ul>
<hr>
<h3 id="itch-io" tabindex="-1">itch.io <a class="header-anchor" href="#itch-io" aria-label="Permalink to &quot;itch.io&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> इंडी क्रिएटर्स से अनोखे आर्ट स्टाइल</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://itch.io/game-assets" target="_blank" rel="noreferrer">itch.io/game-assets</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>विभिन्न (हर एक चेक करें)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>43,000+ एसेट पैक</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>विभिन्न</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>आर्ट स्टाइल की अविश्वसनीय विविधता</li>
<li>कई फ्री पैक उपलब्ध</li>
<li>इंडी कलाकारों का साथ दें</li>
<li>&quot;Free&quot; और टाइप से फ़िल्टर करें</li>
</ul>
<p><strong>सर्च टिप्स:</strong></p>
<ul>
<li>कीमत से फ़िल्टर करें: Free</li>
<li>लोकप्रिय टैग: pixel-art, sprites, tileset, characters</li>
<li>लाइसेंस शर्तें ध्यान से चेक करें</li>
</ul>
<hr>
<h3 id="opengameart" tabindex="-1">OpenGameArt <a class="header-anchor" href="#opengameart" aria-label="Permalink to &quot;OpenGameArt&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> कम्युनिटी द्वारा योगदान की गई 2D आर्ट</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://opengameart.org" target="_blank" rel="noreferrer">opengameart.org</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>विभिन्न (CC0, CC-BY, GPL)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>हजारों</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>PNG, SVG</td>
</tr>
<tr>
<td><strong>Direct Download</strong></td>
<td>⚠️ कंटेंट पेज से लिंक</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>सक्रिय कम्युनिटी</li>
<li>रेट्रो/पिक्सेल आर्ट के लिए अच्छा</li>
<li>कई पूरे गेम आर्ट सेट</li>
<li>ऑडियो और 3D भी है</li>
</ul>
<p><strong>श्रेणियां:</strong></p>
<ul>
<li>2D Art &gt; Tiles, Characters, UI</li>
<li>Textures</li>
<li>Concept Art</li>
</ul>
<hr>
<h2 id="ऑडियो-और-साउंड-इफेक्ट्स" tabindex="-1">ऑडियो और साउंड इफेक्ट्स <a class="header-anchor" href="#ऑडियो-और-साउंड-इफेक्ट्स" aria-label="Permalink to &quot;ऑडियो और साउंड इफेक्ट्स&quot;"></a></h2>
<h3 id="freesound" tabindex="-1">Freesound <a class="header-anchor" href="#freesound" aria-label="Permalink to &quot;Freesound&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> विशाल साउंड इफेक्ट्स लाइब्रेरी</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://freesound.org" target="_blank" rel="noreferrer">freesound.org</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>विभिन्न CC लाइसेंस</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>600,000+ साउंड</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>WAV, MP3, FLAC</td>
</tr>
<tr>
<td><strong>API</strong></td>
<td>हां - फ्री API key ज़रूरी</td>
</tr>
<tr>
<td><strong>Direct Download</strong></td>
<td>✅ हां - MP3 प्रीव्यू (API key के साथ)</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>सबसे बड़ी फ्री साउंड लाइब्रेरी</li>
<li>एडवांस्ड सर्च फ़िल्टर</li>
<li>कम्युनिटी रेटिंग</li>
<li>वेवफॉर्म प्रीव्यू</li>
</ul>
<p><strong>टिप्स:</strong></p>
<ul>
<li>लाइसेंस चेक करें (गेम्स के लिए CC0 बेहतर)</li>
<li>सैंपल रेट से फ़िल्टर करें (44.1kHz स्टैंडर्ड)</li>
<li>आम साउंड के कई वेरिएशन</li>
<li>साउंड डिज़ाइन के लिए बढ़िया</li>
</ul>
<p><strong>आम सर्च:</strong></p>
<ul>
<li>कदमों की आवाज़, विस्फोट, UI क्लिक</li>
<li>एंबियंट लूप, बैकग्राउंड शोर</li>
<li>आवाज़/वोकल इफेक्ट</li>
<li>संगीत वाद्ययंत्र</li>
</ul>
<hr>
<h3 id="kenney-audio" tabindex="-1">Kenney (Audio) <a class="header-anchor" href="#kenney-audio" aria-label="Permalink to &quot;Kenney (Audio)&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> game-ready साउंड इफेक्ट्स पैक</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>License</strong></td>
<td>CC0</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>15+ ऑडियो पैक</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>WAV, OGG</td>
</tr>
</tbody>
</table>
<p><strong>पैक में शामिल हैं:</strong></p>
<ul>
<li>UI Audio (क्लिक, हॉवर, नोटिफिकेशन)</li>
<li>RPG Audio (कॉम्बैट, स्पेल, एनवायरनमेंट)</li>
<li>Sci-Fi Audio (हथियार, कंप्यूटर, दरवाज़े)</li>
<li>Impact Sounds</li>
<li>Music Jingles</li>
</ul>
<hr>
<h3 id="sonniss-gdc" tabindex="-1">Sonniss GDC <a class="header-anchor" href="#sonniss-gdc" aria-label="Permalink to &quot;Sonniss GDC&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> बल्क में प्रोफेशनल, royalty-free साउंड इफेक्ट्स</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://sonniss.com/gameaudiogdc" target="_blank" rel="noreferrer">sonniss.com/gameaudiogdc</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>कमर्शियल इस्तेमाल के लिए royalty-free (Sonniss GDC Game Audio Bundle)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>सैकड़ों गीगाबाइट प्रो साउंड इफेक्ट्स</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>WAV (पूरी गुणवत्ता), MP3/OGG प्रीव्यू</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>प्रोफेशनल साउंड डिज़ाइनरों द्वारा रिकॉर्ड किए गए स्टूडियो-ग्रेड साउंड इफेक्ट्स</li>
<li>royalty-free, तो कमर्शियल गेम्स के लिए कोई एट्रिब्यूशन और कोई प्रति-इस्तेमाल फीस नहीं</li>
<li>हर साल GDC Game Audio Bundle के हिस्से के रूप में जारी (2026 संस्करण मार्च में 7GB+ नई ध्वनियों के साथ आया, और पिछले सालों का आर्काइव 200GB से ऊपर है)</li>
<li>foley, एंबियंस, हथियार, जीव, वाहन और UI को कवर करता है</li>
</ul>
<p><strong>नोट:</strong> यह लाइसेंस सिर्फ मीडिया प्रोडक्शन (गेम्स, फिल्म, TV, इंटरैक्टिव प्रोजेक्ट) को कवर करता है और ध्वनियों को AI/ML ट्रेनिंग के लिए इस्तेमाल करने पर साफ़ तौर पर रोक लगाता है। प्रीव्यू Cinevva के अंदर MP3/OGG के रूप में स्ट्रीम होते हैं; पूरी रिज़ॉल्यूशन वाले WAV Sonniss से डाउनलोड होते हैं।</p>
<div class="tip custom-block"><p class="custom-block-title">Searchable in Cinevva</p>
<p>Sonniss, Cinevva Assets पैनल में इंटीग्रेटेड है - GDC बंडल को Freesound के ठीक बगल में सर्च करें।</p>
</div>
<hr>
<h2 id="म्यूजिक" tabindex="-1">म्यूजिक <a class="header-anchor" href="#म्यूजिक" aria-label="Permalink to &quot;म्यूजिक&quot;"></a></h2>
<h3 id="jamendo" tabindex="-1">Jamendo <a class="header-anchor" href="#jamendo" aria-label="Permalink to &quot;Jamendo&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> फ्री बैकग्राउंड म्यूजिक और साउंडट्रैक</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://www.jamendo.com" target="_blank" rel="noreferrer">jamendo.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>Creative Commons (CC-BY-SA, CC-BY-NC-SA) - हर ट्रैक चेक करें</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>लाखों स्वतंत्र म्यूजिक ट्रैक</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>MP3</td>
</tr>
<tr>
<td><strong>API</strong></td>
<td>हां - फ्री client ID ज़रूरी</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>हर शैली में स्वतंत्र म्यूजिक का विशाल कैटलॉग</li>
<li>Creative Commons ट्रैक एट्रिब्यूशन के साथ फ्री में इस्तेमाल किए जा सकते हैं</li>
<li>मेन्यू, लेवल थीम, एंबियंस और ट्रेलर के लिए अच्छा</li>
<li>शैली, मूड और टेम्पो से सर्च किया जा सकता है</li>
</ul>
<p><strong>नोट:</strong> कुछ ट्रैक को कमर्शियल इस्तेमाल के लिए Jamendo Licensing खरीद की ज़रूरत होती है, तो शिप करने से पहले हर ट्रैक का लाइसेंस कन्फर्म करें।</p>
<div class="tip custom-block"><p class="custom-block-title">Searchable in Cinevva</p>
<p>Jamendo बैकग्राउंड म्यूजिक और साउंडट्रैक के लिए Cinevva Assets पैनल में इंटीग्रेटेड है।</p>
</div>
<hr>
<h2 id="कैरेक्टर-एनिमेशन" tabindex="-1">कैरेक्टर एनिमेशन <a class="header-anchor" href="#कैरेक्टर-एनिमेशन" aria-label="Permalink to &quot;कैरेक्टर एनिमेशन&quot;"></a></h2>
<h3 id="mixamo" tabindex="-1">Mixamo <a class="header-anchor" href="#mixamo" aria-label="Permalink to &quot;Mixamo&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> प्रोफेशनल कैरेक्टर एनिमेशन</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://mixamo.com" target="_blank" rel="noreferrer">mixamo.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>कमर्शियल इस्तेमाल के लिए फ्री</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>2,446 एनिमेशन</td>
</tr>
<tr>
<td><strong>Formats</strong></td>
<td>FBX</td>
</tr>
<tr>
<td><strong>Account</strong></td>
<td>Adobe अकाउंट ज़रूरी</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>प्रोफेशनल गुणवत्ता वाले एनिमेशन</li>
<li>कस्टम कैरेक्टर के लिए रीटार्गेट किए जा सकते हैं</li>
<li>विशाल एनिमेशन लाइब्रेरी</li>
<li>रिग्ड कैरेक्टर भी हैं</li>
</ul>
<p><strong>श्रेणियां:</strong></p>
<ul>
<li>लोकोमोशन (चलना, दौड़ना, कूदना)</li>
<li>कॉम्बैट (मुक्का, लात, तलवार)</li>
<li>डांस</li>
<li>इशारे</li>
<li>एक्शन (बैठना, चढ़ना, पकड़ना)</li>
<li>प्रतिक्रियाएं (चोट, मौत, गिरना)</li>
</ul>
<p><strong>वर्कफ़्लो:</strong></p>
<ol>
<li>फ्री Adobe अकाउंट बनाएं</li>
<li>अपना कैरेक्टर अपलोड करें या उनका इस्तेमाल करें</li>
<li>एनिमेशन ब्राउज़/प्रीव्यू करें</li>
<li>FBX के रूप में डाउनलोड करें</li>
<li>web के लिए GLTF में कन्वर्ट करें</li>
</ol>
<hr>
<h2 id="शेडर-और-इफेक्ट्स" tabindex="-1">शेडर और इफेक्ट्स <a class="header-anchor" href="#शेडर-और-इफेक्ट्स" aria-label="Permalink to &quot;शेडर और इफेक्ट्स&quot;"></a></h2>
<h3 id="shadertoy" tabindex="-1">Shadertoy <a class="header-anchor" href="#shadertoy" aria-label="Permalink to &quot;Shadertoy&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> GLSL शेडर प्रेरणा और इफेक्ट</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://shadertoy.com" target="_blank" rel="noreferrer">shadertoy.com</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>विभिन्न (हर एक चेक करें)</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>70,000+ शेडर</td>
</tr>
<tr>
<td><strong>Format</strong></td>
<td>GLSL सोर्स कोड</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>दिमाग हिला देने वाले विज़ुअल इफेक्ट</li>
<li>शेडर तकनीकें सीखें</li>
<li>रियल-टाइम प्रीव्यू</li>
<li>सक्रिय कम्युनिटी</li>
</ul>
<p><strong>लोकप्रिय श्रेणियां:</strong></p>
<ul>
<li>Raymarching/फ्रैक्टल</li>
<li>पोस्ट-प्रोसेसिंग इफेक्ट</li>
<li>प्रोसीजरल टेक्सचर</li>
<li>पार्टिकल सिस्टम</li>
<li>पानी/आग/धुआं</li>
</ul>
<p><strong>नोट:</strong> Three.js/WebGL में इस्तेमाल के लिए शेडर को अनुकूलित करना पड़ता है।</p>
<hr>
<h3 id="three-js-examples" tabindex="-1">Three.js Examples <a class="header-anchor" href="#three-js-examples" aria-label="Permalink to &quot;Three.js Examples&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> इस्तेमाल के लिए तैयार Three.js कोड</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://threejs.org/examples" target="_blank" rel="noreferrer">threejs.org/examples</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>MIT</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>500+ उदाहरण</td>
</tr>
<tr>
<td><strong>Format</strong></td>
<td>JavaScript सोर्स</td>
</tr>
</tbody>
</table>
<p><strong>खूबियां:</strong></p>
<ul>
<li>आधिकारिक उदाहरण</li>
<li>कॉपी-पेस्ट के लिए तैयार</li>
<li>अच्छी तरह दस्तावेज़ीकृत</li>
<li>सभी फीचर कवर करते हैं</li>
</ul>
<p><strong>उपयोगी उदाहरण:</strong></p>
<ul>
<li>पोस्ट-प्रोसेसिंग इफेक्ट</li>
<li>कस्टम शेडर</li>
<li>फिज़िक्स इंटीग्रेशन</li>
<li>मॉडल लोडर</li>
<li>एनिमेशन सिस्टम</li>
</ul>
<hr>
<h3 id="pmndrs-vanilla" tabindex="-1">pmndrs/vanilla <a class="header-anchor" href="#pmndrs-vanilla" aria-label="Permalink to &quot;pmndrs/vanilla&quot;"></a></h3>
<p><strong>किसके लिए सबसे अच्छा:</strong> Three.js मटेरियल और इफेक्ट</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Website</strong></td>
<td><a href="https://github.com/pmndrs/vanilla" target="_blank" rel="noreferrer">github.com/pmndrs/vanilla</a></td>
</tr>
<tr>
<td><strong>License</strong></td>
<td>MIT</td>
</tr>
<tr>
<td><strong>Assets</strong></td>
<td>20+ इफेक्ट</td>
</tr>
<tr>
<td><strong>Package</strong></td>
<td><code>@pmndrs/vanilla</code></td>
</tr>
</tbody>
</table>
<p><strong>शामिल हैं:</strong></p>
<ul>
<li>MeshReflectorMaterial</li>
<li>MeshDistortMaterial</li>
<li>MeshWobbleMaterial</li>
<li>Caustics</li>
<li>Sparkles</li>
<li>Soft shadows</li>
</ul>
<hr>
<h2 id="एसेट-टाइप-चीट-शीट" tabindex="-1">एसेट टाइप चीट शीट <a class="header-anchor" href="#एसेट-टाइप-चीट-शीट" aria-label="Permalink to &quot;एसेट टाइप चीट शीट&quot;"></a></h2>
<h3 id="मुझे-एक-स्पेसशिप-चाहिए" tabindex="-1">मुझे एक स्पेसशिप चाहिए <a class="header-anchor" href="#मुझे-एक-स्पेसशिप-चाहिए" aria-label="Permalink to &quot;मुझे एक स्पेसशिप चाहिए&quot;"></a></h3>
<ol>
<li><strong>तेज़ और आसान:</strong> Kenney Space Kit (CC0)</li>
<li><strong>स्टाइलाइज़्ड:</strong> Quaternius Ultimate Spaceships (CC0)</li>
<li><strong>प्रोफेशनल स्टाइलाइज़्ड:</strong> Synty POLYGON Sci-Fi (Royalty-Free, पेड)</li>
<li><strong>विस्तृत:</strong> Sketchfab में &quot;spaceship downloadable&quot; सर्च करें (लाइसेंस चेक करें)</li>
</ol>
<h3 id="मुझे-अपने-पूरे-गेम-के-लिए-एक-जैसा-आर्ट-स्टाइल-चाहिए" tabindex="-1">मुझे अपने पूरे गेम के लिए एक जैसा आर्ट स्टाइल चाहिए <a class="header-anchor" href="#मुझे-अपने-पूरे-गेम-के-लिए-एक-जैसा-आर्ट-स्टाइल-चाहिए" aria-label="Permalink to &quot;मुझे अपने पूरे गेम के लिए एक जैसा आर्ट स्टाइल चाहिए&quot;"></a></h3>
<ol>
<li><strong>Synty POLYGON</strong> - सभी पैक एक जैसा लुक शेयर करते हैं, बेझिझक मिक्स एंड मैच करें</li>
<li><strong>Kenney</strong> - CC0, पैक के भीतर एकजुट game-ready स्टाइल</li>
<li><strong>Quaternius</strong> - CC0, प्यारा low-poly स्टाइल</li>
</ol>
<h3 id="मुझे-रियलिस्टिक-टेक्सचर-चाहिए" tabindex="-1">मुझे रियलिस्टिक टेक्सचर चाहिए <a class="header-anchor" href="#मुझे-रियलिस्टिक-टेक्सचर-चाहिए" aria-label="Permalink to &quot;मुझे रियलिस्टिक टेक्सचर चाहिए&quot;"></a></h3>
<ol>
<li><strong>Poly Haven</strong> - सबसे अच्छी गुणवत्ता, CC0</li>
<li><strong>AmbientCG</strong> - ज्यादा विविधता, CC0</li>
</ol>
<h3 id="मुझे-साउंड-इफेक्ट्स-चाहिए" tabindex="-1">मुझे साउंड इफेक्ट्स चाहिए <a class="header-anchor" href="#मुझे-साउंड-इफेक्ट्स-चाहिए" aria-label="Permalink to &quot;मुझे साउंड इफेक्ट्स चाहिए&quot;"></a></h3>
<ol>
<li><strong>Kenney Audio Packs</strong> - तेज़ गेम साउंड, CC0</li>
<li><strong>Freesound</strong> - खास साउंड, विभिन्न लाइसेंस</li>
</ol>
<h3 id="मुझे-कैरेक्टर-एनिमेशन-चाहिए" tabindex="-1">मुझे कैरेक्टर एनिमेशन चाहिए <a class="header-anchor" href="#मुझे-कैरेक्टर-एनिमेशन-चाहिए" aria-label="Permalink to &quot;मुझे कैरेक्टर एनिमेशन चाहिए&quot;"></a></h3>
<ol>
<li><strong>Mixamo</strong> - प्रोफेशनल गुणवत्ता, अकाउंट ज़रूरी</li>
</ol>
<h3 id="मुझे-पिक्सेल-आर्ट-चाहिए" tabindex="-1">मुझे पिक्सेल आर्ट चाहिए <a class="header-anchor" href="#मुझे-पिक्सेल-आर्ट-चाहिए" aria-label="Permalink to &quot;मुझे पिक्सेल आर्ट चाहिए&quot;"></a></h3>
<ol>
<li><strong>itch.io</strong> - &quot;pixel-art&quot; और &quot;Free&quot; से फ़िल्टर करें</li>
<li><strong>OpenGameArt</strong> - 2D Art श्रेणी</li>
<li><strong>Kenney</strong> - 2D पैक</li>
</ol>
<h3 id="मुझे-ui-एलिमेंट-चाहिए" tabindex="-1">मुझे UI एलिमेंट चाहिए <a class="header-anchor" href="#मुझे-ui-एलिमेंट-चाहिए" aria-label="Permalink to &quot;मुझे UI एलिमेंट चाहिए&quot;"></a></h3>
<ol>
<li><strong>Kenney UI Pack</strong> - पूरा सेट, CC0</li>
<li><strong>itch.io</strong> - &quot;UI&quot; या &quot;GUI&quot; सर्च करें</li>
</ol>
<h3 id="मुझे-यादृच्छिक-मॉडल-की-बड़ी-विविधता-चाहिए" tabindex="-1">मुझे यादृच्छिक मॉडल की बड़ी विविधता चाहिए <a class="header-anchor" href="#मुझे-यादृच्छिक-मॉडल-की-बड़ी-विविधता-चाहिए" aria-label="Permalink to &quot;मुझे यादृच्छिक मॉडल की बड़ी विविधता चाहिए&quot;"></a></h3>
<ol>
<li><strong>CGTrader</strong> - &quot;Free&quot; से फ़िल्टर करें, विशाल विविधता</li>
<li><strong>TurboSquid</strong> - प्रोफेशनल गुणवत्ता, लाइसेंस टाइप चेक करें</li>
<li><strong>Sketchfab</strong> - 4M+ मॉडल, downloadable से फ़िल्टर करें</li>
</ol>
<hr>
<h2 id="लाइसेंस-गाइड" tabindex="-1">लाइसेंस गाइड <a class="header-anchor" href="#लाइसेंस-गाइड" aria-label="Permalink to &quot;लाइसेंस गाइड&quot;"></a></h2>
<h3 id="cc0-public-domain" tabindex="-1">CC0 (Public Domain) <a class="header-anchor" href="#cc0-public-domain" aria-label="Permalink to &quot;CC0 (Public Domain)&quot;"></a></h3>
<ul>
<li>✅ कमर्शियल इस्तेमाल करें</li>
<li>✅ संशोधित करें</li>
<li>✅ कोई एट्रिब्यूशन ज़रूरी नहीं</li>
<li>✅ कोई प्रतिबंध नहीं</li>
</ul>
<p><strong>प्रोवाइडर:</strong> Poly Haven, Kenney, Quaternius, AmbientCG</p>
<h3 id="royalty-free-license" tabindex="-1">Royalty-Free License <a class="header-anchor" href="#royalty-free-license" aria-label="Permalink to &quot;Royalty-Free License&quot;"></a></h3>
<ul>
<li>✅ कमर्शियल इस्तेमाल करें (अपने गेम्स/ऐप्स में)</li>
<li>✅ संशोधित और अनुकूलित करें</li>
<li>✅ कोई चालू रॉयल्टी नहीं</li>
<li>❌ कच्ची मॉडल फ़ाइलें फिर से नहीं बेच सकते</li>
<li>❌ यूज़र्स को मॉडल निकालने नहीं दे सकते</li>
</ul>
<p><strong>प्रोवाइडर:</strong> Synty POLYGON, CGTrader, TurboSquid</p>
<p><strong>नोट:</strong> &quot;Royalty-Free&quot; का मतलब है कि आप एक बार भुगतान करते हैं (या फ्री में पाते हैं) और प्रति-इस्तेमाल फीस दिए बिना इसका इस्तेमाल कर सकते हैं। इसका मतलब यह नहीं कि एसेट public domain है।</p>
<h3 id="cc-by-attribution" tabindex="-1">CC-BY (Attribution) <a class="header-anchor" href="#cc-by-attribution" aria-label="Permalink to &quot;CC-BY (Attribution)&quot;"></a></h3>
<ul>
<li>✅ कमर्शियल इस्तेमाल करें</li>
<li>✅ संशोधित करें</li>
<li>⚠️ लेखक को क्रेडिट देना ज़रूरी</li>
<li>✅ बाकी अप्रतिबंधित</li>
</ul>
<p><strong>प्रोवाइडर:</strong> कई Sketchfab, BlendSwap, OpenGameArt</p>
<h3 id="cc-by-sa-sharealike" tabindex="-1">CC-BY-SA (ShareAlike) <a class="header-anchor" href="#cc-by-sa-sharealike" aria-label="Permalink to &quot;CC-BY-SA (ShareAlike)&quot;"></a></h3>
<ul>
<li>✅ कमर्शियल इस्तेमाल करें</li>
<li>✅ संशोधित करें</li>
<li>⚠️ लेखक को क्रेडिट देना ज़रूरी</li>
<li>⚠️ डेरिवेटिव को वही लाइसेंस इस्तेमाल करना होगा</li>
</ul>
<h3 id="cc-by-nc-non-commercial" tabindex="-1">CC-BY-NC (Non-Commercial) <a class="header-anchor" href="#cc-by-nc-non-commercial" aria-label="Permalink to &quot;CC-BY-NC (Non-Commercial)&quot;"></a></h3>
<ul>
<li>❌ कमर्शियल इस्तेमाल नहीं कर सकते</li>
<li>✅ फ्री गेम्स में इस्तेमाल कर सकते हैं</li>
<li>⚠️ चेक करें कि आपके गेम में ऐड/IAP तो नहीं हैं</li>
</ul>
<h3 id="editorial-use-only" tabindex="-1">Editorial Use Only <a class="header-anchor" href="#editorial-use-only" aria-label="Permalink to &quot;Editorial Use Only&quot;"></a></h3>
<ul>
<li>❌ कमर्शियल इस्तेमाल नहीं कर सकते</li>
<li>✅ सिर्फ न्यूज़, शिक्षा, कमेंट्री</li>
<li>⚠️ ब्रांडेड चीजों के लिए TurboSquid पर आम है</li>
</ul>
<p><strong>टिप:</strong> जब संभव हो, अपने गेम क्रेडिट में एट्रिब्यूशन की ज़रूरतों से बचने के लिए CC0 को प्राथमिकता दें। Royalty-Free भी कमर्शियल गेम्स के लिए सुरक्षित है।</p>
<hr>
<h2 id="वर्कफ़्लो-टिप्स" tabindex="-1">वर्कफ़्लो टिप्स <a class="header-anchor" href="#वर्कफ़्लो-टिप्स" aria-label="Permalink to &quot;वर्कफ़्लो टिप्स&quot;"></a></h2>
<h3 id="_1-पहले-लाइसेंस-चेक-करें" tabindex="-1">1. पहले लाइसेंस चेक करें <a class="header-anchor" href="#_1-पहले-लाइसेंस-चेक-करें" aria-label="Permalink to &quot;1. पहले लाइसेंस चेक करें&quot;"></a></h3>
<p>डाउनलोड करने से पहले वेरिफ़ाई करें कि लाइसेंस आपके इच्छित इस्तेमाल की अनुमति देता है।</p>
<h3 id="_2-web-के-लिए-ऑप्टिमाइज़-करें" tabindex="-1">2. web के लिए ऑप्टिमाइज़ करें <a class="header-anchor" href="#_2-web-के-लिए-ऑप्टिमाइज़-करें" aria-label="Permalink to &quot;2. web के लिए ऑप्टिमाइज़ करें&quot;"></a></h3>
<ul>
<li>मॉडल को 100K पॉलीगन से कम रखें</li>
<li>कंप्रेस्ड टेक्सचर इस्तेमाल करें (diffuse के लिए JPG, ट्रांसपेरेंसी के लिए PNG)</li>
<li>ऑडियो: प्रोडक्शन के लिए MP3 या OGG इस्तेमाल करें, WAV नहीं</li>
</ul>
<h3 id="_3-अपनी-एसेट्स-व्यवस्थित-करें" tabindex="-1">3. अपनी एसेट्स व्यवस्थित करें <a class="header-anchor" href="#_3-अपनी-एसेट्स-व्यवस्थित-करें" aria-label="Permalink to &quot;3. अपनी एसेट्स व्यवस्थित करें&quot;"></a></h3>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>assets/</span></span>
<span class="line"><span>├── models/</span></span>
<span class="line"><span>│   ├── characters/</span></span>
<span class="line"><span>│   └── props/</span></span>
<span class="line"><span>├── textures/</span></span>
<span class="line"><span>│   ├── environment/</span></span>
<span class="line"><span>│   └── ui/</span></span>
<span class="line"><span>├── audio/</span></span>
<span class="line"><span>│   ├── music/</span></span>
<span class="line"><span>│   └── sfx/</span></span>
<span class="line"><span>└── sprites/</span></span></code></pre>
</div><h3 id="_4-एट्रिब्यूशन-रिकॉर्ड-रखें" tabindex="-1">4. एट्रिब्यूशन रिकॉर्ड रखें <a class="header-anchor" href="#_4-एट्रिब्यूशन-रिकॉर्ड-रखें" aria-label="Permalink to &quot;4. एट्रिब्यूशन रिकॉर्ड रखें&quot;"></a></h3>
<p>CC0 के लिए भी, यह ट्रैक करना अच्छा है कि एसेट्स कहां से आईं:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>CREDITS.md</span></span>
<span class="line"><span>- Spaceship model: Quaternius (CC0)</span></span>
<span class="line"><span>- Wood texture: Poly Haven (CC0)</span></span>
<span class="line"><span>- Laser sound: Freesound user "xyz" (CC-BY)</span></span></code></pre>
</div><h3 id="_5-परफॉर्मेंस-टेस्ट-करें" tabindex="-1">5. परफॉर्मेंस टेस्ट करें <a class="header-anchor" href="#_5-परफॉर्मेंस-टेस्ट-करें" aria-label="Permalink to &quot;5. परफॉर्मेंस टेस्ट करें&quot;"></a></h3>
<p>चेक करने के लिए अपने गेम में जल्दी एसेट्स लोड करें:</p>
<ul>
<li>फ़ाइल साइज़ (लोड टाइम को प्रभावित करता है)</li>
<li>पॉलीगन काउंट (FPS को प्रभावित करता है)</li>
<li>टेक्सचर रिज़ॉल्यूशन (मेमोरी को प्रभावित करता है)</li>
</ul>
<hr>
<h2 id="सारांश-तालिका" tabindex="-1">सारांश तालिका <a class="header-anchor" href="#सारांश-तालिका" aria-label="Permalink to &quot;सारांश तालिका&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>प्रोवाइडर</th>
<th>टाइप</th>
<th>लाइसेंस</th>
<th>किसके लिए सबसे अच्छा</th>
<th style="text-align:center">Cinevva में</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Poly Haven</strong></td>
<td>Models, Textures, HDRIs</td>
<td>CC0</td>
<td>प्रोफेशनल गुणवत्ता</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>Kenney</strong></td>
<td>Models, Sprites, Audio, UI</td>
<td>CC0</td>
<td>game-ready एसेट्स</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>Quaternius</strong></td>
<td>Models</td>
<td>CC0</td>
<td>स्टाइलाइज़्ड low-poly</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>Synty POLYGON</strong></td>
<td>Models, Characters</td>
<td>Royalty-Free</td>
<td>एक जैसी स्टाइलाइज़्ड आर्ट</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>Sketchfab</strong></td>
<td>Models</td>
<td>विभिन्न</td>
<td>विस्तृत विविधता</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>BlenderKit</strong></td>
<td>Models, Materials, HDRIs</td>
<td>विभिन्न</td>
<td>बड़ी इन-ऐप लाइब्रेरी</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>Fab (Epic)</strong></td>
<td>Models, Materials, VFX, Audio</td>
<td>Standard / CC</td>
<td>फ्री Megascans, game-ready एसेट्स</td>
<td style="text-align:center">—</td>
</tr>
<tr>
<td><strong>CGTrader</strong></td>
<td>Models</td>
<td>Royalty-Free</td>
<td>मार्केटप्लेस विविधता</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>AmbientCG</strong></td>
<td>Textures, HDRIs</td>
<td>CC0</td>
<td>PBR मटेरियल</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>OpenGameArt</strong></td>
<td>2D, Audio, Textures</td>
<td>विभिन्न</td>
<td>कम्युनिटी कंटेंट</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>Freesound</strong></td>
<td>Audio</td>
<td>विभिन्न</td>
<td>साउंड इफेक्ट्स</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>Sonniss GDC</strong></td>
<td>Audio</td>
<td>Royalty-Free</td>
<td>बल्क में प्रो साउंड इफेक्ट्स</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>Jamendo</strong></td>
<td>Music</td>
<td>Creative Commons</td>
<td>बैकग्राउंड म्यूजिक</td>
<td style="text-align:center">✅</td>
</tr>
<tr>
<td><strong>TurboSquid</strong></td>
<td>Models</td>
<td>Royalty-Free</td>
<td>प्रोफेशनल गुणवत्ता</td>
<td style="text-align:center">—</td>
</tr>
<tr>
<td><strong>Mixamo</strong></td>
<td>Animations</td>
<td>फ्री</td>
<td>कैरेक्टर एनिमेशन</td>
<td style="text-align:center">—</td>
</tr>
<tr>
<td><strong>itch.io</strong></td>
<td>Sprites, Various</td>
<td>विभिन्न</td>
<td>इंडी आर्ट स्टाइल</td>
<td style="text-align:center">—</td>
</tr>
<tr>
<td><strong>BlendSwap</strong></td>
<td>Blender Models</td>
<td>विभिन्न</td>
<td>जटिल मॉडल</td>
<td style="text-align:center">—</td>
</tr>
<tr>
<td><strong>Three.js Examples</strong></td>
<td>Code/Shaders</td>
<td>MIT</td>
<td>Three.js फीचर</td>
<td style="text-align:center">—</td>
</tr>
<tr>
<td><strong>Shadertoy</strong></td>
<td>Shaders</td>
<td>विभिन्न</td>
<td>विज़ुअल इफेक्ट</td>
<td style="text-align:center">—</td>
</tr>
</tbody>
</table>
<hr>
<p>✅ से चिह्नित प्रोवाइडर Cinevva की इंटीग्रेटेड एसेट लाइब्रेरी के जरिए सीधे सर्च किए जा सकते हैं। इन सभी में एक साथ सर्च करने के लिए Assets पैनल खोलें। बाकी बाहरी स्रोत हैं जिन्हें उन एसेट्स के लिए बुकमार्क करना फायदेमंद है जिन्हें Cinevva अभी इंडेक्स नहीं करता।</p>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="गेम्स-के-लिए-फ्री-3d-मॉडल-कहां-मिलेंगे" tabindex="-1">गेम्स के लिए फ्री 3D मॉडल कहां मिलेंगे? <a class="header-anchor" href="#गेम्स-के-लिए-फ्री-3d-मॉडल-कहां-मिलेंगे" aria-label="Permalink to &quot;गेम्स के लिए फ्री 3D मॉडल कहां मिलेंगे?&quot;"></a></h3>
<p>Poly Haven, Kenney और Quaternius फ्री, game-ready 3D मॉडल के लिए सबसे अच्छे शुरुआती बिंदु हैं, सभी CC0 के तहत हैं तो आप उन्हें बिना एट्रिब्यूशन के कमर्शियल तौर पर इस्तेमाल कर सकते हैं। ज्यादा विविधता के लिए, Sketchfab और BlendSwap के पास मिश्रित लाइसेंस के तहत विशाल लाइब्रेरी हैं। शिप करने से पहले हमेशा अलग मॉडल का लाइसेंस चेक करें।</p>
<h3 id="क्या-फ्री-गेम-एसेट्स-को-कमर्शियल-गेम्स-में-इस्तेमाल-करना-ठीक-है" tabindex="-1">क्या फ्री गेम एसेट्स को कमर्शियल गेम्स में इस्तेमाल करना ठीक है? <a class="header-anchor" href="#क्या-फ्री-गेम-एसेट्स-को-कमर्शियल-गेम्स-में-इस्तेमाल-करना-ठीक-है" aria-label="Permalink to &quot;क्या फ्री गेम एसेट्स को कमर्शियल गेम्स में इस्तेमाल करना ठीक है?&quot;"></a></h3>
<p>ज्यादातर ठीक हैं, पर यह लाइसेंस पर निर्भर करता है। CC0 एसेट्स (Poly Haven, Kenney, Quaternius, AmbientCG) public domain में हैं और बिना एट्रिब्यूशन के कमर्शियल इस्तेमाल के लिए फ्री हैं। CC-BY में क्रिएटर को क्रेडिट देना ज़रूरी है। CC-BY-NC और Editorial-Only एसेट्स कमर्शियल गेम्स में इस्तेमाल नहीं की जा सकतीं। ऊपर का लाइसेंस गाइड सेक्शन हर एक को विस्तार से समझाता है।</p>
<h3 id="फ्री-गेम-साउंड-इफेक्ट्स-के-लिए-सबसे-अच्छी-साइट-कौन-सी-है" tabindex="-1">फ्री गेम साउंड इफेक्ट्स के लिए सबसे अच्छी साइट कौन सी है? <a class="header-anchor" href="#फ्री-गेम-साउंड-इफेक्ट्स-के-लिए-सबसे-अच्छी-साइट-कौन-सी-है" aria-label="Permalink to &quot;फ्री गेम साउंड इफेक्ट्स के लिए सबसे अच्छी साइट कौन सी है?&quot;"></a></h3>
<p>Freesound के पास फ्री साउंड इफेक्ट्स की सबसे बड़ी लाइब्रेरी है, हालांकि हर क्लिप के लिए लाइसेंस अलग होते हैं, तो हर एक को चेक करें। Kenney छोटे पर पूरी तरह CC0 ऑडियो पैक देता है जो शून्य एट्रिब्यूशन की ज़रूरत के साथ किसी भी कमर्शियल प्रोजेक्ट के लिए सुरक्षित हैं।</p>
<h3 id="फ्री-कैरेक्टर-एनिमेशन-कहां-से-मिलेंगे" tabindex="-1">फ्री कैरेक्टर एनिमेशन कहां से मिलेंगे? <a class="header-anchor" href="#फ्री-कैरेक्टर-एनिमेशन-कहां-से-मिलेंगे" aria-label="Permalink to &quot;फ्री कैरेक्टर एनिमेशन कहां से मिलेंगे?&quot;"></a></h3>
<p>Mixamo फ्री कैरेक्टर एनिमेशन और ऑटो-रिगिंग के लिए जाना-माना स्रोत है। एक कैरेक्टर अपलोड या चुनें, हजारों मोशन-कैप्चर एनिमेशन में से चुनें, और उन्हें अपने engine के लिए तैयार एक्सपोर्ट करें, सब Adobe अकाउंट के साथ फ्री।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/game-asset-licenses.html">Game Asset Licenses Explained</a> — CC0, CC-BY, Royalty-Free और अन्य लाइसेंस को समझना</li>
<li><a href="/hi/guides/game-dev-courses.html">Online Game Development Courses</a> — Blender में 3D मॉडलिंग और गेम आर्ट पर कोर्स</li>
<li><a href="/hi/tutorials/pixel-art-rendering.html">Pixel art rendering</a> — browser में स्प्राइट शीट और पिक्सेल आर्ट रेंडर करना</li>
<li><a href="/hi/tutorials/streaming-asset-loading.html">Streaming asset loading</a> — गेम एसेट्स को क्रमिक रूप से लोड और कैश करना</li>
<li><a href="/hi/guides/threejs-usdc-tech-report.html">Three.js + USDC in the Browser</a> — Three.js में USD 3D एसेट्स लोड करना</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ऑनलाइन गेम डेवलपमेंट कोर्स गाइड]]></title>
            <link>https://app.cinevva.com/hi/guides/game-dev-courses</link>
            <guid>https://app.cinevva.com/hi/guides/game-dev-courses</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[गेम डेवलपमेंट के लिए ऑनलाइन कोर्स, engines, design, art और audio, साथ में विश्वसनीयता विश्लेषण, रिव्यू और कीमत]]></description>
            <content:encoded><![CDATA[<h1 id="ऑनलाइन-गेम-डेवलपमेंट-कोर्स-गाइड" tabindex="-1">ऑनलाइन गेम डेवलपमेंट कोर्स गाइड <a class="header-anchor" href="#ऑनलाइन-गेम-डेवलपमेंट-कोर्स-गाइड" aria-label="Permalink to &quot;ऑनलाइन गेम डेवलपमेंट कोर्स गाइड&quot;"></a></h1>
<p>गेम डेवलपमेंट सीखने के लिए ऑनलाइन कोर्स। यह गाइड engine-specific कोर्स, game design theory, खास स्किल (art, audio) और platform तुलना को कवर करता है, साथ में विश्वसनीयता आकलन, स्टूडेंट रिव्यू और कीमत की जानकारी।</p>
<div class="tip custom-block"><p class="custom-block-title">इसके बजाय फ्री एसेट्स ढूंढ रहे हैं?</p>
<p>3D models, textures, audio और बहुत कुछ के लिए हमारी <a href="/hi/guides/game-assets-guide.html">फ्री गेम एसेट्स कहां मिलें</a> गाइड देखें।</p>
</div>
<h2 id="क्विक-रेफरेंस" tabindex="-1">क्विक रेफरेंस <a class="header-anchor" href="#क्विक-रेफरेंस" aria-label="Permalink to &quot;क्विक रेफरेंस&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>लक्ष्य</th>
<th>बेहतरीन विकल्प</th>
<th>कीमत रेंज</th>
<th>रेटिंग</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Unity Beginner</strong></td>
<td>GameDev.tv Complete Unity 3D (Udemy)</td>
<td>$12–30 (सेल)</td>
<td>⭐ 4.7/5</td>
</tr>
<tr>
<td><strong>Unity Formal Credential</strong></td>
<td>Michigan State Specialization (Coursera)</td>
<td>$49/महीना</td>
<td>⭐ 4.7/5</td>
</tr>
<tr>
<td><strong>Unreal Engine C++</strong></td>
<td>Stephen Ulibarri UE5 Course (Udemy)</td>
<td>$15–30 (सेल)</td>
<td>⭐ 4.8/5</td>
</tr>
<tr>
<td><strong>Godot Engine</strong></td>
<td>GDQuest Bundles</td>
<td>$84–216</td>
<td>⭐ 4.8/5</td>
</tr>
<tr>
<td><strong>Game Design Theory</strong></td>
<td>Harvard CS50 Game Dev (आर्काइव, फ्री)</td>
<td>फ्री</td>
<td>⭐ 4.6/5</td>
</tr>
<tr>
<td><strong>3D Modeling for Games</strong></td>
<td>Complete Blender Creator (Udemy)</td>
<td>$15–30 (सेल)</td>
<td>⭐ 4.7/5</td>
</tr>
<tr>
<td><strong>Game Audio</strong></td>
<td>Berklee Game Audio Certificate</td>
<td>~$4,500</td>
<td>⭐ 4.8/5</td>
</tr>
<tr>
<td><strong>Free Official Training</strong></td>
<td>Unity Learn Pathways</td>
<td>फ्री</td>
<td>⭐ 4.5/5</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="गेम-engine-कोर्स" tabindex="-1">गेम engine कोर्स <a class="header-anchor" href="#गेम-engine-कोर्स" aria-label="Permalink to &quot;गेम engine कोर्स&quot;"></a></h2>
<h3 id="unity" tabindex="-1">Unity <a class="header-anchor" href="#unity" aria-label="Permalink to &quot;Unity&quot;"></a></h3>
<h4 id="gamedev-tv-complete-unity-developer-3d" tabindex="-1">GameDev.tv Complete Unity Developer 3D <a class="header-anchor" href="#gamedev-tv-complete-unity-developer-3d" aria-label="Permalink to &quot;GameDev.tv Complete Unity Developer 3D&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> ऐसे beginners जो प्रोजेक्ट-आधारित हैंड्स-ऑन सीखना चाहते हैं</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Udemy</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$139 लिस्ट / <strong>$12–30 सेल पर</strong></td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>~27 घंटे वीडियो + प्रोजेक्ट</td>
</tr>
<tr>
<td><strong>रेटिंग</strong></td>
<td>⭐ 4.7/5 (460,000+ स्टूडेंट)</td>
</tr>
<tr>
<td><strong>आखिरी अपडेट</strong></td>
<td>Unity 6 (2025)</td>
</tr>
</tbody>
</table>
<p><strong>आप क्या बनाएंगे:</strong></p>
<ul>
<li>शुरू से 5 पूरे गेम</li>
<li>C# programming की बुनियाद</li>
<li>3D physics, AI और गेम मैकेनिक्स</li>
</ul>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ बिल्कुल नए beginners के लिए शानदार</li>
<li>✅ प्रोजेक्ट-आधारित सीखना (आप असली गेम बनाते हैं)</li>
<li>✅ Q&amp;A सपोर्ट के लिए बड़ी कम्युनिटी</li>
<li>✅ नए Unity वर्जन के लिए नियमित अपडेट</li>
<li>✅ खरीदने के बाद लाइफटाइम एक्सेस</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ कुछ सेक्शन धीमे लग सकते हैं</li>
<li>⚠️ पूरी कीमत बहुत ज्यादा है (हमेशा सेल पर खरीदें)</li>
<li>⚠️ optimization जैसे एडवांस टॉपिक पर कम गहराई</li>
</ul>
<p><strong>स्टूडेंट रिव्यू:</strong></p>
<blockquote>
<p>&quot;Beginners के लिए बढ़िया कोर्स। मैं कुछ न जानने से लेकर गेम के पोर्टफोलियो तक पहुंच गया।&quot; — Reddit r/unity</p>
</blockquote>
<blockquote>
<p>&quot;इंस्ट्रक्टर कॉन्सेप्ट साफ-साफ समझाते हैं। प्रोजेक्ट वाला तरीका आपको प्रेरित रखता है।&quot; — Udemy रिव्यू</p>
</blockquote>
<p><strong>विश्वसनीयता:</strong> GameDev.tv सबसे स्थापित गेम डेवलपमेंट एजुकेशन प्रोवाइडर में से एक है। Ben Tristem और Rick Davidson द्वारा शुरू किया गया, इन्होंने 20 लाख से ज्यादा स्टूडेंट को ट्रेन किया है। ये पुराने कोर्स हटाने को लेकर पारदर्शी हैं और एक्टिव कम्युनिटी फोरम चलाते हैं।</p>
<hr>
<h4 id="michigan-state-game-design-and-development-with-unity-specialization" tabindex="-1">Michigan State Game Design and Development with Unity Specialization <a class="header-anchor" href="#michigan-state-game-design-and-development-with-unity-specialization" aria-label="Permalink to &quot;Michigan State Game Design and Development with Unity Specialization&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> वे जो यूनिवर्सिटी क्रेडेंशियल और व्यवस्थित सीख चाहते हैं</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Coursera</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>फ्री ऑडिट / <strong>सर्टिफिकेट के लिए $49/महीना</strong></td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>~2 महीने (10 घंटे/हफ्ता)</td>
</tr>
<tr>
<td><strong>रेटिंग</strong></td>
<td>⭐ 4.7/5</td>
</tr>
<tr>
<td><strong>संस्थान</strong></td>
<td>Michigan State University</td>
</tr>
</tbody>
</table>
<p><strong>पाठ्यक्रम (पांच कोर्स, Unity में बने):</strong></p>
<ul>
<li>Game Design and Development 1: 2D Shooter</li>
<li>Game Design and Development 2: 2D Platformer</li>
<li>Game Design and Development 3: 3D Shooter</li>
<li>Game Design and Development 4: 3D Platformer</li>
<li>Capstone Project</li>
</ul>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ यूनिवर्सिटी-समर्थित क्रेडेंशियल</li>
<li>✅ हैंड्स-ऑन: आप पांच पूरे Unity गेम प्रोजेक्ट बनाते हैं</li>
<li>✅ फ्री ऑडिट कर सकते हैं (बिना सर्टिफिकेट)</li>
<li>✅ कड़ा अकादमिक तरीका</li>
<li>✅ business/entrepreneurship मॉड्यूल शामिल</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ Udemy कोर्स से धीमी गति</li>
<li>⚠️ दूसरे विकल्पों के मुकाबले कम हैंड्स-ऑन coding</li>
<li>⚠️ सर्टिफिकेट के लिए पेड सब्सक्रिप्शन जरूरी</li>
</ul>
<p><strong>किसके लिए बेहतरीन:</strong> करियर बदलने वाले जिन्हें औपचारिक क्रेडेंशियल चाहिए, या वे जो व्यवस्थित अकादमिक सीख पसंद करते हैं।</p>
<hr>
<h4 id="unity-learn-pathways" tabindex="-1">Unity Learn Pathways <a class="header-anchor" href="#unity-learn-pathways" aria-label="Permalink to &quot;Unity Learn Pathways&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> ऑफिशियल Unity ट्रेनिंग चाहने वाले बजट वाले learners</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Unity Learn (learn.unity.com)</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td><strong>फ्री</strong></td>
</tr>
<tr>
<td><strong>Pathways</strong></td>
<td>Junior Programmer, Creative Core, VR Development</td>
</tr>
<tr>
<td><strong>फॉर्मेट</strong></td>
<td>सेल्फ-पेस्ड tutorials + प्रोजेक्ट</td>
</tr>
</tbody>
</table>
<p><strong>उपलब्ध Pathways:</strong></p>
<ul>
<li><strong>Junior Programmer</strong> — पूरी तरह beginner से job-ready तक</li>
<li><strong>Creative Core</strong> — Art और design पर फोकस</li>
<li><strong>Unity Essentials</strong> — बुनियाद का त्वरित अवलोकन</li>
<li><strong>VR Development</strong> — Virtual reality स्पेशलाइजेशन</li>
</ul>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ पूरी तरह फ्री</li>
<li>✅ ऑफिशियल Unity कंटेंट (हमेशा अप-टू-डेट)</li>
<li>✅ पोर्टफोलियो पीस के साथ प्रोजेक्ट-आधारित</li>
<li>✅ बिल्ट-इन प्रोग्रेस ट्रैकिंग</li>
<li>✅ Unity certifications उपलब्ध</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ वीडियो कोर्स से कम दिलचस्प</li>
<li>⚠️ ज्यादा सेल्फ-डिसिप्लिन चाहिए</li>
<li>⚠️ पेड कोर्स के मुकाबले कम्युनिटी सपोर्ट कम एक्टिव</li>
</ul>
<hr>
<h3 id="unreal-engine" tabindex="-1">Unreal Engine <a class="header-anchor" href="#unreal-engine" aria-label="Permalink to &quot;Unreal Engine&quot;"></a></h3>
<h4 id="stephen-ulibarri-s-ue5-c-developer-course" tabindex="-1">Stephen Ulibarri's UE5 C++ Developer Course <a class="header-anchor" href="#stephen-ulibarri-s-ue5-c-developer-course" aria-label="Permalink to &quot;Stephen Ulibarri's UE5 C++ Developer Course&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> C++ में महारत चाहने वाले गंभीर डेवलपर</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Udemy</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$175 लिस्ट / <strong>$15–30 सेल पर</strong></td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>~50+ घंटे</td>
</tr>
<tr>
<td><strong>रेटिंग</strong></td>
<td>⭐ 4.8/5</td>
</tr>
<tr>
<td><strong>प्रोजेक्ट</strong></td>
<td>पूरा Action-RPG</td>
</tr>
</tbody>
</table>
<p><strong>आप क्या सीखेंगे:</strong></p>
<ul>
<li>Unreal Engine 5 शुरू से</li>
<li>गेम के लिए C++ programming</li>
<li>Blueprints विजुअल स्क्रिप्टिंग</li>
<li>एडवांस gameplay सिस्टम (combat, AI, inventory)</li>
</ul>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ गहरी C++ कवरेज (गेम डेव कोर्स में दुर्लभ)</li>
<li>✅ एक बड़ा पोर्टफोलियो प्रोजेक्ट बनाता है</li>
<li>✅ इंटरमीडिएट learners के लिए अच्छी गति</li>
<li>✅ Blueprints और C++ दोनों कवर करता है</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ कुछ programming बैकग्राउंड मानकर चलता है</li>
<li>⚠️ बहुत लंबा कोर्स (प्रतिबद्धता जरूरी)</li>
<li>⚠️ UE वर्जन अक्सर बदलते रहते हैं</li>
</ul>
<p><strong>स्टूडेंट रिव्यू:</strong></p>
<blockquote>
<p>&quot;मुझे मिला सबसे अच्छा Unreal कोर्स। Stephen सिर्फ 'क्या' नहीं, 'क्यों' भी समझाते हैं।&quot; — Udemy</p>
</blockquote>
<blockquote>
<p>&quot;दूसरे रिसोर्स से जूझने के बाद आखिरकार Unreal में C++ समझ आया।&quot; — Reddit r/unrealengine</p>
</blockquote>
<hr>
<h4 id="coursera-unreal-engine-for-beginners-specialization" tabindex="-1">Coursera Unreal Engine for Beginners Specialization <a class="header-anchor" href="#coursera-unreal-engine-for-beginners-specialization" aria-label="Permalink to &quot;Coursera Unreal Engine for Beginners Specialization&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> व्यवस्थित परिचय चाहने वाले बिल्कुल नए beginners</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Coursera</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$199 (सेल) / $399 सामान्य</td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>3 कोर्स, हर एक ~4 हफ्ते</td>
</tr>
<tr>
<td><strong>सर्टिफिकेट</strong></td>
<td>हां</td>
</tr>
</tbody>
</table>
<p><strong>कोर्स क्रम:</strong></p>
<ol>
<li>World Building in Unreal</li>
<li>Characters &amp; Interiors</li>
<li>Cameras &amp; Production</li>
</ol>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ Beginner-friendly (शुरू में coding की जरूरत नहीं)</li>
<li>✅ विजुअल/क्रिएटिव पहलुओं पर फोकस</li>
<li>✅ गेम डेव में आने वाले artists के लिए अच्छा</li>
<li>✅ यूनिवर्सिटी-स्टाइल सर्टिफिकेट</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ कम programming गहराई</li>
<li>⚠️ Udemy विकल्पों से महंगा</li>
<li>⚠️ programmers के बजाय environment artists के लिए बेहतर</li>
</ul>
<hr>
<h4 id="linkedin-learning-unreal-engine-5-essential-training" tabindex="-1">LinkedIn Learning: Unreal Engine 5 Essential Training <a class="header-anchor" href="#linkedin-learning-unreal-engine-5-essential-training" aria-label="Permalink to &quot;LinkedIn Learning: Unreal Engine 5 Essential Training&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> स्किल को जल्दी ताजा करना</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>LinkedIn Learning</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>सब्सक्रिप्शन (~$30/महीना) / फ्री ट्रायल उपलब्ध</td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>~3 घंटे</td>
</tr>
<tr>
<td><strong>रेटिंग</strong></td>
<td>⭐ 4.8/5</td>
</tr>
</tbody>
</table>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ उच्च प्रोडक्शन क्वालिटी</li>
<li>✅ त्वरित अवलोकन के लिए शानदार</li>
<li>✅ UE5.6 फीचर कवर करता है</li>
<li>✅ सर्टिफिकेट LinkedIn प्रोफाइल में जुड़ता है</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ गहरी सीख के लिए बहुत छोटा</li>
<li>⚠️ सब्सक्रिप्शन मॉडल (लाइफटाइम एक्सेस नहीं)</li>
<li>⚠️ प्राइमरी सीख के बजाय पूरक के तौर पर बेहतर</li>
</ul>
<hr>
<h3 id="godot-engine" tabindex="-1">Godot Engine <a class="header-anchor" href="#godot-engine" aria-label="Permalink to &quot;Godot Engine&quot;"></a></h3>
<h4 id="gdquest-study-programs" tabindex="-1">GDQuest Study Programs <a class="header-anchor" href="#gdquest-study-programs" aria-label="Permalink to &quot;GDQuest Study Programs&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> व्यवस्थित ट्रेनिंग चाहने वाले गंभीर Godot learners</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>school.gdquest.com</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$84–216 (bundles)</td>
</tr>
<tr>
<td><strong>फॉर्मेट</strong></td>
<td>इंटरैक्टिव कोर्स + कम्युनिटी</td>
</tr>
<tr>
<td><strong>रेटिंग</strong></td>
<td>⭐ 4.8/5</td>
</tr>
</tbody>
</table>
<p><strong>उपलब्ध Bundles:</strong></p>
<ul>
<li><strong>Starter Kit</strong> (~$84) — 2D और 3D बेसिक</li>
<li><strong>From Zero to Pro</strong> (~$216) — पूरा लर्निंग पाथ</li>
</ul>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ सबसे उच्च क्वालिटी वाले Godot-specific कोर्स</li>
<li>✅ इंटरैक्टिव एक्सरसाइज (सिर्फ वीडियो नहीं)</li>
<li>✅ Godot 4.x के लिए अपडेटेड</li>
<li>✅ मजबूत Discord कम्युनिटी</li>
<li>✅ जाने-माने Godot योगदानकर्ताओं ने बनाया</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ Udemy विकल्पों से महंगा</li>
<li>⚠️ Unity/Unreal कोर्स से छोटी कम्युनिटी</li>
</ul>
<p><strong>विश्वसनीयता:</strong> GDQuest टीम मान्यता प्राप्त Godot योगदानकर्ता और शिक्षक हैं। इन्होंने ऑफिशियल Godot डॉक्यूमेंटेशन बनाई है और कम्युनिटी में इनका सम्मान है।</p>
<hr>
<h4 id="complete-godot-4-beginner-course-udemy" tabindex="-1">Complete Godot 4 Beginner Course (Udemy) <a class="header-anchor" href="#complete-godot-4-beginner-course-udemy" aria-label="Permalink to &quot;Complete Godot 4 Beginner Course (Udemy)&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> बजट का ध्यान रखने वाले beginners</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Udemy</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$80–100 लिस्ट / <strong>$15–25 सेल पर</strong></td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>~20 घंटे</td>
</tr>
<tr>
<td><strong>प्रोजेक्ट</strong></td>
<td>Space shooter, platformer, top-down zombie game</td>
</tr>
</tbody>
</table>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ सेल के दौरान किफायती</li>
<li>✅ 3 पूरे गेम बनाता है</li>
<li>✅ GDScript पर फोकस (Godot की मूल भाषा)</li>
<li>✅ बिल्कुल नए beginners के लिए अच्छा</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ GDQuest से कम गहराई</li>
<li>⚠️ छोटी सपोर्ट कम्युनिटी</li>
</ul>
<hr>
<h4 id="godot-dev-academy" tabindex="-1">Godot Dev Academy <a class="header-anchor" href="#godot-dev-academy" aria-label="Permalink to &quot;Godot Dev Academy&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> सब्सक्रिप्शन एक्सेस चाहने वाले लगातार learners</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>godotdevacademy.com</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td><strong>$19.99/महीना</strong></td>
</tr>
<tr>
<td><strong>एक्सेस</strong></td>
<td>सारे कोर्स शामिल</td>
</tr>
</tbody>
</table>
<p><strong>इसमें शामिल:</strong></p>
<ul>
<li>2D platformer कोर्स</li>
<li>RPG डेवलपमेंट</li>
<li>Mobile गेम डेव</li>
<li>फ्री beginner कोर्स उपलब्ध</li>
</ul>
<p><strong>किसके लिए बेहतरीन:</strong> वे जो समय के साथ कई कोर्स करने की योजना रखते हैं। अगर आप लंबे समय तक Godot सीखने के लिए प्रतिबद्ध हैं तो अच्छी वैल्यू।</p>
<hr>
<h2 id="game-design-theory" tabindex="-1">Game Design Theory <a class="header-anchor" href="#game-design-theory" aria-label="Permalink to &quot;Game Design Theory&quot;"></a></h2>
<h3 id="harvard-cs50-s-introduction-to-game-development" tabindex="-1">Harvard CS50's Introduction to Game Development <a class="header-anchor" href="#harvard-cs50-s-introduction-to-game-development" aria-label="Permalink to &quot;Harvard CS50's Introduction to Game Development&quot;"></a></h3>
<p><strong>किसके लिए बेहतरीन:</strong> गेम programming कॉन्सेप्ट की बुनियादी समझ</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>cs50.harvard.edu/games (आर्काइव)</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td><strong>फ्री</strong></td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>12 हफ्ते</td>
</tr>
<tr>
<td><strong>स्थिति</strong></td>
<td>आर्काइव (सामग्री उपलब्ध, कोई नया सबमिशन नहीं)</td>
</tr>
</tbody>
</table>
<p><strong>आप क्या सीखेंगे:</strong></p>
<ul>
<li>2D और 3D ग्राफिक्स की बुनियाद</li>
<li>Animation और sound design</li>
<li>Collision detection और physics</li>
<li>कई engines: LÖVE2D, Unity, Lua</li>
</ul>
<p><strong>आप किन गेम को क्लोन करेंगे:</strong></p>
<ul>
<li>Pong, Flappy Bird, Breakout</li>
<li>Super Mario Bros., Legend of Zelda</li>
<li>Angry Birds, Pokémon</li>
<li>3D helicopter game, Portal</li>
</ul>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ Harvard-क्वालिटी की पढ़ाई</li>
<li>✅ पूरी तरह फ्री</li>
<li>✅ शानदार theory और बुनियाद</li>
<li>✅ कई engine का अनुभव</li>
<li>✅ सारी सामग्री अब भी उपलब्ध</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ कोर्स आधिकारिक तौर पर रिटायर (जून 2024)</li>
<li>⚠️ कोई नया सर्टिफिकेट या ग्रेडिंग नहीं</li>
<li>⚠️ कुछ टेक्नोलॉजी पुरानी (पुराने Unity वर्जन)</li>
<li>⚠️ सेल्फ-डायरेक्शन जरूरी</li>
</ul>
<p><strong>नोट:</strong> Harvard ने एक नया कोर्स लॉन्च किया है, CS50's Introduction to 2D Game Development (CS50 2D), जो रिटायर हुए वर्जन की जगह लेता है। यह Lua और LOVE 2D framework से बने 2D गेम पर फोकस करता है (Pong, Flappy Bird, Breakout, Match 3, Super Mario Bros., Legend of Zelda, Angry Birds, Pokemon)। लेक्चर 21 अप्रैल 2026 से रोज YouTube पर आते हैं, और आप cs50.edx.org/2d पर सर्टिफिकेट के लिए रजिस्टर कर सकते हैं।</p>
<p><strong>स्टूडेंट रिव्यू:</strong></p>
<blockquote>
<p>&quot;गेम programming के सबसे अच्छे परिचयों में से एक जो मैंने देखा। ऐसी बुनियाद कवर करता है जो किसी भी engine में काम आती है।&quot; — Reddit r/cs50</p>
</blockquote>
<blockquote>
<p>&quot;सर्टिफिकेट के बिना भी, मिला ज्ञान इसके लायक है।&quot; — कोर्स रिव्यू</p>
</blockquote>
<hr>
<h3 id="west-virginia-university-m-a-in-game-design-online" tabindex="-1">West Virginia University M.A. in Game Design (Online) <a class="header-anchor" href="#west-virginia-university-m-a-in-game-design-online" aria-label="Permalink to &quot;West Virginia University M.A. in Game Design (Online)&quot;"></a></h3>
<p><strong>किसके लिए बेहतरीन:</strong> औपचारिक स्नातकोत्तर शिक्षा</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>WVU Online</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>~$22,650 कुल</td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>2 साल (लचीला)</td>
</tr>
<tr>
<td><strong>फॉर्मेट</strong></td>
<td>पूरी तरह asynchronous ऑनलाइन</td>
</tr>
<tr>
<td><strong>क्रेडेंशियल</strong></td>
<td>Master's Degree</td>
</tr>
</tbody>
</table>
<p><strong>पाठ्यक्रम के मुख्य बिंदु:</strong></p>
<ul>
<li>Game Theory (सांस्कृतिक और सौंदर्यात्मक विश्लेषण)</li>
<li>Game Narrative और Storytelling</li>
<li>Player Experience Design</li>
<li>Capstone गेम प्रोटोटाइप</li>
</ul>
<p><strong>किसके लिए बेहतरीन:</strong> वे जो गेम डेवलपमेंट में पढ़ाने, रिसर्च या नेतृत्व पदों के लिए अकादमिक क्रेडेंशियल चाहते हैं।</p>
<hr>
<h2 id="खास-स्किल" tabindex="-1">खास स्किल <a class="header-anchor" href="#खास-स्किल" aria-label="Permalink to &quot;खास स्किल&quot;"></a></h2>
<h3 id="गेम-के-लिए-3d-modeling" tabindex="-1">गेम के लिए 3D Modeling <a class="header-anchor" href="#गेम-के-लिए-3d-modeling" aria-label="Permalink to &quot;गेम के लिए 3D Modeling&quot;"></a></h3>
<h4 id="complete-blender-creator-gamedev-tv" tabindex="-1">Complete Blender Creator (GameDev.tv) <a class="header-anchor" href="#complete-blender-creator-gamedev-tv" aria-label="Permalink to &quot;Complete Blender Creator (GameDev.tv)&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> गेम एसेट बनाने के लिए Blender सीखने वाले beginners</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Udemy</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$140 लिस्ट / <strong>$15–30 सेल पर</strong></td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>~30 घंटे</td>
</tr>
<tr>
<td><strong>रेटिंग</strong></td>
<td>⭐ 4.7/5 (200,000+ स्टूडेंट)</td>
</tr>
<tr>
<td><strong>अपडेट</strong></td>
<td>Blender 4.4 (2025)</td>
</tr>
</tbody>
</table>
<p><strong>आप क्या सीखेंगे:</strong></p>
<ul>
<li>Blender की बुनियाद</li>
<li>3D modeling तकनीक</li>
<li>UV unwrapping और texturing</li>
<li>बेसिक animation</li>
<li>गेम engines में एक्सपोर्ट</li>
</ul>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ बहुत बड़ी स्टूडेंट कम्युनिटी</li>
<li>✅ प्रोजेक्ट-आधारित तरीका</li>
<li>✅ नए Blender वर्जन के लिए नियमित अपडेट</li>
<li>✅ बिल्कुल नए beginners के लिए शानदार</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ बहुत सामान्य (गेम-specific pipeline नहीं)</li>
<li>⚠️ लंबी कोर्स प्रतिबद्धता</li>
</ul>
<hr>
<h4 id="blender-3d-modeling-for-games-—-complete-workflow-udemy" tabindex="-1">Blender 3D Modeling for Games — Complete Workflow (Udemy) <a class="header-anchor" href="#blender-3d-modeling-for-games-—-complete-workflow-udemy" aria-label="Permalink to &quot;Blender 3D Modeling for Games — Complete Workflow (Udemy)&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> गेम-specific एसेट pipeline</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Udemy</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$15–40 सेल पर</td>
</tr>
<tr>
<td><strong>फोकस</strong></td>
<td>Game-ready एसेट workflow</td>
</tr>
</tbody>
</table>
<p><strong>आप क्या सीखेंगे:</strong></p>
<ul>
<li>Block-out से फाइनल एसेट तक</li>
<li>Game-optimized topology</li>
<li>Texturing और materials</li>
<li>Engine export workflow</li>
</ul>
<p><strong>किसके लिए बेहतरीन:</strong> वे जो सामान्य Blender स्किल के बजाय खास तौर पर गेम एसेट बनाने पर निशाना लगा रहे हैं।</p>
<hr>
<h3 id="game-audio-और-sound-design" tabindex="-1">Game Audio और Sound Design <a class="header-anchor" href="#game-audio-और-sound-design" aria-label="Permalink to &quot;Game Audio और Sound Design&quot;"></a></h3>
<h4 id="berklee-online-game-audio-design-certificate" tabindex="-1">Berklee Online: Game Audio Design Certificate <a class="header-anchor" href="#berklee-online-game-audio-design-certificate" aria-label="Permalink to &quot;Berklee Online: Game Audio Design Certificate&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> प्रोफेशनल-स्तर की गेम audio ट्रेनिंग</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Berklee Online</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$4,725 कुल (या पूरा भुगतान करने पर $4,253) / $1,575 प्रति कोर्स, साथ में $175 रजिस्ट्रेशन</td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>3 कोर्स, हर एक 12 हफ्ते</td>
</tr>
<tr>
<td><strong>शुरुआती तारीख</strong></td>
<td>टर्म-आधारित नामांकन (अगली शुरुआत 29 जून)</td>
</tr>
</tbody>
</table>
<p><strong>पाठ्यक्रम:</strong></p>
<ul>
<li>Game Audio 101 — बुनियाद</li>
<li>Sound production और dialogue</li>
<li>Wwise के साथ audio integration और interactive scoring</li>
<li>एक प्रोफेशनल demo reel बनाना</li>
</ul>
<p>Berklee का सर्टिफिकेट अब तीन कोर्स के रूप में बना है: Game Design Principles, Game Audio 101, और Game Audio Production with Wwise (कुल 9 credits)।</p>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ इंडस्ट्री में मान्यता प्राप्त क्रेडेंशियल</li>
<li>✅ इंडस्ट्री-स्टैंडर्ड टूल सीखें (Wwise, FMOD)</li>
<li>✅ म्यूजिक एजुकेशन में Berklee की प्रतिष्ठा</li>
<li>✅ पोर्टफोलियो बनाने पर फोकस</li>
</ul>
<p><strong>कमजोर पक्ष:</strong></p>
<ul>
<li>⚠️ महंगा</li>
<li>⚠️ समय-केंद्रित (प्रोफेशनल प्रतिबद्धता)</li>
</ul>
<p><strong>किसके लिए बेहतरीन:</strong> वे जो गेम audio को करियर के तौर पर अपना रहे हैं।</p>
<hr>
<h4 id="game-audio-essentials-udemy" tabindex="-1">Game Audio Essentials (Udemy) <a class="header-anchor" href="#game-audio-essentials-udemy" aria-label="Permalink to &quot;Game Audio Essentials (Udemy)&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> गेम audio का बजट-फ्रेंडली परिचय</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Udemy</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$50–100 लिस्ट / <strong>$15–25 सेल पर</strong></td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>~10 घंटे</td>
</tr>
<tr>
<td><strong>अपडेट</strong></td>
<td>जुलाई 2025</td>
</tr>
</tbody>
</table>
<p><strong>आप क्या सीखेंगे:</strong></p>
<ul>
<li>Foley और sound effect बनाना</li>
<li>Unity/Unreal/Godot में audio integration</li>
<li>Looping और spatial audio</li>
<li>व्यावहारिक sound design तकनीक</li>
</ul>
<p><strong>मजबूत पक्ष:</strong></p>
<ul>
<li>✅ किफायती</li>
<li>✅ हैंड्स-ऑन व्यावहारिक स्किल</li>
<li>✅ कई गेम engines कवर करता है</li>
<li>✅ indie डेवलपर के लिए अच्छा</li>
</ul>
<hr>
<h4 id="domestika-designing-video-game-soundtracks" tabindex="-1">Domestika: Designing Video Game Soundtracks <a class="header-anchor" href="#domestika-designing-video-game-soundtracks" aria-label="Permalink to &quot;Domestika: Designing Video Game Soundtracks&quot;"></a></h4>
<p><strong>किसके लिए बेहतरीन:</strong> गेम म्यूजिक में आना चाहने वाले composers</p>
<table tabindex="0">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Platform</strong></td>
<td>Domestika</td>
</tr>
<tr>
<td><strong>कीमत</strong></td>
<td>$10–60 (सेल के साथ बदलता है)</td>
</tr>
<tr>
<td><strong>अवधि</strong></td>
<td>~3 घंटे</td>
</tr>
<tr>
<td><strong>फोकस</strong></td>
<td>गेम के लिए म्यूजिक composition</td>
</tr>
</tbody>
</table>
<p><strong>किसके लिए बेहतरीन:</strong> ऐसे संगीतकार जो गेम साउंडट्रैक composition में जाना चाहते हैं।</p>
<hr>
<h2 id="platform-लिंक" tabindex="-1">Platform लिंक <a class="header-anchor" href="#platform-लिंक" aria-label="Permalink to &quot;Platform लिंक&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Platform</th>
<th>URL</th>
<th>किसके लिए बेहतरीन</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Udemy</strong></td>
<td><a href="https://www.udemy.com/" target="_blank" rel="noreferrer">udemy.com</a></td>
<td>सेल पर किफायती कोर्स, बड़ा चयन</td>
</tr>
<tr>
<td><strong>Coursera</strong></td>
<td><a href="https://www.coursera.org/" target="_blank" rel="noreferrer">coursera.org</a></td>
<td>यूनिवर्सिटी कोर्स, औपचारिक क्रेडेंशियल</td>
</tr>
<tr>
<td><strong>Unity Learn</strong></td>
<td><a href="https://learn.unity.com/" target="_blank" rel="noreferrer">learn.unity.com</a></td>
<td>फ्री ऑफिशियल Unity ट्रेनिंग</td>
</tr>
<tr>
<td><strong>GDQuest</strong></td>
<td><a href="https://school.gdquest.com/" target="_blank" rel="noreferrer">school.gdquest.com</a></td>
<td>कोर योगदानकर्ताओं से Godot-केंद्रित कोर्स</td>
</tr>
<tr>
<td><strong>Pluralsight</strong></td>
<td><a href="https://www.pluralsight.com/" target="_blank" rel="noreferrer">pluralsight.com</a></td>
<td>तकनीकी गहराई, skill assessments</td>
</tr>
<tr>
<td><strong>Skillshare</strong></td>
<td><a href="https://www.skillshare.com/" target="_blank" rel="noreferrer">skillshare.com</a></td>
<td>क्रिएटिव/design फोकस, किफायती सब्सक्रिप्शन</td>
</tr>
<tr>
<td><strong>Berklee Online</strong></td>
<td><a href="https://online.berklee.edu/" target="_blank" rel="noreferrer">online.berklee.edu</a></td>
<td>प्रोफेशनल गेम audio सर्टिफिकेशन</td>
</tr>
<tr>
<td><strong>edX / Harvard CS50</strong></td>
<td><a href="https://cs50.harvard.edu/games/" target="_blank" rel="noreferrer">cs50.harvard.edu/games</a></td>
<td>फ्री गेम डेवलपमेंट बुनियाद</td>
</tr>
<tr>
<td><strong>Domestika</strong></td>
<td><a href="https://www.domestika.org/" target="_blank" rel="noreferrer">domestika.org</a></td>
<td>किफायती क्रिएटिव कोर्स</td>
</tr>
<tr>
<td><strong>LinkedIn Learning</strong></td>
<td><a href="https://www.linkedin.com/learning/" target="_blank" rel="noreferrer">linkedin.com/learning</a></td>
<td>प्रोफेशनल डेवलपमेंट, Unreal Engine</td>
</tr>
<tr>
<td><strong>Blender</strong></td>
<td><a href="https://www.blender.org/" target="_blank" rel="noreferrer">blender.org</a></td>
<td>फ्री 3D modeling सॉफ्टवेयर</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="platform-तुलना" tabindex="-1">Platform तुलना <a class="header-anchor" href="#platform-तुलना" aria-label="Permalink to &quot;Platform तुलना&quot;"></a></h2>
<h3 id="udemy" tabindex="-1"><a href="https://www.udemy.com/" target="_blank" rel="noreferrer">Udemy</a> <a class="header-anchor" href="#udemy" aria-label="Permalink to &quot;[Udemy](https://www.udemy.com/)&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>फायदे</th>
<th>नुकसान</th>
</tr>
</thead>
<tbody>
<tr>
<td>✅ बहुत बड़ा कोर्स चयन</td>
<td>⚠️ क्वालिटी काफी अलग-अलग</td>
</tr>
<tr>
<td>✅ लाइफटाइम एक्सेस</td>
<td>⚠️ लिस्ट कीमत बढ़ी-चढ़ी होती है</td>
</tr>
<tr>
<td>✅ बार-बार सेल ($10–30)</td>
<td>⚠️ कुछ कोर्स पुराने हो जाते हैं</td>
</tr>
<tr>
<td>✅ 30-दिन रिफंड पॉलिसी</td>
<td>⚠️ कोई औपचारिक क्रेडेंशियल नहीं</td>
</tr>
<tr>
<td>✅ बड़ी Q&amp;A कम्युनिटी</td>
<td>⚠️ कोई लाइव पढ़ाई नहीं</td>
</tr>
</tbody>
</table>
<p><strong>खरीदने की टिप:</strong> Udemy पर कभी पूरी कीमत न दें। हर कुछ हफ्ते में 80–90% की छूट के साथ सेल आती है।</p>
<hr>
<h3 id="coursera" tabindex="-1">Coursera <a class="header-anchor" href="#coursera" aria-label="Permalink to &quot;Coursera&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>फायदे</th>
<th>नुकसान</th>
</tr>
</thead>
<tbody>
<tr>
<td>✅ यूनिवर्सिटी पार्टनरशिप</td>
<td>⚠️ सर्टिफिकेट के लिए सब्सक्रिप्शन मॉडल</td>
</tr>
<tr>
<td>✅ औपचारिक क्रेडेंशियल</td>
<td>⚠️ धीमी गति</td>
</tr>
<tr>
<td>✅ फ्री ऑडिट विकल्प</td>
<td>⚠️ Udemy से कम हैंड्स-ऑन</td>
</tr>
<tr>
<td>✅ व्यवस्थित लर्निंग पाथ</td>
<td>⚠️ ज्यादा महंगा हो सकता है</td>
</tr>
<tr>
<td>✅ अकादमिक कठोरता</td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>किसके लिए बेहतरीन:</strong> वे जिन्हें नौकरी के लिए क्रेडेंशियल चाहिए या जो व्यवस्थित अकादमिक सीख पसंद करते हैं।</p>
<hr>
<h3 id="pluralsight" tabindex="-1">Pluralsight <a class="header-anchor" href="#pluralsight" aria-label="Permalink to &quot;Pluralsight&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>फायदे</th>
<th>नुकसान</th>
</tr>
</thead>
<tbody>
<tr>
<td>✅ तकनीकी गहराई</td>
<td>⚠️ सिर्फ सब्सक्रिप्शन (~$29/महीना)</td>
</tr>
<tr>
<td>✅ assessments के साथ लर्निंग पाथ</td>
<td>⚠️ कुछ पुरानी सामग्री</td>
</tr>
<tr>
<td>✅ Unity पार्टनरशिप</td>
<td>⚠️ कम beginner-friendly</td>
</tr>
<tr>
<td>✅ Skill assessments</td>
<td>⚠️ कम कम्युनिटी इंटरैक्शन</td>
</tr>
</tbody>
</table>
<p><strong>किसके लिए बेहतरीन:</strong> तकनीकी गहराई और करियर-केंद्रित लर्निंग पाथ चाहने वाले इंटरमीडिएट डेवलपर।</p>
<hr>
<h3 id="skillshare" tabindex="-1">Skillshare <a class="header-anchor" href="#skillshare" aria-label="Permalink to &quot;Skillshare&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>फायदे</th>
<th>नुकसान</th>
</tr>
</thead>
<tbody>
<tr>
<td>✅ किफायती (~$168/साल)</td>
<td>⚠️ कोर्स क्वालिटी अलग-अलग</td>
</tr>
<tr>
<td>✅ क्रिएटिव/design फोकस</td>
<td>⚠️ कम तकनीकी गहराई</td>
</tr>
<tr>
<td>✅ beginners के लिए अच्छा</td>
<td>⚠️ कोई औपचारिक क्रेडेंशियल नहीं</td>
</tr>
<tr>
<td>✅ छोटे, समझने लायक कोर्स</td>
<td>⚠️ सब्सक्रिप्शन की दिक्कतें बताई गई हैं</td>
</tr>
</tbody>
</table>
<p><strong>किसके लिए बेहतरीन:</strong> कई टॉपिक एक्सप्लोर करने वाले शौकिया और क्रिएटिव-केंद्रित learners।</p>
<hr>
<h3 id="unity-learn" tabindex="-1">Unity Learn <a class="header-anchor" href="#unity-learn" aria-label="Permalink to &quot;Unity Learn&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>फायदे</th>
<th>नुकसान</th>
</tr>
</thead>
<tbody>
<tr>
<td>✅ पूरी तरह फ्री</td>
<td>⚠️ कम दिलचस्प फॉर्मेट</td>
</tr>
<tr>
<td>✅ ऑफिशियल और अप-टू-डेट</td>
<td>⚠️ सेल्फ-डिसिप्लिन जरूरी</td>
</tr>
<tr>
<td>✅ Unity certification पाथ</td>
<td>⚠️ सीमित कम्युनिटी सपोर्ट</td>
</tr>
<tr>
<td>✅ प्रोजेक्ट-आधारित</td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>किसके लिए बेहतरीन:</strong> ऑफिशियल Unity ट्रेनिंग चाहने वाले बजट पर सेल्फ-मोटिवेटेड learners।</p>
<hr>
<h2 id="इंस्ट्रक्टर-विश्वसनीयता-गाइड" tabindex="-1">इंस्ट्रक्टर विश्वसनीयता गाइड <a class="header-anchor" href="#इंस्ट्रक्टर-विश्वसनीयता-गाइड" aria-label="Permalink to &quot;इंस्ट्रक्टर विश्वसनीयता गाइड&quot;"></a></h2>
<h3 id="बहुत-सम्मानित-इंस्ट्रक्टर" tabindex="-1">बहुत सम्मानित इंस्ट्रक्टर <a class="header-anchor" href="#बहुत-सम्मानित-इंस्ट्रक्टर" aria-label="Permalink to &quot;बहुत सम्मानित इंस्ट्रक्टर&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>इंस्ट्रक्टर</th>
<th>Platform</th>
<th>खासियत</th>
<th>क्यों भरोसेमंद</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Ben Tristem / GameDev.tv</strong></td>
<td>Udemy</td>
<td>Unity, Unreal, Blender</td>
<td>10 लाख+ स्टूडेंट, कोर्स अपडेट को लेकर पारदर्शी</td>
</tr>
<tr>
<td><strong>Stephen Ulibarri</strong></td>
<td>Udemy</td>
<td>Unreal C++</td>
<td>गहरा तकनीकी ज्ञान, शानदार व्याख्या</td>
</tr>
<tr>
<td><strong>GDQuest Team</strong></td>
<td>GDQuest</td>
<td>Godot</td>
<td>ऑफिशियल Godot योगदानकर्ता</td>
</tr>
<tr>
<td><strong>Michigan State Faculty</strong></td>
<td>Coursera</td>
<td>Game Design</td>
<td>अकादमिक क्रेडेंशियल, रिसर्च बैकग्राउंड</td>
</tr>
<tr>
<td><strong>Berklee Faculty</strong></td>
<td>Berklee Online</td>
<td>Game Audio</td>
<td>इंडस्ट्री प्रोफेशनल, Berklee की प्रतिष्ठा</td>
</tr>
</tbody>
</table>
<h3 id="किन-खतरों-पर-नजर-रखें" tabindex="-1">किन खतरों पर नजर रखें <a class="header-anchor" href="#किन-खतरों-पर-नजर-रखें" aria-label="Permalink to &quot;किन खतरों पर नजर रखें&quot;"></a></h3>
<ul>
<li>❌ 2+ साल से अपडेट न हुए कोर्स</li>
<li>❌ पुरानी सामग्री की खास शिकायतों के साथ कम रेटिंग</li>
<li>❌ बिना दिखने वाले पोर्टफोलियो या क्रेडेंशियल वाले इंस्ट्रक्टर</li>
<li>❌ बिना दम वाली आक्रामक मार्केटिंग</li>
<li>❌ अव्यावहारिक समयसीमा में &quot;पूर्ण महारत&quot; का वादा करने वाले कोर्स</li>
</ul>
<hr>
<h2 id="लर्निंग-पाथ-सुझाव" tabindex="-1">लर्निंग पाथ सुझाव <a class="header-anchor" href="#लर्निंग-पाथ-सुझाव" aria-label="Permalink to &quot;लर्निंग पाथ सुझाव&quot;"></a></h2>
<h3 id="बिल्कुल-beginner-→-job-ready-unity" tabindex="-1">बिल्कुल Beginner → Job Ready (Unity) <a class="header-anchor" href="#बिल्कुल-beginner-→-job-ready-unity" aria-label="Permalink to &quot;बिल्कुल Beginner → Job Ready (Unity)&quot;"></a></h3>
<ol>
<li><strong>शुरू करें:</strong> Unity Learn Junior Programmer Pathway (फ्री)</li>
<li><strong>स्किल बनाएं:</strong> GameDev.tv Complete Unity 3D ($20)</li>
<li><strong>स्पेशलाइज करें:</strong> फोकस क्षेत्र चुनें (2D, 3D, mobile)</li>
<li><strong>पोर्टफोलियो:</strong> 3–5 पूरे गेम बनाएं</li>
<li><strong>क्रेडेंशियल (वैकल्पिक):</strong> Unity Certification या Coursera Specialization</li>
</ol>
<p><strong>अनुमानित खर्च:</strong> $20–150<br>
<strong>समय:</strong> 6–12 महीने (पार्ट-टाइम)</p>
<hr>
<h3 id="artist-→-game-developer" tabindex="-1">Artist → Game Developer <a class="header-anchor" href="#artist-→-game-developer" aria-label="Permalink to &quot;Artist → Game Developer&quot;"></a></h3>
<ol>
<li><strong>शुरू करें:</strong> Complete Blender Creator (Udemy) — $20</li>
<li><strong>Game Pipeline:</strong> Blender for Games workflow कोर्स — $20</li>
<li><strong>Engine बेसिक:</strong> Unity/Unreal beginner कोर्स — $20</li>
<li><strong>Integration:</strong> engine में एसेट इम्पोर्ट और इस्तेमाल करना सीखें</li>
</ol>
<p><strong>अनुमानित खर्च:</strong> $60–100<br>
<strong>समय:</strong> 4–8 महीने</p>
<hr>
<h3 id="programmer-→-game-developer" tabindex="-1">Programmer → Game Developer <a class="header-anchor" href="#programmer-→-game-developer" aria-label="Permalink to &quot;Programmer → Game Developer&quot;"></a></h3>
<ol>
<li><strong>शुरू करें:</strong> engine चुनें (Unity C# या Unreal C++)</li>
<li><strong>बुनियाद:</strong> इंटरमीडिएट-स्तर का engine कोर्स</li>
<li><strong>गहराई में:</strong> एडवांस gameplay सिस्टम</li>
<li><strong>पोर्टफोलियो:</strong> एक बड़ा गेम प्रोजेक्ट बनाएं</li>
</ol>
<p><strong>अनुमानित खर्च:</strong> $40–100<br>
<strong>समय:</strong> 3–6 महीने (अगर पहले से programming आती है)</p>
<hr>
<h3 id="बजट-पर-शौकिया" tabindex="-1">बजट पर शौकिया <a class="header-anchor" href="#बजट-पर-शौकिया" aria-label="Permalink to &quot;बजट पर शौकिया&quot;"></a></h3>
<ol>
<li><strong>शुरू करें:</strong> Unity Learn या CS50 Game Dev (फ्री)</li>
<li><strong>अगला कदम:</strong> Udemy सेल का इंतजार करें, एक फोकस्ड कोर्स खरीदें ($15)</li>
<li><strong>अभ्यास:</strong> छोटे गेम बनाएं, game jams में शामिल हों</li>
<li><strong>कम्युनिटी:</strong> फीडबैक के लिए Discord सर्वर जॉइन करें</li>
</ol>
<p><strong>अनुमानित खर्च:</strong> $0–30<br>
<strong>समय:</strong> अपनी गति से सीखें</p>
<hr>
<h2 id="कीमत-तुलना-सारांश" tabindex="-1">कीमत तुलना सारांश <a class="header-anchor" href="#कीमत-तुलना-सारांश" aria-label="Permalink to &quot;कीमत तुलना सारांश&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Platform</th>
<th>मॉडल</th>
<th>सामान्य खर्च</th>
<th>वैल्यू रेटिंग</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Unity Learn</strong></td>
<td>फ्री</td>
<td>$0</td>
<td>⭐⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>CS50 Games</strong></td>
<td>फ्री (आर्काइव)</td>
<td>$0</td>
<td>⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Udemy</strong></td>
<td>एक बार (सेल)</td>
<td>$12–30</td>
<td>⭐⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>GDQuest</strong></td>
<td>एक बार</td>
<td>$84–216</td>
<td>⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Skillshare</strong></td>
<td>सब्सक्रिप्शन</td>
<td>$168/साल</td>
<td>⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Pluralsight</strong></td>
<td>सब्सक्रिप्शन</td>
<td>$349/साल</td>
<td>⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Coursera</strong></td>
<td>सब्सक्रिप्शन + कोर्स</td>
<td>$49/महीना</td>
<td>⭐⭐⭐⭐</td>
</tr>
<tr>
<td><strong>LinkedIn Learning</strong></td>
<td>सब्सक्रिप्शन</td>
<td>$360/साल</td>
<td>⭐⭐⭐</td>
</tr>
<tr>
<td><strong>Berklee Online</strong></td>
<td>प्रति कोर्स</td>
<td>$1,500+</td>
<td>⭐⭐⭐⭐ (प्रोफेशनल)</td>
</tr>
<tr>
<td><strong>University Degrees</strong></td>
<td>डिग्री प्रोग्राम</td>
<td>$20,000+</td>
<td>करियर पर निर्भर</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="कोर्स-चुनने-के-लिए-टिप्स" tabindex="-1">कोर्स चुनने के लिए टिप्स <a class="header-anchor" href="#कोर्स-चुनने-के-लिए-टिप्स" aria-label="Permalink to &quot;कोर्स चुनने के लिए टिप्स&quot;"></a></h2>
<h3 id="_1-last-updated-तारीख-देखें" tabindex="-1">1. &quot;Last Updated&quot; तारीख देखें <a class="header-anchor" href="#_1-last-updated-तारीख-देखें" aria-label="Permalink to &quot;1. &quot;Last Updated&quot; तारीख देखें&quot;"></a></h3>
<p>गेम engines तेजी से बदलते हैं। 2026 में एक Unity 2020 कोर्स मौजूदा वर्जन से काफी अलग होगा। पिछले 12 महीनों में अपडेट हुए कोर्स ढूंढें।</p>
<h3 id="_2-फ्री-प्रिव्यू-कंटेंट-देखें" tabindex="-1">2. फ्री प्रिव्यू कंटेंट देखें <a class="header-anchor" href="#_2-फ्री-प्रिव्यू-कंटेंट-देखें" aria-label="Permalink to &quot;2. फ्री प्रिव्यू कंटेंट देखें&quot;"></a></h3>
<p>ज्यादातर platform फ्री प्रिव्यू देते हैं। इन्हें परखें:</p>
<ul>
<li>पढ़ाने का तरीका और गति</li>
<li>Audio/video क्वालिटी</li>
<li>क्या व्याख्याएं आपको समझ आती हैं</li>
</ul>
<h3 id="_3-हाल-के-रिव्यू-पढ़ें" tabindex="-1">3. हाल के रिव्यू पढ़ें <a class="header-anchor" href="#_3-हाल-के-रिव्यू-पढ़ें" aria-label="Permalink to &quot;3. हाल के रिव्यू पढ़ें&quot;"></a></h3>
<p>रिव्यू को सबसे हाल वाले से सॉर्ट करें। पुराने 5-स्टार रिव्यू मौजूदा कंटेंट क्वालिटी को नहीं दिखाते।</p>
<h3 id="_4-प्रोजेक्ट-क्वालिटी-जांचें" tabindex="-1">4. प्रोजेक्ट क्वालिटी जांचें <a class="header-anchor" href="#_4-प्रोजेक्ट-क्वालिटी-जांचें" aria-label="Permalink to &quot;4. प्रोजेक्ट क्वालिटी जांचें&quot;"></a></h3>
<p>देखें कि स्टूडेंट क्या बनाते हैं। क्या प्रोजेक्ट प्रभावशाली हैं? क्या वे पोर्टफोलियो में काम आएंगे?</p>
<h3 id="_5-कम्युनिटी-पर-ध्यान-दें" tabindex="-1">5. कम्युनिटी पर ध्यान दें <a class="header-anchor" href="#_5-कम्युनिटी-पर-ध्यान-दें" aria-label="Permalink to &quot;5. कम्युनिटी पर ध्यान दें&quot;"></a></h3>
<p>एक्टिव Q&amp;A सेक्शन, Discord सर्वर या फोरम वाले कोर्स तब बेहतर सपोर्ट देते हैं जब आप अटक जाते हैं।</p>
<h3 id="_6-अपनी-सीखने-की-शैली-से-मिलाएं" tabindex="-1">6. अपनी सीखने की शैली से मिलाएं <a class="header-anchor" href="#_6-अपनी-सीखने-की-शैली-से-मिलाएं" aria-label="Permalink to &quot;6. अपनी सीखने की शैली से मिलाएं&quot;"></a></h3>
<ul>
<li><strong>विजुअल learner:</strong> वीडियो कोर्स (Udemy, YouTube)</li>
<li><strong>पढ़ने वाले:</strong> Unity documentation, लिखित tutorials</li>
<li><strong>हैंड्स-ऑन:</strong> प्रोजेक्ट-आधारित कोर्स, game jams</li>
<li><strong>व्यवस्थित:</strong> यूनिवर्सिटी कोर्स, specializations</li>
</ul>
<hr>
<h2 id="सारांश-टेबल" tabindex="-1">सारांश टेबल <a class="header-anchor" href="#सारांश-टेबल" aria-label="Permalink to &quot;सारांश टेबल&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>कोर्स</th>
<th>Platform</th>
<th>कीमत</th>
<th>किसके लिए बेहतरीन</th>
<th>रेटिंग</th>
</tr>
</thead>
<tbody>
<tr>
<td>GameDev.tv Unity 3D</td>
<td>Udemy</td>
<td>$12–30</td>
<td>Unity beginners</td>
<td>⭐ 4.7</td>
</tr>
<tr>
<td>Michigan State Specialization</td>
<td>Coursera</td>
<td>$49/मा</td>
<td>औपचारिक क्रेडेंशियल</td>
<td>⭐ 4.7</td>
</tr>
<tr>
<td>Unity Learn Pathways</td>
<td>Unity</td>
<td>फ्री</td>
<td>बजट learners</td>
<td>⭐ 4.5</td>
</tr>
<tr>
<td>Stephen Ulibarri UE5</td>
<td>Udemy</td>
<td>$15–30</td>
<td>Unreal C++</td>
<td>⭐ 4.8</td>
</tr>
<tr>
<td>Coursera UE Specialization</td>
<td>Coursera</td>
<td>$199</td>
<td>UE beginners</td>
<td>⭐ 4.6</td>
</tr>
<tr>
<td>GDQuest Bundles</td>
<td>GDQuest</td>
<td>$84–216</td>
<td>Godot learners</td>
<td>⭐ 4.8</td>
</tr>
<tr>
<td>Godot Beginner Course</td>
<td>Udemy</td>
<td>$15–25</td>
<td>बजट Godot</td>
<td>⭐ 4.5</td>
</tr>
<tr>
<td>Harvard CS50 Games</td>
<td>edX (आर्काइव)</td>
<td>फ्री</td>
<td>बुनियाद</td>
<td>⭐ 4.6</td>
</tr>
<tr>
<td>Complete Blender Creator</td>
<td>Udemy</td>
<td>$15–30</td>
<td>3D modeling</td>
<td>⭐ 4.7</td>
</tr>
<tr>
<td>Berklee Game Audio</td>
<td>Berklee Online</td>
<td>$4,500</td>
<td>प्रो audio</td>
<td>⭐ 4.8</td>
</tr>
<tr>
<td>Game Audio Essentials</td>
<td>Udemy</td>
<td>$15–25</td>
<td>बजट audio</td>
<td>⭐ 4.4</td>
</tr>
</tbody>
</table>
<hr>
<p>सीखना शुरू करने के लिए तैयार हैं? ऐसा कोर्स चुनें जो आपके बजट, स्किल स्तर और पसंदीदा engine से मेल खाए। सबसे जरूरी कदम है <strong>गेम बनाना शुरू करना</strong>, कोर्स तो बस ऐसे टूल हैं जो आपको वहां तक तेजी से पहुंचने में मदद करते हैं।</p>
<p>और रिसोर्स के लिए, देखें:</p>
<ul>
<li><a href="/hi/guides/game-assets-guide.html">फ्री गेम एसेट्स कहां मिलें</a></li>
<li><a href="/hi/guides/game-jams-hackathons.html">Game Jams और Hackathons गाइड</a> — सीखने का सबसे अच्छा तरीका है दबाव में शिप करना</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना गेम कैसे लॉन्च करें</a></li>
<li><a href="/hi/guides/web-game-engines-comparison.html">Web Game Engines तुलना</a> — कोर्स चुनने से पहले सही engine चुनना</li>
<li><a href="/hi/guides/game-asset-licenses.html">Game Asset Licenses समझाए गए</a> — कोर्स के एसेट इस्तेमाल करने से पहले लाइसेंस समझना</li>
<li><a href="/hi/tutorials/canvas-2d-game-loop.html">Canvas 2D game loop</a> — बिना कोर्स के बनाना शुरू करें, फ्री tutorial</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Game Jams और Hackathons की गाइड]]></title>
            <link>https://app.cinevva.com/hi/guides/game-jams-hackathons</link>
            <guid>https://app.cinevva.com/hi/guides/game-jams-hackathons</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Game jams और hackathons की पूरी गाइड - ये क्या हैं, बड़े इवेंट कौन से हैं, web games क्यों आगे रहती हैं, और Cinevva आपकी jam game को लॉन्च करने में कैसे मदद करता है]]></description>
            <content:encoded><![CDATA[<h1 id="game-jams-और-hackathons-की-गाइड" tabindex="-1">Game Jams और Hackathons की गाइड <a class="header-anchor" href="#game-jams-और-hackathons-की-गाइड" aria-label="Permalink to &quot;Game Jams और Hackathons की गाइड&quot;"></a></h1>
<div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:8px;margin:1.5rem 0">
<iframe src="https://www.youtube.com/embed/btOlp4_d1tc" style="position:absolute;top:0;left:0;width:100%;height:100%;border:0" allow="accelerometer;autoplay;clipboard-write;encrypted-media;gyroscope;picture-in-picture" allowfullscreen></iframe>
</div>
<p style="font-size:0.9rem;color:var(--vp-c-text-2);margin-top:-0.5rem">GMTK और Ludum Dare जैसी game jams जीतने के 5 टिप्स</p>
<p>Indie games का जन्म game jams में ही होता है। आप 48-72 घंटों में एक game बनाते हैं, हजारों players से तुरंत feedback पाते हैं, और कभी-कभी ऐसा कुछ लॉन्च कर देते हैं जो असली हिट बन जाता है। यह गाइड वह सब कवर करती है जो आपको जानना चाहिए।</p>
<h2 id="game-jam-क्या-है" tabindex="-1">Game Jam क्या है? <a class="header-anchor" href="#game-jam-क्या-है" aria-label="Permalink to &quot;Game Jam क्या है?&quot;"></a></h2>
<p>Game jam एक समय-सीमा वाला इवेंट है जिसमें आप शुरू से एक game बनाते हैं, आमतौर पर शुरुआत में घोषित किसी theme के इर्द-गिर्द। इसे game developers के लिए एक hackathon समझिए। ये आमतौर पर 48 घंटे से 30 दिन तक चलते हैं, टीम में एक से चार लोग होते हैं, और लक्ष्य होता है एक खेलने लायक prototype।</p>
<p>Game jams पॉलिश किए हुए, कमर्शियल प्रोडक्ट बनाने के बारे में नहीं हैं। ये प्रयोग करने, सीमाओं के बीच रचनात्मक तरीके से समस्या सुलझाने, और कम समय में कुछ मजेदार बनाने के बारे में हैं।</p>
<h2 id="ये-क्यों-मायने-रखती-हैं" tabindex="-1">ये क्यों मायने रखती हैं <a class="header-anchor" href="#ये-क्यों-मायने-रखती-हैं" aria-label="Permalink to &quot;ये क्यों मायने रखती हैं&quot;"></a></h2>
<p>नए developers के लिए, एक पूरी game शिप करने से बड़ी कोई बात नहीं, चाहे वह छोटी ही क्यों न हो। यहां अधूरापन सामान्य माना जाता है, इसलिए प्रयोग करना सुरक्षित है। दूसरे participants आपकी game खेलते और रेट करते हैं, जिससे आपको तुरंत feedback मिलता है। और एक पूरी हुई jam game दिखाती है कि आप सिर्फ बातें नहीं करते, काम करके दिखाते हैं।</p>
<p>अनुभवी developers के लिए, jams आपको तेजी से ideas टेस्ट करने देती हैं और महीनों लगाने से पहले concepts को परखने देती हैं। सीमाएं रचनात्मकता जगाती हैं और creative blocks तोड़ती हैं। आप collaborators, publishers और players से मिलते हैं। और कई सफल indie games jam entries के तौर पर शुरू हुई थीं।</p>
<p>Celeste की शुरुआत एक Ludum Dare game के रूप में हुई थी। Superhot एक 7-दिन के prototype के तौर पर शुरू हुई थी। Hollow Knight एक jam concept से विकसित हुई। Minit की शुरुआत एक 48-घंटे की jam से हुई। Papers, Please को Ludum Dare 29 के लिए बनाया गया था।</p>
<h2 id="_2026-की-बड़ी-game-jams" tabindex="-1">2026 की बड़ी Game Jams <a class="header-anchor" href="#_2026-की-बड़ी-game-jams" aria-label="Permalink to &quot;2026 की बड़ी Game Jams&quot;"></a></h2>
<h3 id="global-इवेंट" tabindex="-1">Global इवेंट <a class="header-anchor" href="#global-इवेंट" aria-label="Permalink to &quot;Global इवेंट&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>इवेंट</th>
<th>कब</th>
<th>फॉर्मेट</th>
<th>नोट्स</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Global Game Jam</strong></td>
<td>जनवरी के आखिर में</td>
<td>48 घंटे, local और remote sites</td>
<td>सबसे बड़ी jam, दुनिया भर में 40,000+ participants। 2026 संस्करण (26 जनवरी-1 फरवरी) वह मौका है जब GGJ अपनी शुरुआत के बाद 500,000 कुल participants पार करती है, लगभग 800 sites और 100 से ज्यादा देशों में।</td>
</tr>
<tr>
<td><strong>Ludum Dare</strong></td>
<td>अप्रैल, अक्टूबर (लगभग)</td>
<td>48h solo / 72h team</td>
<td>सबसे पुरानी और सम्मानित jams में से एक</td>
</tr>
<tr>
<td><strong>GMTK Game Jam</strong></td>
<td>गर्मियों में</td>
<td>48 घंटे</td>
<td>भारी viewership, आमतौर पर 7,000+ entries</td>
</tr>
<tr>
<td><strong>js13kGames</strong></td>
<td>अगस्त-सितंबर</td>
<td>13KB की सीमा, 30 दिन</td>
<td>web developers के लिए सबसे बढ़िया</td>
</tr>
<tr>
<td><strong>Gamedev.js Jam</strong></td>
<td>13-26 अप्रैल, 2026</td>
<td>13 दिन, सिर्फ HTML5</td>
<td>इनाम, आसान फॉर्मेट</td>
</tr>
</tbody>
</table>
<h3 id="itch-io-पर-चलती-रहने-वाली-और-नियमित-jams" tabindex="-1">itch.io पर चलती रहने वाली और नियमित Jams <a class="header-anchor" href="#itch-io-पर-चलती-रहने-वाली-और-नियमित-jams" aria-label="Permalink to &quot;itch.io पर चलती रहने वाली और नियमित Jams&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>Jam</th>
<th>विवरण</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Brackeys Game Jam 2026.2</strong></td>
<td>7 दिन, हजारों participants, 23-30 अगस्त, 2026</td>
</tr>
<tr>
<td><strong>Pirate Software Game Jam 18</strong></td>
<td>14 दिन, ~600+ participants</td>
</tr>
<tr>
<td><strong>Finally Finish Something 2026</strong></td>
<td>जनवरी, अधूरे WIPs पूरे करने के लिए</td>
</tr>
<tr>
<td><strong>2026 Annual Jam</strong></td>
<td>साल भर, ढीले नियम</td>
</tr>
<tr>
<td><strong>Retro Game Jam 2026</strong></td>
<td>8-14 फरवरी, retro लुक पर फोकस</td>
</tr>
</tbody>
</table>
<p><strong>और खोजें:</strong> <a href="https://itch.io/jams" target="_blank" rel="noreferrer">itch.io/jams</a> सैकड़ों सक्रिय और आने वाली jams की लिस्ट देता है।</p>
<hr>
<h2 id="web-games-क्यों-jams-में-जीतती-हैं" tabindex="-1">Web Games क्यों Jams में जीतती हैं <a class="header-anchor" href="#web-games-क्यों-jams-में-जीतती-हैं" aria-label="Permalink to &quot;Web Games क्यों Jams में जीतती हैं&quot;"></a></h2>
<p>अगर आप browser में खेलने लायक game बना सकते हैं, तो आपको बहुत बड़ा फायदा है।</p>
<h3 id="कोई-रुकावट-नहीं" tabindex="-1">कोई रुकावट नहीं <a class="header-anchor" href="#कोई-रुकावट-नहीं" aria-label="Permalink to &quot;कोई रुकावट नहीं&quot;"></a></h3>
<p>Jam judges दर्जनों games खेलते हैं। डाउनलोड वाली game के साथ वे download पर क्लिक करते हैं, उसका इंतजार करते हैं, extract या install करते हैं, executable ढूंढते हैं, और लॉन्च करते हैं। खेलना शुरू करने से पहले ही 5-10 मिनट लग जाते हैं। web game के साथ वे play पर क्लिक करते हैं और 2-5 सेकंड इंतजार करते हैं। और वे खेलना शुरू कर देते हैं।</p>
<p>रुकावट का हर सेकंड आपको plays, ratings और rankings के मामले में नुकसान पहुंचाता है।</p>
<h3 id="हर-जगह-चलती-है" tabindex="-1">हर जगह चलती है <a class="header-anchor" href="#हर-जगह-चलती-है" aria-label="Permalink to &quot;हर जगह चलती है&quot;"></a></h3>
<p>Web games Windows, Mac, Linux और ChromeOS पर चलती हैं। अगर आप touch सपोर्ट करते हैं तो ये mobile पर भी चलती हैं। आपको अपने विवरण में कभी &quot;Sorry, Windows only&quot; नहीं लिखना पड़ता। आप अपने संभावित audience को सबसे ज्यादा कर लेते हैं।</p>
<h3 id="शेयर-करना-आसान" tabindex="-1">शेयर करना आसान <a class="header-anchor" href="#शेयर-करना-आसान" aria-label="Permalink to &quot;शेयर करना आसान&quot;"></a></h3>
<p>आपको खेलने का सीधा link मिलता है। आप इसे tweets, Discord और blogs में embed कर सकते हैं। कोई संदिग्ध &quot;Google Drive से Download करें&quot; वाले links नहीं। social media पर वायरल होने के लिए बेहतर।</p>
<h3 id="तुरंत-updates" tabindex="-1">तुरंत Updates <a class="header-anchor" href="#तुरंत-updates" aria-label="Permalink to &quot;तुरंत Updates&quot;"></a></h3>
<p>Bug fix? सेकंडों में deploy। कोई balance की दिक्कत मिली? उसे लाइव patch करें। कोई &quot;v1.1 अपलोड हुआ, कृपया दोबारा डाउनलोड करें&quot; वाले मैसेज नहीं।</p>
<h3 id="तकनीकी-क्षमताएं" tabindex="-1">तकनीकी क्षमताएं <a class="header-anchor" href="#तकनीकी-क्षमताएं" aria-label="Permalink to &quot;तकनीकी क्षमताएं&quot;"></a></h3>
<p>WebGL और WebGPU आपको GPU-accelerated graphics देते हैं। Web Audio API पूरा साउंड सपोर्ट देता है। LocalStorage और IndexedDB आपको बिना किसी server के games सेव करने देते हैं। Service Workers offline खेलना संभव बनाते हैं। WebSockets multiplayer चालू करते हैं।</p>
<h2 id="अपनी-jam-game-को-खोजे-जाने-लायक-बनाना" tabindex="-1">अपनी Jam Game को खोजे जाने लायक बनाना <a class="header-anchor" href="#अपनी-jam-game-को-खोजे-जाने-लायक-बनाना" aria-label="Permalink to &quot;अपनी Jam Game को खोजे जाने लायक बनाना&quot;"></a></h2>
<p>Game jams हजारों games पैदा करती हैं। jam के बाद आपकी game itch.io पर हजारों दूसरी entries से, भर देने वाली &quot;New&quot; feed से, और कम समय वाले players से, जो बस सरसरी नजर डालते हैं, मुकाबला करती है।</p>
<p>पारंपरिक तरीके अच्छे से काम नहीं करते। Screenshots gameplay नहीं दिखाते। Trailers बनाने में घंटों लगते हैं और आप थके हुए होते हैं। Marketing के लिए वह ऊर्जा चाहिए जो आपके पास नहीं होती।</p>
<h3 id="छोटे-क्लिप-वाला-gameplay-काम-करता-है" tabindex="-1">छोटे क्लिप वाला Gameplay काम करता है <a class="header-anchor" href="#छोटे-क्लिप-वाला-gameplay-काम-करता-है" aria-label="Permalink to &quot;छोटे क्लिप वाला Gameplay काम करता है&quot;"></a></h3>
<p>अपने gameplay के 15 सेकंड रिकॉर्ड करें जो सबसे बढ़िया पल, मुख्य loop, असली hook दिखाते हों। Cinevva पर अपलोड करें और अपने itch.io पेज से लिंक करें। Players स्क्रॉल करते हैं, देखते हैं, क्लिक करते हैं, और तुरंत खेलते हैं।</p>
<p>आपकी game आपके gameplay से आंकी जाती है, आपकी marketing के हुनर से नहीं। आपको trailers के लिए समय नहीं चाहिए क्योंकि 15 सेकंड के clips काफी हैं। आपको AAA marketing से मुकाबला नहीं करना क्योंकि gameplay अपनी बात खुद कहता है। और players को डाउनलोड करने की जरूरत नहीं क्योंकि web games तुरंत खेली जाती हैं।</p>
<h3 id="वर्कफ्लो" tabindex="-1">वर्कफ्लो <a class="header-anchor" href="#वर्कफ्लो" aria-label="Permalink to &quot;वर्कफ्लो&quot;"></a></h3>
<p>Jam के दौरान, अपनी game बनाने पर ध्यान दें। आखिरी घंटे में, 2-3 तेज gameplay clips रिकॉर्ड करें।</p>
<p>सबमिशन के बाद, jam में सामान्य रूप से सबमिट करें, अपने clips Cinevva पर अपलोड करें, social media पर link शेयर करें, और देखें कि असली players आपकी game को खोजते और खेलते हैं।</p>
<h2 id="सफलता-की-रणनीतियां" tabindex="-1">सफलता की रणनीतियां <a class="header-anchor" href="#सफलता-की-रणनीतियां" aria-label="Permalink to &quot;सफलता की रणनीतियां&quot;"></a></h2>
<h3 id="jam-से-पहले" tabindex="-1">Jam से पहले <a class="header-anchor" href="#jam-से-पहले" aria-label="Permalink to &quot;Jam से पहले&quot;"></a></h3>
<p>अपने tools तैयार करें। अपना engine, IDE और art tools टेस्ट करें। Git के साथ version control सेट करें। एक project template तैयार रखें। assets import करने और बेसिक mechanics बनाने का अभ्यास करें।</p>
<p>खुद को तैयार करें। एक रात पहले अच्छी नींद लें। खाने-पीने का सामान जमा कर लें। अपना शेड्यूल खाली कर लें। घरवालों या roommates को बता दें कि आप व्यस्त रहने वाले हैं।</p>
<p>अगर आपकी टीम है, तो कम्युनिकेशन पर सहमत हों (Discord अच्छा काम करता है), मोटे-मोटे roles बांटें, और उपलब्धता को लेकर उम्मीदें तय करें।</p>
<h3 id="jam-के-दौरान" tabindex="-1">Jam के दौरान <a class="header-anchor" href="#jam-के-दौरान" aria-label="Permalink to &quot;Jam के दौरान&quot;"></a></h3>
<p>पहले 2 घंटों में, सोचें और प्लान करें। कई ideas निकालें और सबसे करने लायक चुनें। दायरे को बेरहमी से छोटा करें और 50% काट दें। अपने core loop को लिख लें। visual style पर सहमत हों।</p>
<p>घंटे 2 से 20 तक, core बनाएं। पहले मुख्य mechanic को चालू करें। Placeholder art ठीक है। जब तक core काम न करे तब तक कोई polish नहीं। बार-बार commit करें।</p>
<p>घंटे 20 से 40 तक, इसे खेलने लायक बनाएं। levels और enemies जैसी content जोड़ें। menu और game over screens के साथ बेसिक UI बनाएं। sound effects और music जोड़ें। लगातार टेस्ट करते रहें।</p>
<p>आखिरी 8 घंटों में, polish करें और शिप करें। सिर्फ ज़रूरी bugs ठीक करें। एक आखिरी art पास करें। अपना विवरण लिखें। screenshots और एक GIF कैप्चर करें। जल्दी सबमिट करें क्योंकि आप deadline मिस नहीं करना चाहते।</p>
<h3 id="jam-के-बाद" tabindex="-1">Jam के बाद <a class="header-anchor" href="#jam-के-बाद" aria-label="Permalink to &quot;Jam के बाद&quot;"></a></h3>
<p>तुरंत, आराम करें क्योंकि आपने यह हक कमाया है। social media पर शेयर करें। अपने teammates का शुक्रिया अदा करें।</p>
<p>एक हफ्ते के अंदर, दूसरी entries खेलें और रेट करें, comments का जवाब दें, feedback इकट्ठा करें, और gameplay clips रिकॉर्ड करें।</p>
<p>बाद में, तय करें कि आप development जारी रखना चाहते हैं या नहीं, एक post-mortem devlog लिखें, और जिन लोगों से मिले उनसे जुड़ें।</p>
<h3 id="आम-गलतियां" tabindex="-1">आम गलतियां <a class="header-anchor" href="#आम-गलतियां" aria-label="Permalink to &quot;आम गलतियां&quot;"></a></h3>
<p>उत्साह में scope creep हो जाती है। अपनी features की लिस्ट जल्दी लिख लें और उस पर टिके रहें। sound तब छूट जाता है जब आप इसे आखिर के लिए छोड़ देते हैं। placeholder sounds जल्दी जोड़ें। उलझाने वाले controls developer की अपनी नजर की कमी से आते हैं। निर्देश शामिल करें और दूसरों के साथ टेस्ट करें। टूटे हुए builds जल्दबाजी से आते हैं। jam में जल्दी ही exports टेस्ट करें। खराब विवरण थकान से आते हैं। बहुत थकने से पहले अपना draft बना लें।</p>
<h2 id="jams-के-लिए-web-games-बनाना" tabindex="-1">Jams के लिए Web Games बनाना <a class="header-anchor" href="#jams-के-लिए-web-games-बनाना" aria-label="Permalink to &quot;Jams के लिए Web Games बनाना&quot;"></a></h2>
<p>2D games के लिए, Phaser सबसे लोकप्रिय HTML5 game framework है। Pixi.js एक तेज 2D renderer है जिसे आप अपने logic के साथ जोड़ सकते हैं। Godot का HTML5 export बहुत बढ़िया है।</p>
<p>3D games के लिए, Three.js सबसे लचीली WebGL library है। Babylon.js एक पूरी सुविधाओं वाला 3D engine है। PlayCanvas web-native है और इसमें built-in editor है।</p>
<p>No-code या low-code के लिए, GDevelop एक visual game maker है जिसमें web export है। Construct ताकतवर no-code HTML5 games बनाता है।</p>
<h3 id="optimization" tabindex="-1">Optimization <a class="header-anchor" href="#optimization" aria-label="Permalink to &quot;Optimization&quot;"></a></h3>
<p>assets कंप्रेस करके और lazy loading से loading time को 10 सेकंड से नीचे रखें। loading progress दिखाएं ताकि players बीच में छोड़कर न जाएं। Chrome, Firefox और Safari पर टेस्ट करें क्योंकि browser की अपनी अजीब आदतें होती हैं। अगर हो सके तो touch controls और responsive layout के साथ इसे mobile-friendly बनाएं। डूब जाने के अहसास के लिए एक fullscreen बटन दें। एक sound toggle रखें क्योंकि हर कोई sound चालू नहीं रख सकता।</p>
<p>itch.io embed सेटिंग्स के लिए, 960px width इस्तेमाल करें (या अपना native resolution), 16:9 के लिए 540px height, अगर responsive है तो mobile-friendly चालू करें, fullscreen बटन चालू करें, और scrollbars बंद कर दें।</p>
<h2 id="jam-के-बाद-1" tabindex="-1">Jam के बाद <a class="header-anchor" href="#jam-के-बाद-1" aria-label="Permalink to &quot;Jam के बाद&quot;"></a></h2>
<p>पहले हफ्ते में, हर feedback का जवाब दें ताकि सद्भाव बने और आप सीखें। दूसरी entries खेलें और रेट करें क्योंकि community मायने रखती है। एक devlog पोस्ट करें जिसमें अपना अनुभव और जो काम आया या नहीं आया वह शेयर करें। gameplay clips अपलोड करें ताकि आपकी game पर ज्यादा नजरें पड़ें।</p>
<p>पहले महीने में, players ने जो bugs बताए उन्हें ठीक करें, छोटे polish सुधार करें जो कम मेहनत वाले पर ज्यादा असरदार हों, और GIFs के साथ social media पर अपनी jam की कहानी शेयर करें।</p>
<p>लंबे समय के लिए, अगर game में दम है, तो feedback के थीम इकट्ठा करें ताकि देख सकें कि players को लगातार क्या पसंद या नापसंद आया। आंकें कि क्या यहां एक बड़ी game बन सकती है। एक post-jam वर्जन की योजना बनाएं जो बढ़ी हुई और पॉलिश हो। itch.io पर PWYW या एक Steam रिलीज के जरिए monetization पर विचार करें।</p>
<p>ऐसे संकेत कि आपकी jam game कुछ और बड़ी बन सकती है: players ज्यादा content मांग रहे हों, streamers इसे उठा रहे हों, मिलती-जुलती games के मुकाबले ज्यादा ratings हों, हफ्तों बाद भी आप इसे लेकर उत्साहित हों, और content को 10 गुना करने का साफ रास्ता दिख रहा हो।</p>
<h2 id="संसाधन" tabindex="-1">संसाधन <a class="header-anchor" href="#संसाधन" aria-label="Permalink to &quot;संसाधन&quot;"></a></h2>
<p>communities के लिए, सक्रिय jam चर्चा के लिए <a href="https://reddit.com/r/gamejams" target="_blank" rel="noreferrer">r/gamejams</a> देखें, LD-केंद्रित बातचीत के लिए <a href="https://reddit.com/r/ludumdare" target="_blank" rel="noreferrer">r/ludumdare</a>, jams ढूंढने और जुड़ने के लिए <a href="https://itch.io/jams" target="_blank" rel="noreferrer">itch.io Jams</a>, और JavaScript game dev community के लिए <a href="https://gamedevjs.com" target="_blank" rel="noreferrer">Gamedev.js</a>।</p>
<p>tools के लिए, <a href="https://kenney.nl" target="_blank" rel="noreferrer">Kenney Assets</a> पर मुफ्त game assets हैं, <a href="https://opengameart.org" target="_blank" rel="noreferrer">OpenGameArt</a> पर CC-licensed art और audio है, <a href="https://freesound.org" target="_blank" rel="noreferrer">Freesound</a> पर sound effects हैं, और <a href="https://itch.io/docs/butler/" target="_blank" rel="noreferrer">itch.io Butler</a> तेज uploads के लिए एक CLI है।</p>
<p>सीखने के लिए, web game development की गाइड्स के लिए <a href="/hi/tutorials/">Cinevva Tutorials</a> देखें, अपने tools चुनने के लिए <a href="/hi/guides/web-game-engines-comparison.html">Web Game Engines की तुलना</a>, और अपने game पेज को बेहतर बनाने के लिए <a href="/hi/guides/itch-io-launch-guide.html">itch.io पर कैसे लॉन्च करें</a>।</p>
<h2 id="आपकी-अगली-jam" tabindex="-1">आपकी अगली Jam <a class="header-anchor" href="#आपकी-अगली-jam" aria-label="Permalink to &quot;आपकी अगली Jam&quot;"></a></h2>
<p>Jam से पहले, अपने tools install और टेस्ट करें, एक template प्रोजेक्ट तैयार करें, अगर इजाजत हो तो asset packs जुटाएं, अपनी टीम बनाएं या अकेले जाने का फैसला करें, और अपना calendar ब्लॉक करें।</p>
<p>Jam के दौरान, theme पर ज्यादा से ज्यादा 30 मिनट सोचें, पहले core mechanic का prototype बनाएं, जल्दी और बार-बार टेस्ट करें, आखिरी दिन से पहले sound जोड़ें, और submission के लिए कम से कम एक घंटा छोड़ें।</p>
<p>Jam के बाद, jam पेज पर सबमिट करें, gameplay clips अपलोड करें, दूसरी entries खेलें और रेट करें, feedback का जवाब दें, और अपने अनुभव के बारे में एक devlog लिखें।</p>
<h2 id="शुरू-करें" tabindex="-1">शुरू करें <a class="header-anchor" href="#शुरू-करें" aria-label="Permalink to &quot;शुरू करें&quot;"></a></h2>
<p><a href="https://itch.io/jams" target="_blank" rel="noreferrer">itch.io/jams</a> पर आने वाली jams ब्राउज़ करें। एक चुनें जो आपके शेड्यूल और रुचि के मुताबिक हो। इस गाइड की मदद से अपने tools तैयार करें। 48-72 घंटों में कुछ शानदार बनाएं। इसे शेयर करें और देखें कि players इसे खोजते हैं।</p>
<p>Indie games का जन्म game jams में ही होता है। आपकी अगली jam game किसी बड़ी चीज की शुरुआत हो सकती है।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/game-assets-guide.html">मुफ्त Game Assets कहां मिलें</a> — jam games के लिए तैयार CC0 asset packs</li>
<li><a href="/hi/tutorials/agentic-code-tools.html">Agentic AI code tools</a> — jams के दौरान तेजी से बनाने के लिए Claude Code, Cursor और Copilot का इस्तेमाल</li>
<li><a href="/hi/guides/kickstarter-for-indie-games.html">Indie Games के लिए Kickstarter</a> — एक सफल jam game को फंडेड प्रोजेक्ट में बदलना</li>
<li><a href="/hi/guides/co-op-game-design.html">Co-op Game Design</a> — co-op jam games को ज्यादा ध्यान और ratings मिलती हैं</li>
<li><a href="/hi/tutorials/canvas-2d-game-loop.html">Canvas 2D game loop</a> — 48-घंटे की jam game के लिए सबसे आसान नींव</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[itch.io पर अपना गेम कैसे लॉन्च करें (2026 गाइड)]]></title>
            <link>https://app.cinevva.com/hi/guides/itch-io-launch-guide</link>
            <guid>https://app.cinevva.com/hi/guides/itch-io-launch-guide</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2026 में itch.io पर अपने indie गेम को कैसे लॉन्च, मार्केट और ग्रो करें - पेज सेटअप, प्राइसिंग, टैग, devlogs, और खोजे जाना।]]></description>
            <content:encoded><![CDATA[<h1 id="itch-io-पर-अपना-गेम-कैसे-लॉन्च-करें-2026-गाइड" tabindex="-1">itch.io पर अपना गेम कैसे लॉन्च करें (2026 गाइड) <a class="header-anchor" href="#itch-io-पर-अपना-गेम-कैसे-लॉन्च-करें-2026-गाइड" aria-label="Permalink to &quot;itch.io पर अपना गेम कैसे लॉन्च करें (2026 गाइड)&quot;"></a></h1>
<p><em>आख़िरी बार अपडेट किया गया: जुलाई 2026.</em></p>
<p>यह गाइड itch.io पर गेम लॉन्च करने के बारे में मैंने जो कुछ भी सीखा है, उसे कवर करती है। पेज सेटअप से लेकर प्राइसिंग और विज़िबिलिटी तक, ये वो रणनीतियाँ हैं जो सच में काम करती हैं।</p>
<h2 id="itch-io-ही-क्यों" tabindex="-1">itch.io ही क्यों? <a class="header-anchor" href="#itch-io-ही-क्यों" aria-label="Permalink to &quot;itch.io ही क्यों?&quot;"></a></h2>
<p>itch.io वही जगह है जहाँ indie गेम फलते-फूलते हैं। यहाँ लगभग कोई रोक-टोक नहीं है, इसलिए कोई भी पब्लिश कर सकता है, बस एक बात पहले से जान लेना ज़रूरी है: 2025 के मध्य से itch.io ने adult/NSFW कंटेंट को संभालने का तरीका सख़्त कर दिया है। अपने payment processors के दबाव में, जुलाई 2025 में इसने adult कंटेंट को deindex कर दिया और अब NSFW पेज को सर्च में दिखने के लिए content warnings जोड़ना ज़रूरी है, जबकि paid adult कंटेंट अब भी प्रतिबंधित है। ज़्यादातर non-adult गेम पर इसमें से कुछ भी लागू नहीं होता और पब्लिश करना पहले की तरह ही खुला हुआ है। प्राइसिंग लचीली है: फ्री, फिक्स्ड, या pay-what-you-want। आप अपना खुद का revenue share तय करते हैं, अगर सब कुछ अपने पास रखना चाहें तो 0% भी। Web गेम सीधे browser में चलते हैं। कम्युनिटी सक्रिय रूप से indie गेम खोजती है। और game jam का इकोसिस्टम आपको पहले से बनी विज़िबिलिटी और फीडबैक देता है।</p>
<p>यह Steam नहीं है, और यही इसकी ख़ासियत है। itch.io प्रयोग करने वालों को और कम्युनिटी से जुड़ने वाले डेवलपर्स को इनाम देता है।</p>
<h2 id="पब्लिश-करने-से-पहले" tabindex="-1">पब्लिश करने से पहले <a class="header-anchor" href="#पब्लिश-करने-से-पहले" aria-label="Permalink to &quot;पब्लिश करने से पहले&quot;"></a></h2>
<p>पब्लिश बटन दबाने से पहले आपको कुछ चीज़ें तैयार रखनी होती हैं। कम से कम, आपको एक खेलने लायक गेम (डाउनलोड करने योग्य या browser में खेलने योग्य), 630×500 पिक्सेल का एक cover image, कम से कम 3 स्क्रीनशॉट, एक description, और चुने हुए genre/tags चाहिए।</p>
<p>बेहतर लॉन्च के लिए, एक trailer या gameplay GIF, फ़ीचर्स के साथ एक विस्तृत description, एक press kit, सोशल मीडिया अकाउंट, और चाहें तो एक Discord सर्वर जोड़ें।</p>
<p>सबसे अच्छे नतीजों के लिए, अपने devlog पोस्ट पहले से प्लान करें, एक influencer और press आउटरीच लिस्ट तैयार करें, अपना launch announcement ड्राफ्ट करें, और लॉन्च से पहले कम्युनिटी बनाएँ।</p>
<h2 id="आपका-पेज-ही-आपकी-दुकान-है" tabindex="-1">आपका पेज ही आपकी दुकान है <a class="header-anchor" href="#आपका-पेज-ही-आपकी-दुकान-है" aria-label="Permalink to &quot;आपका पेज ही आपकी दुकान है&quot;"></a></h2>
<p>पेज वही जगह है जहाँ लोग तय करते हैं कि आपका गेम खेलें या नहीं। यहाँ हर चीज़ मायने रखती है।</p>
<h3 id="cover-image" tabindex="-1">Cover Image <a class="header-anchor" href="#cover-image" aria-label="Permalink to &quot;Cover Image&quot;"></a></h3>
<p>आपका cover image सबसे ज़रूरी विज़ुअल है। यह browse पेज, सर्च रिज़ल्ट, collections, और सोशल मीडिया embeds में दिखता है। 630×500 पिक्सेल (या कम से कम 315×250) पर, इसे thumbnail साइज़ में भी काम करना चाहिए।</p>
<p>पक्का करें कि छोटा होने पर भी यह साफ़ पढ़ा जाए। इसे thumbnail स्केल पर टेस्ट करें। आर्ट स्टाइल, मूड, और genre के संकेतों से अपने गेम का वाइब दिखाएँ। टाइटल शामिल करें और उसे पढ़ने लायक बनाएँ। दूसरे गेम के grid में अलग दिखने के लिए बोल्ड रंग और एक साफ़ focal point इस्तेमाल करें।</p>
<h3 id="स्क्रीनशॉट-और-मीडिया" tabindex="-1">स्क्रीनशॉट और मीडिया <a class="header-anchor" href="#स्क्रीनशॉट-और-मीडिया" aria-label="Permalink to &quot;स्क्रीनशॉट और मीडिया&quot;"></a></h3>
<p>भरोसा बनाने के लिए आपको कम से कम 3-5 स्क्रीनशॉट चाहिए। gameplay को चलते हुए दिखाता एक GIF काफ़ी मदद करता है। गंभीर लॉन्च के लिए, 30-90 सेकंड का एक trailer जोड़ें।</p>
<p>स्क्रीनशॉट के लिए, असली gameplay दिखाएँ, मेन्यू नहीं। रोमांचक पल कैप्चर करें। एक जैसा aspect ratio रखें। अगर UI आकर्षक है तो उसे शामिल करें।</p>
<p>GIF के लिए, 5-15 सेकंड के एक्शन का लक्ष्य रखें। उन्हें 10MB से कम रखें ताकि वे जल्दी लोड हों। मुख्य gameplay loop दिखाएँ। उन्हें आराम से loop होने दें।</p>
<h3 id="description" tabindex="-1">Description <a class="header-anchor" href="#description" aria-label="Permalink to &quot;Description&quot;"></a></h3>
<p>अपनी description को उन लोगों के लिए सजाएँ जो सरसरी तौर पर पढ़ते हैं। एक आकर्षक one-liner से शुरुआत करें जो उन्हें बाँध ले। फिर एक वाक्य जोड़ें जो genre, आप क्या करते हैं, और लक्ष्य समझाए। कॉन्सेप्ट को बढ़ाते हुए 2-3 वाक्य जोड़ें। फिर फ़ीचर्स, कंट्रोल, और credits की लिस्ट दें।</p>
<p>बड़े-बड़े टेक्स्ट के पैराग्राफ़ न लिखें। &quot;यह मेरा पहला गेम है...&quot; से शुरुआत न करें और न ही ज़रूरत से ज़्यादा विनम्र बनें। और यह बताना न भूलें कि गेम असल में है क्या। लोगों को समझना होता है कि वे किसमें उतर रहे हैं।</p>
<h3 id="tags" tabindex="-1">Tags <a class="header-anchor" href="#tags" aria-label="Permalink to &quot;Tags&quot;"></a></h3>
<p>Tags तय करते हैं कि आपका गेम Browse में कहाँ दिखेगा। हर ज़रूरी tag इस्तेमाल करें। साफ़ रहें: सिर्फ़ &quot;action&quot; नहीं बल्कि &quot;top-down-shooter&quot;। अगर लागू हो तो accessibility tags शामिल करें। अगर ज़रूरी हो तो multiplayer या local-coop tags जोड़ें। ऐसे लोकप्रिय tags इस्तेमाल करें जिनमें आपका गेम सच में फ़िट होता है।</p>
<p>ध्यान देने लायक हाई-वैल्यू tags: roguelike, metroidvania, या visual-novel जैसे ख़ास genre। pixel-art, low-poly, या hand-drawn जैसी आर्ट स्टाइल। horror, cozy, या atmospheric जैसी थीम। local-multiplayer या online-co-op जैसे multiplayer modes। colorblind-friendly या one-button जैसे accessibility फ़ीचर।</p>
<h3 id="metadata" tabindex="-1">Metadata <a class="header-anchor" href="#metadata" aria-label="Permalink to &quot;Metadata&quot;"></a></h3>
<p>सब कुछ भरें। Genre, इस्तेमाल किए गए engine/tools, जितने हो सकें उतने ज़रूरी tags, सभी सपोर्टेड भाषाएँ, configurable controls जैसे accessibility फ़ीचर, और multiplayer mode (single-player, local, online)। आपका metadata जितना पूरा होगा, आपका गेम उतना ही ज़्यादा खोजा जा सकेगा।</p>
<h2 id="प्राइसिंग" tabindex="-1">प्राइसिंग <a class="header-anchor" href="#प्राइसिंग" aria-label="Permalink to &quot;प्राइसिंग&quot;"></a></h2>
<p>itch.io आपको तीन प्राइसिंग मॉडल देता है: फ्री, pay-what-you-want, और फिक्स्ड प्राइस। हर एक अलग-अलग हालात के लिए काम करता है।</p>
<p>itch.io एक खुला revenue-share मॉडल चलाता है: डिफ़ॉल्ट कट लगभग 10% है, लेकिन आप यह प्रतिशत चुनते हैं, 0% से लेकर 100% तक कहीं भी। साल में कुछ बार itch.io Creator Day भी चलाता है, एक 24-घंटे का इवेंट जिसमें वह अपनी platform फ़ीस पूरी तरह माफ़ कर देता है ताकि आप बिक्री का 100% रखें (payment-processor फ़ीस और टैक्स के बाद)। किसी सेल या launch announcement को इसके आसपास टाइम करना फ़ायदेमंद होता है। सबसे हालिया इवेंट 28 नवंबर 2025 को चला था।</p>
<h3 id="ज़्यादातर-गेम-के-लिए-pay-what-you-want-सबसे-अच्छा-काम-करता-है" tabindex="-1">ज़्यादातर गेम के लिए Pay-What-You-Want सबसे अच्छा काम करता है <a class="header-anchor" href="#ज़्यादातर-गेम-के-लिए-pay-what-you-want-सबसे-अच्छा-काम-करता-है" aria-label="Permalink to &quot;ज़्यादातर गेम के लिए Pay-What-You-Want सबसे अच्छा काम करता है&quot;"></a></h3>
<p>$0 minimum वाला PWYW indie गेम के लिए आम तौर पर फिक्स्ड प्राइसिंग से बेहतर प्रदर्शन करता है। आपको फिक्स्ड प्राइस के मुक़ाबले 3-5 गुना ज़्यादा डाउनलोड मिलेंगे। लगभग 10-30% डाउनलोड करने वाले कुछ न कुछ चुकाना चुनते हैं। प्रति-खरीदार औसत कम होने के बावजूद कुल revenue अक्सर ज़्यादा ही निकलता है।</p>
<p>PWYW को बेहतर बनाने के लिए, उम्मीदें टिकाने के लिए एक suggested price सेट करें। 30 मिनट से कम के छोटे गेम के लिए, $2-5 सुझाएँ। 1-3 घंटे के मीडियम गेम के लिए, $5-10 सुझाएँ। 5 घंटे से ज़्यादा के पूरे गेम के लिए, $10-20 सुझाएँ।</p>
<p>समझाएँ कि सपोर्ट से कैसे मदद होती है। कुछ ऐसा कि &quot;यह गेम pay-what-you-want है! कोई भी सपोर्ट मुझे और गेम बनाने में मदद करता है और अपडेट आते रहते हैं।&quot; और चुकाने पर इंसेंटिव दें: bonus content, soundtrack, behind-the-scenes PDF, या credits में नाम।</p>
<h3 id="फिक्स्ड-प्राइसिंग-कब-समझदारी-है" tabindex="-1">फिक्स्ड प्राइसिंग कब समझदारी है <a class="header-anchor" href="#फिक्स्ड-प्राइसिंग-कब-समझदारी-है" aria-label="Permalink to &quot;फिक्स्ड प्राइसिंग कब समझदारी है&quot;"></a></h3>
<p>फिक्स्ड प्राइसिंग तब इस्तेमाल करें जब आपके पास एक बना हुआ ऑडियंस हो, जब गेम बहुत पॉलिश्ड हो, जब काफ़ी कंटेंट हो (5+ घंटे), या जब आपको predictable revenue चाहिए।</p>
<p>प्राइस पॉइंट के लिए, छोटे गेम और प्रोटोटाइप के लिए $2-5 ठीक रहता है। ख़ास अपील वाले मीडियम गेम के लिए $5-10। ज़्यादा पॉलिश वाले पूरे गेम के लिए $10-20। बने हुए डेवलपर्स के बड़े गेम के लिए $20+।</p>
<h3 id="फ्री-गेम-भी-पैसे-कमाते-हैं" tabindex="-1">फ्री गेम भी पैसे कमाते हैं <a class="header-anchor" href="#फ्री-गेम-भी-पैसे-कमाते-हैं" aria-label="Permalink to &quot;फ्री गेम भी पैसे कमाते हैं&quot;"></a></h3>
<p>पोर्टफ़ोलियो पीस, game jam एंट्री, प्रयोगात्मक प्रोजेक्ट, या आगे आने वाले paid गेम के लिए ऑडियंस बनाने के लिहाज़ से फ्री समझदारी है। लेकिन फ्री गेम को भी donations मिलते हैं। itch.io पर होने वाले खर्च का लगभग 30% minimum से ऊपर चुकाई गई रकम से आता है।</p>
<h2 id="खोजे-जाना" tabindex="-1">खोजे जाना <a class="header-anchor" href="#खोजे-जाना" aria-label="Permalink to &quot;खोजे जाना&quot;"></a></h2>
<p>itch.io पर Steam जैसा algorithmic प्रमोशन नहीं होता। अपनी विज़िबिलिटी आप खुद बनाते हैं।</p>
<p>खोज इन तरीकों से होती है: search (tags, title, description से चलती है), Browse Popular (downloads, ratings, recency से चलती है), Browse New (पब्लिश की तारीख़ से चलती है), collections (खिलाड़ी आपका गेम जोड़ते हुए), devlogs (आपके अपडेट), और कभी-कभी editorial feature (staff picks, ज़्यादातर किस्मत)।</p>
<h3 id="indexed-होना" tabindex="-1">Indexed होना <a class="header-anchor" href="#indexed-होना" aria-label="Permalink to &quot;Indexed होना&quot;"></a></h3>
<p>सर्च और browse में दिखने के लिए आपका गेम indexed होना चाहिए। आपको सार्वजनिक रूप से पब्लिश होना चाहिए (unlisted नहीं), खेलने योग्य या डाउनलोड करने योग्य कंटेंट होना चाहिए, एक cover image होना चाहिए, placeholder पेज नहीं होना चाहिए, और content guidelines का पालन करना चाहिए।</p>
<p>जो चीज़ें indexing रोकती हैं: सिर्फ़ external-link वाले पेज, कोई download या खेलने योग्य कंटेंट न होना, unlisted विज़िबिलिटी सेटिंग, और cover image का न होना। अगर आपका गेम adult/NSFW टैग किया गया है, तो एक अतिरिक्त कदम है: 2025 से itch.io उन पेज पर indexed होने के लिए एक content warning जोड़ना ज़रूरी करता है, और paid adult कंटेंट को फ़िलहाल सर्च से बाहर रखा जाता है जब तक itch.io payment processors के साथ काम कर रहा है। Non-adult गेम पर इसका असर नहीं पड़ता।</p>
<p>अगर आप पहली बार बेच रहे हैं तो एक बात और है: नए seller अकाउंट का पहला paid प्रोजेक्ट indexed होने से पहले एक छोटी review कतार से गुज़रता है, आम तौर पर कुछ कारोबारी दिन। पुराने sellers यह कदम छोड़ देते हैं। अगर आपकी लॉन्च तारीख़ मायने रखती है, तो इतनी जल्दी पब्लिश करें या अपना seller अकाउंट सेट करें कि कतार साफ़ हो जाए।</p>
<h3 id="most-recent-का-बूस्ट" tabindex="-1">&quot;Most Recent&quot; का बूस्ट <a class="header-anchor" href="#most-recent-का-बूस्ट" aria-label="Permalink to &quot;&quot;Most Recent&quot; का बूस्ट&quot;"></a></h3>
<p>जब आप पहली बार पब्लिश करते हैं, तो आप &quot;Most Recent&quot; में दिखते हैं जो थोड़ा विज़िबिलिटी बूस्ट देता है। यह सिर्फ़ एक बार होता है, इसलिए टाइमिंग मायने रखती है।</p>
<p>तब पब्लिश करें जब आपका पेज पूरा हो। जल्दी पब्लिश करके बाद में अपडेट न करें क्योंकि आपको सिर्फ़ एक ही &quot;new&quot; बूस्ट मिलता है। weekends से बचें जब ज़्यादा गेम रिलीज़ होते हैं। अपने टारगेट ऑडियंस के timezone का ध्यान रखें।</p>
<h3 id="devlogs-आपका-छुपा-हथियार-हैं" tabindex="-1">Devlogs आपका छुपा हथियार हैं <a class="header-anchor" href="#devlogs-आपका-छुपा-हथियार-हैं" aria-label="Permalink to &quot;Devlogs आपका छुपा हथियार हैं&quot;"></a></h3>
<p>Devlogs followers की feeds में दिखते हैं, &quot;Recent Devlogs&quot; सेक्शन में आते हैं, सक्रिय डेवलपमेंट का संकेत देते हैं, कम्युनिटी का भरोसा बनाते हैं, और SEO में मदद करते हैं।</p>
<p>उत्सुकता बनाने के लिए डेवलपमेंट के दौरान पोस्ट करें। announcement के लिए लॉन्च पर पोस्ट करें। अपडेट और नए फ़ीचर के लिए लॉन्च के बाद पोस्ट करें। सक्रिय डेवलपमेंट के दौरान महीने में 1-2 का लक्ष्य रखें।</p>
<p>अच्छे टॉपिक में शामिल हैं behind-the-scenes प्रोसेस, नए फ़ीचर और कंटेंट, खिलाड़ियों के फीडबैक पर प्रतिक्रिया, आपने जो तकनीकी चुनौतियाँ हल कीं, आर्ट और म्यूज़िक शोकेस, और बिक्री के मील के पत्थर (अपने खिलाड़ियों का शुक्रिया करें)।</p>
<h2 id="game-jams" tabindex="-1">Game Jams <a class="header-anchor" href="#game-jams" aria-label="Permalink to &quot;Game Jams&quot;"></a></h2>
<p>Game jams itch.io पर विज़िबिलिटी पाने का सबसे अच्छा तरीका हैं। आपको कुछ ही दिनों में हज़ारों व्यूज़ वाला एक बना-बनाया ऑडियंस मिलता है, एक समर्पित gallery जहाँ आपका गेम browse किया जा सकता है, ratings और comments के ज़रिए फीडबैक, दूसरे डेवलपर्स से networking, ऐसे पोर्टफ़ोलियो पीस जो आपकी रेंज दिखाते हैं, और बिना ज़्यादा दबाव के खुलकर प्रोटोटाइप करने का मौक़ा।</p>
<h3 id="jam-रणनीति" tabindex="-1">Jam रणनीति <a class="header-anchor" href="#jam-रणनीति" aria-label="Permalink to &quot;Jam रणनीति&quot;"></a></h3>
<p>jams चुनने के लिए, Ludum Dare और GMTK जैसे बड़े jams ज़्यादा ट्रैफ़िक लाते हैं लेकिन मुक़ाबला भी ज़्यादा होता है। छोटे या niche jams आपको अलग दिखने का बेहतर मौक़ा देते हैं। थीम से मेल खाते jams आपको अपनी ताक़त के मुताबिक खेलने देते हैं।</p>
<p>jam के दौरान, सोशल मीडिया पर प्रोग्रेस पोस्ट करें, jam hashtags इस्तेमाल करें, अपनी प्रोसेस दर्ज करें, और दूसरे प्रतिभागियों से जुड़ें।</p>
<p>अपने jam पेज के लिए, jam गेम के लिए भी इसे पॉलिश करें। अच्छे स्क्रीनशॉट मायने रखते हैं। गेम क्या है इसका एक साफ़ description लिखें। कंट्रोल शामिल करें।</p>
<p>jam के बाद, networking के लिए दूसरी एंट्री खेलें और रेट करें। हर फीडबैक का जवाब दें। post-jam अपडेट पर विचार करें। आपने जो सीखा उस पर एक devlog लिखें।</p>
<h3 id="jam-गेम-असली-गेम-बन-सकते-हैं" tabindex="-1">Jam गेम असली गेम बन सकते हैं <a class="header-anchor" href="#jam-गेम-असली-गेम-बन-सकते-हैं" aria-label="Permalink to &quot;Jam गेम असली गेम बन सकते हैं&quot;"></a></h3>
<p>कई कामयाब indie गेम jam एंट्री के तौर पर शुरू हुए। Celeste एक jam गेम के रूप में शुरू हुआ। Superhot एक 7-दिन के प्रोटोटाइप के रूप में शुरू हुआ। Hollow Knight एक jam कॉन्सेप्ट से विकसित हुआ।</p>
<p>रास्ता यह है: फीडबैक इकट्ठा करें, पहचानें कि क्या काम आया, पॉलिश करें और बढ़ाएँ, फिर एक standalone के रूप में दोबारा रिलीज़ करें।</p>
<h2 id="बिना-पैसे-के-मार्केटिंग" tabindex="-1">बिना पैसे के मार्केटिंग <a class="header-anchor" href="#बिना-पैसे-के-मार्केटिंग" aria-label="Permalink to &quot;बिना पैसे के मार्केटिंग&quot;"></a></h2>
<p>itch.io पर मार्केटिंग के लिए आपको बजट की ज़रूरत नहीं है। आपको निरंतरता चाहिए।</p>
<h3 id="सोशल-मीडिया" tabindex="-1">सोशल मीडिया <a class="header-anchor" href="#सोशल-मीडिया" aria-label="Permalink to &quot;सोशल मीडिया&quot;"></a></h3>
<p>सबसे बड़ी gamedev कम्युनिटी के लिए Twitter/X पर रहें। Reddit इस्तेमाल करें, ख़ास तौर पर r/indiegaming, r/playmygame, और genre से जुड़े subreddits। छोटे gameplay क्लिप के लिए TikTok आज़माएँ। एक Discord सर्वर बनाएँ और ज़रूरी कम्युनिटीज़ में शामिल हों। YouTube पर devlogs और trailers पोस्ट करें।</p>
<p>content कैलेंडर के लिए, Screenshot Saturday और प्रोग्रेस अपडेट के लिए हफ़्ते में पोस्ट करें। हर दो हफ़्ते में devlogs पोस्ट करें। बड़े मील के पत्थर महीने में एक बार announce करें।</p>
<p>gameplay के GIFs, behind-the-scenes प्रोसेस, डेवलपमेंट की चुनौतियाँ, before/after तुलनाएँ, अपने गेम के बारे में memes, और खिलाड़ियों की प्रतिक्रियाएँ पोस्ट करें।</p>
<h3 id="influencers-तक-पहुँचना" tabindex="-1">Influencers तक पहुँचना <a class="header-anchor" href="#influencers-तक-पहुँचना" aria-label="Permalink to &quot;Influencers तक पहुँचना&quot;"></a></h3>
<p>1K-50K followers वाले micro-influencers आपके दोस्त हैं। उन्हें ढूँढें YouTube पर &quot;[आपका genre] indie games&quot; सर्च करके, ऐसे जैसे गेम खेलने वाले streamers ढूँढकर, और यह देखकर कि आपके जैसे गेम किसने कवर किए।</p>
<p>जब आप संपर्क करें, हर ईमेल को निजी बनाएँ। दिखाएँ कि आप उनका कंटेंट जानते हैं। सारे लिंक शामिल करके इसे आसान बनाएँ। संक्षिप्त रहें। mass email न करें, कवरेज की माँग न करें, टाइमिंग को लेकर ज़बरदस्ती न करें। एक बार, विनम्रता से follow up करें।</p>
<p>एक आसान template काम आता है: अपना परिचय दें, बताएँ कि आपने ध्यान दिया कि वे आपका genre कवर करते हैं, अपने गेम को एक वाक्य में बताएँ, समझाएँ कि इसे क्या ख़ास बनाता है, बिना दबाव के एक फ्री key दें, और अपने पेज और press kit के लिंक शामिल करें।</p>
<h3 id="press" tabindex="-1">Press <a class="header-anchor" href="#press" aria-label="Permalink to &quot;Press&quot;"></a></h3>
<p>बड़े लॉन्च के लिए, IndieGamesPlus, Rock Paper Shotgun, Kotaku का indie सेक्शन, और genre से जुड़ी साइटों जैसी indie game press से संपर्क करें। वही सिद्धांत जो influencer आउटरीच में हैं: निजी बनाएँ, संक्षिप्त रहें, उनका काम आसान करें।</p>
<h2 id="launch-timeline" tabindex="-1">Launch Timeline <a class="header-anchor" href="#launch-timeline" aria-label="Permalink to &quot;Launch Timeline&quot;"></a></h2>
<p>लॉन्च से तीन से छह महीने पहले, अपनी सोशल मीडिया मौजूदगी शुरू करें, ज़रूरी कम्युनिटीज़ में शामिल हों, devlog पोस्ट शुरू करें, और followers बनाएँ।</p>
<p>एक से दो महीने पहले, स्क्रीनशॉट और trailer जैसे पेज assets फ़ाइनल करें, अपना press kit तैयार करें, अपनी influencer और press लिस्ट ड्राफ्ट करें, और अपनी रिलीज़ की तारीख़ announce करें।</p>
<p>एक से दो हफ़्ते पहले, influencers और press को keys भेजें, अपनी launch पोस्ट शेड्यूल करें, अपना launch devlog तैयार करें, और अपने पेज को आख़िरी पॉलिश दें।</p>
<p>लॉन्च के दिन, गेम पब्लिश करें, अपना launch announcement हर जगह पोस्ट करें, सभी comments से जुड़ें, बग्स पर नज़र रखें, और शुरुआती खिलाड़ियों का शुक्रिया करें।</p>
<p>लॉन्च के बाद पहले हफ़्ते में, हर फीडबैक का जवाब दें, गंभीर बग्स तुरंत ठीक करें, एक अपडेट devlog पोस्ट करें, और सकारात्मक reviews शेयर करें।</p>
<p>लॉन्च के बाद लगातार, नियमित अपडेट रिलीज़ करते रहें, कम्युनिटी से जुड़ें, आगे के कंटेंट की प्लानिंग करें, और सेल और bundles पर विचार करें।</p>
<h2 id="आम-ग़लतियाँ" tabindex="-1">आम ग़लतियाँ <a class="header-anchor" href="#आम-ग़लतियाँ" aria-label="Permalink to &quot;आम ग़लतियाँ&quot;"></a></h2>
<p>पेज की ग़लतियों के लिए, अपना पेज तैयार होने से पहले पब्लिश न करें। cover image छोड़ें नहीं या ख़राब वाला इस्तेमाल न करें। बड़े-बड़े टेक्स्ट वाली descriptions न लिखें। बिना स्क्रीनशॉट के लॉन्च न करें। ग़लत या ग़ायब tags इस्तेमाल न करें।</p>
<p>मार्केटिंग की ग़लतियों के लिए, मार्केटिंग शुरू करने के लिए लॉन्च तक इंतज़ार न करें। सिर्फ़ एक बार &quot;game is out&quot; पोस्ट करके न रुकें। कम्युनिटी से जुड़ें। यह उम्मीद न करें कि itch.io आपके लिए मार्केटिंग करेगा। फीडबैक को नज़रअंदाज़ न करें।</p>
<p>प्राइसिंग की ग़लतियों के लिए, बना हुआ ऑडियंस होने से पहले ऊँचा दाम न रखें। 10+ घंटे के कंटेंट को $0.99 में रखकर अपने काम की कम क़ीमत न आँकें। PWYW पर हमेशा एक suggested price सेट करें। बीच-बीच में सेल चलाएँ।</p>
<p>डेवलपमेंट की ग़लतियों के लिए, scope creep को अपने लॉन्च को हमेशा के लिए टालने न दें। ship करने के बजाय &quot;perfect&quot; का इंतज़ार न करें। शुरुआती फीडबैक इकट्ठा करें। लॉन्च के बाद गेम को छोड़ न दें।</p>
<h2 id="analytics" tabindex="-1">Analytics <a class="header-anchor" href="#analytics" aria-label="Permalink to &quot;Analytics&quot;"></a></h2>
<p>page views (कितनों ने आपका पेज पाया), downloads (कितनों ने आपका गेम आज़माया), conversion rate (views से downloads), ratings count (engagement का स्तर), rating average (क्वालिटी की धारणा), revenue, और referrers (ट्रैफ़िक कहाँ से आता है) को ट्रैक करें।</p>
<h3 id="समस्याओं-की-पहचान" tabindex="-1">समस्याओं की पहचान <a class="header-anchor" href="#समस्याओं-की-पहचान" aria-label="Permalink to &quot;समस्याओं की पहचान&quot;"></a></h3>
<p>अगर आपके views कम हैं, तो यह एक मार्केटिंग समस्या है। सोशल मीडिया पर ज़्यादा पोस्ट करें, नई कम्युनिटीज़ आज़माएँ, बेहतर hashtags इस्तेमाल करें, ज़्यादा devlogs लिखें।</p>
<p>अगर आपके views ज़्यादा हैं लेकिन downloads कम, तो यह एक पेज समस्या है। अपना cover image सुधारें, बेहतर स्क्रीनशॉट लें, एक साफ़ description लिखें, अपनी प्राइसिंग जाँचें।</p>
<p>अगर आपके downloads ज़्यादा हैं लेकिन ratings कम, तो यह गेम क्वालिटी की समस्या है। बग्स ठीक करें, tutorial और onboarding सुधारें, आम शिकायतों का समाधान करें।</p>
<h2 id="लंबी-अवधि-की-ग्रोथ" tabindex="-1">लंबी अवधि की ग्रोथ <a class="header-anchor" href="#लंबी-अवधि-की-ग्रोथ" aria-label="Permalink to &quot;लंबी अवधि की ग्रोथ&quot;"></a></h2>
<h3 id="ऑडियंस-बनाना" tabindex="-1">ऑडियंस बनाना <a class="header-anchor" href="#ऑडियंस-बनाना" aria-label="Permalink to &quot;ऑडियंस बनाना&quot;"></a></h3>
<p>itch.io के followers क़ीमती होते हैं। उन्हें नई रिलीज़ की सूचना मिलती है, वे आपके devlogs देखते हैं, और वे आगे के गेम ख़रीदने की संभावना रखते हैं।</p>
<p>followers बढ़ाएँ अपने गेम के अंत में पूछकर, devlogs में इसका ज़िक्र करके, सोशल मीडिया से लिंक करके, और मात्रा से ज़्यादा क्वालिटी पर ध्यान देकर।</p>
<p>अगर आप Patreon चलाते हैं, तो itch.io का Patreon integration जुलाई 2026 में Patreon के नए API पर दोबारा बनाया गया। अब आपके गेम तक पहुँच pledge रकम के बजाय membership tier से मिलती है, जिससे पुरानी currency-mismatch की दिक़्क़तें ठीक हो जाती हैं। यह supporters को itch.io पर सीधे early builds देने का एक साफ़-सुथरा तरीका है।</p>
<h3 id="आपका-कैटलॉग-जुड़ता-जाता-है" tabindex="-1">आपका कैटलॉग जुड़ता जाता है <a class="header-anchor" href="#आपका-कैटलॉग-जुड़ता-जाता-है" aria-label="Permalink to &quot;आपका कैटलॉग जुड़ता जाता है&quot;"></a></h3>
<p>आपका दूसरा गेम पहले से लॉन्च करना आसान होता है। आपके पास मौजूदा followers होते हैं, आप गेम के बीच cross-promote कर सकते हैं, आपकी एक बनी हुई साख होती है, और आपने स्किल्स सीख ली होती हैं।</p>
<p>रणनीति यह है: पहला गेम लॉन्च करें और followers इकट्ठा करें, गेम 1 के खिलाड़ियों को गेम 2 का प्रमोशन करें, गेम को एक साथ bundle करें, और हर गेम को अपना ऑडियंस बढ़ाने दें।</p>
<h3 id="सेल-और-bundles" tabindex="-1">सेल और Bundles <a class="header-anchor" href="#सेल-और-bundles" aria-label="Permalink to &quot;सेल और Bundles&quot;"></a></h3>
<p>सेल चलाने के लिए, 20-50% की छूट आम है। उन्हें छुट्टियों के आसपास टाइम करें। सोशल मीडिया पर announce करें। अपना devlog अपडेट करें।</p>
<p>मौसमी साइट-भर की सेल में शामिल होना भी फ़ायदेमंद है। 2026 की Summer Sale से itch.io एक Sale Explorer देता है जो players को price filters, tag exclusions, staff picks, और personalized सिफ़ारिशों के साथ सेल गेम browse करने देता है, इसलिए सेल में होने से आप सच में browse किए जाते हैं। शामिल होना एक क्लिक है: साइट-भर की सेल के दौरान आपके creator dashboard में promotion जोड़ने के लिए एक पहले से भरा हुआ लिंक दिखता है।</p>
<p>bundles में शामिल होने के लिए, ये exposure बढ़ाते हैं, नए खिलाड़ी लाते हैं, और पुराने गेम के लिए अच्छा काम करते हैं। itch.io कभी-कभी charity bundles आयोजित करता है जिनमें शामिल होना फ़ायदेमंद है। Bundle hosting में जुलाई 2026 में बड़ा बदलाव हुआ: hosts jam या collection URLs से गेम bulk-import कर सकते हैं और drag and drop से projects का क्रम बदल सकते हैं, जिससे community bundles पहले से आसान हो जाते हैं।</p>
<h2 id="itch-io-पर-web-गेम" tabindex="-1">itch.io पर Web गेम <a class="header-anchor" href="#itch-io-पर-web-गेम" aria-label="Permalink to &quot;itch.io पर Web गेम&quot;"></a></h2>
<p>HTML5 और WebGL गेम को itch.io पर फ़ायदे मिलते हैं। बिना डाउनलोड की रुकावट के तुरंत खेल। अगर आप touch सपोर्ट करते हैं तो mobile-friendly। डायरेक्ट लिंक के साथ शेयर करना आसान। jams के लिए बढ़िया क्योंकि इन्हें आज़माना झटपट होता है।</p>
<p>ऑप्टिमाइज़ेशन के लिए, लोडिंग का समय मायने रखता है इसलिए शुरुआती लोड छोटा रखें। एक loading bar या प्रतिशत दिखाएँ। Chrome, Firefox, Safari, और Edge पर टेस्ट करें। अगर मुमकिन हो तो touch सपोर्ट जोड़ें। एक fullscreen बटन दें।</p>
<p>embed सेटिंग के लिए, 16:9 के लिए 960px चौड़ाई (या आपके गेम की native) और 540px ऊँचाई इस्तेमाल करें। अगर responsive है तो mobile-friendly enable करें। fullscreen बटन enable करें। scrollbars बंद करें।</p>
<p>बिल्ड करने से पहले upload limits जान लें। आपका HTML5 zip खुलने पर 1,000 फ़ाइलों, कुल 500MB, और किसी एक फ़ाइल के लिए 200MB से ज़्यादा नहीं होना चाहिए। अगर आपका बिल्ड इससे आगे निकल जाए, तो limit बढ़ाने की माँग करने के बजाय assets कम करें या भारी कंटेंट को lazy loading के पीछे ले जाएँ।</p>
<p>परफ़ॉर्मेंस के लिए, assets को lazy-load करें, textures कंप्रेस करें, अपना JavaScript bundle कम से कम रखें, WebGL का कुशलता से इस्तेमाल करें, और कम क्षमता वाले डिवाइस पर टेस्ट करें।</p>
<h2 id="संसाधन" tabindex="-1">संसाधन <a class="header-anchor" href="#संसाधन" aria-label="Permalink to &quot;संसाधन&quot;"></a></h2>
<p>आधिकारिक documentation के लिए, <a href="https://itch.io/docs/creators/" target="_blank" rel="noreferrer">itch.io Creator Docs</a>, <a href="https://itch.io/docs/creators/getting-indexed" target="_blank" rel="noreferrer">Getting Indexed guide</a>, और <a href="https://itch.io/docs/creators/pricing" target="_blank" rel="noreferrer">Pricing Guide</a> देखें।</p>
<p>कम्युनिटीज़ के लिए, <a href="https://itch.io/community" target="_blank" rel="noreferrer">itch.io Community Forums</a>, <a href="https://reddit.com/r/itchio" target="_blank" rel="noreferrer">r/itchio</a>, <a href="https://reddit.com/r/indiegaming" target="_blank" rel="noreferrer">r/indiegaming</a>, और <a href="https://reddit.com/r/IndieDev" target="_blank" rel="noreferrer">r/IndieDev</a> पर जाएँ।</p>
<p>tools के लिए, <a href="https://itch.io/docs/butler/" target="_blank" rel="noreferrer">itch.io Butler</a> patch-आधारित diffs से uploads संभालता है, इसलिए अपडेट में सिर्फ़ बदला हुआ हिस्सा ट्रांसफ़र होता है। मई 2026 से आपको command line की ज़रूरत भी नहीं: itch app (वर्शन 26.12.0 या बाद का) में एक Upload सेक्शन है जो butler को GUI में लपेटता है, और हर push से पहले बदली गई फ़ाइलों का preview दिखाता है। <a href="https://dopresskit.com/" target="_blank" rel="noreferrer">Presskit()</a> press kits बनाता है।</p>
<h2 id="संक्षेप-में" tabindex="-1">संक्षेप में <a class="header-anchor" href="#संक्षेप-में" aria-label="Permalink to &quot;संक्षेप में&quot;"></a></h2>
<p>लॉन्च से पहले, पक्का करें कि आपका गेम खेलने योग्य और काफ़ी पॉलिश्ड है, आपके पेज पर एक बढ़िया cover image है, आपके पास 3+ स्क्रीनशॉट और आदर्श रूप से एक GIF या trailer है, आपकी description साफ़ और स्कैन करने लायक है, सभी ज़रूरी tags चुने गए हैं, आपने प्राइसिंग तय कर ली है, आपने अपनी सोशल मीडिया मौजूदगी शुरू कर दी है, और आपने devlogs पोस्ट किए हैं।</p>
<p>लॉन्च पर, आपका पेज 100% पूरा, सार्वजनिक रूप से पब्लिश, हर जगह announce होना चाहिए, और आपको comments से जुड़ना चाहिए।</p>
<p>लॉन्च के बाद, फीडबैक का जवाब दें, बग्स जल्दी ठीक करें, devlogs पोस्ट करते रहें, और अपनी अगली रिलीज़ की ओर बढ़ें।</p>
<p>ज़्यादातर कामयाब indie गेम को अपना ऑडियंस ढूँढने में सालों और कई रिलीज़ लगीं। आपका पहला गेम शायद हिट न हो, और यह ठीक है। हर रिलीज़ आपको सिखाती है, आपका ऑडियंस बढ़ाती है, और आपको उस गेम के क़रीब लाती है जो सबको पार कर जाए।</p>
<p>Ship it. Learn. Repeat.</p>
<hr>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="मैं-itch-io-पर-अपने-गेम-को-कैसे-नोटिस-कराऊँ" tabindex="-1">मैं itch.io पर अपने गेम को कैसे नोटिस कराऊँ? <a class="header-anchor" href="#मैं-itch-io-पर-अपने-गेम-को-कैसे-नोटिस-कराऊँ" aria-label="Permalink to &quot;मैं itch.io पर अपने गेम को कैसे नोटिस कराऊँ?&quot;"></a></h3>
<p>Tags वो सबसे बड़ा लीवर हैं जिसे ज़्यादातर लोग नज़रअंदाज़ करते हैं। itch.io के browse पेज tags से व्यवस्थित होते हैं, और ज़्यादातर खिलाड़ी इसी तरह नई चीज़ें ढूँढते हैं। हर ज़रूरी tag चुनें, सिर्फ़ साफ़-साफ़ दिखने वाले नहीं। उसके बाद, बारी है devlogs की। हर devlog पोस्ट आपके गेम को feeds में ऊपर उठाती है और सर्च engines को index करने के लिए ज़्यादा कंटेंट देती है। game jams में भी हिस्सा लें, जब आप शून्य से शुरू कर रहे हों तो नज़रें पाने का यह सबसे तेज़ तरीका है। और अपना cover image गिनती में लाएँ। स्क्रॉल करते समय लोग सबसे पहले यही देखते हैं, और उनमें से ज़्यादातर एक सेकंड से भी कम में तय कर लेते हैं कि क्लिक करें या नहीं।</p>
<h3 id="क्या-itch-io-पर-पैसे-कमाए-जा-सकते-हैं" tabindex="-1">क्या itch.io पर पैसे कमाए जा सकते हैं? <a class="header-anchor" href="#क्या-itch-io-पर-पैसे-कमाए-जा-सकते-हैं" aria-label="Permalink to &quot;क्या itch.io पर पैसे कमाए जा सकते हैं?&quot;"></a></h3>
<p>हाँ, लेकिन अपनी उम्मीदें उसी हिसाब से रखें। itch.io डिफ़ॉल्ट रूप से एक &quot;pay what you want&quot; मॉडल इस्तेमाल करता है, और platform आपको revenue का 100% तक रखने देता है (आप तय करते हैं कि कितना शेयर करें)। कुछ डेवलपर्स $5-15 की क़ीमत वाले premium गेम के साथ अच्छा करते हैं, ख़ास तौर पर फ्री रिलीज़ और jam एंट्री के ज़रिए ऑडियंस बना लेने के बाद। platform आपको रातों-रात अमीर नहीं बनाएगा, लेकिन यह उन चंद जगहों में से एक है जहाँ आप प्राइसिंग और payouts पर पूरा कंट्रोल रखते हैं और लगभग कोई रोक-टोक नहीं होती।</p>
<h3 id="क्या-itch-io-browser-गेम-के-लिए-अच्छा-है" tabindex="-1">क्या itch.io browser गेम के लिए अच्छा है? <a class="header-anchor" href="#क्या-itch-io-browser-गेम-के-लिए-अच्छा-है" aria-label="Permalink to &quot;क्या itch.io browser गेम के लिए अच्छा है?&quot;"></a></h3>
<p>सच कहूँ तो यह उनके लिए सबसे अच्छी जगहों में से एक है। itch.io पर browser गेम ज़्यादा खेले जाते हैं क्योंकि कोई डाउनलोड की झंझट नहीं होती। खिलाड़ी क्लिक करते हैं, और वे अंदर होते हैं। platform HTML5/WebGL embeds को सीधे सपोर्ट करता है, इसलिए आपका गेम पेज पर ही दिखता है। ख़ास तौर पर game jams के लिए, browser गेम को डाउनलोड करने योग्य गेम के मुक़ाबले कहीं ज़्यादा ratings मिलती हैं क्योंकि judges उन्हें तुरंत आज़मा सकते हैं। अपना शुरुआती लोड कुछ MB के नीचे रखें और एक progress bar दिखाएँ, और आप उम्मीद से ज़्यादा खिलाड़ी टिकाए रखेंगे।</p>
<hr>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/game-jams-hackathons.html">Game Jams &amp; Hackathons</a> — itch.io पर ऑडियंस बनाने का सबसे तेज़ तरीका jams हैं</li>
<li><a href="/hi/tutorials/iframe-embedding-games.html">Iframe embedding games</a> — browser गेम को iframes में embed करने की तकनीकी गाइड</li>
<li><a href="/hi/tutorials/ship-web-game-fast.html">Ship a web game that loads fast</a> — itch.io embeds के लिए load times ऑप्टिमाइज़ करें</li>
<li><a href="/hi/guides/steam-next-fest-strategy.html">Steam Next Fest Strategy</a> — अगर आप multi-platform लॉन्च पर विचार कर रहे हैं</li>
<li><a href="/hi/guides/web-game-engines-comparison.html">Web Game Engines Comparison</a> — एक engine चुनना जो साफ़ web builds export करे</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ब्राउज़र में Three.js + USDC]]></title>
            <link>https://app.cinevva.com/hi/guides/threejs-usdc-tech-report</link>
            <guid>https://app.cinevva.com/hi/guides/threejs-usdc-tech-report</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[WASM या नेटिव कोड के बिना Three.js में USD बाइनरी फाइलें कैसे लोड करें]]></description>
            <content:encoded><![CDATA[<h1 id="ब्राउज़र-में-three-js-usdc" tabindex="-1">ब्राउज़र में Three.js + USDC <a class="header-anchor" href="#ब्राउज़र-में-three-js-usdc" aria-label="Permalink to &quot;ब्राउज़र में Three.js + USDC&quot;"></a></h1>
<p>तो आपके पास Maya या Houdini से एक <code>.usdc</code> फाइल है, और आप उसे एक Three.js सीन में दिखाना चाहते हैं। मैं यहाँ से गुज़र चुका हूँ। हाल तक, आपके पास अच्छे विकल्प नहीं थे। आप ऑफलाइन glTF में कन्वर्ट कर सकते थे, OpenUSD का एक WASM बिल्ड चला सकते थे, या बस हार मानकर कोई दूसरा फॉर्मैट इस्तेमाल कर सकते थे।</p>
<p>यह गाइड आपको दिखाती है कि <code>@cinevva/usdjs</code> का इस्तेमाल करके USDC को सीधे JavaScript में कैसे पार्स करें, और उस डेटा को Three.js में कैसे लाएँ।</p>
<h2 id="usdc-क्या-है" tabindex="-1">USDC क्या है? <a class="header-anchor" href="#usdc-क्या-है" aria-label="Permalink to &quot;USDC क्या है?&quot;"></a></h2>
<p>USD फाइलें तीन रूपों में आती हैं। USDA टेक्स्ट वर्शन है, इंसानों के पढ़ने लायक और डीबग करने में आसान लेकिन बड़ा-सा। USDC (जिसे कभी-कभी &quot;Crate&quot; कहते हैं) वह बाइनरी फॉर्मैट है जिसे प्रोडक्शन पाइपलाइनें असल में इस्तेमाल करती हैं क्योंकि यह कॉम्पैक्ट है और नेटिव टूल्स में तेज़ी से लोड होता है। USDZ एक zip आर्काइव है जिसमें USDC के साथ टेक्सचर होते हैं, जिसे Apple अपने AR Quick Look के लिए इस्तेमाल करता है।</p>
<p>यहाँ पेच यह है: USDC एक प्रोप्राइटरी बाइनरी फॉर्मैट है। Pixar ने रेफरेंस इम्प्लीमेंटेशन C++ में लिखा, और अब तक इसे पढ़ने का कोई शुद्ध JavaScript तरीका नहीं था। यह अब बदलने लगा है: दिसंबर 2025 में Alliance for OpenUSD ने Core Specification 1.0 प्रकाशित किया, जो यह दस्तावेज़ करने वाला पहला अनुमोदित मानक है कि OpenUSD सीन डेटा कैसे संरचित, कंपोज़ और एक्सचेंज होता है, और एक 1.1 रिवीज़न पहले से प्रगति पर है। हालाँकि रेफरेंस इम्प्लीमेंटेशन अब भी Pixar के C++ कोडबेस में रहता है, इसलिए JavaScript से इस फॉर्मैट में जाने का व्यावहारिक रास्ता अब भी एक अलग रीडर ही है।</p>
<h2 id="आपको-इसकी-परवाह-क्यों-हो-सकती-है" tabindex="-1">आपको इसकी परवाह क्यों हो सकती है <a class="header-anchor" href="#आपको-इसकी-परवाह-क्यों-हो-सकती-है" aria-label="Permalink to &quot;आपको इसकी परवाह क्यों हो सकती है&quot;"></a></h2>
<p>अगर आप ऐसे 3D वेब ऐप्स बना रहे हैं जिन्हें फिल्म या VFX पाइपलाइनों के कंटेंट के साथ काम करना है, तो आप USD से टकराएँगे। आर्टिस्ट Maya, Houdini, या Blender से एक्सपोर्ट करते हैं, और वे एक्सपोर्ट अक्सर USDC होते हैं।</p>
<p><code>@cinevva/usdjs</code> से पहले, आपके पास तीन विकल्प थे। आप USDC को टेक्स्ट फॉर्मैट में कन्वर्ट करने के लिए <code>usdcat</code> चला सकते थे, जो एक बिल्ड स्टेप जोड़ता है और बाइनरी फॉर्मैट की कॉम्पैक्टनेस खो देता है। आप OpenUSD या TinyUSDZ को WebAssembly में कंपाइल कर सकते थे, जो आपके बंडल में मेगाबाइट्स जोड़ता है और थ्रेडिंग के लिए खास सर्वर हेडर चाहता है। या आप Three.js के बिल्ट-इन USDLoader का इस्तेमाल कर सकते थे, जो USDZ को संभालता है लेकिन सीमित USDC सपोर्ट और न्यूनतम कंपोज़िशन देता है।</p>
<p>अब एक चौथा विकल्प है: USDC को सीधे JavaScript में नेटिव तरीके से पार्स करें।</p>
<h2 id="यह-कैसे-काम-करता-है" tabindex="-1">यह कैसे काम करता है <a class="header-anchor" href="#यह-कैसे-काम-करता-है" aria-label="Permalink to &quot;यह कैसे काम करता है&quot;"></a></h2>
<p><code>@cinevva/usdjs</code> लाइब्रेरी USD की कोर फंक्शनैलिटी को TypeScript में फिर से लागू करती है। मैंने USDC पार्सर Pixar के C++ सोर्स कोड को पढ़कर और Crate फॉर्मैट स्पेसिफिकेशन को JavaScript में अनुवाद करके बनाया। जब बर्ताव में कोई अस्पष्टता होती है, तो हम वही करते हैं जो OpenUSD करता है।</p>
<p>व्यवहार में, यह ऐसा दिखता है:</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { parseUsdcToLayer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '@cinevva/usdjs'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Fetch the USDC file</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> response</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> fetch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'/model.usdc'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> buffer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> response.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">arrayBuffer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Parse it</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> layer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> parseUsdcToLayer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(buffer, { identifier: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'model.usdc'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> });</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Now you have a structured layer with prims, properties, and metadata</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(layer.pseudoRoot.children);</span></span></code></pre>
</div><p>कोई WASM नहीं। कोई नेटिव कोड नहीं। बस JavaScript बाइट्स पढ़ रहा है और एक संरचित रिप्रेज़ेंटेशन बना रहा है।</p>
<h2 id="इसे-three-js-में-जोड़ना" tabindex="-1">इसे Three.js में जोड़ना <a class="header-anchor" href="#इसे-three-js-में-जोड़ना" aria-label="Permalink to &quot;इसे Three.js में जोड़ना&quot;"></a></h2>
<p>USD पार्स करना समस्या का आधा हिस्सा ही है। आपको USD अवधारणाओं (prims, transforms, mesh schemas) को Three.js ऑब्जेक्ट्स में कन्वर्ट भी करना होता है।</p>
<p>यहाँ एक न्यूनतम उदाहरण है जो एक USDC फाइल लोड करता है और Three.js mesh बनाता है:</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> *</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> THREE </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'three'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { UsdStage, parseUsdcToLayer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '@cinevva/usdjs'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> loadUsdcToThree</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">url</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">scene</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> THREE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Scene</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // 1. Fetch and parse</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> buffer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> fetch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(url).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">then</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">r</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> r.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">arrayBuffer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">());</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> layer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> parseUsdcToLayer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(buffer, { identifier: url });</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // 2. Create a stage (handles composition if there are references)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> stage</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> UsdStage.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">open</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(layer);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // 3. Walk the prim tree</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> prim</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> of</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> stage.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">traverse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()) {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Skip non-geometry</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (prim.typeName </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!==</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> 'Mesh'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">continue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Get geometry data</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> points</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prim.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'points'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)?.value;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> faceVertexIndices</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prim.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'faceVertexIndices'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)?.value;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> faceVertexCounts</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prim.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'faceVertexCounts'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)?.value;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    </span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">points </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">||</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> !</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">faceVertexIndices </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">||</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> !</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">faceVertexCounts) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">continue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Convert to Three.js geometry</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> geometry</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> THREE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">BufferGeometry</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    geometry.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">setAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'position'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      new</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> THREE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Float32BufferAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(points.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">flat</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(), </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    );</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // USD uses faceVertexCounts + faceVertexIndices, Three.js wants a flat index array</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // For triangulated meshes, this is straightforward:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    geometry.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">setIndex</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Array.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(faceVertexIndices));</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    geometry.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">computeVertexNormals</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Create mesh</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> material</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> THREE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">MeshStandardMaterial</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ color: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0x888888</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> });</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> mesh</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> THREE</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Mesh</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(geometry, material);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Apply transform</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> xform</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> getWorldTransform</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(prim);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    mesh.matrix.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">fromArray</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(xform);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    mesh.matrixAutoUpdate </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    </span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    scene.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">add</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(mesh);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> getWorldTransform</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">prim</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[] {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // Simplified: in practice you'd compose parent transforms</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> xformOp</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prim.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getAttribute</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'xformOp:transform'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (xformOp?.value) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> xformOp.value.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">flat</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">];</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>यह उदाहरण सरल किया हुआ है। असली कोड को transform stacking संभालनी होती है (USD prims के पास कई <code>xformOp</code> एट्रिब्यूट हो सकते हैं जो आपस में कंपोज़ होते हैं), subdivision surfaces (<code>catmullClark</code> subdivision वाले meshes को असल subdivision चाहिए), materials (<code>UsdPreviewSurface</code> पैरामीटर Three.js के <code>MeshStandardMaterial</code> से मैप होते हैं), textures (asset पाथ को रिज़ॉल्व और लोड करना होता है), और skeletal animation (<code>UsdSkel</code> bindings को <code>SkinnedMesh</code> में कन्वर्ट करना होता है)।</p>
<p>अगर आप देखना चाहते हैं कि यह सब एक साथ कैसे काम करता है, तो <code>@cinevva/usdjs-viewer</code> देखें। यह एक पूरा रेफरेंस इम्प्लीमेंटेशन है।</p>
<h2 id="कंपोज़िशन-आपकी-सोच-से-ज़्यादा-मायने-रखती-है" tabindex="-1">कंपोज़िशन आपकी सोच से ज़्यादा मायने रखती है <a class="header-anchor" href="#कंपोज़िशन-आपकी-सोच-से-ज़्यादा-मायने-रखती-है" aria-label="Permalink to &quot;कंपोज़िशन आपकी सोच से ज़्यादा मायने रखती है&quot;"></a></h2>
<p>एक अकेली USDC फाइल पार्स करना आसान हिस्सा है। असली USD सीन कंपोज़िशन इस्तेमाल करते हैं, यानी sublayers, references, payloads, और variants सब एक साथ काम करते हैं।</p>
<p>एक कार मॉडल की कल्पना करें। बॉडी <code>body.usdc</code> को रेफरेंस करती है, पहिए <code>wheel.usdc</code> को रेफरेंस करते हैं, और &quot;sport&quot; व &quot;sedan&quot; कॉन्फ़िगरेशन के लिए variants हैं। फाइनल सीन रनटाइम पर इन सभी टुकड़ों से जोड़कर बनाया जाता है।</p>
<p>इसे आप ऐसे संभालते हैं:</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { UsdStage, parseUsdcToLayer, FetchResolver } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '@cinevva/usdjs'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Create a resolver that knows how to fetch referenced files</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> resolver</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> FetchResolver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  baseUrl: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'/assets/'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Open with composition</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> stage</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> UsdStage.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">open</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(rootLayer, { resolver });</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Set a variant selection</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">stage.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">setVariantSelection</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'/Car'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'bodyStyle'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'sport'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Now traverse the composed scene</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> prim</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> of</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> stage.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">traverse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()) {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // You'll see resolved references and the selected variant</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>resolver रेफरेंस की गई USDC फाइलों को ज़रूरत पड़ने पर fetch करता है। कंपोज़िशन JavaScript में होती है, जिससे वही फ्लैटन किया हुआ सीन बनता है जो आपको <code>usdcat --flatten</code> से मिलता।</p>
<h2 id="परफॉर्मेंस" tabindex="-1">परफॉर्मेंस <a class="header-anchor" href="#परफॉर्मेंस" aria-label="Permalink to &quot;परफॉर्मेंस&quot;"></a></h2>
<p>ईमानदार रहते हैं: JavaScript में USDC पार्स करना नेटिव C++ से धीमा है। यह WASM और बिल्ड स्टेप्स को छोड़ने का सौदा है।</p>
<p>व्यवहार में, 10MB से कम और 100K त्रिभुजों से कम वाले मॉडल के साथ आम वेब उपयोग के लिए, मॉडर्न हार्डवेयर पर पार्सिंग में 50-200ms लगते हैं। अगर आप एक लोडिंग इंडिकेटर दिखाते हैं तो शुरुआती लोड के लिए यह ठीक है।</p>
<p>आप इसे तेज़ बना सकते हैं। पूरा सीन एक बार में लोड न करें। रूट लेयर लोड करें, जो दिखा सकें वह रेंडर करें, फिर ज़रूरत पड़ने पर payloads fetch करें। पार्सिंग को एक Web Worker में ले जाएँ ताकि UI रिस्पॉन्सिव बना रहे। पार्स की गई लेयर्स को IndexedDB में कैश करें ताकि दोबारा आने पर सब तुरंत हो। पूरा सीन स्ट्रीम होते समय एक low-res प्रीव्यू दिखाएँ।</p>
<p>यहाँ एक Web Worker सेटअप है:</p>
<div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// worker.ts</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { parseUsdcToLayer } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '@cinevva/usdjs'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">self.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">onmessage</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> async</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">e</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">buffer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">identifier</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> e.data;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> layer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> parseUsdcToLayer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(buffer, { identifier });</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // Serialize layer data (not the methods)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> data</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> serializeLayer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(layer);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  self.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">postMessage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(data);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">};</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// main.ts</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> worker</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Worker</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> URL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'./worker.ts'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">meta</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.url));</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">worker.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">postMessage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({ buffer, identifier: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'model.usdc'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> });</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">worker.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">onmessage</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">e</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> layerData</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> e.data;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // Build Three.js scene from layerData</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">};</span></span></code></pre>
</div><h2 id="क्या-काम-करता-है-और-क्या-नहीं" tabindex="-1">क्या काम करता है और क्या नहीं <a class="header-anchor" href="#क्या-काम-करता-है-और-क्या-नहीं" aria-label="Permalink to &quot;क्या काम करता है और क्या नहीं&quot;"></a></h2>
<p>ज़्यादातर आम चीज़ें काम करती हैं। Geometry (meshes, points, curves) सही पार्स होती है, जिसमें compressed vertex arrays भी शामिल हैं। Transforms पूरे <code>xformOp</code> stacking के साथ काम करते हैं। Materials <code>UsdPreviewSurface</code> से PBR में मैप होते हैं। कंपोज़िशन sublayers, references, payloads, variants, और inherits को संभालती है। अगर आप एक resolver देते हैं तो Textures रिज़ॉल्व और लोड होते हैं। आम character rigs के लिए बेसिक skeletal animation काम करती है।</p>
<p>हालाँकि कुछ कमियाँ हैं। यह एक Hydra इम्प्लीमेंटेशन नहीं है, इसलिए USD डेटा को जिस भी रेंडरिंग engine का इस्तेमाल कर रहे हैं उसमें कन्वर्ट करने की ज़िम्मेदारी आपकी है। <code>UsdGeomMesh</code> जैसी सुविधाजनक मेथड वाली typed schema APIs नहीं हैं। आप जेनेरिक prims और एट्रिब्यूट्स के साथ काम करते हैं। कुछ कंपोज़िशन फीचर्स जैसे specializes, relocates, और value clips अभी लागू नहीं हुए हैं। साधारण <code>UsdPreviewSurface</code> से आगे के जटिल material networks को कस्टम हैंडलिंग चाहिए।</p>
<h2 id="इसे-कब-इस्तेमाल-करें" tabindex="-1">इसे कब इस्तेमाल करें <a class="header-anchor" href="#इसे-कब-इस्तेमाल-करें" aria-label="Permalink to &quot;इसे कब इस्तेमाल करें&quot;"></a></h2>
<p>यह तब समझ में आता है जब आपको एक वेब ऐप में बिना WASM बिल्ड स्टेप के USD फाइलें लोड करनी हों, जब आपकी पाइपलाइन USDC आउटपुट करती है और आप glTF में कन्वर्ट नहीं करना चाहते, जब आप ब्राउज़र के लिए एक USD viewer या editor बना रहे हों, या जब आप USD स्ट्रक्चर को सिर्फ रेंडर करने के बजाय उसकी जाँच करना चाहते हों।</p>
<p>कुछ और इस्तेमाल करें अगर आपको हर एज केस के साथ पूरी OpenUSD पैरिटी चाहिए, अगर आपके सीन बहुत बड़े हैं (100MB+) और उन्हें नेटिव परफॉर्मेंस चाहिए, या अगर आप पहले से एक WASM बिल्ड इस्तेमाल कर रहे हैं और आपके प्रोजेक्ट के लिए जटिलता स्वीकार्य है।</p>
<h2 id="संसाधन" tabindex="-1">संसाधन <a class="header-anchor" href="#संसाधन" aria-label="Permalink to &quot;संसाधन&quot;"></a></h2>
<p>तीन पैकेज हैं: कोर पार्सिंग और कंपोज़िशन के लिए <code>@cinevva/usdjs</code>, Three.js-आधारित ब्राउज़र viewer के लिए <code>@cinevva/usdjs-viewer</code>, और टेस्ट में headless PNG रेंडरिंग के लिए <code>@cinevva/usdjs-renderer</code>।</p>
<p>डॉक्युमेंटेशन के लिए, <a href="https://cinevva-engine.github.io/usdjs/API" target="_blank" rel="noreferrer">usdjs API Reference</a>, <a href="https://openusd.org/release/index.html" target="_blank" rel="noreferrer">Pixar OpenUSD Specification</a>, और <a href="https://threejs.org/docs/" target="_blank" rel="noreferrer">Three.js Documentation</a> देखें।</p>
<p>अगर आप समझना चाहते हैं कि USDC पार्सर Pixar के इम्प्लीमेंटेशन से कैसे मैप होता है, तो usdjs रिपो में <code>src/usdc/PIXAR_PARITY.md</code> देखें।</p>
<h2 id="इसे-आज़माएँ" tabindex="-1">इसे आज़माएँ <a class="header-anchor" href="#इसे-आज़माएँ" aria-label="Permalink to &quot;इसे आज़माएँ&quot;"></a></h2>
<p>इसे काम करते देखने का सबसे तेज़ तरीका है <a href="https://cinevva-engine.github.io/usdjs-viewer/" target="_blank" rel="noreferrer">usdjs-viewer demo</a> पर जाना और उस पर एक USDC फाइल ड्रॉप करना।</p>
<p>इसे अपने प्रोजेक्ट में जोड़ने के लिए, पैकेज इंस्टॉल करें और ऊपर दिए कोड उदाहरणों से शुरुआत करें:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> @cinevva/usdjs</span></span></code></pre>
</div><p>ब्राउज़र में USD संभव है। यह हमेशा सही चुनाव नहीं होता, लेकिन जब आपको इसकी ज़रूरत हो, तो शुद्ध JavaScript पार्सिंग का मतलब है एक कम बिल्ड स्टेप और एक कम डिपेंडेंसी के बारे में सोचना।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/tutorials/webgl-fundamentals-for-games.html">गेम डेवलपर्स के लिए WebGL की बुनियादी बातें</a> — वह रेंडरिंग API जो Three.js सीन को चलाती है</li>
<li><a href="/hi/guides/web-games-stack-2026.html">2026 में वेब गेम्स टेक स्टैक</a> — Three.js WebGL/WebGPU/Wasm के दायरे में कहाँ फिट बैठता है</li>
<li><a href="/hi/guides/browser-3d-open-world-tech.html">ब्राउज़र 3D ओपन वर्ल्ड टेक</a> — ओपन वर्ल्ड के लिए USD समेत 3D assets को स्ट्रीम करना</li>
<li><a href="/hi/guides/game-assets-guide.html">मुफ्त गेम Assets कहाँ मिलें</a> — Three.js के साथ संगत 3D मॉडल के स्रोत</li>
</ul>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 के लिए 11 बेहतरीन Web Game Engines, रैंक और तुलना के साथ]]></title>
            <link>https://app.cinevva.com/hi/guides/web-game-engines-comparison</link>
            <guid>https://app.cinevva.com/hi/guides/web-game-engines-comparison</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[हमने 11 web game engines की तुलना की build size, load time, 2D बनाम 3D, WebGPU, और cost पर। देखें कौन सा आपके project के लिए जीतता है, Unity और Godot से लेकर PlayCanvas, Defold, और Phaser तक।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-के-लिए-बेहतरीन-web-game-engines-तुलना-के-साथ" tabindex="-1">2026 के लिए बेहतरीन Web Game Engines (तुलना के साथ) <a class="header-anchor" href="#_2026-के-लिए-बेहतरीन-web-game-engines-तुलना-के-साथ" aria-label="Permalink to &quot;2026 के लिए बेहतरीन Web Game Engines (तुलना के साथ)&quot;"></a></h1>
<p><em>आखिरी बार अपडेट किया गया: जुलाई 2026.</em></p>
<p>web के लिए कोई game बना रहे हैं? आपका engine का चुनाव सब कुछ तय करता है: build size, load time, visual fidelity, और आपके audience का कितना हिस्सा असल में खेल सकता है।</p>
<p>यह guide 2026 में उपलब्ध बेहतरीन web game engines की तुलना करती है, Unity और Godot जैसे पूरी-तरह-फीचर्ड engines से लेकर Phaser और PixiJS जैसे हल्के JavaScript frameworks तक।</p>
<h2 id="_2026-के-लिए-बेहतरीन-web-game-engines-तुरंत-चुनाव" tabindex="-1">2026 के लिए बेहतरीन Web Game Engines: तुरंत चुनाव <a class="header-anchor" href="#_2026-के-लिए-बेहतरीन-web-game-engines-तुरंत-चुनाव" aria-label="Permalink to &quot;2026 के लिए बेहतरीन Web Game Engines: तुरंत चुनाव&quot;"></a></h2>
<p>समय कम है? यहाँ बताया गया है कि 2026 में हर engine कहाँ जीतता है।</p>
<h3 id="बेहतरीन-3d-web-game-engines" tabindex="-1">बेहतरीन 3D web game engines <a class="header-anchor" href="#बेहतरीन-3d-web-game-engines" aria-label="Permalink to &quot;बेहतरीन 3D web game engines&quot;"></a></h3>
<p>browser-first 3D के लिए PlayCanvas सबसे आगे है: 1-2 MB का runtime, beta में WebGPU, और एक collaborative cloud editor। Godot (Compatibility renderer) और Cocos Creator मज़बूत free विकल्प हैं, और Unity WebGL तब काम करता है जब आपको native builds भी चाहिए और आप 8 MB+ download स्वीकार कर सकते हैं।</p>
<h3 id="_2026-के-लिए-शीर्ष-2d-game-engines" tabindex="-1">2026 के लिए शीर्ष 2D game engines <a class="header-anchor" href="#_2026-के-लिए-शीर्ष-2d-game-engines" aria-label="Permalink to &quot;2026 के लिए शीर्ष 2D game engines&quot;"></a></h3>
<p>2D के लिए Defold और Phaser चुनाव हैं। Defold सबसे छोटी builds (~1.14 MB) देता है और सबसे तेज़ load होता है; Phaser आपको सबसे बड़ी community के साथ एक पूरा batteries-included framework देता है। non-coders के लिए, Construct और GDevelop बिना programming के 2D games visually बनाते हैं। पूरे ब्योरे के लिए, देखें <a href="/hi/guides/best-2d-game-engines-2026.html">2026 के लिए बेहतरीन 2D game engines</a>।</p>
<h3 id="बेहतरीन-wasm-game-engines" tabindex="-1">बेहतरीन Wasm game engines <a class="header-anchor" href="#बेहतरीन-wasm-game-engines" aria-label="Permalink to &quot;बेहतरीन Wasm game engines&quot;"></a></h3>
<p>अगर WebAssembly performance प्राथमिकता है, तो Godot (Wasm + SIMD डिफ़ॉल्ट रूप से), Defold (Wasm runtime), और Cocos Creator (5-9x लाभ के साथ Wasm physics) तेज़, compact web builds में compile होते हैं। Wasm ही है जो इन engines को browser के अंदर near-native speed पर चलने देता है।</p>
<h3 id="बेहतरीन-free-और-open-source-web-game-engines" tabindex="-1">बेहतरीन free और open-source web game engines <a class="header-anchor" href="#बेहतरीन-free-और-open-source-web-game-engines" aria-label="Permalink to &quot;बेहतरीन free और open-source web game engines&quot;"></a></h3>
<p>Godot, Phaser, PixiJS, Defold, और Excalibur.js सभी free और open-source हैं, इसलिए कोई license fees या revenue thresholds नहीं हैं। Godot 2D और 3D दोनों के लिए सबसे पूरा free engine है।</p>
<h2 id="तुरंत-संदर्भ-तालिका" tabindex="-1">तुरंत संदर्भ तालिका <a class="header-anchor" href="#तुरंत-संदर्भ-तालिका" aria-label="Permalink to &quot;तुरंत संदर्भ तालिका&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Engine</th>
<th>प्रकार</th>
<th>Web Tech</th>
<th>Build Size (खाली)</th>
<th>किसके लिए बेहतरीन</th>
<th>Cost</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://unity.com/" target="_blank" rel="noreferrer"><strong>Unity</strong></a></td>
<td>पूरा engine</td>
<td>WebGL</td>
<td>~8 MB</td>
<td>3D games, cross-platform</td>
<td>$200K से कम Free; Pro $2,310/वर्ष</td>
</tr>
<tr>
<td><a href="https://godotengine.org/" target="_blank" rel="noreferrer"><strong>Godot</strong></a></td>
<td>पूरा engine</td>
<td>WebGL + Wasm</td>
<td>~9 MB (24 MB uncompressed)</td>
<td>2D/3D indie games</td>
<td>Free (MIT)</td>
</tr>
<tr>
<td><a href="https://www.unrealengine.com/" target="_blank" rel="noreferrer"><strong>Unreal</strong></a></td>
<td>पूरा engine</td>
<td>केवल Pixel Streaming</td>
<td>लागू नहीं (server-side)</td>
<td>High-fidelity visualization</td>
<td>$1M revenue से कम Free</td>
</tr>
<tr>
<td><a href="https://www.cocos.com/en/creator" target="_blank" rel="noreferrer"><strong>Cocos Creator</strong></a></td>
<td>पूरा engine</td>
<td>WebGL + WebGPU + Wasm</td>
<td>~2-4 MB</td>
<td>2D/3D, mini-games (एशिया)</td>
<td>Free</td>
</tr>
<tr>
<td><a href="https://playcanvas.com/" target="_blank" rel="noreferrer"><strong>PlayCanvas</strong></a></td>
<td>Web-first 3D</td>
<td>WebGL2 + WebGPU</td>
<td>~1-2 MB</td>
<td>Interactive 3D, web apps</td>
<td>Free tier; paid plans</td>
</tr>
<tr>
<td><a href="https://defold.com/" target="_blank" rel="noreferrer"><strong>Defold</strong></a></td>
<td>Web-first 2D/3D</td>
<td>WebGL + Wasm</td>
<td>~1.14 MB</td>
<td>Casual/mobile web games</td>
<td>Free</td>
</tr>
<tr>
<td><a href="https://www.construct.net/" target="_blank" rel="noreferrer"><strong>Construct</strong></a></td>
<td>Visual 2D</td>
<td>WebGL + WebGPU</td>
<td>~1-2 MB</td>
<td>2D games, non-coders</td>
<td>Subscription</td>
</tr>
<tr>
<td><a href="https://gdevelop.io/" target="_blank" rel="noreferrer"><strong>GDevelop</strong></a></td>
<td>Visual 2D/3D</td>
<td>WebGL</td>
<td>~2-3 MB</td>
<td>शुरुआती लोग, rapid prototyping</td>
<td>Free tier; paid plans</td>
</tr>
<tr>
<td><a href="https://phaser.io/" target="_blank" rel="noreferrer"><strong>Phaser</strong></a></td>
<td>JS framework</td>
<td>WebGL/Canvas</td>
<td>~500 KB</td>
<td>2D games, rapid prototyping</td>
<td>Free (MIT)</td>
</tr>
<tr>
<td><a href="https://pixijs.com/" target="_blank" rel="noreferrer"><strong>PixiJS</strong></a></td>
<td>JS renderer</td>
<td>WebGL</td>
<td>~200 KB</td>
<td>Custom 2D rendering</td>
<td>Free (MIT)</td>
</tr>
<tr>
<td><a href="https://excaliburjs.com/" target="_blank" rel="noreferrer"><strong>Excalibur.js</strong></a></td>
<td>JS framework</td>
<td>WebGL</td>
<td>~300 KB</td>
<td>TypeScript 2D games</td>
<td>Free (BSD)</td>
</tr>
</tbody>
</table>
<h2 id="पूरी-तरह-फीचर्ड-game-engines" tabindex="-1">पूरी-तरह-फीचर्ड Game Engines <a class="header-anchor" href="#पूरी-तरह-फीचर्ड-game-engines" aria-label="Permalink to &quot;पूरी-तरह-फीचर्ड Game Engines&quot;"></a></h2>
<h3 id="unity-webgl" tabindex="-1"><a href="https://unity.com/" target="_blank" rel="noreferrer">Unity</a> (WebGL) <a class="header-anchor" href="#unity-webgl" aria-label="Permalink to &quot;[Unity](https://unity.com/) (WebGL)&quot;"></a></h3>
<p>इंडस्ट्री का workhorse। Unity का WebGL export playable web builds बनाता है, पर बड़े trade-offs के साथ। मौजूदा release Unity 6.5 (जून 2026) है, और इसमें पुरानी Built-in Render Pipeline deprecated हो गई है (Unity 6.7 LTS तक supported), इसलिए नए projects को URP से शुरू करना चाहिए।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>विस्तृत Asset Store के साथ परिपक्व ecosystem</li>
<li>उन्नत rendering, physics, animation tools</li>
<li>मज़बूत documentation और community</li>
<li>Cross-platform: एक ही codebase desktop, mobile, console, और web पर deploy होता है</li>
</ul>
<p><strong>Web सीमाएँ:</strong></p>
<ul>
<li>बड़े build sizes (~8+ MB न्यूनतम)</li>
<li>web-native engines की तुलना में धीमे load times</li>
<li>performance native builds से पीछे रहती है</li>
<li>WebGPU backend Unity 6.5 में भी अब तक experimental है, डिफ़ॉल्ट रूप से बंद और अभी production-ready नहीं</li>
<li>mobile browsers पर memory overhead परेशानी भरा हो सकता है</li>
</ul>
<p><strong>Pricing (2026):</strong></p>
<ul>
<li>Personal: $200K revenue तक Free</li>
<li>Pro: ~$2,310/seat/वर्ष (जनवरी 2026 में 5% की बढ़ोतरी)</li>
<li>Runtime fee 2024 के अंत में रद्द कर दी गई</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> आप एक जटिल 3D game बना रहे हैं जिसे अन्य platforms पर भी ship करना है। Web दूसरे नंबर पर है।</p>
<p><strong>Links:</strong> <a href="https://unity.com/" target="_blank" rel="noreferrer">Unity</a> · <a href="https://docs.unity3d.com/Manual/webgl.html" target="_blank" rel="noreferrer">WebGL Docs</a> · <a href="https://assetstore.unity.com/" target="_blank" rel="noreferrer">Asset Store</a></p>
<hr>
<h3 id="godot-html5" tabindex="-1"><a href="https://godotengine.org/" target="_blank" rel="noreferrer">Godot</a> (HTML5) <a class="header-anchor" href="#godot-html5" aria-label="Permalink to &quot;[Godot](https://godotengine.org/) (HTML5)&quot;"></a></h3>
<p>Open-source और तेज़ी से बेहतर हो रहा है। Godot 4.7 (जून 2026) मौजूदा stable रिलीज़ है, और इसमें डिफ़ॉल्ट रूप से WebAssembly SIMD के साथ एक नया wasm64 web export विकल्प शामिल है, जो code बदले बिना performance बढ़ाता है।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>पूरी तरह free और open-source (MIT license)</li>
<li>हल्का editor</li>
<li>समर्पित renderer के साथ बेहतरीन 2D support</li>
<li>GDScript शुरुआती लोगों के अनुकूल है</li>
<li>बेहतर performance के लिए WebAssembly + SIMD</li>
<li>सक्रिय, बढ़ती community</li>
</ul>
<p><strong>Web सीमाएँ:</strong></p>
<ul>
<li>C# projects web में export नहीं हो सकते (केवल GDScript)</li>
<li>web export केवल WebGL 2.0 (Compatibility renderer) है; browser में Forward+/Mobile और WebGPU support नहीं (एक community WebGPU fork public beta में है, पर वह unofficial है)</li>
<li>Safari/iOS support परेशानी भरा है</li>
<li>खाली builds ~24 MB uncompressed (~9 MB gzipped)</li>
<li>कुछ 3D rendering features Unity से पीछे हैं</li>
</ul>
<p><strong>Threading:</strong></p>
<ul>
<li>SharedArrayBuffer के लिए COOP/COEP headers चाहिए</li>
<li>Single-threaded अब डिफ़ॉल्ट है (header की जटिलता से बचाता है)</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> आप open-source चाहते हैं, 2D को प्राथमिकता देते हैं, या licensing चिंताओं के बिना पूरा control चाहते हैं।</p>
<p><strong>Links:</strong> <a href="https://godotengine.org/" target="_blank" rel="noreferrer">Godot Engine</a> · <a href="https://docs.godotengine.org/en/stable/tutorials/export/exporting_for_web.html" target="_blank" rel="noreferrer">Web Export Docs</a> · <a href="https://github.com/godotengine/godot" target="_blank" rel="noreferrer">GitHub</a></p>
<hr>
<h3 id="unreal-engine-5" tabindex="-1"><a href="https://www.unrealengine.com/" target="_blank" rel="noreferrer">Unreal Engine 5</a> <a class="header-anchor" href="#unreal-engine-5" aria-label="Permalink to &quot;[Unreal Engine 5](https://www.unrealengine.com/)&quot;"></a></h3>
<p>Unreal ने UE 4.24 के साथ native HTML5 export हटा दिया। UE5 में, browser delivery के लिए <strong>Pixel Streaming</strong> चाहिए, जिसे UE 5.7 में Pixel Streaming 2 के रूप में फिर से लिखा गया। UE 5.8 (जून 2026), जो UE6 से पहले आखिरी planned UE5 release है, web की कहानी नहीं बदलता।</p>
<p><strong>Pixel Streaming कैसे काम करता है:</strong></p>
<ul>
<li>Game एक GPU वाले server पर चलता है</li>
<li>Frames WebRTC के ज़रिए browser को stream किए जाते हैं</li>
<li>Input browser से वापस भेजा जाता है</li>
<li>आमतौर पर प्रति user एक UE instance चाहिए होता है</li>
</ul>
<p><strong>ताकतें:</strong></p>
<ul>
<li>browser में पूरी UE5 visual fidelity</li>
<li>कोई client-side hardware आवश्यकता नहीं</li>
<li>browser वाले किसी भी device पर काम करता है</li>
</ul>
<p><strong>सीमाएँ:</strong></p>
<ul>
<li>server infrastructure चाहिए (scale करना महँगा)</li>
<li>Latency network पर निर्भर करती है</li>
<li>Video compression artifacts</li>
<li>पारंपरिक &quot;web games&quot; के लिए उपयुक्त नहीं, बल्कि visualizations, configurators, showcases के लिए</li>
</ul>
<p><strong>Community HTML5 प्रयास मौजूद हैं</strong> (SimplyStream जैसे WebAssembly/WebGPU forks) पर वे experimental और सीमित हैं।</p>
<p><strong>कब इस्तेमाल करें:</strong> High-fidelity architectural visualization या product configurators जहाँ server costs स्वीकार्य हों। mass web audiences को लक्ष्य करने वाले games के लिए व्यावहारिक नहीं।</p>
<p><strong>Links:</strong> <a href="https://www.unrealengine.com/" target="_blank" rel="noreferrer">Unreal Engine</a> · <a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/pixel-streaming-in-unreal-engine" target="_blank" rel="noreferrer">Pixel Streaming Docs</a></p>
<hr>
<h3 id="cocos-creator" tabindex="-1">Cocos Creator <a class="header-anchor" href="#cocos-creator" aria-label="Permalink to &quot;Cocos Creator&quot;"></a></h3>
<p>असाधारण web और mini-game platform support वाला एक पूरी-तरह-फीचर्ड engine, खासकर एशिया में लोकप्रिय।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>Dual-core architecture: web/mini-games के लिए optimized Web3D core (TypeScript)</li>
<li>WebGPU support (3.8.4 में जोड़ा गया)</li>
<li>5-9× performance लाभ के साथ physics के लिए WebAssembly (Box2D, Bullet)</li>
<li>बेहतरीन mini-game platform support (WeChat, TikTok, Taobao)</li>
<li>optimization control के लिए Custom Render Pipeline (CRP)</li>
<li>WASM runtime के साथ Spine 4.2 support</li>
<li>Package size trimming और Brotli compression</li>
<li>पूरी तरह free</li>
</ul>
<p><strong>Web सीमाएँ:</strong></p>
<ul>
<li>छोटी Western community (documentation मुख्य रूप से चीनी में)</li>
<li>सभी features चालू होने पर शुरुआती load भारी हो सकता है</li>
<li>पुराने browsers पर WebGL1/asm.js पर fallback performance घटाता है</li>
</ul>
<p><strong>हाल के जोड़ (2025-2026):</strong></p>
<ul>
<li>WebGPU backend</li>
<li>डिफ़ॉल्ट रूप से WASM physics modules</li>
<li>RenderGraph के ज़रिए Custom Render Pipeline</li>
<li>mini-games के लिए ASTC texture compression</li>
<li>काफ़ी package size कमी</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> Mini-game platforms (WeChat, TikTok), एशियाई बाज़ारों को लक्ष्य करने वाले mobile web games, या जब आपको free engine के साथ मज़बूत 2D/3D web performance चाहिए।</p>
<p><strong>Links:</strong> <a href="https://www.cocos.com/en/creator" target="_blank" rel="noreferrer">Cocos Creator</a> · <a href="https://docs.cocos.com/creator/manual/en/" target="_blank" rel="noreferrer">Documentation</a> · <a href="https://github.com/cocos/cocos-engine" target="_blank" rel="noreferrer">GitHub</a></p>
<hr>
<h2 id="web-first-engines" tabindex="-1">Web-First Engines <a class="header-anchor" href="#web-first-engines" aria-label="Permalink to &quot;Web-First Engines&quot;"></a></h2>
<p>ये engines खास तौर पर web delivery के लिए बनाए गए हैं।</p>
<h3 id="playcanvas" tabindex="-1"><a href="https://playcanvas.com/" target="_blank" rel="noreferrer">PlayCanvas</a> <a class="header-anchor" href="#playcanvas" aria-label="Permalink to &quot;[PlayCanvas](https://playcanvas.com/)&quot;"></a></h3>
<p>शुरुआत से ही web के लिए डिज़ाइन किया गया एक cloud-based 3D engine।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>WebGL2 + WebGPU (beta) support</li>
<li>Collaborative cloud editor</li>
<li>छोटा runtime (~1-2 MB)</li>
<li>PBR rendering, post-processing, GPU particles</li>
<li>WebGPU के ज़रिए Compute shaders</li>
<li>3D Gaussian Splatting support</li>
<li>कुशल asset compression (Basis Universal, WebP)</li>
</ul>
<p><strong>हाल के जोड़ (2025-2026):</strong></p>
<ul>
<li>WebGPU support के साथ Engine V2</li>
<li>Compute shaders</li>
<li>draw call overhead कम करने के लिए Multi-draw</li>
<li>viewer में HDR support</li>
<li>बेहतर glTF export</li>
<li>Engine v2.20 (अब v2.20.6 पर, जुलाई 2026) ने high-performance WebGPU renderer का विस्तार किया, जिसमें 3D Gaussian splats के लिए एक compute-based WebGPU path शामिल है</li>
</ul>
<p><strong>सीमाएँ:</strong></p>
<ul>
<li>WebGPU अभी भी beta में है (कुछ features गायब हैं जैसे runtime lightmapping)</li>
<li>Cloud-based workflow सभी teams के लिए ठीक न हो</li>
<li>जटिल 2D games के लिए कम उपयुक्त</li>
</ul>
<p><strong>Pricing:</strong></p>
<ul>
<li>Free tier उपलब्ध</li>
<li>private projects, storage, support के लिए paid plans</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> Interactive 3D web experiences, product configurators, web-based games जहाँ छोटा download size मायने रखता है।</p>
<p><strong>Links:</strong> <a href="https://playcanvas.com/" target="_blank" rel="noreferrer">PlayCanvas</a> · <a href="https://developer.playcanvas.com/" target="_blank" rel="noreferrer">Documentation</a> · <a href="https://github.com/playcanvas/engine" target="_blank" rel="noreferrer">GitHub</a></p>
<hr>
<h3 id="defold" tabindex="-1"><a href="https://defold.com/" target="_blank" rel="noreferrer">Defold</a> <a class="header-anchor" href="#defold" aria-label="Permalink to &quot;[Defold](https://defold.com/)&quot;"></a></h3>
<p>King (Candy Crush) का एक हल्का engine असाधारण web performance के साथ। Defold 1.13.0 (जून 2026) ने पुराना asm.js (js-web) target हटा दिया, इसलिए अब web builds केवल Wasm हैं, और इसने glTF morph targets जोड़े।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>बहुत छोटा runtime: ~1.14 MB (gzipped, खाली build)</li>
<li>डिफ़ॉल्ट रूप से WebAssembly</li>
<li>बेहतरीन load times</li>
<li>Poki और अन्य platforms पर built-in publishing</li>
<li>HTML5 performance profiler</li>
<li>हाल के versions में 30-50% performance सुधार के साथ GPU skinning</li>
<li>WebGPU experimental support</li>
</ul>
<p><strong>सीमाएँ:</strong></p>
<ul>
<li>Godot/Unity से छोटी community</li>
<li>Debug builds काफ़ी धीमी</li>
<li>256 MB डिफ़ॉल्ट heap (बड़े games के लिए tuning चाहिए)</li>
<li>Lua scripting के लिए learning curve</li>
</ul>
<p><strong>Performance तुलना:</strong></p>
<ul>
<li>खाली build: Defold ~1.14 MB बनाम Unity ~8 MB बनाम Godot ~9 MB</li>
<li>शीर्ष web games के अध्ययनों में सबसे तेज़-load होने वाले engines में से एक</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> Mobile-first web games, casual games, कोई भी project जहाँ load time अहम है।</p>
<p><strong>Links:</strong> <a href="https://defold.com/" target="_blank" rel="noreferrer">Defold</a> · <a href="https://defold.com/manuals/html5/" target="_blank" rel="noreferrer">HTML5 Docs</a> · <a href="https://github.com/defold/defold" target="_blank" rel="noreferrer">GitHub</a></p>
<hr>
<h3 id="construct" tabindex="-1"><a href="https://www.construct.net/" target="_blank" rel="noreferrer">Construct</a> <a class="header-anchor" href="#construct" aria-label="Permalink to &quot;[Construct](https://www.construct.net/)&quot;"></a></h3>
<p>Visual event-based development। non-programmers के लिए एकदम सही।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>कोई coding की ज़रूरत नहीं (event sheets)</li>
<li>WebGPU renderer डिफ़ॉल्ट रूप से चालू (जहाँ support हो)</li>
<li>तेज़ iteration और prototyping</li>
<li>अकेले 2025 में 55 releases</li>
<li>editor में TypeScript support</li>
<li>Built-in asset browser, debugger सुधार</li>
</ul>
<p><strong>सीमाएँ:</strong></p>
<ul>
<li>2D केंद्रित (न्यूनतम 3D support)</li>
<li>Subscription model</li>
<li>code-based engines से कम control</li>
<li>जटिल game logic पर दीवारों से टकरा सकते हैं</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> 2D games, rapid prototyping, education, या अगर आप programmer नहीं हैं।</p>
<p><strong>Links:</strong> <a href="https://www.construct.net/" target="_blank" rel="noreferrer">Construct</a> · <a href="https://www.construct.net/en/make-games/manuals/construct-3" target="_blank" rel="noreferrer">Documentation</a></p>
<hr>
<h3 id="gdevelop" tabindex="-1"><a href="https://gdevelop.io/" target="_blank" rel="noreferrer">GDevelop</a> <a class="header-anchor" href="#gdevelop" aria-label="Permalink to &quot;[GDevelop](https://gdevelop.io/)&quot;"></a></h3>
<p>बढ़ते 3D support के साथ open-source visual game engine।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>Event-based, no-code development</li>
<li>Native 3D support (5.3 में जोड़ा गया)</li>
<li>Real-time 3D editor (5.6)</li>
<li>3D के लिए Jolt Physics</li>
<li>Built-in profiler</li>
<li>Real-time multiplayer support (2-8 players)</li>
<li>Free tier उपलब्ध</li>
</ul>
<p><strong>सीमाएँ:</strong></p>
<ul>
<li>Exported code में engine libraries शामिल होती हैं (Pixi.js, Three.js, Howler.js)</li>
<li>Build size न्यूनतम frameworks से बड़ा</li>
<li>बहुत सारे objects/scenes के साथ editor धीमा हो सकता है</li>
<li>Performance optimization तकनीकों पर बहुत निर्भर करती है</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> शुरुआती लोग, शैक्षणिक संदर्भ, rapid prototyping, छोटे 2D/3D games।</p>
<p><strong>Links:</strong> <a href="https://gdevelop.io/" target="_blank" rel="noreferrer">GDevelop</a> · <a href="https://wiki.gdevelop.io/" target="_blank" rel="noreferrer">Documentation</a> · <a href="https://github.com/4ian/GDevelop" target="_blank" rel="noreferrer">GitHub</a></p>
<hr>
<h2 id="javascript-frameworks" tabindex="-1">JavaScript Frameworks <a class="header-anchor" href="#javascript-frameworks" aria-label="Permalink to &quot;JavaScript Frameworks&quot;"></a></h2>
<p>उन developers के लिए जो अधिकतम control और न्यूनतम overhead चाहते हैं।</p>
<h3 id="phaser-v4" tabindex="-1"><a href="https://phaser.io/" target="_blank" rel="noreferrer">Phaser</a> (v4) <a class="header-anchor" href="#phaser-v4" aria-label="Permalink to &quot;[Phaser](https://phaser.io/) (v4)&quot;"></a></h3>
<p>सबसे लोकप्रिय HTML5 game framework। Version 4 अप्रैल 2026 में stable shipped हुआ, v3 API को बरकरार रखते हुए एक नए node-based render architecture के साथ WebGL renderer का जड़ से पुनर्निर्माण। इसके बाद point releases तेज़ी से आए, जून 2026 में v4.2 &quot;Giedi&quot; और जुलाई में 4.2.1 patch।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>पूरा game framework: physics, input, audio, scenes, asset loading</li>
<li>Arcade Physics और Matter.js built-in</li>
<li>विशाल community, tutorials, examples</li>
<li>WebGL + Canvas renderers</li>
<li>bundlers और desktop wrappers के लिए templates</li>
</ul>
<p><strong>सीमाएँ:</strong></p>
<ul>
<li>न्यूनतम libraries से बड़ा bundle (~500 KB)</li>
<li>sprite-heavy परिदृश्यों में performance PixiJS से पीछे</li>
<li>अधिक opinionated architecture</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> मानक 2D games जहाँ आप batteries-included चाहते हैं पर फिर भी code लिखते हैं।</p>
<p><strong>Links:</strong> <a href="https://phaser.io/" target="_blank" rel="noreferrer">Phaser</a> · <a href="https://phaser.io/learn" target="_blank" rel="noreferrer">Documentation</a> · <a href="https://github.com/phaserjs/phaser" target="_blank" rel="noreferrer">GitHub</a></p>
<hr>
<h3 id="pixijs-v8" tabindex="-1"><a href="https://pixijs.com/" target="_blank" rel="noreferrer">PixiJS</a> (v8) <a class="header-anchor" href="#pixijs-v8" aria-label="Permalink to &quot;[PixiJS](https://pixijs.com/) (v8)&quot;"></a></h3>
<p>High-performance 2D rendering library।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>असाधारण rendering performance</li>
<li>बहुत छोटा footprint (~200 KB)</li>
<li>शक्तिशाली WebGL rendering pipeline</li>
<li>custom rendering, visualizations के लिए बढ़िया</li>
<li>नया &quot;gl2D&quot; scene format और game engine library विकास में</li>
</ul>
<p><strong>सीमाएँ:</strong></p>
<ul>
<li>एक game engine नहीं, कोई physics, audio, scene management नहीं</li>
<li>अधिक setup चाहिए</li>
<li>आप game logic खुद बनाते हैं (या integrate करते हैं)</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> Graphics-heavy applications, custom rendering ज़रूरतें, performance-critical projects, या जब आप अपना खुद का engine बना रहे हों।</p>
<p><strong>Links:</strong> <a href="https://pixijs.com/" target="_blank" rel="noreferrer">PixiJS</a> · <a href="https://pixijs.com/guides" target="_blank" rel="noreferrer">Documentation</a> · <a href="https://github.com/pixijs/pixijs" target="_blank" rel="noreferrer">GitHub</a></p>
<hr>
<h3 id="excalibur-js" tabindex="-1"><a href="https://excaliburjs.com/" target="_blank" rel="noreferrer">Excalibur.js</a> <a class="header-anchor" href="#excalibur-js" aria-label="Permalink to &quot;[Excalibur.js](https://excaliburjs.com/)&quot;"></a></h3>
<p>ECS architecture के साथ TypeScript-first 2D game engine।</p>
<p><strong>ताकतें:</strong></p>
<ul>
<li>TypeScript में बना</li>
<li>Entity-Component-System architecture</li>
<li>Tilemaps, nine-slice sprites, GPU particles</li>
<li>canvas के साथ scale होने वाला HTML-based UI</li>
<li>features और control का अच्छा संतुलन</li>
</ul>
<p><strong>सीमाएँ:</strong></p>
<ul>
<li>Pre-1.0 (कुछ APIs बदल सकते हैं)</li>
<li>छोटा ecosystem और कम tutorials</li>
<li>Physics और lighting अभी भी बनाए जा रहे हैं</li>
</ul>
<p><strong>कब इस्तेमाल करें:</strong> 2D games बनाने वाले TypeScript developers जो PixiJS से अधिक structure पर Phaser से कम overhead चाहते हैं।</p>
<p><strong>Links:</strong> <a href="https://excaliburjs.com/" target="_blank" rel="noreferrer">Excalibur.js</a> · <a href="https://excaliburjs.com/docs/" target="_blank" rel="noreferrer">Documentation</a> · <a href="https://github.com/excaliburjs/Excalibur" target="_blank" rel="noreferrer">GitHub</a></p>
<hr>
<h2 id="निर्णय-गाइड" tabindex="-1">निर्णय गाइड <a class="header-anchor" href="#निर्णय-गाइड" aria-label="Permalink to &quot;निर्णय गाइड&quot;"></a></h2>
<h3 id="project-प्रकार-के-अनुसार" tabindex="-1">Project प्रकार के अनुसार <a class="header-anchor" href="#project-प्रकार-के-अनुसार" aria-label="Permalink to &quot;Project प्रकार के अनुसार&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>Project</th>
<th>अनुशंसित Engine</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Casual 2D mobile web game</strong></td>
<td>Defold, Phaser, Construct</td>
</tr>
<tr>
<td><strong>custom ज़रूरतों के साथ जटिल 2D</strong></td>
<td>PixiJS, Excalibur.js</td>
</tr>
<tr>
<td><strong>3D web game</strong></td>
<td>PlayCanvas, Godot (Compatibility), Cocos Creator</td>
</tr>
<tr>
<td><strong>Cross-platform (web + native)</strong></td>
<td>Unity, Godot, Cocos Creator</td>
</tr>
<tr>
<td><strong>Mini-game platforms (WeChat, TikTok)</strong></td>
<td>Cocos Creator</td>
</tr>
<tr>
<td><strong>High-fidelity visualization</strong></td>
<td>Unreal (Pixel Streaming), PlayCanvas</td>
</tr>
<tr>
<td><strong>No-code / शुरुआती</strong></td>
<td>Construct, GDevelop</td>
</tr>
<tr>
<td><strong>Open-source ज़रूरी</strong></td>
<td>Godot, Phaser, PixiJS, Excalibur.js, Cocos (engine)</td>
</tr>
</tbody>
</table>
<h3 id="प्राथमिकता-के-अनुसार" tabindex="-1">प्राथमिकता के अनुसार <a class="header-anchor" href="#प्राथमिकता-के-अनुसार" aria-label="Permalink to &quot;प्राथमिकता के अनुसार&quot;"></a></h3>
<table tabindex="0">
<thead>
<tr>
<th>प्राथमिकता</th>
<th>बेहतरीन विकल्प</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>सबसे छोटा build size</strong></td>
<td>Defold, PixiJS, Excalibur.js</td>
</tr>
<tr>
<td><strong>सबसे तेज़ load time</strong></td>
<td>Defold, Phaser, vanilla JS</td>
</tr>
<tr>
<td><strong>बेहतरीन 3D support</strong></td>
<td>PlayCanvas, Unity, Cocos Creator</td>
</tr>
<tr>
<td><strong>बेहतरीन 2D support</strong></td>
<td>Godot, Phaser, Construct, Cocos Creator</td>
</tr>
<tr>
<td><strong>Free &amp; open-source</strong></td>
<td>Godot, Phaser, PixiJS, Defold, Cocos (engine)</td>
</tr>
<tr>
<td><strong>WebGPU support</strong></td>
<td>PlayCanvas (beta), Construct, Cocos Creator</td>
</tr>
<tr>
<td><strong>Mobile browser performance</strong></td>
<td>Defold, Phaser, PlayCanvas, Cocos Creator</td>
</tr>
<tr>
<td><strong>Mini-game platforms</strong></td>
<td>Cocos Creator</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="web-game-performance-की-हकीकत" tabindex="-1">Web Game Performance की हकीकत <a class="header-anchor" href="#web-game-performance-की-हकीकत" aria-label="Permalink to &quot;Web Game Performance की हकीकत&quot;"></a></h2>
<p>आप कोई भी engine चुनें, ये कारक ज़्यादा मायने रखते हैं:</p>
<ol>
<li><strong>Asset size</strong> — textures, audio compress करें, dependencies कम करें</li>
<li><strong>पहला scene</strong> — शुरुआती download छोटा रखें, बाकी stream करें</li>
<li><strong>Draw calls</strong> — sprites को batch करें, texture atlases इस्तेमाल करें</li>
<li><strong>Device testing</strong> — असली mobile devices पर test करें, सिर्फ़ desktop Chrome पर नहीं</li>
</ol>
<p>यहाँ से शुरू करें: <a href="/hi/tutorials/ship-web-game-fast.html">तेज़ load होने वाला web game ship करें</a></p>
<hr>
<h2 id="browser-compatibility-नोट्स" tabindex="-1">Browser Compatibility नोट्स <a class="header-anchor" href="#browser-compatibility-नोट्स" aria-label="Permalink to &quot;Browser Compatibility नोट्स&quot;"></a></h2>
<table tabindex="0">
<thead>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox</th>
<th>Safari</th>
<th>Mobile</th>
</tr>
</thead>
<tbody>
<tr>
<td>WebGL 2.0</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>WebGPU</td>
<td>✅</td>
<td>✅ Windows/macOS</td>
<td>✅ Safari 26+</td>
<td>✅ iOS/iPadOS 26+</td>
</tr>
<tr>
<td>SharedArrayBuffer</td>
<td>✅ (COOP/COEP)</td>
<td>✅ (COOP/COEP)</td>
<td>⚠️</td>
<td>⚠️</td>
</tr>
<tr>
<td>Wasm SIMD</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
<td>✅</td>
</tr>
</tbody>
</table>
<p>Safari 26 (सितंबर 2025) ने आखिरकार macOS, iPadOS, iOS और visionOS पर WebGPU भेज दिया, इसलिए cross-browser WebGPU अब सिर्फ़ Chrome तक सीमित नहीं, बल्कि एक हकीकत है। Firefox बचा हुआ पिछड़ा है: WebGPU Firefox 141 में Windows पर आया और Firefox 145 में macOS तक पहुँचा, पर Linux और Android builds में यह अभी सिर्फ़ Nightly में है, और Mozilla दोनों के लिए 2026 का लक्ष्य रख रहा है। SharedArrayBuffer Safari पर अब भी ज़्यादा पेचीदा dependency है, इसलिए अगर आप threading पर निर्भर हैं या व्यापक audiences को लक्ष्य कर रहे हैं तो हमेशा Safari/iOS पर test करें।</p>
<hr>
<h2 id="आम-सवाल" tabindex="-1">आम सवाल <a class="header-anchor" href="#आम-सवाल" aria-label="Permalink to &quot;आम सवाल&quot;"></a></h2>
<h3 id="browser-games-के-लिए-सबसे-बेहतरीन-game-engine-कौन-सा-है" tabindex="-1">browser games के लिए सबसे बेहतरीन game engine कौन सा है? <a class="header-anchor" href="#browser-games-के-लिए-सबसे-बेहतरीन-game-engine-कौन-सा-है" aria-label="Permalink to &quot;browser games के लिए सबसे बेहतरीन game engine कौन सा है?&quot;"></a></h3>
<p>कोई एक जवाब नहीं है क्योंकि यह इस पर निर्भर करता है कि आप क्या बना रहे हैं। 2D games के लिए, Phaser और Defold को हराना मुश्किल है। वे हल्के हैं, अच्छी तरह दस्तावेज़ित हैं, और छोटी builds बनाते हैं जो तेज़ी से load होती हैं। browser में 3D के लिए, PlayCanvas और Three.js आपको पूरे desktop engine के bloat के बिना सबसे ज़्यादा control देते हैं। अगर आपको cross-platform चाहिए और web दूसरे नंबर पर है, तो Unity या Godot WebGL में export कर सकते हैं, पर बड़े downloads की उम्मीद रखें। हमने <a href="/hi/engine.html">Cinevva Engine</a> Three.js पर बनाया क्योंकि हम पहले दिन से open-source और web-first चाहते थे।</p>
<h3 id="क्या-unity-web-में-export-कर-सकता-है" tabindex="-1">क्या Unity web में export कर सकता है? <a class="header-anchor" href="#क्या-unity-web-में-export-कर-सकता-है" aria-label="Permalink to &quot;क्या Unity web में export कर सकता है?&quot;"></a></h3>
<p>हाँ, Unity WebGL builds export कर सकता है। यह काम करता है, पर trade-offs के साथ। एक खाली project के लिए भी न्यूनतम build size लगभग 8 MB है, load times web-native engines से ध्यान देने लायक धीमे हैं, और memory overhead के चलते mobile browser support डगमग हो सकता है। अगर आपका game पहले से Unity में मौजूद है और आप एक web version चाहते हैं, तो ठीक है। अगर आप नए सिरे से शुरू कर रहे हैं और खास तौर पर web को लक्ष्य कर रहे हैं, तो एक web-native engine आपको बेहतर नतीजे देगा।</p>
<h3 id="क्या-godot-web-games-के-लिए-अच्छा-है" tabindex="-1">क्या Godot web games के लिए अच्छा है? <a class="header-anchor" href="#क्या-godot-web-games-के-लिए-अच्छा-है" aria-label="Permalink to &quot;क्या Godot web games के लिए अच्छा है?&quot;"></a></h3>
<p>Godot का HTML5 export ठोस है और बेहतर हो रहा है। engine खुद free और open-source है, जो एक बड़ा आकर्षण है। Build sizes लगभग 9 MB uncompressed से शुरू होती हैं (gzip के साथ छोटी), और आपको सही 2D और 3D support मिलता है। मुख्य पेच SharedArrayBuffer है, जिसके लिए खास server headers चाहिए और कुछ hosting setups पर समस्याएँ पैदा कर सकता है। उन indie devs के लिए जो desktop और web के पार एक codebase चाहते हैं, Godot एक मज़बूत चुनाव है।</p>
<h3 id="सबसे-छोटा-web-game-engine-कौन-सा-है" tabindex="-1">सबसे छोटा web game engine कौन सा है? <a class="header-anchor" href="#सबसे-छोटा-web-game-engine-कौन-सा-है" aria-label="Permalink to &quot;सबसे छोटा web game engine कौन सा है?&quot;"></a></h3>
<p>PixiJS लगभग 200 KB का है, जो बहुत छोटा है। हालाँकि यह एक 2D renderer है, पूरा engine नहीं, इसलिए आप खुद ज़्यादा code लिखेंगे। Excalibur.js लगभग 300 KB का है और इसमें ज़्यादा built-in game features हैं। Phaser लगभग 500 KB पर बैठता है और आपको एक पूरा 2D game framework देता है। 3D के लिए, PlayCanvas और Defold 1-2 MB के आसपास मँडराते हैं। हालाँकि असली सवाल सिर्फ़ engine size नहीं है। यह आपके assets सहित कुल build size है, और वहीं engine के चुनाव से ज़्यादा optimization मायने रखता है।</p>
<h3 id="_2026-के-लिए-सबसे-बेहतरीन-game-engine-कौन-सा-है" tabindex="-1">2026 के लिए सबसे बेहतरीन game engine कौन सा है? <a class="header-anchor" href="#_2026-के-लिए-सबसे-बेहतरीन-game-engine-कौन-सा-है" aria-label="Permalink to &quot;2026 के लिए सबसे बेहतरीन game engine कौन सा है?&quot;"></a></h3>
<p>यह इस पर निर्भर करता है कि आप क्या ship कर रहे हैं। web-first 3D के लिए, 2026 में PlayCanvas सबसे मज़बूत चुनाव है। 2D के लिए, Defold और Phaser load time और community पर आगे हैं। अगर आपको web और native के लिए एक codebase चाहिए, तो Godot (free) या Unity (बड़ी builds) समझ में आते हैं। कोई सार्वभौमिक &quot;सबसे बेहतरीन&quot; engine नहीं है, सिर्फ़ आपके build size, platform, और skill level के लिए सबसे उपयुक्त। हमने <a href="/hi/engine.html">Cinevva Engine</a> Three.js पर बनाया क्योंकि हम शुरू से open-source और web-first चाहते थे।</p>
<h3 id="_2026-के-लिए-शीर्ष-2d-game-engines-कौन-से-हैं" tabindex="-1">2026 के लिए शीर्ष 2D game engines कौन से हैं? <a class="header-anchor" href="#_2026-के-लिए-शीर्ष-2d-game-engines-कौन-से-हैं" aria-label="Permalink to &quot;2026 के लिए शीर्ष 2D game engines कौन से हैं?&quot;"></a></h3>
<p>Defold, Phaser, और Construct 2026 में web के लिए शीर्ष 2D engines हैं। Defold सबसे छोटी, सबसे तेज़-load होने वाली builds बनाता है। Phaser सबसे बड़े ecosystem वाला सबसे लोकप्रिय HTML5 framework है। Construct आपको बिना code के 2D games visually बनाने देता है। custom rendering के लिए, PixiJS और Excalibur.js आपको छोटे footprint पर ज़्यादा control देते हैं।</p>
<h3 id="wasm-game-engine-क्या-होता-है" tabindex="-1">Wasm game engine क्या होता है? <a class="header-anchor" href="#wasm-game-engine-क्या-होता-है" aria-label="Permalink to &quot;Wasm game engine क्या होता है?&quot;"></a></h3>
<p>एक Wasm game engine आपके game को WebAssembly में compile करता है, एक low-level binary format जो browser में near-native speed पर चलता है। Godot, Defold, और Cocos Creator सभी अपने web exports के लिए WebAssembly इस्तेमाल करते हैं, यही वजह है कि वे पुराने केवल-JavaScript engines से कहीं बेहतर performance देते हैं। 2026 में गंभीर browser games के लिए अब Wasm मानक है।</p>
<h3 id="_2026-में-सबसे-लोकप्रिय-game-engines-कौन-से-हैं" tabindex="-1">2026 में सबसे लोकप्रिय game engines कौन से हैं? <a class="header-anchor" href="#_2026-में-सबसे-लोकप्रिय-game-engines-कौन-से-हैं" aria-label="Permalink to &quot;2026 में सबसे लोकप्रिय game engines कौन से हैं?&quot;"></a></h3>
<p>install base और job demand के हिसाब से, 2026 में Unity और Unreal इंडस्ट्री-मानक engines हैं, और Godot सबसे तेज़ी से बढ़ता open-source विकल्प है। browser में चलने वाले games के लिए, Phaser सबसे लोकप्रिय 2D framework है और PlayCanvas web-first 3D में आगे है। बड़ी community का मतलब है ज़्यादा tutorials, plugins, और जवाब जब आप अटक जाएँ, पर सबसे लोकप्रिय engine हमेशा किसी web project के लिए सबसे उपयुक्त नहीं होता, जहाँ build size और load time तय करते हैं कि असल में कौन खेल सकता है।</p>
<h3 id="_2026-में-सबसे-बेहतरीन-free-game-engines-कौन-से-हैं" tabindex="-1">2026 में सबसे बेहतरीन free game engines कौन से हैं? <a class="header-anchor" href="#_2026-में-सबसे-बेहतरीन-free-game-engines-कौन-से-हैं" aria-label="Permalink to &quot;2026 में सबसे बेहतरीन free game engines कौन से हैं?&quot;"></a></h3>
<p>Godot 2026 के लिए सबसे पूरा free engine है। यह MIT license के तहत पूरी तरह open-source है, बिना किसी revenue caps या seat fees के, और यह 2D और 3D दोनों संभालता है। खास तौर पर web के लिए, Phaser, PixiJS, Defold, और Excalibur.js सभी free और open-source भी हैं। Unity और Construct के free tiers सीमाओं के साथ हैं, और Unreal $1M revenue तक free है। अगर आप शून्य लागत और कोई शर्तें नहीं चाहते, तो Godot या किसी एक open-source JavaScript framework का चुनाव सही है।</p>
<h3 id="_2026-में-शुरुआती-लोगों-के-लिए-सबसे-बेहतरीन-game-engine-कौन-सा-है" tabindex="-1">2026 में शुरुआती लोगों के लिए सबसे बेहतरीन game engine कौन सा है? <a class="header-anchor" href="#_2026-में-शुरुआती-लोगों-के-लिए-सबसे-बेहतरीन-game-engine-कौन-सा-है" aria-label="Permalink to &quot;2026 में शुरुआती लोगों के लिए सबसे बेहतरीन game engine कौन सा है?&quot;"></a></h3>
<p>2026 में शुरुआती लोगों के लिए, GDevelop और Construct सबसे आसान शुरुआती बिंदु हैं क्योंकि आप games visually बनाते हैं थोड़े या बिना किसी code के। अगर आप game design के साथ-साथ programming सीखना चाहते हैं, तो Godot में एक सरल scripting भाषा और free tutorials की एक विशाल library है। खास तौर पर 2D web games के लिए, थोड़ा JavaScript जानने के बाद Phaser approachable है। उसी से शुरू करें जो आपके लिखने के इच्छुक code की मात्रा से मेल खाता हो, फिर अपने projects बढ़ने के साथ ऊपर बढ़ें।</p>
<hr>
<h2 id="सारांश" tabindex="-1">सारांश <a class="header-anchor" href="#सारांश" aria-label="Permalink to &quot;सारांश&quot;"></a></h2>
<ul>
<li><strong>ज़्यादातर web games के लिए</strong>: 2D बनाम 3D ज़रूरतों के आधार पर Defold, Phaser, या PlayCanvas से शुरू करें</li>
<li><strong>Cross-platform के लिए</strong>: Unity, Godot, या Cocos Creator, बड़ी builds स्वीकार करते हुए</li>
<li><strong>Mini-game platforms के लिए</strong>: Cocos Creator (WeChat, TikTok, Taobao)</li>
<li><strong>अधिकतम control के लिए</strong>: PixiJS या Excalibur.js</li>
<li><strong>non-programmers के लिए</strong>: Construct या GDevelop</li>
<li><strong>High-fidelity 3D के लिए</strong>: PlayCanvas या Pixel Streaming</li>
</ul>
<p>सबसे बेहतरीन engine वह है जो आपका game ship करता है। छोटे से शुरू करें, जल्दी profile करें, और सबसे बढ़कर load time के लिए optimize करें।</p>
<h2 id="संबंधित" tabindex="-1">संबंधित <a class="header-anchor" href="#संबंधित" aria-label="Permalink to &quot;संबंधित&quot;"></a></h2>
<ul>
<li><a href="/hi/guides/godot-vs-unity-web-games.html">Web Games के लिए Godot बनाम Unity</a> — दो बड़े पूरे engines, web पर आमने-सामने</li>
<li><a href="/hi/guides/unity-alternatives-web-games.html">Web Games के लिए Unity के विकल्प</a> — Unity छोड़ रहे हैं? जिस वजह से आप बदल रहे हैं उस आधार पर web engine चुनें</li>
<li><a href="/hi/guides/open-source-game-engines-2026.html">2026 के लिए बेहतरीन Open-Source Game Engines</a> — free, बिना-fee engines जिन्हें आप fork करके ship कर सकते हैं</li>
<li><a href="/hi/guides/best-2d-game-engines-2026.html">2026 के लिए बेहतरीन 2D Game Engines</a> — अगर आपका game 2D है, यहाँ से शुरू करें</li>
<li><a href="/hi/guides/playcanvas-vs-threejs.html">PlayCanvas बनाम Three.js</a> — web 3D के लिए engine बनाम library</li>
<li><a href="/hi/guides/threejs-vs-babylonjs.html">Three.js बनाम Babylon.js</a> — दो बड़ी web 3D libraries</li>
<li><a href="/hi/guides/construct-vs-gdevelop.html">Construct बनाम GDevelop</a> — no-code 2D का मुक़ाबला</li>
<li><a href="/hi/guides/web-games-stack-2026.html">2026 में Web Games का Tech Stack</a> — API स्तर पर WebGL बनाम WebGPU बनाम Wasm</li>
<li><a href="/hi/tutorials/canvas-2d-game-loop.html">Canvas 2D game loop</a> — बिना किसी engine के एक game बनाएँ</li>
<li><a href="/hi/guides/game-jams-hackathons.html">Game Jams &amp; Hackathons</a> — 48-घंटे की jam बाधाओं के लिए engine चुनना</li>
<li><a href="/hi/tutorials/game-physics-libraries.html">Game physics libraries</a> — physics engines जो इनमें से किसी भी framework में plug होते हैं</li>
<li><a href="/hi/guides/itch-io-launch-guide.html">itch.io पर अपना Game कैसे Launch करें</a> — engine चुनने के बाद web game distribution</li>
</ul>
<BuildCta
  title="कोई इंजन चुनना ही नहीं चाहते?"
  desc="अपना गेम एक लाइन में बताइए और करीब एक मिनट में खेलिए, मुफ़्त।"
  prompt="Make a 3D platformer with moving platforms and a timer" />
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2026 में वेब गेम्स टेक स्टैक]]></title>
            <link>https://app.cinevva.com/hi/guides/web-games-stack-2026</link>
            <guid>https://app.cinevva.com/hi/guides/web-games-stack-2026</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[वेब गेम डेवलपर्स के लिए WebGL, WebGPU और WebAssembly की एक व्यावहारिक गाइड, असली कोड उदाहरणों और निर्णय फ्रेमवर्क के साथ।]]></description>
            <content:encoded><![CDATA[<h1 id="_2026-में-वेब-गेम्स-टेक-स्टैक" tabindex="-1">2026 में वेब गेम्स टेक स्टैक <a class="header-anchor" href="#_2026-में-वेब-गेम्स-टेक-स्टैक" aria-label="Permalink to &quot;2026 में वेब गेम्स टेक स्टैक&quot;"></a></h1>
<p>तीन तकनीकें वेब गेम्स को चलाती हैं: WebGL, WebGPU और WebAssembly। हर एक अलग समस्याएं हल करती है और अलग ट्रेड-ऑफ के साथ आती है। यह गाइड आपको इस आधार पर चुनने में मदद करती है कि आप असल में क्या बना रहे हैं, न कि इस पर कि सबसे ज़्यादा hype किसे मिल रहा है।</p>
<h2 id="झटपट-जवाब" tabindex="-1">झटपट जवाब <a class="header-anchor" href="#झटपट-जवाब" aria-label="Permalink to &quot;झटपट जवाब&quot;"></a></h2>
<p>WebGL 2.0 हर जगह काम करता है और ज़्यादातर games को बढ़िया तरीके से संभाल लेता है। इसका इस्तेमाल तब करें जब आपको व्यापक compatibility चाहिए, खासकर mobile पर। WebGPU आपको compute shaders और बेहतर performance देता है, पर पुराने browsers और devices पर आप users खो देंगे। WebAssembly आपके CPU कोड को तेज़ बनाता है, इसलिए यह physics और pathfinding के लिए उपयोगी है, पर अगर आपका bottleneck GPU है तो यह काम नहीं आएगा।</p>
<p>2026 में ज़्यादातर games WebGL के साथ ship होते हैं और capable browsers के लिए optional WebGPU रखते हैं। Wasm का इस्तेमाल चुनिंदा hot code paths के लिए होता है, पूरे game के लिए नहीं।</p>
<h2 id="webgl-2-0-वह-बोरिंग-विकल्प-जो-काम-करता-है" tabindex="-1">WebGL 2.0: वह बोरिंग विकल्प जो काम करता है <a class="header-anchor" href="#webgl-2-0-वह-बोरिंग-विकल्प-जो-काम-करता-है" aria-label="Permalink to &quot;WebGL 2.0: वह बोरिंग विकल्प जो काम करता है&quot;"></a></h2>
<p>WebGL 2.0 साल 2017 से stable है। हर modern browser इसे support करता है। आपका game Chrome, Firefox, Safari और Edge पर 5+ साल पीछे तक चलता है। यह iOS Safari 15+, Chrome for Android और Samsung Internet पर काम करता है। यह तो Xbox Edge और PlayStation के browser जैसे console browsers में भी चलता है।</p>
<p>एक बेसिक WebGL 2 setup ऐसा दिखता है:</p>
<div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> canvas</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> document.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getElementById</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'game'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> gl</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> canvas.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'webgl2'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">gl) {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // Fallback to WebGL 1 or show error</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> gl1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> canvas.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'webgl'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">gl1) {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">    showError</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'Your browser does not support WebGL.'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Now you have a GL context</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">gl.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">clearColor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0.1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1.0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">gl.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">clear</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(gl.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">COLOR_BUFFER_BIT</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre>
</div><h3 id="आपको-क्या-मिलता-है" tabindex="-1">आपको क्या मिलता है <a class="header-anchor" href="#आपको-क्या-मिलता-है" aria-label="Permalink to &quot;आपको क्या मिलता है&quot;"></a></h3>
<p>WebGL 2 आपको instanced rendering देता है ताकि आप एक draw call से हज़ारों objects draw कर सकें। इसमें GPU-साइड particle systems और simulations के लिए transform feedback है। आपको deferred rendering और G-buffers के लिए multiple render targets, volumetric effects के लिए 3D textures, और precise data storage के लिए integer textures मिलते हैं।</p>
<div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">gl.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">drawArraysInstanced</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(gl.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">TRIANGLES</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, vertexCount, instanceCount);</span></span></code></pre>
</div><h3 id="आपको-क्या-नहीं-मिलता" tabindex="-1">आपको क्या नहीं मिलता <a class="header-anchor" href="#आपको-क्या-नहीं-मिलता" aria-label="Permalink to &quot;आपको क्या नहीं मिलता&quot;"></a></h3>
<p>आप general-purpose GPU compute के लिए compute shaders नहीं चला सकते। यहां bindless textures नहीं हैं, इसलिए आप texture unit count से सीमित हैं। कोई persistent mapping या explicit memory control नहीं है। कोई mesh shaders या modern geometry pipeline नहीं है।</p>
<p>ज़्यादातर 2D games और कई 3D games के लिए ये सीमाएं मायने नहीं रखतीं। WebGL 2 ने अब तक के कुछ सबसे सफल वेब games ship किए हैं।</p>
<h2 id="webgpu-जब-आपको-और-ज़्यादा-चाहिए" tabindex="-1">WebGPU: जब आपको और ज़्यादा चाहिए <a class="header-anchor" href="#webgpu-जब-आपको-और-ज़्यादा-चाहिए" aria-label="Permalink to &quot;WebGPU: जब आपको और ज़्यादा चाहिए&quot;"></a></h2>
<p>WebGPU को इस तरह डिज़ाइन किया गया है कि modern GPUs असल में कैसे काम करते हैं। Chrome ने इसे मई 2023 में ship किया, और 2025 के आखिर तक सभी प्रमुख browsers इसे support करते थे। Chrome 113+, Firefox 145+, Safari 26+ और Edge 113+ सभी काम करते हैं। Chrome Android इसे हाल के devices पर support करता है, और iOS Safari 26+ भी इसे support करता है।</p>
<p>पेच यह है कि पुराने devices और browsers में यह नहीं है, इसलिए आपको एक fallback strategy चाहिए।</p>
<h3 id="आपको-क्या-मिलता-है-1" tabindex="-1">आपको क्या मिलता है <a class="header-anchor" href="#आपको-क्या-मिलता-है-1" aria-label="Permalink to &quot;आपको क्या मिलता है&quot;"></a></h3>
<p>Compute shaders आपको physics, particles, AI और image processing के लिए general-purpose GPU compute चलाने देते हैं।</p>
<div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// A compute shader that processes data in parallel</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> computeShaderCode</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">@group(0) @binding(0) var&#x3C;storage, read_write> data: array&#x3C;f32>;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">@compute @workgroup_size(64)</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">fn main(@builtin(global_invocation_id) id: vec3&#x3C;u32>) {</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">  data[id.x] = data[id.x] * 2.0;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre>
</div><p>आपको explicit resource management भी मिलता है जिसका मतलब है कम performance surprises, बार-बार इस्तेमाल के लिए draw calls को पहले से record करने वाले render bundles, और WGSL एक modern shader language के रूप में जिसे GPUs के लिए डिज़ाइन किया गया है, न कि एक C-जैसे hack के रूप में।</p>
<h3 id="व्यावहारिक-webgpu-setup" tabindex="-1">व्यावहारिक WebGPU Setup <a class="header-anchor" href="#व्यावहारिक-webgpu-setup" aria-label="Permalink to &quot;व्यावहारिक WebGPU Setup&quot;"></a></h3>
<p>WebGPU को WebGL fallback के साथ initialize कैसे करें:</p>
<div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> initGraphics</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">canvas</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // Try WebGPU first</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (navigator.gpu) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> adapter</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> navigator.gpu.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">requestAdapter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (adapter) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> device</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> adapter.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">requestDevice</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> context</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> canvas.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'webgpu'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      </span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      context.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">configure</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        device,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        format: navigator.gpu.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getPreferredCanvasFormat</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(),</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      });</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      </span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">      return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'webgpu'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, device, context };</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // Fall back to WebGL 2</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> gl</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> canvas.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'webgl2'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (gl) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'webgl2'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, gl };</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  </span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">  // Last resort: WebGL 1</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> gl1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> canvas.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">getContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'webgl'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (gl1) {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'webgl'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, gl: gl1 };</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  </span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  throw</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Error</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">'No graphics API available'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><h3 id="यह-असल-में-कब-मदद-करता-है" tabindex="-1">यह असल में कब मदद करता है <a class="header-anchor" href="#यह-असल-में-कब-मदद-करता-है" aria-label="Permalink to &quot;यह असल में कब मदद करता है&quot;"></a></h3>
<p>WebGPU तब चमकता है जब आपको CPU round-trips के बिना लाखों particles update करने के लिए compute shaders चाहिए, GPU-accelerated collision detection और cloth simulation चाहिए, terrain या textures या meshes की procedural generation चाहिए, SSAO, bloom और depth of field जैसे जटिल post-processing effects चाहिए, या जब आप NPC behavior या image effects के लिए trained models चलाना चाहते हैं।</p>
<p>अगर आप कोई puzzle game या visual novel बना रहे हैं, तो WebGPU आपकी मदद नहीं करेगा। अगर आप particle से भरा action game या जटिल 3D world बना रहे हैं, तो यह compatibility ट्रेड-ऑफ के लायक हो सकता है।</p>
<h2 id="webassembly-तेज़-cpu-कोड" tabindex="-1">WebAssembly: तेज़ CPU कोड <a class="header-anchor" href="#webassembly-तेज़-cpu-कोड" aria-label="Permalink to &quot;WebAssembly: तेज़ CPU कोड&quot;"></a></h2>
<p>WebAssembly compiled कोड को लगभग native गति से चलाता है। यह graphics के बारे में नहीं है। यह आपके CPU कोड को तेज़ बनाने के बारे में है।</p>
<h3 id="यह-कब-मदद-करता-है" tabindex="-1">यह कब मदद करता है <a class="header-anchor" href="#यह-कब-मदद-करता-है" aria-label="Permalink to &quot;यह कब मदद करता है&quot;"></a></h3>
<p>Wasm physics engines (Box2D, Bullet और Rapier सबके Wasm builds हैं) के लिए, बड़े grids पर pathfinding के लिए, asset decompression के लिए, पुराने game consoles के emulation के लिए, और मौजूदा C++ या Rust codebases को web पर port करने के लिए बढ़िया काम करता है।</p>
<h3 id="यह-कब-मदद-नहीं-करता" tabindex="-1">यह कब मदद नहीं करता <a class="header-anchor" href="#यह-कब-मदद-नहीं-करता" aria-label="Permalink to &quot;यह कब मदद नहीं करता&quot;"></a></h3>
<p>आपके GPU को इससे फ़र्क नहीं पड़ता कि draw calls JavaScript से आते हैं या Wasm से, इसलिए rendering तेज़ नहीं होगा। assets fetch करने या network requests जैसा I/O bound कोड भी इससे फ़ायदा नहीं उठाएगा। और अगर आपका JavaScript पहले से एक millisecond से कम में चलता है, तो Wasm आपको नहीं बचाएगा।</p>
<h3 id="एक-व्यावहारिक-wasm-उदाहरण" tabindex="-1">एक व्यावहारिक Wasm उदाहरण <a class="header-anchor" href="#एक-व्यावहारिक-wasm-उदाहरण" aria-label="Permalink to &quot;एक व्यावहारिक Wasm उदाहरण&quot;"></a></h3>
<p>physics के लिए Wasm में compile किया गया एक न्यूनतम Rust function यहां है:</p>
<div class="language-rust vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">rust</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// src/lib.rs</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">#[no_mangle]</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">pub</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> extern</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "C"</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> fn</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> step_physics</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(dt</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> f32</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Your physics code here</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><p>इससे compile करें:</p>
<div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">wasm-pack</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> build</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --target</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> web</span></span></code></pre>
</div><p>JavaScript में इस्तेमाल करें:</p>
<div class="language-javascript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">javascript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> init, { step_physics } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> './physics_bg.wasm'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> init</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> gameLoop</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">dt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">  step_physics</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(dt); </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Runs at near-native speed</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">  render</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">  requestAnimationFrame</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(gameLoop);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre>
</div><h3 id="threading-जटिल-हो-जाती-है" tabindex="-1">Threading जटिल हो जाती है <a class="header-anchor" href="#threading-जटिल-हो-जाती-है" aria-label="Permalink to &quot;Threading जटिल हो जाती है&quot;"></a></h3>
<p>Wasm parallel processing के लिए threads का इस्तेमाल कर सकता है, पर इसके लिए <code>SharedArrayBuffer</code> चाहिए, जिसका मतलब है कि आपको अपने server पर cross-origin isolation headers चाहिए:</p>
<div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0" v-pre=""><code><span class="line"><span>Cross-Origin-Opener-Policy: same-origin</span></span>
<span class="line"><span>Cross-Origin-Embedder-Policy: require-corp</span></span></code></pre>
</div><p>ये headers चीज़ें तोड़ देते हैं। CORP headers के बिना third-party iframes काम करना बंद कर देते हैं, कुछ analytics scripts टूट जाती हैं, और OAuth popups fail हो सकते हैं। नुकसान कम करने के लिए आप <code>require-corp</code> के बजाय <code>credentialless</code> इस्तेमाल कर सकते हैं, पर यह फिर भी झंझट भरा है।</p>
<p>अगर आप ये headers सेट नहीं कर सकते क्योंकि आप shared hosting या itch.io पर हैं, तो आप Wasm threads इस्तेमाल नहीं कर सकते। हालांकि single-threaded Wasm फिर भी ठीक काम करता है।</p>
<h2 id="असली-games-के-लिए-असली-फ़ैसले" tabindex="-1">असली games के लिए असली फ़ैसले <a class="header-anchor" href="#असली-games-के-लिए-असली-फ़ैसले" aria-label="Permalink to &quot;असली games के लिए असली फ़ैसले&quot;"></a></h2>
<p>अगर आप 2D platformer बना रहे हैं, तो Phaser या PixiJS जैसी किसी चीज़ के ज़रिए WebGL 2 इस्तेमाल करें। WebGPU छोड़ दें क्योंकि यह ज़रूरत से ज़्यादा है और Wasm छोड़ दें क्योंकि 2D physics के लिए JavaScript काफ़ी तेज़ है। नवीनतम features से ज़्यादा व्यापक compatibility मायने रखती है, और आपका bottleneck content है, technology नहीं।</p>
<p>अगर आप 3D open world बना रहे हैं, तो WebGL 2 से शुरू करें पर WebGPU upgrade path के लिए डिज़ाइन करें। Rapier या Bullet का इस्तेमाल करते हुए physics के लिए Wasm पर विचार करें। आप अभी सबसे व्यापक पहुंच चाहते हैं, पर बाद में compute shaders foliage, particles और LOD में मदद करेंगे। Wasm में physics रखने से CPU budget कम रहता है।</p>
<p>अगर आप C++ engine port कर रहे हैं, तो Emscripten के ज़रिए Wasm इस्तेमाल करें। Graphics default रूप से WebGL 2 होगा, या WebGPU अगर आपका engine इसे support करता है। आपके पास कोड पहले से है और Emscripten translation संभाल लेता है।</p>
<p>अगर आप puzzle game बना रहे हैं, तो Phaser के ज़रिए Canvas 2D या WebGL 2 इस्तेमाल करें। बाकी सब छोड़ दें। सरल games को सरल ही रहना चाहिए।</p>
<p>अगर आपको हर हाल में अधिकतम performance चाहिए और आप पुराने browsers पर कुछ users खोने को तैयार हैं, तो WebGPU प्लस Wasm के साथ जाएं। बस तय करने से पहले अपने audience पर असली असर मापें।</p>
<h2 id="असल-में-games-को-क्या-तेज़-बनाता-है" tabindex="-1">असल में games को क्या तेज़ बनाता है <a class="header-anchor" href="#असल-में-games-को-क्या-तेज़-बनाता-है" aria-label="Permalink to &quot;असल में games को क्या तेज़ बनाता है&quot;"></a></h2>
<p>यहां है कि आपका वेब game अच्छा चलेगा या नहीं, यह क्या तय करता है, महत्व के क्रम में।</p>
<p>Asset size महसूस होने वाली performance का लगभग आधा हिस्सा है। 1 सेकंड में load होने वाला 2MB का game बेहतर FPS वाले 50MB game से तेज़ महसूस होता है। हर चीज़ compress करें। जो हो सके उसे lazy-load करें।</p>
<p>Draw calls 3D games के लिए बहुत मायने रखते हैं, शायद आपके performance budget का 30%। अपनी geometry batch करें। Texture atlases इस्तेमाल करें। बार-बार आने वाले objects को instance करें। यह WebGL बनाम WebGPU से कहीं ज़्यादा मायने रखता है।</p>
<p>JavaScript performance शायद 15% है। hot loops में allocation से बचें। typed arrays इस्तेमाल करें। optimize करने से पहले profile करें।</p>
<p>Graphics API का चुनाव? ईमानदारी से, शायद 5%। ज़्यादातर games के लिए, API उतना मायने नहीं रखता जितना यह कि आप उसका इस्तेमाल कैसे करते हैं।</p>
<p>अगर आपका game धीमा है, तो जांचें कि कहीं आप शुरुआत में बहुत ज़्यादा load तो नहीं कर रहे। फिर जांचें कि कहीं आप बहुत ज़्यादा draw calls तो issue नहीं कर रहे। फिर जांचें कि कहीं आपका JavaScript game loop में कोई बेवकूफ़ी तो नहीं कर रहा। इन सबके बाद ही आपको पूछना चाहिए कि क्या कोई अलग graphics API मदद करेगा।</p>
<h2 id="मैं-असल-में-क्या-इस्तेमाल-करूंगा" tabindex="-1">मैं असल में क्या इस्तेमाल करूंगा <a class="header-anchor" href="#मैं-असल-में-क्या-इस्तेमाल-करूंगा" aria-label="Permalink to &quot;मैं असल में क्या इस्तेमाल करूंगा&quot;"></a></h2>
<p>आज शुरू हो रहे एक नए वेब game के लिए, मैं rendering के लिए Three.js या Babylon.js इस्तेमाल करूंगा क्योंकि वे WebGL और WebGPU को abstract कर देते हैं। physics के लिए, अगर मुझे 3D physics चाहिए तो Rapier (Wasm में compile किया गया Rust), या सरल games के लिए बस engine की built-in 2D physics। audio के लिए सीधे Howler.js या Web Audio API। building के लिए Vite क्योंकि यह dev में तेज़ है और अच्छे production builds बनाता है। और Netlify, Vercel, GitHub Pages या itch.io पर static hosting।</p>
<p>यह स्टैक ऐसे games ship करता है जो 98%+ devices पर काम करते हैं और साथ ही WebGPU के default बनने पर उसके लिए तैयार रहते हैं।</p>
<h2 id="तय-करने-से-पहले-टेस्ट-करें" tabindex="-1">तय करने से पहले टेस्ट करें <a class="header-anchor" href="#तय-करने-से-पहले-टेस्ट-करें" aria-label="Permalink to &quot;तय करने से पहले टेस्ट करें&quot;"></a></h2>
<p>किसी tech stack पर लॉक होने से पहले, एक छोटा सा prototype बनाएं और उसे असल में टेस्ट करें। Chrome DevTools throttling का इस्तेमाल करके 3G पर load time जांचें। आपका game धीमे connection पर 5 सेकंड से कम में खेलने लायक होना चाहिए। किसी low-end Android phone पर performance टेस्ट करें, या तो कोई उधार लें या BrowserStack इस्तेमाल करें। अगर यह वहां चलता है, तो हर जगह चलता है। खासकर Safari पर टेस्ट करें क्योंकि यह इतना अलग है कि surprises पैदा कर सकता है। और अगर आपका game Newgrounds या Kongregate पर होगा, तो इसे iframe में टेस्ट करें।</p>
<p>ये टेस्ट WebGL बनाम WebGPU पर बहस करने से कहीं ज़्यादा असली समस्याएं पकड़ते हैं।</p>
<h2 id="और-पढ़ें" tabindex="-1">और पढ़ें <a class="header-anchor" href="#और-पढ़ें" aria-label="Permalink to &quot;और पढ़ें&quot;"></a></h2>
<p><a href="/hi/guides/web-game-engines-comparison.html">वेब गेम इंजन तुलना</a> पूरे engines को कवर करता है अगर आप शुरू से नहीं बनाना चाहते। <a href="/hi/guides/threejs-usdc-tech-report.html">Three.js + USDC ब्राउज़र में</a> दिखाता है कि Three.js में USD assets कैसे load करें। <a href="/hi/guides/itch-io-launch-guide.html">itch.io पर कैसे लॉन्च करें</a> कुछ बना लेने के बाद publishing को कवर करता है।</p>
<p>हर API में गहराई तक जाने वाले व्यावहारिक tutorials के लिए:</p>
<ul>
<li><a href="/hi/tutorials/webgl-fundamentals-for-games.html">गेम डेवलपर्स के लिए WebGL fundamentals</a> — shaders, buffers, textures और render loop</li>
<li><a href="/hi/tutorials/webgpu-getting-started.html">WebGPU शुरू करना</a> — device setup, pipelines और WGSL shaders</li>
<li><a href="/hi/tutorials/web-workers-game-logic.html">गेम लॉजिक के लिए Web Workers</a> — काम को background threads पर ऑफ़लोड करना</li>
<li><a href="/hi/tutorials/coop-coep-sharedarraybuffer.html">COOP/COEP और SharedArrayBuffer</a> — Wasm threading के लिए ज़रूरी headers</li>
<li><a href="/hi/tutorials/game-physics-libraries.html">गेम physics libraries</a> — Rapier, Cannon-es, Ammo.js, Matter.js और बाकी</li>
</ul>
<p>सही tech stack वही है जो आपका game ship करता है। जो आप जानते हैं उसे चुनें, जल्दी टेस्ट करें, और बाद में optimize करें।</p>
]]></content:encoded>
        </item>
    </channel>
</rss>