בניית משחק פלטפורמה

החאמוס

New member
בניית משחק פלטפורמה

ערב טוב, אני חדש בפורום הזה. יש לי שאלה. אני בונה משחק פלטפורמה עם Game Maker 7.0 Pro אבל זה קצת קשה....אני לומד את שפת ה C וחשבתי אולי יש אפשרות לבנות משחק עם שפת C ולא עם גיים מייקר. מה אתה אומרים? אגב אתמול יצא לי לקרוא קצת (הרבה מאוד) בפורום על בניית משחקים וזה וראיתי שמדברים כאן על DirectX 9 ו-10. יש אפשרות לבנות איתם פעולות משחק? אפשר קצת הסבר? תודהרבה מראש!
 

somebodddy

New member
אז ככה

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

החאמוס

New member
תודה רבה על ההסבר

קודם כל תודה רבה על התגובה. לפי מה שהבנתי את גיים מייקר אני צריך לעזוב ולהתחיל להתנת עם C++. עכשיו נגיד אני מתכנת בC++ איך אני "מעצב את המשחק"? נגיד בC אי אפשר לעצב או לבנות מסגרת למשחק,אפשר לשים את הקודים בGame Maker ולהוסיף לקודים תמונות (דרך הגיים מייקר) וככה הכל נכלל יחד ויותר תוכן תיכנות עם עיצוב וכו'. בקשר לDirectX 10 זו מעיין ספריית פעולות לכל המשחקים? כמו ספריית C של תיכנות,רק לעיצוב וכאלה? פשוט לא הבנתי כל כך את העיקרון כי דיי דיברת ספציפי לתכונות של התוכנה. שוב תודה מראש לעונים!
 

ahillel

New member
לא "פעולות", אלא מולטימדיה

זה נחוץ במשחקים שהדגש בהם הוא על גרפיקה/ אפקטים ויזואלים/ ריבוי עצמים במסך... וכ'. או בקיצור- משחקים כבדים שצריכים לרוץ בקצב מהיר ואחיד. למשחק שחמט דו-מימדי ופשוט, לדוגמה, לא הייתי מסתבך עם DX. תלוי מה הרמה/כמות/משקל של הגרפיקה והסאונד. DX נותן לך גישה ישירה לכרטיס הגרפי ולכרטיס הסאונד וככה עושה קיצור דרך ומאיץ תהליכים. וככה יוצרים משחק עם גרפיקה מושקעת וכבדה מצד אחד, אבל גם זורמת מצד שני. שימוש ב DX מצריך למידת הפקודות של DX ולשלב אותם בקוד של התוכנית (אצלך- הוא נכתב ב C) מהנסיון האחרון שלי ב- DX זה לא קל, אבל יש הרבה מאמרים והסברים באינטרנט. ב C אי אפשר לבנות "מסגרת". אם אני מבין אותך נכון, אתה מתכוון לתיכנות ויזואלי. אז תעבור לשפה ויזואלית כמו C# או ויזואל C++. (אני משתמש בVB אבל לא הייתי ממליץ לאחד חדש להכנס לזה... לא בשביל משחקים)
 

החאמוס

New member
אנלא חדש

אני לא חדש בתחום,פשוט לא מבין את העיקרון של משחקי פלפורמה חח... בכל אופן תודה רבה על ההסבר! ממ VB ראיתי דוגמאות שלה וזו מערכת מוכנה (לא?),אז אני פשוט יעבור לC++,ואני אכן מתכוון לתיכנות ויזואלי. תודה רבה! בקרוב אקנה ספר ואתחיל ללמוד לבנות משחקי פלפורמה (lol).
 

ahillel

New member
בכל מקרה, רק שתדע

שתכנות ויזואלי הוא לא ממש הדרך הנכונה לתכנת משחק. אבל הוא טוב ונוח למתחילים.
 

החאמוס

New member
ידוע,אבל גם העיצוב הבסיסי ביותר יעזור

טוב תודה. עוד שאלה לי ברשותכם - מממממ לדעתי (הרבה לא חושבים כמוני...) עצם העובדה שGame Maker היא תוכנה חופשית,ניתנת האפשרות לפתח כל רעיון שעולה לך. כמובן שזה קשה ויש צורך בעוד הרבה תוכנות,אבל גיים מייקר זה לא RPG,אלא תוכנה "פתוחה" ככה שאפשר ליצור את הרעיון הכי קרוב למה שאני רוצה. קיצר השאלה שלי היא האם אפשר לפתח אנימציות בתוכנה Maya 8.5 ואז לעלות את זה לגיים מייקר. יש לי כמה אנימציות של דמויות,אבל אני לא יודע אם זה יעבוד לי על גיים מייקר. תודה מראש!
 

De-Panther

New member
לפי מה שאני יודע, התלת מימד בגיימ מייקר לא...

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

somebodddy

New member
התלת מימד בGM זה גראפיקה בלבד

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

somebodddy

New member
אפשר לומר שDX זה פונקציות של קלט ופלט

בC יש לך את הפונקציה printf שמדפיסה טקסט על המסך, אבל אתה צריך לכתוב קוד שיגיד לפונקציה מה להדפיס. אותו דבר בDX - יש לך פונקציות שמציירות משולשים על המסך, אבל אתה צריך לכתוב קוד שיגדיר לפונקציות איפה לצייר את המשולשים, עם איזה טקסטורה וכו'. למה אתה מתכוון כשאתה אומר "מסגרת למשחק"? אם אתה מתכוון לחלון שבו המשחק יוצג, אז את זה עושים עם ויזואל C(כמו שahillel כבר אמר). אם אתה מתכוון לקוד שידאג לצייר בכל פריים את כל מה שצריך על המסך, לבדוק התנגשות, לקרוא לאירועים, להזיז עצמים לפי המהירות שלהם וכו', זה נקרא "מנוע משחק". בGameMaker ודומותיה אתה מקבל את המנוע עטוף באריזה עם סרט אדום. אבל זה לא אומר שאתה לא יכול לכתוב מנוע בעצמך בC/C++(או בכל שפת תכנות אחרת). זה דורש קצת ידע תיאורטי. טוב, אולי יותר מקצת. אבל זה אפשרי. המנוע ישתמש בDX בשביל לצייר, אבל פעולות המשחק יהיו בתוך המנוע. אם אתה לא רוצה לבנות מנוע בעצמך אתה יכול לחפש מנועים מוכנים באינטרנט.
 

החאמוס

New member
בוקר טוב

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

somebodddy

New member
קודם כל

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

החאמוס

New member
אוקיי תודה רבה -

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

somebodddy

New member
זה לא משהו אישי נגדך

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

החאמוס

New member
תגיד יש מצב אני נשאר עם C?

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

somebodddy

New member
C++ זה סוג של הרחבה לC

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

החאמוס

New member
יש אפשרות ללמוד C++ בלי ספר?

נגיד יש לי ספר של C אני יכול ללמוד רק את ה-"++" בלי לקנות ספר חדש? תודה מראש
 

somebodddy

New member
בטח שאפשר!

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