01-04-2011, 11:23
|
|
|
חבר מתאריך: 30.07.05
הודעות: 949
|
|
לא ממש עברתי על הקוד שלך כי אני לא מכיר את #C לעומק, אבל לדעתי את רץ קדימה מדי מהר מדי.
פרוייקט בסדר גודל כזה יראה מאד רע אם לא תדע מראש מה אתה מתכוון לעשות אלא תתחיל לכתוב מחלקות ולנסות לחבר ביניהן אחר כך.
לדעתי כדאי לך לעזוב לרגע את המחשב, לקחת דף נייר ועט ולנסות להתחיל לשבור את הפרוייקט שלך לחלקים:
נניח תחלק את זה ל-3 חלקים בהתחלה - מודול תקשורת, מודול של מנוע המשחק (החוקים) ומודול המנשק (מה שמוצג למשתמש).
הקשרים פה הם:
* מודול המנשק מעביר שאלות למודול המנוע שעונה בהאם המהלך חוקי.
* מודול המנוע מעביר פקודות למודול המנשק כאשר התבצע מהלך.
* מודול המנוע מעביר פעולות משתמש למודול הרשת כדי שזה יפיץ לשאר השחקנים.
* מודול המנוע מקבל ממודול הרשת מהלכים שבוצעו אצל שחקנים אחרים.
עכשיו קח כל מודול בנפרד ותתחיל לחשוב איך אתה מפצל אותו הלאה - נגיד מודול הרשת באמת ידרוש מודול תקשורת מבוסס TCP ועיצוב פרוטוקול שבו יועבר מידע בין השרת לשחקנים, מודול של Reactor או Thread Pool כדי לתמוך בריבוי משתמשים ומודול תקשורת עם מנוע המשחק.
וכן הלאה... מה שאמרתי זה שליפה מהמותן, אני לא יודע כמה זה עיצוב מתאים אלא סתם החלוקה הראשונה שעלתה לי לראש. תשקיע כמה ימים בעיצוב הקשרים בין המודולים שלך ותקיע לסקאלה של מחלקות בודדות. כשיהיה לך תרשים של כל המחלקות והקשרים ביניהם תתחיל לחשוב על המנשקים שיחברו בין המחלקות, על הפרוטוקול שתממש במודול הרשת, על איך יראה בסופו של דבר כל העסק מצידו של המשתמש.
רק אחרי שיהיו לך אוסף של תרשימים שמהם אפשר יהיה להסיק את כל מבנה הפרוייקט שלך (ורצוי גם לצרף אותם מאוחר יותר לתיק פרוייקט, זה מאד מרשים את הבודקים בד"כ ומקל להם על החיים) תתחיל לכתוב קוד, ואתה כנראה תופתע כמה מהר וחלק תהליך הקידוד ילך אחרי כל עבודת ההכנה שעשית.
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.
|