יום ראשון, 30 באוקטובר 2011

רשומונת: סיבה לאופטימיות

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


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


אבל הינה, אני שמח להגיד שמצאתי את הדוגמה המושלמת ל"משחק" שמלמד, ושכייף לשחק בו. לא סתם שמתי את המילה משחק במרכאות, כי למרות שהוא כיפי מאוד וממכר, הוא ללא ספר כלי לימודי קודם כל. והמשחק הזה הוא Rocksmith






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


הוא הקפיץ את כמות התרגול שאני עושה על גיטרה, ממשהו כמו 4-5 שעות בשבוע למשהו כמו 14 שעות בשבוע, וזה ממש כייף וממכר, מעבר לזה שאני מרגיש שאני משתפר ממש מהר, ובצורה הרבה יותר טובה מאשר אם הייתי מתאמן לבד. ממש אין מה להשוות את זה ללהתאמן לבד.


אז כל זה נחמד מאוד, אבל מה הקשר בין זה לפיתוח משחקים?


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


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



יום שישי, 7 באוקטובר 2011

תכנות - מה השאלה?

בסדרת הספרים של דאגלס אדאמס, מדריך הטרמפיסט לגלקסיה, מוצגת

התשובה לחיים, היקום וכל השאר


שכידוע היא 42. זו התשובה הודאית אליה הגיע המחשב הכי חזק ביקום אחרי 7 וחצי מליון שנה. מה שמעלה את השאלה - מה השאלה? 


זה כמו לפתור חידה, ולהרגיש פתאום שנהיית יותר חכם.

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

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

תכנות הוא אומנות. נכון אנחנו המתכנתים הרבה פעמים נחשבים יצורים מרובעים, אנליטיים, שכל הנושא של הרוח והאומנות רחוק מהם שנות אור. אבל קודים של מתכנתים, והאופן שהם ניגשים לבעיות,  ופותרים אותן,  השמות שהם בוחרים לתת למשתנים ואפילו האופן שבו הם מתעדים את הקוד (כשהם עושים את זה),  כל אלה הם כמו משיכות מכחול עם צבע על קנוואס.  שילוב פרטים חסרי משמעות בפני עצמם, שמתאגדים  יחד ליצירה מרשימה....
זאת במקרה הטוב. האמת היא, שהרבה פעמים במיוחד בהתחלה, אנחנו מיצרים כזה זבל, שאם תתנו למישהו שמבין משהו להסתכל על זה, הוא יחזור על המנטרה "what the f$%k" בזמן שהוא יטיח את ראשו במסך בתסכול. לעשות דברים יפים בתכנות זה לוקח זמן, וזה דורש התמדה, יכולת וכישרון. לא כל אחד יכול לעשות את זה, ולכן כשמגיעים לשלב הזה כשכבר מיצרים דברים שהם באמת מיוחדים, הסיפוק הוא כה רב. 
התחושה של הסיפוק הזה היא כל כך נפלאה, שזה כמו לפתור חידה, ולהרגיש פתאום שנהיית יותר חכם. אם אתם צריכים תזכורת אייך זה מרגיש, אתם יכולים ללכת לשחק  משחק שמבוסס (לפחות בחלקו) על חידות חשיבה. תנסו את braid, את portal, או אולי את ico (מומלץ בחום).

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

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


הרי רוב האנשים שמגיעים לתכנת, הם אנשים עם מוח ריאלי, הם טובים יותר במתמטיקה מאשר בספרות, יותר טובים בלהבין  את הנתונים ולענות על שאלה, מאשר לנתח את הלך רוחו של הגיבור. 
הם מבינים מה זה sin ופחות מעניינת אותם ההיסטוריה של סין, ו... טוב, הבנתם את הרעיון.

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

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


לימודי תכנות מתחילים תמיד כמו לימודי מתמטיקה.
מלמדים אותנו דרך לפתור בעיות



הזכרתי כבר בפוסט קודם את השאיפה של מפתחי משחקים הרבה פעמים ליצר משחקי טריפל A. ובכן במשחקי טריפל A יש הרבה יותר שאלות לשאול, והרבה יותר תשובות לענות עליהן.  לכל משחק יש את המורכבות שלו, והרבה פעמים אנשים שמתחילים לעבוד על פיתוח משחקים, נתפסים על פרויקט שהם רוצים לעשות, שהוא הרבה מעל היכולת הנוכחית שלהם. כמו שמישהו שקרא ספר בישול, לא יכול לנהל מטבח של מסעדה  עם שני כוכבי מישלן. כך מישהו שמתחיל לפתח משחקים, לא יכול על ההתחלה לעשות משחק ברמה של Call of Duty. חלק חשוב מלדעת, מתי ליצר משחק איקס עיגול, מתי whack a mole ומתי god of war זה לדעת לשאול את השאלות ששואלות מה צריך כדי לבנות את המשחקים האלה.  חשוב לראות שגם אם אנחנו עדיין לא יודעים את התשובות, לפחות יש לנו מספיק כלים כדי לפתור את השאלות האלה תוך כדי עבודה על המשחק. מה שבטוח זה, שאם אנחנו אפילו לא יודעים לשאול את השאלות הנכונות, המציאות תטפח לנו בפנים במוקדם או במאוחר. ואין דבר מתסכל יותר, מלעזוב פרויקט שהשקעת בו זמן רב, כי גילית מאוחר מידי שאתה פשוט לא מוכן אליו. 

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


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

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

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


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

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


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


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

