פיתוח מערכת AI מקיפה לתעשיית המשחקים

מוצרי משחקים מאבדים שחקנים במקומות שבהם ההחלטות מתקבלות ידנית: אנו מפתחים מערכות AI למשחקים מקצה לקצה — מתיוג נתונים ועד מסירת מערכת מוכנה לצוות שלכם. אוטומציה של התאמת שחקנים, איזון ותמיכה בשחקנים מקצרת את זמן התגובה פי כמה ומסירה עומס ידני מהצוות.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

פיתוח AI למשחקים: היכן נשבר מסלול הייצור

במשחק עם תמיכה ארוכת טווח, רוב ההחלטות מתקבלות ידנית: תסריטאים כותבים שורות דיאלוג, מעצבי משחק מכוונים התנהגות יריבים באמצעות טבלאות, התמיכה מטפלת בפניות לפי תסריטים, ומנהלי מודרציה בודקים ידנית תלונות על צ'אט. כל עוד קהל השחקנים קטן, זה עובד.

ברגע שמספר הסשנים והאירועים גדל פי כמה, תור העדכונים נעשה ארוך מהחלון שבין עדכונים, וכל מכניקה חדשה מוסיפה חוקים שאיש כבר לא עוקב אחריהם במלואם.

גבול ההחלטות הידניות מתגלה בכמה מקומות בבת אחת. התאמת יריבים מפסיקה להחזיק עניין בדרגות גבוהות — החוקים נכתבו לרמה בינונית. תוכן שחקנים וצ'אט לא מספיקים להיבדק לפני שהשחקנים ראו את ההפרה. העולם החי מגיב לפעולות באופן אחיד: מאגר התגובות נגמר בשעה השלישית של המשחק.

אב טיפוס של שירות חכם מוכיח בדרך כלל איכות על מדגם מוכן מראש. במסלול הייצור ההתפלגות שונה: השחקנים מתנהגים אחרת מאשר בבדיקה, יוצא עונה חדשה — והמדדים יורדים. לצד זה עומדת שאלה שכמעט לא נסגרת בהתחלה: איך מחזירים מודל אחורה אם הוא התחיל לטעות, ומי יבחין בכך ראשון.

לכן הפרויקט חי לעתים קרובות כסקריפטים נפרדים ומחברות של אנליטיקאי: בהדגמה התועלת נראית, אבל הוא לא עומד בעומס, בשינוי נתונים או בהעברה לצוות. נבחן איך סוגרים זאת — ממסלול הערכה ומצב עבודה חלופי למודל ועד חלוקת אחריות בין חוקים ניתנים לעריכה לבין לוגיקה מאומנת.

כיצד משתנים מדדי המוצר לאחר הטמעת שירותים

מדדי שירותים חכמים איננו מודדים לפי «איכות המודל», אלא לפי מצב המוצר. קו בסיס נלקח לפני ההטמעה: כמה זמן נדרש להכנת אירוע עונתי, איזה חלק מהפניות נסגר בידי אנשים, וכמה תקריות מתרחשות בשעות שיא. בלי המדידות האלה «לפני», אי אפשר להוכיח לאחר מכן שום אפקט.

מהירות שחרור התוכן עולה בזכות יצירה ובדיקה מקדימה: חבילת אירועים שהצוות אסף 4–5 שבועות יוצאת תוך 8–10 ימים. בדיקות ידניות של חומרים וטקסטים יורדות ל-10–15% — את השאר מסננות חוקים אוטומטיים, ומקרים שנויים במחלוקת עוברים לבדיקה אנושית.

חלק ההחלטות האוטומטיות בפניות טיפוסיות (תלונות, ניתוח לוגים של משחקים, אותות על משחק לא הוגן) מגיע ל-70%.

שורה נפרדת היא סוגי כשל שנסלקו. נעלמים הידרדרות איזון אחרי פאץ', חסימות שווא ותורים בהתאמת שחקנים בשעות שיא. השבתה בערבי שיא עולה ביוקר מכול: שעה של אי-זמינות פירושה סשנים שלא שוחקו עד הסוף, רכישות שאבדו וזינוק בפניות לתמיכה, ולכן אנחנו מכוונים להתאוששות תוך דקות, לא תוך שעות.

את האינטגרציה מובילים דרך נקודות ההרחבה הרגילות של המנוע — חיבור ל-Unity לא דורש כתיבה מחדש של קוד המשחק. לכן המדדים נלקחים על מוצר חי בעבודה ממש, ולא על עמדת בדיקה.

פורמטים של עבודה: מסלול עצמאי, היברידי או שירות מוכן

