פיתוח cross platform ולאן עוברים מפתחי פלאש?

בתאריך 9 אוגוסט, 2015

רק לא מזמן הכרתי את הקס (Haxe) - שפת תכנות קוד פתוח המאפשרת ייצוא לפלטפורמות שונות (נייטיב) מאותו בסיס קוד. התרשמתי מאד לטובה מהגמישות שלה ומהספריות הרבות שנכתבות עבורה כל הזמן, אבל במיוחד מפריימוורק שנקרא OpenFL - המאפשר למפתחים הבאים מפלאש להשתמש ב-API הזהים כמעט לחלוטין ל-AS3 וכך לבנות בקלות אפליקציות ומשחקים עבור מגוון פלטפורמות בזמן קצר יחסית. כמו כן אהבתי מאד את מנוע המשחקים haxeFlixel, ה"מתלבש" על OpenFL ואפילו בניתי איתו אב-טיפוס קטן למשחק: https://www.youtube.com/watch?v=NnWtfsj7vbs. במאמר זה אני מתאר את ההתרשמות הכללית שלי מהתהליך וכן את הנקודות החיוביות והשליליות לדעתי.

פיתוח cross platform ולאן עוברים מפתחי פלאש?

לא זוכר איך בדיוק הכרתי את הקס (שפת תכנות cross-platform) בפעם הראשונה. נדמה לי שנתקלתי באתר שלהם לפני כמה חודשים, קראתי קצת וזה נשמע לי מעניין, אבל לא הייתי פתוח לשינויים יותר מדי..http://haxe.org/
אחרי כמה שבועות נתקלתי במדריך שמסביר איך לבנות משחק כלשהו שתכננתי לפתח בפלאש והקוד היה כתוב בהקס. כשהסתכלתי טוב ראיתי שמדובר למעשה ב-AS3 עם שינויים מינוריים (OPENFL), אז לקחתי משם רעיונות ועל הדרך גם ספגתי קצת את ההתלהבות של הכותב מהקס, אבל עדיין לא עשיתי שום דבר כדי להתקרב יותר מזה..

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

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

בעזרת המדריך הזה http://haxecoder.com/archive.php בניתי משחק פונג ובאופן מופלא פיבלשתי אותו לפלאש ול-HTML5 והוא עבד טוב מאד בשניהם! זה הגניב אותי לגמרי, אז החלטתי להמשיך ולנסות משהו קצת יותר מאתגר.

מסתבר שבגלל שהקס כתובה בקוד פתוח, המון אנשים מפתחים עבורה תוספות\פריימוורקס וכו'. למשל, על גבי OPENFL ניתן להלביש מנועי משחק כדוגמת HaxeFlixel (שהוא המרה של Flixel הותיק והטוב) וכך להאיץ מאד פיתוח משחקים בעזרת הכלים המובנים שבו.

החלטתי ללמוד קצת את HaxeFlixel ולפתח פרוטוטייפ של משחק side scroll shooter שיעבוד לי בכמה פלטפורמות, כולל אנדרואיד.

לאחר חיפושים וקריאת מדריכים התחלתי בפיתוח ותוך שבוע שבועיים הכנתי אבטיפוס (שאפשר לראות כאן) שעובד טוב מאד בפלאש, HTML5 ואנדרואיד מאותו בסיס קוד (עם שינויים מינוריים מאד) והכל כתוב ב-OOP כאילו שאני עדיין עובד עם פלאש ו-AS3. מבחינתי זה פשוט לא ייאמן! גיליתי את העולם... חוץ מזה ש-HaxeFlixel התגלה לי כמנוע נוח ומצויין, לפחות בינתיים בפרוייקטים הקטנים שאני מתנסה בהם. מה שיפה בזה זה שקיימת קהילה מאד גדולה של מפתחי פלאש שעוברים ל-OpenFL ועושים המרות של פרויקטים שלהם מ-AS3 להקס. זה פשוט פותח המון אפשרויות, תוך שמירה על הנסיון שצברנו במשך השנים וללא צורך כמעט ללמוד דברים חדשים.

הקומפיילר של הקס מייצר קוד נייטיב לפי היעד וכך גם נמנע הצורך מלהוריד נגן\פלאגין כמו AIR או יוניטי. כשמקמפלים ל-HTML ומסתכלים ב-source של העמוד רואים פשוט קובץ javascript.

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

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

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

מאמרים נוספים...