Global Game Jam מהדורת 2012 – (עוד) משחק ב-36 שעות

בשישי בבוקר לפני קצת יותר משבוע הצטרפתי ליותר ממאה מפתחי משחקים, מעצבים ואנשי ארט במבנה אי שם בהרצליה בואכה קניון שבעת הכוכבים. כולם התכנסו שם לרגל האירוע הבינלאומי השנתי שנקרא Global Gam Jam, במטרה לאלתר משחק (לאלתר במובן של Jam session. אין קשר בין האירוע להכנת ריבה, במידה ותהיתם) לפני הדדליין במוצאי שבת.

אז כל מי שלא מכיר את אירוע ה-Global Game Jam מוזמן לקרוא את הפוסט הקודם. כל מי שרוצה תזכורת לסיכום שלי מה-Global Game Jam של שנת 2010 מוזמן לקרוא כאן. כל מי שסתם רוצה להתרשם מהמשחק שהקבוצה שלי פיתחה השנה באירוע מוזמן לנסות אותו כאן או להוריד את קוד המקור כאן. וכל מי שאין לו כח לקרוא הרבה מלל ומעדיף לשמוע אנשים מדברים על האירוע בפודקאסט יכול לעשות את זה כאן.

השאר מוזמנים להמשיך לקרוא כאן על סיכום נתיחת הגופה: בפוסט הזה אני אביא את הרשמים שלי מהאירוע עצמו ומתהליך הפיתוח של Bugs, Bots & Beyond (או שזה בעצם Bots, Bugs & Beyond?) – המשחק שיצא לי לפתח במסגרת האירוע יחד עם עוד כמה אנשים סופר מוכשרים וגולדי.
חרקים, רובוטים ועוד: או בקיצור, חר"ע

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

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

אורובורוס

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

חרטאברטא

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

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

אחרי חשיפת האורובורוס במלוא הדרו ניתנו למשתתפים 15 דקות שבהם כל אחד יכל לחשוב על רעיון מקורי משלו למשחק, ואז עוד בערך חצי שעה שבה כל אחד עם רעיון כזה יכל להציג את עצמו ואת הרעיון שלו במטרה לראות מי יהיה מעוניין להצטרף אליו. וככה, בצורה ספונטנית ודרוויניסטית לחלוטין נוצרו להן הקבוצות השונות.
לי עלו כמה רעיונות שונים שכללו:
– משחק פאזלים שבו הדמות שלך אוכלת את עצמה, כשכל חלק בגוף שתאכל נותן לך יכולת אחרת. המטרה היא לעבור את המכשולים בשלב מסוים באמצעות היכולות האלו, כשהאתגר מתבטא בזה שסדר לא נכון של פעולות בעצם יוביל אותך לדרך ללא מוצא (כמו למשל בלמינגס).
– משחק דמוי סנייק לשני שחקנים שבו שחקן אחד משחק את ראש הנחש וצריך לנסות ולתפוס את הזנב שלו, בעוד השחקן השני משחק את הזנב שלו שמנסה כל הזמן להתחמק מהראש ולגרום לראש להתנגש בדברים (משחק עם פוטנציאל להרבה Griefing).
– משחק פעולה שבו אתה כדמות קניבלית צריך להתחמק ממכשולים ובמקביל “לאכול” דמויות אחרות (כמו נניח פאקמן במצב הרעב שלו) כדי לשרוד. הטוויסט הזוועתי הוא שלדמות שלך יש מספר פסילות (או אולי חברי משפחה?), ובשביל להצליח לשרוד במשחק לאורך זמן אתה תאלץ להקריב ולאכול את הפסילות הנוספות שלך (קצת כמו טקטיקת ההקרבה המיתולוגית של החללית ב-Galaga בשביל לזכות בכח אש כפול. אני עוד זוכר את הלסת שנפלה לי כשגיליתי את זה בטעות בפעם הראשונה).
– משחק שבו תשחקו נחש על מטוס שצריך לברוח מסמואל אל ג’קסון.

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

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