שלושה פורמטים אינם רמות קושי, אלא נקודות הצבה שונות של המודל ואזורי אחריות שונים. הבחירה נקבעת לפי שלוש שאלות: היכן נמצאים נתוני השחקנים, עד כמה קשיחות הדרישות לזמן תגובה, ומי מעדכן את המודל כשהאיזון או המטא משתנים.

להלן חלופות שבאמת בוחרים ביניהן בהתחלה, עם המגבלות הכנות של כל אחת. את כל שלושת הפורמטים הפעלנו בפרודקשן של פרויקטי משחקים, כולל אינטגרציה ל-Unreal Engine.

פורמט מתי מתאים מגבלות
שירות ענפי מוכן התחלה מהירה: מודרציית צ'אט, התאמת יריבים לפי דירוג, אנליטיקה בסיסית המודל כללי, אינו מכיר את הישויות שלכם; תשלום לפי נפח בקשות; כיוון עדין לדומיין שלכם אינו זמין
מסלול עצמאי למשימה מכניקה לא שגרתית, נתונים רגישים, עבודה לא מקוונת או בצד השחקן הטמעה ארוכה יותר: נתונים, תיוג, נוהל עדכון מודלים, תורנויות
תוכנית היברידית הליבה שלכם, חלק מהמשימות באמצעות שירות מוכן: התנהגות דמויות שאינן שחקנים, יצירת תוכן, איזון קשה יותר לתצפית: נדרש רובד אחיד של טלמטריה וניהול גרסאות

הפורמט אינו גזר דין: התחלה על שירות מוכן סוגרת את ההשערות הראשונות, וכשמצטברת טלמטריה משלכם, הליבה עוברת למסלול עצמאי בלי לכתוב מחדש את הלוגיקה. אנחנו מקבעים מיד את חוזה הכניסה-יציאה של המודל, ולכן מעבר בין פורמטים הוא החלפת מתאם, לא פרויקט חדש.

שלבי הטמעה: מביקורת נתונים ועד העברת המסלול

סדר העבודה נקבע לפני ההתחלה: כל שלב מסתיים בארטיפקט שהלקוח יכול לבדוק. אחרת כיוונון עדין של המודל הופך לכוונון אינסופי, והקבלה הופכת לוויכוח על טעם.

  1. ביקורת נתונים. מפרקים טלמטריית משחק, לוגים של סשנים, הקלטות משחקים והיסטוריית מודרציה: נפח, תיוג, חוסרים, כפילויות, זכויות שימוש. בפלט — דוח התאמה ורשימה של מה שצריך לאסוף או לתייג.
  2. סכמת אינטגרציה. קובעים היכן נמצא המודל ואיך הוא נקרא ממסלול המשחק: באופן סינכרוני על אירוע או אסינכרוני דרך תור, מה נשמר במטמון, ואיך המערכת מדרדרת כשהשירות אינו זמין.
  3. קריטריוני קבלה. מסכמים לפני הפיתוח: מדדי איכות על מדגם נפרד, שיעור מותר של התראות שווא, זמן תגובה והתנהגות באירועים נדירים.
  4. הגדרה ואימון. בונים מסלול בסיסי, מכווננים על נתוני הלקוח, מנהלים גרסאות של מודלים ומערכי נתונים — התוצאה משוחזרת וניתנת לחזרה לגרסה קודמת.
  5. בדיקה בעומס. הרצה בפרופיל שיא: סשנים בו-זמניים, זינוקים בימי עדכון, סדרות ארוכות. רואים היכן המסלול נתקל בגבול ואיך הוא שורד כשל של צמתים.
  6. העברת המסלול לצוות. מוסרים קונפיגורציות, סכמת אינטגרציה, נהלי אימון מחדש, הרשאות וניטור; המהנדסים של הלקוח עצמם מריצים עדכונים בליווי שלנו.

מה הלקוח מקבל לידיו: הרכב האספקה

אספקה היא לא רק מסלול עובד, אלא גם ערכת ארטיפקטים שלפיה הצוות שלכם יוכל ללוות ולפתח את המערכת בלעדינו. הכול מתועד במאגר שלכם ומועבר עם בעלים לכל צומת, ולא נשאר בהתכתבות של מהנדסים בודדים.

  • סכמות אינטגרציה — איך מסלול המשחק מחליף נתונים עם שכבת AI: נקודות חיבור, זרמי אירועים, התנהגות כשאחד הצדדים אינו זמין, מגבלות עומס.
  • קונפיגורציות סביבות — ערכות פרמטרים מסוכמות לפיתוח, לבדיקות ולסביבת פרודקשן; ארטיפקט אחד נפרס בלי עריכות ידניות.
  • מדיניות גישה ותפקידים — מטריצת תפקידים של עובדים ושירותים, גבולות של חשבונות שירות, כללי רוטציה של מפתחות.
  • תיעוד המסלול — סכמה ארכיטקטונית, אזורי אחריות של רכיבים, רשימת תלויות חיצוניות, יומן מגבלות ידועות.
  • נהלי ליווי — תורנויות ואסקלציה, מה נחשב לתקרית, סדר חזרה לאחור של שינויים ועדכון מודלים בלי השבתה.
  • מדדים והתראות — אילו מדדי איכות ושהיה נאספים ובאילו ערכים מופעל אות.
  • מדריך תפעול — הפעלה מחדש, סקיילינג, השלמת נתונים, טיפול בכשלים טיפוסיים.

