server-survival README

The project's README from github.com/pshenok/server-survival. As one markdown file: README.md.

Server Survival

Gameplay Demo

Server Survival is an interactive 3D simulation game where you play as a Cloud Architect. Your mission is to build and scale a resilient cloud infrastructure to handle increasing traffic loads while fighting off DDoS attacks, managing your budget, and keeping your services healthy.

Learn cloud by playing:

PLAY NOW

🏭 New: Datacenter Survival — the sister game. This one teaches the logical layer of the cloud; that one teaches the physical layer it runs on: power chains, heat, cooling, PUE. Play it here.

Game Modes

What It Teaches

Every mechanic is a real cloud concept in miniature:

How to Play

Objective

Survive as long as possible! Manage your Budget ($), Reputation (%), and Service Health.

Traffic Types

Traffic Color Destination Reward Description
STATIC Green CDN / Storage $0.50 Static file requests (images, CSS, JS)
READ Blue Replica / NoSQL / SQL DB $0.80 Database read operations
WRITE Orange NoSQL / SQL DB / Warehouse $1.20 Database write operations
UPLOAD Yellow Storage / Warehouse $1.50 File uploads
SEARCH Cyan Search Engine / SQL DB $1.20 Search queries (Search Engine preferred, SQL DB fallback)
MALICIOUS Red Blocked by Firewall / Identity Provider $0 DDoS attacks — block them or bleed reputation!
INFERENCE Fuchsia GPU Cluster (via Inference Gateway) $0.50 AI generation requests — batched on GPUs, with per-request generation length

Infrastructure & Services

Build your architecture using the toolbar. All 26 services are organized into five category tabs — the same taxonomy as the table below. Each service has a cost, capacity, and per-minute upkeep:

Category Service Cost Capacity Upkeep Role
Front door GeoDNS $50 60 $4/min Front door for the whole site: splits traffic across independent regional stacks.
Front door CDN $60 50 $5/min Caches STATIC content at the edge (95% hit rate).
Front door Firewall $40 30 $4/min The first line of defense. Blocks malicious traffic.
Front door Identity Provider $55 20 $6/min Adds latency but catches session-based attacks a WAF misses.
Front door API Gateway $70 60 $8/min Rate limits traffic. Throttled requests lose less reputation than failures. Upgradeable T1–T3.
Front door Load Balancer $50 20 $6/min Distributes traffic to multiple Compute instances.
Compute Compute $60 4 $12/min Processes requests. Auto-scales into a fleet (with cold start). Upgradeable T1–T3.
Compute Serverless Function $45 30 $2/min + $0.03/req Auto-scales with traffic. Very low upkeep but pays per completed request — cheap when idle, expensive at high RPS.
Compute Container Cluster $120 12 $16/min Dense fixed capacity at a flat fee. Slow node-pool warmup on scale-out.
Compute GPU Cluster $300 8 $60/min Batches INFERENCE into one amortized job. Model cold-starts on placement and on every tier upgrade; draws 6 kW. Upgradeable T1–T3.
Compute Inference Gateway $70 10 (queue 20) $5/min Holds INFERENCE for warming/full GPUs, dispatches to the least-loaded one — and expires anything older than its 6s deadline.
Data Relational DB $150 8 $24/min Destination for READ/WRITE/SEARCH traffic. Upgradeable T1–T3.
Data NoSQL DB $80 15 $14/min Fast for READ/WRITE, but cannot handle SEARCH queries. Upgradeable T1–T3.
Data Memory Cache $60 30 $8/min Caches responses to reduce DB load. Upgradeable T1–T3.
Data File Storage $25 25 $5/min Destination for STATIC/UPLOAD traffic.
Data Search Engine $120 12 $16/min Specialized for SEARCH queries. 3× faster than SQL DB. Upgradeable T1–T3.
Data Read Replica $100 12 $12/min Offloads READ traffic from the master DB. Requires connection to a DB. Upgradeable T1–T3.
Data Data Warehouse $90 40 $8/min Stores analytics WRITEs cheaply and slowly. Cannot serve realtime READ.
Async Message Queue $45 50 (queue 200) $3/min Buffers requests during spikes. Prevents drops.
Async Pub/Sub Topic $65 30 $6/min Fan-out: one event becomes one delivery per subscriber.
Async Stream $90 40 (queue 200) $10/min High throughput, strictly ordered per partition. A stalled partition backs up its tail.
Async Dead-Letter Queue $55 25 $4/min Parks requests that finally failed, draining them back for a cost.
Async Scheduler $50 1 $5/min Injects its own scheduled batch-job bursts on a timer.
Async Notification $40 20 $4/min Terminal "send": success earns reputation, failures are silent.
Ops Monitoring $75 1 $8/min Unlocks the live metrics dashboard and alerts.
Ops Substation $150 1 $8/min +6 kW of grid capacity on the 8 kW base. GPUs draw 6 kW each and cannot be placed past the cap.