אז פתאום המתמטיקה הקרה והקשוחה הזאת, שמפחידה כל כך הרבה ילדים בבתי הספר, הופכת לכלי שמאפשר לעשות קסמים על המסך.




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


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

לסיום אני אספר לכם משהו על הפוסט שלא פורסם. הפוסט האחר, ששמור אצלי בארכיון למקרה ש.
חבר שלי, שהוא גם מתכנת לאיפון, שאל אותי למה אני לא כותב איזה פוסט הארדקור על תכנות. כאילו אני מדבר על גרפיקה, על גיים דיזייגן, אבל למה לא תכנות, הדבר שאני הכי עושה ביום יום. אז התחלתי לכתוב פוסט על הכלים שאפשר לתכנת איתם משחקים מה ההבדל ביניהם, ועל objective c, ו cocos2d ו box2d שאלו הדברים שאני בעיקר משתמש בהם כיום. ואתם יודעים מה, יצא לי פוסט ממש משעמם.
מגיעים לשלב שכתיבת קוד הופכת לאומנות. וזה גם השלב שנותן לנו המתכנתים את תחושת הסיפוק הזאת של הישג.

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

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

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





יום שני, 26 בספטמבר 2011

אייך להיות גרפיקאי למשחקים וליצר סימביוזה

יש הרבה דברים להגיד על מה דרוש כדי להיות גרפיקאי טוב למשחקים. ובואו נבהיר קודם כל, שאני לא.
אני מפתח משחקים טוב מאוד, game designer, לא רע,  אבל במה שנוגע לגרפיקה אני נוטה לפתרון של הומר סימפסון -
 let someone else do it.
למשחק צריך לעצב דמויות, ורקעים, מכשולים, אויבים, ואנימציות, וצריך שהם יתאימו גם לתכנות של המשחק. זו עבודה הרבה יותר מורכבת ממה שהרבה אנשים חושבים.




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


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


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


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


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




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


אם להגיד את זה ביותר פשטות, תשקיעו בציור יותר בדברים שחשובים יותר במשחק, ופחות במה שפחות חשוב.


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


רמת פרטים ואיכות היא גם חשובה. חלק מהאיכות של אלמנטים גרפיים, משפיעה על המיצוב של מה שמעוצב. ואם להגיד את זה ביותר פשטות, תשקיעו בציור יותר בדברים שחשובים יותר במשחק, ופחות במה שפחות חשוב. תארו לכם למשל משחק, שעיצבתם דמות, והיא חמודה ונראית טוב, ומעצם זה שלמדתם כמה דברים על עיצוב דמות בזמן שעבדתם עליה, כשאתם עובדים לעצב את האויב, האויב נראה משמעותית יותר טוב. זה יכול אשכרה לגרום למצב, שהשחקנים יזדהו עם האויב יותר מעם הדמות. 
זה כמובן נוגע גם לאנימציות. יותר אנימציות לדמות ראשית פחות לאויבים. יותר אפקטים ל power-ups, פחות לרקע. 
בכלל הנושא של עיצוב דמויות, הוא רחב ומורכב. ואני אולי ארחיב יותר באחד הפוסטים העתידיים.


יש שגידו שהגרפיקה של Braid מוזרה, אבל אין ספק שהיא עובדת ומתאימה, ומשדרת כמה המשחק מיוחד.


