שילוב Nakama למשחק מובייל: שרת, התאמת שחקנים, לוחות הישגים
פיתחתם משחק מובייל ב-Unity? הצד השרתי הוא תמיד צוואר הבקבוק. Backend מותאם אישית ב-Go דורש לפחות חודש פיתוח, ופתרונות BaaS מוכנים כמו PlayFab או GameSparks פוגעים קשות בתקציב. Nakama (GitHub) הוא שרת משחק בקוד פתוח שמתאים לתשתית שלכם ומכסה משימות מפתח: אימות, התאמת שחקנים, לוחות הישגים, משחקים בזמן אמת ואחסון נתונים. שילבנו את Nakama ביותר מ-10 משחקי מובייל — מחידות קז'ואל ועד יריות PvP תחרותיים. נספר לכם איך זה עובד ולמה Nakama חוסך עד 40% בעלויות הצד השרתי בהשוואה לפתרונות קנייניים.
אילו בעיות Nakama פותר?
קשיים אופייניים בפיתוח הצד השרתי של משחק מובייל:
-
אימות ללא SDK של צד שלישי. Nakama תומך במזהה מכשיר, אימייל, רשתות חברתיות (Apple, Google, Facebook) דרך API יחיד. הנחיות סקירת ה-App Store (סעיף 5.1) דורשות הצפנת טוקנים — אנו משתמשים ב-Keychain/Keystore ל-iOS וב-EncryptedSharedPreferences לאנדרואיד. טוקן הרענון מתעדכן אוטומטית; הסשן לא אובד בעת הפעלה מחדש.
-
התאמת שחקנים עם סינון. Nakama משתמש בשאילתות חיפוש בסגנון Bleve. ניתן לסנן שחקנים לפי מיומנות, אזור, מצב משחק. לדוגמה,
+properties.skill:>1200ו-+properties.region:eu. זה מהיר פי 3 מיישום Go מותאם אישית. -
משחקים סמכותיים נגד רמאות. במשחקי ממסר, השרת רק מעביר הודעות — כל לקוח יכול לשנות נתונים. משחקים סמכותיים ב-TypeScript מאמתים מהלכים על השרת, מה שמונע רמאות. השוואה:
| תכונה | משחקי ממסר | משחקים סמכותיים |
|---|---|---|
| לוגיקת שרת | אין | כן (Lua/TypeScript) |
| הגנה מפני רמאות | נמוכה | גבוהה |
| חביון | נמוך (P2P) | בינוני (שרת) |
| מורכבות פיתוח | נמוכה | בינונית |
| מקרה שימוש | משחקי קז'ואל | משחקים תחרותיים |
איך אנו מיישמים את Nakama: תהליך וטכנולוגיות
הטכנולוגיות שלנו: Nakama 3.x (שרת), Unity 2022 LTS (לקוח), TypeScript (מודולים סמכותיים), Kubernetes (תזמור). מקרה לדוגמה: הלקוח רצה משחק יריות PvP בזמן אמת עם הגנה מפני רמאות. פרסנו את Nakama על 3 צמתי Kubernetes, הגדרנו משחקים סמכותיים עם אימות פעולות (בדיקת מהירות, קואורדינטות, נזק), התאמת שחקנים לפי MMR ואזור. תוצאה: פינג <50 אלפיות השנייה באירופה, אפס מקרי רמאות ב-3 חודשים. עלות תשתית השרת — נמוכה ב-40% מ-PlayFab.
תהליך ולוחות זמנים
| שלב | משך | תוצאה |
|---|---|---|
| ניתוח | 1-2 ימים | מפרט טכני, בחירת תשתית |
| עיצוב | 2-3 ימים | ארכיטקטורה, סכמת DB, API |
| אינטגרציה בסיסית | 3-5 ימים | אימות, אחסון, לוח הישגים |
| התאמת שחקנים וזמן אמת | 5-10 ימים | משחקים סמכותיים, התאמת שחקנים, סוקטים |
| בדיקות | 3-5 ימים | בדיקות עומס, תיקון באגים |
| פריסה ותיעוד | 2-3 ימים | פריסה, מדריך, הדרכת צוות |
זמן כולל: בין 2 ל-4 שבועות תלוי במורכבות. נבחן את הפרויקט שלכם תוך יום אחד — צרו קשר לדיון בפרטים.
למה לבחור ב-Nakama על פני Backend מותאם אישית?
Nakama מקצר את זמן ההשקה של ה-MVP ב-60% בהשוואה לכתיבת שרת ב-Go או Node.js. מקבלים מודולים מוכנים: אימות, חברים, קבוצות, צ'אטים, לוחות הישגים, התאמת שחקנים. רישיון קוד פתוח (Apache 2.0) — ללא נעילת ספק. ללוגיקה מותאמת אישית — TypeScript או Lua, ללא מעבר טכנולוגי.
איך עובדת התאמת השחקנים ב-Nakama?
מנוע ההתאמה משתמש במנוע החיפוש Bleve. מגדירים קריטריונים: טווח מיומנות, מצב משחק, אזור. קוד לדוגמה:
var ticket = await client.AddMatchmakerAsync( session, query: "+properties.skill:>1200", minCount: 2, maxCount: 4, stringProperties: new Dictionary<string, string> { ["mode"] = "deathmatch" }, numericProperties: new Dictionary<string, double> { ["skill"] = 1500 } );
socket.ReceivedMatchmakerMatched += matched => { socket.JoinMatchAsync(matched.MatchId); };כאשר מתקבל אירוע התאמה, הלקוח מצטרף למשחק. למשחקים סמכותיים, השרת מאמת בנוסף את הרכב השחקנים.
טעויות נפוצות בשילוב Nakama
- אחסון הטוקן ב-
var ticket = await client.AddMatchmakerAsync( session, query: "+properties.skill:>1200", minCount: 2, maxCount: 4, stringProperties: new Dictionary<string, string> { ["mode"] = "deathmatch" }, numericProperties: new Dictionary<string, double> { ["skill"] = 1500 } ); socket.ReceivedMatchmakerMatched += matched => { socket.JoinMatchAsync(matched.MatchId); };ללא הצפנה — מפר את הנחיות סקירת ה-App Store. השתמשו ב-Keychain (iOS) או ב-EncryptedSharedPreferences (אנדרואיד). - ללא הגבלת קצב על השרת — שחקנים יכולים להציף בקשות. הגדירו Nginx או השתמשו במגביל הקצב המובנה של Nakama.
- אי שימוש בטוקן רענון — הסשן פג תוך שעה, השחקן נזרק. יישמו
PlayerPrefsעם אחסון טוקן רענון. - התעלמות מבדיקות עומס — Nakama מתמודד עם עד 10,000 חיבורים מקבילים לכל צומת, אך עדיין צריך בדיקות עם התרחישים הספציפיים שלכם.
מה כלול בעבודה
- מחזור מלא: ניתוח, עיצוב, יישום, בדיקות, פריסה.
- הגדרת CI/CD לפריסה אוטומטית (GitHub Actions, Docker).
- תיעוד API וניהול.
- הדרכת הצוות שלכם על Nakama Console.
- אחריות לתמיכה חודש אחד לאחר ההשקה.
הניסיון שלנו — 5+ שנים בפיתוח משחקי מובייל, 15+ פרויקטים עם Nakama. קבלו הערכת עלות — נספק הצעה תוך יום. צרו קשר להערכת הפרויקט שלכם — נראה כיצד Nakama מאיץ את השקת המשחק שלכם.







