ההתפתחות (הנמשכת) של עולם קטאן
17 באוגוסט, 2012 היום היה יום מיוחד מאוד. גוקו (חברה חדשה ומבטיחה עם חלומות גדולים) השיקה היום את פלטפורמת המשחקים שלה מבוססת HTML5 עם משחקים כמו Dominion ו-”העיר האסורה” מאת רנייר קנזיה, וכן תצוגה מקדימה של Catan World, גרסה המונית-מרובה-משתתפים למשחק הלוח הקלאסי. כדאי לעיין בכתבות ב-VentureBeat וב-GeekWire כדי לראות צילומי מסך של Catan World. עד כה, הכל היה חיובי והאנשים נראים די נרגשים. (אזכורים נוספים: Gamespot, Games.com, Shacknews, TechCrunch, All Things Digital, GigaOM, redOrbit.) Massively Fun (זה אנחנו!) פיתחנו את Catan World עבור גוקו ועבור Catan GmbH (היוצרים המקוריים של קטאן). כעת כשהתצוגה המקדימה זמינה לציבור, סוף סוף יש לנו את החופש לדבר עליה בגלוי. ההתפתחות מרחב משחקי ה-HTML5 עדיין צעיר מאוד – ממש כמו הפלטפורמה עצמה. דין ואני (שני המתכנתים הראשיים בפרויקט) נהנינו מאוד לבנות כלים שיעזרו לנו להוציא את המשחק הזה לאור. תיעדתי צילומי מסך של המשחק בשלבי פיתוח שונים. לא הייתה לי מטרה ברורה בראש, אבל זה באמת כיף לראות איך המשחק התקדם. אריחים ראשונים Canvas הוא מדהים. יש לו ממשק ציור פשוט מאוד. אם משלבים אותו עם רינדור מואץ חומרה ועם סביבת הרצה מהירה של JavaScript, מקבלים את הכלים הבסיסיים ליצירת משחק אינטראקטיבי ללא צורך בתוספים. אבל הכלים הבסיסיים הם בדיוק זה. בסיסיים. בסיסיים מאוד. קל יחסית להציג תמונה ראשונה על המסך. קל יחסית גם להנפיש את התמונה הזו. שם הפשטות נגמרת. הגרפיקה ב-HTML5 canvas מצוירת במצב מיידי (immediate-mode), כלומר ברגע שהצורה צוירה, ה-canvas כבר “שוכח” מה היא הייתה. המשמעות היא שעליכם לנהל בעצמכם דברים כמו ניהול ישויות (entity management). כדי לעשות משהו מורכב יותר מתמונה מונפשת בודדת, צריך באמת ליצור שכבת הפשטה סביב ישויות המשחק ורכיבי הרינדור שלהן. וכך דין עשה זאת, בתוך, אני לא יודע, יום או משהו מטורף כזה. לאחר מכן הוא המשיך וכתב את הטיוטה הראשונה של מה שיהפוך לליבת המשחק שלנו – תצוגת המפה. הסרטון שלמעלה מציג את האריחים המונפשים הראשונים של דין.
(לסקרנים, דין העביר הרצאה ב-Cascadia Ruby שנכנסת לעומק בנושאי ממשק ה-API של canvas וניהול ישויות.) ממשק משתמש (HUD) חדש תשימו לב שבמהלך הסרטונים ממשק המשתמש של המשחק מתפתח כל הזמן. רובנו ב-Massively Fun מגיעים מרקע של פיתוח מוצרים לצרכן, שבו איטרציה מהירה וצמודה היא שם המשחק. אני חושב שזה משתקף היטב כאן. מפה אינסופית המשחק הנוסף של Massively Fun, WordSquared, מפורסם בזכות לוח המשחק העצום והמתפשט שלו. רצינו לשחזר את החוויה הזו ב-Catan World. המשמעות היא שתצוגת המפה שלנו הייתה צריכה לדעת היכן היא נמצאת ביחס לשאר העולם, לבקש נתונים עבור אותו מקטע ולצייר אותו. הסרטון שלמעלה מראה בדיוק את זה. מפה מקושרת ברשת ב-Catan World, כולם משחקים על מישור ענק אחד, המורכב ממספר לוחות. במקום לשמור “שלבים” או “לוחות” בזיכרון, המותאמים רק לאי של השחקן, אנחנו צריכים להיות מסוגלים לגלוש לכל חלק בעולם ולראות מייד את פעילות המשחק שם. אמנות חדשה ומנגנוני משחק האיטרציה נמשכה, וצוות האמנות סיפק לנו גרסאות חדשות ויפות של הטיוטות הקודמות. הייתה שמחה רבה – הדבר הזה מתחיל להיראות כמו משחק! ערפל המלחמה (Fog of War) גם הוא הוצג. המטרה שלו היא לתת לשחקנים תחושה לגבי אילו חלקים בעולם כבר נחקרו. קטאן שונה באופן מהותי מ-WordSquared בהיבט מרכזי אחד: ב-WordSquared, השחקנים יוצרים את העולם על ידי הצבת אריחים; בקטאן, העולם קיים כדי שהשחקנים ישחקו בו ויחקרו אותו. כדי להעביר את אותה תחושה של נוכחות שנוצרה על ידי המשתמש, היינו צריכים מנגנון הקשור קשר הדוק לפעילות השחקן. עננים עושים עבודה טובה. אלפא. נראות משאבים מקומית למשתמש, גילוי עולם זה היה רגע גדול עבורנו. לראשונה, כולנו יכולנו לשבת מול המחשבים שלנו ולשחק יחד משחק קטאן. מספר מנגנונים מעניינים הוצגו עבור ציון דרך זה. ספינות הוצגו כמנגנון לפריצת ערפל ולנסיעה בין איים. זה פותח כמה דלתות למשחק-על (metagame) שאנחנו ממשיכים לחקור. בעוד שספינות חושפות ערפל סביב איים, הן אינן חושפות את מספרי המשאבים. זה מאפשר לכם לקבל תחושה של פריסת האי לפני שאתם מתחייבים לשחק שם, ועדיין משאיר אלמנט של סיכון. העץ והלבנים האלה אולי נראים טוב, אבל אם הם 2 ו-12, אולי תרצו לבצע סיור. סיירים (Scouts) הוצגו כדי לחשוף את מספרי המשאבים (ועוד ערפל). החלק הכיפי: מספרי המשאבים נחשפים על בסיס אישי לכל משתמש. במהלך המשחק, ייתכן שתראו שחקנים אחרים מציבים התיישבויות סביב משאב מסוים, אבל אין לכם מושג מהו מספר המשאב. תוכלו לגלות זאת על ידי בנייה בכיוון הזה, או על ידי שיגור הסיירים שלכם. אודיו, כרטיסי התפתחות איזה משחק הוא בלי סאונד? זו הייתה הגרסה הראשונה שלנו – בלי מוזיקה, אבל עם כמה אפקטים מרכזיים. מנגנון כרטיסי ההתקדמות (Progress Card) גם הוא נוסף למשחק, ושינה משמעותית את אופן המשחק. זה היה גם הזמן שבו יישמנו את הפונקציונליות הבסיסית של השודד, שעליה לא ארחיב כאן. רק אומר שהיא הוסיפה הרבה יותר לחץ למשחק. איטרציה חדשה של ממשק המשתמש, מנגנון המתיישבים, נקודות פעולה נקודות פעולה (AP) נוספו למשחק בשלב זה. מעבר דרך ערפל עולה נקודות פעולה. הזזת מתיישב עולה מספר משתנה של נקודות פעולה, בהתאם לשאלה האם הוא נע על גבי דרך ומי הבעלים של אותה דרך. הסיירים בוטלו לטובת מתיישבים. כדי להתאים לאופי הא-סינכרוני של המשחק, היה צורך לבחון מחדש את תנאי המשחק ההתחלתיים. לכל ספינה (ויש הרבה כאלה) יש מספר מסוים של מתיישבים, וכל מתיישב יכול להיות מומר להתיישבות ולדרך. הגבלת מיקום ההתיישבות ההתחלתי למיקום המתיישב הגבירה את הלחץ במהלך תפיסת הקרקע הראשונית שקורית בשלבים המוקדמים של המשחק. מתיישבים חופשיים לנוע ברחבי הלוח, אבל פעולה כזו מפחיתה את נקודות הפעולה, הנחוצות להטלת הקוביות. אז אמנם אולי יש אריח טוב יותר בצד השני של המפה, אבל אולי תעדיפו להתיישב מוקדם כדי ליהנות מהיתרון של יותר הטלות. ההוספה של נקודות פעולה למשחק נותנת לנו הרבה מקום לכוונן את אופן המשחק פשוט על ידי התאמת כלכלת הפעולות, במקום להצטרך לשנות מנגנוני משחק נוספים, וזה נחמד.
Catan World נוחת על האייפד אנחנו תומכים נלהבים של HTML5 ו-JavaScript ב-Massively Fun, עד כדי כך שאנחנו מריצים מפגש (Meetup) משלנו בנושא זה. אחת התועלות העצומות של יצירת משחקים בטכנולוגיות פתוחות היא האפשרות לאוניברסליות. כל פלטפורמה שמאמצת טכנולוגיות אלו היא פלטפורמת יעד פוטנציאלית עבור המשחק. זה אומר שקטאן כבר רץ על Windows ועל Mac OS X בדפדפנים מרובים. גרנט (המנהיג חסר המורא שלנו) הצליח לקחת את המשחק שלנו ולהריץ אותו על
בנה משחקי HTML5 בדפדפן שלך
מנוע HTML5 מבוסס דפדפן ללא קוד המייצא לאינטרנט, לנייד ולשולחן העבודה