---
title: "BLAMELESS"
url: "https://aigamehub.app/zh-tw/games/blameless-f7966d"
source: "https://github.com/Petyok/blameless"
source_type: "github"
play_url: "https://blameless.petruha.ge"
platform: "desktop"
login_required: false
pricing: "free"
origin: "original"
ai_tools: ["Claude"]
game_languages: ["en"]
author: "Petyok"
author_handle: "Petyok"
category: "動作"
categories: ["action"]
tags: ["browser-game", "devops", "fps", "procedural", "three-js"]
added: "2026-11-11T06:09:48.820Z"
updated: "2026-11-11T06:09:50.412Z"
locale: "zh-tw"
content_locale: "zh-tw"
---

# BLAMELESS

一款待命射擊遊戲：凌晨 03:07 呼叫器響起，你進入正式環境，在十起事件中射擊讓它崩潰的 bug，武器有速率限制、具備回滾倒轉，以及熱修復升級。

## Description

一款以 three.js 打造的瀏覽器第一人稱射擊遊戲。你扮演凌晨 03:07、正式環境掛掉時的值班工程師：用 WASD 和滑鼠移動，用左鍵射擊，並在四種武器（kill -15、kill -9、grep -r、rm -rf）之間切換；這些武器沒有彈藥，但有速率限制，過熱時會回應 429，因此切換收起的武器來冷卻就是核心技巧。生命值就是錯誤預算，可透過咖啡和清除事件來恢復；SHIFT 衝刺並有短暫無敵，Q 或右鍵會讓你倒轉三秒，F 提供充能的 sudo 加速。在十起事件中的每一起之後，你會部署三個未經測試的熱修復之一；死亡會重啟當前事件，但會保留熱修復。敵人包括殭屍行程、fork 炸彈、cron 工作、SYN 洪水、競爭條件、記憶體洩漏、海森堡 bug、oom_reaper 以及有護盾的舊版巨型單體。嚴重性等級決定難度，完成戰役會解鎖無盡夜班。標題畫面（L）會顯示排行榜和世界統計資訊。桌上型電腦可用鍵盤和滑鼠；手機只能觀看自動駕駛並讀取排行榜。

## Original post

An on-call shooter: 03:07, the pager goes off, prod is down, and you kill what is crashing it. three.js. All done by Claude Fable 5.2 from one prompt.

Topics: browser-game, claude, devops, first-person-shooter, fps, game, javascript, leaderboard, on-call, procedural-generation, python, sqlite, sre, threejs, webaudio, webgl

# BLAMELESS An on-call shooter. 03:07, the pager goes off, prod is down and nobody else is awake. You `kubectl exec` into production in person and terminate what is crashing it: ten incidents, four hosts, one root cause. It ends with a postmortem written from what you actually did. **Play: https://blameless.petruha.ge** (keyboard and mouse; a phone can watch the autopilot and read the leaderboard). ![four screenshots](screenshots.jpg) All done by Claude Fable 5.2, from this prompt: > Hello fable 5.2! You are 1 day old. I am curious what can you do, so let's do a simple test: > using gpu-serv for builds/test -> build a three.js shooter game. You have only 1 try. This laptop > should handle your game at least 30 fps, 60 fps ideally. What to include to your game decide only > you (story, style, weapons, feel, music, etc.). There is no time limit. You can use other models > only if you RUN THEM LOCALLY on gpu-serv - for instance minimax h3, or etc. Suprise me! Everything after that was the model's call: the story, the look, the weapons, the soundtrack, the tests. The stats server, the deployment and this repository came from a second message ("deploy this, give it a domain, make stats and a leaderboard, make a public repo"). ## How it plays | key | | |-|-| | `WASD`, mouse | move, aim | | `LMB` (hold) | fire | | `1`-`4`, wheel | weapons: `kill -15`, `kill -9`, `grep -r`, `rm -rf` | | `SPACE` | jump | | `SHIFT` | dash (brief invulnerability) | | `Q` / `RMB` | rollback: rewind yourself 3 s, error budget included | | `F` | sudo, when charged: no rate limits, +50% damage | | `ESC` / `P` | pause; `` ` `` toggles the fps line | - There is no ammo. Every weapon has a rate limit: fire too long and it answers `429` until it cools. Holstered weapons cool faster, so switching is the skill. - Health is your error budget. Coffee restores it; each resolved incident gives some back. - After every incident you deploy one of three hotfixes, untested, straight to production. - Dying restarts the current incident with your hotfixes kept. - Severity is the difficulty: SEV3 chill, SEV2 normal, SEV1 hurt me. Finish the campaign to unlock the endless night shift. The enemies are bugs you know: zombie processes, fork bombs (split when killed), cron jobs (fire when the hand reaches twelve), a SYN flood, race conditions (kill both threads within two seconds), memory leaks (grow until OOM), heisenbugs (move when observed), the oom_reaper, and `legacy-billing-monolith.jar`, shielded by its dependencies. ## Leaderboard and world stats `L` on the title screen. One board per severity plus one for the night shift, each player listed once with their best run. Type a handle there, on the death screen or on the postmortem to be listed; without one the run is counted but not shown. The same screen has the world totals: how many engineers were paged, how many resolved it, what share of campaigns got past each incident, what kills people most. Scores are reported by the browser. The serve
