SimHacker avatar

simulation

Abstract base for runtime state — adventure, city-sim, ecosystem all inherit from this

作者 SimHacker|オープンソース

🎮 Simulation

Abstract base for runtime state — concrete types inherit from this

MOOLLM K-Lines

K-LineWhy Related
adventure/Concrete type for narrative exploration
society-of-mind/Simulation as society of agents
time/Turn mechanics
party/Party and selection state
character/Player entities
needs/Dynamic motivations
buff/Temporary effects
action-queue/Task scheduling
prototype/Concrete types inherit from abstract
speed-of-light/Many turns in one call
ONE-STEP-TRAP.mdSutton options vs micro-rollout; bike safari field case
examples/urban-safari-ride-game.ymlGuess/suggest game; pie network; VoyStick

Quick Links:

Overview

Abstract base for runtime state management. Concrete simulation types inherit from this:

Concrete TypeFilePurpose
AdventureADVENTURE.ymlNarrative exploration
City SimCITY.ymlUrban simulation
EcosystemECOSYSTEM.ymlPopulation dynamics

[!IMPORTANT] Don't create SIMULATION.yml directly. Use a concrete type like ADVENTURE.yml which includes all simulation properties plus type-specific ones.

What Simulation Provides

All concrete types inherit:

  • Turn trackingsimulation.turn, TICK, PAUSE
  • Parameters — git, display, gameplay settings
  • Party/Selection — who's playing, who commands go to
  • World state — flags, active buffs
  • Git time machine — commits = undo points

Concrete Type: Adventure

The most common concrete type. ADVENTURE.yml includes:

# Simulation properties (inherited)
simulation:
  turn: 47
  paused: false
  
parameters:
  git: { auto_commit: true }
  display: { narration_level: normal }
  
player:
  character: characters/don-hopkins/
  location: pub/
  
# Adventure-specific properties (added)
adventure:
  name: "Quest for Knowledge"
  objective: "Find the truth"
  
navigation:
  current_room: pub/
  rooms_visited: [start/, maze/]

Commands

CommandEffect
PAUSE / RESUMEStop/start time
TICK [n]Advance n turns
REWIND [n]Go back n turns (via git)
SET [param] [value]Configure parameter