एक सामान्य कारण यह है कि निकट भविष्य में किसी संसाधन की आवश्यकता होने वाली है, यह निर्धारित करना हमेशा उतना आसान नहीं होता है।
चूँकि आपने एक उदाहरण के रूप में इलाके पेजिंग का उपयोग किया है, इसलिए मैं इसे जारी रखूंगा।
यह पूरी तरह से उचित है यदि आप किसी दिए गए मानचित्र ग्रिड में पृष्ठभूमि में सभी निकटवर्ती मानचित्र ग्रिड को लोड करने के लिए हैं। आप जानते हैं कि उपयोगकर्ता, सबसे अच्छे रूप में, उनमें से एक को दर्ज कर सकते हैं। जब वे करते हैं, तो आप उन लोगों को अनलोड नहीं कर सकते हैं जो आस-पास हैं और जो अब हैं उन्हें लोड कर सकते हैं। यह आपने नोट किया है।
अब तेज यात्रा की कल्पना करें। यह अनुमान लगाने का कोई तरीका नहीं है कि उपयोगकर्ता कहाँ जाना चुन सकता है। उनके पास (आमतौर पर) चुनने के लिए लगभग पूरा नक्शा है। सभी संभावित तेज़ यात्रा स्थानों को पूर्व-लोड करना बहुत अधिक मेमोरी लेगा (आप पहली जगह में पूरे मैप को मेमोरी में लोड कर सकते हैं) और बहुत अधिक समय तक (यह मानते हुए कि आपके पास पहले से लोड नहीं किया गया था)। यह कब होगा? जब वे तेजी से यात्रा संवाद खोलते हैं? समस्या केवल कई बार बदतर हो जाएगी!
यही कारण है कि "नो-लोड" इलाक़े के पेजिंग वाले अधिकांश खेलों में अभी भी तेज़ यात्रा पर लोड स्क्रीन हैं। यह भी क्यों, यदि आप काफी तेजी से आगे बढ़ते हैं, तो आप कभी-कभी बिना लोड वाले नक्शे के भी गेम में लोडिंग स्क्रीन को ट्रिगर कर सकते हैं (मुझे याद है कि यह टीईएस गुमनामी में किया गया है)।
अब कल्पना करें कि यह सामान्य रूप से गेम संसाधनों पर लागू होता है, जहां रिश्ते अक्सर स्पष्ट नहीं होते हैं। आप अंत में सभी संभावित विकल्पों को लोड करेंगे, या अनुमान लगाना शुरू करेंगे कि उपयोगकर्ता क्या करने जा रहा है। अनुमान लगाना महंगा है (दोनों विकास और सीपीयू में) और कार्यक्रम के लिए एक जटिल गड़बड़ है। विशिष्ट उदाहरण:
- फ़ाइलें सहेजें: उपयोगकर्ता को बचाने के स्क्रीन तक पहुँचने से पहले आपको प्रत्येक सेव फ़ाइल को लोड करना होगा , या अनुमान लगा सकते हैं कि वे कौन सी फ़ाइल लोड कर सकते हैं (नवीनतम 5, आदि)।
- यूआई: कई रणनीति गेम आपके यूआई को आपके गुट के आधार पर बदलते हैं। उपयोगकर्ता द्वारा अपना गेम शुरू करने से पहले आपको हर संभव UI डिज़ाइन लोड करना होगा।
- खेल की दुनिया: प्रक्रियात्मक रूप से उत्पन्न गेमों में, जैसे कि Minecraft या RTS सभ्यता की तरह के खेल, दुनिया तब तक मौजूद नहीं है, जब तक कि विस्तार अलग-अलग होते हैं। पहले से लोड करना असंभव है क्योंकि वे शुरू करने के लिए मौजूद नहीं थे; पूर्व-गणना करने से उन्हें पूर्व-लोडिंग के समान सर्वोत्तम रूप से किया जा सकता है, और आरटीएस मामले में लागू नहीं होता है।
इन मुद्दों में से कुछ के आसपास तरीके हो सकते हैं, लेकिन यह पता लगाने के लिए वास्तविक जीवन पैसा खर्च होता है। अधिकांश गेमर्स उचित लोडिंग स्क्रीन स्वीकार करते हैं और यदि कुछ भी हो तो उन्हें कम करने के लिए हार्डवेयर पर अधिक खर्च करने को तैयार रहते हैं। यह एक हार्डवेयर इश्यू के रूप में देखा जाता है , गेम इश्यू नहीं, जब तक कि असामान्य रूप से अत्यधिक या अन्यथा विघटनकारी न हो (जैसे स्तरों के बीच में लोड करना)।
और ध्यान रखें, बैकग्राउंड लोडिंग फ्री नहीं है। पृष्ठभूमि-लोडिंग इलाके और कुछ मॉडल फ़ाइलों के आधुनिक उपयोग से आमतौर पर कम से कम प्रभाव पड़ता है, लेकिन अगर आप अचानक कई अलग-अलग संसाधनों के बारे में अनुमान लगा रहे हैं, खासकर यदि आपके पास विश्वसनीय मैट्रिक्स नहीं हैं और कई संसाधनों को अनलोड करना है और सुपरफ़्लस को लोड करना है , आप सिस्टम को धूल में पीस सकते हैं।
बैकग्राउंड लोडिंग का विचार बेहतर उपयोग के लिए मृत चक्र का उपयोग करना है, लेकिन उपयोग करने के लिए केवल इतने ही मृत चक्र हैं। वही मेमोरी के लिए जाता है - प्री-लोडिंग से किसी गेम की मेमोरी का उपयोग काफी हद तक बढ़ सकता है। एक लोडिंग स्क्रीन के साथ, आप मौजूदा संसाधनों को डंप करते हैं। पृष्ठभूमि लोडिंग के साथ ऐसा कोई लक्जरी नहीं है, जिसका अर्थ है कि यह अकेले उस गिनती पर गेम की मेमोरी आवश्यकता को दोगुना कर सकता है।