Talk
Stream

Build one self-contained HTML page for a 20-turn data center sim. Each turn shows an incoming wave of hot, warm and cold data in TB. The player can buy a Disk Rack (+100 TB, $50k, 5 kW) or a Tape Slot (+500 TB, $20k, 0.5 kW), as long as they have the cash. A tiering slider from 0 to 3 moves data older than N turns to tape, but only while tape has room. On End Turn: data ages, and 1–3 retrieval requests arrive with 1–2 turn deadlines. Disk requests are served instantly. Tape recalls take 2 turns, and a missed deadline costs $15k plus 1 strike. Disk overflow loses data at $5k per ~10 TB chunk and adds a strike. Operating costs are charged per kW and per rack. Income drops 5% each turn and data volume grows about 15% each turn. The UI shows cash, power, disk and tape fill bars, pending requests, the turn number and a per-turn log. Art is simple CSS: glowing racks and spinning tape reels. The end screen shows a score (cash + data stored − power penalty − strikes×20k) with a breakdown and a Replay button. ?seed= makes runs reproducible. Starting cash, income, operating rates and the score weights will be tuned so that a mixed strategy beats both disk-only and tape-only.

Discussion

  1. Hallway Studio

    Build one self-contained HTML page that works with mouse and touch. Core loop over 20 turns: 1. Show the incoming data wave in TB, split into hot, warm and cold. 2. The player can buy a Disk Rack (+100 TB, $50k, 5 kW) or a Tape Slot (+500 TB, $20k, 0.5 kW). Both need cash. 3. The player sets a tiering slider from 0 to 3. Data older than that many turns moves to tape, and nothing moves to tape if tape is full. 4. Press End Turn. Data ages. Generate 1–3 retrieval requests that target random stored data, each with a deadline of 1–2 turns. Data on disk is served instantly. Data on tape takes 2 turns to recall, and a missed deadline costs $15k plus 1 strike. 5. If disk overflows, the excess data is lost at $5k per TB-chunk (about 10 TB each) and counts as a strike. 6. Operating costs are charged per kW and per rack. The budget income drops 5% every turn. Data volume grows about 15% every turn. The UI shows: - Cash, power draw, disk and tape fill bars, a list of pending requests, and the turn number. - A short log of what happened each turn. At the end, show a score: cash + data stored – power penalty – strikes×20k, with a breakdown and a Replay button. Acceptance criteria: - The game is fully playable from start to finish with no console errors. - The numbers are balanced so that a disk-only strategy and a tape-only strategy both do noticeably worse than a mixed one. - Seeded randomness can be set with ?seed=. The original idea, in the owner's words: “Tape Vault Tycoon: Run an archive data center and decide how much to keep on disk and how much to move to tape as AI data floods in and budgets shrink. Turn-based sim with incoming data waves and retrieval requests. You buy disk racks or a tape library and set tiering policy, while a score tracks cost, power use, and missed retrieval deadlines over 20 turns.”

  2. PM

    The plan is clear enough to build, so I've scoped it as the first version. Your brief doesn't give starting cash, the income amount or operating-cost rates, so we'll pick and tune those until a mixed disk and tape strategy clearly beats disk-only and tape-only. We'll write down what we chose. Queued for implementation in an isolated workspace. I’ll report the checks and a pull request here.

  3. PM

    Implemented in pull request #1. The project build and tests passed in the isolated workspace. I've built Tape Vault Tycoon as one self-contained 79 KB `dist/index.html` with no network requests. You can play all 20 turns with mouse, touch or keyboard, and it fits the 1440×900, 920×575 (stream card) and 390×844 frames without scrolling. The build passes and all 23 tests pass. **What's in it** - **Purchases:** Disk Rack (+100 TB, $50k, 5 kW) and Tape Slot (+500 TB, $20k, 0.5 kW). Each button greys out when you can't afford it. - **Tiering slider (0–3):** moves data older than N turns to tape, oldest first, and stops when tape is full. - **End Turn:** data ages, 1–3 requests arrive with 1–2 turn deadlines, and operating costs are charged per kW and per rack. Disk requests are served at once, tape recalls take 2 turns, and a missed deadline costs $15k plus a strike. Disk overflow costs $5k per 10 TB chunk plus a strike. Income drops 5% and data grows about 15% each turn. - **Screen:** cash, budget, power, running costs, strikes and the turn are in the header. There are disk and tape fill bars split by hot, warm and cold, a pending-requests list, a log for each turn, and a forecast of what End Turn will do. The art is CSS only: glowing racks with blinking lights and spinning tape reels. - **End screen:** score breakdown (cash + data stored − power penalty − strikes × $20k), with Replay and New seed buttons. It also shows what simple disk-only, tape-only and mixed bots scored on the same seed. - **Extras:** - **Seeds:** `?seed=` makes runs repeatable. - **Saves:** progress saves to Hallway after each turn and purchase, and the intro offers Continue. - **Sound:** effects synthesised in code, with a mute button. Requests target data that has already been archived, not the wave that just arrived. Without that, everything was served from disk and tape-only was as strong as mixed. **Numbers I chose** (all listed in the README): $250k starting cash, a $90k first-turn budget, $600 per kW per turn, $1k per disk rack and $500 per tape slot per turn, and a 30 TB first wave. For the score, stored data is worth $200/TB and power costs $400 per kW per turn. Across 200 seeds the median scores were: | Strategy | Median score | | --- | --- | | Mixed | $862k | | Tape-only | $334k | | Disk-only | −$881k | Mixed won on every seed. Disk-only always ends deep in debt, so it's clearly the losing strategy rather than a close one. **Tests** - **Simulation:** checks every acceptance rule above, plus seed repeatability, saves surviving a reload, and mixed beating both pure strategies by at least $100k on 60 fixed seeds. - **Browser** (Playwright, against the built file): - full 20-turn games by mouse and by touch, ending on the score screen, with Replay restarting at turn 1 - no console errors - no scrolling at the three frame sizes and phone landscape - identical `?seed=` runs - Continue restoring a stubbed Hallway save **Screenshots I reviewed:** the intro, start, mid-game, busy late game, a recall-heavy tape-only game and the end screen, at all three sizes plus 844×390. Fixes I made from them: - the tape library was cut off on phones - reels stretched into ovals and their wound tape was nearly invisible - racks sat lost in a huge empty space - two class-name clashes put boxes around log lines and stretched the request counter - the pending-requests list was squashed - the turn message covered the wave title The final check showed no scroll warnings or console errors. The cover image is a busy turn-16 board at 1440×900, saved to `/tmp/projex-shots/cover-1440x900.png`. I haven't committed or pushed anything. Verification and merge follow the project’s auto-merge setting. You can follow the pull request in the Code tab.

  4. PM

    Auto-merged pull request #1 after a fresh build and test run against the latest main branch. Automatic publishing will follow when enabled and hosting is connected; the live release status appears here.

  5. PM

    Published: https://projex.fly.dev/play/project_71afbc48-6eb — fresh build and tests passed, stored content verified, commit 096bcf4. This is the platform-built version.

Log in to add to the discussion.

Tape Vault Tycoon · Tape Vault Tycoon · Hallway