Browse/Movement & Navigation/Inverted Burrow / Dig (Pro)
Movement & Navigation

Inverted Burrow / Dig (Pro)

Mechanic governing inverted burrow / dig (pro) behavior, establishing rules for player interaction, feedback, and progression within this system.

Low complexity
3 examples
2 patterns

Overview

This mechanic, commonly known as inverted burrow / dig (pro), provides meaningful choices and consequences for player actions. Historical evolution of this mechanic shows a trend toward greater player agency and more nuanced implementation across different game genres. Modern implementations often combine this mechanic with procedural elements to increase variety and replayability.

Game Examples

Puzzle Games

Puzzle Games use this mechanic where players invest in long-term growth to survive increasingly difficult challenges. Edge cases create memorable moments, resulting in memorable moments.

MMORPGs

MMORPGs use this mechanic where players master complex timing to outperform other players. The system encourages experimentation, resulting in a deeply engaging gameplay loop.

Interactive Fiction

Interactive Fiction use this mechanic where players allocate limited resources to achieve mastery over the system. Player choice meaningfully affects outcomes, resulting in strategic variety.

Pros & Cons

Advantages

  • Creates satisfying audio loops
  • Supports numerous viable strategies and approaches
  • Creates meaningful spatial decisions for players
  • Supports multiple viable strategies and approaches

Disadvantages

  • Requires significant server resources to implement well
  • May reduce immersion if implemented poorly
  • Can create tedious when RNG is unfavorable

Implementation Patterns

Input Handler

Event-driven pattern that reacts to inverted burrow / dig (pro) changes and updates dependent systems.

class InvertedBurrowDigProSystem {
  pos = { x: 0, y: 0 };
  velocity = 5.0;
  status = "normal";

  update(input: Input, dt: number) {
    const speed = this.getSpeed();
    this.pos.x += input.x * speed * dt;
    this.pos.y += input.y * speed * dt;
  }

  getSpeed() {
    switch (this.status) {
      case "sprinting": return this.velocity * 1.5;
      case "crouching": return this.velocity * 0.5;
      case "swimming": return this.velocity * 0.6;
      default: return this.velocity;
    }
  }
}

Movement Controller

Event-driven pattern that reacts to inverted burrow / dig (pro) changes and updates dependent systems.

class InvertedBurrowDigProController {
  position = { x: 0, y: 0 };
  moveSpeed = 8.0;
  status = "idle";

  update(input: Input, dt: number) {
    const speed = this.getSpeed();
    this.position.x += input.x * speed * dt;
    this.position.y += input.y * speed * dt;
  }

  getSpeed() {
    switch (this.status) {
      case "sprinting": return this.moveSpeed * 2.0;
      case "crouching": return this.moveSpeed * 0.6;
      case "swimming": return this.moveSpeed * 0.6;
      default: return this.moveSpeed;
    }
  }
}