মিনক্রাফ্টের মতো ব্লক সহ একটি গেমের জন্য ডেটা সঞ্চয় করার কয়েকটি ভিন্ন উপায় রয়েছে।
আমি বিশ্বাস করি যেভাবে মিনক্রাফট এটি করে তা 16x16x256 খণ্ডগুলিতে বিশ্বকে ভেঙে ফেলে। প্লেয়ার যখন খেলা শুরু করে তখন প্লেয়ারের চারপাশের অংশগুলি স্মৃতিতে লোড হয়, তারপরে আপনি যখন হাঁটেন তখন একটি পটভূমি থ্রেড আরও লোড হয়। এখানে এমন একটি ভিডিও রয়েছে যা এটি দেখায়: http://www.youtube.com/watch?v=oR_ZdJH9eho ।
এটি করার আরেকটি উপায় হ'ল বিশ্বকে একটি অক্টোবরে পরিণত করা। মাইকেল গুডফেলো এই ডেটা স্ট্রাকচার সহ কিউব ওয়ার্ল্ড বাস্তবায়নের বিষয়ে একটি ব্লগ লিখেছেন: http://www.sea-of-memes.com/LetsCode1/LetsCode1.html । অক্ট্রিটি দুর্দান্ত কারণ এটি আপনাকে সংক্ষেপে কিছুটা বিল্ট দেয়, তবে কোনও অ্যারের সাথে কাজ করা সম্ভবত সামান্য কঠিন হবে be
"শুধুমাত্র স্মৃতিতে প্রয়োজনীয়গুলি" রাখার বিষয়ে? আপনাকে "প্রয়োজনীয়" কী জিজ্ঞাসা করতে হবে এহেতু এটি কিছুটা শক্ত। আপনার যদি এমন এনপিসি থাকে যা এআই সহ বিশ্বের অন্য অংশে থাকে যা পরিবেশের সাথে যোগাযোগ করে তবে আপনার স্মরণে থাকার জন্য বিশ্বের আরও অনেক কিছু "প্রয়োজন"। ভক্সেল ওয়ার্ল্ড ডেটা খুব দ্রুত খুব দ্রুত পেতে পারে, তাই সর্বনিম্ন সম্ভব পরিমাণকে স্মৃতিতে রাখার চেষ্টা করা ভাল। (আইই, প্লেয়ারের কাছে কেবল এনপিসি থাকে)।
গ্রাফিক্স ইঞ্জিনের প্রতিটি ব্লক "অপরিহার্য" হবে যা সম্পূর্ণ অপ্রচ্ছন্ন ব্লক দ্বারা সম্পূর্ণরূপে ঘিরে নেই। বিশ্বকে রেন্ডার করার স্বাভাবিক উপায় হ'ল একক জাল তৈরি করা যা প্রতিটি দৃশ্যমান ব্লকের জন্য শীর্ষকোষ থাকে। এটি আঁকতে আরও দ্রুততর যেহেতু আপনি 65,536 টি ব্লকের (মাইনক্রাফ্ট আকারের অংশে) জন্য ড্র পদ্ধতিতে কেবল 1 কল করছেন। গ্রাফিক্স ইঞ্জিনটি যেহেতু এই জালটি তৈরি করতে হবে, তাই এটি সাধারণত সমস্ত কিউবগুলি একটি অংশে জেনে রাখা উচিত। মনে রাখবেন যে মিনক্রাফ্টের মেঝেতে যখন দেখেন তখন পৃথিবীর অনেক অংশ অদৃশ্য থাকে। এটি কারণ যে ছয় পক্ষের চারপাশে থাকা প্রতিটি ব্লক এড়িয়ে যায়। আমি বিশ্বাস করি মাইনক্রাফ্ট একই ধরণের টেক্সচারের অনুভূমিক দিকগুলি টেক্সচারের পুনরাবৃত্তির সাথে এক বাক্সে মিশ্রিত করে উল্লম্বের সংখ্যাও হ্রাস করে।
আমার পরামর্শটি হবে 16x16x256 খণ্ডগুলি নিয়ে যেতে। এগুলিকে একটি অ্যারেতে সঞ্চয় করুন যেহেতু আপনার জাল এবং গেম যুক্তি (সংঘর্ষ সনাক্তকরণ, ব্লকগুলি যোগ / অপসারণ, ect) তৈরির কারণে দ্রুত পুনরাবৃত্তি এবং সম্পাদনা প্রয়োজন। তারপরে প্লেয়ারের আশেপাশে একটি বৃত্তে যতগুলি অংশ লোড করুন load উন্নত বা খারাপ কম্পিউটারের জন্য খণ্ডগুলির সংখ্যা উপরে বা নীচে স্কেল করুন।
Chunks এর লোডিং পারফরম্যান্সে বিশাল হিট হবে, তাই এটি একটি থ্রেডে রাখুন যা এটি সময়ের সাথে সাথে চালিত হয়। এটি তৈরি করুন যাতে কোনও খেলোয়াড়কে খণ্ডের এক প্রান্ত থেকে অন্য প্রান্তে চলতে সময় লাগে এমন সময়ে আপনি সম্পূর্ণ 3 টি নতুন খণ্ডগুলি লোড করতে পারেন।