আরটিএস গেমসে প্যাথফাইন্ডিং কীভাবে কাজ করে?


42

[স্ট্যাকওভারফ্লো থেকে ক্রসপোস্ট করা]

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

এগুলির মতো গেমগুলিতে এআই পাথ সন্ধানকারী কীভাবে কাজ করে? স্ট্যান্ডার্ড গ্রাফ-অনুসন্ধান পদ্ধতি (যেমন ডিএফএস, বিএফএস বা এ *) এ জাতীয় সেটআপে অসম্ভব বলে মনে হয়।


2
কেন এই * এই গ্রাফটিতে কাজ করবে না?
ব্যবহারকারী 712092

সম্পর্কিত ব্লগ: ai-blog.net/archives/000152.html
দশ

1
@ তবুও, লিঙ্কটি এখন ভাঙা।
মন্ট্রিল

উত্তর:


29

বেশিরভাগ ক্ষেত্রেই ব্যবহার সালে একটি * একটি ওভার গৌণ জাল pathfinding সমাধান বাণিজ্যিক RTSs ব্যবহার (সাধারণত একটি "navmesh" হিসেবে অভিহিত করা)। কীভাবে নবমেশ কাজ করে তার একটি বিশদ বিবরণ রয়েছে, কেন তারা ওয়েপয়েন্ট সিস্টেমগুলির চেয়ে আরও ভাল সমাধান এবং বাস্তবায়ন সংস্থাগুলির লিঙ্কগুলি এখানে রয়েছে

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


17

সুপ্রিম কমান্ডার ২ এ ব্যবহৃত ফ্লোফিল্ড অ্যালগরিদম পরীক্ষা করে দেখুন R


4
এটি সত্যিই দুর্দান্ত একটি ডেমো তবে এটি বাস্তবায়নের বিষয়ে আমাকে কিছুই বলছে না
মেটাগুরু

4
তারা একটি বাক্যে উল্লেখ করেছে - এটি ইউডাব্লু এর ভিড় প্রবাহ গবেষণা উপর ভিত্তি করে, যা আপনি grail.cs.washington.edu/projects/crowd- প্রবাহে খুঁজে পেতে পারেন ।

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

2
@ ক্রেজেন: আপনার সরল A * (বিশেষত ওয়েস্পাইনড) এর আগে এবং একে অপরের সাথে ঘাটতি সৃষ্টি করার আগে আপনার কেবল দুটি ইউনিট প্রয়োজন এবং এর চারপাশে কাজ করার জন্য আপনার একধরণের সিস্টেমের প্রয়োজন।

5
ভিডিওটির উপর ভিত্তি করে স্টারক্রাফ্ট 2 এর পাথফাইন্ডিং এর মতো দেখাচ্ছে। এসসি 2 কি ফ্লোফিল্ড ব্যবহার করে?
ক্রিস বুই

7

অনেক পুরানো গেম এ * ব্যবহার করে। মূল স্টারক্রাফ্ট এ * ব্যবহার করেছে; যার ফলে সংঘর্ষের মোকাবিলা করতে কিছু সমস্যা দেখা দিয়েছে। স্টারক্রাফ্ট 2 এর সংঘর্ষ খুব ভালভাবে পরিচালনা করে, বড় গ্রুপগুলির তরল নিয়ন্ত্রণ বজায় রাখতে একটি সাঁতার / ফ্লকিং আচরণ ব্যবহার করে। এই গেমদেব নিবন্ধটি কীভাবে এটি অর্জন করা হতে পারে তা আলোচনা করে।


2

আমি ইতিমধ্যে তার অন্যান্য উত্তরগুলির সাথে একমত হয়েছি, তবে ওউ / ওয়ারক্র্যাফট 3 কে আসল 2D ওয়ার্ল্ড হিসাবে ভাবার চেষ্টা করব। তারা টাইলবেসড থেকে পৃথক নয়, এটি কেবল টাইলস।

আপনি আরও ভাবতে পারেন যে কোনও জিপিএস কীভাবে সেরা পথ খুঁজে পায়? লিঙ্কযুক্ত মানচিত্রের মাধ্যমে প্যাথফাইন্ডিংয়ের জন্য প্রচুর পরিমাণে অ্যালগরিটিম রয়েছে।

আমি মনে করি প্রথম "ভূমিকম্পের বট" স্ক্রিপ্টগুলি আপনাকে সহায়তা করতে পারে কারণ সেগুলি "অজানা অঞ্চলগুলিতে" কাজ করার জন্য তৈরি করা হয়েছিল কারণ আমরা স্ক্র্যাচ থেকে আমাদের নিজস্ব স্তরগুলি ডিজাইন করতে পারি।

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

গেম এবং ল্যান্ডস্কেপ / দৃশ্যের ধরণের উপর নির্ভর করে বিভিন্ন প্রাক-স্ক্যান কৌশলগুলি দরকারীও হতে পারে। কিছু গেমের খুব কম বাধা থাকে এবং এগুলি "স্ট্রাইট লাইন" চলন + কিছু হতে পারে "কীভাবে আমি ঘুরতে পারি" অবজেক্টের জন্য।

