मुझे कुछ कस्टम गेम डेटा सहेजने की आवश्यकता है। नक्शा, खिलाड़ी, आदि।
उन सभी में "उप वस्तुएं" होंगी। उदाहरण के लिए, एक नक्शे और नक्शे में टाइलों की एक "सरणी" होगी। यानी, पदानुक्रमित डेटा। उम्मीद है कि कुछ भी नहीं बाइनरी।
इनके लिए एक अच्छा प्रारूप क्या होगा?
अब तक माना जाता है:
सेरीलाइज़ेशन: यह तेज़ और आसान है, लेकिन जब मैं अंतर्निहित कक्षाएं बदलता हूं तो टूट जाता है :(
XML: मैं वास्तव में इस पार्सिंग से नफरत करता हूं। मेरे परीक्षण का मामला कोड की 100+ पंक्तियों से अधिक था और ऐसा लगता है कि बहुत सरल प्रारूप के लिए "व्यस्त काम" के टन पसंद करते हैं।
INI: श्रेणीबद्ध डेटा के लिए वास्तव में अनाड़ी होगा।
प्रोटोबॉफ़: कभी भी इसका उपयोग नहीं किया है, लेकिन पढ़ा है कि यदि आप कक्षा बदलते हैं, तो आपको बहुत सारे मैनुअल मैकिंग करना पड़ता है और टूट जाता है।
अन्य विकल्प? इसलिए मैं यहां हूँ!
संपादित करें: यह जावा btw है।
2 संपादित करें:
मैं "नियंत्रित बाइनरी सीरियलाइज़ेशन" (नीचे देखें) पर बस गया।
पेशेवरों:
ये तेज़ है
यह छोटा है (डिस्क पर) और पढ़ने / लिखने के दौरान आसानी से संपीड़ित / विघटित हो सकता है।
गेम और टूलसेट से पढ़ना / लिखना बेहद आसान है।
मैं तय कर सकता हूं कि वस्तु को क्या शामिल / बहिष्कृत करना है।
ऑब्जेक्ट / डेटा को नेस्टेड किया जा सकता है।
विपक्ष:
इसे हाथ से संपादित नहीं कर सकते (जैसे XML, YAML, आदि)
इसे आसानी से स्क्रिप्ट के साथ पढ़ा / संशोधित नहीं किया जा सकता है
डिफ़ॉल्ट रूप से जावा सीरियलाइज़ेशन अन्य अनुमानों की तुलना में बहुत धीमा / फूला हुआ है, लेकिन यह स्थिर और काम करता है