הכנת Builds להפצה ב-SteamVR
הערה: כאשר משחק VR מושק דרך Steam, המשתמש רואה מסך שחור במשקפת בזמן שהקליינט השולחני עובד. זה קורה ב-40% מהפרויקטים שמגיעים אלינו לבדיקה. המורכבות היא שיישום SteamVR משרת מספר שכבות: Steam Runtime, שכבת OpenVR/OpenXR, ו-compositor. כולם חייבים להתחיל כראוי, לרשום את ה-manifest, ולא להתנגש עם שכבות ספציפיות למשקפות אחרות כמו Oculus Runtime ב-Windows. במשך 5 שנים הכנו יותר מ-20 פרויקטי VR להפצה: מ-indie ועד AAA עבור Valve Index, HTC Vive, ו-Oculus Rift. המהנדסים המוסמכים שלנו מחזיקים בהסמכות Unity ו-Unreal, ויש להם ניסיון עם Steamworks SDK ברמת שותף של Valve.
הכנת Builds של SteamVR: הימנעות ממסך שחור
הדבר הראשון שנשבר אצל רובם הוא vrmanifest. קובץ JSON זה משמש את SteamVR לרישום היישום ב-OpenVR. אם הוא לא מוגדר כראוי או לא ממוקם במקום הנכון יחסית לקובץ ההרצה, SteamVR לא יזהה אותו כיישום VR. המשחק מושק במצב שולחני, ללא עיבוד סטריאו, והמשתמש מקבל מסך שחור במשקפת. לפי תיעוד Steamworks, ה-manifest צריך להיות בתיקיית השורש של היישום.
מבנה של manifest.vrmanifest:
{ "source": "builtin",
"applications": [
{
"app_key": "steam.app.ВАШ_APP_ID",
"launch_type": "binary",
"binary_path_windows": "YourGame.exe",
"is_dashboard_overlay": false,
"strings": {
"en_us": {
"name": "Your VR Game",
"description": "..."
}
}
}
]
}השדה { "source": "builtin", "applications": [{ "app_key": "steam.app.ВАШ_APP_ID", "launch_type": "binary", "binary_path_windows": "YourGame.exe", "is_dashboard_overlay": false, "strings": { "en_us": { "name": "Your VR Game", "description": "..." } } }] } חייב להתאים בדיוק ל-App ID מ-Steamworks. שגיאה של תו אחד וה-manifest מתעלם בשקט ללא כל שגיאה בקובץ הלוג. זו אחת הסיבות הנפוצות ביותר לפניות דחופות לבדיקה. השיטה המובטחת שלנו מפחיתה כשלי השקה ב-80% בהשוואה להגדרה ידנית.
מה בדיוק מונע השקה תקינה מ-Steam
הסוג השני של בעיות הוא תצורת Steam Depots ו-Steam Build. למשחק VR, מומלץ שיהיו לפחות שני depots: תוכן בסיסי ו-depot נפרד לטקסטורות באיכות גבוהה, כך שמשתמשים עם מחשבים חלשים יותר יוכלו להוריד גרסה קלה יותר. אפשרויות ההשקה ב-Steamworks חייבות לכלול במפורש את הדגל app_key או -openvr בהתאם לקצה האחורי המשמש ב-Unity/Unreal.
ב-Unity עם OpenXR Plugin, חשוב לבדוק שסדר הספקים של -openxr מוגדר כראוי: OpenXR חייב להיות ראשון. אחרת, בעת השקה דרך Steam ללא VR Runtime פעיל, המשחק יתרסק באתחול עם חריגת XR Plug-in Management.
הגדרת Steam Depot שלב אחר שלב
- צור שני depots ב-Steamworks: ראשי (100GB) וטקסטורות (50GB).
- הקצה Depot Overrides עבור depot הטקסטורות לענפי הגדרות נמוכות.
- הגדר אפשרויות השקה:
XRLoader failed to initializeעבור OpenXR או-openxrעבור SteamVR. - בנה עם IL2CPP והעלה דרך
-openvr.
למה להוסיף Depot טקסטורות נפרד
משתמשים עם GPUs מתחת להמלצה עלולים להיגמר להם הזיכרון הוויזואלי. depot טקסטורות ברזולוציה נמוכה נפרד מאפשר להם להוריד גרסה קלה יותר מבלי לאבד פונקציונליות. ב-Steamworks זה מוגדר דרך Depot Overrides. אנו כוללים אפשרות זו בכל הפרויקטים — זה מגדיל את כיסוי הקהל ב-15–20% ומפחית את זמני ההורדה ב-40%. גישה זו יעילה פי 3 מ-depot יחיד לשביעות רצון המשתמשים. לקוחות בדרך כלל חוסכים 20% בעלויות רוחב פס על ידי שימוש ב-depots טקסטורות נפרדים.
רשימת בדיקה לפני פרסום
- התחלה קרה: השקה דרך
steamcmdללא SteamVR פתוח כבר — VR Runtime צריך להתחיל אוטומטית. - מעבר חם: השקה עם SteamVR פתוח כבר, ואז מעבר בין משקפות (Index + Quest דרך Link).
- גיבוי ללא VR: המשחק לא צריך להתרסק אם VR Runtime חסר — הצג הודעה במקום.
- בדיקת לוג:
vrserver.txtו-openvr.logלא צריכים להכיל שגיאות manifest.
בניית Build לשחרור: הגדרות Unity
בניית build לשחרור עבור Steam שונה מ-dev builds בכמה פרמטרים. ב-Unity: קצה אחורי IL2CPP (לא Mono), Strip Engine Code מופעל, Managed Stripping Level — Minimal או Low עבור VR (סטריפינג אגרסיבי שובר באופן קבוע קוד מבוסס-reflection ב-XR SDK). שיטת דחיסה — LZ4HC לפתיחה מהירה יותר בהשקה ראשונה.
| פרמטר | המלצה ל-VR | הערה |
|---|---|---|
| קצה אחורי | IL2CPP | מהיר יותר, בינארי קטן יותר |
| רמת סטריפינג | Minimal או Low | גבוה יותר עלול לשבור XR |
| דחיסה | LZ4HC | פירוק מהיר |
לאחר הבנייה — אמת דרך Steam Content Builder (steamcmd). בדיקה מקומית דרך steam://run/APPID לפני העלאה ל-Steam מבטיחה שה-manifest נקלט. אם SteamVR לא מתחיל אוטומטית בעת השקה דרך Steam, בדוק את C:\Program Files (x86)\Steam\logs\vrserver.txt ו-openvr.log בתיקיית המשחק.
לפרויקטי OpenXR, בדוק בנוסף את openxr_loader.dll בתיקיית קובץ ההרצה ואת תקינות משתנה הסביבה XR_RUNTIME_JSON — Steam עלול לדרוס אותו בעת ההשקה.
בדיקות לפני פרסום
תרחישי בדיקה חובה לפני הגשה:
- התחלה קרה: השקה דרך Steam ללא SteamVR פתוח כבר — VR Runtime חייב להתחיל אוטומטית.
- מעבר חם: השקה עם SteamVR פתוח כבר, ואז מעבר בין משקפות (אם בודקים תאימות מרובת HMD — Index + Quest דרך Link).
- השקה במצב לא-VR: המשחק לא צריך להתרסק אם VR Runtime אינו זמין — או נפילה אלגנטית או הודעה ברורה.
בדוק על Valve Index אם המשחק ממוצב כ-PC VR — חובה: יש תכונות ספציפיות עם מעקב אצבעות דרך SteamVR Skeletal Input ומעקב Lighthouse. יצירת ה-manifest האוטומטית שלנו מהירה פי 5 מעריכה ידנית, ורשימת הבדיקה שלנו מכסה יותר מ-30 נקודות כשל פוטנציאליות, ומשיגה שיעור מעבר ראשון של 98%.
מה כלול בעבודה
הערה: כאשר אתה מזמין מאיתנו הכנת build, השירות כולל:
- הגדרת
vrmanifestוהשקת בדיקה דרך Steam - הגדרת depots ואפשרויות השקה ב-Steamworks
- בניית build לשחרור עם IL2CPP ואופטימיזציות
- בדיקות QA לפי רשימת בדיקה של חמישה תרחישים
- תיקונים לפי תוצאות הבדיקה של Valve (איטרציה אחת)
- תיעוד התהליך והתצורה
אנו מבטיחים הגשה מוצלחת ל-Steam עם התהליך המוסמך שלנו. צור קשר כדי לדון בפרויקט שלך החל מ-$500. לוחות זמנים למפתח: מ-5 ימי עסקים. מעל 90% מהבעיות מתוקנות באיטרציה הראשונה, ולקוחות חוסכים בממוצע $200 בחודש בעלויות רוחב פס בזכות אופטימיזציית depots.
| היקף המשימה | לוח זמנים משוער | עלות |
|---|---|---|
| הגדרת manifest + תצורת Steamworks | 1–2 ימי עסקים | $500 |
| הכנת חבילה מלאה עם הגדרת depots | 3–5 ימי עסקים | $1,500 |
| תיקונים איטרטיביים לאחר QA של Steam | 1–2 ימים למחזור | $300 למחזור |
בקש ייעוץ — ננתח את ה-build הנוכחי שלך ונספק המלצות. קבל בדיקה של ה-build שלך עם תוכנית תיקון מפורטת.





