এআইকে একে অপরের কাছে বিভিন্ন পথে নিয়ে যাওয়া


16

আমার শীর্ষে ডাউন 2 ডি গেম রয়েছে যেখানে এআই মানচিত্রের প্রান্তে ছড়িয়ে পড়ে এবং কেন্দ্রের দিকে চলে যায়।

আমি প্যাথফাইন্ডিং করতে এ * এবং একটি নোড জাল ব্যবহার করছি।

এই মুহুর্তে, এআই মানচিত্রের প্রান্তে একটি বিন্দুতে ছড়িয়ে পড়ে এবং সকলেই একই পথ নেয় যা কেন্দ্রের সবচেয়ে সংক্ষিপ্ততম রুট।

এখন আমি তাদের আরও বিস্ময়কর এবং আকর্ষণীয় হতে চাই এবং একে অপরের দিকে বিভিন্ন পথ অবলম্বন করি।

এটি করার জন্য আমি তত্ক্ষণাত দুটি ধারণা সম্পর্কে ভাবতে পারি তবে জানতে চেয়েছিলাম যে লোকেরা প্রায়শই ব্যবহার করে এমন কোনও উপায় বা আরও ভাল উপায় আছে কিনা?

  1. যখন কোনও শত্রু স্প্যান করে এবং কেন্দ্রে একটি পথ তৈরি করে, অস্থায়ীভাবে সেই পথে সমস্ত নোডের ব্যয় বৃদ্ধি করে, তবে আস্তে আস্তে এগুলিকে সময়ের সাথে সাথে কমিয়ে দেয়। তারপরে শত্রু এআই পরবর্তী সময়ে আরও বিস্তৃত পথ নিতে বাধ্য হবে।

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

লোকেরা এআই-কে যে পথ ধরেছে তাতে তারতম্য ঘটায়, দৃ conv়প্রত্যয়ী এবং আশ্চর্যরকম দেখাতে সবচেয়ে ভাল কাজ খুঁজে পেয়েছে?

উত্তর:


7

আপনার দ্বিতীয় বিকল্পটি আরও মৌলিক পদ্ধতির দিকে ইঙ্গিত দেয়: শত্রুরা বিভিন্ন দিক থেকে আপনার প্লেয়ারের কাছে আসা নিশ্চিত করে। প্রশ্নটি হল, আপনার প্লেয়ারকে "আশেপাশে" পেতে তাদের কতদূর যেতে হবে? এই আদর্শ একটি মিশ্রণ হবে

  • গতিশীলভাবে পয়েন্টগুলি উত্পন্ন করে যা প্লেয়ারের অবস্থানকে ঘনিষ্ঠভাবে (যেমন অনুসরণ করুন);
  • কিছুই নয়মাইন্ড এই পার্শ্ববর্তী পয়েন্টগুলিতে, বৃহত্তর বা কম ডিগ্রি পর্যন্ত এলোমেলো পাথের ক্ষেত্রে কী পরামর্শ দিয়েছে।

এই উপায়ে, আপনি নিশ্চিত করতে পারেন যে প্লেয়ারে রূপান্তরিত হওয়ার সময় বাস্তবের পথের প্রকরণটি পেতে কেবল এআই এর দৈর্ঘ্য দীর্ঘ পথ পাবে না।

সম্মিলিতভাবে ছড়িয়ে পড়া আলগোরিদিমের অংশ হিসাবে আপনি যা স্পষ্টভাবে চান তা করে। তবে এটি বাস্তবায়ন অ-তুচ্ছ।


সহযোগিতামূলক বিস্তৃতি কিছু ওজন সহ কেবল একটি বন্যা পূর্ণ fill এটি প্রয়োগ করা তুচ্ছ, সম্ভবত এ * এর চেয়ে সহজ। এটির জন্য কেবল আপনার বিশ্বের আলাদা দৃষ্টিভঙ্গির প্রয়োজন - একটি তুচ্ছ-ধারণা ধারণা পরিবর্তন, সম্ভবত, তবে বাস্তবায়নের কোনও সমস্যা নেই।

এটি এখনও এআই সত্তাগুলি পরিচালনার ক্ষেত্রে একটি মানসম্মত দৃষ্টিভঙ্গির ফলস্বরূপ বাস্তবায়িত করার জন্য অ-তুচ্ছ নয় :)
ইঞ্জিনিয়ার

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

12

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


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

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

আসলে :) আমি সাধারণত এন্ট্রপির ভক্ত fan তবে চূড়ান্ত ফলাফল খুব কমই দুর্দান্ত।
কোয়েট

আমি আসলে বিশ্বাস করি নিক উইগগিলের উত্তর আমার চেয়ে অনেক ভাল। তবে কোনওভাবে এটি তার প্রাপ্য উত্সগুলি পাচ্ছে না।
কিছু মনে করবেন না

এটি হ'ল ... তবে আপনার প্রথম এবং সরল ... আমরা এটিকে ভোট দেওয়ার চেষ্টা করতে পারি: পি
কোয়েট