לנקודה מעניינת לא פחות שמתי לב גם במקרה של רעיונות למשחקים שכבר נזרקו לאוויר, כשהוגי הרעיון ניסוי להסביר את עצמם בנוסחאות והלחמות: “מכירים את המשחק ההוא משנות ה-90? אז בדיוק כזה, רק שבמקום מבט-צד מבט-על, במקום אסטרטגיה-בזמן-אמת יריות-בגוף-ראשון, ובמקום להציל את הנסיכה אתם שודדים בנק.
אז מעצבי משחקים: תהיו בקיאים בחומר! כשדיברתי עם אנשים על המשחק שפיתחנו בפועל, השתמשתי ב-name dropping של לפחות כמה משחקים בסגנון דומה: מקלאסיקות עתיקות כמו Robotron 2084 ומשחקים מודרניים כמו Geometry Wars ועד לדברים יותר נישתיים כמו I MAED A GAM3 W1TH Z0MB1ES 1N IT!!!1 או Radiangames JoyJoy. להכיר את התחום יעזור לכם גם כשתנסו להסביר לאנשים (או לעצמכם) איזה משחק אתם רוצים לעשות, וגם כשתעשו אחר כך את שיעורי הבית שלכם בשביל “לשאוב השראה” ולחשוב מה אולי יכול לעבוד במשחק שלכם ומה לא.

אציבמנט אנלוקד
מעבר לרעיון המרכזי, אחד הדברים שמציעים מארגני הGGJ למשתתפים הוא האפשרות להשיג “אציבמנטים” במהלך הפיתוח, בשביל לעודד את היצירתיות של המשחק ולהציע קצת גיוון ואתגר. למי שלא מכיר, “Achivements/Diversifiers” במינוחים של GGJ זה בתרגום חופשי לעברית “אני לא סומך על זה שהרעיון למשחק שלי מספיק טוב כשלעצמו, ולכן אני אדחוף פנימה כל מיני קונספטים אחרים ואחר כך אשתמש בהם בתור תרוץ לזה שהמשחק לא כל כך מוצלח”.
בקבוצה שלי בחרנו בסופו של דבר לנסות ולממש את האציבמנט של 1000 דמויות על המסך בו זמנית (בפועל נראה לי שהגענו למשהו כמו שלושים לפני שהגיימפליי הופך לבלתי אפשרי). אבל השנה היה אפשר להשיג אציבמנטים על דברים מופרעים לחלוטין כמו למשל משחק שמכיל טקסט ASCII בלבד, משחק שעובד במימד אחד בלבד, ומשחק שמצריך מהשחקן לתכנת בזמן שהוא משחק… או שאולי פשוט תכתבו קומפיילר לאסמבלי ותוכלו לזכות בכל שלושת האציבמנטים האלו יחד. זה נשמע כיף!

בתמונה: המשחק "מכונת טורינג"

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

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

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

מה עבד כמו שצריך?
הדבר הראשון שכנראה עשינו כמו שצריך היה הקצבת זמן ברורה לליטוש של הקונספט של המשחק: כי בסופו של דבר כשזורקים רעיון לאוויר זה נחמד ויפה, אבל כשמנסים ליישר קו פתאום מגלים שכל אחד בכלל חשב על רעיון אחר.
ציינתי כבר שדיברנו בהתחלה על משחק יריות דו מימדי או בקיצור Shoot’em’up, אבל בעוד מישהו אחד יכול לדמיין לעצמו בראש משחק scrolling shooter שבו משחקים דמות שיורה בכיוון קבוע על רקע דו מימדי נגלל (סטייל 1942), מישהו אחר יכול בכלל לחשוב על משחק Arena סגור שבו אויבים מגיעים אליך מכל הכיוונים (סטייל Geometry Wars). ככה שזה תמיד טוב להיסגר על הפרטים הקריטיים האלו לפני שניגשים לעבודה ומתחילים לתקתק קוד.

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

תכנון בצוות: צילום אילוסטרציה

