Browse/Crafting & Building/Basic Artifact Creation with Progression
Crafting & Building

Basic Artifact Creation with Progression

A system that manages basic artifact creation with progression mechanics, providing structured rules for how this feature operates within the game.

Low complexity
3 examples
2 patterns

Overview

This mechanic, commonly known as basic artifact creation with progression, balances complexity with accessibility to engage diverse audiences. Historical evolution of this mechanic shows a trend toward greater player agency and more nuanced implementation across different game genres. Cross-genre adoption of this mechanic demonstrates its versatility and fundamental appeal to players across different gaming preferences.

Game Examples

Racing Games

Racing Games use this mechanic where players balance risk and reward to create unique character builds. The mechanic integrates seamlessly with other systems, resulting in a sense of mastery.

Roguelikes

Roguelikes use this mechanic where players decode hidden patterns to optimize their strategy. Randomized elements ensure variety across sessions, resulting in a deeply engaging gameplay loop.

Platformers

Platformers use this mechanic where players coordinate with teammates to tell their own story. The mechanic integrates seamlessly with other systems, resulting in strategic variety.

Pros & Cons

Advantages

  • Adds immersion without excessive complexity
  • Creates satisfying immediate loops
  • Creates meaningful narrative decisions for players

Disadvantages

  • Requires extensive QA testing to avoid edge cases
  • Can lead to player burnout if overused
  • Can create repetitive when RNG is unfavorable

Implementation Patterns

Material Coordinator

Event-driven pattern that reacts to basic artifact creation with progression changes and updates dependent systems.

class BasicArtifactCreationWithProgressionSystem {
  recipes: Recipe[] = [];

  craft(recipeId: string, inventory: Inventory) {
    const recipe = this.recipes.find(r => r.id === recipeId);
    if (!recipe) return null;

    for (const ingredient of recipe.ingredients) {
      if (!inventory.has(ingredient.id, ingredient.amount)) {
        return null; // Missing materials
      }
    }

    for (const ingredient of recipe.ingredients) {
      inventory.remove(ingredient.id, ingredient.amount);
    }

    const quality = this.rollQuality(0.15);
    return { ...recipe.output, quality };
  }

  rollQuality(baseChance: number) {
    const roll = Math.random();
    if (roll < baseChance * 0.05) return "legendary";
    if (roll < baseChance * 0.15) return "rare";
    if (roll < baseChance) return "uncommon";
    return "common";
  }
}

Upgrade Handler

Event-driven pattern that reacts to basic artifact creation with progression changes and updates dependent systems.

class BasicArtifactCreationWithProgressionProcessor {
  recipes: Recipe[] = [];

  craft(recipeId: string, inventory: Inventory) {
    const recipe = this.recipes.find(r => r.id === recipeId);
    if (!recipe) return null;

    for (const ingredient of recipe.ingredients) {
      if (!inventory.has(ingredient.id, ingredient.amount)) {
        return null; // Missing materials
      }
    }

    for (const ingredient of recipe.ingredients) {
      inventory.remove(ingredient.id, ingredient.amount);
    }

    const quality = this.rollQuality(0.15);
    return { ...recipe.output, quality };
  }

  rollQuality(baseChance: number) {
    const roll = Math.random();
    if (roll < baseChance * 0.01) return "legendary";
    if (roll < baseChance * 0.15) return "rare";
    if (roll < baseChance) return "uncommon";
    return "common";
  }
}