গেমের সামগ্রী সংরক্ষণের জন্য আমার কি ডেটাবেস ব্যবহার করা উচিত? [বন্ধ]


16

আমার এসএফএমএল ব্যবহার করে সি ++ তে একটি 2 ডি গেম লেখা আছে। আমি গেমটি এমনভাবে প্রসারিত করতে চাই যাতে কোনও ফাইল বা ডাটাবেসে আইটেম বা সত্তার মতো সামগ্রী সহজেই একটি লাইন / এন্ট্রি / সারি যুক্ত করে যুক্ত করা যায়।

আমি এমন কিছু সন্ধান করছি যা প্রোগ্রামে সংকলন করার প্রয়োজন হয় না, তবে পরিবর্তে রানটাইম থেকে পড়া এবং লেখা যায়। এটি কখন ডাটাবেস ব্যবহার করা উপযুক্ত হবে?


1
আপনার প্রয়োজন আরও পরিষ্কার করুন। ডাটাবেসগুলি বেশ দ্রুত, তবে খুব জটিল। আপনার কি সত্যিই গতি দরকার? কেন শুধু একটি পাঠ্য ফাইল ব্যবহার করবেন না? আপনি কি একটি মানদণ্ড চালিয়েছেন?
আনকো

আপনি কয়টি আইটেম পেতে চলেছেন? এটি কি এক মিলিয়নেরও বেশি? এটি সেই প্রান্তিকের বিষয়ে যেখানে আমি পাঠ্য ফাইলের উপর একটি ডাটাবেস ব্যবহার করার বিষয়ে বিবেচনা করব।
ফিলিপ

আমি বলব এটির জন্য একটি ডাটাবেস ওভারকিল, কেবল কিছু ধরণের সংজ্ঞা তালিকা ব্যবহার করুন। সম্ভবত শুধু সরল পাঠ্য। এক্সএমএল বা জেএসএন বিবেচনা করুন।
হুগো জিঙ্ক

1
আমি এক্সএমএল বা জেএসওএনকেও সুপারিশ করি। আমি এক্সএমএলকে পছন্দ করি কারণ এটি একজন মানুষ হিসাবে আমার কাছে বেশি পঠনযোগ্য, তবে জেএসওএনও একটি ভাল পছন্দ।
ড্রাকো