הקבלה מתבצעת לפי אותה רשימה: בודקים לא תרחיש הדגמה, אלא את יכולת השחזור של המסלול בידי הצוות שלכם. כל ארטיפקט מועבר עם אחראי ונקודת כניסה, ולכן השאלה «מי מתקן את זה בעוד חצי שנה» אינה נשארת פתוחה.

מקרה בוחן: מדדים לפני ואחרי הטמעה בשירות משחקים

השירות RealmForge Studios: צ'אט עם מאות אלפי הודעות ביום, חדרי קול ותלונות על התנהגות שחקנים. המודרציה הייתה ידנית — משמרת של שישה אנשים, טיפול בתלונה ארך 4–6 שעות, וזינוקים ליליים של רעילות נסגרו רק לקראת בוקר.

טעות במקרה שנוי במחלוקת עלתה ביוקר לשני הצדדים: שחקן רעיל נשאר במשחק, וחסימה שגויה הובילה משתמש משלם לערעור של כמה ימים.

מה שינינו

הרכבנו מסלול משלושה חלקים: מסווג רעילות של טקסט וקול, תיוג אוטומטי של תלונות נכנסות ותור עדיפויות לאדם. ספי הביטחון הופרדו לפי ערוצים: בצ'אט פתוח התגובה קשוחה יותר, בחדרי קול רכה יותר, ומקרים שנויים במחלוקת עוברים לבדיקה ידנית עם הקשר מלא של השיחה. לצד זה הצבנו מערך רגרסיה מתלונות היסטוריות — כל עדכון של המודל עובר דרכו לפני שחרור.

מדדים לפני ואחרי

טיפול בתלונה התקצר מ-4–6 שעות ל-8 דקות, 62% מהפניות נסגרות בלי מעורבות אדם, ושיעור החסימות השגויות ירד מ-19% ל-6%. זינוקי רעילות בלילה הפסיקו לחכות למשמרת הבוקר: אנשים מטפלים במקרים שנויים במחלוקת, לא בזרם.

מה עובר לפרויקטים אחרים

תור עדיפויות, סכמת תיוג ומשוב מסוכנים שלפיו המודל מתאמן מחדש על מקרים שנויים במחלוקת אחת לשבועיים. העברה לשירות חדש היא החלפה של מילונים, תיוג וספים, בין שבועיים לארבעה שבועות בלי לבנות מחדש את הליבה.

במה מסלול עצמאי שונה משירותים ענפיים מוכנים

הבחירה בין שירות מוכן למסלול עצמאי היא בחירה בין מהירות השקה לשליטה. שירות מוכן נותן גישה למודל זר דרך API: התנהגות סוכנים מכווננת בגבולות פרמטרים נתונים, אבל נתוני האימון ולוח שחרור הגרסאות נשארים אצל הספק. תרחיש טיפוסי נסגר כך מהר יותר, אך בסטייה ממנו אתם מחכים לעדכון של מישהו אחר.

מסלול עצמאי הוא מודלים, מערכי נתונים וסקריפטים לאימון בבעלותכם. אתם קובעים את תדירות האימון מחדש, ניהול גרסאות של משקלים וחזרה לגרסה קודמת כשהאיכות של תשובות הסוכנים ירדה.

המחיר לכך הוא עומס תפעולי: ניטור תשובות, טיפול בתלונות שחקנים, אימון מחדש קבוע על לוגים טריים ובדיקת שינויים על קבוצת בדיקה.

התלות בקבלן מוסרת בשלב ההעברה. קבעו למי שייכים המשקלים ומערכי הנתונים, האם בניית המודל מהמאגר משוחזרת, והאם מתוארים סכמת התיוג ומדדי האיכות: בלי זה החלפת ספק משמעה כתיבה מחדש של המערכת.

אפשרות מתי מתאים מגבלות
שירות ענפי מוכן משימות טיפוסיות, אין צוות משלכם למודלים המודל והנתונים אצל הספק, גמישות השינויים מוגבלת למחזור שלו
מסלול עצמאי התנהגות סוכני משחק ויצירת תוכן — חלק מליבת המשחק נדרשים ניטור איכות ואימון מחדש מתמיד
היברידי: ליבה שלכם, פריפריה בשירות מודרציית צ'אט ונכסים עזר בנפרד מהלוגיקה של המשחק שני מסלולי אינטגרציה וסכמת מדדים אחידה

