কোনও শত্রু এআই শুনতে পাবে এমন শব্দ কীভাবে যুক্ত করবেন?


10

প্রদত্ত:

  • একটি 2 ডি টপ ডাউন গেম
  • টাইলস কেবল একটি 2 ডি অ্যারেতে সঞ্চয় করা হয়
  • প্রতিটি টাইলের একটি সম্পত্তি রয়েছে - স্যাঁতসেঁতে (যাতে ইট -50 ডিবি হতে পারে, বায়ু হতে পারে -1)

এটি থেকে আমি এটি যুক্ত করতে চাই যাতে x1, y1 পয়েন্টে একটি শব্দ উত্পন্ন হয় এবং এটি "ফুটে বেরিয়ে যায়"। নীচের চিত্রটি আরও ভাল রূপরেখা দেয়। স্পষ্টতই শেষ লক্ষ্যটি হল এআই শত্রু শব্দটি "শুনতে" পারে - তবে কোনও প্রাচীর যদি এটি ব্লক করে থাকে তবে শব্দটি এতদূর ভ্রমণ করে না।

এখানে চিত্র বর্ণনা লিখুন

লাল হল দেয়াল, যা 50 ডিবি এর স্যাঁতসেঁতে রয়েছে।

আমি মনে করি তৃতীয় গেমের টিকটিতে আমি আমার গণিতকে বিভ্রান্ত করছি।

এটি বাস্তবায়নের সর্বোত্তম উপায় কী হবে?


1
আপনি কি শব্দটিকে কিছুটা প্রতিফলিত / পুনর্বিবেচিত সম্পর্কে যত্নশীল? এটি হ'ল, যদি সাউন্ডপ্রুফ প্রাচীরের কোনও অংশটি শব্দ উত্স এবং এআই এজেন্টের মধ্যে সরাসরি থাকে তবে প্রাচীরটি অবাধে ঘুরে দেখা যায়, তবে এখনও এআই এজেন্টের শব্দটি শুনতে পাওয়া উচিত? যদি উত্তরটি না হয় তবে প্রতি শব্দ প্রতি একবার কেবলমাত্র ঘরটি আপডেট করুন, সুতরাং প্রতিটি শব্দ উত্সে স্যাঁতসেঁতে কেবল একবার প্রয়োগ করা হয়। আপনার যদি কেবল কয়েকটি এআই এজেন্ট থাকে তবে উত্স থেকে এজেন্টের জন্য কেবল একটি লাইন সন্ধান করুন।
শান মিডলডিচ

লক্ষ্যটি হ'ল দেয়ালগুলির চারপাশে আপনার শব্দগুলি অনুসরণ করে অনেক 'বোকা' এজেন্ট থাকে এবং কী না not
ক্রিস

উত্তর:


7

এটি একটি যুক্তিসঙ্গত ধারণা মত মনে হচ্ছে, যদিও মনে রাখবেন, এটি একটি গেমপ্লে বৈশিষ্ট্য, গেমপ্লে জন্য যা প্রয়োজন তার চেয়ে বেশি জটিল করবেন না।

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

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

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

যখনই আপনি এই প্রক্রিয়া চলাকালীন শত্রুর সাথে একটি টাইল পৌঁছান আপনি জানেন যে শত্রু শোনার পরিমাণ কি।


1
তাত্ক্ষণিক শব্দ ভ্রমণের জন্য +1। আপনি যদি কোনও পদার্থবিজ্ঞানের সিমুলেশন না তৈরি করেন যা stuff জিনিসগুলির বিষয়ে চিন্তা করে না, KISS।
হ্যাকওয়ার্থ

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

@ ক্রিস হ্যাঁ, ডিজকস্ট্রার ওজনযুক্ত নোডগুলির সাথেও কাজ করে যা দেয়ালগুলি মডেল করার ভাল উপায় হবে (উদাহরণস্বরূপ: ওজন কমিয়ে আনা ইত্যাদি)
বামমজ্যাক

9

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


আমি এই উত্তরের সাথে একমত
বোবোবোবো

শব্দটি সংরক্ষণ করার জন্য সেই ডেটা স্ট্রাকচারটি এইভাবে আরও সহজ হবে।
ক্রিস

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

1
ক্রিস, কেবলমাত্র রেইস্ট ধারণাটি নিন এবং এটিতে কিছুটা প্রসারিত করুন। প্রতিবার রশ্মি কোনও বস্তুকে ছেদ করে, এটি শব্দের পরিমাণকে কিছু পরিমাণ হ্রাস করে। এআই এ পৌঁছানোর আগে যদি ভলিউমটি শূন্যে কমে যায় তবে এটি শোনা যায় না। এটি যদি এআই এ পৌঁছে যায় তবে আপনার হাতে একটি "ভলিউম" মান রয়েছে। আপনি দূরত্বে সাউন্ড ড্রপঅফ প্রয়োগ করতে এই ধরণের "ভলিউম হ্রাস সহ রশ্মি ট্রেস" ব্যবহার করতে পারেন।
টিম হল্ট

@ টিম হল্ট - ভাল কথা, আমি এই লাইনগুলি নিয়ে ভাবছিলাম না
ক্রিস

0

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

টাইলগুলির মধ্য দিয়ে রাই কাস্টিং এটি করার এক উপায় (এবং সম্ভবত সবচেয়ে কার্যকর উপায়)। ইমিটার এবং রিসিভারের মধ্যে কেবল একটি লাইন আঁকুন, এবং প্রতিটি কক্ষের ঘন মানটি বিস্তৃত করুন। সংখ্যাটি যদি ইতিবাচক হয় তবে আপনি শব্দটি বাজান।

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

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


1
সাউন্ড হয় একটি তরঙ্গ তরল মাধ্যমে প্রেরিত। এটি কোনও খেলায় সেভাবে অনুকরণ করা উপযুক্ত নাও হতে পারে তবে এটি অবশ্যই "শব্দটির কাজ করার উপায় নয়"।
কেভিন রেড

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