"הרבה דברים מהנים קורים כשאתה מנסה לעשות דברים בפיזיקה", אומר וילהלם ניילונד, ראש משחקי Landfall, והאל האינטליגנטי שמאחורי גדודי הלוחמים הגנוזים של Totally Accurate Battle Simulator.
ובכל זאת הפיזיקה העניקה לו כמות עצומה של צער במהלך הפיתוח של TABS - כמו גם כל שאר המשחקים שהוא יצר ב-Landfall. הפיזיקה, אחרי הכל, מקשה על הכל. "אם אתה רוצה לעשות משהו במשחק, אתה צריך להבין איך לעשות את זה בפיזיקה במקום פשוט לעשות את זה", הוא אומר לי. ובגלל זה TABS, שכולו צפייה בפרודיות מגוחכות על אלימות קיצונית, היא נהדרת.
קח בעמידה. עבור TABS, אפילו עמידה היא תוצאה של מערכות פיזיקה מורכבות. כל יחידה היא בובה שמנסה באופן טבעי להתמוטט בערימה על הקרקע, מכיוון שלכל חלק גוף יש מסה שכוח המשיכה של המשחק מושך כל הזמן כלפי מטה. אז כדי לגרום ליחידה לעמוד, ניילונד מוסיף כוחות כלפי מעלה על פלג הגוף העליון והראש שלה שפועלים כמו חוטים של מריונטה, מושכים אותה זקוף. כדי להבטיח שיחידה עומדת רק כאשר יש קרקע ישירות מתחתיה, הוא יורה קרן באורך של סביב גובה היחידה ישירות כלפי מטה מראשה. רק אם הקרינה פוגעת בקרקע מתווסף הכוח כלפי מעלה.
לאחר מכן, כדי לגרום ליחידה לעמוד ביציבות על רגליה, המשחק בודק אם רגליה נוגעות בקרקע. אם כן, אז זה בודק כמה רחוקה נקודת החיבור מהראש. ככל שהראש קרוב יותר לנקודת ההתנגשות, כך מתווסף כוח רב יותר, מה שמחייב אותו לעמוד חזק יותר; אם הוא זקוף לחלוטין, אז הוא מקבל פחות כוח כלפי מעלה.
ואז, כדי לתת ליחידה את התחושה שהיא מתאזנת על הרגליים, ניילונד נותן לה תסריט שגם מסתדר כשהיחידה אמורה ליפול. תסריט זה בודק את נקודת האמצע של רגלי היחידה ומשווה אותה למרכז המסה שלה. כשהם מאוזנים בצורה מושלמת, השניים צריכים להתיישר. אבל אם היחידה, למשל, נשענת קדימה, נקודת האמצע בין רגליה תהיה מאחורי מרכז המסה שלה והיא תיפול קדימה. כדי לתקן זאת, התסריט ירים רגל ויזיז אותה לכיוון שיקרב את נקודת האמצע למרכז המסה של היחידה.
אז זה עומד. עכשיו הליכה. לרוב חלקי הגוף יש תסריט שלוקח תפקיד בתנועות הליכה: הירכיים נוטות קדימה ואחורה; כפות הרגליים נתונות לכוחות כלפי מעלה ומטה. "לכן, כאשר הרגל הימנית צריכה לנוע קדימה, הירך מסתובבת קדימה ומקבלת כוח נוסף כלפי מעלה", מסביר ניילונד. "כאשר הרגל הולכת לאחור, שני הכוחות מתהפכים, כך שכף הרגל דוחפת לתוך הקרקע והרגל מסתובבת לאחור".
כל התנועות הללו מלוות בשינויים אחרים, כמו חיכוך כפות הרגליים, כך שנראה שהן אוחזות בקרקע כשהן שותלות. "אנחנו גם הופכים את הרגל והרגליים ממש לחלקלקות כך שיהיה להן קל יותר להגיע לנקודה הקדמית שלהן", הוא מוסיף. זה כדי שהם לא ייתפסו על חלקי גוף אחרים כשרגל צועדת קדימה.
"יש כל כך הרבה מערכות! אני חושב שאולי אנחנו נמצאים באיטרציה שש או שבע בעיבודים מחודשים בסך הכל של מערכת האנימציה. אפילו זרקנו את כל בסיס הקוד פעמיים והתחלנו מאפס".
מטבע הדברים, הקרב של TABS מובל גם על ידי פיזיקה. הנזק מחושב מהכוח שנשק מתנגש בגוף, בודק אם לאותו חלק בגוף יש סטטיסטיקה כלשהי של הפחתת נזק, ולאחר מכן הוספת מכפילים שונים. בעוד מועדון עושה את כוח ההתנגשות שלו רק בנזק, חרב עושה פי חמישה מכוח ההתנגשות. עבור החנית, אם ההתנגשות מתרחשת במרחק של 20 סנטימטרים מקצהו, היא גורמת נזק פי 10, אך אם היא פוגעת במקל, היא גורמת להרבה פחות.
הפיזיקה קובעת גם איך יחידה מחזיקה ומניפה את הנשק שלה. הנקודה בה יד היחידה אוחזת בנשק היא מפרק הנועל אותו במקומו. אז לכל נשק יש מיקום יחסי עם פלג הגוף העליון שבו הוא רוצה להיות מוחזק. החרב רוצה להיות מקדימה, אז מופעל כוח כדי לשמור אותה שם. "הוא יתנדנד קצת, אבל הוא תמיד מנסה להישאר 50 ס"מ קדימה מהגו", אומר ניילונד. ואז יש לו סיבוב יחסי שהוא רוצה להישאר בו. החרב אוהבת להצביע כלפי מעלה, בעוד שהחנית תמיד רוצה להסתובב כך שהיא מפנה קדימה.
כדי להניף נשק, יחידה שומרת תחילה את הכיוון שבו היא רוצה לפגוע, שבדרך כלל עובר מנקודת הנשק - מה שניילונד מכנה נקודת הכוח - לפלג הגוף העליון של האויב. לאחר מכן, הוא מגדיר את כוח הנדנדה עם עקומת אנימציה. העיקול מתחיל באפס, ואז בדרך כלל מתעקל לרגע כלפי מטה, ומוסיף לכוח העצהרָחוֹקמהמטרה, ואז עולה גבוה, ומוסיף הרבה יותר כוחלִקרַאתהמטרה. "אתה מקבל קצת רוח גבית, אומר שהם יעשו שביתה."
איפה הכוח מתווסף תלוי בנשק. בעוד שהנדנדה של החרב מובלת על ידי קצהו, הנדנדה הראשונה של מטה הקשת של הנזיר מובלת על ידי קצה אחד, ואז היא עוברת לקצה השני כך שהיא מתחלפת.
כל זה הוא עבודה של שנים של ניסוי וטעייה, של ניילונד שחש את דרכו במערכות. או כפי שהוא מנסח זאת: "זה הרבה לחימה עם הפיזיקה כדי לקבל את המראה שאתה רוצה." יש כל כך הרבה משתנים שמעורבים בקבלת חייל להחזיק חרב בצורה נכונה. "זה יכול להיות מה הזווית של הידיים, כמה הנשק שוקל, כמה כוח הוא צריך לעמוד זקוף, איך המפרקים של הידיים לנשק מסודרים, כמה הם נוקשים, האם יש להם נוחות בזווית הם מחוברים? כל אחד מהדברים האלה יכול להיות הדבר הנכון לשנות, אבל אתה לא יכול לדעת בלי לנסות את זה".
אבל לא הכל ב-TABS תלוי בפיזיקה טהורה. בעוד שהסלעים האדירים שנזרקים על ידי בליסטראות הם כולם פיזיקה, קליעים קטנים יותר כמו חצים וכדורי מוסק אינם כאלה, בגלל בעיה קלאסית שמשחקים מתמודדים עם התנגשות. זה הולך ככה: בכל פריים, TABS בודק אם חפצים מתנגשים זה בזה. אבל אם חפץ כמו כדור מוסק קטן ונע מהר מאוד, יש סיכוי טוב שרגע שבו הוא יתנגש בחפץ נתון לעולם לא יחפוף לרגע שבו המשחק בודק התנגשות. התוצאה היא שהם יכולים בקלות לחתוך ישירות דרך חפצים.
כך שהמסלול של הקליעים הקטנים של TABS אינו מדומה מסגרת למסגרת. במקום זאת, בכל פריים המשחק צועד את הקליע לאורך נתיב ואז מצייר קו לאחור כדי לראות כמה רחוק הוא הגיע מאז הפריים הקודם. אם הקו מתנגש באובייקט, אז TABS יודע שהם פגעו. הם לא אובייקטים של פיזיקה, אבל ניילונד גרם להם להיראות כמו זה: חיצים יכולים לנעוץ במטרה, ובאדיבות קוד נוסף שמדמה מפרק פיזיקה, הם אפילו יתנדנדו בצורה מציאותית כאשר הוא נע סביב.
אבל הפתרון הזה עדיין גרם לעוד קצת בלגן עבור ניילונד כשהגיע עם הסמוראי, יחידה מהפלג השושלתי. דרך לפתח את הפלג, הצוות הבין שאין לו תשובה לאויבים מטווחים. "הם היו מפסידים נגד קשתים בכל פעם." אז הצוות חשב, היי, לא יהיה טוב אם הסמוראי יוכל לפגוע בקליעים מהאוויר?
השאלה הייתה איך זה יעבוד. המחשבה הראשונה של ניילונד הייתה מה שהיית מדמיין. "תבקש מהסמוראים לעקוב אחר קליעים שנמצאים בקרבת מקום, ואם אחד מתקרב מדי, הוא מבצע אנימציה של תנופה לעברו ושולח אותו משם."
מכיוון של-TABS יכולים להיות הרבה קליעים במשחק בו-זמנית, אולי הסמוראי יוכל לעקוב אחריהם כל פריים על ידי עיון ברשימה? "אבל זו דרך מאוד כבדה בביצועים לעשות את זה! וגם, המערכת הזו לרשימה תוסיף קצת מורכבות שלא באמת היינו צריכים קודם לכן."
אז ההסטה של הסמוראי למעשה פועלת על ידי הצבת כדור בלתי נראה מסביב ליחידה שמשפיע רק על קליעים. כל השאר יכול לעבור ישר דרכו אבל קליעים יקפצו, כשהסמוראי מבצע אנימציה מתנדנדת שהיא מהירה מספיק כדי בלהט הקרב זה נראה כאילו הוא מגיב לקליע, אבל לא כל כך מהר שהוא זורק את הסמוראי ממנו רגליים. (פִיסִיקָה.)
אבל כמה פיזיקה הוכחה עד כה כבלתי אפשרית עבור TABS. ניילונד ישמח להוסיף כדור ושרשרת ו-nunchucks למשחק, אבל כלי הנשק האלה מורכבים מיותר מאובייקט פיזיקה מחובר אחד. אובייקט אחד מתחיל להשפיע על השני, ואז השני חוזר... זה המקבילה המתמטית למשוב אקוסטי. "זה מהר מאוד מתחיל להיות מאוד לא יציב. ניסיתי כמה פעמים לייצר את הנשקים האלה, אבל או שהתנודות יהיו כל כך איטיות עד שהן לא נראות מעניינות, או שאם תכינו אותן מהר מספיק, תראו שחלקי הנשק ייגררו זה מזה ו לְנַעֵר."
זה אולי מתסכל, אבל לפחות זו מגבלה מובנת. עם זאת, יש בעיה פיזית אחת שהוא מעולם לא פתר.
Stick Fight: The Game הוא משחק לחימה דו מימדי ש-Landfall יצר לפני TABS. הוא פועל בגרסה מעט מוקדמת יותר של מנוע התלת-ממד של Unity, ומכיוון שמדובר ב-2D, אובייקטי המשחק של Stick Fighters, החל מהלוחמים שלו ועד למגדלים המוערמים וגשרי הקופסאות שמתרחקים במהלך תגרה, כולם מוגבלים בציר ה-Z, כך שהם יכולים לנוע רק למעלה ולמטה ושמאלה וימינה על המסך.
אבל לא משנה מה ניילונד עשה, הוא גילה שהקופסאות יחליקו ללא כל פרובוקציה. זו הייתה בעיה גדולה, מכיוון שזה אומר שלא ניתן היה ליצור רמות על ידי ערימת קופסאות. הסיבה היחידה לכך ש-Stick Fight ניתן לשחק היא בגלל מה שניילונד מכנה, "כנראה אחד הפתרונות ההאקים ביותר שיצרתי."
הכל במשחק דחוס בין שני מטוסים בלתי נראים וחסרי חיכוך, הממוקמים במרחק של מטר זה מזה. ניילונד צוחק עד כמה זה מגוחך להוסיף מימד נוסף של התנגשות כדי לפתור בעיות התנגשות במקומות אחרים. אבל זה עובד.
הוא תוהה אם הבעיה נגרמת על ידי הגבלת ציר ה-Z. "אסור לשנות את הערכים באחד הצירים כדי לפתור התנגשויות, אז אולי התנועה הזו איכשהו פשוט נשארת ומתגברת והיא אף פעם לא הולכת, ובסופו של דבר היא מתחילה להשפיע על שני הצירים האחרים?"
בין אם התיאוריה שלו נכונה או לא, דבר אחד מנחם הוא שהבעיה קיימת גם ביישום החדש לחלוטין של Unity של מערכת הפיזיקה שלה. אז לפחות זה חוק מוחלט, חוק של פיזיקת המשחק העכשווית. זה גם עוזר שניילונד, עד עכשיו, רגיל לכאוס העדין והבלתי ידוע שלו.
"זו כל כך קופסה שחורה. כל כך הרבה דברים קורים שאי אפשר באמת להבין, למיטב ידיעתי, למה משהו קורה”.