संपीड़न कब, कहाँ और कई अलग अलग परतों पर कई मायनों में हो सकता है, और कैसे अपने इस्तेमाल किया पूरी तरह से निर्भर हैं क्या इसके लक्ष्य & लक्ष्य हैं (संपीड़न हमेशा अंतरिक्ष की बचत के बारे में नहीं है डिस्क पर)।
बहुत मूल रूप से, शीर्ष स्तर पर, सभी संपत्तियों को थोक संग्रह में संपीड़ित किया जा सकता है (यह गति पढ़ता है, क्योंकि एचडीडी से पढ़ने के लिए कम है, लेकिन आप इसके लिए प्रसंस्करण शक्ति का त्याग कर रहे हैं, जैसा कि लगाया गया है असंपीड़ित फ़ाइलों को पढ़ने के लिए डीएमए का उपयोग करने के लिए, जो सीपीयू का बिल्कुल उपयोग नहीं करता है), पढ़ना वापस स्मृति के लिए स्मृति हमेशा किया जाता है, एचडीडी पर वापस पढ़ने से प्रदर्शन नष्ट हो जाएगा और कई समस्याएं हो सकती हैं (और कुछ मामलों में असंभव, जैसे पुराने पीढ़ी के कंसोल पर)।
एक दूसरे स्तर को संपत्ति पर ही किया जा सकता है/किया जा सकता है, उदाहरण के तौर पर, बनावट कई अलग-अलग तरीकों से संपीड़ित की जा सकती है, लेकिन मुख्य रूप से ब्लॉक संपीड़न (एस 3 टीटी/डीXTएन, बीसीएन) का उपयोग इन दिनों किया जाता है क्योंकि इसकी डिकंप्रेशन समर्थित है हार्डवेयर में (या ड्राइवर द्वारा अनुकरण), इसलिए जब एक बार संग्रह/डिस्क के लिए पढ़ा जाता है, तो कोई और डिकंप्रेशन करने की आवश्यकता नहीं होती है।
संपीड़न रणनीति भी शान्ति जो स्मृति लेआउट के लिए बहुत संवेदनशील होते हैं, सीमित संसाधन हैं और छोटे कैश आदि
ग के साथ zlib की तरह एक पुस्तकालय (या किसी अन्य) का उपयोग करना है पर विशेष रूप से मंच के साथ बदलता, ++ , यह रनटाइम डिकंप्रेशन कैसे किया जाता है?
आम तौर पर आप संग्रह की स्मृति मैप की गई फ़ाइलों का उपयोग और राम के लिए, एक एएए संग्रह प्रणाली है कि अच्छी तरह से प्रलेखित है कि इस MPQ format (बर्फ़ीला तूफ़ान मनोरंजन द्वारा प्रयोग किया जाता है, अधिक जानकारी के here का एक अच्छा उदाहरण सीधे संपीड़ित करना चाहते हैं), यह विभिन्न प्रकार के संपीड़न एल्गोस का उपयोग करता है, जैसे डायब्लो I के लिए डिफ्लेट, वॉरक्राफ्ट III के लिए zlib, वर्ल्ड वार्कक्राफ्ट में bzip2, और उन्होंने हाल ही में एससीआईआई जैसे अपने नए गेम के लिए एलजेड और स्पैस संपीड़न जोड़ा।
जेन वासनबर्ग 'थीसिस (Optimizing File Accesses via Ordering and Caching
) में फ़ाइल प्रबंधन का एक अच्छा टूटना है, जो कि ब्याज भी हो सकता है।
मैं नहीं जानता कि क्या पा सकते हैं 'परिसंपत्ति' का अर्थ यहां विशेष रूप से है, लेकिन यदि आपके पास बहुत अलग संपीड़ित फ़ाइलें हैं, तो आप मांग पर डिकंप्रेस करने की कोशिश कर सकते हैं + कुछ कैशिंग। इसलिए जब फ़ाइल की आवश्यकता होती है तो स्मृति में एक फ़ाइल को डिकंप्रेस किया जाता है, और उसके बाद इसे कैश किया जाता है, और अगर किसी समय के लिए इसकी आवश्यकता नहीं होती है तो कैश से हटा दिया जाता है जब कैश को बहुत बड़ा होने से रोकने के लिए अन्य फ़ाइलों को डिकंप्रेस करने की आवश्यकता होती है। – sashoalm
परिसंपत्ति से मेरा मतलब है कि गेम के लिए आवश्यक फाइलें, छवियों, मेष, सामग्री, शेडर्स जैसी चीजें हैं जो – Constan7ine
"गेम कोडिंग पूर्ण" में वर्णित विधि सैटून का बहुत अधिक था। – risingDarkness