נתקלנו פעמים רבות בצוותים שבילו שבועות בניפוי באגים באינטראקציות בין מודולים. לדוגמה, בפרויקט VR Unity אחד עם 15 מודולים שהשתמשו ב-Zenject, באג במודול SaveSystem הופיע רק במכשיר כי העורך השתמש ב-PlayerPrefs, אך גרסת הייצור השתמשה ב-API ענני. המפתח בילה 3 שבועות במציאת שורש הבעיה: לא הייתה תיעוד שתיאר את ההבדל הזה.
תיעוד מודולי משחק ותיעוד ארכיטקטורת משחק פותר את זה. לאחר יישום התיעוד, זמן קליטת מפתחים חדשים ירד משבועיים ליומיים — ירידה של 86%. חיסכון בתקציב הצוות מזמן תחזוקה מופחת הגיע ל-40%.
תיעוד ארכיטקטורת משחק valuable עונה על שלוש שאלות מרכזיות: למה זה נעשה כך, מה קורה במקרי קצה, ועם מה זה מתקשר. ללא תשובות אלה, הקוד נשאר קופסה שחורה.
מה הופך תיעוד מודול משחק למועיל באמת
הטעות הגדולה ביותר היא לתעד מה המתודה עושה כשזה ברור מהחתימה. /// <summary>Adds item to inventory</summary> מעל AddItem(Item item) הוא שורה חסרת תועלת. במקום זאת, תעדו פרטים לא ברורים: למה המודול משתמש ב-Service Locator במקום DI, איך הוא מתנהג באתחול מחדש, אילו משאבים הוא משחרר ב-OnDestroy. השוואה: מודולים מתועדים מתופפים פי 3 מהר יותר ממודולים לא מתועדים.
לפרויקטי משחק, תיעוד על מצבים ותלויות הוא קריטי במיוחד. SaveSystem שעובד דרך PlayerPrefs בעורך ודרך API ענני בייצור הוא התנהגות לא ברורה שחייבת להיות מתוארת במפורש. אחרת, מפתח כותב בדיקה שעוברת מקומית ונכשלת במכשיר.
השכבה השנייה היא תיעוד על זרימות נתונים בין מודולים. בפרויקטי Unity עם Zenject או VContainer, תלויות מוזרקות, וה-IDE לא תמיד מרמז מאיפה הגיע שירות מסוים. דף אחד של תיעוד החלטות ארכיטקטוניות (ויקיפדיה) עם דיאגרמת תלויות חוסך שעות בקליטה.
למה מבנה התיעוד חשוב
לארכיטקטורת משחק מודולרית, אנו בונים תיעוד בכמה רמות:
- סקירת ארכיטקטורה — דיאגרמת מודולים ותלויותיהם (PlantUML או Mermaid, משולבים ב-Markdown ב-Confluence/Notion). חייב לכלול: שכבות (Presentation, Domain, Infrastructure), כיווני תלויות, מה הוא Singleton, מה נוצר דרך factory.
- כרטיסי מודול — לכל מודול מרכזי: מטרה, API ציבורי, אירועים שהוא פולט ומנוי עליהם, דרישות אתחול (סדר Awake/Start), מגבלות ידועות.
- הפניית API — נוצרת מהערות XML דרך DocFX. לפרויקטי C# Unity, DocFX מייצר HTML נקי עם ניווט. אנו מגדירים יצירה אוטומטית ב-CI: התיעוד מתעדכן בכל push ל-main.
- תרחישי שימוש — דוגמאות קוד קונקרטיות למקרים לא ברורים. לא
public void Initialize()עם תיאורי פרמטרים, אלא איך לאתחל כראוי את WeaponSystem בסצנה שבה אין PlayerController בזמן ההתחלה. - זרימת אינטראקציה XR — לפרויקטי VR/AR: תיאור רצף אירועים מ-
SelectEnteredל-SelectExitedב-XR Interaction Toolkit, מיפוי כפתורי בקר, פרטים ספציפיים לעבודה עם HMD שונים (Quest לעומת Pico לעומת HTC Vive).
כלים לתיעוד
| כלי | שפה/סביבה | תכונות |
|---|---|---|
| DocFX | C#/Unity | יצירת אתר מהערות XML + Markdown, ניווט, אינטגרציית CI |
| Doxygen | C++/Unreal | תמיכה ב-Graphviz לדיאגרמות, יצירה אוטומטית |
| Mermaid | כל | דיאגרמות ב-Markdown, מעובדות ב-GitHub, GitLab, Confluence |
| Confluence | כל | תבניות מובנות לעקביות תיעוד |
אנו כותבים הערות קוד באמצעות מוסכמת XML doc (C#): <summary>, <param>, <returns>, <exception>, <remarks> — האחרון לפרטי התנהגות לא ברורים.
דוגמה לערך ADR
החלטה: השתמש ב-Service Locator במקום מיכל DI למודול השמע, כי הוא מאותחל לפני שאר המערכת ואינו תלוי בסצנה. סיבה: לפרויקט היו 4 נקודות כניסה עם הקשרים שונים, והזרקה דרך Zenject הובילה לתלויות מעגליות. השלכות: הבדיקות פשטו — ניתן לממש AudioManager ישירות, אך הוכנס אנטי-פטרן שיש לשלוט בו דרך ביקורת קוד.
תהליך עבודה
- ביקורת קוד קיים. קרא קוד, זהה דפוסים לא ברורים, נקודות חיבור בין מודולים, פתרונות לא סטנדרטיים.
- ראיין מפתחים. שאל על החלטות שלא הוסברו בקוד. תעד כ-ADR.
- צור מבנה תיעוד. החלט היכן התיעוד חי (Confluence, GitHub Wiki, אתר DocFX עצמאי), איזה פורמט לאיזו משימה.
- כתוב וסמן. תעד מודולים לפי עדיפות: קודם הקריטיים והאטומים ביותר.
- הגדר יצירה אוטומטית. צינור CI לעדכון הפניית API בשינויי קוד.
- בדוק עם הצוות. מפתחים מאשרים נכונות, מזהים פערים.
מה כלול
- ביקורת קוד מלאה עם זיהוי החלטות לא ברורות
- כרטיסי מודול לכל מודול מרכזי (עד 20 לפרויקט ממוצע)
- הפניית API עם יצירה אוטומטית דרך DocFX או Doxygen
- דיאגרמות תלויות ב-Mermaid (משולבות ב-Markdown)
- זרימת אינטראקציה XR לפרויקטי VR/AR
- הגדרת צינור CI לעדכונים אוטומטיים
- תמיכה של שבועיים לאחר מסירה: תיקונים לפי משוב הצוות
| גודל פרויקט | לוח זמנים משוער | טווח מחירים |
|---|---|---|
| 3–5 מודולים (סטארטאפ/אינדי) | 1–2 שבועות | $2,000–$4,000 |
| 10–20 מודולים (פרויקט ממוצע) | 3–6 שבועות | $5,000–$10,000 |
| פרויקט VR/AR גדול עם הפניית API מלאה ו-CI | 2–3 חודשים | $12,000–$18,000 |
המחיר נקבע באופן אישי לאחר ניתוח גודל הקוד ודרישות פורמט התיעוד. הניסיון שלנו עם למעלה מ-20 פרויקטי תיעוד משחקים ו-5+ שנות התמחות בתיעוד ארכיטקטורת משחק מאשר את יעילות הגישה שלנו — חיסכון בזמן תחזוקה מגיע ל-40%.
צור קשר כדי להעריך את הפרויקט שלך — נציע את הפורמט ולוח הזמנים הטובים ביותר. הזמן ביקורת על התיעוד הנוכחי שלך כדי לזהות אילו מודולים צריכים תיאורים ראשונים. קבל ייעוץ על שילוב תיעוד בצינור ה-CI שלך. אנו מבטיחים שאחרי העבודה שלנו, אף מפתח חדש לא יבזבז יום בחיפוש אחר תלויות.





