शिपिंग गेम ग्राफिक्स पर कला की स्थिति क्या है जैसे बहुत सी छोटी बीएमपी फाइलें? [बन्द है]


9

हमारे पास बहुत सी छोटी बीएमपी फाइलें हैं जो मुझे लगता है कि अगर हम उन्हें एक बड़े टीएआर / जिप / जो भी हो, में कॉपी करना आसान होगा।

शिपिंग गेम ग्राफिक्स में कला की स्थिति क्या है?

हम C # का उपयोग कर रहे हैं और zlib से अवगत हैं। ज़ालिब से बेहतर कोई और उपाय है या नहीं, यह देखने के लिए बस मंथन करें।

जवाबों:


7

आप SharpZipLib या DotNetZip में भी देख सकते हैं - DotNetZip आपको Streamसीधे पहुंच प्रदान करता है, जो कि अधिकांश C # पुस्तकालयों के रूप में सहायक होता है, जहां धाराओं से लोड किया जा सकता है (फ़ाइलों के विपरीत)। इसके अलावा DotNetZip कानूनी रूप से संदिग्ध अपवाद के साथ GPL के बजाय Ms-PL (BSD- लाइक) का उपयोग करता है।

एक और विकल्प बनावट एटलाज का उपयोग करना है - इसके बजाय कई छोटी छवियों में कुछ बड़े हैं। ये वास्तव में थोड़ी तेजी से लोड होते हैं और रनटाइम के दौरान थोड़े तेज होते हैं यदि आप उन्हें कैसे खींचते हैं तो आप स्मार्ट हो जाते हैं।

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

कुछ पूर्व कला:

  • MPQ : खेल परिसंपत्तियों के लिए जितना संभव हो उतना अच्छा है, लुकअप को तेज (डिस्क-आधारित हैश-टेबल आदि) के लिए डिज़ाइन किया गया है। प्रत्येक फ़ाइल प्रकार (जो समर्थित है) में एक अद्वितीय कंप्रेसर है।
  • क्वेक PAK : यह मूल रूप से एक फ्लैट फ़ाइल संरचना है।
  • कयामत : कयामत के लिए कुछ हद तक विशिष्ट है, लेकिन देखने लायक है।

1

एक विकल्प उसी संपीड़न प्रारूप में छवियों को संग्रहीत करना है जो आप संपीड़ित बनावट बनाने के लिए उपयोग करते हैं। इससे यह फायदा होता है कि आप fro के एक हानिपूर्ण प्रारूप को दूसरे में नहीं बदलने जा रहे हैं, फिर भी आप डेटा को हानिपूर्ण प्रारूप में संग्रहीत करते हैं। बनावट के आधार पर इस तरह की फ़ाइलों को एक संपीड़ित संग्रह में संग्रहीत करके कुछ हासिल करना अभी भी हो सकता है।

संपीड़ित बनावट के बारे में अधिक जानकारी के लिए यह उत्तर देखें: https://gamedev.stackexchange.com/a/5177/3505


0

ZLIB एक अच्छा जवाब हो सकता है, लेकिन यदि आप अपनी संपत्ति को हथियाने वाले लोगों के बारे में जानते हैं, तो आप अपनी संपत्ति को संग्रहीत करने के लिए अपना खुद का फ़ाइल प्रारूप भी बना सकते हैं, हालांकि यह उतना कठिन नहीं है।

यहाँ आप इसे कैसे बना सकते हैं।

यह C में है, लेकिन इसे सीखना उतना कठिन नहीं होना चाहिए, क्योंकि C # कुछ C और C ++ जैसा है।

बेशक, जिन लोगों के पास अभी भी उच्च ज्ञान है वे आपके संसाधनों को पकड़ सकते हैं, आप चाहें तो थोड़ा एन्क्रिप्शन जोड़ सकते हैं, बहुत कठिन नहीं।

यह बहुत उपयोगी हो सकता है, लेकिन यह आपकी फ़ाइलों में शामिल हो जाएगा। संपीड़न के लिए भी, आपके पास दो विकल्प हैं।

  1. अपने पूरे संसाधन फ़ाइल बनाएं, इसे संपीड़ित करें, और जहाज करें।
    यह तरीका आसान है, लेकिन बहुत अच्छा नहीं है, अगर आप सिर्फ एक संसाधन लेना चाहते हैं, तो आपको सब कुछ अनकैप करना चाहिए।

  2. प्रत्येक संसाधन को संपीड़ित करें, और उन्हें संसाधन फ़ाइल में संपीड़ित करें।
    यह बहुत अच्छा है, आप विधि 1 के बगल के आकार में थोड़ी वृद्धि करेंगे, क्योंकि प्रत्येक फ़ाइल अलग से संपीड़ित होती है, लेकिन यदि आप लचीलापन चाहते हैं तो यह बेहतर है।

प्रत्येक विधि की अपनी कमियां हैं, आपको बुद्धिमानी से चुनना चाहिए। आम तौर पर, यदि आपके पास गेम में संसाधनों की संख्या कम है, तो विधि 1 बेहतर होनी चाहिए, यदि आपके पास बहुत सारे हैं, तो विधि 2 आपको फिट होनी चाहिए, क्योंकि सभी संसाधनों का आकार एक साथ अतिरिक्त हो जाएगा जो आपको प्राप्त होता है।

संपीड़न देयताओं के लिए, आपके पास:

  • सबसे प्रसिद्ध माध्यम, ज़ालिब
  • तेज विघटन के साथ एक, LZO
  • महान संपीड़न अनुपात, 7-ज़िप

अगर मुझे तेज़ एक्सेस इनगैम चाहिए तो मैं LZO के साथ जाऊंगा, इसलिए आपको रियल टाइम, 7-ज़िप में डरने की कोई जरूरत नहीं है।
चुनाव आपका है: डी

आह, निश्चित रूप से डेटा को संपीड़ित करने के लिए अन्य एल्गोरिदम हैं, और आप उन googling को पा सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.