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