सभी आर्टिकल
ट्यूटोरियल · 7 min read

अपने गेम को आलू पर चलाना: कम-अंत PCs और Steam Deck के लिए वातावरण अनुकूलन

अपनी कला को खोखला किए बिना कम फ़्रेम बजट पर पहुँचने की व्यावहारिक हैंडबुक: फ़्रेम समय वास्तव में कहाँ जाता है, ओवरड्रॉ और पत्ते, ड्रॉ कॉल और इंस्टांसिंग, LOD और कल दूरियाँ, और वास्तविक रिग्रेशन खोजने की स्थिर-कैमरा विधि।

Slow tropical river between dense green banks, with clouds mirrored on the surface

संक्षेप में: खिलाड़ियों का एक विशाल हिस्सा साधारण हार्डवेयर पर है: लैपटॉप, Steam Deck जैसे हैंडहेल्ड, पुराने GPU, और एक वातावरण जो केवल हाई-एंड रिग पर चलता है, उन्हें बाहर छोड़ देता है। अच्छी खबर: अधिकांश वातावरण प्रदर्शन कुछ अनुमेय जगहों पर खोया जाता है (ओवरड्रॉ, ड्रॉ कॉल, घना पत्ता, अति-आकार टेक्सचर) और कुछ अनुशासित आदतों से वापस पाया जाता है। यह अपनी कला को खोखला किए बिना कम फ़्रेम बजट पर पहुँचने की एक व्यावहारिक हैंडबुक है, साथ ही रिग्रेशन को शिप होने से पहले पकड़ने की स्थिर-कैमरा विधि।

एक घना जंगल जो ओवरलैपिंग पेड़ों और झाड़ियों से भरा है यह चलाने के लिए सबसे महँगा प्रकार का दृश्य है: पारदर्शी पत्तियों की परतें, हज़ारों इंस्टांस, भारी ओवरड्रॉ। यह वह जगह भी है जहाँ सबसे बड़ी, सबसे आसान जीतें रहती हैं जब आप जानते हैं कि फ़्रेम समय कहाँ जा रहा है।

पहले एक बजट सेट करें, मिलीसेकंड में

अपने सबसे कमज़ोर समर्थित हार्डवेयर पर एक लक्ष्य फ़्रेम समय चुनें: 60 fps के लिए 16.6 ms, 30 के लिए 33.3 ms, और इसे एक कठोर सीमा मानें। "बाद में अनुकूलित करें" का अर्थ है "बाद में फिर से बनाएँ"; पहले से बजट बनाना कहीं सस्ता है।

बिना संख्या के अनुकूलन बस अंदाज़ है। अपने फ़र्श हार्डवेयर पर: Steam Deck, एक मध्यम लैपटॉप, आपकी न्यूनतम स्पेक जो भी हो: जिस फ़्रेम का लक्ष्य रखते हैं तय करें, और उसे मिलीसेकंड में बदलें, क्योंकि मिलीसेकंड जुड़ते हैं और प्रतिशत झूठ बोलते हैं। फिर हर दृश्य को बनाते समय उससे बाँधें, अंत में नहीं। जो टीमें कम-अंत पर सहज शिप करती हैं वे कठोर अनुकूलन नहीं करतीं; वे बस एक दृश्य को पहले स्थान पर बजट उड़ाने कभी नहीं देतीं, जो कला के पूरा होने और सब कुछ उस पर निर्भर होने के बाद प्रदर्शन को वापस खुरचने की लागत का एक अंश है।

जानें कि समय कहाँ जाता है

वातावरण फ़्रेम समय आमतौर पर ओवरड्रॉ (पारदर्शी पत्ते), बहुत सारे ड्रॉ कॉल (बिना-बैच वस्तुएँ), अति-आकार टेक्सचर (मेमोरी बैंडविड्थ), और महँगी लाइटिंग/छाया से खाया जाता है। अंधे अनुकूलन से पहले अपना बॉटलनेक खोजने के लिए प्रोफ़ाइल करें।

