דילוג לתוכן הראשי

כלים לפיתוח משחקים בלי ידע בתכנות

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


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

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

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

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

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


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


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




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

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



תגובות

פוסטים פופולריים מהבלוג הזה

איך לבנות משחק HTML5 ב-Phaser עם Typescript - חלק 2

קבלו את החלק השני בסדרה - איך בונים משחק HTML5 ב-Phaser עם Typescript. בחלק הראשון בניתי את ה-HTML וה-CSS והורדתי את קבצי פייזר. הפעם אני בונה את ה-class הראשי של המשחק ומאתחל אותו. תהנו! לחץ כאן על מנת להוריד את קוד המקור הסופי הלינק להדרכה החינמית:  http://www.codactive.com

קונסטרקט 3 - הכלי הכי אפקטיבי שאני מכיר לפיתוח משחקים קטנים-בינוניים

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