עוד משהו שעבד לא רע היה חלוקת העבודה: התחלנו את הפיתוח עצמו בשישי בצהריים. נועם חפף אותי קלות על יוניטי (שנחשפתי אליה לראשונה), והתחלנו ביחד את הפרוייקט כדי שאני אראה איך דברים עובדים. אחרי שבנינו את הבסיס עם דמות שיכולה לנוע על מסך ולירות לכל מיני כיוונים התחלנו לחלק את הפיתוח: נועם התמקד בתנועה של השחקן ובפרמטרים השונים שהpower ups ישלטו עליהם, וגם טיפל בכל ההתממשקות לכל אנשי הart שסיפקו את התוכן. אני במקביל התמקדתי באויבים, ביצירת לוגיקה שונה לתנועה וירי עבור כל אחד מהם, ובנייה של מנגנון שיאפשר למעצב המשחק (וכל מי שלא מתעסק בקוד) ליצור בקלות רצפים של אויבים וכך לשנות במהלך הפיתוח ובזמן אמת את רמת הקושי במשחק.
נשמע פשוט? כי זה בערך מה שעבדנו עליו מיום שישי בשלוש בצהריים עד יום שבת בשבע בערב – לא כולל כמובן כמה שעות שינה טובות באמצע  (ויתרתי מראש על לילה לבן).

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

מה לא עבד כל כך טוב?

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

ככה שברגע שאני כמפתח מתמקד קודם כל ביצירה של מספר סוגי אויבים או במנגנון שמזין אותם למסך, אבל משאיר את מכניקת הירי שלהם לשלב מאוחר יותר – יהיה למעצב קשה מאד לאזן את המכניקות השונות של השחקן בלי החלק הזה. הוא הרי צריך כל החבילה ממני (וכמה שיותר מהר) בשביל שיהיה לו מול מה לעבוד. רק שבתור אחד שרק התחיל לעבוד עם unity לראשונה, זה היה לא פשוט לספק את כל הדברים כי בסביבה חדשה דברים לוקחים מן הסתם יותר זמן. את החבילה המלאה שגולדי היה צריך הצלחתי לספק רק חצי שעה לפני מועד ההגשה, מה שלא נתן לו יותר מידי זמן לfine tuning.
בעיה נוספת הגיע מהצד השני בה אני (על תקן מתכנת) קיבלתי יותר מידי חופש פעולה כשזה הגיע ליצירת האויבים, ולא נתנו לי הנחיות ברורות כל כך לגבי המכניקה שרוצים ליצור עבורם. ככה שגם אני בעצם ניסיתי ליצור משהו מעניין ומאתגר שיתאים לתנועה של השחקן, רק שבכל גירסא חדשה של קוד השחקן (שנועם יצר) קיבלתי פרמטרים קצת שונים ולכן לא ידעתי לאיזה רף לכוון.
זו תמיד שאלה של ביצה ותרנגולת: האם להתאים את האויבים ליכולות של השחקן, או את היכולות של השחקן לאויבים? כל שינוי שתעשה באחד מהם יאלץ אותך לחשוב מחדש על השני.

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

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

במשחק שלנו לשחקן פשוט אין לאורך המשחק שום תחושה של empowerment (עוצמתיות?) והוא מרגיש בעיקר ניצוד ונרדף – וזו תחושה שאפילו משחקים ישנםי כמו דיגר ופאקמן לימדו אותנו שצריך לשבור מידי פעם. או אם להגיד את זה בצורה יותר בוטה: המשחק שלנו פשוט לא מספיק כיף מספיק. הדבר הראשון שהייתי משנה אם הייתי צריך לחזור עכשיו למשחק הוא לתת בוסט לכל אחת מהתכונות הבסיסיות ככה שהשחקן היה מרגיש טוב יותר מלכתחילה. זה בפועל גם השינוי הכי פשוט לעשות, כי זה רק עניין של איזון.
מה שכנראה היינו צריכים זה להפוך את השחקן למאד overpowered בקטגוריה הרלוונטית במידה והוא בוחר לחזק אספקט מסוים, בלי שזה הופך אותו לנכה מידי בקטגוריות אחרות. מה שחשוב בשורה התחתונה הוא שלא תהיה אסטרטגיה דומיננטית, ושהשחקן ידע שבמקביל לבחירה שלו קיימות בחירות אחרות שיהפכו אותו לoverpowered בקטגוריה אחרת – ואז הוא עדיין ישאר עם הדילמה ועם העניין במשחק עצמו.
כתבתי פה פעם פוסט לא קצר על פילוסופיית הפיתוח של באנג’י לכך שנשקים במשחק צריכים להיות overpowered אבל רק במסגרת התפקיד שיעדו להם – וזו בדיוק דוגמא נקודה שבה היינו צריכים ללמוד מהם.

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