अनुकूलनों का अंदाज़ा लगाना दिन बर्बाद करता है। एक प्रोफ़ाइलर खोलें, पता करें कि आप CPU-बाउंड हैं (आमतौर पर ड्रॉ कॉल) या GPU-बाउंड (आमतौर पर ओवरड्रॉ, शेडिंग, या बैंडविड्थ), और असली बॉटलनेक पर हमला करें। कहा जाए तो, वातावरण अनुमेय तरीकों से विफल होते हैं, और यह लगभग हमेशा इनमें से एक है: परतदार पारदर्शी पत्ते से ओवरड्रॉ; हज़ारों बिना-इंस्टांस वस्तुओं से ड्रॉ कॉल; अति-आकार या बहुत-सारे टेक्सचर से टेक्सचर मेमोरी/बैंडविड्थ; और बहुत सारी डायनामिक लाइट या उच्च-रिज़ॉल्यूशन छाया मैप से लाइटिंग/छाया लागत। इस हैंडबुक का शेष उन्हें सामान्य प्रभाव के क्रम में देखता है।

पत्ते और ओवरड्रॉ: सामान्य खलनायक

पारदर्शी पत्ता कार्ड ओवरलैप होते हैं और उन्हीं पिक्सेल को कई बार फिर-शेड करते हैं: वह ओवरड्रॉ है, और यह कम-अंत का नंबर-एक हत्यारा है। पत्ता कार्ड ओवरलैप घटाएँ, आक्रामक LOD उपयोग करें, और दूर के पत्तों को कठोरता से कल करें।

घनी वनस्पति वह जगह है जहाँ अधिकांश कम-अंत फ़्रेम बजट मरते हैं, क्योंकि हर अर्ध-पारदर्शी पत्ता कार्ड GPU को उन पिक्सेल को शेड करने पर मजबूर करता है जिन्हें वह फिर उन पर दोबारा खींचेगा: एक मोटी छत्रछाया में कभी-कभी प्रति-पिक्सेल दस-प्लस बार। समाधान: कम बर्बाद पारदर्शी क्षेत्र वाले सख़्त पत्ता कार्ड उपयोग करें, जैसे पत्ते पीछे हटते हैं तेज़ी से सस्ते LOD पर गिरें, और कठोर कल दूरियाँ सेट करें ताकि दूर की घास और झाड़ियाँ बस खींचना बंद कर दें। एक हैंडहेल्ड पर, "क्षितिज तक घास" और "समझदार दूरी पर कल की गई घास" के बीच का अंतर 25 और 40 fps के बीच का पूरा अंतर हो सकता है। पत्तों को नेटिव इंस्टांस में बेक करें ताकि GPU इसे बैच कर सके, और इंजन की इंस्टांसिंग को भारी काम करने दें।

ड्रॉ कॉल और इंस्टांसिंग

अलग से सबमिट की गई हर अनोखी वस्तु एक ड्रॉ कॉल है, और उनमें से हज़ारों CPU को अटका देते हैं। दोहराए गए मेश को इंस्टांस करें ताकि सैकड़ों प्रतियाँ एक कॉल की लागत हों; जहाँ समझ में आए स्थिर कबाड़ मर्ज करें।