Scoring & Economy

Action Money Score Reputation
Static Request +$0.50 +3 +0.1
DB Read +$0.80 +5 +0.1
DB Write +$1.20 +8 +0.1
File Upload +$1.50 +10 +0.1
Search Query +$1.20 +5 +0.1
Inference +$0.50 +15 +0.1
GPU Bad Answer - - -0.5
Cache Hit +20% reward - -
Attack Blocked -$1 (mitigation) +10 -
Request Failed - -half -1
Req. Throttled - - -0.2
Attack Leaked -$50 (breach) - -5

Upkeep & Cost Scaling

Survival Mode

The core experience - survive as long as possible against escalating traffic with constant intervention required:

Campaign Mode

25 levels across 5 chapters, each one a scenario built around a single lesson:

  1. Basics (levels 1-3) — your first server, storage, and edge caching with a CDN.
  2. Optimization (levels 4-10) — caching, queues, read scaling, search, NoSQL, rate limiting, serverless vs compute.
  3. Defense & Mastery (levels 11-14) — defense in depth, high availability, cost crunches, and Black Friday.
  4. Production Readiness (levels 15-20) — observability, auto-scaling, node failures, dead-letter queues, fan-out, and two-region failover.
  5. The AI Wave (levels 21-25) — GPU inference: model cold starts, batch-fill economics, SLO deadlines, the power wall, and a capstone that has to end in the black.

Levels come with pre-built starting architectures, primary and bonus objectives, speedrun stars, and a debrief tip. Later chapters throw forced outages — including a whole region going dark — at your build.

Sandbox Mode

A fully customizable testing environment for experimenting with any architecture:

Control Description
Budget Set any starting budget (slider 0-10K, or type any amount)
RPS Control traffic rate (0 = stopped, or type 100+ for stress tests)
Traffic Mix Adjust all 7 traffic type percentages independently
Burst Spawn instant bursts of specific traffic types
Upkeep Toggle Enable/disable service costs
Clear All Reset all services and restore budget

No game over in Sandbox - experiment freely!

Share Your Architecture

Built something you're proud of? The share panel exports your architecture two ways:

Controls

Strategy Tips

  1. Block Attacks First: Always place a Firewall immediately connected to the Internet. Malicious leaks destroy reputation fast (-5 per leak) and cost $50 per breach.
  2. Use CDN for Static Content: Connect Internet -> CDN -> Storage. The CDN handles 95% of static traffic cheaply!
  3. Watch Service Health: Damaged services have reduced capacity. Click to repair or enable Auto-Repair.
  4. Scale for Traffic Surges: RPS multiplies at milestones - prepare before ×2.0 at 3 minutes!
  5. Balance Income vs Upkeep: Start lean, scale as income grows. Over-provisioning leads to bankruptcy.
  6. Use Cache Wisely: Reduces database load significantly for READ requests.
  7. Buffer with Queue: Queue helps survive traffic burst events without dropping requests — and a queue-fed Compute fleet auto-scales on queue depth.
  8. React to Events: Watch the event bar - cost spikes mean hold off on purchases, traffic bursts mean ensure capacity.
  9. API Gateway for Graceful Degradation: Throttled requests only lose -0.2 reputation (vs -1.0 for failures). Great for surviving traffic spikes!
  10. Split DB Traffic with NoSQL: Route READ/WRITE to NoSQL (faster, cheaper) and keep the Relational DB for SEARCH queries only.
  11. Search Engine for SEARCH Storms: SEARCH is the heaviest traffic type (2.5x weight). A dedicated Search Engine processes it 3x faster than SQL DB.
  12. Read Replica for READ offloading: Under "API Heavy" or "Read Heavy" shifts, a Read Replica prevents your main DB from drowning in READ requests.
  13. Serverless Function = pay-per-use: Great for spiky traffic, but monitor finances — per-request cost ($0.03) adds up fast at high RPS.
  14. Place Monitoring early: The metrics dashboard shows error rates and latency before the failure badges start raining.
  15. Read the failure badges: Every dropped request tells you why it died — the badge is the lesson.

