কোডিং আসলে তেমন শক্ত নয় । হার্ড অংশটি কোডটি বোঝা যা বোঝায়, পঠনযোগ্য এবং বোধগম্য। সুতরাং আমি আরও উন্নত বিকাশকারী এবং কিছু শক্ত আর্কিটেকচার তৈরি করতে চাই।
তাই আমি একটি ভিডিও-গেমে এনপিসিগুলির জন্য একটি আর্কিটেকচার তৈরি করতে চাই । এটি স্টারক্রাফ্ট, এম্পায়ার্সের বয়স, কমান্ড ও কনকয়েরস ইত্যাদি ইত্যাদির মতো একটি রিয়েলটাইম কৌশল কৌশল game তাই আমার কাছে বিভিন্ন ধরণের এনপিসি থাকবে। একজন এনপিসি অনেক ক্ষমতা এগুলোর (পদ্ধতি) এর এক হতে পারে: Build()
, Farm()
এবং Attack()
।
উদাহরণ:
ওয়ার্কার করতে পারেন Build()
এবং Farm()
ওয়ারিয়র পারেন Attack()
সিটিজেন করতে পারেন Build()
, Farm()
এবং Attack()
জালিয়া করতে পারেন Farm()
এবংAttack()
আমি আশা করি এতদূর সবকিছু পরিষ্কার হয়ে গেছে।
সুতরাং এখন আমি আমার এনপিসি টাইপ এবং তাদের ক্ষমতা আছে। তবে আসুন প্রযুক্তিগত / প্রোগ্রাম্যাটিক দিকটিতে আসা যাক।
আমার বিভিন্ন ধরণের এনপিসিগুলির জন্য একটি ভাল প্রোগ্রাম্যাটিক আর্কিটেকচার কী হতে পারে?
ঠিক আছে আমি একটি বেস ক্লাস করতে পারে। আসলে আমি মনে করি এটি DRY নীতিটি ধরে রাখার একটি ভাল উপায় । সুতরাং WalkTo(x,y)
আমার বেস ক্লাসের মতো পদ্ধতিগুলি থাকতে পারে যেহেতু প্রতিটি এনপিসি স্থানান্তর করতে সক্ষম হবে। তবে এখন আসুন আসুন সমস্যার দিকে। আমি কোথায় আমার ক্ষমতা প্রয়োগ করব? (মনে রাখবেন: Build()
, Farm()
এবং Attack()
)
যেহেতু ক্ষমতাগুলি একই যুক্তি নিয়ে গঠিত হবে প্রতিটি এনপিসি (কর্মী, যোদ্ধা, ..) এর জন্য সেগুলি বাস্তবায়িত করা বিরক্তিকর / ডিআরওয়াই নীতিমালা হবে।
ঠিক আছে আমি বেস ক্লাসের মধ্যে ক্ষমতা প্রয়োগ করতে পারে । এই লজিক কিছু করতে হবে যাচাই একটি এনপিসি ক্ষমতা এক্স ব্যবহার করতে পারেন IsBuilder
, CanBuild
, .. আমি মনে করি এটা স্পষ্ট কি আমি প্রকাশ করতে চান।
তবে আমি এই ধারণাটি দিয়ে খুব ভাল অনুভব করি না। এটি খুব কার্যকারিতা সহ একটি ফুলে যাওয়া বেস শ্রেণীর মতো শোনাচ্ছে ।
আমি প্রোগ্রামিং ভাষা হিসাবে সি # ব্যবহার করি না। সুতরাং একাধিক উত্তরাধিকার এখানে বিকল্প নয়। মানে: অতিরিক্ত বেস ক্লাস থাকা যেমন Fisherman : Farmer, Attacker
কাজ করে না।