यदि आप CPU-बाउंड हैं, ड्रॉ कॉल आमतौर पर कारण है। हर अलग चीज़ जो आप इंजन से रेंडर करवाते हैं ओवरहेड ढोती है, और एक हज़ार व्यक्तिगत चट्टानों और झाड़ियों से हाथ-रखा दृश्य CPU को सबमिशन लागत में डुबो देता है। इंस्टांसिंग इलाज है: इंस्टांस के रूप में खींचे गए दोहराए मेश सैकड़ों प्रतियों को एकल कॉल में ढहा देते हैं, यही वह कारण है कि नेटिव इंजन इंस्टांस में बेक करने वाले स्कैटर टूल प्रदर्शन के लिए मायने रखते हैं, जो स्कैटर एक हज़ार पौधों जैसा दिखता है वह एक मुट्ठी जैसी लागत लेता है। जहाँ इंस्टांसिंग लागू नहीं होती, छोटे स्थिर कबाड़ को संयुक्त मेश में मर्ज करना भी कॉल गिनती काटता है। यह एक जगह है जहाँ Numivo जैसा वर्कफ़्लो (घनत्व पेंट करें, फिर सादे इंस्टांस मेश में बेक करें) कमज़ोर हार्डवेयर पर सीधे फल देता है, क्योंकि आउटपुट वही सस्ती चीज़ है जो GPU चाहता है।

साफ़ आकाश के नीचे एक शांत, सरल झील: रेंडर करने में सस्ती हर दृश्य को अधिकतम घना होने की ज़रूरत नहीं। शांत, खुले स्थान लगभग कुछ नहीं खर्च करते और हार्डवेयर व खिलाड़ी दोनों को एक विश्राम देते हैं: अपने घनत्व की पेसिंग स्वयं एक अनुकूलन है।

LOD, कल दूरियाँ और टेक्सचर आकार

हर महत्वपूर्ण मेश को LOD दें ताकि दूर की प्रतियाँ सस्ती हों, कल दूरियाँ सेट करें ताकि स्क्रीन पर नन्ही वस्तुएँ खींचना बंद कर दें, और टेक्सचर रिज़ॉल्यूशन को उस पर सीमित करें जो कैमरा दूरी पर हल करता है। ये तीन कम मेहनत में बहुत वापस पाते हैं।

तीन बेग्लैमर आदतें शेष बजट का बड़ा हिस्सा ढोती हैं। LOD: दूर के मेश को कम-पॉली संस्करणों में बदलना चाहिए, क्योंकि 20-पिक्सेल पेड़ पर पूरा विवरण बर्बाद है। कल दूरियाँ: स्क्रीन पर ध्यान देने के लिए बहुत छोटी कोई भी चीज़ पूरी तरह रेंडर करना बंद कर देनी चाहिए (छोटे प्रॉप, कंकड़, महीन घास) वस्तु प्रकार से ट्यून। टेक्सचर आकार: रिज़ॉल्यूशन को उस पर सीमित करें जो वास्तव में खिलाड़ी की दूरी पर हल-योग्य है (टेक्सेल घनत्व तर्क देखें: दूर की चीज़ों को बहुत कम टेक्सेल चाहिए), क्योंकि अति-आकार टेक्सचर मेमोरी बैंडविड्थ जलाते हैं जिसे कम-अंत GPU नहीं जुटा सकते। सही ट्यून होने पर इनमें से कोई भी रूप को नुकसान नहीं पहुँचाता; वे बस आपको ऐसे विवरण के लिए भुगतान करना बंद कराते हैं जो कोई नहीं देखता।

स्थिर कैमरों से रिग्रेशन खोजें

कुछ "बजट कैमरे" परिभाषित करें (आपका सबसे बुरा दृश्य, सबसे घना युद्ध स्थान, सबसे व्यस्त आंतरिक) और हर build में उनका फ़्रेम समय जाँचें। यादृच्छिक फ़्लाईथ्रू रिग्रेशन छिपाते हैं; हर बार वही क्रूर दृश्य उन्हें उजागर करते हैं।

