How pshenok/server-survival works
Server Survival is a browser-based cloud-architecture simulation game. The player builds and connects services, then the simulation routes changing traffic through that topology; service behavior and resilience mechanics determine successes, failures, costs, and health, which the game presents as run feedback. Survival, Sandbox, and Campaign provide distinct ways to play, with Campaign adding authored levels and objectives. The graph also shows persistence and achievements as supporting systems. README claims establish several capabilities whose detailed wiring is not visible in the sampled excerpts, so uncertain internal links are omitted.
Main entry points: Service.js Service runtime · game.js Game runtime · topology.js Build topology · campaign-ui.js Campaign UI
Components 27
Game entry
- Game runtime
game.js - Input handlers
src/input/handlers.js - Game state
src/state.js
Play modes
- Build topology
src/sim/topology.js - Campaign flow
src/campaign/campaign.js - Campaign levels
src/campaign/levels.js - Sandbox controls
src/ui/toolbar.js
Simulation
- Traffic scheduler
src/sim/scheduler.js - Service runtime
src/entities/Service.js - Service handlers
src/sim/handlers/index.js - Request model
src/entities/Request.js - Resilience mechanics
src/sim/circuit-breaker.js - Auto-scaling
src/sim/autoscaling.js - GPU inference
src/sim/gpu.js - Power constraints
src/sim/power.js
Player feedback
- Economy
src/core/economy.js - Request outcomes
src/core/actions.js - Run metrics
src/core/metrics.js - Metrics panel
src/ui/metrics-panel.js - Failure badges
src/ui/failure-badges.js - Campaign UI
src/ui/campaign-ui.js
Progress and state
- Save and load
src/persistence/save-load.js - Achievements
src/achievements/achievements.js - Trophies UI
src/achievements/ui.js - Tutorial
src/tutorial.js
Other components
- Player
- Browser storage
Connections 29
- Player → Game runtime: starts and plays
- Game runtime → Input handlers: registers handlers
- Input handlers → Build topology: places and connects
- Build topology → Service runtime: creates services
- Game runtime → Traffic scheduler: runs simulation
- Traffic scheduler → Service runtime: updates services
- Service runtime → Service handlers: dispatches requests
- Service handlers → Request outcomes: finishes or fails
- Service runtime → Request model: processes requests
- Service runtime → Resilience mechanics: uses breaker
- Service runtime → Auto-scaling: updates scaling
- Service runtime → GPU inference: uses GPU state
- Build topology → Power constraints: checks capacity
- Game runtime → Economy: updates finances
- Game runtime → Run metrics: tracks run
- Metrics panel → Run metrics: reads report
- Failure badges → Request outcomes: shows failures
- Player → Campaign UI: selects levels
- Campaign UI → Campaign flow: starts campaign
- Campaign flow → Campaign levels: loads level data
- Campaign UI → Game runtime: resets run
- Campaign UI → Run metrics: gets run report
- Player → Sandbox controls: sets up sandbox
- Player → Save and load: saves or loads
- Save and load → Browser storage: reads and writes
- Achievements → Browser storage: persists unlocks
- Achievements → Trophies UI: updates trophies
- Input handlers → Auto-scaling: checks fleet state
- Build topology → Tutorial: notifies actions