לעתים קרובות אנו רואים: כאשר שלושה אמנים עורכים בו-זמנית קובץ FBX אחד של דמות, ומערכת ניהול הגרסאות היא תיקייה בשם assets_FINAL_v2_NEW_fixed, הבעיה אינה משמעת צוותית. הבעיה היא חוסר בתשתית. קבצים בינאריים — meshes, טקסטורות, אודיו — אינם קוד: לא ניתן למזג אותם באמצעות diff, ו-Git רגיל ללא הרחבות מטפל בהם בצורה גרועה.
מדוע Git רגיל אינו מתאים לנכסים גרפיים
Git מאחסן כל גרסה של קובץ במלואה. טקסטורת 4K בפורמט PSD שוקלת 80–120 MB. לאחר 50 איטרציות, קובץ אחד תופס 4–6 GB בהיסטוריית המאגר. שיבוט הפרויקט לאחר שנה אורך שעה. git checkout לענף של אמן אורך 20 דקות.
Git LFS (Large File Storage) פותר את בעיית האחסון: בינאריים נשלחים לשרת נפרד, ורק מצביעים נשארים במאגר. אך Git LFS אינו פותר את בעיית הנעילה: אם אמן A ואמן B פותחים בו-זמנית קובץ FBX אחד, אחד מהם מאבד שינויים בעת ניסיון commit. Git LFS File Locking מוסיף נעילה בלעדית, אך הוא אינו משולב בכלי DCC (Maya, Blender, Substance Painter). האמן חייב לזכור לנעול דרך CLI — בפועל זה לא עובד.
כיצד Git LFS מטפל בנעילה
למעשה, Git LFS אינו מספק נעילה אוטומטית. הפקודה git lfs lock דורשת מהאמן להפעיל אותה ידנית לפני העריכה. אם שוכחים, קונפליקט הוא בלתי נמנע. הוספת פתרונות חיצוניים כמו Anchorpoint פותרת חלקית את הבעיה, אך ללא אינטגרציית DCC זהו פתרון זמני. כתוצאה מכך, בעבודה מקבילה על נכס אחד, קונפליקטים מתרחשים ב-30–40% מהמקרים.
Perforce Helix Core לגרפיקה
Perforce הוא התקן דה-פקטו בפיתוח AAA. הנעילה המונעת שלו (checkout לפני עריכה) אידיאלית לבינאריים. אמן מבצע checkout לקובץ לעריכה, והמערכת נועלת אותו עבור אחרים. זה אינו מפריע לזרימת העבודה — להיפך, כולם יודעים מי עורך מה כרגע.
אינטגרציה עם DCC: תוספים של Perforce ל-Maya, Houdini ו-Substance Painter. עבור Unity — Version Control מובנה בגרסאות האחרונות. עבור צוותים של 3–15 אמנים, ניתן לפרוס את Perforce Helix Core באופן עצמאי על שרת Linux (רישיון חינמי עד 5 משתמשים ו-20 workspaces) או להשתמש ב-Helix TeamHub.
חיסרון: Perforce אינו Git. מפתחים הרגילים לזרימת עבודה של git זקוקים לכשבוע להסתגלות. אך אובדן עבודת אמן עקב קונפליקט מיזוג עולה יותר.
מדוע Perforce עדיף על Git עבור נכסים
השוואה בפרמטרים מרכזיים:
| פרמטר | Git LFS | Perforce |
|---|---|---|
| מנגנון נעילה | נעילה ידנית דרך CLI | Checkout אוטומטי |
| אינטגרציית DCC | אין | תוספים ל-Maya, Houdini וכו' |
| מהירות שיבוט | איטית (מצביעים + משיכת LFS) | מהירה (depot) |
| עלות | חינם (GitHub LFS בתשלום) | חינם עד 5 משתמשים |
| היסטוריית שינויים | ענפים ו-commits | שינויים ברמת קובץ |
Perforce יעיל פי 3 מ-Git LFS בזמן נעילה ומבטל לחלוטין קונפליקטים בעבודה מקבילה על אותו קובץ.
Git LFS + DVC לצוותים מעורבים
אם הצוות אינו מוכן ל-Perforce, חלופה עובדת היא Git LFS לנכסים + DVC (Data Version Control) עבור מערכי נתונים גדולים. DVC מאחסן נכסים ב-S3/GCS/Azure Blob/NAS מקומי, ורק קבצי מצביע .dvc ב-Git. dvc pull מוריד את הגרסאות הנדרשות. זה מאפשר עבודה עם נכסים כמו עם קוד (ענפים, תגים, היסטוריה) מבלי לנפח את המאגר.
מבנה מערכת לפרויקט משחק
ארכיטקטורה טיפוסית לפרויקט Unity/Unreal עם צוות של 5–20 אנשים:
- מאגר מקור (קוד): Git + GitHub/GitLab. הכל מלבד בינאריים.
.gitignoreכולל החרגות אגרסיביות של PSDs, FBXs, WAVs, PNGs מעל 1 MB. - מאגר נכסים: Perforce או Git LFS + DVC. מבנה:
assets/characters/,assets/environments/,assets/audio/,assets/vfx/. גם קבצי מקור (PSD, FBX, MA) וגם יצוא סופי (PNG, glTF, OGG) מנוהלים בגרסאות. - צינור נכסים: סקריפטים להמרה ואופטימיזציה אוטומטית בעת commit. ייצוא Maya → FBX דרך Mayapy (ממיר 100+ נכסים בשעה), PSD → PNG דחוס דרך ImageMagick (עד 80% דחיסה ללא אובדן), אודיו → פורמטים ספציפיים לפלטפורמה. מופעל על ידי CI hook.
- מוסכמת שמות: קפדנית ומתועדת.
CH_Goblin_Body_Diffuse_D.png(CH=דמות, Body=חלק mesh, Diffuse=סוג מפה, D=diffuse). ללא זה, אחרי חצי שנה אף אחד לא יודע מהtexture_v3_USE_THIS_ONE.pngאומר.
באחד הפרויקטים שלנו, המעבר מתיקיית כונן רשת ל-Perforce ארך שבועיים (התקנה, המרת היסטוריה מ-NAS ל-Perforce depot, הדרכת צוות). אחרי חודשיים — 'למה לא עשינו את זה קודם' — בעיית היושרה נעלמה ונוצרה היסטוריית שינויים מלאה של כל נכס. חיסכון בזמן לאמנים הגיע ל-30%.
כיצד ליישם את המערכת: תוכנית שלב-אחר-שלב
- ביקורת תשתית נוכחית. הערכת נפח נכסים (50 GB עד 2 TB), גודל צוות, כלים בשימוש.
- בחירת פתרון. Git LFS לפרויקטים קטנים (עד 5 אמנים), Perforce לבינוניים וגדולים.
- הקמת שרת. התקנה והגדרת אחסון, משתמשים (1–2 ימים).
- אינטגרציה עם DCC. תוספים ל-Maya, Blender, Substance Painter (2–4 ימים).
- הגדרת צינור. סקריפטים להמרה אוטומטית ו-CI hooks (3–5 ימים).
- הדרכת צוות. עריכת מפגשי הדרכה, כתיבת תיעוד (1–2 ימים).
- השקה ותמיכה. הימים הראשונים — ניטור, התאמת כללים (2 ימים).
קבלו ייעוץ מהנדס ותוכנית יישום מדויקת ביום אחד. צרו קשר כדי לבקש זאת.
מה כלול בעבודה
הצוות שלנו מספק:
- ביקורת תשתית נוכחית והמלצות.
- פריסת שרת Perforce או הגדרת Git LFS + DVC.
- אינטגרציה עם כלי DCC (Maya, Blender, Houdini, Substance Painter).
- פיתוח צינור נכסים עם המרה אוטומטית.
- תיעוד מוסכמות שמות וזרימת עבודה.
- הדרכת צוות ותמיכה לשבועיים.
לוחות זמנים ליישום
| היקף | לוח זמנים משוער |
|---|---|
| הגדרת Git LFS לפרויקט קיים | 3–5 ימים |
| Git LFS + DVC + צינור לצוות של 5–10 אנשים | 1–2 שבועות |
| Perforce Helix Core + אינטגרציות DCC | 2–3 שבועות |
| צינור נכסים מלא עם המרה אוטומטית ב-CI | 3–5 שבועות |
הרקורד שלנו
הניסיון שלנו: 6 שנים בפיתוח משחקים, מעל 20 יישומי מערכות ניהול גרסאות לנכסים. אנו שותפים מוסמכים של Perforce. חיסכון ממוצע בזמן אמנים לאחר יישום: 30%, ביטול מוחלט של קונפליקטים בעבודה מקבילה. אנו מבטיחים איכות בכל שלב.
אתם יכולים ליישם מערכת ניהול גרסאות לנכסים שלכם. נעריך את הפרויקט שלכם ביום אחד. צרו קשר לייעוץ.
פרטים נוספים על הגדרת נעילות ב-Git LFS
כדי להפעיל נעילה, הריצו `git lfs lockהזמינו הערכת פרויקט — קבלו תוכנית יישום מפורטת.