আশা করি এটি কিছুটা উপলব্ধি করে এবং সম্ভবত আপনার সাথে কাজ করার জন্য কিছু ধারণা দিয়েছেন।


1

বেশিরভাগ গেম মানচিত্রে পাথ অনুসন্ধান করতে কোনও প্রকারের অনুসন্ধান অ্যালগরিদম বা এ * ব্যবহার করে। স্পষ্টত পারফরম্যান্সের কারণে কিছু দিক থেকে এআই টুইট করা হয়েছে।

আপনি স্টারক্রাফ্ট 2 এ এটি লক্ষ্য করবেন যেখানে জারগলিংস স্পষ্টতই ভালভাবে এগোচ্ছে না, জার্গলিংসের পক্ষে এটি করা সিপিইউ দুঃস্বপ্ন হবে। তারা কেবল এ থেকে বিতে যাওয়ার জন্য সর্বোত্তম চেষ্টা করে এবং সর্বোত্তম পথ সন্ধান করার চেষ্টাও করে না। এগুলি যথাসম্ভব কাছাকাছি আসবে তারপর চোকস বা র‌্যাম্পগুলিতে বোতল ঘাড়।


1

মানচিত্র একটি গ্রিড। গ্রিড একটি গ্রাফ। একটি * গ্রাফটিতে কাজ করে, এটি আলগোরিদম অনুসন্ধানকারী একটি গ্রাফ। একটি * গ্রাফের কয়েকটি নোড অনুসন্ধান করবে।

যেমনটি উল্লেখ করা হয়েছে যে তারা নেভিগেশন জাল ব্যবহার করতে পারে। তবে এ * (বা অনুরূপ কিছু) যাইহোক যাইহোক সেই জালের উপরে থাকবে, কারণ এই জালটির বহুভুজগুলি গ্রাফের কেবল নোড; এ * তারপরে একটি বহুভুজ থেকে অন্য বহুভুজ পর্যন্ত পাথ অনুসন্ধান করবে।

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

আপনিও চেষ্টা করতে পারেন:

  • এর মধ্যে কয়েকটি গেমের সোর্স কোড রয়েছে কিনা
  • এই গেমগুলির কিছু ক্লোনগুলির উত্স পাওয়া যায় কিনা
  • এসডিকে বা সম্পাদকরা কোনও কিছুর ইঙ্গিত দেয় না
  • এই গেমগুলি তৈরি করা সংস্থাগুলির নিয়োগকারীদের জিজ্ঞাসা করুন, তাদের মধ্যে কিছু অংশীদার হতে আগ্রহী হতে পারে

0

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

আমার ধারণা হিউরিস্টিক অ্যালগরিদমগুলি ভাল কারণ তারা সাধারণত যুক্তিসঙ্গত গণনার সময় দিয়ে বড় জায়গাগুলিতে একটি ভাল সমাধান সরবরাহ করে (যার ফলে আপনি যখন অনেক ইউনিট নিয়ে চলেছেন) matter

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


মিম্ম আমি অবাক হয়েছি আমি যা বলেছিলাম তাতে কী ভুল ছিল ... কোন মন্তব্য করা খুব কঠিন ছিল?
আকিরস

বিটিডাব্লু, আমি হাইলাইট করতে চাই যে এ * হিউরিস্টিক পদ্ধতির ব্যবহার করে। -২ এর জন্য ধন্যবাদ
আকিরস

আপনার উত্তরটির পরিমাণ, "এ * ডিচ করুন এবং এর জাতীয় সমস্যাগুলি তৈরি করুন এবং আপনার নিজের রোল করুন"। এটি একটি যুক্তিসঙ্গত উত্তরের শুরু হতে পারে তবে আপনি পরামর্শ ব্যতীত খুব অল্প তথ্য সরবরাহ করেন। এটি মনে করে যে ভোট কমিয়ে দেওয়ার কারণ আপনি এটি পরিষ্কার করে বলছেন না যে আপনার সমাধানটি কার্যকর করা কতটা কঠিন। আমি সন্দেহ করি না যে সীমাহীন সময় দেওয়া একটি সুপার জিনিয়াস কোনও প্রদত্ত আরটিএসের জন্য একটি প্যাথিং অ্যালগরিদমকে কোড / টিউন করতে পারে যা কোনও নভমেশের উপর * এর চেয়ে উচ্চতর হবে। তবে "প্রতিভা" এবং "সীমাহীন" এড়ানো খুব শক্ত are
deft_code

হ্যাঁ সঠিক. আমি ভেবেছিলাম যে লোকটি একটি জেনেরিক উত্তর চায়, যেহেতু সে কীভাবে তৈরি করতে পারে তা জিজ্ঞাসা করেনি, তবে তারা কীভাবে সাধারণভাবে কাজ করে। যাইহোক আমি যেমন বলেছিলাম তেমন বিশেষজ্ঞ নই: একটি সাধারণ আইএ অ্যাপ্লিকেশনটিতে বড় জায়গাগুলি অন্বেষণ সম্পর্কে আমি যে সমাধানগুলি জানি তার সম্পর্কে আমি কেবল কিছু তথ্য দিচ্ছিলাম। আপনার মন্তব্যের জন্য ধন্যবাদ.
আকিরস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.