🧱Bedrock Academy

AI Goals — Attack, Follow, Trade

behavior.* component দিয়ে মবের বুদ্ধি — কাকে অনুসরণ করবে, কাকে আক্রমণ, priority কীভাবে কাজ করে।

⏱ ~18 মিনিট

Module 4-এ Guard Dog-এ কয়েকটা behavior.* ব্যবহার করেছিলে। এই লেসনে AI Goal সিস্টেমটা পুরো বুঝবে — কীভাবে একটা মব একসাথে অনেক কাজের মধ্যে বেছে নেয় কোনটা করবে।

AI Goal কী?

প্রতিটা minecraft:behavior.<কিছু> হলো একটা goal — একটা নির্দিষ্ট কাজ করার ইচ্ছা (হাঁটা, আক্রমণ, পালানো)। একটা মবে অনেক goal থাকতে পারে, কিন্তু এক সময়ে সাধারণত একটাই চলে।

priority — কে আগে?

প্রতিটা goal-এর একটা priority সংখ্যা থাকে। ছোট সংখ্যা = বেশি গুরুত্বপূর্ণ। গেম প্রতি মুহূর্তে priority 0 থেকে শুরু করে দেখে কোন goal-টা এখন চালানো সম্ভব — প্রথম যেটা পারে, সেটাই চালায়।

behavior_pack/entities/goblin.json (components অংশ)
1"minecraft:behavior.float": { "priority": 0 },
2"minecraft:behavior.melee_attack": { "priority": 2 },
3"minecraft:behavior.nearest_attackable_target": {
4 "priority": 3,
5 "entity_types": [
6 {
7 "filters": {
8 "test": "is_family", "subject": "other", "value": "player"
9 },
10 "max_dist": 16
11 }
12 ]
13},
14"minecraft:behavior.random_stroll": { "priority": 6 },
15"minecraft:behavior.look_at_player": { "priority": 7 },
16"minecraft:behavior.random_look_around": { "priority": 8 }
  • L1float priority 0 — সবার আগে: পানিতে পড়লে ডুববে না, ভেসে থাকবে।
  • L2melee_attack: টার্গেট থাকলে কাছে গিয়ে আঘাত করে।
  • L3nearest_attackable_target: কাকে শত্রু ধরবে তা ঠিক করে (এটা না থাকলে attack-এর টার্গেটই থাকবে না)।
  • L9is_family 'player' → প্লেয়ারকে টার্গেট করবে (hostile মব)।
  • L11max_dist: কত দূর থেকে শত্রু খেয়াল করবে।
  • L15random_stroll priority 6 — কিছু না থাকলে এদিক-ওদিক হাঁটবে।

কিছু কাজের behavior goal

  • behavior.melee_attack — কাছে গিয়ে আঘাত।
  • behavior.ranged_attack — দূর থেকে তীর/projectile ছোড়া।
  • behavior.nearest_attackable_target — শত্রু নির্বাচন।
  • behavior.follow_owner / behavior.follow_parent — অনুসরণ।
  • behavior.panic — আঘাত পেলে ভয়ে পালানো।
  • behavior.tempt — নির্দিষ্ট আইটেম দেখলে কাছে আসা (যেমন গাজরে শূকর)।
  • behavior.trade_with_player — Villager-এর মতো লেনদেন।
  • behavior.random_stroll, behavior.look_at_player — সাধারণ idle আচরণ।