פרסומים, המלצות, קוד פתוח, סרטונים, how-to.
מאגר של טיוטות אישיות שכותבי הבלוג החליטו לפרסם לציבור הרחב בתחום ה UI , משחקים, חווית המשתמש (User Experience) ואוגמנטד ריאליטי (Augmented Reality).
כותבי הבלוג הם אנשי תוכנה ועיצוב שחיים את הטכנולוגיה.
הסתכלו בקטע שבין 29:23 ועד 34:25 בסרטון וידאו הזה. ברט ויקטור מדגים אפליקציה שפיתח לiPad שבעזרתה הוא יוצר אנימציות מבוססות פלאש, רק ללא הסיבוכיות והמורכבות שיש ביצירת אנימציה דומה בעזרת Adobe Flash (שהוא מדגים בתחילת הקטע).
יש לציין שהשיטה המורכבת נהוגה בכל תוכנת אנימציה ועריכת סרטים פופולרית ונחשבת לשיטה טובה ויעילה.
ברט מציע כאן שיטה פשוטה בהרבה וקצרה בהרבה. אם מנתחים את המוצר שלו מגלים שהוא מבוסס על עקרונות חווית המשתמש וזו גם הסיבה שהוא מוצלח כל כך:
1. פשטות בשימוש:
המערכת מחייבת את המשתמש להתעסק כל פעם באובייקט גרפי אחד (רקע/ ארנב/ וכו').
2. משוב מיידי:
המשתמש מזיז את האובייקטים ובזמן אמת רואה את התוצר שלו.
כאשר רוצים להגדיר לאובייקט איזור בלתי נראה ש"ירגיש" נכנסים אליו, אפשר לעשות זאת על-ידי שימוש במשתנה hitArea של המחלקה Sprite.
שימוש אפשרי הוא כאשר רוצים שתפריט יפתח, כמו בדוגמה הזו.
המחלקה VideoPlayer הופכת את החיים שלך לקלים מאד אם כל שאתה רוצה הוא לנגן קובץ וידאו בתוך האפליקציה הפלאשית שלך. רק השתמש בפקודה (videoPlayer.play(videoFileName והנה אתה כבר מנגן...
הערה: הדוגמא למעלה משתמשת בקבצים שנטענים מהאינטרנט בזמן אמת ולכן יכול להיות שהם נטענים מעט לאט. כמה אפשרויות: א- הורד את הסרטונים אל המחשב שלך; ב) שנה את הלינקים בקובץ לקבצים שנמצאים על המחשב שלך; ג) תן לסרטים לרוץ פעם אחת עד לסיומם ובהרצה שנייה (קורה אוטומטית) הם ינוגנו כמו שצריך.
חבר מהעבודה שלח לי לינק לסרטון הזה בטענה שאני יאהב את החבר'ה האלה, והוא אכן צדק!
המשחק הזה שהם עשו לאורביט פשוט מגניב והביצוע מטורף! ברמות גבוהות בהרבה ממה שאנחנו מכירים בארץ.
אם נתקלתם אי פעם במצב שבו יש לכם תמונה בשחור לבן שאתם רוצים להפוך את הרקע שלה לשקוף, ואולי גם לבדוק האם אובייקט אחר מתנגש בשארית שנותרה מהתמונה הזו - אז הנה הקוד בשבילכם.
הקוד מתעסק עם BitmapData.
אני השתמשתי בו למשחק שבקרוב אפרסם.
הבעיה
בכל משחק יש דמות ראשית. כשרוצים להוסיף אנימציות דברים מסתבכים. זה ידוע...
כאשר אתה מפתח משחק לבד עוד יש סיכוי שתצליח להסתדר, שהרי אתה עשית את זה בעצמך. אבל כשאתה עובד עם מעצבים גרפיים ואנימטורים, לך תצא מזה...
יש כאלה שאוהבים לעשות אנימציות עם tween של הפלאש (MotionTween או ShapeTween), ויש שאוהבים אנימציה רגילה מבוססת KeyFrame. ומה יקרה אם מתי שהוא הם יחליטו שהם רוצים לשנות את האנימציה או את אורכה?
הפתרון
הממשק שכתבתי כאן מתמודד עם הסוגיות הללו בדיוק. כל אנימציה מיוצגת על-ידי MovieClip אחד. בתוכו האנימטור / המעצב יכולים לייצר איזה אנימציה שהם רוצים: הליכה, ירייה, קפיצה, הבעות פנים למיניהן. האנימציה יכולה להיות מבוססת key frame או classic tween או כל אופן אחר שיבחר.
כל עוד זה נמצא בתוך MovieClip אחד זה לא מפריע. אין כאן הגבלה על אורך האנימציה ואין השפעה של מה שקורה בתוך האנימציה על המשחק עצמו.
הכל קורה במקביל.
במשך הרבה מאד זמן פלאש לא אפשר לגשת לספריית הקבצים במחשב מסיבות של אבטחה עד שהגיע Air.
עם Air 2.5 אפשר ליצור אובייקט שנקרא NativeProcess שמאפשר פתיחת אפליקציה חיצונית, בין אם היא קובץ הפעלה EXE או קבצי תוכנה כמו python ואולי עוד.
בכל אופן, הנה אפליקציית AIR שמראה כיצד ניתן להריץ כל תוכנה שרוצים: חלון אינטרנט, נגן, צייר וכו'. רק צריך להכניס את הקישור אל הקובץ שרוצים להפעיל. יש לציין שצריך להפעיל את קובץ הEXE, רק הוא יפעל (תדרש התקנה קצרה של האפליקציה). מצורף הFLA ובו הקוד המלא עם ההסברים. כמו כן, הנה קישור מהיר רק להתקנת האפליקציה ללא הקוד.
הנה פוסט שנשכח ולא התפרסם הרבה זמן. לא היה לי כוח לשכתב אותו, אז יאללה, כמו שהוא...
כנס הגלובל גיים ג'אם נערך לפחות אחת לשנה במקומות שונים בעולם בו זמנית. מטרת הכנס היא לשבת סופ"ש מלא אחד (48 שעות) ולפתח משחק מחשב. לוא דוקא אנשים שמכירים אחד את השני, לוא דוקא משהו שהתכוננו אליו מראש. פשוט להגיע, לשבת, לתכנן ולפתח - הכל בדיוק ב48 שעות.
הכנס של 2011 התקיים בסופ"ש האחרון.
אלה התוצאות (מפתחים עדיין מעלים את התכנים שלהם אז יש משחקים שאולי אין להם קישור למשחק בפועל).
בשבת שעברה פיתחתי משחק ראשון לAndroid בעזרת Flash שהתבסס על המשחק NinJump שהלהיב אותי בתקופה האחרונה. הפיתוח הזה הביא אותי (שוב) למסקנה שמאד קשה יהיה לפתח משחקים לאנדרואיד בעזרת פלאש.
גיליתי שישנה הגבלה של 24 פריימים לשנייה בכל אפליקצית פלאש באנדרואיד, לא משנה מה מגדירים בקוד. יש על זה די הרבה מאמרים וכתבות ברשת שמנסות להגיע, בעזרת אופטימיזציות נוקשות, למקסימום "נפלא" של 24 פריימים לשנייה.
באיזה שהוא מקום זהו הקש ששבר אותי... במיוחד אחרי הניסיון המעולה שיש לי עם תוכנת Unity3D במסגרת העבודה שלי. פשוט מאד לא נעים לי להודות שאולי באמת עבר זמנה של תוכנת Flash מבחינתי...
כמובן שלא אוכל לזרוק את הידע הזה לפח ובטוח אמשיך לעבוד עם פלאש. אבל זה די מצער שהביצועים של התוכנה השימושית הזו ירודים כל כך.
ניטקו היא חברת משחקים ישראלית של שניים, יובל מרקוביץ' ונעם אבטה. הם עושים משחקים לiPhone ונראה שהם די מצליחים בזה. המשחקים שהם משיקים מגיעים למקומות די גבוהים גם בהורדות בתשלום.
אפשר ללמוד מהמשחקים שלהם שהם די פשוטים מבחינת התפעול ועובדים על עקרונות מאד ותיקים וקלים להבנה. למשל: להגיע ליציאה (Rasta Monkey, Save Yoshi). המשחק Eco Punk הוא וריאציה של Fruit Ninga. שימו לב שהוא אפילו מתופעל באותו אופן בדיוק... אפשר היה לחליף את הגרפיקה ולשחק בשני המשחקים. בכך המשחק עושה שימוש במשחקיות שהוכחה כטובה ומצליחה.
ביום ראשון האחרון (29 במאי 2011) נערך כנס GameIS שהוא המפגש המרכזי של הקהילה הישראלית לפיתוח משחקי מחשב. להלן תקציר התרשמויותי מהכנס:
- משחק חדש בשם Splatters מאת הסטודיו Spiky Snail. משחק פיזיקה המציב בפני השחקן משחקיות קצת שונה ומקורית. המטרה לפוצץ את הדמויות שלך מעל האוצרות בצבע המתאים להם. החבר'ה עבדו על המשחק הזה כשלוש שנים ולכן הוא הרוויח גרפיקה ואפקטים מעולים. ראו סרטון.
- המשחק Rope Racket. משחק חשיבה וחידות מעניין ומאתגר.
- למדתי שמשחק טוב למכשירים סלולרי צריך להיות: קל להבנה אבל קשה להיות בו טוב; מבוסס על מסך אחד; זמן המשחק עצמו קצר ותמיד אפשר לנסות שוב. יש בלקחים אלו הרבה מן הברור מאליו, אבל כדאי לשים לב אליהם.
- למדתי שמשחק טוב לפייסבוק צריך שיהיה הרבה יותר מהיר מאשר מתוחכם; פחות חידתי ויותר מבוסס על מזל;
רעיון חכם מאד שבוצע כדי לנצל את הכוח של הfacebook למטרת שיווק המשחק הוא להציג לשחקן את עשרת החברים הקרובים שלו עם הניקוד הטוב ביותר במשחק. הקבוצה הזו של החברים הופכת להיות קבוצה עם ניקוד אחד והקבוצה כולה מקבלת פיצ'רים חדשים במשחק אם היא עוברת סך מסויים של ניקוד. כדי לקבל עוד ניקוד אפשר לשלוח מתנות מהמשחק עצמו לחברים שלך ובכך לעזור להם להרוויח נקודות רבות יותר.
- שיפור ביצועים בפלאש:
--- הומלץ להשתמש בSpriteSheet במקום בMovieClip כדי ליצור אנימציה בפלאש.
--- כשהמשחק / האפליקציה שלך נמצאים במצב של Pause מאיזו שהיא סיבה, דגום את המסך, הפוך אותו לתמונה והעלה אותה לבמה. הורד את הcontainer המכיל את המשחק מהstage וכך תאפשר למחשב לבצע פחות חישובי משחק שאינם דרושים באותם רגעים.
טום עובד בAdobe בתור מפתח של עולם המשחקים וככל הנראה היה בין אלה שהכניסו את מנוע הAlternative3D לתוך הפלאש. הוא אחראי לבלוג המאד מעניין FlashRealTime , המסקר בזמן האחרון עיניינים רבים בתחום התלת מימד, משחקים, פיתוח לניידים ועוד.
עדכון מאי 2011:
שמעתי הרצאה שלו בכנס GameIS שנערך השבוע והתרשמתי מאד. הוא המליץ בחום לחכות למנוע Alternativa3D ולהעביר את כל הקוד, גם ה2D להתבסס עליו בגלל אופן העבודה החדש ישירות מול הGPU של המחשב ובכך לחסוך במשאבים.