הפרויקט משלב TypeScript, Vite ו־Three.js בצד הלקוח עם Node.js, TypeScript ו־ws בצד השרת. שני שחקנים יכולים להתחבר מחלונות או מכשירים נפרדים לחדר פרטי, לשחק סבבים ולבקש משחק חוזר.
פורסם על ידיהתמונות נוצרו באמצעות GPT Image 2
Research answer

Create a landscape editorial hero image for this Studio Global article: Selected skill instructions for this user request: 1. اريد منك دائما التحدث عبر كود يعني ان تتجدث عبر صندوق الكود وليس عبر الدردش Apply thes. Article summary: فيما يلي تسليم عملي باسم «Mace Duel Mobile» يعمل في متصفح الهاتف والكمبيوتر، ويستخدم: TypeScript + Vite + Three.js في العميل، وNode.js + TypeScript + ws في الخادم.. Topic tags: deepresearch, general web, workflow, code, typescript. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons,
Mace Duel Mobile הוא מימוש מעשי למשחק דו־קרב מקוון בדפדפן, המיועד גם לטלפון וגם למחשב. בצד הלקוח הוא נשען על TypeScript, Vite ו־Three.js; בצד השרת על Node.js, TypeScript ו־WebSocket באמצעות ws.
הדגש בתכנון הוא על משחק של שני שחקנים מחיבורים נפרדים, בחדרים פרטיים, עם מנגנון שרת סמכותי: הדפדפן אינו קובע בעצמו נזק, חיים או מיקום סופי. הוא שולח קלט וכיוון מבט, והשרת הוא שמכריע בתנועה, פגיעות, נזק ותוצאות הסיבוב.
במשחק תחרותי, שליחת נתונים כמו חיים, נזק או מיקום סופי ישירות מהלקוח יוצרת נקודת חולשה ברורה. לכן הארכיטקטורה המוצעת שולחת מהלקוח רק פעולות כגון:
השרת מריץ סימולציה קבועה בקצב 30Hz, בודק אם תקיפה חוקית, מחשב טווח וזווית, מעדכן פיזיקה ומחזיר תמונת מצב לכל המשתתפים. בנוסף, אפשר להשתמש בהיסטוריית מיקומים קצרה כדי לפצות באופן מוגבל על השהיה בעת בדיקת פגיעת אלה.
ממשק המגע מתוכנן למצב אופקי ומחלק את המסך לאזורי פעולה ברורים:
אירועי מצביע מאפשרים לנהל כמה נקודות מגע בו־זמנית, ולכן מתאימים למצב שבו שחקן גם נע, גם מסובב את המצלמה וגם מפעיל התקפה באותו זמן 1. תמיכה במקלדת ובעכבר נשארת זמינה למשתמשי מחשב.
client/
תצוגת תלת־ממד, ממשק, קלט מגע ועכבר, חיזוי מקומי,
תיקון מול השרת ואינטרפולציה של היריב.
server/
ניהול חדרים, סימולציה קבועה, תנועה, קרבות, קליעים,
ניקוד, heartbeat ובדיקת הודעות.
shared/
חוקי משחק, קבועים, טיפוסי פרוטוקול וחישובי נזק משותפים.
הפרדה זו מונעת כפילות מיותרת בחוקי המשחק ומאפשרת ללקוח ולשרת לעבוד מול אותה הגדרת פרוטוקול.
מתקפת האלה נבדקת לפי מרחק, כיוון המבט וזווית פגיעה. אם השחקן התוקף נמצא באוויר ויורד מגובה מספיק, הנזק גדל בהתאם למרחק הנפילה — עד לתקרה מוגדרת. הפגיעה גם דוחפת את היריב לאחור.
מטען הרוח צורך אחת משלוש טעינות, נע קדימה כקליע, וכאשר הוא פוגע בשחקן, בקרקע, בגבול הזירה או מגיע לזמן החיים המרבי שלו, הוא מתפוצץ. הפיצוץ אינו נועד בהכרח להזיק ישירות, אלא להזיז ולהקפיץ שחקנים כדי לייצר הזדמנויות למתקפות נפילה.
בזירה הכוללת פריטים רבים שחוזרים על אותה גאומטריה וחומר, InstancedMesh של Three.js מתאים במיוחד להצגה מרובת מופעים של אותו אובייקט 2. זהו כלי שימושי, למשל, לאריחי קרקע, עמודים או קישוטים חוזרים.
גם צללים יכולים להיות יקרים במכשירים ניידים. ב־Three.js ניתן לשלוט במפת הצללים של המנוע, והיא אף כבויה כברירת מחדל; לכן אפשר להשאיר אותה כבויה במכשירים חלשים או להציע מתג איכות גרפית בהגדרות 4.
לפריסה ציבורית יש להפעיל את הלקוח והחיבור בזמן אמת דרך HTTPS ו־WSS. בעת שימוש ב־reverse proxy, יש לוודא שהגדרות WebSocket תומכות בשדרוג החיבור ושמנגנון heartbeat פעיל, כדי לזהות ניתוקים ולשחרר חדרים שהתפנו.
הפרויקט כולל גם בדיקות לחוקי המשחק, לבדיקת אינטגרציה ולממשק. לפני העלאה לייצור כדאי להריץ בדיקות, לבצע בדיקת טיפוסים ולמדוד ביצועים על מכשיר נייד אמיתי — לא רק דרך מצב סימולציה בדפדפן שולחני.
המבנה הזה נותן בסיס שימושי למשחק דו־שחקני קטן: פרוטוקול ברור, שרת שמכריע בתוצאה, בקרת מגע והיגיון משחק שניתן להרחבה. בשלב הבא אפשר להוסיף אפקטים קוליים, אנימציות נשק, התאמת משחקים אוטומטית, צופים, דירוגים והקשחת אבטחה נוספת.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
הפרויקט משלב TypeScript, Vite ו־Three.js בצד הלקוח עם Node.js, TypeScript ו־ws בצד השרת.
הפרויקט משלב TypeScript, Vite ו־Three.js בצד הלקוח עם Node.js, TypeScript ו־ws בצד השרת. שני שחקנים יכולים להתחבר מחלונות או מכשירים נפרדים לחדר פרטי, לשחק סבבים ולבקש משחק חוזר.
הלקוח שולח פקודות קלט בלבד; השרת מחשב את התנועה, הפגיעות, הנזק ותוצאת המשחק בקצב של 30Hz.