יריבי המשחק הנייד שלך: האויב רואה שחקנים דרך קירות, מגיב תוך 0.02 שניות — שחקנים עוזבים אחרי יום. נשמע מוכר? זו טעות אופיינית: היעדר מערכת תפיסה ומכונת מצבים נאיבית. הצוות שלנו עם ניסיון של 5+ שנים בפיתוח משחקים ניידים פותר זאת תוך 2–4 שבועות. אנו משלבים Behaviour Trees, חיישנים הוגנים פיזית, ו-Dynamic Difficulty Adjustment (DDA). פיתוח יריבי AI הוא אחת מהליבות המרכזיות שלנו. התוצאה: אויב שמרגיש חי אך לא בוגד. ב-5 שנים בשוק, יישמנו AI ל-15+ משחקים ניידים, והפחתנו את נטישת השחקנים ב-20% בממוצע.
למה Behaviour Trees לקרב מורכב?
Behaviour Trees הם מבנה היררכי של צמתי Selector, Sequence, Condition ו-Action. הם קלים פי 3–5 להרחבה מאשר FSM: במקום גרף מצבים סבוך, עץ ברור. עם 10+ התנהגויות, BT מאיץ את הדיבאג פי 2–3. FSM עובד עבור 3–4 מצבים (Patrol→Chase→Attack), אך הגרף מתפוצץ ככל שהמורכבות גדלה. BT הוא הבחירה לקרב מורכב.
// Unity: упрощённый Sequence node
public class SequenceNode : BehaviourNode
{
private List<BehaviourNode> children;
private int currentIndex = 0;
public override NodeStatus Tick(AIContext context)
{
while (currentIndex < children.Count)
{
var status = children[currentIndex].Tick(context);
if (status == NodeStatus.Running)
return NodeStatus.Running;
if (status == NodeStatus.Failure)
{
currentIndex = 0;
return NodeStatus.Failure;
}
currentIndex++;
}
currentIndex = 0;
return NodeStatus.Success;
}
}אנו משתמשים במשימות מקבילות לפעולות בו-זמנית (ירי + תנועה) ובסלקטורים בעדיפות למצבים דחופים (התחמקות מרימון). כל Tick מעדכן את ה-Blackboard — מאגר נתונים משותף בין הצמתים. זה מאפשר ניהול מצבים גמיש ללא משתנים גלובליים.
איך ה-AI רואה את השחקן: מערכת תפיסה
השאלה המרכזית היא לא "מה האויב עושה," אלא "מה הוא יודע על העולם." ללא מערכת תפיסה נכונה, עץ BT עובד עם טלפתיה: האויב יודע את מיקום השחקן דרך קירות ומגיב מיידית.
שדה ראייה — חרוט ראייה עם זווית ומרחק:
bool CanSeePlayer(Transform enemy, Transform player, float viewAngle, float viewDistance)
{
Vector3 dirToPlayer = (player.position - enemy.position).normalized;
if (Vector3.Angle(enemy.forward, dirToPlayer) > viewAngle / 2f)
return false;
float dist = Vector3.Distance(enemy.position, player.position);
if (dist > viewDistance)
return false;
return !Physics.Raycast(enemy.position, dirToPlayer, dist, LayerMask.GetMask("Obstacles"));
}שמיעה — אירועי קול דרך תור: צעדים, יריות, חפצים נופלים. לכל אירוע יש רדיוס והנחתה. זיכרון — אנו זוכרים את המיקום האחרון הידוע וסיירים בו אם מאבדים את המטרה.
מה זה DDA ואיך הוא מתאים את הקושי?
קושי קבוע הוא רע. Dynamic Difficulty Adjustment מתאים התנהגות לפי ביצועי השחקן. הפרמטרים נטענים מקובץ config — מעצבים יכולים לשנות אותם ללא קומפילציה מחדש.
| פרמטר | קל | בינוני | קשה |
|---|---|---|---|
| תגובה לשחקן | 1.2 שניות | 0.6 שניות | 0.2 שניות |
| זווית ראייה | 60° | 90° | 120° |
| דיוק ירי | 40% | 70% | 90% |
| זמן סיור | 8 שניות | 5 שניות | 3 שניות |
DDA מזיז פרמטרים אוטומטית לפי שיעור הניצחונות של השחקן ב-N הסשנים האחרונים. זה חוסך עד 30% מזמן האיזון הידני ושומר על השחקן בזרימה. ויקיפדיה: איזון קושי דינמי במשחקים
איך להבטיח ביצועים במכשירים חלשים?
Ticks של AI לא צריכים לקרות בכל פריים. עבור 20 אויבים בסצנה:
| שיטת אופטימיזציה | השפעה |
|---|---|
| BT Tick כל 100–200ms | הפחתת CPU ב-40% |
| Raycast דרך LOD (אויבים רחוקים בתדירות נמוכה יותר) | חיסכון של 50% בעלויות פיזיקה |
| חיפוש נתיב רק כשהמטרה משתנה | 60 FPS חלקים במכשירים בני 5 שנים |
Unity NavMesh עובד היטב במובייל, אך חישוב מחדש של נתיבים לכל הסוכנים בפריים אחד גורם לקפיצה. אנו מפזרים חישובים מחדש דרך CoroutineManager או Job System. אנו מבטיחים 60 FPS יציבים במכשירים בני 5 שנים.
תהליך פיתוח יריב AI
- אנליזה — לימוד מכניקת המשחק, מסמך עיצוב, תרחישי התנהגות.
- עיצוב — בחירת ארכיטקטורה (FSM/BT), עיצוב מערכת תפיסה, זיכרון.
- יישום — כתיבת קוד, אינטגרציה עם ניווט (NavMesh), כוונון פרמטרים.
- בדיקות — פלייט�טינג: מדידת שיעור מוות, זמן-עד-הרג, שיעור ניצחונות ברמה. איטרציה.
- פריסה — מסירת קוד מקור עם הערות, דיאגרמות BT, קובצי config. הדרכת הצוות.
כל שלב מתועד. לפי בקשה — אינטגרציה ל-CI/CD שלך.
מה כלול בפיתוח יריב AI
במסגרת הפרויקט, אתה מקבל:
- קוד מקור של מערכת ה-AI ב-Unity C# או Godot GDScript עם הערות
- תיעוד על ארכיטקטורת BT ומערכת התפיסה (דיאגרמות, config)
- אינטגרציה עם הניווט שלך (NavMesh) והאנימציות
- כוונון פרמטרי DDA לעיצוב המשחק שלך
- קובצי config ניתנים לטעינה (JSON) לאיטרציה מהירה של מעצבים
- הדרכת צוות (1-2 שעות) על שימוש והרחבת ה-AI
- תמיכה במהלך בדיקות ולאחר השחרור
הערכות זמנים
- יריב FSM בסיסי עם סיור ומרדף — 3–5 ימים.
- מערכת מלאה עם BT, תפיסה, DDA וסוגי אויבים מרובים — 3–6 שבועות.
העלות המדויקת מחושבת באופן אישי לאחר ניתוח המשחק שלך.
צור קשר כדי לקבל ייעוץ על ארכיטקטורת AI לפרויקט שלך. נעזור לך לבחור את הסט האופטימלי (Unity, Godot, Unreal) ולהימנע ממלכודות נפוצות — AI בוגד וירידות ביצועים.







