আমি উপাদান ভিত্তিক সত্তা ডিজাইন প্রায় আমার মাথা পেতে চেষ্টা করছি।
আমার প্রথম পদক্ষেপটি ছিল কোনও উপাদান যুক্ত করা যায় এমন বিভিন্ন উপাদান তৈরি করা। প্রতিটি উপাদান উপাদানগুলির জন্য আমার কাছে একজন ম্যানেজার ছিল, যা প্রতিটি উপাদানগুলির আপডেট ফাংশনটি কল করে, কীবোর্ডের রাজ্য ইত্যাদির মতো জিনিসগুলিতে প্রেরণ করে।
পরের জিনিসটি আমি হ'ল বস্তুটি সরিয়েছিলাম এবং প্রতিটি আইডির সাথে প্রতিটি উপাদান রয়েছে। সুতরাং একটি আইডিকে একই আইডি থাকা উপাদানগুলি দ্বারা সংজ্ঞায়িত করা হয়।
এখন, আমি ভাবছি যে আমার সমস্ত উপাদানগুলির জন্য আমার কোনও ম্যানেজারের দরকার নেই, উদাহরণস্বরূপ আমার কাছে একটি রয়েছে SizeComponent
, যার সবেমাত্র একটি Size
সম্পত্তি রয়েছে)। ফলস্বরূপ SizeComponent
এর আপডেট আপডেট নেই এবং পরিচালকের আপডেট পদ্ধতিটি কিছুই করে না।
আমার প্রথম চিন্তাটি এমন একটি ObjectProperty
শ্রেণীর ছিল যা উপাদানগুলির উপাদান হিসাবে এটির পরিবর্তে উপাদানগুলি প্রশ্ন করতে পারে। সুতরাং একটি অবজেক্টের একটি সংখ্যা ObjectProperty
এবং থাকবে ObjectComponent
। উপাদানগুলির বৈশিষ্ট্যগুলির জন্য অবজেক্টকে কোয়েরি করে এমন আপডেট যুক্তি থাকতে পারে। পরিচালকটি উপাদানটির আপডেট পদ্ধতি কল করার ব্যবস্থা করবে।
এটি আমার কাছে ওভার ইঞ্জিনিয়ারিংয়ের মতো মনে হয়, তবে আমি মনে করি না যে আমি উপাদানগুলি থেকে মুক্তি পেতে পারি, কারণ পরিচালকদের জন্য কোন উপাদানটি চালানোর জন্য কোন উপাদানটির যুক্তি প্রয়োজন তা জানতে আমার একটি উপায় প্রয়োজন (অন্যথায় আমি কেবল উপাদানটি সরিয়ে ফেলব সম্পূর্ণরূপে এবং ম্যানেজারের মধ্যে তার আপডেট যুক্তি টিপুন)।
- এই (হচ্ছে না
ObjectProperty
,ObjectComponent
এবংComponentManager
ক্লাস) ওভার ইঞ্জিনিয়ারিং? - একটি ভাল বিকল্প কি হতে পারে?
RenderingComponent
এবং a ব্যবহার করে PhysicsComponent
। সম্পত্তিটি কোথায় রাখব এই সিদ্ধান্তের বিষয়ে আমি কী ভাবছি? আমি কি কেবল এটি আটকে রাখতে পারি, তারপরে অন্য কোয়েরিতে প্রয়োজনীয় সম্পত্তি আছে এমন উপাদানটির জন্য কোনও অবজেক্ট থাকা উচিত?
PhysicalStateInstance
একটি) পাশাপাশি (প্রতিটি বস্তুতে একটি) চেষ্টা করতে পারেন GravityPhysicsShared
; তবে আমি এটি আর্কিটেক্টস ইওফোরিয়ার রাজ্যে প্রবেশের কথা বলতে প্ররোচিত হচ্ছি, নিজেকে কোনও গর্তে আর্কিটেক্ট করবেন না (আমি আমার প্রথম উপাদান সিস্টেমের সাথে ঠিক কী করেছি)। চুমু খেতে হবে।
SizeComponent
করা ওভারকিল - আপনি ধরে নিতে পারেন যে বেশিরভাগ বস্তুর একটি আকার রয়েছে - এটি রেন্ডারিং, এআই এবং পদার্থবিজ্ঞানের মতো উপাদান যেখানে উপাদান মডেল ব্যবহৃত হয়; আকার সর্বদা একই আচরণ করবে - যাতে আপনি এই কোডটি ভাগ করতে পারেন।