הטורניר סטודנטים StarCraft AIהוא טורניר בינה מלאכותית מול בינה מלאכותית אשר מציגה בוטים המתוכנתים לשחקStarCraft: Brood Warאחד נגד השני. SSCAIT התחיל ב-2011 והוא אחד משלושה טורנירים גדולים של Brood War AI. תואר חטיבת הסטודנטים בשנה שעברה זכה למרטין רויג'קרס וליצירתו, LetaBot. הם גם זכו במחלקת הסטודנטים והמעורב של 2014. השנה מרטין ולטה-בוט עלו לרבע הגמר.
בזמן שהבוטים ממשיכים לקרב, ביקשתי ממרטין לספר לי יותר על איך הם עובדים. האם חלק מהמירוצים של Starcraft קל יותר לבנות עבורם בוטים מאחרים? מה הדבר שהכי קשה לגרום לבוטים לעשות? והאם LetaBot בנוי לשלוט במטא של בוט או שהוא יכול לקחת גם על בני אדם?
פיפ: היי מרטין, אתה יכול לספר לי קצת על עצמך ולמה אתה לוקח חלק ב-SSCAIT?
מרטין רויטג'קרס:אני מרטין Rooijackers, סטודנט לתואר שני באוניברסיטת מאסטריכט. עיצוב אStarCraftבוט הוא חלק מתזה המאסטר שלי. הסיבה להשתתפות ב-SSCAIT היא לבדוק את ביצועי האלגוריתמים שלי מול בוטים אחרים.
פיפ: אתה יכול להציג את LetaBot ולספר לי קצת על איך ה-AI עובד?
מַר:התחלתי את LetaBot עם הרעיון ליצור גרסת Terran של Berkeley Overmind [ה-Berkeley Overmind הוא סוכן בינה מלאכותית למשחק ברוד War שזכה בתחרות AIIDE 2010 StarCraft - אתה יכול לקרואפוסט מפורט באמת של Ars Technica על זה כאן] עם Wraiths במקום Mutalisks כיחידת האוויר שתזנק סביב המקום. תוך כדי ניסוי מול בוטים אחרים, גיליתי שלכולם היו בעיות עם המשחק המוקדם. אז החלטתי להתמקד קודם בבעיה הזו.
LetaBot עדיין בתהליך, אבל באופן כללי זה עובד באופן הבא:
- פתח עם סדר בנייה [הסדר והתזמונים שבהם אתה משתמש לבניית יחידות, מבנים וכן הלאה] בטוח מפני תוקפנות מוקדמת. בנה קיר במידת הצורך.
- נסו להרחיב כמה שיותר מהר כשזה בטוח לעשות זאת.
- יחידה טכנולוגית עד אויר תוך שמירה על בטיחות הבסיסים שלך [זה אומר להגיע רחוק לתוך סדר הבנייה שאתה צריך כדי לייצר יחידות אוויר]
- השתמש בדומיננטיות האוויר כדי להשיג שליטה במפה ולקבל הרחבות נוספות
פיפ: איך ניגשת לראשונה לבעיה של עיצוב בינה מלאכותית של Starcraft? (לדוגמה, האם הסתכלת על בוטים קיימים או שהתחלת מאפס? האם חיפשת לפתור אתגרים מסוימים?)
מַר:LetaBot נבנה על המסגרת של UAlberta bot [מידע עדכני עבור UAlbertaBot ב- GitHub], מכיוון שהמסגרת הזו מאוד מודולרית. עם הזמן הוספתי לתוכו עוד מודולים כמו אלגוריתם איסוף המינרלים שלי ואלגוריתם בניית הקיר שלי.
צִפצוּף:אילו אלמנטים במשחק StarCraft הכי קל להשיג עם בוטים?
מַר:הרכיבים הקלים ביותר של StarCraft עבור בוט הם:
- אלמנטים שאינם זקוקים לפתרון מיידי (כך שהם פחות מוגבלים בזמן אמת). [לאלו מכם שמכירים את StarCraft הנה דוגמה:] לאלגוריתם בניית הקיר שלי יש מספר שניות לחשב קיר, כי מחסן האספקה הראשון נבנה רק לאחר בניית 5 יחידות עובדים נוספות.
- יסודות הניתנים לניסוח מתמטי בקלות. דוגמה לכך היא אופטימיזציה של איסוף מינרלים [מינרלים הם משאב שאתה הולך וכורה במשחק]. אתה רוצה להפחית את זמן הנסיעה הלוך ושוב, אשר קשורתורת התורים.
- אלמנטים שבהם התנהגות תסריטאית מספיקה. זה ידוע היטב במשחקי RTS שבדרך כלל אתה לא באמת רוצה שהיחידות יעמדו בתור, מכיוון שניתן להשתמש במשאבים האלה במקום אחר (כמו בניית בניין חדש). אבל אתה כן רוצה להבטיח שמתקני הייצור שלך תמיד מייצרים. זה נקרא מאקרו ב-StarCraft (טכנית זה היבט ייצור יחידות של ניהול מאקרו). שלב ייצור יחידה זה קל לבוטים, מכיוון שעם ריבוי המשימות שלהם הם יכולים תמיד לפקוח עין על כל מתקני הייצור ולהבטיח שלכולם יש בדיוק יחידה אחת בייצור בכל עת.
פיפ: ואיזה אלמנטים (אם בכלל) אי אפשר לשכפל עם בוטים כרגע?
מַר:זה אולי יפתיע חלק, אבל למרות היכולת לבצע יותר פעולות בדקה מאשר שחקן אנושי, לבוטים עדיין יש מיקרו-ניהול נמוך יותר. לבוטים יש שליטה מהירה יותר ביחידה בודדת המאפשרת להם להשתמש בטכניקות פגע וברח [להסב נזק ואז לצאת מדרך הנזק], אך ההחלטה היכן/מתי/איך לתקוף/נסיגה היא עדיין בעיה.
פיפ: נראה שיש פיזור הגון של גזעים בתחרות. האם הם די שווים בכל הנוגע לאתגר הבוט או שקל יותר לתכנת מרוץ אחד על פני האחרים?
מַר:בשל העובדה שניהול מיקרו קשה לבוטים, קל יותר ליצור בוט פרוטוס מכיוון שמרוץ הפרוטוס אינו מיקרו אינטנסיבי כמו גזעים אחרים. פשוט תנועת התקפה יכולה להביא אותך די רחוק.
Terran יכול להיות חזק בשל העובדה שרוב היחידות שלהם מסוגלות לבצע טקטיקות פגע וברח שהבוט יכול לבצע עבור כל יחידה בנפרד. הבעיה העיקרית עם זה מגיעה עם התמודדות עם השטח / איתור נתיבים. הקושי הנוסף של Terran הוא שהם נעשים חזקים רק כאשר יש להם כדור גדול של יחידות. אז לשרוד במשחק מוקדם יותר קשה. אבל ברגע שבוט של Terran יוצא מהמשחק המוקדם, הוא בדרך כלל גובר על הבוטים של Protoss ו-Zerg.
Zerg הוא אולי הכי קשה לתכנת בוט עבורו מכיוון ש-Zerg מסתמך במידה רבה על דברים כמו תנועות אגפים, צבאות שמסביב, הטרדה של Mutalisk ועוד הרבה טכניקות מיקרו.
פיפ: נכנסת לתחרות כבר זמן מה - האם אתה מוצא שאתה מתכנת את הבוט שלך לשחק StarCraft או שאתה יותר מרוכז בכך שהוא משחק כדי לנצח בוט אחר? בעיקרון אני מתעניין אם הבינה המלאכותית האלה יכולה תיאורטית לשחק/לנצח אדם או אם הם בנויים להילחם אחד בשני.
מַר:בטורנירים של 2014 גרמתי לבוט שלי להתעלל בהיעדר הגנה בתחילת המשחק של כמעט כל בוט בחוץ. אז אז עשיתי את הבוט שלי כזה שהוא יוכל להביס בוטים אחרים (הבוט שלי היה ידוע בתור aעומס בונקרבוט אז). אחרי טורניר המודיעין והמשחקים החישוביים (CIG) 2015, ראיתי שלבוטי העומס היו ימיהם האחרונים במקום הראשון. בוט מתוחכם של 4 בריכות [בריכת 4 היא אסטרטגיית הכל-אין שבה אתה ממהר לבנות בריכת שרצים מהר ככל האפשר ואז לזרוק גלים של יחידות בסיסיות על היריב שלך] בשם ZZZKbot זכה בטורניר CIG 2014. התחזית שלי הייתה שמפתחי בוטים יבינו שהם צריכים לפתח את המשחק המוקדם שלהם אם הם רוצים לנצח.
בטורניר AIIDE (בינה מלאכותית ובידור דיגיטלי אינטראקטיבי) מספר חודשים מאוחר יותר, ZZZKbot ירד למקום השני, וה-2 Rax SCV ה-rush bot שלי [זה מבנה שני צריפים שזורק יחידות עובדים ונחתי חלל על האויב] שהגיע למקום הרביעי. המקום ב-CIG קיבל כעת את המקום העשירי ב-AIIDE. אז אחרי זה הוספתי לבוט שלי מודולי מאקרו שעבדתי עליהם, והבוט שלי עבר לסגנון משחק מוכוון מאקרו. הגרסה האחרונה של הבוט שלי (לצערי לא הסתיימה בזמן עבור ה-SSCAIT) מסוגלת סוף סוף להתמודד עם כל תוקפנות מוקדמת שאני מכיר. אז בעצם אחרי ה-CIG 2015 נטשתי את הניסיון לנצח על ידי ניצול הפגמים בבוטים אחרים ובמקום זאת התמקדתי בסגנון משחק מאקרו כללי שיכול להביס גם בני אדם וגם בוטים.
פיפ: מה האתגר הכי קשה שהיית צריך לפתור עם LetaBot?
מַר:עיכוב תוקפנות מוקדמת של המשחק תוך כדי הרחבה מהירה. ברגע שהבוטים מגיעים לאמצע המשחק, ריבוי המשימות שלהם עוזר להם בצורה משמעותית, אבל במשחק המוקדם אין להם מספיק יחידות לעשות בו שימוש. עם פקודות הבנייה הממוקמות בטקסט מדניס סומרס ובעזרתו של משתמש TeamLiquid בשם CardinalAllin, לבוט שלי יש כעת את היכולות להסתגל לצבא היריב ולהגיע לאמצע המשחק.
פיפ: מה היו רגעי השיא שלך מ-SSCAIT עד כה השנה? את הבוטים של מי מצאתם הכי מעניינים ולמה? אני לא ממש שחקן Starcraft אז זה יהיה טוב לדעת מי משתמש טוב ביחידות או באסטרטגיות מעניינות או אם היו פריצות דרך בלתי צפויות באופן שבו הם משחקים.
מַר:השנה הייתה פריחה מחודשת של שחקני זרג. היה לנו:
- ZZZKbot: בוט 4 הבריכה המתוחכם ביותר עד כה
- מריאן דבקה: הגרסה החדשה ביותר של הבוט הזה מתמקדת בשלוש יחידות (Zergling/Hydralisk/Lurker). שלוש היחידות האלה לא מספיקות למשחק המאוחר, אבל ההתקפה באמצע המשחק מהבוט הזה הוכיחה את עצמה כהרסנית מספיק כדי לפצות על עובדה זו.
- tscmoop: הבוט שיכול להשתמש בכל יחידה [מה שהופך אותה ליותר תכליתית בתיאוריה]. הגנה מוקדמת טובה ומשחק מאוחר, אבל עדיין יש לה בעיות לעצור התקפה באמצע המשחק.
אז יש גם בוט פועלים שנקרא סטון שהצליח להגיע לרבע הגמר תוך שימוש ביכולת של ה-SCV (יחידות העובדים של Terran) לתקן SCVs אחרים.
אז השינוי הגדול ביותר מהשנה שעברה הוא שהתוקפנות במשחק המוקדם הפכה להרבה יותר עזה, אבל במקביל הגנת המשחק המוקדם הוגברה (משחק מילים מיועד (רמפה היא נקודת חנק שתוכל להשתמש בה כעמדה הגנה לידיעתך* :) )).
השינויים הללו יגרום לכך שהפוקוס יעבור כעת לכיוון של תוקפנות והגנה באמצע המשחק. התחזית שלי היא שהבוטים המובילים של CIG (או AIIDE אם זה קודם) יהיו מורכבים מבוטים שיכולים לבצע דחיפה חזקה באמצע המשחק ובוטים שיכולים לעכב דחיפה כזו. לא יהיו יותר בוטים של בסיס 1 בטופ 3. הטורניר הזה יהיה הטורניר הגדול האחרון של StarCraft AI שיש להם אותם. מעתה ואילך, כל בוט יצטרך להתרחב כדי לזכות בטורניר (גדול).
תודה על זמנך!
חצי הגמר והגמר של SSCAIT יתקיימו ב-30 בינואר בשעה 20:00 CET (19:00 GMT) -אתה יכול לצפות דרך Twitch.
*פיפ מאוד העריך את ההסבר כי משחק המילים הזה היה מפליג מעל הראש אחרת!