על "עיצוב משחקי מחשב"
מרפרוף קצר על השרשור שפתח אורן בעקבות רצונם הנלעז של אנשי תפוז לסגור את הפורום, החלטתי לפתוח שרשור/דיון בנושא הנ"ל. אני אביע את דעתי ועמדתי, ואז כולכם יכולים להסתער. מה זה "עיצוב משחקי מחשב"? בעולם פיתוח המשחקים, קיים מספר רב של מקצועות. העיקריים שבהם הם המתכנתים והגרפיקאים. במצב אידאלי, מתכנת עוסק אך ורק בתכנות, והגרפיקאי עוסק אך ורק בגרפיקה. ככל שהחברה קטנה יותר, האידאלים האלו נשברים פעמים רבות יותר, כי בחברות או בקבוצות קטנות צצים כל הזמן 'בלת"מים' (אם להשתמש במונח הצבאי), ואז הסמכויות לטיפול בו יכולות ללכת למגוון של אנשים, שלא בהכרח היו אמורים לטפל בו מלכתחילה. מקומו של מעצב המשחקים הוא איפשהו באמצע. המעצב הוא זה שדואג לאפיון המשחק, כתיבת המסמכים והובלת כל שלב הקונספט. מעצב משחקים חייב להכיר, ברמה כזו או אחרת, את שני הצדדים של עולם הפיתוח. הוא לא חייב לדעת תכנות, אבל הוא חייב להבין שכשהוא מבקש פיצ'ר מסויים, יש לזה מחיר (אם זה מבחינת מחקר, פיתוח מנוע חדש, ועוד). כשהוא מבקש שדמות כלשהי תיראה בצורה מסויימת ותבצע אנימציה כלשהי, הוא חייב להבין מה ההשלכות מצד הארט - כלי פיתוח, תלת/דו מימד, הזמן שלוקח לייצר את הפריטים הגרפיים ועוד. עיצוב משחק הוא תהליך מורכב, שדורש תרגול, התנסות ולמידה - בדיוק כמו לתכנת וליצור ארט. למה אני כותב את זה? אני מרגיש שהרבה אנשים כאן בפורום מפספסים קצת. הפילוסופיה שלי היא כזו: אם אתם מפתחים "לעצמכם", כלומר אם אתם בן אדם אחד שעושה הכל (תכנות, ארט, עיצוב), לכו על הפתרונות הקלים ביותר, אחרת אין לזה סוף. ראיתי הרבה חבר'ה (בעיקר בשנקר, שם למדתי ושם אני עכשיו מלמד) שלקחו על עצמם פרוייקטים ביוניטי בלי להבין את ההשלכות של יצירת פרוייקט בתלת מימד, שניתן היה לפתח אותו בחצי הזמן והמאמץ אם היו מפתחים על פלטפורמה אחרת. יצא לי גם להכיר אנשים שניסו ללכת על פיתוח המנוע, לא פחות ולא יותר, ואז בהרבה מקרים התוצאה הסופית פשוט לא מספקת - והם גם לא הצליחו לפתח משחקים. בתור מי שהתחום הזה מרתק אותו בלי הפסקה, אני כל הזמן מוצא את עצמי יושב ומתלהב מ-API כזה או אחר שיוצא לאור, או מפלטפורמה כזו או אחרת שנעשית זמינה. אבל הכלים שאני עושה בהם שימוש ביום יום בתור מפתח (להבדיל ממעצב!) נשארים זהים, כי אני חייב להיות ריאלי. ההתלהבות הזו היא טובה, אבל אם לא מרסנים אותה ומבינים מה אנחנו יכולים לעשות, כמה מאמץ זה ידרוש מאיתנו וכמה זמן זה יימשך - יהיה קשה מאוד להגיע ליעד, אם בכלל. התלהבות לא מרוסנת גם תגרור feature creep שיהרוג את המשחק שלכם באותה יעילות. כללי הזהב שלי למפתחים מתחילים: 1. תמצאו קונספט, שיהיה פשוט אבל מגניב (למשל - משחק של 5 אבנים לאייפון). 2. תחשבו רגע - למה אתם רוצים לפתח? כל תשובה היא לגיטימית, אבל היא גם מחייבת מבחינת התוצאה. כלומר, אם עניתם "בשביל להיות מיליונר", אתם חייבים להבין שמדמויות stick-man לא נעשים מיליונרים. אם עניתם "בשביל הכיף", אז כנראה שזה בסדר. 3. שבו ותחשבו על הפלטפורמה. פלאש? גיים מייקר? יוניטי? קורונה? - מה זה ידרוש מכם (ללמוד שפת תכנות? ללמוד מאיה?), ומה יהיה הכי נוח והכי ישים. 4. תשקיעו קצת במסמך. שבו, תאפיינו את המסכים, את הפונקציונליות שלהם, תנסו לחשוב על חוויית המשתמש בכל שלב ומה הוא צריך לעבור כדי להגיע למקום שהוא רוצה להגיע אליו (רמז: מינימום קליקים, מקסימום בהירות). זהו, בעקרון. אתם מוזמנים להגיב.
מרפרוף קצר על השרשור שפתח אורן בעקבות רצונם הנלעז של אנשי תפוז לסגור את הפורום, החלטתי לפתוח שרשור/דיון בנושא הנ"ל. אני אביע את דעתי ועמדתי, ואז כולכם יכולים להסתער. מה זה "עיצוב משחקי מחשב"? בעולם פיתוח המשחקים, קיים מספר רב של מקצועות. העיקריים שבהם הם המתכנתים והגרפיקאים. במצב אידאלי, מתכנת עוסק אך ורק בתכנות, והגרפיקאי עוסק אך ורק בגרפיקה. ככל שהחברה קטנה יותר, האידאלים האלו נשברים פעמים רבות יותר, כי בחברות או בקבוצות קטנות צצים כל הזמן 'בלת"מים' (אם להשתמש במונח הצבאי), ואז הסמכויות לטיפול בו יכולות ללכת למגוון של אנשים, שלא בהכרח היו אמורים לטפל בו מלכתחילה. מקומו של מעצב המשחקים הוא איפשהו באמצע. המעצב הוא זה שדואג לאפיון המשחק, כתיבת המסמכים והובלת כל שלב הקונספט. מעצב משחקים חייב להכיר, ברמה כזו או אחרת, את שני הצדדים של עולם הפיתוח. הוא לא חייב לדעת תכנות, אבל הוא חייב להבין שכשהוא מבקש פיצ'ר מסויים, יש לזה מחיר (אם זה מבחינת מחקר, פיתוח מנוע חדש, ועוד). כשהוא מבקש שדמות כלשהי תיראה בצורה מסויימת ותבצע אנימציה כלשהי, הוא חייב להבין מה ההשלכות מצד הארט - כלי פיתוח, תלת/דו מימד, הזמן שלוקח לייצר את הפריטים הגרפיים ועוד. עיצוב משחק הוא תהליך מורכב, שדורש תרגול, התנסות ולמידה - בדיוק כמו לתכנת וליצור ארט. למה אני כותב את זה? אני מרגיש שהרבה אנשים כאן בפורום מפספסים קצת. הפילוסופיה שלי היא כזו: אם אתם מפתחים "לעצמכם", כלומר אם אתם בן אדם אחד שעושה הכל (תכנות, ארט, עיצוב), לכו על הפתרונות הקלים ביותר, אחרת אין לזה סוף. ראיתי הרבה חבר'ה (בעיקר בשנקר, שם למדתי ושם אני עכשיו מלמד) שלקחו על עצמם פרוייקטים ביוניטי בלי להבין את ההשלכות של יצירת פרוייקט בתלת מימד, שניתן היה לפתח אותו בחצי הזמן והמאמץ אם היו מפתחים על פלטפורמה אחרת. יצא לי גם להכיר אנשים שניסו ללכת על פיתוח המנוע, לא פחות ולא יותר, ואז בהרבה מקרים התוצאה הסופית פשוט לא מספקת - והם גם לא הצליחו לפתח משחקים. בתור מי שהתחום הזה מרתק אותו בלי הפסקה, אני כל הזמן מוצא את עצמי יושב ומתלהב מ-API כזה או אחר שיוצא לאור, או מפלטפורמה כזו או אחרת שנעשית זמינה. אבל הכלים שאני עושה בהם שימוש ביום יום בתור מפתח (להבדיל ממעצב!) נשארים זהים, כי אני חייב להיות ריאלי. ההתלהבות הזו היא טובה, אבל אם לא מרסנים אותה ומבינים מה אנחנו יכולים לעשות, כמה מאמץ זה ידרוש מאיתנו וכמה זמן זה יימשך - יהיה קשה מאוד להגיע ליעד, אם בכלל. התלהבות לא מרוסנת גם תגרור feature creep שיהרוג את המשחק שלכם באותה יעילות. כללי הזהב שלי למפתחים מתחילים: 1. תמצאו קונספט, שיהיה פשוט אבל מגניב (למשל - משחק של 5 אבנים לאייפון). 2. תחשבו רגע - למה אתם רוצים לפתח? כל תשובה היא לגיטימית, אבל היא גם מחייבת מבחינת התוצאה. כלומר, אם עניתם "בשביל להיות מיליונר", אתם חייבים להבין שמדמויות stick-man לא נעשים מיליונרים. אם עניתם "בשביל הכיף", אז כנראה שזה בסדר. 3. שבו ותחשבו על הפלטפורמה. פלאש? גיים מייקר? יוניטי? קורונה? - מה זה ידרוש מכם (ללמוד שפת תכנות? ללמוד מאיה?), ומה יהיה הכי נוח והכי ישים. 4. תשקיעו קצת במסמך. שבו, תאפיינו את המסכים, את הפונקציונליות שלהם, תנסו לחשוב על חוויית המשתמש בכל שלב ומה הוא צריך לעבור כדי להגיע למקום שהוא רוצה להגיע אליו (רמז: מינימום קליקים, מקסימום בהירות). זהו, בעקרון. אתם מוזמנים להגיב.