কোয়াড্রি, অক্ট্রি, বিএসপি ট্রি, এমনকি একটি সাধারণ গ্রিড সিস্টেমের মতো সাধারণ স্পেস পার্টিশনিং অ্যালগরিদমগুলির মধ্যে একটি ব্যবহার করুন। প্রতিটি নির্দিষ্ট দৃশ্যের জন্য প্রত্যেকের নিজস্ব মতামত রয়েছে। আপনি এই বইগুলিতে সেগুলি সম্পর্কে আরও পড়তে পারেন ।
সাধারণত (বা তাই আমি শুনেছি, আমি এর পিছনে যুক্তির সাথে খুব বেশি পরিচিত নই) একটি চতুর্ভুজ বা অক্ট্রি বহিরঙ্গন পরিবেশের জন্য আরও উপযুক্ত, যখন বিএসপি গাছ গৃহমধ্যস্থ দৃশ্যের সাথে আরও ভাল ফিট করে। এবং একটি চতুষ্কোণকারী বা একটি অক্ট্রি ব্যবহারের মধ্যে পছন্দ নির্ভর করে আপনার পৃথিবী কতটা সমতল। যদি অট্রি ব্যবহার করে ওয়াই অক্ষের মধ্যে সামান্য ভিন্নতা থাকে তবে এটি অপব্যয়যোগ্য। একটি অক্ট্রি মূলত একটি অতিরিক্ত মাত্রা সহ একটি চতুর্ভুজ হয়।
অবশেষে, গ্রিড সমাধানের সরলতা উপেক্ষা করবেন না। অনেক লোক এড়িয়ে চলে যে একটি সাধারণ গ্রিড কখনও কখনও তাদের সমস্যার জন্য যথেষ্ট (এবং আরও কার্যকর) হতে পারে এবং পরিবর্তে আরও জটিল সমাধানে সরাসরি লাফিয়ে যায়।
গ্রিড ব্যবহার করা কেবল বিশ্বকে সমান দূরত্বযুক্ত অঞ্চলে ভাগ করে নেওয়া এবং বিশ্বের উপযুক্ত অঞ্চলে সত্তাগুলি সংরক্ষণ করার অন্তর্ভুক্ত। তারপরে, একটি অবস্থান দেওয়া হলে, প্রতিবেশী সত্তাগুলি সন্ধান করা সেই অঞ্চলগুলিতে পুনরাবৃত্তি হওয়ার বিষয় হবে যা অনুসন্ধানের আপনার ব্যাসার্ধকে ছেদ করে।
ধরা যাক এক্সজেড বিমানে আপনার বিশ্ব (-1000, -1000) থেকে (1000, 1000) পর্যন্ত রয়েছে। আপনি উদাহরণস্বরূপ এটিকে 10x10 গ্রিডে ভাগ করতে পারেন:
var grid = new List<Entity>[10, 10];
তারপরে আপনি গ্রিডে সত্ত্বাকে তাদের উপযুক্ত কক্ষগুলিতে স্থাপন করবেন। উদাহরণস্বরূপ, এক্স জেড (-1000, -1000) সহ একটি সত্তা সেল (0,0) এ পড়বে এবং এক্স জেড (1000, 1000) সহ একটি সত্তা কোষে পড়বে (9, 9)। তারপরে বিশ্বে একটি অবস্থান এবং একটি ব্যাসার্ধ প্রদত্ত, আপনি নির্ধারণ করতে পারবেন কোন কোষগুলি এই "বৃত্ত" দ্বারা ছেদ করা হয়েছে এবং কেবলমাত্র তাদের উপর পুনরাবৃত্তি হতে পারে, এর জন্য একটি সাধারণ দ্বিগুণ।
যাইহোক, বিকল্পগুলির সমস্ত অনুসন্ধান করুন এবং আপনার গেমটি আরও ভাল ফিট করে এমনটি চয়ন করুন। আমি স্বীকার করি যে এ্যালগোরিদমগুলির মধ্যে কোনটি আপনার পক্ষে সবচেয়ে ভাল হবে তা স্থির করার জন্য আমি এই বিষয়ে এখনও যথেষ্ট জ্ঞানী নই।
সম্পাদনা এটি অন্য ফোরামে পাওয়া গেছে এবং এটি আপনাকে সিদ্ধান্তে সহায়তা করতে পারে:
গ্রিডগুলি যখন গ্রিড স্কোয়ারের মধ্যে বিশাল সংখ্যাগরিষ্ঠ অবজেক্টগুলি ফিট করে তখন সর্বোত্তমভাবে কাজ করে এবং বিতরণ মোটামুটি একজাতীয় হয়। বিপরীতে, চতুষ্পদ কাজ যখন বস্তুগুলির পরিবর্তনশীল মাপ থাকে বা ছোট অঞ্চলে ক্লাস্টার থাকে।
সমস্যার আপনার অস্পষ্ট বর্ণনা দিয়ে আমি গ্রিড সমাধানের বিরুদ্ধেও ঝুঁকছি (যা ধরে নিচ্ছি যে ইউনিটগুলি ছোট এবং মোটামুটিভাবে বিতরণ করা হয়েছে)।