פיתוח מודולי VR מרובי משתתפים לחוויות משותפות

חוויות VR משותפות דורשות סנכרון מושלם של תנועות ואינטראקציות; אחרת, אפילו פעולות משותפות פשוטות הופכות לכאוס. אנחנו מפתחים מודולי multiplayer לפרויקטי VR במפתח מלא, ומבטיחים סנכרון מדויק של אווטארים וחפצים. הצוות שלנו מטפל בכל המחזור—מבחירת ארכיטקטורת הרשת ועד ליישום ולתמיכה מתמשכת—כך שהפתרון שלכם פועל באמינות וגדל עם העסק שלכם.

היכולות שלנו

שירותי סטודיו אחרים

יישומי VR/AR/MR מותאמים אישית

טבלו לקוחות וצוותים בחוויות דיגיטליות חדשות

פיתוח משחקי Unity

מקונספט לשחרור — משחקים שאנשים זוכרים

מידול ואנימציה בתלת-ממד

החיו את המוצר שלכם בגרפיקת תלת-ממד ואנימציה

סימולטורי ציוד VR תעשייתיים

אמנו מפעילים על ציוד בבטחה, ללא השבתה

הוראות AR לייצור

הנחיות שלב-אחר-שלב ישירות על הציוד — ללא נייר

סימולטורי VR לבטיחות

תרגול תגובה לשעת חירום ללא צורך בהגעה לשטח

תוכניות הכשרה ב-VR/AR

הכשרת עובדים בשירות, קליטה ומיומנויות רכות ב-VR

חידוני הכשרה לעובדים

בדיקת ידע באמצעות משחקים — בקלות וללא לחץ

הוראות וידאו ארגוניות

סרטונים ברורים להכשרת העובדים והלקוחות שלכם

גיימיפיקציה עסקית

הניעו צוותים עם מכניקת משחק ב-KPI ובמשאבי אנוש

יישומי קיוסק אינטראקטיביים

מסכים אינטראקטיביים לקמעונאות, תערוכות ומשרדים

מתקני VR/AR

אפקט וואו למותגים בתערוכות, אירועים וחדרי תצוגה

תערוכות ומוזיאונים וירטואליים

התערוכות שלכם מגיעות לכל פינה בעולם, 24/7

מסעות אירועים ומשחקי מותג

משחקים בלתי נשכחים לכנסים ולאירועי לקוחות

שאלות נפוצות

העבודות האחרונות

  • פיתוח משחקים עבור Mortal Motors
    פיתוח משחקים עבור Mortal Motors
    1638
  • משחק אסטרטגיה מבוסס תורות המתרחש בעולם פנטזיה, With Fire and Sword
    משחק אסטרטגיה מבוסס תורות המתרחש בעולם פנטזיה, With Fire and Sword
    1122
  • פיתוח משחק עבור חברת Second term
    פיתוח משחק עבור חברת Second term
    751
  • אנימציית תלת-ממד - טיזר למשחק Phoenix 2.
    אנימציית תלת-ממד - טיזר למשחק Phoenix 2.
    830

דמיינו שני שחקנים עם משקפי Quest 3 תופסים את אותו קובייה וירטואלית בו-זמנית. ללא סנכרון רשת תקין, אחד רואה קפיצה, השני רואה חוסר התאמה במיקום, והאינטראקציה המשותפת הופכת לכאוס. אנחנו פותרים את זה כבר למעלה מ-5 שנים, עם עשרות פרויקטים מסחריים של VR מרובה משתתפים תחת החגורה. צרו קשר כדי לדון בתרחיש שלכם בפירוט.

אנחנו מתכננים מודולי מרובה משתתפים מותאמים אישית לחוויות VR משותפות. סנכרון של שתי ידיים, ראש, אחיזות ואובייקטים פיזיקליים עם השהיה של 50–80 אלפיות השנייה הוא המומחיות שלנו. על חומרת הנייד של Quest עם רוחב פס מוגבל, אנחנו שומרים על 72 FPS יציבים אפילו עם 4–8 שחקנים. תקציב טיפוסי למודול כזה נע בין $10,000 ל-$25,000, כולל בדיקות עומס.

פתרונות רשת מוכנים—Photon Fusion, Photon PUN2, Mirror, Netcode for GameObjects (NGO)—לכל אחד יש את הפשרות שלו עבור VR. אנחנו בוחרים את המחסנית לפרויקט שלכם: Mirror לכותרי אינדי קטנים, Photon Fusion במצב Server לגדולים יותר. אנחנו מעריכים את הפרויקט שלכם ללא תשלום ומציעים את הארכיטקטורה האופטימלית.

למה מצב Server עדיף על מצב Shared עבור VR

Photon Fusion מציע שני מצבים: Shared (עמית-לעמית עם מארח אחד) ו-Server (שרת Photon ייעודי). עבור VR, מצב Server עדיף אפילו לפרויקטים קטנים יותר.

במצב Shared, שחקן אחד משמש כמארח ומנתב את כל התעבורה. ב-VR זה אומר: אם המארח מזיז את ידיו (מה שקורה 72–90 פעמים בשנייה), הנתונים שלו מעובדים מקומית, בעוד ששחקנים אחרים מקבלים אותם עם ה-RTT של המארח. עם חיבור מארח לא יציב, כל הסשן סובל. מצב Server מבטל את נקודת הכשל הבודדת הזו—Photon Cloud מטפל בממסר ובניהול מצב סמכותי.

