2011-12-06 9 views
9

के लिए मैं यह पता नहीं लगा सकता कि सी ++ 2 डी आरपीजी के लिए एक्सएमएल, वाईएएमएल, या जेएसओएन का उपयोग करना है या नहीं।एक्सएम बनाम वाईएएमएल बनाम जेएसओएन 2 डी आरपीजी

यहाँ मेरे विचार कर रहे हैं:

  • मैं कुछ जो न सिर्फ खिलाड़ी डेटा को बचाने के लिए आसान है, लेकिन पर्यावरण डेटा, इस तरह के वस्तु (एक्स, वाई) के रूप में की जरूरत है निर्देशांक; भार समय; खजूर; ग्राफिक्स विन्यास, आदि

  • मुझे कुछ लचीला, उपयोग करने में आसान, और निश्चित रूप से हल्के वजन की आवश्यकता है, लेकिन उपरोक्त को संभालने के लिए शक्तिशाली है।

सबसे अच्छा विकल्प कौन सा है? मुझे जावास्क्रिप्ट में JSON के साथ अनुभव है, लेकिन सी ++ नहीं। क्या सी ++ में JSON को पार्स करने के लिए कोई अच्छा संदर्भ है यदि यह जाने का मार्ग है?

संपादित

सच में, एक पाठ फ़ाइल कुछ इस तरह (विशेष रूप से अगर मैं सिर्फ बाइनरी में लिख सकते हैं) के लिए आसान और सबसे प्रभावी समाधान की तरह लगता है, तो मैं सभी कान हूँ।

संपादित 2

अन्य सुझाव प्रदान करने के लिए और साथ ही स्वतंत्र महसूस।

+0

क्या ये एकमात्र विकल्प हैं?और बाइनरी सीरियलाइजेशन प्रारूप (जैसे Google प्रोटोकॉल बफर) पूरी तरह से सवाल से बाहर हैं? –

+0

मुझे ऐसे प्रारूपों से अनजान है - हालांकि, मुझे संभावनाओं के रूप में शामिल करने में खुशी होगी। पहले और अंतिम पैराग्राफ के लिए पिछले पैराग्राफ – zeboidlund

उत्तर

19

मैं आपकी आवश्यकताओं को पूरा करने वाली सबसे सरल चीज़ का उपयोग करूंगा।

यदि आपको पदानुक्रमित भंडारण की आवश्यकता नहीं है, तो फ्लैट टैब्यूलर फ़ाइलों को किसी और चीज़ से निपटने के लिए इतना आसान है। आपको बस डिस्क पर लाइनों को पढ़ने और टैब पर विभाजित करना है।

यदि आप अधिक कुंजी/मूल्य जोड़ी प्रकार भंडारण (चीजों की सूचियों के विपरीत) देख रहे हैं, तो INI files उचित हो सकता है। इस प्रारूप में बहुत लचीलापन है, हालांकि इसके बारे में तर्क कम करने के बाद आप इसे कम कर सकते हैं।

यदि आपको पदानुक्रम की आवश्यकता है, तो यह संभव है कि JSON सरल हो। भाषाओं की विस्तृत श्रृंखला में जेएसओएन पुस्तकालय हैं, और ऐसा लगता है कि आप पहले ही परिचित हैं।

https://stackoverflow.com/questions/245973/whats-the-best-c-json-parser

sqlite एक और विकल्प हो सकता है। एसक्यूएल में ड्रेगन होंगे, लेकिन एसक्लाइट के चारों ओर एक अच्छा सी ++ रैपर के साथ, यह प्रबंधित हो सकता है। मेरी राय में प्राथमिक लाभ एसीआईडी ​​होगा।

वाईएएमएल स्पेक कुछ हद तक लंबा दिखता है, इसलिए मुझे लगता है कि इसमें अधिक रसोई सिंक हैं। बस libyaml दस्तावेज़ों को स्किमिंग, एपीआई कुछ हद तक SAX इंटरफेस की तरह दिखता है जिसे मैंने अतीत में उपयोग किया था। मेरे पास इसका कोई पोस्टरियोरी ज्ञान नहीं है, लेकिन मैं बिना किसी अच्छे कारण के इसका उपयोग शुरू करने के लिए अव्यवस्थित हूं।

एक्सएमएल इससे निपटने के लिए बेकार है, इसमें शामिल न करें।

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

+2

+1। – MerickOWA

+3

+1 के लिए – zeboidlund

संबंधित मुद्दे