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