פיתוח משחק תלת מימד

sss120

New member
פיתוח משחק תלת מימד

השאלה שלי היא האם אני יכולה לכתוב ב C# וליצור אובייקטים בפלש או ב C# עצמו ולהגיע לרמה נורמאלית של משחק תלת מימדי יפה? אני צריכה לכתוב את המשחק הזה לפרוייקט גמר בהנדסת מחשבים וחץ מזה מישהו יכול לומר לי איך אני יכולה ללמוד את WPF של C#? תודה רבה
 

somebodddy

New member
זה חייב להיות תלת מימד?

אם אין לך נסיון בתכנות משחקים, עדיף להתחיל מדו מימד. בכל אופן, אם הזמן לוחץ ואת חייבת משחק תלת מימדי בC# בשביל פרוייקט הגמר, אני ממליץ להשתמש במנוע. אני לא ממש מכיר מנועים, אבל חיפוש זריז בגוגל מביא את זה: http://axiomengine.sourceforge.net/wiki/index.php/Main_Page. מה את מחשיבה ל"לרמה נורמאלית של משחק תלת מימדי יפה"? צריך נסיון בשביל ליצור משחק יפה, ובשביל לרכוש נסיון צריך זמן. חוץמזה, צריך גם ליצור או להשיג מודלים טובים, אחרת המשחק יראה גרוע לא משנה כמה התכנות שלו איכותי...
 

IdleThought

New member
יש לאקסיום בעיות רציניות

אבל הוא מנוע שלם ב C# מבוסס OGRE , אפשר במקום זה להשתמש ב MOGRE שהוא WRAPPER ל OGRE או סתם לעבוד עם XNA או WPF אם רוצים תלת מימד אבל לא צריכים מנוע
 

somebodddy

New member
אם היא רק מתחילה בתחום

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

IdleThought

New member
הממפפ..

אני חושב שיש לנו הגדרות שונות למנוע, בעיני מנוע תלת מימד נקרא מנוע כאשר הוא כולל מערכת עם SCENE MANAGEMENT ואת WPF או XNA אני רואה בתור 3D API
 

sss120

New member
נגיד ואני לא צריכה מנוע

מה זה WPF איך אני יכולה ללמוד את זה ומה זה נותן לי
 

IdleThought

New member
הממפ

WPF זו המחליפה של GDI+ בעבור .NET , השם המלא הוא WINDOWS PRESENTATION FOUNDATION אני לא יודע כל כך מאיפה להתחיל לתאר אבל בגדול זו תשתית גרפית "חלונאית" שנבניתה על בסיס DIRECTX ובכך מאפשרת הרבה מאוד דברים (SP1 הוסיפה תמיכה בשיידרים) אך הפקדים הסטנדרטים של חלונות זמינים לך בלי צורך להסתבך, אחד הייתרונות בעבור פרוייקטים הוא השימוש ב XAML ( שפת תיאור/סריאליזציה מבוססת XML ) שמקלה את העבודה בצוותים מורכבים דבר נוסף שהיא מאפשרת זה עבודה ישירות בתלת מימד בלי להסתבך במעברים בין API שונים של DIRECTX ו GDI או ניסונות לכופף אחד מהם להשיג את הדברים שהשני היה נותן בקלות כפי שהיה עד עכשיו כיצד את יכולה ללמוד? טוב ..בשביל זה יש גוגל
 

sss120

New member
WPF

אם אני משתמשת בWPF אז כמו ש someboddy אמר זה יהיה רק קוביה מסתובבת על המסך? או שיש יותר אפליקציות אפשריות ואם כן יש מצב לאנימציות? או שאפשר דרך (התוכנה)פלש להכניס אנימציה כאובייקט ולהשתמש?
 

IdleThought

New member
אני מתעב את תפוז ../images/Emo3.gif , המשך ...

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

sss120

New member
זה מה שאני רוצה

בעצם המשחק שאני עושה הוא Tip over אם אתם מכירים זה משחק כמו שעת שיא ז"א שיש אלגוריתם חזק שנעבוד עליו אבל אם אפשר ברמת הסבירות והיופי גם תלת מימד תכלס המשחק הוא בניינים שהספיידרמן צריך להפיל כך שקוביה זה מעולה כתלת מימד
 

somebodddy

New member
טוב, זה בהחלט אפשרי

למרות שבלי נסיון בתכנות משחקים זה יהיה די קשה. אבל קחי בחשבון שני דברים: דבר ראשון, את יכולה לשכוח ממודל יפה - כלומר דמות תלת מימדית שתייצג את השחקן. מודלים תלת מימדיים זה עסק מאוד מורכב, ובלי מנוע שיעזור לך יהיה לך קשה מאוד לטעון או לייצג את המודלים. בשביל לייצג את השחקן תאלצי להשתמש בקוביה או כדור - תוכלי כמובן גם להשתמש בכמה כדורים או קוביות, אבל את יכולה לשכוח מאנימציה. אפשר גם להדביק תמונות דו מימדיות על הפיאות של הקוביה, וכאן דווקא די קל לעשות אנימציה אם את רוצה. דבר שני, אם את רוצה לעשות אנימציה של בניינים נופלים, את צריכה ללמוד על מטריצות סיבוב - http://en.wikipedia.org/wiki/Rotation_matrix. מצד שני, זה לא חומר כזה קשה אם יש לך ראש מתמטי וקצת רקע...
 