בפועל לרוב מנצח ההיברידי: שליטה במודלים ובנתונים נשמרת במקום שבו היא משפיעה על חוויית המשחק, ומשימות שגרתיות נמסרות לשירות.

התלבטויות לפני התחלה: נתונים, עומס, אינטגרציות

ההתנגדויות לפני ההתחלה הן כמעט תמיד טכניות, וזה דיון נכון: נתוני שחקנים הם אזור רגיש, העומס במשחקים אינו אחיד, ואי אפשר לעצור שירותים פעילים. להלן תשובות למה ששואלים לרוב לפני אישור התוכנית.

איך מוגנים נתוני השחקנים?

מבצעים אנונימיזציה בכניסה: למודל עוברים מזהי סשן ומאפייני התנהגות, ולא נתוני תשלום ויצירת קשר. הגישה לתצוגות מופרדת לפי תפקידים ונרשמת ביומן, תקופת האחסון נקבעת במדיניות — עם ביטול הסכמה הרשומה יוצאת ממערך האימון.

מה יקרה בערבי שיא ובפתיחת עונה?

שכבת ההסקה נסקלת לפי העומס בפועל, תור הבקשות מוגבל. בעומס יתר המערכת מחזירה תשובה לפי חוקים פשוטים במקום חיזוי, ולא קורסת: סף ההידרדרות מסוכם מראש לפי לוח אירועי המשחק.

איך המערכת תשתלב בשירותים הקיימים?

דרך ממשקי החלפה וזרם אירועים — אין צורך לכתוב מחדש את צד השרת, התשלומים והאנטי-צ'יט. את ההרצה הראשונה עושים בצל: המודל מחשב על תעבורה אמיתית, אבל אינו משפיע על השחקן עד שהפערים מול הלוגיקה הקיימת יהפכו לצפויים.

מה עם אימון מחדש של מודלים?

מסלול האימון מופעל לפי לוח זמנים ולפי אות על ירידת איכות. הגרסה החדשה עוברת את אותן בדיקות, מופעלת בהדרגה על חלק מהתעבורה, והקודמת נשארת זמינה לחזרה מיידית.

האם נוכל לתמוך במערכת עם הצוות שלנו?

כן, זו בדיוק מטרת העבודה. מוסרים קוד, קונפיגורציות, סכמות ונהלי אימון, ועוברים עם המהנדסים שלכם על כל צומת — החוקים משתנים והמודל מתאמן מחדש בלעדינו.

נדון במשימה ונחזור עם הערכה ותוכנית עבודה

כדי לדון במשימה באופן ענייני ואז לחזור עם הערכה ותוכנית עבודה, נדרש סט מינימלי של נתוני פתיחה. להלן מה שצריך כדי להתחיל: זה בדרך כלל מספיק כדי לאמוד ארכיטקטורה, סדר הפעלת עבודות ולסכם את היקף האיטרציה הראשונה. הרבה ממה שמופיע ברשימה כבר קיים אצלכם — מספיק להראות היכן זה נמצא ומי נותן אליו גישה.

  • מטרה בהתנהגות השחקנים — מה בדיוק המערכת משנה: שימור מתחילים, קושי היריבים, התאמת משחקים, יצירת שלבים.
  • נתונים — תצוגות של סשני משחק, לוגים של משחקים, תיוג אם קיים; גישות לאנליטיקה ולמסלול בדיקות.
  • מגבלות — פלטפורמות והתקנים יעד, דרישות תגובה, כללי עיבוד נתונים אישיים, איסורים על יצירת תוכן.
  • אחראים — מי מקבל החלטות על מכניקות משחק, מי על תשתית, מי מאשר היקף וקבלה.
  • מסלול נוכחי — מודלים ושירותים משלכם, איסוף נתונים, כלי תיוג; מה מתוכנן לפתח בכוחות עצמכם.
  • קריטריוני קבלה — לפי אילו מדדים נחשב את הפתרון לעובד: שיעור סשנים מוצלחים, דיוק ההמלצות, שיעור תרחישים בלי התערבות ידנית.
  • גבולות התור הראשון — איזה מצב או פונקציה נלקחים לעבודה, ומה נדחה בכוונה.

תארו את המשימה בצורה חופשית: איזה משחק מדובר, איזה אזור כואב ביותר, איזו תוצאה נדרשת. נחזור עם הערכה ותוכנית עבודה — שלבים ונקודות שבהן נדרשות ההחלטות שלכם. את ההיקף נסכם לפי שלבים, ולכן אפשר להתחיל מפונקציה אחת בלי לבנות מחדש את הפרויקט כולו.