הגדרה קונקרטית: NetworkRunner עם GameMode.Server, FixedUpdateNetwork במקום Update לפיזיקה דטרמיניסטית. עבור טרנספורמציות ידיים, אנחנו משתמשים ב-NetworkTransform עם InterpolationDataSource.Predicted—חיזוי בצד הלקוח מפחית את ההשהיה הנתפסת.

לפי תיעוד Photon, מצב Server מספק את ההשהיה הנמוכה ביותר עבור חוויות משותפות בזמן אמת.

איך לסנכרן אווטארים עם רוחב פס מינימלי

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

הפתרון שלנו הוא Full Body IK עם מספר מוגבל של נקודות בקרה. ב-Unity, אנחנו משתמשים בחבילת Animation Rigging עם TwoBoneIKConstraint לזרועות ו-MultiParentConstraint לפלג הגוף העליון. הראש (מיקום HMD) מניע את פלג הגוף העליון דרך היסט הוריסטי היוריסטי (~0.3 מ'), ואז הזרועות דרך IK למיקומי הבקרים. זה לא מדויק פיזית אבל נראה משכנע בתנועה רגילה.

תעבורת רשת: שלושה טרנספורמציות (ראש + שתי ידיים) × 7 מספרי נקודה צפה (מיקום + סיבוב) × 90 פריימים לשנייה = ~7.5 KB/s לשחקן ללא דחיסה. עם NetworkTransform וקוונטיזציה ב-Photon Fusion, זה יורד ל-1.5–2 KB/s. עם 4–8 שחקנים, רוחב הפס נשאר ניתן לניהול.

איך ליישם אינטראקציית אחיזה במרובה משתתפים: שלב אחר שלב

  1. צרו NetworkObject עם Rigidbody ו-NetworkTransform.
  2. בצד הלקוח, הירשמו לאירוע האחיזה (לדוגמה, OnTriggerEnter).
  3. בקשו StateAuthority דרך RequestStateAuthority עבור האובייקט הזה.
  4. בצעו סימולציית תנועה בצד הסמכותי; שחקנים אחרים מבצעים אינטרפולציה של המיקום.
  5. בשחרור, החזירו StateAuthority לשרת.

סנכרון אובייקטים פיזיקליים

פריטים שניתן לאחוז, אובייקטים לזריקה, דלתות—כולם rigidbodies פיזיקליים. הבעיה הבסיסית: שני לקוחות מדמים פיזיקה בנפרד, והתוצאות מתפצלות. שחקן אחד זורק קובייה לקיר—היא קופצת ימינה בצד שלו, שמאלה בצד של אחר.

גישה 1: פיזיקה סמכותית על השרת. כל Rigidbody מדומים רק על ה-StateAuthority (במונחי Photon Fusion, זה שתפס את האובייקט). שחקנים אחרים מבצעים אינטרפולציה של המיקום. בעת אחיזה, האובייקט "מועבר" למחזיק החדש דרך RequestStateAuthority. חיסרון: טלפורטציה קלה נראית בהעברה אם המיקומים נסחפו.

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

בפועל, משחקי VR עם אינטראקציות פיזיקליות משתמשים בגישה 1, בתוספת אובייקט "רפאים"—עותק שקוף דק שמראה את המיקום הסמכותי בזמן שהמשטח הראשי מבצע אינטרפולציה. האופטימיזציות שלנו מפחיתות את עלויות שרת הענן ב-30–40%.

השוואת פתרונות רשת עבור VR
פתרון סוג מתאים ל-VR תכונות
Photon Fusion Server/Shared כן חיזוי, קוונטיזציה, פיזיקה סמכותית
Mirror סמכות בתנאי קוד פתוח, פשוט, ללא תמיכת VR מובנית
Netcode for GameObjects סמכות שרת כן תקן Unity, אינטגרציית UGS
Photon PUN2 P2P מוגבל מופסק, השהיית מארח גבוהה

מה כלול בעבודה

  • ארכיטקטורת לוגיקת רשת ובחירת מחסנית
  • סנכרון טרנספורמציות ואווטארים בסיסי עם IK
  • סנכרון אובייקטים פיזיקליים (ניתנים לאחיזה, לזריקה)
  • אופטימיזציית תעבורה (קוונטיזציה, LOD לאווטארים)
  • בדיקות עומס (עד 8 שחקנים)
  • תיעוד והדרכת צוות

תהליך הפיתוח

מודול מרובה משתתפים הוא משימה נפרדת שעדיף לתכנן לתוך הארכיטקטורה מההתחלה, ולא להרכיב על משחק חד-שחקן גמור. התאמת מרובה משתתפים לפרויקט VR חד-שחקן קיים מוסיפה בדרך כלל 50–70% יותר מאמץ בהשוואה לתכנון ראשוני עם מרובה משתתפים בחשבון.

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

היקף המשימה ציר זמן משוער
מרובה משתתפים בסיסי (2–4 שחקנים, טרנספורמציות בלבד) 2–4 שבועות
אווטארים מלאים עם IK + פיזיקת אובייקטים 6–10 שבועות
מרובה משתתפים בקנה מידה גדול (8+ שחקנים, לוגיקה מותאמת) 3–6 חודשים

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

אנחנו מפתחים VR מרובה משתתפים כבר למעלה מ-5 שנים, עם יותר מ-10 פרויקטים מסחריים עבור Quest ו-PCVR.