עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

פיתוח משחקי 3D- מאיפה להתחיל ולאן?

Featured Replies

פורסם

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

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

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

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

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

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

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

- אם לא מתבססים על מנוע, כיצד ניתן ליצור 3D באופן עצמאי? מה זה דורש ללמוד ועם מה ליצור? (עזרים, תוכנות, סביבת עבודה מותאמת כלשהי וכד')

אם יש עוד שאלות או דברים שאני מפספס שכדאי שאדע אני מאוד אשמח אם תתנו לי לדעת.

תודה מראש

פורסם

הדרך היותר "קלה" היא להתחיל מmod לשמחק כלשהו שקרוב למה שאתה רוצה לפתח.

מכיוון שיש לך כבר כלים מוכנים כמו map editor למשל יהי הרבה יותר פשוט להבין את הלוגיקה מאחורי משחק שנוצר מאפס.

חוץ מזה יש לך את האתר Gamasutra anספק הרבה מידע בתחום.

פורסם

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

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

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

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

כשמדובר על 3D למחשב יש שתי 'תשתיות' נפוצות - DirectX ו-OpenGL. שתי הספריות האלה יתנו לך כלים ליצור אובייקטים ולצייר אותם בצורה יעילה, ביצועים מהירים וכו'. בשתיהן אפשר לעבוד עם C# ו-C++. עם OpenGL אפשר לעבוד גם בג'אווה, לגבי DirectX אני לא בטוח...

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

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

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

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

פורסם

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

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.