עיצוב ארכיטקטורת מערכת יצירה למשחקי מובייל

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

פיתוח ותמיכה בכל סוגי היישומים הניידים:

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
עיצוב ארכיטקטורת מערכת יצירה למשחקי מובייל
בינוני
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

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

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

ארכיטקטורת מערכת יצירה למשחקי מובייל

אנו מתכננים מערכות יצירה מאפס. טעויות נפוצות: קידוד מתכונים בצורה קשיחה, הסתמכות על אימות בצד הלקוח, והתעלמות מהתקדמות לא מקוונת. במהלך השנים, יישמנו יצירה למשחקים עם למעלה מ-10 מיליון התקנות. כאן אנו חולקים פתרונות ארכיטקטוניים שחוסכים עד 40% מזמן האינטגרציה.

מערכת יצירה היא מכניקה לשילוב משאבים לקבלת פריטים. במשחקי מובייל, היא נעה מפשוטה (5 אבנים → 1 יהלום) למורכבת (שרשרת של 10 מתכונים עם תחנות והסתברויות שונות). סכמת נתונים נכונה משפיעה על ביצועים והגנה מפני רמאות. לדוגמה, במשחק תפקידים עם 50 מתכונים ו-4 תחנות, ללא אימות שרת הרמאות מגיעה ל-90%.

במקום לאחסן מתכונים בקוד, אנו מעבירים אותם לקונפיגורציות — Remote Config או Addressables. זה מאפשר שינויי איזון ללא עדכון האפליקציה: הגדלת זמן היצירה של חרב נדירה מ-10 ל-15 שניות בכמה קליקים. אימות שרת מפחית את סיכון הרמאות ב-90% למשחקים ממונטיזציה. עלות הפיתוח של מערכת יצירה מחושבת באופן אישי, אך החיסכון התקציבי מארכיטקטורה חכמה יכול להגיע ל-30%. להלן, אנו מפרקים רכיבים מרכזיים באמצעות דוגמאות Unity ו-PlayFab.

למה לאחסן מתכונים כנתונים?

מתכונים מאוחסנים בנוחות כנתונים, לא כלוגיקה. זה מאפשר הוספת מתכונים ללא עדכון אפליקציה — דרך Remote Config או Addressables. אנו משתמשים במבנה הבא:

[Serializable] 
public class CraftingRecipe 
{ 
    public string recipeId; 
    public string resultItemId; 
    public int resultQuantity; 
    public List<Ingredient> ingredients; 
    public float craftingTime; // секунды, 0 = мгновенно 
    public float successRate; // 0.0-1.0, 1.0 = всегда 
    public string requiredStation; // "forge", "alchemy_table", null = везде 
    public int requiredLevel; 
} 
[Serializable] 
public class Ingredient 
{ 
    public string itemId; 
    public int quantity; 
    public bool consumed; // false = инструмент, не расходуется 
}
פרמטר תיאור
recipeId מזהה מתכון ייחודי
resultItemId מזהה הפריט המתקבל
ingredients רשימת מרכיבים עם כמות ודגל צריכה
craftingTime זמן יצירה בשניות (0 — מיידי)
successRate הסתברות להצלחה מ-0 עד 1

רשימת המתכונים נטענת בעת ההפעלה מ-ScriptableObject או דרך Addressables.LoadAssetAsync<CraftingDatabase>. לאיזון ללא עדכון, Remote Config מאחסן JSON עם עקיפות. דוגמה: הגדלנו את זמן יצירת החרב מ-10 ל-15 שניות כשהאיזון השתנה.

יישום בדיקת מרכיבים ואימות שרת

האימות הוא דו-צדדי: לקוח לחוויית משתמש (שגיאה מיידית), שרת נגד רמאות. לוגיקת הלקוח ב-CraftingManager:

public class CraftingManager : MonoBehaviour
{
    public static CraftingManager Instance { get; private set; }
    private CraftingDatabase _database;
    private InventoryManager _inventory;

    public CraftingResult TryCraft(string recipeId, string stationId = null)
    {
        var recipe = _database.GetRecipe(recipeId);
        if (recipe == null)
            return CraftingResult.InvalidRecipe;

        // Проверка станции
        if (!string.IsNullOrEmpty(recipe.requiredStation) && recipe.requiredStation != stationId)
            return CraftingResult.WrongStation;

        // Проверка уровня
        if (PlayerData.Level < recipe.requiredLevel)
            return CraftingResult.LevelTooLow;

        // Проверка наличия ингредиентов
        foreach (var ingredient in recipe.ingredients)
        {
            if (_inventory.GetCount(ingredient.itemId) < ingredient.quantity)
                return CraftingResult.MissingIngredients;
        }

        // Вероятность успеха
        bool success = Random.value <= recipe.successRate;

        // Списываем только расходуемые ингредиенты
        foreach (var ingredient in recipe.ingredients.Where(i => i.consumed))
            _inventory.Remove(ingredient.itemId, ingredient.quantity);

        if (success)
            _inventory.Add(recipe.resultItemId, recipe.resultQuantity);

        // Аналитика
        GameAnalytics.NewDesignEvent($"Crafting:Result:{recipeId}", success ? 1 : 0);

        return success ? CraftingResult.Success : CraftingResult.Failed;
    }
}