আমি ডেটা সিস্টেম সম্পর্কিত জ্ঞান বা গেমগুলিতে কীভাবে প্রয়োগ করা হবে তা দাবি করব না, তবে আমি বলব যে মাইক্রোসফ্ট তাদের অনেকগুলি সহজ অ্যাপ্লিকেশনগুলির জন্য মাইক্রো-ডাটাবেস বাস্তবায়ন ব্যবহার করে s ডেটা, বা বাইরের-ডাটাবেসের প্রয়োজন, তবে "সম্পর্ক" ইত্যাদি থাকে। যতক্ষণ আপনি সহজে ব্যবহারের স্বাচ্ছন্দ্য বজায় রাখবেন তা বোধগম্য হতে পারে। (খারাপ ধারণা: একটি অতি-আনুষ্ঠানিক এক্সএমএল নেমস্পেস
ম্যান্ডেটিং

উত্তর:


26

আপনার যদি একটি ডেটাবেস প্রয়োজন হয় তবে কেবল একটি ডাটাবেস ব্যবহার করুন। এটাই:

  • আপনার যদি প্রায়শই জটিল প্রশ্নগুলি সম্পাদন করা প্রয়োজন।
  • আপনার যদি জটিল ডেটা সম্পর্ক থাকে।
  • যদি আপনার ডেটা বিশাল হয় এবং মেমরির সাথে ফিট না হওয়ার সম্ভাবনা থাকে।

যদি আপনার গেমের ডেটা এই শর্তগুলির মধ্যে কোনওটিকে সন্তুষ্ট করে, আপনি একটি ডেটাবেস ব্যবহার করে উপকৃত হতে পারেন। মনে রাখবেন যে এগুলি খুব সাধারণ নয় এবং সম্ভবত আপনি এগুলির কোনওটিই সন্তুষ্ট করেন না । যদি আপনি এটি করেন তবে আমি এসকিউএলাইট বা অন্য কোনও কিছু নিয়ে চলমান সার্ভারের প্রয়োজন নেই এবং কেবল একটি লাইব্রেরি না হওয়ার অনুরূপ ধারণা নিয়ে যাব ।

অন্যথায়, প্রারম্ভকালে মেমরিতে ফাইল এবং লোড ডেটা ব্যবহার করুন। আপনি যদি গেমটি পরিবর্তনযোগ্য হতে চান তবে আপনার গেমের ডিরেক্টরি এবং মোডের ডিরেক্টরি উভয় থেকেই এই ডেটাটি লোড করুন এবং বিবাদী তথ্যকে কীভাবে মার্জ করা যেতে পারে তা নির্ধারণ করুন।

এছাড়াও মনে রাখবেন, যদি আপনি না একটি ডাটাবেস ব্যবহার করেন, এটা উপকৃত হতে পারে উভয় আপনি এবং mods, 'ডেভেলপার এখনও প্রাথমিক তথ্য শুধুমাত্র যখন খেলা লোড পড়া এবং ডাটাবেস গঠন করা ফাইল ব্যবহার করতে। যদি না এই ডাটাবেস সম্ভাব্য আকার বিশাল (অর্থাত, কয়েক ডজন MiB চেয়ে বেশি), আপনি একটি ইন-মেমোরি ডাটাবেস, ব্যবহার করতে চাইতে পারেন যা নির্দিষ্ট করে SQLite সম্ভব :memory:ডাটাবেসের পাথ হিসাবে


3
SQLiteআপনার প্রয়োজনগুলি "জটিল" বা "বিশাল" না হলেও এমনকি আমি দ্বিতীয়বার বিবেচনা করব । এরকম ছোট্ট এবং এমবেড থাকা কিছু দিয়ে আসলে অনেকগুলি কারণ রয়েছে, আপনি আপনার নখদর্পণে একটি ডেটাবেস পেয়ে অত্যন্ত উপকার পেতে পারেন।
wjl

এছাড়াও, মোবাইল প্ল্যাটফর্মগুলি কিছু তথ্য সংরক্ষণের জন্য ডাটাবেস ব্যবহার করে। অ্যান্ড্রয়েড এসকিউএলাইট ব্যবহার করে। এর অর্থ হ'ল মোবাইল প্লাটফর্মগুলির জন্য আপনার বেশিরভাগ কাজ ইতিমধ্যে সম্পন্ন হয়েছে (ডেটা হ্যান্ডলিংয়ের ক্ষেত্রে)। এছাড়াও এসকিউএলাইট সেটআপ করা এবং এসকিউএলাইট ডেটা সম্পাদনা করা ( এসকিউলাইট স্টুডিও বা এর মতো প্রোগ্রামগুলির সাথে) সত্যই সহজ । যদি এটি এসকিউএলাইট ব্যবহার করা হয় তবে সেরা বেটটি ভি 3 ব্যবহার করা হবে। তবে তা ছাড়াও স্পট!
ইসমাইল মিগুয়েল

@ ডব্লিউজেএল: একমত হয়েছে, স্বাভাবিককরণ এবং রেফারেন্সিয়াল অখণ্ডতার সীমাবদ্ধতার সুবিধাগুলি এমনকি ছোট গেমের ডেটা সেটগুলির পক্ষেও এটি উপযুক্ত। (এখন কেবল যদি এসকিউএলাইটকে যথাযথ রেফারেন্সিয়াল অখণ্ডতার সীমাবদ্ধতাগুলি পাওয়ার জন্য এমন ব্যথা না হয় ...)
ম্যাসন হুইলারের

এটি একটি রিলেশনাল ডাটাবেস ব্যবহার করার বিরুদ্ধে একটি যুক্তি । একটি সাধারণ সূচকযুক্ত কী-মান স্টোরটি এখনও সার্থক হতে পারে।
চিহ্নিত করুন

1
@ মার্ক আপনি যদি একটি গেমের মূল-মান স্টোর ব্যবহার করতে যাচ্ছেন তবে আপনার কাছে ঠিক একটি হ্যাশম্যাপ বা মেমরির অনুরূপ থাকতে পারে।
দারখোগ

5

গেম ডেভেলপোমেন্টের জন্য আমি মঙ্গোডিবি সত্যিই পছন্দ করি, এটির একটি দুর্দান্ত পারফরম্যান্স রয়েছে এবং এটি সত্যিই নমনীয়, ব্যবহার করা সহজ এবং জেসন-ভিত্তিক।

নোএসকিউএল আর্চের কারণে আপনি যে কোনও সংগ্রহের জন্য আপনার প্রয়োজনীয় ক্ষেত্রটি কেবল যুক্ত করতে পারেন, সুতরাং এটি গেমসের মতো কোনও "গতিশীল" পরিবেশে সত্যই ভাল ফিট করে।

উঁকি দিও ।

যদি আপনি কোনও ধরণের এমএমও টার্ন ভিত্তিক কৌশল গেমটি বিকাশ করে থাকেন তবে সম্ভবত আপনার কাউচডিবি সম্পর্কে পড়া উচিত , এটি একটি নোএসকিউএল ডাটাবেস যা সত্যই ভাল সংস্করণ ব্যবস্থা রয়েছে।


একটি ভাল উত্তর না। প্রশ্নটি "কোন ডাটাবেসটি ব্যবহার করা উচিত" তা নয়, বরং "আমার কোনও ডাটাবেস ব্যবহার করা উচিত" "
uliw साक्षी

1

ক্যাসলডিবি একটি ভাল বিকল্প কারণ এটি কেবলমাত্র এমন সম্পাদক যা কোনও ডাটাবেসকে পরে কোনও জেএসএন ফাইলে রূপান্তর করে। আমি অনেকগুলি উত্তর দেখেছি যে বলছে একটি প্লেটেক্সট ফাইল সবচেয়ে ভাল, সুতরাং ক্যাসলডিবি সম্ভবত উভয় বিশ্বের সেরা।


কোনও খারাপ উত্তর নয়, তবে প্রশ্নটি মিস করে। প্রশ্নটি "কোন ডাটাবেসটি ব্যবহার করা উচিত" তা নয়, বরং "আমার কোনও ডাটাবেস ব্যবহার করা উচিত" "
uliw साक्षी
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.