একটি কীভাবে একটি পদ্ধতিগত বিশ্বের সংরক্ষণ করতে পারে?


17

আমি পদ্ধতিগত ওয়ার্ল্ডস কীভাবে তৈরি করব সে সম্পর্কে আমি সম্প্রতি পড়েছি ... তবে কীভাবে আমি এটি সংরক্ষণ করব?

টেরারিয়া বা মাইনক্রাফ্টের মতো গেমগুলিতে ব্যবহারকারীরা নির্দ্বিধায় ল্যান্ডস্কেপ পরিবর্তন করতে পারে, তবে সেই পৃথিবীটি শুরু বীজ থেকে পুনরায় তৈরি করা যায় না। পদ্ধতিগত কিন্তু পরিবর্তনযোগ্য পৃথিবী সংরক্ষণের জন্য কোন কৌশলগুলি ব্যবহার করা হয়?

উত্তর:


21

আপনি বিশ্ব তৈরির জন্য যে বীজ ব্যবহার করেছেন তা সংরক্ষণ করুন এবং পরিবর্তনগুলি হয় পারমাণবিক "আদেশ" বা তার ফলাফল হিসাবে।

তারপরে সংরক্ষিত গেমটি লোড করার সময় আপনি নিম্নলিখিতগুলি করেন:

  1. আপনি বর্তমানে যে পৃথিবীর পরিদর্শন করছেন সেটির প্রক্রিয়াগতভাবে জেনারেট করুন।
  2. সংরক্ষিত কমান্ডগুলি প্রয়োগ করুন, বা উত্পন্ন উপাদানগুলি সংরক্ষিতগুলির সাথে ওভাররাইট করুন।

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


2
পরিবর্তনগুলি ছাড়াও, তাকে সম্ভবত প্রক্রিয়াগত বিশ্ব গড়ার জন্য ব্যবহৃত বীজও সংরক্ষণ করতে হবে ;-)
বামজ্যাক

@ অ্যালবামজ্যাক হ্যাঁ অবশ্যই, আমি এটি উল্লেখ করতে ভুলে গেছি, কারণ এটি সুস্পষ্ট :-) আমি আমার উত্তরটি সম্পাদনা করব।
মার্টন

10
আমি পুরোপুরি নিশ্চিত নই যে বীজ থেকে বিশ্বকে নতুনভাবে তৈরি করা সেরা ধারণা। বিশ্ব প্রজন্ম সাধারণত জটিল অ্যালগরিদমে জড়িত থাকে এবং তাই সময় নেয়: আমরা এলোমেলো বিশ্ব তৈরি করি সাধারণত স্থান সঞ্চয় না করে এলোমেলোতা থেকে উপকৃত হতে। আমি তাই বিবেচনা করব যে বাইনারি ফর্ম্যাটে পুরো বিশ্ব সংরক্ষণ করা আরও কার্যকর হবে।
জোনাথন কনেল

2
সুতরাং আপনি একটি পদ্ধতিগতভাবে উত্পাদিত বিশ্বকে বাঁচাতে বলছেন, আপনি এটি তৈরি করেন, তবে এটি সংরক্ষণ করবেন? এটি খুব সম্পূর্ণ উত্তর নয়।
মাইকেলহাউস

2
@ Random832 Minecraft করে বরং বীজ থেকে এটা ঘটার সম্ভবনা এবং পরিবর্তন replaying চেয়ে একটি বাইনারি বিন্যাসে বিশ্বের সংরক্ষণ। পুরো বিশ্বকে বাঁচানোর সমস্যাটি পেতে, মাইনক্রাফ্ট কেবল এখন পর্যন্ত উত্পন্ন উত্সগুলি সংরক্ষণ করে। আপনি যখন আরও বিশ্বকে ঘুরে দেখেন, আপনার সংরক্ষণের খেলাটি আরও বড় হয়।
জোসেফ ম্যানসফিল্ড

8

পদ্ধতিগতভাবে উত্পন্ন বিশ্বের সংরক্ষণ কোনও টাইল মানচিত্রের ডেটা সংরক্ষণ করার সমান।

আপনি সম্ভবত বিশ্বকে বিভিন্ন ধরণের টাইলস দিয়ে তৈরি করে ধরে নিয়ে বাইনারি ফর্ম্যাটে বিশ্বকে বাঁচাতে চান, আপনাকে এগুলি করতে হবে:

  1. বিভিন্ন টাইলের মোট সংখ্যার বিষয়ে সিদ্ধান্ত নিন ((তার উপর নির্ভর করে প্রতিটি টাইলকে উপস্থাপন করার জন্য আপনার কম বেশি বিট লাগবে)
  2. পরিদর্শন করা (সংশোধিত) বিশ্বের প্রস্থ এবং উচ্চতা নির্ধারণ করুন।
  3. শীর্ষ-বাম টাইল (আকাশ সহ) সারি সারি সারি নীচে-ডানদিকে ডান টাইল দ্বারা টাইল দ্বারা ওয়ার্ল্ড টাইল উপস্থাপন করুন।
  4. আপনি যদি স্থানটিতে সঞ্চয় করতে চান, এই 2-অ্যারে সংশ্লেষ করতে ডিফল্ট বা অনুরূপ একটি অ্যালগরিদম ব্যবহার করুন (1-ডি হিসাবে উপস্থাপিত) http://en.wikedia.org/wiki/DEFLATE
  5. ডিস্কে ডেটা সঞ্চয় করতে আপনার এপিআইয়ের জন্য উপযুক্ত ফাইল আই / ও ব্যবহার করুন।

আপনি একটি ভক্সেল ভিত্তিক মানচিত্র সংরক্ষণ করতে একই পদ্ধতি ব্যবহার করতে পারেন।

একটি শীর্ষ কোণ ভিত্তিক মানচিত্রের মডেল সংরক্ষণ করা আরও জটিল।

আপনি কি আমাকে এই বিষয়ে বিস্তারিত বলতে চান?


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

4

মাইনক্রাফ্ট সম্পর্কে, বিশ্ব ভক্সেল ব্যবহার করে তাই এটি সংরক্ষণ করা বেশ সহজ, আরও তথ্য এখানে:

http://www.minecraftwiki.net/wiki/Region_file_format

http://www.minecraftwiki.net/wiki/Level_Format

যেমনটি ইতিমধ্যে বলা হয়েছে, বিশ্ব উত্পাদন করার জন্য ব্যবহৃত একটি বীজ সংরক্ষণ করুন এবং আপনার সেভ ফর্ম্যাটটিকে আপনার কি পৃথিবী (কিউবস, পরমাণু, ইত্যাদি ...) দিয়ে তৈরি করা হয়েছে তার সাথে মানিয়ে নিন।


3

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

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.