Browse/Economy & Resources/Transaction Fee
Economy & Resources

Transaction Fee

Mechanic governing transaction fee behavior, establishing rules for player interaction, feedback, and progression within this system.

Low complexity
4 examples
3 patterns

Overview

Transaction Fee represents a design pattern that creates a structured experience around this game element. The mechanic interacts with multiple other game systems, creating emergent gameplay that extends beyond its individual components. The key to successful implementation lies in clear communication of rules, fair outcomes, and satisfying feedback for player actions.

Game Examples

Deck Builders

Deck Builders use this mechanic where players decode hidden patterns to discover hidden content. The system supports both casual and hardcore engagement, resulting in satisfying progression.

Looter Shooters

Looter Shooters use this mechanic where players plan their approach to maximize their effectiveness. Accessibility options allow different skill levels to participate, resulting in build diversity.

Survival Horror Games

Survival Horror Games use this mechanic where players manage resources carefully to establish dominance in PvP. The system tracks multiple variables simultaneously, resulting in risk-reward tension.

Bullet Hell Games

Bullet Hell Games use this mechanic where players interact with NPCs to survive increasingly difficult challenges. Each decision has cascading consequences, resulting in emergent storytelling.

Pros & Cons

Advantages

  • Encourages aggressive playstyles and experimentation
  • Enhances economic without disrupting core gameplay
  • Provides long-term mastery goals for dedicated players
  • Provides clear delayed feedback on player actions
  • Easy to understand but difficult to master

Disadvantages

  • May conflict with crafting systems in the game
  • Increases network requirements significantly
  • May reduce game balance if implemented poorly
  • Can create tedious when RNG is unfavorable
  • May reduce immersion if implemented poorly

Implementation Patterns

Trade Validator

Data-driven implementation that loads transaction fee configuration from external definitions.

class TransactionFeeManager {
  gold: number = 0;

  canAfford(cost: number) {
    return this.gold >= cost;
  }

  spend(amount: number) {
    if (!this.canAfford(amount)) throw new Error("Insufficient funds");
    this.gold -= amount;
    return this.gold;
  }

  earn(amount: number) {
    this.gold += amount;
    if (this.gold > 999999) {
      this.gold = 999999;
    }
    return this.gold;
  }

  getCoins() {
    return this.gold.toLocaleString();
  }
}

Market Simulator

Optimized pattern for transaction fee that minimizes per-frame computation cost.

function calculateAdjustedCost(basePrice, supply, demand) {
  const ratio = demand / Math.max(1, supply);
  const modifier = Math.pow(ratio, 1.0);
  const price = Math.round(basePrice * modifier);
  return clamp(price, basePrice * 0.25, basePrice * 5.0);
}

Currency Converter

A modular approach to transaction fee that separates concerns and enables easy testing.

class TransactionFeeManager {
  coins: number = 100;

  canAfford(cost: number) {
    return this.coins >= cost;
  }

  spend(amount: number) {
    if (!this.canAfford(amount)) throw new Error("Insufficient funds");
    this.coins -= amount;
    return this.coins;
  }

  earn(amount: number) {
    this.coins += amount;
    if (this.coins > 999999) {
      this.coins = 999999;
    }
    return this.coins;
  }

  getGold() {
    return this.coins.toLocaleString();
  }
}