יום שני, 2 בינואר 2012

הטוב, הכייף והמכוער

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


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


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


"לכותב התמים, זו אולי נראית כמו הצעה לגיטימית."... 








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


"עבודה של מספר אנשים, היא תמיד יותר מסובכת"










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


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


"תתחילו לבד - במטרה להשלים ביחד"






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


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


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


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


"ברור מאליו, שעם כל המידע הזה, יהיה קל יותר..."










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


 "קיבלתם את "שרביט" ההנהגה..."








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


"אבל מה אם אתם בכלל גרפיקאים?"






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


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


מבחינת אנשי סאוונד - המצב כבר אחר










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


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


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


זה פשוט לא כזה מקצועי ולא כזה רציני.


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


...ונסיים בנימה קפייטליסטית זאת.


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