הנושא של פרטים הולך כמעט יד ביד עם מידות. מידות הן דבר מאוד חשוב במשחקים.
אפשר לעצב דמות עם המון פרטים בגודל של 6000X6000 פיקסלים, אבל אם נצמצם את הדמות בסופו של דבר ל 128 על 128, אז הרבה דברים יכולים ללכת לאיבוד. הגודל  שבהם האלמנטים הגרפיים מיוצאים, לפני שנותנים אותם למתכנת שיכניס למשחק הם חשובים מאוד. אם נתנו לי גרפיקה, שהגודל שלה גדול מידי, או קטן מידי, זו בעיה. אם הוא גדול מידי, אפשר אולי להקטין בקוד, אבל זה לא מומלץ, וכמעט תמיד גורם לאיזושהי ירידת איכות. אם הגודל קטן מידי, המצב יותר גרוע, כי תמיד אם מגדילים טקסטורה מעבר ל 100% גודל מקורי שלה, זה אומר שהגרפיקה תצא באיכות פחות טובה. הגדלה דרך קוד אומרת, שאנחנו מיצרים פיקסלים שלא היו קיימים בתמונה המקורית, והחדות של התמונה בהכרח תרד.
מעבר לזה, אם נגיד הכנסנו תמונה של חבית למשחק, על מנת ליצור איזשהו אלמנט גרפי, והחווית יותר גבוהה מהדמות שלנו, באופן שמפריע לשחקן לחשוב עליה בתור חבית, או גורם לדמות להרגיש יותר קטנה ממה שהיא אמורה להרגיש, אז בעצם באמצעות גרפיקה לא מתאימה מבחינת מידות, השפענו על הנרטיב של המשחק באופן שלא היינו אמורים. זה דומה ללהכניס סאוונד שלא מתאים בתור אפקט. למשל קול של זכוכית נשברת, על בלון מתפוצץ. 


יש עוד גורמים שמפיעים על המראה של גרפיקה במשחק, מבחירת פונט נכון, בנייה של GUI ועוד. אבל מה חשוב הוא קודם כל פשוט להיות מודעים לתפקיד של הגרפיקה במשחק, להבין שאם הדברים לא יעבדו ביחד, אז לא משנה כמה הם יפים בנפרד. גרפיקה טובה ומאוזנת נכון, יכולה ליצור מראה מדהים ומעניין שיכול לתרום להצלחה של משחק. תסתכלו על העיצוב של Braid   או של Limbo יש שגידו שהגרפיקה של Braid מוזרה, אבל אין ספק שהיא עובדת ומתאימה, ומשדרת כמה המשחק מיוחד. ב Limbo יש גרפיקה של צללים, הכל בלבן שחור וגווני אפור. מה שהוא מצד אחד טריק, שעזר לעשות גרפיקה עם מעט פרטים יחסית, ולאפשר לפיזיקה של נפילת הדמות ופציעתה להראות טוב מצד החד, רק תרם למראה מיוחד של המשחק, ולהשפעה הפסיכולוגית העמוקה שלו. שני המשחקים גם מאופיינים בסאוונד מאוד נכון, שמחזק את המשחק וההשפעה שלו. מה שרק מראה שהעקרונות בין תאימות האלמנטים של הגרפיקה נכונים גם לתאימות הסאוונד. 


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


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




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


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


Braid

יום שבת, 24 בספטמבר 2011

מישהו הזיז את הטריפל A שלי?







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








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


כמעט בכל גיימר יש את ה  game designer wanaabe. הקול הזה שאומר "אם רק היתה לי אפשרות הייתי בונה את המשחק מחשב הכי טוב בעולם". זה מדהים כמו הקול הזה יכול להיות משכנע ומלא  התלהבות. 


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


כמעט תמיד כשגיימר חושב על לבנות משחק, מדובר במשחק טריפל A, משהו בסיגנון call of duty, או GTA, או אולי דיאבלו.  תמיד מדובר במשחק מדהים עם המון תוכן, עם גרפיקה עשירה, וסאוונד של הפקה הוליוודית. למה לחלום בקטן כשאפשר לחלום בגדול.


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


לא משנה איזו קבוצה של כישרונות אירגנת ביחד, וכמה מלאים מוטיבציה הם בהתחלה,  לבנות משחק כקבוצה, (ובמיוחד כשחברי הקבוצה לא מקבלים תשלום) זה פשוט קשה.


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


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


ובכל זאת אני הולך לנסות לעשות בדיוק את זה, וכפי שאמרתי, הנימוק שלי יהיה חור באדמה. 


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






שמעתי את ההשוואה הזאת בהרצאה ב TED, בן אדם קונה רדיו לרכב, הוא יכול לקנות אותו ליד הבית  ב 200$, או בצד השני של העיר ב 100$, כמעט כל מי שתתן לו את ההשוואה הזאת, יארוז את הפק"לאות, ויסע לצד השני של העיר, ויחסוך 100$ (שהם 50% למתקשים) בקניית הרדיו. ובנוסף לזה, הוא ירגיש ממש טוב עם עצמו. אבל תן לאותו בן אדם לקנות מכונית, שליד הבית תעלה לו 20,200$ ובצד השני של העיר 20,100$ ופתאום הכל משתנה. פתאום הנסיעה לצד השני של העיר בשביל אותו חיסכון של 100$ הופכת לסתם בזבוז זמן. כאילו שאם אתה לוקח את ה 100$ שחסכת מקניית רדיו, לעומת 100$ שחסכת בקניית מכונית כדי לקנות בסופר, אז ה 100$ של הרדיו שווים יותר. 