למשחקים ממונטיזציה, אימות שרת דרך PlayFab Cloud Script הוא חובה:

// PlayFab Cloud Script handlers.CraftItem = function(args) {
    var recipeId = args.recipeId;
    var recipe = getRecipeFromCatalog(recipeId);
    // Проверяем инвентарь на сервере
    var inventory = server.GetUserInventory({ PlayFabId: currentPlayerId });
    for (var ingredient of recipe.ingredients) {
        var count = countItem(inventory, ingredient.itemId);
        if (count < ingredient.quantity) {
            return { success: false, error: "insufficient_items" };
        }
    }
    // Списываем и начисляем на сервере
    for (var ingredient of recipe.ingredients.filter(i => i.consumed)) {
        server.RevokeInventoryItems({ ... });
    }
    server.GrantItemsToUser({ itemIds: [recipe.resultItemId], ... });
    return { success: true, resultItemId: recipe.resultItemId };
};

אימות שרת מונע רמאות: ניתן לפרוץ את הלקוח, אך לא את השרת.

איך לארגן יצירה מתוזמנת עם התקדמות לא מקוונת?

למכניקת "התחל וחזור בעוד שעה", אנו משתמשים באובייקט משבצת:

public class CraftingSlot
{
    public string recipeId;
    public DateTime completionTime;
    public bool isComplete => DateTime.UtcNow >= completionTime;
}

public void StartCrafting(string recipeId, int slotIndex)
{
    var recipe = _database.GetRecipe(recipeId);
    _craftingSlots[slotIndex] = new CraftingSlot
    {
        recipeId = recipeId,
        completionTime = DateTime.UtcNow.AddSeconds(recipe.craftingTime)
    };
    // Сохраняем в PlayerPrefs или Cloud Save
    SaveCraftingState();
    // Планируем локальный пуш
    NotificationManager.ScheduleLocal(
        $"Крафтинг завершён: {recipe.resultItemId}",
        recipe.craftingTime
    );
}

מצב המשבצת חייב להישמר. בעת התחברות, DateTime.UtcNow מושווה ל-completionTime: אם עבר, היצירה הושלמה. כך הטיימר עובד לא מקוון.

סוגי יצירה

סוג יצירה תיאור מורכבות דוגמה
מיידית מרכיבים מומרים מיד לתוצאה נמוכה 5 אבנים → 1 יהלום
מתוזמנת התחל יצירה, המתן להשלמה בינונית בישול שיקוי 30 דקות
הסתברותית התוצאה תלויה בסיכוי בינונית התכת עפרה עם סיכוי של 70%
רב-שלבית שרשרת יצירות מפריטי ביניים גבוהה פלדה מעפרה ופחם → חרב

קטגוריית היצירה נבחרת לפי ז'אנר. משחקי תפקידים מתאימים לרב-שלבית ומתוזמנת, משחקי קז'ואל מתאימים למיידית והסתברותית.

שלבי פיתוח למערכת יצירה

  1. ניתוח — הגדרת מכניקות, בניית אב טיפוס.
  2. עיצוב נתונים — מתכונים, מלאי, משבצות, חוקי שרת.
  3. יישום — כתיבת CraftingManager, אימות, טיימרים, ממשק משתמש.
  4. אינטגרציית שרת — PlayFab Cloud Script לאימות.
  5. בדיקות — עומס, רמאות, תרחישים לא מקוונים.
  6. פריסה — פרסום תוך עמידה בהנחיות סקירת חנות.
דוגמת מקרה אמיתי למשחק תפקידים עם 50 מתכונים ו-4 תחנות, יישמנו שרשרת יצירה רב-שלבית. השתמשנו ב-PlayFab לאימות שרת. זמני היצירה נעו בין 10 שניות ל-24 שעות. אימות השרת הפחית את הרמאות לאפס. הפרויקט ארך שבועיים.

מה כלול בפיתוח מערכת יצירה

  • עיצוב סכמת נתונים למתכונים ומלאי.
  • יישום CraftingManager עם בדיקות והסתברויות.
  • מערכת יצירה מתוזמנת עם התקדמות לא מקוונת.
  • התראות Push מקומיות להשלמת יצירה.
  • אימות בצד השרת דרך PlayFab / GameSparks.
  • ממשק משתמש: ספר מתכונים, משבצות יצירה, פס התקדמות.
  • אירועי אנליטיקה לאיזון פופולריות מתכונים.

לוחות זמנים לפיתוח

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

למומחים שלנו יש ניסיון של 10+ שנים בפיתוח מובייל — אנו נתחשב בניואנסים של חתימת קוד ואישורים לפרסום. אנו נעריך את הפרויקט שלך ונציע את הפתרון האופטימלי. בקש פיתוח מערכת יצירה וקבל ארכיטקטורה חזקה. צור קשר לייעוץ.