sss120

New member
ומה עם לקשר אובייקטים שהם אנימציות

אם למשל אני יביא מflash אובייקט שיש בו אנימציה, אני לא יכולה להשתמש בו כאובייקט לכל דבר ורק לבצע עליו סיבובים או כלום? וחוץ מזה מה זאת אומרת מנוע?- תוכנה רצינית שצריך ללמוד? או העיקר תוכנה אפילו חינמית? ז"א אני בדקתי בגוגל מה יכול להיות כתוכנה, ומה שהיה הכי מומלץ היה תוכנת מיה שעולה 40000, וכל החינמיות הם כמו סקטש אפ שלא ברורות
 

ahillel

New member
מיה זה לא לגרפיקה...?

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

Darakan

New member
יש פה לדעתי אי הבנה

היא מדברת על פלאש ואתה מדבר על תלת-מימד ברמה שלך, בעוד אין קשר בין הדברים :). איך בדיוק אפשר לייבא גרפיקה וקטורית למנוע תלת-מימד חיצוני? אם את רוצה להשתמש בפלאש, יש הרבה ספריות תלת-מימד פשוטות יחסית שצצו בשנים האחרונות ל-AS3, כאשר Papervision 3D היא הטובה ביניהם. מה שכן - עדיין אי אפשר לייבא אנימציות וקטוריות - מדובר בגופים דו-מימדיים ואת רוצה להשתמש בתלת-מימדיים.
 

ahillel

New member
../images/Emo3.gifזה בידיוק מה שאמרתי...

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

De-Panther

New member
טוב, את ממש לא ברורה כאן, אבל ננסה לענות על..

השאלה משני הכיוונים 1. לא ברור אם את רוצה לעשות את הפרוייקט שלך בפלאש, או שאת רק רוצה לקחת סרטון פלאש בשביל אנימציה. אם יש לך סרטון בפלאש ואת רוצה להכניס את האנימציה שלו לסצנה התלת מימדית - יש כמה אפשרויות: א. ליצא את הסרטון לקובץ GIF - ולטעון את הGIF על האובייקט שאת רוצה שיהיה עם אנימציה. ב. ליצא את הסרטון להרבה קבצי BMP,JPG או PNG - כשבכל תמונה יש פריים אחרים - ולטעון את התמונות האלה על האובייקט שאת רוצה, רק צריך לדאוג לתזמן אותן כמו שצריך ג. אפשרות שקיימת, אבל לא ריאלית, לטעון את הקובץ פלאש עצמו על האובייקט. זה מסובך. שמעתי על מנועים מקצועיים שעושים את זה. במקומך לא הייתי נכנס לסיפור הזה. אם את רוצה לעשות את כל הפרוייקט שלך בפלאש - אז זה סיפור אחר בקשר לשאר השאלות שלך: מנוע זה כלי. יש מנועים שקשורים רק לגרפיקה, יש מנועים שקשורים רק לפיזיקה, יש מנועים לכל אספקט בפיתוח משחק. בנוסף, יש מנועים שמגיעים עם כל התכונות, גם כלים נוחים ויעודיים לעבודה עם המנוע, וגם עבודה עם גרפיקה, פיזיקה, דמויות, אפקטים וכו' וכו'. יש כאלה שהם חינמיים, אופן סורס, לרוב יהיה יחסית מסובך להשתמש בהם. ויש כאלה שבתשלום, חלקם פחות טובים מכאלה שהם אופן סורס, חלקם מתעלים עליהם בכמה וכמה רמות. בסופו של דבר, זה תלוי בצרכים של מפתחי המשחק. מאיה זו תוכנה לגרפיקה, זה לא מנוע. היא שומרת קבצי מודלים בפורמט מסוים, ומנועים קוראים את הפורמט הזה ומציגים את המודלים. אין לך סיבה לקנות אותה, אין לך סיבה להכנס אליה, אין לך מה להשתגע איתה בפרוייקט שלך. אם הייתי במקומך, קודם הייתי עובד על המהות של הפרוייקט, על מה שחשוב שיהיה בו בתאכלס, ורק אחר כך אם יש זמן, עובד על כל נושא הגרפיקה. אם תתעסקי עכשיו בתצוגה של הפרוייקט - זה יקח לך הרבה זמן ומשאבים, וחשוב לך הדבר הזה בשביל ציון
 

ahillel

New member
הממפ...

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