আমার বর্তমান প্রকল্পের জন্য আমি একটি উপাদান / সত্তা-ভিত্তিক সিস্টেমটি বাস্তবায়িত করেছি , মূলত এই পরিবর্তে অপরিজ্ঞাত ক্ষেত্রে রয়েছে বেশিরভাগ সেরা অনুশীলনের অনুসরণ করে ।
সুতরাং আমি (সামান্য প্রসারিত) সত্তা পেয়েছি , যা মূলত একটি int
আইডি, একটি মানব-পঠনযোগ্য নাম, std::map
উপাদানগুলির একটি এবং একটি long
"প্রকারের সূচক" যা কোন উপাদানগুলি উপস্থিত রয়েছে তা দেখানোর জন্য ব্যবহৃত হয় ( enum
সমস্ত উপাদানগুলির জন্য আমার দুটিতে শক্তি রয়েছে) প্রকার এবং যখনই সত্তায় কোনও উপাদান যুক্ত হয়, আমি স্বয়ংক্রিয়ভাবে বিটওয়াইজ অপারেশনগুলির মাধ্যমে দীর্ঘ পরিবর্তন করে, এই উত্তরটি তুলনা করি )।
তারপরে উপাদানগুলি রয়েছে , এটি আরও সহজ: int
আইডি, enum
উপাদান উপাদান হিসাবে প্যারেন্ট সত্তা পয়েন্টার এবং std::map
এই উপাদানটি ধারণ করে এমন সমস্ত বৈশিষ্ট্যের একটি ।
শেষ পর্যন্ত এমন কিছু সিস্টেম / ম্যানেজার যা আসল লজিক প্রসেসিং পরিচালনা করে। তারা প্রথমে এটি পরীক্ষা করে যে বর্তমানে প্রক্রিয়াজাত সত্তার কোনও মিল রয়েছে long
"টাইপ সূচক" = সেই সিস্টেমের জন্য প্রয়োজনীয় সমস্ত উপাদান উপস্থিত রয়েছে কিনা। এরপরে এটি প্রয়োজনে কিছু সম্পত্তি অ্যাক্সেস করে এবং হয় সরাসরি সংশ্লিষ্ট উপাদানটিতে কিছু ফাংশন কল করে অথবা কিছু বার্তা প্রেরণ করে (কোনও বার্তা প্রেরণের মাধ্যমে)।
নীচের লাইন: এখানে অবধি, একটি ডেটা-চালিত পদ্ধতির সাথে মিলিয়ে একটি বরং স্ট্যান্ডার্ড ইভেন্ট-চালিত উপাদান / সত্তা-ভিত্তিক সিস্টেম (তুলনা করুন, উপাদানগুলিতে হার্ড-কোডেড ডেটা ভেরিয়েবলগুলি নেই, পরিবর্তে একটি জেনেরিক মানচিত্র (কিছু) উপাদান হিসাবে রয়েছে / উপাদানগুলির প্রত্নতাত্ত্বিকগুলি পরে অতিরিক্ত ডেটা যুক্ত করার বিকল্পযুক্ত ফাইলগুলি থেকে পড়তে হবে, এটি প্রকৃত উপাদান কোডের অংশ নয়।
এখন আমি সেই প্রকল্পের মধ্যে আচরণ গাছগুলি ( আইগেমডেভ বিটিএসকে ভিত্তিক ) প্রবর্তন করতে চাই , তবে ইতিমধ্যে বিদ্যমান উপাদানগুলির সাথে সেগুলি কীভাবে সংযুক্ত করা উচিত বা কীভাবে সাধারণভাবে সেই নকশাকে সংহত করতে হবে তা আমি নিশ্চিত নই।
বিভিন্ন সম্পর্কিত ধারণা / পয়েন্ট / প্রশ্ন মাথায় আসে:
আমার বিটিগুলি ফাইলগুলি (আবার) থেকে পড়বে। আমি বর্তমানে
BT Action
সেই বৃক্ষের মধ্যে একটি এবং আমার অ্যাপ্লিকেশনটিতে প্রকৃত কোডিংয়ের মধ্যে কীভাবে সেরা সংযোগ স্থাপন করব তা দেখার জন্য আমার এখন খুব কষ্ট হচ্ছে। বিটি ফাইলগুলিতে ব্যবহৃত ক্রিয়াকলাপের নাম এবং আসল যুক্তি বাস্তবায়নের কোনও ফাংশন পয়েন্টারের মধ্যে কি আমার কোনও ধরণের মানচিত্র তৈরি করা উচিত? এটি সমাধান করার জন্য স্বাভাবিক পদ্ধতির কী?আমি ধরে নিয়েছি যে আমার সমস্ত বিভিন্ন
Entity
ধরণের জন্য আমাকে বিটি তৈরি করতে হবে (সুতরাং প্রতিটি গেম-লজিক / এআই-প্রাসঙ্গিক উপাদানগুলির সংমিশ্রণে আমার একাধিকবার দীর্ঘ "টাইপ সূচক" হিসাবে উল্লিখিত)) ফলস্বরূপ এটিBT Action
উপাদানগুলিতে প্রয়োগগুলি স্থাপন করা বোধগম্য নয় কারণ সম্ভবত প্রতি উপাদান ক্রিয়াকলাপে অনেকগুলি অন্তর্ভুক্ত থাকবে, তাই না?সুতরাং
BT Action
যুক্তিটি কি এক / একাধিক পৃথক সিস্টেমে বসে থাকতে পারে (কার পদ্ধতিতে মানচিত্রটি # 1 পয়েন্ট থেকে ধারণাটি)? সিস্টেমটি তখন আমারlong
"প্রকারের সূচক" প্রতি পরীক্ষা করবেEntity
যে বিটি বর্তমানে যাচাই করা হয়েছে এবং যেটি নির্দিষ্ট ক্রিয়া সম্পাদন করতে বলা হয়েছিল (সিস্টেমে = পদ্ধতি) তা করার অনুমতি দেওয়া হয়েছে কিনা (= প্রয়োজনীয় উপাদান রয়েছে)। তবে তা না হলে (কারণ উদাহরণস্বরূপ বিটি নির্মাতারা একটি নির্দিষ্ট পরিস্থিতিকে উপেক্ষা করেছেন, যেখানে কোনও প্রয়োজনীয় উপাদান রানটাইমের সময় সত্তার সাথে আর সংযুক্ত নাও হতে পারে), কিছুই ঘটবে না।
প্রশ্নাবলী:
- এই জাতীয় সংহতকরণের জন্য কি প্রমাণিত ধারণা রয়েছে?
- উপরের আমার 3 পয়েন্টগুলিতে আপনার কী গ্রহণ?
- অন্য যে কোনও বিষয় মাথায় আসে, সাধারণভাবে আমার উপাদান / সত্তা-ভিত্তিক নকশা সম্পর্কে?