Oneshot Gems
अभी खेलें

गेम डेवलपर के लिए

केवल स्पष्ट पुन: उपयोग जीवन चक्र वाली वस्तुओं को पूल करें

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

इस पृष्ठ पर

एक दोहराई गई वस्तु चुनें और उसे मापें

एक दोहराने योग्य दृश्य बनाएं जो एक निश्चित अवधि के लिए समान प्रक्षेप्य पैटर्न को फायर करता है। पूल शुरू करने से पहले ब्राउज़र के प्रोफाइलिंग टूल के साथ फ़्रेम दर और व्यवहार और आवंटन गतिविधि का निरीक्षण करें। प्रक्षेप्य संख्या और व्यवहार को स्थिर रखते हुए, बाद में उसी दृश्य की तुलना करें। यदि मापा गया मुद्दा इसके बजाय महंगी ड्राइंग, छवि डिकोड, या टकराव का काम है, तो ऑब्जेक्ट का पुन: उपयोग उस कारण का समाधान नहीं करेगा। एमडीएन बताता है कि JavaScript स्वचालित रूप से ऑब्जेक्ट आवंटित करता है और कचरा संग्रहण का उपयोग करता है, इसलिए पूल अनिवार्य अनुकूलन के बजाय परीक्षण के लिए एक डिज़ाइन विकल्प है।

एक सरल निष्क्रिय स्थिति वाली एक ही तरह की वस्तुओं के लिए पूल बनाएं। एक प्रक्षेप्य मैदान छोड़ने या दीवार से टकराने के बाद पूल में वापस आ सकता है; बदलते चरणों वाला एक लंबे समय तक जीवित रहने वाला बॉस कम स्पष्ट रूप से फिट बैठता है। अधिकतम पूल आकार या परिभाषित अतिप्रवाह विकल्प सेट करें ताकि बर्स्ट पूल को बिना किसी सीमा के चुपचाप विकसित न कर सके।

सक्रियण करें और रीसेट पूर्ण करें

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

पुन: उपयोग, थकावट और दृश्य सफ़ाई का परीक्षण करें

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

⁨ऑब्जेक्ट पूलिंग ब्राउज़र गेम⁩ से जुड़े सवाल

क्या ऑब्जेक्ट पूलिंग हमेशा JavaScript गेम को तेज़ बनाती है?

नहीं, यह प्रबंधन कार्य जोड़ता है और केवल उस बाधा को दूर करता है जिसे यह वास्तव में प्रभावित करता है। पहले और बाद में दोहराए जाने योग्य दृश्य को मापें, और यदि पूलिंग उपयोगी परिणाम के बिना जटिलता जोड़ती है तो सरल आवंटन पथ रखें।

सबसे आम पूल रीसेट बग क्या है?

एक पुन: उपयोग की गई वस्तु अपने पिछले जीवन से एक क्षेत्र को बरकरार रखती है, जैसे कि वेग, जीवनकाल, मालिक, या दृश्यता। सक्रियण और रीसेट को केंद्रीकृत करें, फिर परीक्षणों में बार-बार पुन: उपयोग करें।

आगे पढ़ें

कोई पुरानी जानकारी दिखी? सुधार की जानकारी दें

खेलते रहें।

मुफ़्त ब्राउज़र गेम, जब आपका मन हो तब खेलें। कुछ मज़ेदार खोजें और उसे अपना अगला पसंदीदा बनाएँ।

अपनी जिज्ञासा के साथ आगे बढ़ें