3

আমি মন্তব্যগুলিতে বর্ণিত সীমাবদ্ধতার পরিপ্রেক্ষিতে নেমমাইন্ডের উত্তরটি পছন্দ করি যা আমি চেষ্টা করব:

  1. কেন্দ্রে একক ইউনিটের জন্য অ্যালগরিদম, ভ্রমণকৃত মোট দূরত্ব রেকর্ড করুন।
  2. পরবর্তী প্রতিটি ইউনিটের জন্য এটিকে এমন একটি দূরত্ব বরাদ্দ করুন যা এর থেকে এলোমেলো এবং সামান্য পরিমাণ।
  3. প্রতিটি ইউনিটের জন্য এ * করার সময় আপনি কতটা কাছাকাছি এবং কতটা ভ্রমণ করতে চান 'তার উপর ভিত্তি করে অতিরিক্ত ওজন যুক্ত করুন। এটি সম্ভবত কিছু হতে পারে (distanceToGoal) + Max(0, desiredDistance - distanceTravelled))

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

আপনি প্রতিটি ইউনিটের জন্য এটি আপনার শুরুর হিউরেস্টিকগুলিতে কেবল যুক্ত করতে পারেন, তবে এলোমেলো পরিসরটি সম্ভবত বেশ খানিকটা বড় হতে হবে।


2

নিক উইগগিলের নির্দেশ অনুসারে উদ্দেশ্যটির চারপাশে একটি বৃত্ত পাওয়া সহজ উপায় হবে।

  • এলোমেলোভাবে একটি বৃত্ত বিন্দু হিসাবে এই বৃত্তের কাছাকাছি একটি পয়েন্ট বরাদ্দ করুন।
  • প্রাথমিক পথ থেকে বৃত্তের সমস্ত পাথগুলি অপসারণ করুন (বা নাটকীয়ভাবে এই পয়েন্টগুলির মান বৃদ্ধি করুন)
  • তারপরে সেই দিক থেকে উদ্দেশ্যটির পথে পৌঁছান get

গুরুত্বপূর্ণ অংশটি হ'ল মূল পয়েন্টপয়েন্টের জন্য বৃত্তের সমস্ত পাথগুলি অপসারণ করা আপনি সম্ভবত শত্রুদের প্রাথমিক পথের দিকে যাওয়ার জন্য বৃত্তটি অতিক্রম করার সাথে শেষ অবধি শেষ করতে পারেন।

এর থেকে আপনি একাধিক মানের সাথে খেলে যে কোনও রূপ পেতে পারেন প্রাথমিকের কাছাকাছি বৃত্তে গৌণ উপায়গুলি যোগ করুন ইত্যাদি etc.


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

ধন্যবাদ কোয়েট, হ্যাঁ আমি সম্ভবত নিক সমাধানের সাথে যাচ্ছি এবং ড্যাম্প এস 8 এন এর পরামর্শ অনুসারে ওয়েপপয়েন্ট হিসাবে আগ্রহের কিছু মূল অবস্থানগুলি। এআই "বৃত্তটি অতিক্রম করা" এর সমস্যা এড়াতে আমি কেবলমাত্র বৃত্তের নোডগুলির
ব্যয়কে খুব বাড়িয়ে তুলছি

2

আপনার সমস্যাটি এখানে মূলত: A * একটি লক্ষ্যের দ্রুততম রুট সন্ধানের জন্য একটি অ্যালগরিদম। যদি এটি 'ভাল' পথের জন্য আপনার প্রাথমিক মানদণ্ড হয়, তবে আপনার সমস্ত অভিনেতারা একই সিদ্ধান্ত নেন তা অবাক হওয়ার মতো নয়।

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

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

আমি সম্ভবত এটি দেখার সহজ উপায় সুপারিশ করব। আপনি যখন পাথফাইন্ডিং করছেন, কেবলমাত্র এতদূর আমি খুঁজে পেয়েছি এমন একক সেরা-পথ ধরে রাখবেন না। পরিবর্তে, সেরা 5 বা 10 টি পথের একটি সেট সংগ্রহ করুন। সুস্পষ্ট আউটলিয়ারদের প্রত্যাখ্যান করার জন্য একটি প্রান্তিক ব্যবহার করুন। উদাহরণস্বরূপ, যদি সর্বোত্তম পথটি 20u টার্গেটে পৌঁছায়, পরবর্তী সেরা 21u এবং তার পরেরটি 50u কে অনুসরণ করবে। সেরা পাথের চেয়ে 20% বড় একটি প্রান্তিক সেট করুন এবং তাই 50u পথটি ফেলে দিন কারণ এটি নির্বোধের মতো দীর্ঘ। এখন আপনার কাছে বেছে নিতে বেশ কয়েকটি পাথ রয়েছে এবং সেই পথের সেট থেকে এলোমেলোভাবে নির্বাচন করে আপনার অভিনেতাগণ বিভিন্ন সিদ্ধান্ত নেবেন।

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


1

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

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