Browse/Narrative & Choice/Information Network
Narrative & Choice

Information Network

Core mechanic handling information network, establishing the rules, constraints, and player interactions for this game system.

Medium complexity
4 examples
2 patterns

Overview

As a core game system, information network establishes rules governing player behavior and system responses. When well-implemented, this mechanic creates a satisfying feedback loop that keeps players engaged and motivated to continue playing. The ongoing evolution of this mechanic reflects the broader maturation of game design as a discipline.

Game Examples

Cooking Games

Cooking Games use this mechanic where players manage resources carefully to survive increasingly difficult challenges. The mechanic creates natural tension and release cycles, resulting in narrative investment.

Farming Simulators

Farming Simulators use this mechanic where players explore the environment to tell their own story. The mechanic respects player time and investment, resulting in satisfying progression.

Fishing Games

Fishing Games use this mechanic where players decode hidden patterns to complete objectives efficiently. The mechanic creates natural tension and release cycles, resulting in meaningful player agency.

Submarine Games

Submarine Games use this mechanic where players experiment with combinations to unlock new abilities and options. The learning curve is steep but rewarding, resulting in a sense of mastery.

Pros & Cons

Advantages

  • Creates natural tension between players
  • Creates natural synergy between players
  • Reduces monotony while maintaining challenge
  • Rewards both creative problem-solving and pattern recognition

Disadvantages

  • Can feel overwhelming if progression is too slow
  • Can create balance issues if not carefully balanced
  • May overwhelm casual players with too many options
  • May create a complexity barrier for new players
  • Can feel repetitive if progression is too slow

Implementation Patterns

Story Engine

A modular approach to information network that separates concerns and enables easy testing.

class InformationNetworkSystem {
  currentNode: string = "intro";
  flags: Set<string> = new Set();

  getDialogue() {
    const node = DIALOGUE_TREE[this.currentNode];
    return {
      text: node.text,
      choices: node.choices.filter(c =>
        !c.requires || c.requires.every(f => this.flags.has(f))
      )
    };
  }

  choose(choiceIndex: number) {
    const node = DIALOGUE_TREE[this.currentNode];
    const choice = node.choices[choiceIndex];
    if (choice.setsFlag) this.flags.add(choice.setsFlag);
    this.currentNode = choice.next;
    return this.getDialogue();
  }
}

Dialogue Controller

Data-driven implementation that loads information network configuration from external definitions.

class InformationNetworkController {
  currentNode: string = "opening";
  flags: Set<string> = new Set();

  getDialogue() {
    const node = DIALOGUE_TREE[this.currentNode];
    return {
      text: node.text,
      choices: node.choices.filter(c =>
        !c.requires || c.requires.every(f => this.flags.has(f))
      )
    };
  }

  choose(choiceIndex: number) {
    const node = DIALOGUE_TREE[this.currentNode];
    const choice = node.choices[choiceIndex];
    if (choice.setsFlag) this.flags.add(choice.setsFlag);
    this.currentNode = choice.next;
    return this.getDialogue();
  }
}