जैसे-जैसे सामग्री जोड़ी जाती है प्रदर्शन चुपचाप सड़ता है, और आप इसे लेवल में लापरवाही से घूमकर नहीं पकड़ेंगे। इसके बजाय, अपने मुट्ठी भर सबसे बुरे दृश्य पिन करें (घना जंगल निहारना, भीड़ भरा बाज़ार, प्रभाव-भारी लड़ाई) और ठीक उन्हें, हर build, बजट के विरुद्ध मापें। जब एक संख्या लाल होती है, आप जानते हैं कि एक हालिया परिवर्तन ने इसे किया, और मोटे तौर पर कहाँ। यह उस टीम के बीच का अंतर है जो अंत में एक प्रदर्शन संकट खोजती है और उस के बीच जो 2 ms रिग्रेशन को उसके प्रकट होने के दिन ठीक करती है। कम-अंत लक्ष्यों पर, उन कैमरों में से एक को केवल एक एडिटर अनुमान पर नहीं, बल्कि वास्तविक Steam Deck या न्यूनतम-स्पेक मशीन पर चलाएँ।

चुराने योग्य फ़ील्ड संख्याएँ

  • फ़्रेम बजट: 16.6 ms (60 fps) / 33.3 ms (30 fps): अपने फ़र्श हार्डवेयर पर सेट करें
  • सामान्य कम-अंत हत्यारा: पत्ता ओवरड्रॉ: सख़्त कार्ड, तेज़ LOD, कठोर कल
  • दोहराए मेश → इंस्टांस: एक ड्रॉ कॉल के लिए सैकड़ों प्रतियाँ
  • टेक्सचर आकार को कैमरा-हल-योग्य विवरण पर सीमित करें: दूर को बहुत कम टेक्सेल चाहिए
  • रिग्रेशन को स्थिर बजट कैमरों से पकड़ें, हर build मापा

मिनी-FAQ

क्या मुझे अच्छे-दिखने और कम-अंत के बीच चुनना है? आपके सोचने से कम। अधिकांश कम-अंत लागत बर्बादी है: ओवरड्रॉ, बिना-बैच कॉल, अति-आकार टेक्सचर: दृश्यमान गुणवत्ता नहीं। बर्बादी काटें और कला बच जाती है; कमज़ोर हार्डवेयर पर खिलाड़ी शायद ही उस विवरण को याद करते हैं जिसके लिए आप भुगतान कर रहे थे पर वे देख नहीं सकते थे।

क्या Steam Deck पर डायनामिक लाइटिंग वर्जित है? वर्जित नहीं, पर बजट-युक्त। डायनामिक लाइट और छाया-कास्टर की संख्या सीमित करें, जहाँ दृश्य स्थिर है बेक्ड लाइटिंग पर टिकें, और डायनामिक लागत को वहाँ आरक्षित रखें जहाँ मायने रखती है। यह एक बजट पंक्ति है, प्रतिबंध नहीं।

हैंडहेल्ड पर कौन-सा एकल परिवर्तन सबसे अधिक मदद करता है? आमतौर पर पत्तों को वश में करना: सख़्त पत्ता कार्ड, आक्रामक LOD, और घास व झाड़ियों पर कठोर कल दूरियाँ। ओवरड्रॉ सबसे आम हैंडहेल्ड बॉटलनेक है, और वनस्पति वह जगह है जहाँ ओवरड्रॉ रहता है।

मुझे लक्ष्य हार्डवेयर पर कितनी जल्दी टेस्ट करना चाहिए? पहले वर्टिकल स्लाइस से। एक शक्तिशाली डेव मशीन पर एडिटर अनुमान ठीक उन्हीं समस्याओं को छिपाता है जो हैंडहेल्ड को होंगी। वास्तविक न्यूनतम-स्पेक डिवाइस पर एक build जल्दी पाएँ और उसे लूप में रखें।

आलू पर चलना आपके गेम को बदसूरत बनाने के बारे में नहीं है: यह ऐसे विवरण के लिए भुगतान न करने के बारे में है जो खिलाड़ी नहीं देख सकते। मिलीसेकंड में बजट बनाएँ, ओवरड्रॉ को मारें, दोहराए को इंस्टांस करें, अदृश्य को कल करें, और हर build अपने सबसे बुरे कैमरे देखें, और आपका वातावरण शानदार दिखेगा और उस विशाल दर्शक-वर्ग के लिए चलेगा जो हाई-एंड रिग पर नहीं है।