আমি একটি লেভেল এডিটিং সরঞ্জামে কাজ করছি যা এর ডেটা এক্সএমএল হিসাবে সংরক্ষণ করে।
এটি বিকাশের সময় আদর্শ, কারণ ডেটা ফর্ম্যাটে ছোট পরিবর্তন করা বেদনাদায়ক এবং গাছের মতো ডেটার সাথে এটি দুর্দান্তভাবে কাজ করে।
ডাউনসাইড, যদিও, এক্সএমএল ফাইলগুলি বরং স্ফীত হয়, বেশিরভাগ কারণ ট্যাগ এবং বৈশিষ্ট্যগুলির নামের নকলের কারণে। এছাড়াও সংখ্যাগত ডেটা দেশীয় ডেটাটাইপগুলি ব্যবহারের চেয়ে উল্লেখযোগ্যভাবে বেশি স্থান গ্রহণের কারণে। একটি ছোট স্তর সহজেই 1Mb + হিসাবে শেষ হতে পারে। আমি এই আকারগুলি উল্লেখযোগ্যভাবে নামাতে চাই, বিশেষত যদি আইফোন বা অপেক্ষাকৃত সীমিত মেমরির অন্যান্য ডিভাইসে কোনও গেমের জন্য সিস্টেমটি ব্যবহার করতে হয়।
মেমরি এবং পারফরম্যান্সের জন্য সর্বোত্তম সমাধানটি হল এক্সএমএলকে বাইনারি স্তরের ফর্ম্যাটে রূপান্তর করা। তবে আমি এটি করতে চাই না। আমি ফর্ম্যাটটি বেশ নমনীয় রাখতে চাই। এক্সএমএল বস্তুগুলিতে নতুন বৈশিষ্ট্য যুক্ত করা খুব সহজ করে তোলে এবং যদি ডেটার একটি পুরানো সংস্করণ লোড হয় তবে তাদের একটি ডিফল্ট মান দেয় value সুতরাং আমি নোডের শ্রেণিবিন্যাসের সাথে রাখতে চাই, নাম-মান জোড়া হিসাবে গুণাবলী with
তবে ট্যাগ / বৈশিষ্ট্যর নামগুলির বিশাল সদৃশতা সরাতে - আমাকে এটি আরও কমপ্যাক্ট ফর্ম্যাটে সংরক্ষণ করতে হবে। বৈশিষ্ট্যগুলি দেশীয় প্রকারগুলিও দিতে পারে, সুতরাং, উদাহরণস্বরূপ ভাসমান-পয়েন্টের ডেটা স্টাট হিসাবে নয়, ফ্লোট প্রতি 4 বাইট হিসাবে সংরক্ষণ করা হয়।
গুগল / উইকিপিডিয়া প্রকাশ করেছে যে 'বাইনারি এক্সএমএল' খুব কমই একটি নতুন সমস্যা - এটি ইতিমধ্যে বেশ কয়েকবার সমাধান করা হয়েছে। এখানে কেউ কি বিদ্যমান সিস্টেম / মানক নিয়ে অভিজ্ঞতা পেয়েছে? - গেমস ব্যবহারের জন্য কি কোনও আদর্শ - একটি ফ্রি, লাইটওয়েট এবং ক্রস-প্ল্যাটফর্ম পার্সার / লোডার লাইব্রেরি (সি / সি ++) পাওয়া যায়?
নাকি আমাকে এই চাকাটি পুনরায় উদ্ভাবন করা উচিত?
বা আমি কি আদর্শকে ভুলে যাওয়া এবং আমার কাঁচা .xML ডেটা (এটি জিপ-এর মতো সংকোচনের সাথে ভালভাবে প্যাক করা উচিত) কমপ্রেস করেছিলাম, এবং কেবল স্মৃতি / পারফরম্যান্সটি অন-লোডে নিয়ে যাচ্ছি?