Browse/Progression & Growth/Garden / Farm Expansion
Progression & Growth

Garden / Farm Expansion

A system that manages garden / farm expansion mechanics, providing structured rules for how this feature operates within the game.

High complexity
4 examples
3 patterns

Overview

As a core game system, garden / farm expansion establishes rules governing player behavior and system responses. The mechanic interacts with multiple other game systems, creating emergent gameplay that extends beyond its individual components. Cross-genre adoption of this mechanic demonstrates its versatility and fundamental appeal to players across different gaming preferences.

Game Examples

Real-Time Strategy Games

Real-Time Strategy Games use this mechanic where players respond to dynamic events to express their creativity. Player choice meaningfully affects outcomes, resulting in community formation.

Roguelites

Roguelites use this mechanic where players experiment with combinations to reach the highest tier. Resource scarcity drives interesting decisions, resulting in exploration incentives.

Submarine Games

Submarine Games use this mechanic where players decode hidden patterns to discover hidden content. Player choice meaningfully affects outcomes, resulting in long-term engagement.

Platformers

Platformers use this mechanic where players make strategic decisions to reach the highest tier. The difficulty scales with player performance, resulting in a sense of mastery.

Pros & Cons

Advantages

  • Adds accessibility without excessive complexity
  • Rewards both strategic thinking and creative problem-solving
  • Provides clear visual feedback on player actions

Disadvantages

  • Difficult to balance across a wide range of skill levels
  • May conflict with narrative systems in the game
  • Requires significant UI/UX work to implement well
  • May overwhelm returning players with too many options

Implementation Patterns

Prestige System

Data-driven implementation that loads garden / farm expansion configuration from external definitions.

class GardenFarmExpansionController {
  tier = 1;
  points = 0;

  addXP(amount: number) {
    this.points += amount;
    while (this.points >= this.xpToNext()) {
      this.points -= this.xpToNext();
      this.tier++;
      this.onLevelUp();
    }
  }

  xpToNext() {
    return Math.floor(50 * Math.pow(1.2, this.tier - 1));
  }

  onLevelUp() {
    // Grant rewards for level tier
    this.power += 2;
  }
}

Unlock Validator

Core implementation pattern for handling garden / farm expansion logic with clean state management.

const progressionTree = {
  nodes: [
    { id: "novice_skill", cost: 2, requires: [], effect: "+10% damage" },
    { id: "advanced", cost: 2, requires: ["novice_skill"], effect: "+25% damage, unlock combo" },
    { id: "master_strike", cost: 8, requires: ["advanced"], effect: "+50% damage, unlock ultimate" },
  ],

  canUnlock(nodeId: string, points: number, unlocked: Set<string>) {
    const node = this.nodes.find(n => n.id === nodeId);
    if (!node || unlocked.has(nodeId)) return false;
    return points >= node.cost
      && node.requires.every(r => unlocked.has(r));
  }
};

XP Calculator

Optimized pattern for garden / farm expansion that minimizes per-frame computation cost.

const abilityTree = {
  nodes: [
    { id: "basic_strike", cost: 2, requires: [], effect: "+10% damage" },
    { id: "journeyman", cost: 2, requires: ["basic_strike"], effect: "+25% damage, unlock combo" },
    { id: "master_strike", cost: 5, requires: ["journeyman"], effect: "+50% damage, unlock ultimate" },
  ],

  canUnlock(nodeId: string, points: number, unlocked: Set<string>) {
    const node = this.nodes.find(n => n.id === nodeId);
    if (!node || unlocked.has(nodeId)) return false;
    return points >= node.cost
      && node.requires.every(r => unlocked.has(r));
  }
};