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

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

תחומי פיתוח AI

שאלות נפוצות

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

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

מדוע יצירה פרוצדורלית של תוכן נשברת בקנה מידה

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

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

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

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

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

מה נותנת יצירה מבוקרת: אפקט מדיד

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

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

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

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

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

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

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

אוטומציה מלאה או היברידי: השוואת גישות

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

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

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

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

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

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

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

תוצרי ההטמעה: תרשימים, כללים, תקנונים

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

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

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

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

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

נקודת הפתיחה

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

מה שינינו ומה יצא

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

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

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

מה לעשות אם חלק מהעולם כבר הורכב ידנית?

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

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

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

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

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

ספקות טכניים: קוהרנטיות, סגנון, תיקונים

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

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

מה אם השחקן יפעל נגד לוגיקת העולם?

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

איך הרפליקות שומרות על הסגנון לאורך סשן ארוך?

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

איך התיקונים של התסריטאי הופכים לאימון נוסף?

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

נדבר על המשימה: מה לשלוח להערכה

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

  • פורמט המוצר. ז'אנר, פלטפורמות יעד והיקף משוער: כמה סוגי לוקיישנים, קווי קווסטים וסצנות דיאלוג הגנרטור צריך להוציא בסשן משחק אחד.
  • דוגמאות-מופת. שניים-שלושה משחקים שאתם רואים כמודל, ומה בדיוק חשוב בהם: צפיפות האירועים, קוהרנטיות של ענפי העלילה, סגנון הרפליקות של הדמויות.
  • כללי העולם. לור, סיעות, צירופים אסורים של חפצים ומהלכים עלילתיים ששוברים את הסֶטִינְג. זה הבסיס לאילוצים שעליהם נשענת האמינות של היצירה.
  • נתונים קיימים. טבלאות, טקסטים, גרפים של קווסטים, סימון דיאלוגים — באיזה מצב הם נמצאים עכשיו ומה מזה אפשר לעשות בו שימוש חוזר כמקור.
  • מגבלות הפרויקט. לוחות זמנים, דרישות להיקף ההרכבה, היכן היצירה צריכה להתבצע: על המכשיר של השחקן או בשרת, עם אינטרנט או בלעדיו.
  • קריטריוני קבלה. לפי אילו סימנים מדידים תקבלו את העבודה: חלקם של קווסטים קוהרנטיים בלי מבוי סתום, שחזוריות (אותו קלט נותן אותו עולם), זמן היצירה של סצנה אחת, חלקם של הטקסטים שעברו בדיקת כללים.
  • סדר שיתוף הפעולה. מי בצד שלכם מקבל החלטות ונותן משוב, באיזו תדירות אתם מוכנים לבחון תוצאה ביניים ובאיזה שלב אתם מצרפים את הבודקים.

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