ועוד משהו על מנועי משחקים ומחוללי משחקים
ברפרוף מהיר על המשחקים שפותחו השנה (לפחות בהרצליה) היה ניתן בקלות לראות דומיננטיות מוחלטת של Unity3D השנה, עם תיבול מרכזי של Flash. ברור לי שהכלים האלו מציעים פרודקטיביות הרבה יותר גבוהה מאשר לפתח עכשיו את המשחק מאפס בC++ או אפילו בXNA כמו שעשיתי בעצמי בשנה שעברה, או בכלים כבדים כמו Unreal Engine. זמן הוא המשאב הכי קריטי כשמדובר במשחק שמפותח בפרק זמן של 36 שעות.

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

הרי לפחות איך שאני רואה את זה, בסופו של דבר המטרה של הGlobal Game Jam היא להתנסות ברעיונות מקוריים ולייצר משהו מגניב, ולאו דווקא להתגאות בזה שפיתחת משחק מאפס. ובגלל זה לא ברור לי איך לא זיהיתי כמעט שום משחק ש”משאיל” template קיים ומתבסס עליו במקום לכתוב את הלוגיקה של המשחק מאפס? הגי גם אם בחרנו למשל לפתח את המשחק בUnity, היינו יכולים להרוויח לא מעט זמן אם היינו מתחילים מאיזו תבנית קיימת למשחק בסגנון (ואני בטוח שלא חסרות תבניות כאלו). זה היה מפנה לנו הרבה יותר זמן להתמקד ברעיון המרכזי של הגיימפליי, בליטוש ובאיזון.

יותר מזה, אם היינו בוחרים במה שנקרא “מחולל משחקים” (שזה משהו שנמצא בערך דרגה אחת למעלה יותר ברמת האבסטרקטיות מ”מנוע משחק” כמו Unity) אז גם פה כנראה שהיינו יכולים להרוויח לא מעט זמן שבפועל השקענו בכתיבת קוד.
זה נכון שמחוללי משחקים הם הרבה יותר מוגבלים באפשרויות שהם נותנים לך (את רובם אי אפשר להרחיב עם סקריפטים יותר מידי, ובטח שלא ממש לכתוב להם קוד כמו בUnity או Flash), אבל במקרה של משחק כמו זה שאנחנו עבדנו עליו אין יותר מידי חוכמות: המשחקיות עצמה היא די סטנדרטית, והטוויסט שהלבשנו על המשחק לא מצריך לעשות יותר מידי שמיניות באוויר. אני מניח שבמחולל משחקים סטייל Game Maker היינו יכולים להגיע לתוצאות הרבה יותר מהר. ועבור קבוצות שעבדו על משחקים בזאנר ספציפי יש אפילו מחוללי משחקים יעודיים: יש מחוללי משחקי תפקידים, מחוללי משחקי הרפתקאות ואפילו מחוללי משחקי מכות. וזה עוד בלי לדבר על שלל המשחקים הקיימים שמציעים כלי מודינג שלא מסתכמים בעורכי מפות בלבד אלא נותנים ממש לבנות משחק חדש בתוך משחק.

והאמת? אולי דווקא זה יכול להיות אתגר מעניין לGlobal Game Jam הבא: לא הייתי מתנגד לנסות ליצור משחק באמצעות כלי העריכה של משחק כמו Skyrim, או LittleBigPlanet או אפילו כלי הForge של Halo Reach, שכל אחד מהם יכול להתאים למשהו בסגנון אחר. זה לא שהייתי ננעל על כלי כזה מראש ואז כופה אותו על המשחק שאנחנו באים לפתח, אבל דווקא ברגע שכבר יש רעיון למשחק כלשהו  – זה בדיוק הזמן לבחון אם יש כלי ידידותי ויעודי שיכול להתאים.

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

Arrows to the knee. WASD to the head

(בנינו: משחקים כמו זה שפיתחנו צריכים בכלל לשחק בdual analog על גיימפאד. אני נגעל מעצמי על זה שבכלל התפשרתי על שליטה של מקלדת ועכבר – אבל במסגרת מגבלות הזמן וחוסר ההיכרות שלי עם unity והתממשקות של התוכנה לגיימפאד זו פשוט הקרבה שנאלצתי לבצע. ועמכם הסליחה)

About swym