פיתוח משחקי מחשב
אז… לחצתם על הקישור הזה בתקווה לקבל פרספקטיבה על עולם פיתוח משחקי המחשב.
אתם בידיים טובות!
במאמר אציג מה צריך ללמוד ואילו יכולות צריך לפתח.
ה-מה ולא ה-איך
אני אשתדל להתמקד ב-מה ולא ב-איך.
ז”א זה לא יהיה מדריך “איך לבנות משחק” אלה מאמר המסביר דברים שונים על עולם פיתוח המשחקים.
כלים וידע
עולם הפיתוח הוא עולם רחב וקיימים הרבה כלים, והרבה טכניקות.
אני לא אכסה את כל הכלים שיש בעולם במיוחד כלים שמשומשים בתעשיות היותר גדולות ובמשחקי AAA.
אלו כלים שבדרך כלל עולים הרבה כסף לכן הם פחות רלוונטיים.
גודל הצוות ויכולת הפיתוח
כל מה שאני הולך לדבר עליו לא בהכרח חייב להיות קיים בכל משחק.
זה בעיקר תלוי בגודל הצוות והתקציב של המשחק.
לכן אל תיבהלו ותחשבו שעליכם לעשות את הכל וזה מסובך מדי.
ההפך הוא הנכון - כיום יש הרבה כלים שבעזרתם ניתן לפתח, לעצב ולשווק משחקים.
ככה שזה לא מורכב למדי :)
משחקי Indie - Independent developers
החל מאדם אחד ועד לצוות קטן של בודדים.
מכיוון שמפתחים כאלו נמצאים לבדם עליהם לעשות את הכל,
- עיצוב המשחק
- עיצוב גראפי
- פיתוח מערכות וכלים
- סאונד
- שיווק
- ניהול קהילה
החלק הקשה יותר הוא דווקא ניהול קהילה ושיווק.
אנשים שבונים משחקים ובעלי ניסיון בבנייה ייתקשו יותר להביא את המשחק שלהם לאנשים ולבנות קהילה סביב המשחק שלהם.
כמה דוגמאות למשחקי Inde:
- Hades
- Dead Cells
- Spelunky
- Undertale
- Minecraft
צוותים קטנים ועד לחברה בינונית
סטודיו לפיתוח משחקים הוא בדרך כלל חברה רשומה.
זה יכול להיות אדם בודד שעובד כ-Freelancer או קבוצה מרשימה של אנשים שעובדים לפיתוח משחק.
אני חושב שרוב הסטודיויים בעולם הם כאלו, לא חברות ענק אבל גם לא חברה של 5 אנשים.
וככל הידוע לי סטודיויים עובדים עם חברות אחרות או חברות שיווק כדי להצליח יותר בשיווק המשחק שלהם.
חברות AAA
אלו חברות ענק שברשותן תקציבים ואנשים.
כמה מהמשחקים הגדולים של העשור האחרון:
- Call of Duty
- Grand theft auto
- Cyberpunk 2077
- Assassin creed
- Ghost of Tsushima
ואלו רק דוגמאות בודדות!
ידעתם - גם Minecraft נחשב למשחק AAA כיום!
תחילת הפיתוח שלו התחיל בבחור בשםNotch
אשר פיתח לגמרי לבד את העולם של המשחק.
עד שבסוף הוא נמכר למייקרוסופט.
רבדים בפיתוח משחק
אילו תפקידים ואילו יכולות צריך כדי להביא את הרעיון למציאות.
ידע טכני
תכנון ובניית המשחק בפועל.
- כתיבת קוד
- פיתוח כלים למעצבים ויוצרי תוכן
- איזון מערכות
- מערכות חלקיקים
- מערכות רנדור
- ממשקי משתמש
- סאונד וכתוביות
- כתיבת האתר
- תחזוקה ותיקון באגים
מנועים וכלים
הידע הטכני כולל יכולות תכנות ושימוש בכלים - אם לא בהכרח לתכנת.
למפתחים בודדים קיימים תוכנות שעוזרות בפיתוח משחק אפילו בלי לתכנת, בדרך כלל לתוכנה כזו קוראים “מנוע”.
כמה דוגמאות פופולריות:
Unity
Unreal Engine
Game maker
RPG Game maker
חברות וסטודיויים בעלי ותק וניסיון כנראה מפתחים כלים משלהם או משתמשים בכלים ומנועים גדולים.
למשל:
- Call of Duty
- Need for speed
- GTA
Unity ו-Unreal Engine עשו לעצמם שם בתעשייה.
אחת הבעיות הנפוצות של חברות היום זה ניידות בין מערכות הפעלה.
לא תמיד משחק שמפתחים ל-Windows יכול לרוץ על MacOS או Linux.
שלא לדבר על לפתח משחק שמתאים גם למחשב וגם ל-Xbox, Playstation, Occulos או Switch.
לכן חברות ומפתחים צריכים להחליט על אופן הפיתוח ועל המוגבלויות שהם שמים לעצמם.
דוגמת Minecraft:
שחקנים תהו להם Minecraft לא היה בטלפון ולמה הגרסאות שונות.
למה הוא לא הגיע ל-XBOX או בפלטפורמה אחרת.
הסיבה העיקרית היא שהוא פותח ב-JAVA עם LWJGL.
וזה היה קשה לנייד לפלטפורמות אחרות ולכן שנים רבות המשחק היה קיים רק לדסקטופ ב-Windows.
ספריות פיתוח ושפות תכנות
אני נמצא באסכולה הזו - לא אוהב להשתמש בכלים מוכנים כי אני רוצה לדעת כיצד לבנות ולרנדר משחקים.
בעצם איך הכלים עצמם בנויים.
יש לזה את החסרון שלו - לפתח כלים משלך או להשתמש בשפות תכנות עם ספריות יכול להיות די מאתגר.
- אין כלים גראפיים שעוזרים ומאיצים את פיתוח המשחק.
- רמת הניידות של ספריות היא נמוכה מזו של הכלים המוכנים.
- פיתוח לדפדפנים שונה לחלוטין ושוב רמת הניידות נמוכה בדרך כלל.
- לעיתים אין פתרונות זמינים לבעיות שכיחות כגון ממשקי משתמש.
- דרושים מפתחים מנוסים בעלי ידע כדי להתקדם מהר
יש חסרונות רבים אך כך גם היתרונות:
- כאשר מדובר במשחקים קטנים גודל המשחק יהיה קטן יותר מאשר לפתח בכלי כבד.
- רמת הניידות של הקוד היא גבוה וניתן לכתוב קוד כרצוננו.
לכן להביא תמיכה לפיצ’ר כלשהו בדרך כלל יהיה קל יותר או לזנוח משהו כגון מערכת תאורה או מערכת אחרת שלא מוצאת חן בעינינו. - לומדים מזה הרבה
- אין תמלוגים לשיווק המשחק
- אין תגיות כגון “Made with….”
ההיבט האומנותי
עיצוב המשחק
תכנון המשחק, החל מחשיבה של הרעיון ועד לביצועו.
בעצם מעצבי משחקים יכולים להתחלק לכמה סוגים:
- מעצב מערכות טכניות - מגיע מההיבט המתמטי והטכני.
למשל כמה נשק מסוים מוריד חיים של דמות. - מעצב שלבים ומפות
בין אם זה משחק FPS שמאפשר מקומות לרוץ, להתחבא או לשלוט בהם או בין אם זה משחק פאזל שאמור לאתגר את החשיבה. - מעצב דיאלוגים וסיפור - אחראי על הסיפור והכתיבה
- מעצב חוויה - איך הכל נכלל בחוויה הכללית של השחקנים.
עיצוב משחק הוא יותר ידע תאורטי שפרקטיקה וניסיון מאוד חשובים.
ספר מומלץ בנושא הוא - Game design Theory and Practice.
יש גם כמה ערוצי YouTube מפורסמים מומלצים לנושאים האלו:
דרך טובה לחשוב על הנושא זה להתחיל להסתכל על משחקים בעין שונה,
במפה כלשהי תצפו אילו אלמנטים קיימים שם, אולי צוקים לקפיצות, יערות להסתתרות או נוף מרהיב.
תבצעו ניתוחים משלכם על משחקים שונים ואיך האלמנטים בתוכם עובדים אחד עם השני,
המורכבות של משחק הוא מה שנותן לו עומק וככל שתראו יותר דוגמאות ככה תבינו יותר את הנושא.
הנפשה וציור
- ציור ועיצוב דמויות
- עיצוב רקעים
- הנפשה דו מימדית ותלת מימדית
- עיצוב ותכנון תפריטים
- הנפשה בעזרת שחקנים
כמו בתכנות, ציור והנפשה יכולים להיעשות ידנית או בעזרת כלים.
זה גם משתנה בין אם זה תלת מימד או דו מימד,
איזה סגנון ציור עושים,
איך הגראפיקה נראת וכדו’…
הבחירה הראשונה צריכה להיות סגנון הציור:
- דו מימד או תלת מימד
- סגנון ווקטורי, פיקסלי, ריאליסטי וכדו’
- מה יכולות הציור של הציירים - יותר טובים בפיקסל ארט, תלת מימד וכדו’
- איכות התמונות וגודלם - אם בחרנו גודל 64X64 לדמות שלנו, נצטרך לצייר את כל המשחק ברמת דיוק כזו.
הבחירה צריכה להתאים לסגנון המשחק וסגנון הציירים, אחרת יהיה מאוד בעייתי להנפיש הכל.
כמו כן צריך ללמוד לא להפריז יותר מדי, ניתן לצייר אנימציה לכל דבר אך זה ייעלה זמן וכסף.
זו הסיבה למה רוב הציור במשחקים הוא סטטי.
כלים לדו מימד
הכלים האלו טובים לציור פיקסלים וטקסטורות.
- Photoshop
- Paint.net
- Gimp
- Aseprite
- Lospec Pixel Editor
כלים לתלת מימד
ליצירת מודלים ואנימציות
- Blender
- Cinema 4D
- Maya (3D)
סיפור ודיאלוגים
- כתיבת סיפור ועלילה
- כתיבת דיאלוגים
- כתיבת טקסטים כגון הסברים ומדריכים
- כתיבת תוכן באתר או בפורומים
סיפורים ודיאלוגים תלויים בכתיבה יוצרת.
יכול להיות לכם “רעיון כללי” אך כשהזמן לממש אותו מגיע זה קשה יותר לחשוב על דיאלוגים וכתיבת העלילה אם היא ישנה.
מה אתם יכולים לעשות כדי להשתפר?
- לקרוא ספרים
ספרים זו דרך מצוינת לדעת יותר על השפה הכתובה ולקבל השראה מסיפורים שאנחנו אוהבים. - לבחון את הדיאלוגים במשחקים שונים
למשל הוויטצ’ר 3 זו יצירת מופת, והדיאלוגים כתובים ברמה גבוה. - לקחת קורס בכתיבה או ללמוד כתיבה
תכתבו, ותכתבו הרבה!
שירה, סיפורים קצרים, נושאים, דיאלוגים וכדו’…
כמו כן אתם יכולים גם לא לעשות את זה לבד אלה לשלם למישהו על דיאלוגים.
ישנם FreeLancerים רבים שמוכנים לעשות את זה והם עושים את זה ברמה גבוה.
או לשכור מישהו לכמה חודשים זו גם אופציה במידה והתקציב מאפשר זאת.
סאונד ומוזיקה
- דיבוב
- סאונד לדמויות ולפעולות
- מוזיקה שכוללת נגנים או מקהלות
מוזיקה טובה תורמת למשחק, עוזרת למקד את השחקן בתוך המשחק ונותנת תחושה ייחודית.
מה הכוונה תחושה ייחודית?
כשמשחקים במשחק המוח מבצע קישור בין מה שהוא שומע למה שהוא רואה,
וכאשר אתם שומעים סגנון מוזיקה מסוים אתם ישר יודעים - אם זה בוס, מקום שקט, משימה וכדו’..
כמו ברובד הסיפורי גם כאן אתם יכולים ללמוד לבד ליצור ולחבר סאונד,
סאונד שמרכיב פעולות כמו קפיצה, פגיעה או ירייה ניתן למצוא ברשת די בקלות,
חשוב למצוא סאונד חינמי שניתן להשתמש בו.
לאחר מכן אפשר לערוך אותו כדי שיתאים למשחק.
כלי מדהים שעובדים איתו רבות זה - Audacity.
כסף וההיבט המשפטי
תקציבים
כל משחק צריך להיות מתוכנן גם לפי תקציב,
ההוצאה לאור שלו מחייבת בדיקות משפטיות אם כי לא בהכרח.
תלוי באיזו הוצאה מדובר, האם הוא משחק מרובה משתתפים ברשת ויש הרשמה ונתונים שנשמרים,
התחברות עם פייסבוק/גוגל או בעזרת אימייל.
הכסף בסופו של דבר תורם לגודל של התוצר הסופי או לאיכות שלו.
אם נניח יש לכם 2 מפתחים ואתם צריכים להחליט אם לפתח פיצ’ר נוסף או להשקיע זמן בלהביא פיצ’ר קיים ל100% איכות.
בכללי פיתוח משחק מחשב זה ניהול של מוצר תוכנתי וכל חברה בתחום התוכנה מוצאת את עצמה בדילמה הזו.
המרקטינג והמחקר דורש תכונות מסוימות אך אנשי המקצועי הטכניים יודעים אם הם יכולים לעמוד בהבטחות האלו או לא.
רישיונות
אם אתם מנהלים סטודיו או חשבתם לפתוח סטודיו זה חשוב לדעת שיש רישיונות ולוודא את התקינות המשפטית של הרישיונות.
לא מדובר כמובן בסטנדרט רפואי שדורש התייחסות מרובה אך צריך לשים לב לכמה דברים:
- שימוש ב-Open Sourceים.
- שימוש בכלים חינמיים.
- כלים שבדרך כלל בשתלום אך יש גרסא חינמית.
- משאבים כמו תמונות, סאונד וכדו’…
Terms and Conditions
כולם מכירים את זה כבר - לוחצים ACCEPT וממשיכים בחיים הלאה.
לצד של השחקן בדרך כלל התנאים הם די הוגנים וגם בדרך כלל לא קורה כלום.
מתי זה כן חשוב?
- כשהמשחק מוכר בתוכו תוכן ווירטואלי.
זה יכול לעלות שאלות כגון:
- האם מקבלים החזרים במידה וקיים אובדן?
- האם ניתן להחזיר את זה ולקבל את הכסף חזרה?
- האם ניתן לבצע החלפות בין חפצים שונים?
וכדו’…
כמה פרטים מעניינים שעלו בשנים האחרונות ורואים את ההשפעה במשחקים:
Cookies באתרים.
מכיוון שהחוק האירופאי הגדיר עוגיות כמשהו שחייב הסכמה, רואים עכשיו כמעט בכל אתר את ההודעה
“Please Accept cookies”.
Loot Boxes & Random rewards
קופסאות הפתעה הפתיעו אנשים רבים כאשר זה הגיע למימדים עצומים.
בדיעבד זה נראה מאוד תמים - מקבלים קופסא או ניתן לקנות אותה בכסף,
ויש סיכוי מסויים שייצא חפץ טוב או רגיל.
בדיעבד היינו יכולים להסתכם בזה אך אנשים רבים במיוחד מתחום המשפט באו ואמרו:
“רגע… אני לא יודע מה יש בקופסה הזו, אני קונה אותה בכסף אמיתי, ויש איזשהו סיכוי רנדומלי שאקבל משהו, זה חייב להיות הימורים!”
ולכן מדינות רבות אסרו על שימוש בקופסאות האלו אלה בתנאי מסוים ובגלל זה אנחנו ראינו שינוי בקופסאות האלו והשינוי מתבטא ב:
- הצגה של תוכן הקופסא מראש (אין יותר רנדומליות מוחלטת).
- הצגה של הסיכוי לקבל משהו מסוים.
כמובן סט החוקים שונה אך בדרך כלל חברות לא הולכות ומבצעות משהו שונה לכל מדינה אלה משהו אחיד.
לקריאה נוספת:
כאן
מרקטינג
אם ניקח את המשחקים היקרים ביותר למשל - Call of Duty Modern Warefare 2.
החברה הוציאה כ-50 מיליון רק על הפיתוח שלו.
רק על הרבדים הטכניים והאומנותיים.
והיא הוציאה 200 מיליון על השיווק שלו!
לקבל תודעה לגבי המשחק שלך זה קשה ועולה כסף כי כל תשומת לב שאנשים נותנים שווה לכסף.
יוצרי משחקים רוצים להגיע לכמה שיותר אנשים, וגם אם 20% בסופו של דבר יחליטו להשקיע כסף ולקנות אותו, זה עדיף מאשר שאנשים לא היו קונים אותו בכלל.
Dev logs
ניהול קשרי קהילה טובים מתחילים עוד מלפני פיתוח המשחק!
זה חשוב להבין אם בכלל יש קהל למשחק שלנו - אלה אם כן אתם בונים אותו לכיף ולא אכפת לכם באמת.
חשוב להבין מה אנשים חושבים על הרעיונות שלנו,
גם הרעיון הכי טוב לא שווה כלום אם לא מממשים אותו.
והכי חשוב שאנשים יכירו את המשחק עוד לפני ההשקה שלו.
אם ניקח את Cyberpunk 2077,
אנשים רבים היו בהיסטריה שהוא ייצא והוא נדחה שוב ושוב בעקבות באגים ובעיות טכניות.
זה גם פגע וגם עזר למשחק כי אנשים ידעו ושמעו על המשחק הזה,
לא היה סיכוי שמישהו יפספס כשהמשחק ייצא.
Dev-log אלו מאמרים ועדכונים השיוצרים של המשחק מספרים לקהל איך הפיתוח הולך,
מספרים על הרעיונות שלהם ואיך הם מתקדמים.
ניתן לכתוב Dev-log במקומות שונים:
- אתר של המשחק.
- שרתי דיסקורד
- ב-Steam
למשל אני עורך גם Dev-Log למשחק שאני בונה:
Dev Log - Puzzle game - 4קשרי קהילה
אחד היתרונות שיש לחברות על פני חברות אחרות זה היכולת לנהל קשרי קהילה טובים.
זה כולל:
- מענה הולם לבעיות טכניות.
- Roadmaps וקבלת פידבק מהשחקנים.
- התייחסות לביקורות.
- ניהול שרתים ומענה בזמן אמת.
זה מצריך יכולת להקים פורומים ושרתי דיסקורד, יצירת תוכן לשחקנים.
זה גם כולל דברים שנראים לנו יותר טריוויאליים:
- כתיבת מדריכים למשחק
- נגישות לשחקנים חרשים או בעלי עיוורון צבעים
- התעסקות קהילתית.
- Eventים
- התייחסות למשתמשים “רעים” שמקללים או הורסים לאחרים את חווית המשחק - כגון האקרים.
ביצוע משחקי טסט
כדי להשיק משחק יוצא מן הכלל כדאי ששחקנים ייתנסו בו.
זה יכול להיות כדי לקבל פידבק מיידי על רעיון חדש או פיצ’ר שהייתם רוצים לבדוק או כדי לקבל חווית משתמש ולמצוא באגים כמה שיותר מהר.
בין כך או כך יש צורך שאנשים יישחקו במשחק שלכם כדי לקבל התרשמות וכמה שיותר פידבק.
כי בעזרת הפידבק הזה שחקנים יכולים להתנסות ולומר מה דעתם.
עכשיו אתם יכולים ללמוד ליצור משחקי מחשב
בשביל להיות מפתח אינדי צריך:
- ידע כיצד לבנות את המשחק באופן טכני: שפת תכנות או מנוע משחקים כלשהו.
- ידע בציור וגראפיקה או רכישה/הורדה של ציורים מוכנים מראש
- סאונד ועריכת סאונד
- השקה ושיווק של המשחק
- ניהול קהילה
מקווה שזה עזר לכם להבין על העולם הזה ולראות שהוא מורכב ופשוט בו זמנית :)
לגבי השאלה מה יותר כדאי לכם ללמוד אני ממליץ -
תתנסו בהכל
ותחליטו מה היה לכם יותר כיף, לכו עם זה.
תודה על הקריאה!