...זו היתה החוויה שלו, וזה גם מה שיהיה חשוב במשחק שלכם החוויה. 


אייך זה מתקשר לחור באדמה, ולפיתוח משחקים?  בואו נמשיך עוד קצת עם כסף ונחשוב מה זה בן אדם עשיר בשבילנו . כולנו היינו שמחים להיות עשירים, לחיות בבית גדול, להיות להיות בעלים של מכונית ספורט נוצצת, ואולי גם יאכטה, לנסוע לחו"ל כל הזמן, ובקיצור Livin' la vida loca. אבל מה שאנשים לא שמים לב זה, שהם כבר עשירים. בואו נחשוב על המלך הנרי השמיני, הוא לא סתם היה עשיר, הוא היה מלך, היו לו ארמונות, נשים, צבא, והוא אכל בשר ושתה יין בכל ארוחה. כל מה שאדם באותה תקופה יכל לחלום עליו. אבל אפילו אסלה עם מים זורמים, לא היתה לו. במקרה הטוב היה לו חור באדמה או משהו מקביל. כולנו חיים יותר טוב ממה שחי הנרי ה 8, במובן הזה כולנו עשירים, ובכל זאת, אנחנו לא מרגישים את זה כי אנחנו חיים בעולם אחר. עולם שאפשר להזמין פיצה בשיחת טלפון, שאפשר להגיע לצד שהשני של העולם תוך פחות מ24 שעות, ושיש לנו מתי שאנחנו רוצים מים חמים להתקלח.  אבל מה שחשוב להבין זה שהנרי ה 8 כן הרגיש שהוא אדם עשיר ומלא כוח (בזמנים שהוא לא היה מטורף על כל הראש, וכשהוא עוד לא סבל מהפציעה הקשה שלו ברגל). זו היתה החוויה שלו, וזה גם מה שיהיה חשוב במשחק שלכם החוויה. 


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


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


בסופו של דבר מה שהופך את המשחק שאנחנו בונים לטוב יותר או פחות, הוא כאמור החוויה שהוא יוצר אצל האנשים. אנשים נהנים ממשחקים בדרכים שונות, בין אם הם מחייכים מהתאמת יהלומים ב Bejeweledמתמלאים מפחד מהעכביש ב Limbo, נהנים מלקצור את הפרות שצמחו באופן וירטואלי בפארמוויל, או מתמלאים תדהמה מפתרון חידה ב Braid. לא משנה אם אתם יוצרים משחק קזואל קטן ופשוט, או משחק מורכב ומלא תוכן כמו Gears of war, החוויה האנושית, הרגשות שהשחקן מרגיש כשהוא נהנה, מופתע או מפחד הם אף פעם לא קטנים או קאזוואלים.


 שלא תבינו אותי לא נכון, ליצר משחק שעושה את זה בשביל אנשים, דורש ידע, עבודה קשה, כישרון וניסיון, אבל הוא לא חייב לדרוש מנוע של FarCry.


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


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


אם אתם מתחילים, תתחילו בקטן, תבנו משהו Game Maker או Game Salad, ותראו אם אתם מרוצים ממה שיצא לכם.


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


היום למשל, אחד המשחקים שאני עובד עליו, הוא משחק שהמשחקות הבסיסית שלו דומה לשובר קירות הישן והטוב. אם זה נשמע לכם לא כזה מרגש,  תחשבו אולי פופקורן, ואולי אפילו pegel. הנקודה היא שהדגם הראשון של המשחק הזה שבניתי, נבנה כבר לפני שנתיים עם אחד הכלים היותר פשוטים שקיימים Game Maker אבל כבר אז, עם הגרפיקה הכי פשוטה בעולם, הוא היה כייפי. וככל שעבדתי עליו יותר הוא נהיה כיפי יותר. 


אם אתם מתחילים, תתחילו בקטן, תבנו משהו Game Maker או Game Salad, ותראו אם אתם מרוצים ממה שיצא לכם. אם אתם מצליחים לעשות משהו שאתם ממש נהנים ממנו, תנסו לראות מה אתם צריכים לעשות, כדי באמת להכניס לו גרפיקה וסאוונד שלם, וליצור משהו שממש מרגיש כמשחק שלם.


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


אם עשיתם את זה אפילו עם משחק ממש קטן ופשוט. עשיתם צעד ענק קדימה, להשלים משחק ממש, ולהביא אותה לרמת גימור שהוא מרגיש כמו משחק שלם, שאנשים ישלמו עליו כסף, זה אתגר לא פשוט בכלל. אין דבר קשה כמו לסיים את ה 5-10% האחרונים של המשחק, ולא להתפתות לקפוץ לפרויקט אחר, חדש ויותר מרגש.


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