3 ডি ওয়ার্ল্ডের জন্য কেউ কীভাবে একটি নেভিগেশন গ্রিড তৈরি করতে পারে?


11

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

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

আমার পরবর্তী চিন্তাটি অবাস্তব ইঞ্জিন 3 যা করত তা করা ছিল।

https://udn.epicgames.com/Three/NavigationMeshReference.html

যা জাল জেনারেট করার জন্য রাইকাস্ট ব্যবহার করত। কীভাবে রাইকাস্টগুলি থামানো যায় তা আমি বুঝতে পারি না।

সুতরাং ... আমার পরবর্তী বিকল্পটি ছিল বক্স, সম্ভবত একটি বক্সের কাস্ট। ২ এর শক্তির আকারের সাথে একটি উপ-বিভাজনিত ভলিউম তৈরি করুন the বাক্সটিকে গ্রিডে সারিবদ্ধ করুন এবং একটি রশ্মি হিসাবে আয়তক্ষেত্রাকার প্রিজমগুলি নিচের দিকে অঙ্কুর করুন। যদি এটি জমিটির কোনও অংশে অবতরণ করে যা ভূমির অংশ এবং আয়তক্ষেত্রটি ছেদ করা হচ্ছে না, সেখানে একটি বর্গ রেখে দিন। এবং ভলিউমের সীমানা না পৌঁছানো অবধি নীচে চালিয়ে যান। প্রান্তগুলি সংযুক্ত করা দরকার কিনা তা পরীক্ষা করার জন্য, আমি মনে করি যে আমি দুটি জোড়ের মধ্যবর্তী slালটি হাঁটাযোগ্য opeালের মধ্যে রয়েছে কিনা তা পরীক্ষা করে দেখতে পারি, যদি এটি সত্য হয় তবে সেগুলি মার্জ করুন।

আমার প্রধান সমস্যাগুলি হ'ল ... এটি খুব অনুকূল বলে মনে হচ্ছে না। এটি না ভেবে, অনুমানের ভিত্তিতে প্রক্রিয়াটি বহু স্তরযুক্ত স্তরের জন্য O (N ^ 3)। যা বেশ বাজে পেতে পারে।

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

সুতরাং প্রশ্নগুলি ...

এই জটযুক্ত নবমেশ তৈরি করার কার্যকর উপায় কী হবে? এবং টাইলস তৈরি করার ভাল উপায় কী হবে?


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

@ নিলস আমি প্রাক-বিল্ডিংয়ের পরিকল্পনা করছি, তারপরে এটি গেমটিতে লোড করব।
মুনশাইনথেলিয়্যাচ্যাট

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

আপনার স্তরটি কত বড়? আমরা বড় গেমগুলিতে পুনঃনির্মাণ ব্যবহার করেছি এবং কোনও সমস্যা ছিল না - আপনার কেবলমাত্র টাই জাতীয় মানগুলি সুর করতে হবে
স্টিভেন

আমি মনে করি আপনি "গ্রিডড" বিটটি মিস করছেন। টাইলস যা পুনরায় ব্যবহার করে তা পুরোপুরি এক নয়। আমি কীভাবে এই জাতীয় কাজটি করার জন্য পুনঃস্থাপন করতে হবে তা জানার চেষ্টা করছি। তবে এটি বেশিরভাগ দুঃস্বপ্নই হয়ে গেছে।
মুনশাইনথিলোক্যাট

উত্তর:


1

একটি বেসিক 3 ডি ওয়ার্ল্ড একটি নেভিগেশনাল জাল দ্বারা প্রতিনিধিত্ব করা যেতে পারে যা বেশিরভাগ গেম ইঞ্জিনগুলিতে সুবিধামত নির্মিত যেতে পারে। অভিনেতা বহুভুজগুলির প্রান্তে ভ্রমণ করতে পারেন।

এটি একটি সহজ সমাধান হবে। পাথ সন্ধান এবং একটি নেমেশ তৈরির জন্য অনেক অ্যালগরিদম রয়েছে।

আমি কিছুক্ষণ আগে আমার পড়া কিছু ভাগ করে নিতে চাই।

Example01

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

Example02

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

প্রশ্নের হিসাবে, আমি আপনাকে নবমেশ জেনারেটিং অ্যালগরিদমের তালিকায় ক্রোমস্টারের উত্তরটি পরীক্ষা করে দেখতে সুপারিশ করব ।

এছাড়াও চেক আউট বাম 4 মৃত এআই সিস্টেম যা উদাহরণ একটি অংশ। আরও অনেক আকর্ষণীয় বিষয় .াকা

শুভকামনা


0

অনেকগুলি উপায় রয়েছে, কেন এটি কেবল প্লেয়ারের কাছে স্থানীয় করা নয়, একটি ছোট গ্রিড তৈরি করুন যা প্লেয়ারকে অনুসরণ করে এবং প্রতিটি চৌরাস্তার নীচে পরীক্ষা করে এটির স্থানান্তরযোগ্য কিনা, যেমন সেখানে কোনও তল রয়েছে এবং এটি দেখার জন্য একটি রশ্মি নিক্ষেপ করুন যে কোনও আসন্ন পাশের দেয়াল / বিল্ডিং ..


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

0

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

এমন একটি ডেটা স্ট্রাকচার (ওরফে: মডেল) তৈরি করুন যা আপনার গেমিং জগতকে উপস্থাপন করবে। তারপরে ডেটা স্ট্রাকচার মডেলের একটি "ভিউ" তৈরি করুন। আপনি যদি চেকার-বোর্ড গ্রিড থেকে ষড়ভুজ গ্রিডে বিশ্বকে পরিবর্তন করতে চান, তবে ডেটা স্ট্রাকচার (মডেল) একই থাকবে, তবে প্রদর্শনটি একটি ভিন্ন দর্শনকে "পেইন্ট" (রেন্ডার) করবে।


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

-2

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


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