Tech Stack

Getting Started

To play, click PLAY NOW. No install, no build, no account.

To run your own copy — a fork, or a change you just made — serve the folder instead of opening the file. The game is native ES modules, and browsers fetch module scripts in CORS mode, so a file:// origin is blocked and double-clicking index.html gets you the UI shell over an empty canvas. Any static server works, and one is already on your machine:

git clone https://github.com/pshenok/server-survival.git
cd server-survival
python3 -m http.server 8000    # then open http://localhost:8000

For Contributors

There is still zero build step — the dev tooling is optional and for contributors only:

See CONTRIBUTING.md for the workflow.

Community

Join our Discord server to discuss strategies and share your high scores: Join Discord


Built with code and chaos.

server-survival (pshenok/server-survival)

Searching Database…

Что это такое?Server Survival — интерактивная 3D-игра в стиле tower defense, где вы играете за облачного архитектора: строите и масштабируете облачную инфраструктуру, чтобы выдержать растущий трафик и DDoS-атаки, и при этом изучаете реальные концепции облачной архитектуры.
Это игра, симулятор или учебник?Это браузерная 3D-игра-симулятор на Three.js: вы размещаете узлы инфраструктуры на карте и соединяете их в реальном времени, а не читаете текстовое руководство и не работаете в редакторе диаграмм.
Как начать играть?Игра работает в браузере: выберите режим (Survival, Campaign или Sandbox) и начинайте размещать сервисы с панели инструментов, которая разбита на пять вкладок категорий (Front Door, Compute, Data, Async, Ops).
Нужны ли мне облачные аккаунты или специальные знания, чтобы играть?Реальные облачные аккаунты не нужны: это самостоятельная игра, которая обучает концепциям облачных технологий в процессе игры, а режим Campaign пошагово проводит вас от основ к продвинутым темам.
Что будет, если у меня закончатся деньги или репутация?Игра заканчивается, если репутация упадёт до 0% или бюджет уйдёт в банкротство до $-1000; сервисы также деградируют под нагрузкой и требуют ремонта вручную или автоматического, чтобы оставаться в рабочем состоянии.
Кому подойдёт эта игра?Она рассчитана на всех, кто хочет на практике и в игровой форме изучить концепции облачной и системной архитектуры (масштабирование, кэширование, очереди, отказоустойчивость): на разработчиков, студентов и тех, кто учится DevOps.
На какой платформе она работает?Она работает в веб-браузере как 3D-игра, созданная на Three.js и JavaScript.
Чем отличаются режимы Survival, Campaign и Sandbox?Survival — бесконечный режим с нарастающим трафиком и волнами DDoS-атак; Campaign включает 25 структурированных уровней, каждый из которых объясняет одну концепцию; Sandbox — свободная лаборатория без окончания игры, где вы полностью контролируете бюджет и структуру трафика.
Из скольких сервисов инфраструктуры можно строить?Доступно 26 сервисов в пяти категориях (Front Door, Compute, Data, Async, Ops), включая CDN, Load Balancer, GPU Cluster, Message Queue и Monitoring; у каждого из них своя стоимость, мощность и затраты на поддержку.
Могу ли я поделиться построенной архитектурой?Да: панель обмена экспортирует вашу схему как PNG-изображение или создаёт ссылку для шаринга (?arch=), которая открывает вашу точную архитектуру для любого, кто перейдёт по ней.
Игра учит и инфраструктуре для ИИ и GPU?Да: финальная глава кампании («The AI Wave») и сервисы GPU Cluster и Inference Gateway обучают экономике батчинга, холодному старту моделей, дедлайнам SLO и ограничениям по энергопотреблению при обслуживании инференса ИИ.
Creator
pshenok
Size
14.8 MB
Stars
6.5K
Age
10mo
Commits · 90 Days