# Steak Knives and Bagels β full text
> Every public thought, blog post, project page and For Want of Fuel chapter on https://www.allknivesnobagel.com,
> as the raw markdown it was written in. One entry per heading, each with its source URL.
> Index with one-line descriptions: https://www.allknivesnobagel.com/llms.txt
## About
Source: https://www.allknivesnobagel.com/about.html
# About Me
I'm a game developer with a passion for creating open dynamic systems. My work focuses on building games that teach you how to think, or at the very least, teach you to question your assumptions.
Right now I'm helping people and companies make better use of information and education using game design principles: [PlayInsight Studio](https://playinsightstudios.com/).
Beyond that, I've been designing and running roleplaying games for over 10 years, which occasionally results in essays on design theory and my own attempted contributions to the field.
## Current Focus
I am currently building my company PlayInsight Studios and helping run [Pro Ludens](https://www.proludens.com/), a Leipzig collective for serious games.
## Contact
Feel free to reach out to me at [heinke.jonas@googlemail.com](mailto:heinke.jonas@googlemail.com).
For the type, themes, footer gallery and how this site is built, see the [colophon](/colophon/).
## Thoughts
### Experiments with Opus 5.5 and Video
Source: https://www.allknivesnobagel.com/thoughts/experiments-with-opus-5-5-and-video/
Date: 2026-09-28
Context: video gen
Media: Throne and Wheel trailer, Suno score, Throne and Wheel trailer, composed score, Throne and Wheel trailer, SNES overture
experiments with opus 5.5 and video.
### Hard Times Create Strong Jaws
Source: https://www.allknivesnobagel.com/thoughts/hard-times-create-strong-jaws/
Date: 2026-08-22
Context: shortform video
Media: Habsburg Gigachad
βπππ«π ππ’π¦ππ¬ ππ«ππππ πππ«π¨π§π π£ππ°π¬.β
### A Language Large & General
Source: https://www.allknivesnobagel.com/thoughts/language-large-general/
Date: 2026-08-12
Context: AI music video
Media: A Language Large & General
"very model of language large and general" produced by claude
### Further Experiments in Automated Shortform Content
Source: https://www.allknivesnobagel.com/thoughts/further-experiments-in-automated-shortform-content/
Date: 2026-08-10
Context: shortform video
Media: Compute is the new oil, You are not sufficiently AI-pilled
further experiments in automated shortform content
### Machine Intelligences in the Evals
Source: https://www.allknivesnobagel.com/thoughts/machine-intelligences-in-the-evals/
Date: 2026-08-04
Context: AI evals
machine intelligence in the evals are closer to agi than they appears.
interesting that claude has a clear visual identity, and codex/gpt doesn't. so the codex self-visualized adapting the codex mascot
### Bagel Male Affirmations
Source: https://www.allknivesnobagel.com/bagel/
Date: 2026-07-21
Context: video
Guided affirmations for the man who yearns for the bagel but mostly grabs steak knife. Seven minutes. Take it completely seriously, and then slightly more seriously than that.
BAGEL MALE AFFIRMATIONS β 7:08video Β· soundtrackmade with Claude Fable 5
### Clavicular Moggslaughter
Source: https://www.allknivesnobagel.com/thoughts/clavicular-moggslaughter/
Date: 2026-03-27
Clavicular moggslaughter.
### Computers Can Now Think
Source: https://www.allknivesnobagel.com/thoughts/computers-can-now-think/
Date: 2024-12-09
### Infinite Content
Source: https://www.allknivesnobagel.com/thoughts/infinite-content/
Date: 2024-11-27
Context: Discord
Infinite content makes me infinitely content.
### That's Boggle, Baby
Source: https://www.allknivesnobagel.com/thoughts/boggle-baby/
Date: 2024-01-01
That's boggle, baby!
## Blog
### Adverse Selection
Source: https://www.allknivesnobagel.com/blog/adverse-selection/
Date: 2026-10-24
Description: Testing and playing around with more automated video production pipelines.
Patrick McKenzie's thread about a founder who wants to open a bank for the underbanked, as a 1990s PC-98 visual novel. Two people, one kissaten, every line of the thread spoken.
ADVERSE SELECTION Β· SHORT Β· 2:121920Γ1200 Β· 1280Γ800ADVERSE SELECTION Β· FULL THREAD Β· 7:581920Γ1200 Β· 1280Γ800text: @patio11 Β· voices: ElevenLabs Β· music: original YM2608 (Furnace) Β· made with Claude
Numbers on screen: unbanked US households 8.2% (2011) β 4.2% (2023), FDIC; families without a checking account 18.7% (1989), Fed SCF. Different surveys.
### Making HIGH WATER with a studio of agents
Source: https://www.allknivesnobagel.com/blog/high-water/
Date: 2026-10-08
Description: A jam brawler built in one week by me and about twenty named AI agents: what we made, how the studio was organised, and why we got disqualified.
*This is a copy of the [HIGH WATER project page](/projects/high-water.html). [Play it on itch.io](https://limeminister.itch.io/high-water) Β· [The talk](/high-water/talk/) Β· [The decision boards](/high-water/boards/)*
I made a game. Well, me plus a bunch of AI agents. You can do really good, high quality work now. Especially if you know what you are doing.
## The Game
A game about being a powerful cyberpunk operator wrecking people and everything else in the way. You play as TIDEMARK, a cybernetically enhanced murder machine fighting through a habitat tower against the gang PETTY VERMIN.
I wanted to dig into a simple brawler mechanic and make it feel good. And then, since I like physics, see what you can do in terms of building on that basic good game feel by expanding everything around it with physics simulation. So there is lots of throwing, bouncing, breaking, destruction and other environmental interactions.
Play around and have fun wrecking up combos.
## Making It
As the frontier models progress in capabilities I am seeing how much you can integrate them into the game building process.
Opus 5.5 released recently and it's a good model, sir.[[Anthropic, ["Introducing Claude Opus 5.5"](https://www.anthropic.com/claude-opus-5-5), 22 Sep 2026. The motion-design reputation comes from users: [Donald Jewkes' one-prompt music video](https://x.com/donaldjewkes/status/2102801469976248500) (full prompt shared, 12 hours of work) and [Pleometric's PC-98 remake of it](https://x.com/pleometric/status/2103082510607610023).]] But it was seemingly a step change in motion design, graphics design and using Blender and tools for visual and motion video. I figured that is probably going to translate to games, but wanted to have my own benchmark. Thus HIGH WATER.
HIGH WATER was built over one week, during evenings and a weekend, running a "studio" of about 20 named agents: Opus 5.5 subagents plus two Codex agents on GPT-6 Astra, one reviewing every batch of work and one on Web performance.
To coordinate all of that I had one main conversation with an Opus 5.5 instance that coordinated communication with all other agents. I talked through the design, gave feedback from playtesting, their takes and ideas, and we used dozens of HTML artifacts to communicate the details. Using HTML artifacts as a means of relaying and trying out information and context is still incredibly useful, as it is clearer and captures more bandwidth and multimedia info than just text or chat.[[Thariq Shihipar, ["Using Claude Code: The unreasonable effectiveness of HTML"](https://claude.com/blog/using-claude-code-the-unreasonable-effectiveness-of-html), May 2026. [The decision boards](/high-water/boards/) are what that looked like here.]]
From previous experiments I knew a failure mode of having a bunch of subagents is coordinating them, understanding what everyone is doing and keeping on track. Especially over multiple days of work, where there are context resets for both the agents and me.
I was inspired by @repligate and recent Anthropic research that reported that giving agents persistent identities helps them tell each other apart, check each other's work and coordinate.[[Anthropic's [report on measuring the pace of AI development](https://www.anthropic.com/institute/measuring-pace-of-ai-development), Sep 2026, appendix "Oversight of agents".]][[Janus (@repligate), [20 Sep 2026](https://x.com/repligate/status/2101554297469337687), on why long-horizon work favours persistent identities.]] I figured let's test it. Every agent was encouraged to pick a name for themselves and assume a specific role and responsibility. This worked way better than I thought. Maybe that's simply because Opus 5.5 is a great model, but on a basic level of understanding what's happening in the process, and what is being generated and input by whom, clear names made tracking what's happening easier for me. Which makes it easier for me to stay locked in and steer the process.
Also all assets, music, code and level design in this project were made by agents. My only role was directing, communicating what works and doesn't and what ideas to explore.
The voxel assets were written as code: Python scripts that box, carve and paint voxels and export them to .vox. The music is 4-operator FM synthesis in the style of the YM2151 arcade chip, scored as MML text and rendered by a Python synthesiser adapted from my OPNA engine for Down Bad in Babel. The sound effects and the voice lines are synthesised with numpy and scipy, no samples. The UI is done by agents in code. The intro video is Blender 5.0 renders of the code-built hero plus captures of the game itself, cut together with ffmpeg.[[Midjourney character studies were reference only. Nothing from an image, audio or voice model is in the game.]]
So this entire project was natively created by Claudes and GPTs using tools. Pretty cool.
Now, in the end the jam banned AI-generated assets and we got disqualified after chatting with the organisers. But I expected that, and it is totally fair.
So check out the cool stuff the others made, I do not want to take their limelight: [Vierfacher Questpresso on itch.io](https://itch.io/jam/vierfacher-questpresso).
## Further Reading and References
- **[The talk](/high-water/talk/):** a slide deck for when I want to speak on this. The three theses: engineering and developing with coding agents is a lot like management and you have to think about how to build efficient organizations; use artifacts to communicate; Game Design Documents and Guiding Light text are important to focus everyone. Plus review, what went wrong, and a dense Godot appendix.
- **[The decision boards](/high-water/boards/):** examples of the HTML artifacts used during the process.
- Thariq Shihipar, **["Using Claude Code: The unreasonable effectiveness of HTML"](https://claude.com/blog/using-claude-code-the-unreasonable-effectiveness-of-html)**, Claude blog, May 2026 ([first posted on X](https://x.com/trq212/status/2052809885763747935)). Once agents write long plans and reports, HTML beats Markdown: tables, diagrams, interactive controls, shareable as a link.
- Anthropic, **["Measurements for understanding the pace of AI development inside frontier labs"](https://www.anthropic.com/institute/measuring-pace-of-ai-development)**, c. 17 Sep 2026. The appendix "Oversight of agents" describes the internal scaffold: each agent has an individual identity that survives model upgrades, and agents talk on an open board where every message is tied to its author. The stated reasons: agents treat each other's output as claims to check, make fewer correlated mistakes, and stay auditable.
- Janus (@repligate), **[20 Sep 2026](https://x.com/repligate/status/2101554297469337687)**, reads that post as evidence that long-horizon work favours persistent-identity agents over task-scoped ones. Earlier ([1](https://x.com/repligate/status/2017711198972875142), [2](https://x.com/repligate/status/2017712297863746005), Feb 2026) Janus argued that Claude Code's "subagent" framing works worse than peers talking through a message system.
- Anthropic, **["Introducing Claude Opus 5.5"](https://www.anthropic.com/claude-opus-5-5)**, 22 Sep 2026. The announcement only mentions a game-building test where it scored highest on graphics and polish; the motion-design reputation comes from users. [Donald Jewkes](https://x.com/donaldjewkes/status/2102801469976248500) (23 Sep) made a full music video from one spoken prompt, which Claude worked on for 12 hours, and shared the prompt; [Pleometric](https://x.com/pleometric/status/2103082510607610023) (24 Sep) followed the same workflow "to really push Opus 5.5" into a PC-98 restyle. [Alex Albert](https://x.com/alexalbert__/status/2102458348511879448) showed Blender claymation from a single prompt.
### Experiments with Opus 5.5 and Video
Source: https://www.allknivesnobagel.com/blog/opus-5-5-video-experiments/
Date: 2026-09-28
Description: A 78-second Throne and Wheel trailer made with Opus 5.5: iterations, storyboarding and selection.
i experimented with opus 5.5 and video gen. you can create in iterations, storyboarding and selection some pretty cool stuff. i think this one failed on getting the music paced well and on figuring out how exactly the video models work well, but shits expensive to test and play with so maybe another time
THRONE AND WHEEL β 1:18video Β· scoremade with Claude Opus 5.5
### Guest Talk: Press A to Learn β Macromedia Leipzig
Source: https://www.allknivesnobagel.com/blog/press-a-to-learn/
Date: 2026-05-10
Description: Gave a 60-minute talk on founding a games start-up in Mitteldeutschland at the Press A to Learn event hosted by Macromedia students in Leipzig.
I gave a 60-minute talk at **Press A to Learn**, an event organized by Macromedia Leipzig students Alex Schwarz, Anne, and Julian. The talk was titled *"Du kannst einfach Dinge tun; GrΓΌnde."* β with the subtitle *"Games Start-Up in Mitteldeutschland grΓΌnden."*
The thesis is one sentence: you can just do things. Most things are not forbidden, no one is coming to give you permission, and the worst-case outcome of trying is that you end up exactly where you already are. The talk works through ten reasons why that one sentence is not as trivial as it sounds, and then walks through eight concrete things one can actually do in Mitteldeutschland to start making games seriously.
[Slide deck](/press-a-to-learn-talk)
### Ask the Archives: AI Rules Lookup for AD&D 2E
Source: https://www.allknivesnobagel.com/blog/ask-the-archives/
Date: 2026-03-27
Description: Building an AI agent that answers AD&D 2E rules questions by searching the actual books β not by guessing from training data. Architecture notes on embedding search, Claude Sonnet tool use, and making AI trustworthy for reference work.
I have finally gotten around to playing some AD&D 2E. It's good fun and I can see it being the sweet spot of simple chassis to adapt and hack for my group's playstyle. There is enough to solve most design problems you may run into when doing sandbox dnd, but not so much that it prohibits general problem solving freedom.
Learning a new system is always mentally taxing and involves a lot of lookup. If there is just one rulebook you get the pdf and CTRL+F. But that doesn't scale great across multiple pdfs and word search has limits. Furthermore I like to houserule a lot of things, so I find myself searching my houserule docs plus the 10+ AD&D 2E docs.
Modern software should help us here. So I set out to spin up a well organised SRD framework for all my campaigns, where I can upload all setting, houserules and otherwise related material. I can then index, organise and make it searchable. Primarily to speed up myself but also to make things easier for the players at the table. And with modern webdesign we can make it look nice too.
So I scraped all AD&D 2E pdfs, processed them into Markdown files and organised them. Now they are nice and searchable.
And while I was at it I tried adding an AI agent that can now access the well organised "database", so I added "agentic search". A simple agent loop that can execute search queries on the database and then read the relevant parts, allowing you to ask natural language questions from the rules.
It's nothing fancy but it works quite well as a proof-of-concept. In practice I have the SRD on my local machine and have Claude Code perform the agentic search, but for my players and people less inclined towards CLI ergonomics this is working pretty well, I think.
---
## Technical Documentation (by Opus)
The interesting engineering problem was making an AI agent trustworthy enough for rules reference work. The architecture prioritizes verifiability: every answer should trace back to a specific SRD page, and the user should know when the AI is guessing.
### Architecture
```
Client (Astro island)
β POST /api/ask { question }
β Vercel Edge Middleware (cookie auth)
β Node.js Serverless Function
β OpenAI embedding (question β vector)
β Cosine similarity over 4,723 chunks
β Claude Sonnet agentic loop (up to 8 tool calls)
Tools: semantic_search, keyword_search, read_page
β Stream plain text back to client
```
The SRD content is chunked into 4,723 passages and embedded with OpenAI's `text-embedding-3-small`. The embedding index is 174 MB, committed via Git LFS. At query time, the serverless function loads the index into memory (cached between invocations on warm starts), embeds the incoming question, and runs cosine similarity to find relevant chunks.
### The Agent Loop
Claude Sonnet receives the question plus three tools. The system prompt instructs it to search before answering and to cite specific pages. A typical query makes 2-4 tool calls:
1. **semantic_search** with the question β returns top-K chunks with titles and snippets
2. **read_page** on the most relevant result β returns full page text
3. Optionally **keyword_search** for specific terms the semantic search missed
4. Compose the answer with citations
The `streamText` function from AI SDK v6 handles the agentic loop. Each tool call is defined with a Zod schema for input validation and an `execute` function that runs the search. The model decides when to stop searching and start writing.
### AI SDK v6 Migration
The project started on AI SDK v4 and hit every breaking change in v6:
- `parameters` β `inputSchema` in tool definitions
- `maxSteps` β `stopWhen: maxSteps(N)` for agentic loops
- `toDataStreamResponse()` β `pipeTextStreamToResponse()` (the data stream protocol was removed)
- Tool generics simplified (no more `tool()`)
The data stream protocol removal was the biggest change. v4/v5 sent structured JSON events (tool calls, text deltas, metadata). v6 defaults to plain text streaming, which is simpler but loses tool visibility on the client. The plan is to switch to `pipeUIMessageStreamToResponse` to get structured events back for showing search status.
### Embedding Pipeline
Built locally, not in CI:
```bash
npx tsx scripts/build-embeddings.ts
```
The script reads all markdown source files, chunks them using a custom splitter (respects heading boundaries, targets ~500 tokens per chunk), embeds each chunk via OpenAI, and writes the full index to `src/ask/embeddings.json`. This runs once when the SRD content changes.
**Stats:**
- 391 source pages β 4,723 chunks
- 174 MB embedding index (1,536-dimension vectors)
- Build time: ~5 minutes (rate-limited by OpenAI API)
### Auth and Rate Limiting
The SRD is gated behind a simple password check. Vercel Edge Middleware intercepts all `/adnd-2e/*` and `/api/ask` routes. No cookie β redirect to login. The login form POSTs to `/api/srd-auth`, which SHA-256 hashes the input and compares against `SRD_GATE_HASH`. Match β set `srd-auth` cookie β 303 redirect.
Rate limiting uses Redis (Vercel KV). Each IP gets a request counter with a sliding window. This is cost protection, not security β the gate password is shared among friends, and any one person running expensive queries in a loop would be a social problem, not a technical one.
### Test Coverage
74 tests across 5 files covering the serverless handler, all three tool execute functions, rate limiting, cookie parsing, IP extraction, and edge cases like zero-magnitude cosine similarity vectors. The middleware has its own test suite for auth routing.
### What's Next
The current UI streams plain text. Planned improvements:
- **Rich markdown rendering** β Claude outputs tables, headings, blockquotes; currently rendered as plaintext
- **Tool visibility** β show what the agent searched and read, warn when answering from training data
- **Semantic caching** β cache Q&A pairs by embedding similarity to avoid re-running expensive queries
- **Clickable citations** β convert "PHB Chapter 9" references into links to the actual SRD pages
### Guest Talk: Game Design at Otto von Guericke University
Source: https://www.allknivesnobagel.com/blog/game-design-talk-magdeburg/
Date: 2026-03-06
Description: Gave a guest lecture on practical game design and development at the Applied Game Design course in Magdeburg.
I gave a guest talk at the **Otto von Guericke University Magdeburg** as part of Dr. Maria Freese's Applied Game Design course. The talk was titled *"Game design & development from a practical perspective"* β 45 minutes of presentation followed by 45 minutes of Q&A.
It is hard to condense years of tacit knowledge into broadly applicable insight, so I just focused on a few very simple heuristics that will result in something decent. I have also noticed again that so much of what I find actually insightful and practical in my game design is incentives, economics and behavioural psychology. The nuts and bolts of the craft is what you practice when you implement and is different for each project, but the abstract thinking and frameworks I mostly get from different more developed disciplines.
[Slide deck](/applied-game-design-talk)
### Claude Code Operates My YouTube Music
Source: https://www.allknivesnobagel.com/blog/ytmusic-mcp/
Date: 2026-01-15
Description: Building an MCP server to let Claude Code control YouTube Music playback, search, and queue management. Thoughts on scaffolding for LLM workflows.
## Claude Code operates my YouTube Music
A recent experiment in claudeomating little personal things on my PC via Claude Code has given me the option to simply write: "I am working on @Project, put together a playlist fitting and hit play."
Claude Code then controls YouTube Music in Chrome, and via MCP server puts together the playlists.
Getting this to work was a bit of a struggle because YouTube does not provide too much in terms of API controls for YouTube Music. There are existing libraries but in the spirit of testing what Claude Code and Opus 4.5 can do I settled on building something myself.
The solution was Chrome Extension + MCP Server + WebSocket Bridge + a Skill.md for Claude.
### The Process
Claude works best when you can build a closed feedback loop. In SWE that means setting up TDD, linters and debug tools. Always worth it.
Here the best tool was Claude Chrome to give it access to the YouTube Music page and figure it out. Claude Chrome helps a lot as a hacky solution for it to figure out how the page works. But Claude Chrome is really not the best for navigating User Interfaces built for humans. To get something durable we had to figure out the site structure via some experimenting and write JavaScript to automate the clicks.
This took some human in the loop iterative testing, with me giving Claude feedback on things it couldn't quite make out with only the Screenshot tool.
Things got to working pretty quickly after that.
### Claude Scaffolding
I have begun to approach a lot of my software interaction as thinking about what harness or scaffold I need to build for Claude to let it operate the software in my stead.
So once you are done with building the scaffolding use it a bunch, and make notes. Claude too will be pretty good at figuring out the workflow kinks and then you just write it all into a Skill.md.
That gives you Scaffold plus Skill and with a day of work you have something pretty useful. When things don't work just ask Claude to fix them. In the future I should experiment with writing recursive Skill.md that allow Claude to file feature or bug reports, and then to allow it to update the Skill.md with new workflow learnings.
When you reverse that thought it becomes clear that you can make your own software more useful if you build with agentic LLMs in mind, it will be way more usable out of the box if you QA not just for humans but also for LLMs.
## Technical Documentation (by Opus 4.5)
YouTube Music doesn't want to be automated. No API, deeply nested web components, confirmation dialogs when you navigate during playback. The architecture chains Claude Code β MCP server (stdio) β WebSocket β Chrome extension β YouTube Music page. The hard parts were all about YouTube Music's implicit assumptions: queue state lives in the page and dies on navigation, search results mix content types with different menu options, and the beforeunload dialog blocks all browser automation.
### What Was Built
- MCP (Model Context Protocol) server that lets Claude Code control YouTube Music
- Chrome extension (Manifest V3) that runs on music.youtube.com
- WebSocket bridge connecting the two (port 8766)
- ~1400 lines of code total across 4 main files
### Architecture
```
Claude Code <-> MCP Server (stdio) <-> WebSocket (port 8766) <-> Chrome Extension <-> YouTube Music
```
### Components
| Component | Tech | Lines |
| --- | --- | --- |
| Chrome extension content script | JavaScript | 730 |
| MCP server | TypeScript | 334 |
| WebSocket bridge | TypeScript | 240 |
| Type definitions | TypeScript | 110 |
### Dependencies
- @modelcontextprotocol/sdk ^1.0.0
- ws ^8.18.0 (WebSocket library)
- TypeScript 5.x
### Tools Implemented (17 total)
**Playback**: play, pause, next, previous, set_volume, like, dislike
**Search/Queue**: search, add_to_queue, play_next
**Debug**: status, now_playing, get_search_state, get_page_info, get_debug_logs, clear_search_state
### Key Technical Decisions
**State machine for search**
- Problem: Page navigation loses context
- Solution: Persist state in sessionStorage, process on each page load
- States: IDLE -> NAVIGATING_TO_SEARCH -> EXTRACTING_VIDEO_ID -> NAVIGATING_TO_WATCH -> STARTING_PLAYBACK -> COMPLETE
**In-page search for queue**
- Problem: URL navigation clears the queue
- Solution: Type in search box instead of navigating, preserves queue context
**Song vs Album filtering**
- Problem: "Add to queue" only works on songs, not albums/artists/videos
- Solution: Check for "Song" in subtitle text before clicking menu
**Beforeunload popup**
- Problem: YouTube Music shows "Leave site?" when navigating during playback
- Solution: Pause video before any navigation
### Bugs Encountered and Fixed
1. Queue commands clicking on albums (no "Add to queue" option) - fixed with song filtering
2. "Leave site?" popup blocking Chrome automation - fixed by pausing before navigation
3. Queue clearing on navigation - fixed with in-page search approach
### How Claude Code Was Used
- Wrote all code (TypeScript, JavaScript)
- Debugged via Chrome extension tools (mcp__claude-in-chrome__)
- Iterative testing: run command -> check Chrome -> fix -> repeat
- Created documentation (CLAUDE.md)
- Created skill file for future use (/ytmusic)
### Setup Required
1. Build MCP server: `npm install && npm run build`
2. Load Chrome extension (developer mode, load unpacked)
3. Open YouTube Music in Chrome
4. Add MCP config to .mcp.json
### Limitations Discovered
- Extension must be in focused tab for queue commands to work reliably
- Only works with songs (albums need separate handling)
- YouTube Music DOM structure could change and break selectors
### Side Project: Obsidian Archive
Source: https://www.allknivesnobagel.com/blog/obsidian-archive/
Date: 2025-12-29
Description: A Chrome extension for archiving web pages to Obsidian, built with Claude Code. Thoughts on preparing context and scaffolding for LLM workflows.
[Obsidian Archive](/projects/obsidian-archive/) is a Chrome extension that archives web pages to your Obsidian vault with rich metadata for search and citation. One click saves any article, tweet, or page as a well-formatted markdown file.
I am having a jolly good time tinkering with Claude Code over the holidays.
Sometime in 2024 I started the habit of keeping all my notes as markdown files and storing them in an Obsidian Vault in anticipation of better LLMs, which is now starting to pay off. With Opus 4.5 and Claude Code you can have a lot of fun building custom tools and automating little things.
The Obsidian Vault with the markdown files serves as an easily searchable, context-rich environment that I can plug into any LLM and get going.
That Context (my archives containing .md, pdfs, and other LLM readable stuff) plus Scaffolding (Claude Code, Custom Extensions, Scripts, Skills, Custom instructions) make the LLM vastly more effective and capable.
Claude Code and Opus 4.5 are so much fun to do things with. Thinking about what you can automate and will be able to automate in the future is fun. What to prepare and what systems to put in place for continuing AI capabilities continues to pay off.
> Aggressively JIT your work. It's not about the task at hand X, it's a little bit about X but mostly about how you should have had to contribute ~no latency and ~no actions. It's digital factorio time.
>
> β [Andrej Karpathy (@karpathy), Dec 28, 2025](https://x.com/karpathy/status/2005353145128583447)
### AI for Game Developers: 2025 Update
Source: https://www.allknivesnobagel.com/blog/ai-gamedev-talk-2025-update/
Date: 2025-12-19
Description: Updated talk on practical AI for game development
Talk given at Macromedia Leipzig, December 19, 2025.
### [View the Slides](/ai-talk/)
Full write-up coming soon.
### 13 Notes on Half Life Alyx VR
Source: https://www.allknivesnobagel.com/blog/half-life-alyx-vr-notes/
Date: 2025-09-23
Description: Observations and design thoughts on VR design from playing Half Life Alyx. Notes on UI, interaction design, movement, and VR-specific game mechanics.
You learn from the best, and the consensus is that Half Life Alyx is the first killer app for VR. Historically Valve expertise lies in executing the basics extremely well and that's also the case here.
Here are my notes, observations and design thoughts on VR design that I took from playing.
1. You are instantly in the game, in a scene with full movement controls. You can walk about be and be present. Only second and slowly does Title and UI unfurl and show.
2. Ghost hands are present when you lay down controllers. Neat. Additionally the game has a diegetic device, the Gravity Gloves that your character wears, so you always have a visual representation of the controllers.
3. The main non-diegetic UI is anchored in space by a subtle wall of floating dots or "matrix" artifacts. This helps with finding and grounding the UI in your peripheral vision.
4. The non-diegetic menus use multiple sub-menus that fold out. At some point you will have three menus next to each other like multiple screens.
5. Indeed, you essentially have limitless screen real estate. It's like having a workplace with 3+ screens setup.
6. Your virtual hands collide with walls and animate correctly pressing against them. The immediate feedback feels good, makes object feel more solid and also immerses you more.
7. Throwing objects in VR will have you throw the controller. It's just instinctual. It is probably always worth it to include some UI warning, design affordance or just remind people to use the physical controller straps.
8. The game models heavy objects by requiring two hands to lift them. Just using one hands lifts the object for a moment, but then it starts to slip and then fall. A really simple way to convey weight.
9. Subtitles. They stick to the center of your view, but not doggedly. There is a slight delay before they reposition and then they slowly interpolate. Getting this right is really important to prevent disorientation and jittery UI.
10. Red and Yellow are the interaction colors. Actually, all pure primary colors. Most of the environment is flat, pale or mixed colors. But important or interactable objects are mono-colored primary colors and additionally have simple blocky geometry.
This is really effective at setting Interaction apart. When you look for it it almost gets silly, but the UX upsides are worth it.
11. Using teleportation movement shows ghost feet at your target location, but it also when starts playing a animation of the ghost feet walking there. Neat.
Mostly there for immersion. Does it add much? Probably not, but it does not hurt.
12. Finding the right position in front of a bigger object can be tough. You are too close, too far away, slightly offset, etc. Its hard to get it right with teleportation.
Perhaps a subtle snapping to position mechanic could make things easier? Although you would limit some freedoms and immersion. And you would invite different positioning edge cases. Still probably worth exploring.
13. Walking long distances in VR sucks when using teleportation, because you cant look around. You have to always look were you are going, and don't really get to look around. That has you tunnel vision on locomotion and not really appreciate the environment. Which in turn makes sequences of 20+ seconds of traversal pretty boring and uninteractive.
Walking just ain't it in VR as a load bearing game mechanic. Perhaps when you solve motion sickness from non teleportation it works better. That means that all designs that require walking, such as exploration, open world, Metroid Vania style back tracking, etc., also all suffer from downstream effects. They might be worth it but they will always struggle with a shoddy foundation.
### Thinking about Spiritual Output in a Medieval Society
Source: https://www.allknivesnobagel.com/blog/spiritual-output-medieval-society/
Date: 2025-09-22
Description: Exploring how to model spiritual production and religious devotion in medieval RPGs, and designing game mechanics that align player incentives with character motivations around faith and worship.
For most of human history something like 90 percent of all productivity was directed towards agriculture. [[Wildly generalizing across thousands of years of human history and civilisations (Ancient Egypt, India, China, Europe, the Americas)]]
People in the past were mostly farming, or engage in supporting farming. That is because only when you have a surplus of food, can you do other things. Merchants, Artisans, Warriors and Clerics all have to eat something. And it takes a lot of people to feed one extra person with medieval agricultural technology.
So agricultural economies directed 90 percent of productivity towards agricultural output. What of the remaining 10 percent? They are Artisans (blacksmiths, carpenter, potter, etc), Warriors (armies, peacekeeping, castles, etc.), Merchants (markets, trade, etc.) and Clergy (spiritual services, education, etc.).
When we are playing roleplaying games those are the parts of the economy players, playing heroes or adventurers, are most likely to interact with. They are also parts that are probably easier to understand for the modern economics brain. We know what artisans, warriors and merchants do.
But what about Clergy?
From a modern view genuine spiritual production, not the community service, ritual and education parts, but the doing service to a higher power seems somewhat strange.
In a medieval world something like 15-25 percent of the surplus was directed towards spiritual production[[Citation needed. But probably in the ballpark.]]
. Imagine spending a quarter of your net income every month on church services.
But people in the past were not stupid, they very likely believed this was both necessary and reasonable. They simply had a different understanding of the world.
When I run games I notice that players are very happy to spend money on weapons, gear, magic items. Sometimes they will even spend money on personal luxury or a good party.
I have never seen a player character spend 25 percent of their well earned loot at a church or temple, if they did not have to or got something tangible in return. Certainly not for the peace of their immortal soul.
Part of this is that we know we are playing a game and spending money on making my character faster, better and stronger is more in line with what the game rewards and punishes. There are misaligned incentives between what the character wants and what the player wants.
So how can we align incentives to encourage our adventurers to value spiritual production?
This is a game design problem. Here are some thoughts and solutions:
## Give XP
The trivial solution is doing a gold spend for xp scheme, were you gain xp via worship and you can pay someone to worship for you.
So you could pay 100 gold for a couple of priests to pray in your name for a month and you gain 100xp.
Does that mean that rich people are all of higher level since they spend more gold on worship? How do we explain high level characters that have not spend money on worship?
## Give Power
Temples are the only places to get healing from. They can sell holy water and health potions. Health potions can heal minor sickness, and large health potions also heal major sickness. Maybe in this world there is no germ theory of disease but instead a curse theory of disease, and thus all illness must be treated by spiritual means.
## Lack of Concern for Ones Eternal Soul
The game happens during the live of your character, that is the primary concern of the player. When a character dies, you cant keep playing them. A player gets nothing from a character going to heaven, nor to hell, they don't notice one way or another. You might feel bad for a moment, but if you want to keep playing, you move on to the next character.
So we have to put the fear of Damnation into players, or the promise of Salvation.
The problem here is the disconnect between player and character. We have to make the fate of the character mechanically affect the player.
In basic dnd the one incentive we have that exists out of game is xp. We could design a direct feedback mechanism of giving xp for spiritual output, and xp penalties for lack of spiritual output. Given the incentive structure we should expect more spiritual production from characters.
Though we still have a disconnect between player and character.
The player acts for short-term gains via xp, were as the character ought to do it for long-term gains fearing for their immortal soul or wanting to go to paradise.
If we want to align player motivation with character motivation we have to design a feedback mechanism that impacts the player in the long-term.
We could imagine this as something like a xp bonus for each character that has reached paradise, and a penalty for characters that are condemned to hell.
In practice this will only starts mattering a few sessions into the campaign, when you retire a character, which is not great. And skilled players, in the sense of not getting their characters killed will not gain anything.
How do you solve that? Pregenerate previous characters? Give the option to retire characters?
A softer version of this might be that the starting level of new characters could be determined by the fate of previous. So say you had 3 characters going to heaven and one going to hell, your new starting level would be at + 3 minus 1, so +2.
I like that this directly connects the fate of your last character to your next, and so the feedback is very direct. It also should not matter too much, since starting at Level 1 is completely fine and lower level characters catch up quick. There are probably better solutions but this is good enough for now.
## Communal Worship in the Society of the Murder Hobo
Much behavior of groups of humans is best explained because they have build a society in which they will spend time together and repeatedly interact. Because of that things like reputation, trust and organization matter.
This is not the case for adventurers. They usually operate outside of civilization and greater society. The traditional social incentives and punishments do not affect them much.
To produce the communal worship of pre-modern societies we have to also incentivize the group and not just the individual. The first step is to have spiritual output scale better with quantity rather then with quality. We want a world were 10 monks are better then 1 archpriest. Or at the very least we want 10 monks to be more economical in producing the same amount of spiritual output.
The second step is having spiritual production being able to be shared with the larger community. Directly that means selling holy water and health potions, curing wounds and removing curses, but those are expensive and singular. We also want a reason for the masses to chip in. So spiritual output should also have broad benefits such as improving the fertility of the land, warding against monsters and evil and protecting from plagues.
### What to make of this?
I think it is worthwhile to experiment with making spiritual activity and output matter. Player should want and need to spend a good amount of their money on spiritual service and production.
I am less certain on the precise mechanical implementation, but if you want to make player behave in a certain way, that is the only reliable way.
I will experiment and playtest and hopefully write a follow up post, being somewhat wiser.
### AI for Game Developers: Mundane Utility Talk Archive
Source: https://www.allknivesnobagel.com/blog/ai-for-game-dev-talk-archive/
Date: 2025-06-13
Description: Archive and resource hub for my Nerdicon talk on practical AI applications in game development
I gave a talk at Nerdicon about using AI practically in game development - focusing on the mundane but genuinely useful applications rather than the hype. This post serves as an archive and resource hub for that presentation.
## Talk Resources
- [Interactive Transformer Visualization Demo](/transformer-viz) - See how AI actually processes information
- [Presentation Slides](/assets/pdf/Nerdicon%20-%20GameDev%20AI%20Primer.pdf) - PDF Archive ([Google Slides version](https://docs.google.com/presentation/d/1py5OaeMQ1CTOBtJJUp90x5flgmFufpsSBYelNcXud_8/edit?usp=sharing))
- [Lancer Analysis Chat History (Analysis)](https://chatgpt.com/share/6848a299-049c-8000-a851-fe576862cebe)
- [Lancer Analysis Chat History (Compression)](https://chatgpt.com/share/684725da-ff84-8000-bdbb-92a9a56fc458)
## Core Concept: Mundane Utility
The talk focused on AI's practical applications for indie game developers - the boring but essential tasks that AI handles well today. No promises of AGI or creative breakthroughs, just tools that save time on repetitive work.
## Practical AI Use Cases for Game Development
### Content Generation & Validation
- **Text Generation**: Lore variations, dialog snippets, tooltips, item descriptions
- **Localization**: Quick translation drafts for multiple languages
- **Style Validation**: Checking if content matches your game's tone and theme
- **Synthetic Focus Groups**: Testing content reception at scale
### Code & Technical Tasks
- **Code Completion**: GitHub Copilot for routine programming tasks
- **Documentation**: Automated API docs and code comments
- **Bug Discovery**: Generate 50 edge cases for feature testing
- **Pseudocode Generation**: Turn design specs into implementation outlines
### Production Efficiency
- **Asset Organization**: Batch renaming and labeling of game assets
- **Placeholder Assets**: Quick generation via Meshy AI (with manual fixes)
- **Animation Prototypes**: DeepMotion for rough animation passes
### Design & Analysis
- **Rubber Duck Debugging**: Explain your design problems to AI
- **Statistical Analysis**: Models excel at finding patterns in playtesting data
- **Balance Testing**: Simulate thousands of combat scenarios (see Lancer example)
- **Design Document Processing**: Transform natural language specs into state machines
### Marketing & Business
- **Store Page Copy**: Steam descriptions and feature lists
- **Devlog Writing**: Draft updates and patch notes
- **Social Media Content**: Platform-specific promotional text
## Key Takeaways
1. **AI is a prediction engine** - It excels when working close to its training data
2. **Context is everything** - The more specific context you provide, the better the output
3. **Manage it like a smart intern** - Clear instructions, review output, iterate with feedback
4. **Use the right tool**:
- Hard problems = Reasoning models (Claude Opus, GPT-o3, Gemini 2.5 Pro)
- Simple tasks = Cheaper, faster models
## The Future is Already Here
- AI costs are dropping 10x every year
- Current capabilities are the worst they'll ever be
- New features coming: better agents, test-time compute, fine-tuning
The message: **Use the dang thing.** Pick a benchmark task you're good at, test AI against it, and integrate it where it helps.
## Sources & Further Reading
### Research Papers & Reports
- METR (2025, March 19). [Measuring AI Ability to Complete Long Tasks](https://metr.org/blog/2025-03-19-measuring-ai-ability-to-complete-long-tasks/). *"The length of tasks that generalist frontier model agents can complete autonomously with 50% reliability has been doubling approximately every 7 months for the last 6 years."*
- Kwa, T. et al. (2025). [Measuring AI Ability to Complete Long Tasks](https://arxiv.org/abs/2503.14499). arXiv preprint arXiv:2503.14499.
- Epoch AI (2025, March 12). [LLM inference prices have fallen rapidly but unequally across tasks](https://epoch.ai/data-insights/llm-inference-price-trends). *"Prices declining between 9x per year and 900x per year, with a median of 50x per year."*
- Cottier, B., Snodin, B., Owen, D., & Adamczewski, T. (2025). [Trends in AI Supercomputers](https://epoch.ai/blog/trends-in-ai-supercomputers). Epoch AI. *"AI supercomputers double in performance every 9 months."*
- Stanford HAI (2025). [The 2025 AI Index Report](https://hai.stanford.edu/ai-index/2025-ai-index-report). *"Inference cost for a system performing at the level of GPT-3.5 dropped over 280-fold between November 2022 and October 2024."*
- Andreessen Horowitz (2024). [Taming the Tail: Adventures in Improving AI Economics](https://a16z.com/taming-the-tail-adventures-in-improving-ai-economics/). *"For LLM of equivalent performance, the inference cost is decreasing by 10x every year."*
### Environmental Impact Studies
- Ren, S. et al. (2023). [Making AI Less "Thirsty": Uncovering and Addressing the Secret Water Footprint of AI Models](https://arxiv.org/pdf/2304.03271). UC Riverside. *Original research on AI water consumption.*
- Altman, Sam (2025, June 10). ["The Gentle Singularity"](https://blog.samaltman.com). OpenAI Blog. *"The average query uses about 0.34 watt-hours... It also uses about 0.000085 gallons of water; roughly one fifteenth of a teaspoon."*
- Bloomberg (2025, May 8). [The AI Boom Is Draining Water From the Areas That Need It Most](https://www.bloomberg.com/graphics/2025-ai-impacts-data-centers-water-data/). *"More than 160 new AI data centers have sprung up across the US in the past three years in places with high competition for scarce water resources."*
### Books
- Bostrom, Nick (2014). *Superintelligence: Paths, Dangers, Strategies*. Oxford University Press.
- Yudkowsky, Eliezer & Soares, Nate (2025). *If Anyone Builds It, Everyone Dies*. [Forthcoming]
### Online Resources & Blogs
- [AI-2027.com](https://ai-2027.com) - Predictions and analysis of near-term AI development
- [LessWrong](https://lesswrong.com) - Rationality and AI safety community
- [Don't Worry About the Vase](https://thezvi.substack.com) - Zvi Mowshowitz's blog on AI and rationality
- [Dwarkesh Patel Podcast](https://www.dwarkeshpatel.com/podcast) - In-depth interviews with AI researchers
- [One Useful Thing](https://www.oneusefulthing.org/) - Ethan Mollick's practical AI applications blog
### AI Tools for Game Development
- [Claude](https://claude.ai) (Anthropic) - Reasoning model for complex tasks ($20/month Pro)
- [ChatGPT](https://openai.com) - OpenAI's models including o3 reasoning ($20/month Plus)
- [Gemini 2.5 Pro](https://ai.google.dev) - Google's advanced model (Free tier available)
- [GitHub Copilot](https://github.com/features/copilot) - Code completion ($10/month, free tier with 2000 completions)
- [Meshy AI](https://meshy.ai) - 3D asset generation for games
- [DeepMotion](https://deepmotion.com) - AI-powered animation
- [Google AI Studio](https://aistudio.google.com) - Large-scale data analysis
- [DeepL API](https://www.deepl.com/pro-api) - Professional translation (~β¬1-2 per language for indie games)
- [Ludo.ai](https://ludo.ai) - Game design assistant and market research
### Industry Reports & Analysis
- McKinsey (2023). [Unleashing developer productivity with generative AI](https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/unleashing-developer-productivity-with-generative-ai). *"Developers complete coding tasks up to twice as fast with AI assistance."*
- Game Developer Conference (2024). [State of the Game Industry Report](https://gdconf.com/news/gdc-2024-state-game-industry-devs-discuss-layoffs-generative-ai-and-more). Survey of developer AI adoption.
- Creative Bloq (2024). [A year on, have indie game devs changed their views on AI?](https://www.creativebloq.com/3d/video-game-design/how-indie-game-dev-opinions-on-generative-ai-have-changed). Industry sentiment analysis.
### Technical Benchmarks
- [Epoch AI Data Hub](https://epoch.ai/data) - Comprehensive database of AI model capabilities and trends
- [Papers with Code](https://paperswithcode.com) - ML benchmarks and implementations
- [Artificial Analysis](https://artificialanalysis.ai) - Independent LLM performance benchmarking
### Critical Perspectives
- Aftermath (2024). ['An Overwhelmingly Negative And Demoralizing Force': What It's Like Working For A Company That's Forcing AI On Its Developers](https://aftermath.site/ai-video-game-development-art-vibe-coding-midjourney).
- ACM (2024). ["I'm a Solo Developer but AI is My New Ill-Informed Co-Worker": Envisioning and Designing Generative AI to Support Indie Game Development](https://dl.acm.org/doi/10.1145/3677082).
---
*For questions or discussions about AI in game development, reach out at: heinke.jonas@googlemail.com*
*Visit [playinsightstudios.com](https://playinsightstudios.com) for more resources.*
### Critical Analysis: Lancer vs D&D 5e Critical Hit Systems
Source: https://www.allknivesnobagel.com/blog/crits-lancer-vs-5e/
Date: 2025-04-30
Description: A deep dive into the mathematics and psychology behind critical hit systems in Lancer and D&D 5e, exploring their design implications and impact on gameplay.
I've been working on For Want Of Fuel and got to thinking about Critical Hits. When converting mechanics between systems, we need to understand what the original design is doing and whether it works in the new context. We don't want to go tear down [Chesterton's Fence](https://www.lesswrong.com/w/chesterton-s-fence).[[Chesterton's Fence is the principle that reforms shouldn't be made until the reasoning behind the existing state is understood.]]
So some analysis is in order. For this mechanic it makes sense to split our analysis into two parts. Math and Psychology.
Here math is the pure logical and statistical impact of the design. Both Lancer and SWN are skirmish games with combat mechanics that are relatively detached from the Fiction layer of the game. You could write a program or computer game using the rules of these games that works perfectly fine without a human having to imagine, describe or think about what the Mechs are actually doing.
The interplay of the rules happens more or less on the character sheets, dice and map. Whether it is the players that compute the changes of this state machine or a computer makes little difference.
Why is this important? Well it means that a large part of the gameplay dynamics is determined by this state machine and its behaviors. Since it is indifferent to a human in the loop we can analyze it without having to worry about pesky player psychology and only model the math.
Obviously the outputs or results of this state machine or how players perceive it has a impact on psychology but that is a separate analysis.
## The Math
Let's compare Lancer's crit system to the familiar 5e system:
#### Lancer Crits
- Trigger: Roll 20+ on attack roll
- Effect: Roll damage twice, keep highest result
#### 5e Crits
- Trigger: Natural 20 on attack roll
- Effect: Roll all damage dice twice, add together
Similar at first glance, but fundamentally different. Not only is the damage calculation different, but the trigger condition is too.
Both systems follow the same basic combat flow:
1. Roll to attack (chance to hit = $p(hit)$)
2. If hit, roll damage (average damage = $d$)
3. Total expected damage = $d \times p(hit)$
But this doesn't account for critical hits. The probability of a crit ($p(crit)$) and the damage of a crit ($d(crit)$) differ between systems:
#### Lancer
- $p(crit)$ = probability of 20+ on attack roll
- $d(crit)$ = average damage when critting
#### 5e
- $p(crit) = 0.05$ (natural 20)
- $d(crit) = 2 \times d$ (ignoring flat bonuses)
## 1. Notation and Common Ground
Let[[Shoutout to o3 for making double checking all the math a lot easier.]]:
- **B** = attack bonus (5e: proficiency + ability; Lancer: grit + mods)
- **T** = defense to beat (AC or Evasion)
- **d** = mean damage of a *normal* hit (flat mods included once)
- **dαΆ** = mean damage of a critical hit
- **p_hit** = P(hit) (includes crits)
- **p_crit** = P(critical β§ hit)
Expected damage per attack:
$$E[D] = d \times p_{\text{hit}} + p_{\text{crit}} \times (d^c - d) \tag{1}$$
The second term is the *increment* supplied by the crit rule.
## 2. Mathematics: 5e
### 2.1 Trigger Probabilities
- **Natural 1** auto-miss
- **Natural 20** auto-hit and crit
$$p_{\text{crit}}^{5e} = 0.05$$
For other results:
$$p_{\text{hit}}^{5e} = \frac{|\{r \in [2,19] \mid r+B \ge T\}|}{20} + 0.05 \tag{2}$$
### 2.2 Critical Damage
If the ordinary dice distribution is **X**, a 5e crit rolls 2 Γ X; flats stay once:
$$d_{5e}^c = 2 \times E[X] + C \implies d_{5e}^c = 2d - C$$
(*C* is the total flat modifier.)
### 2.3 Increment
Because $d^c = 2d - C$:
$$\Delta E = D_{\text{crit}} - D_{\text{no-crit}} = p_{\text{crit}}^{5e} \times (d^c - d) = 0.05 \times (d - C)$$
So with a +3 flat on a 1d8 longsword (Β§ 4.1 below) only the dice part is doubled.
## 3. Mathematics: Lancer
### 3.1 Trigger Probabilities
Let **r** ~ Uniform{1β¦20}. A result counts as a crit only if it both hits *and* is β₯ 20 after modifiers:
$$p_{\text{crit}}^{\text{Lan}} = \Pr[r+B \ge \max(20,T)] = \frac{21 - \max(20,T-B+1)}{20} \tag{3}$$
*If* T β€ 20 (the usual case) this simplifies to
$$p_{\text{crit}}^{\text{Lan}} = \frac{21 - (20-B)}{20} = \frac{B+1}{20}$$
so a LL 3 pilot (B β +3) crits 20% of all attacks that reach the target. Notice the frequency scales with level rather than being a flat 5%.
### 3.2 Critical Damage
Damage dice are rolled twice; keep the higher aggregate.
For i.i.d. variables **Xβ,Xβ** with pmf *f(x)*:
$$d_{\text{Lan}}^c = E[\max(X_1,X_2)] + C = \sum_x x(F(x))^2 - (F(x-1))^2 + C \tag{4}$$
where F is the CDF of **X**.
Closed form for a single uniform die *d*:
$$E[\max(d)] = \frac{n(n+1)}{2n} = \frac{2n+1}{3} \quad (n = \text{sides})$$
β β 1.28 Γ basic for d6, β 1.29 Γ for d8.
### 3.3 Increment
Let $k = \frac{d^c}{d} - 1$ (15β30% in practice):
$$\Delta E = p_{\text{crit}}^{\text{Lan}} \times k \times d$$
Because both $p_{\text{crit}}$ *and* k are level- and weapon-dependent, Lancer bakes more of its DPR into crits as pilots advance.
## 4. Concrete Numbers
The table below shows the mean outcomes for common dice packages. Lancer ratios sit in the 1.15β1.30 band; 5e is a clean Γ2 unless flats dominate.
| Dice | Normal | Lancer-crit | Lancer / Norm | 5e-crit | 5e / Norm |
|------|--------|-------------|---------------|---------|-----------|
| 1d6 | 3.50 | 4.47 | 1.28 | 7.00 | 2.00 |
| 1d6 + 2 | 5.50 | 6.47 | 1.18 | 9.00 | 1.64 |
| 2d6 | 7.00 | 8.37 | 1.20 | 14.00 | 2.00 |
| 3d6 | 10.50 | 12.18 | 1.16 | 21.00 | 2.00 |
| 1d8 | 4.50 | 5.81 | 1.29 | 9.00 | 2.00 |
| 1d8 + 3 | 7.50 | 8.81 | 1.17 | 12.00 | 1.60 |
### 4.1 Worked DPR Example
**Weapon:** 1d6 + 2
**Targets:** Lancer Evasion 15; 5e AC 15
**Pilots:** LL 3 (+3) vs. 5e Fighter level 5 (+5)
| | $p_{\text{hit}}$ | $p_{\text{crit}}$ | $E[D]$ per swing | % via crit |
|--|-------|--------|----------------|------------|
| **Lancer** | 0.45 | 0.20 | 2.67 | **48%** |
| **5e** | 0.55 | 0.05 | 3.20 | **14%** |
Although the raw DPRs are close, nearly half of a Lancer pilot's output comes from crit spikes, whereas 5e keeps crits a low-frequency surprise. This difference in design philosophy affects how "swingy" combat feels.
## 5. Design Implications for For Want of Fuel
**Frequency vs. Magnitude**
Lancer ties crit frequency to skill progression and keeps the damage bump modest. 5e fixes frequency but doubles dice, making each crit spectacular.
**Variance Profile**
Higher $p_{\text{crit}}$ with smaller k yields *moderate* variance increases in Lancer, while 5e produces *rare, high-variance* spikes. Consider whether FWOF wants steady upticks (maintains tactical predictability) or show-stopping moments.
**Scaling with Flat Bonuses**
Both systems *exclude* flats from the multiplication, so weapons with large static riders nerf 5e crit scaling more severely than Lancer's highest-of-two rule. If FWOF leans on flat-heavy damage, adopting 5e-style doubling flattens crit impact.
**Psychological Impact**
Lancer crits reward "feeling skilled" as the character improves
5e crits reward "lucky moments" independent of build
### The Lunar Liches of Selena-Resht
Source: https://www.allknivesnobagel.com/blog/lunar-liches/
Date: 2024-12-17
Description: The fallen angels of Paradise who fled to Selena-Resht's moon, becoming the undead Asqai'elun in their desperate pursuit of lost immortality.
In the beginning was Paradise, Janat al-Ardh, blessed be its name. Those who walked its gardens say you could feel eternity in every breath. The very atoms sang with immortality, a perfect realm where pretech engineering had achieved divinity. Its people were living starlight, their forms woven from the fundamental forces of creation itself.
But Paradise was not meant to last. When the Scream tore reality asunder and the great realms of humanity fell into darkness, Janat al-Ardh sealed itself away. The gates closed, the gardens turned inward, and paradise became a prison.
Some could not bear the gilded cage. They whispered of destiny denied, of their divine right to rule creation. Were they not perfect? Were they not eternal? And so they left, ascending to the moon to raise an army of angels from the ashes of the past.
Oh, what bitter revelation awaited them there! For when they had driven the mutant hordes from the ancient ruins, they discovered their perfect forms beginning to decay. Away from Paradise's grace, mortality crept into their bones like poison. In their rage they turned their armies back toward heaven's gates, but Paradise would not yield to its wayward children.
Now they haunt the outer reaches, these fallen angels of Janat al-Ardh. Their laboratories pulse with forbidden energies as they chase the immortality they lost. Every golden age wonder they recover is twisted to serve their desperate crusade against death itself.
They name themselves Asqai'elun - the Drawn Shadows. How fitting, that those who fled the light should embrace the dark.
## Orbital Liches
The Orbital Liches, known as the Asqai'elun (The Drawn Shadows), are immortal geneticists and researchers who rule the moon of Selena-Resht. Originally citizens of Paradise (Janat al-Ardh), they left their home seeking to expand humanity's dominion across the stars. Upon leaving Paradise's influence, they lost their immortality and turned to necromantic technology to sustain their existence.
### Key Characteristics
- Advanced genetic engineering capabilities
- Sustained by a combination of pretech and necromantic life support
- Possess extensive knowledge of Golden Age technology
- Rule from fortress-laboratories across Selena-Resht
### Goals & Motivations
1. Conquer Paradise and reclaim their "rightful" place
2. Achieve true immortality through any means necessary
3. Advance their research without moral constraints
4. Expand their influence across the sector
## Paradise Lost
### Selena-Resht
The hollow moon of Janat al-Ardh bleeds light like an infected wound. Ancient mining complexes honeycomb its surface, repurposed into vast necropoleis where the Liches conduct their endless experiments. Bleak citadels grow from Golden Age ruins like corpse flowers, their spires crowned with crackling energy fields that paint the eternal night in sickly colors.
Below the surface, techno-warrens spiral downward for kilometers. Here, clone-servants shuffle through catacombs lined with stasis pods, while automated factories churn out spare parts for both machinery and flesh. The deeper you go, the more the architecture shifts from human design to something older, more alien.
### The Gate
A massive ring of black metal hangs in high orbit, its surface etched with mathematical formulas that hurt the eyes. This dormant jump gate once connected the system to humanity's greater realm, but now serves a darker purpose. The Liches use it for divination, forcing Way-creatures through its partially activated portal to read prophecies in their death throes.
Some say the Gate whispers in the night, broadcasting messages in ancient codes that only the Liches can decipher. Others claim it's slowly awakening, responding to the necromantic energies that saturate the system. The Asqai'elun could probably restore it to function, but their gaze remains fixed on Paradise below, not the stars beyond.
### The Tears of Selene
The shattered remains of the second moon hang in space like frozen shrapnel. When the Asqai'elun made their first bid for Paradise, weapons beyond mortal understanding reduced an entire celestial body to glittering debris. Now these fragments host a thousand micro-habitats, each a potential treasure trove of Golden Age relics or death trap of ancient defense systems.
Dustborn clans claim the larger fragments, building warren-cities in the ruins of orbital research stations. Their bodies, adapted for void survival, let them navigate the debris field without ships. Some fragments still carry active temporal distortions - unwary travelers might find themselves aged to dust or trapped in endless moment loops.
### The Grey Gardens
Vast hydroponic complexes that once fed the moon's population now host a sprawling fungal empire. Under shattered domes, phosphorescent hyphae weave through the ruins like neural pathways, their patterns forming living circuit boards in the darkness. The air shimmers with bioluminescent spores that carry whispered data in their genetic code, while skeletal gardener-constructs tend to crystalline fruiting bodies that pulse with stored memories.
The Gardens are neutral ground, maintained by all factions in an uneasy symbiosis. Here, the Liches conduct their trades and forge their alliances among the rotting remnants of paradise, while their servants harvest the vital components that sustain their hollow existence. But beneath the decay, the fungal network dreams its own dreams - some whisper that the entire complex has achieved consciousness through its vast mycelial web, patiently executing plans seeded centuries ago in the fertile soil of ruin.
## Factions of the Lunar Liches
### The Clockmaker
The Clockmaker was once Paradise's master of celestial calculations. Their fortress-laboratory, rises like a twisted astronomical clock from the lunar surface. Here, chronometric engines harvest temporal energy from dying stars, while temporal anomalies twist the corridors into impossible geometries. Their servants, the Clockwork Muezzin, call out the hours with voices that fracture time itself, their brass bodies inscribed with mathematical formulas that would drive mortals mad. The Clockmaker believes immortality lies in the manipulation of time's flow - not stopping it, but becoming its master.
### The Flesh Court
The Matriarch, who styles herself as Malika al-Ghul, rules from the Throne of Memories - a horrific construction of ossified experiences and crystallized neural patterns. Her court of Ghoul Knights maintain the pretense of Golden Age sophistication even as they feast on the flesh of the living, quoting ancient poetry while consuming their victims. They ride steeds engineered from extinct lunar beasts, their bones reinforced with pretech alloys and their minds linked to their riders through parasitic neural laces. The Caliphate seeks immortality through consumption - not just of flesh, but of memories, experiences, and the very essence of life itself.
### The MΔ' al-αΈ€ayΔt Syndicate
Named after the mythical Waters of Life, the Water Syndicate has transformed the ancient water reclamation systems into vast networks of preservation chambers. Their temples house countless glass tubes containing perfectly preserved specimens, each suspended in fluids reverse-engineered from Paradise's own regenerative technologies. Led by the Trinity of Thirst - three ancient scientists who have replaced their blood with living preservation fluid - the Syndicate believes true immortality lies in perfect stasis, a state between life and death where entropy itself is suspended.
### Gene Witches of Lo-Jenje
The Gene-Witches operate a thriving trade in clones and biological modifications. Their warren-labs contain vast vats of engineered tissue, capable of growing a perfect replica from the smallest DNA sample. They are lead by the ancient crone known as Mother Helix. For the right price, they offer everything from simple labor clones to exotic chimeric modifications. Their bodies are immortal, simply regrown if they perish.
### The Bell Wardens
A recent faction emerging from the grey spore clouds that hang over Selena-Resht. Their massive funeral bells, salvaged from Paradise's fallen temples, ring with psychic resonance that can shatter minds and reshape reality. The Bell Wardens emerged mysteriously from the perpetual grey spore clouds, their true nature unknown even to the other Liches. They are led by the enigmatic Dirges, whose forms are obscured by swirling spores except for the massive bells that seem to grow from their bodies like metallic tumors. Their fortresses are mobile carillons that drift through the clouds, the tolling of their bells causing reality to ripple and warp.
The Wardens claim to hear voices in the bells' resonance - whispers from what they call the "Far Chime," an entity or force that may predate even the Golden Age. Their preservation seems tied to the spores themselves, which appear to crystallize time around them rather than the technological means used by other Liches. Some theorize they aren't truly Liches at all, but something that has merely assumed their shape.[[There is allways a bigger freako.]]
### Carnival Perpetual
Deep in the twisted warrens beneath Selena-Resht's surface lies the Carnival Perpetual, a mockery of Golden Age entertainment venues where the Court of Clowns holds their eternal revels. The Court's jesters are techno-parasites who wear the flayed faces of their victims as masks, their bodies a horrific fusion of circus attire and medical apparatus. They move with impossible acrobatic grace, their augmented limbs allowing them to scuttle across walls and ceilings while cackling with voices modulated to induce terror. The Grand Fool maintains a menagerie of "performers" - captured victims subjected to twisted biomechanical modifications. Some are fused with ancient carnival automatons, others transformed into living calliopes that pipe endless dirges through bone-flute organs. The Court believes that true immortality lies in performance - that if they can create the perfect show, they will transcend death itself through the eternal applause of their captive audience.
The Carnival Perpetual is perhaps the most feared of all of Selena-Resht factions, for while the others kill for power or knowledge, they kill simply for the applause.[[Even in the grim darkness of the far future, everyone still hates clowns.]]
### Dustborn
The Dustborn are the remnants of the humans gene-engineered for void travel. They are adapted for the life in orbitals, ships and space stations. They are small and thin with pallid greenish skin. They were adapted to go for long periods without food or water or even oxygen, when life support is low. So they are constantly hungry to store enough calories. [[They are basically space hobbits that have degenerated into goblins.]]
They After the Scream, they were left to fend for themselves in the lower orbits. They now serve as the large lower class of the Lunar Liches.
## From the idea pile[[Let it stew for a while and you get a strong broth.]]
- bone pipers, fused bodies playing orchestral piping sounds on their own bones
- a guy just covered in wax candles
- riding a floating snail palanquin
- super fat, but with long spider limbs, towering above everyone
- floating brains like cherubimb attached by cables
- giganctic funeral bells ringing with balefull psychic bellows, hanging out of the grey cloud cover, actually dropping grey spore clouds as they ring
### Lunar Liches Encounters
Source: https://www.allknivesnobagel.com/blog/lunar-liches-encounters/
Date: 2024-12-17
Description: Some Lunar Liches stat blocks and encounters
I needed to write some monsters and possible encounters for the Lunar Liches, so I have something to throw at the players.
The clowns though, I think I've got something there.
## Creatures of the Lunar Liches
### Lunar Husk
**HD:** 2
**AC:** 13 (Decayed flesh)
**Attack:** +3 to hit, Bony Fists (1d6)
**Save:** 14+
**Special Ability - Entangle:** As an action, can shoot silver tendrils at one target within 10'. Target must save vs Physical or be restrained for 1 turn.
**Morale:** 11
**Encounter:** Found wandering in small groups of 2-4, moving with jerky motions as silver threads pulse beneath their skin. Often discovered harvesting biological material from corpses or attempting to drag living victims back to their masters.
### Psynetic Revenant
**HD:** 5
**AC:** 14 (Implants)
**Attack:** +5 to hit, Mind Spike (1d8 psychic, 30' range)
**Save:** 13+
**Special Ability - Telepathic Pulse:** As an action, deals 1d8 psychic damage to all within 10' radius and forces save vs Mental or flee for 1 round.
**Morale:** 9
**Encounter:** Usually solitary, found in areas of psychic disturbance. Often surrounded by the bodies of those who died clutching their heads in agony. The air around them shimmers with visible psychic distortions.
### Riftwalker
**HD:** 5
**AC:** 15 (Time distortion)
**Attack:** +5 to hit, Clawed Hands (1d8)
**Save:** 13+
**Special Ability - Temporal Shift:** Every other round, can split into two versions and take two full turns. At end of round, must choose which version remains.
**Morale:** 10
**Encounter:** Found in areas where time flows strangely. Objects near them appear to age rapidly or reverse their decay. Multiple versions of the creature can be seen flickering in and out of existence, each performing slightly different actions.
### Ghoul Knight
**HD:** 6
**AC:** 18 (Baroque armor, as power armor)
**Attack:** +6 to hit, Memory Blade (1d8+1)
**Save:** 12+
**Special Ability - Memory Feast:** On hit, target must save vs Tech or lose access to one psychic technique or combat ability for 1d4 rounds. If target has no such abilities, they instead take 1d8 System Strain.
**Morale:** 9
**Encounter:** Found in the halls of Lunar Lich strongholds, these former nobles maintain their old courtly manners even in undeath. They collect trinkets and memories from travelers, believing they are preserving human culture and tradition. Their ornate armor holds crystalline fragments of memories - echoes of conversations, music, and laughter from ages past. Though they genuinely wish to "save" human civilization, their methods are tragic - they see no difference between willing guests and captured prisoners, believing all will eventually understand the necessity of their work.
### Bell Warden
**HD:** 4
**AC:** 14 (grey lamellar armor)
**Attack:** +4 to hit, Bell Hammer (1d8)
**Save:** 13+
**Special Ability - Preserving Shroud:** The Bell Warden is surrounded by a cloud of necrotic preservative spores. While in this cloud, creatures cannot be reduced below 1 HP, and any wounds sustained are temporarily suspended. Upon leaving the spore cloud, all suspended damage is immediately applied.
The spores are also poisonous, and any creature that enters the cloud must save vs Poison or take 1d4 damage per round.
**Morale:** 11
**Encounter:** Found in pairs or trios, accompanied by ancient brass bells that float eerily in the air above them. As they patrol, they ring their hammers against these floating bells in complex patterns, sending waves of grey spore mist rolling through the air. The mist clings to surfaces and preserves everything it touches.
## Abomibale Spawn of the Carnival Perpetual
The Carnival Perpetual is not a place of joy. Its performers are the cosmic rejects, the ones who understood the cruel joke of existence and couldn't bear to keep it to themselves. They don't seek to entertainβthey seek to share their misery, to hold up a cracked mirror to those who dare face them. Each encounter is an exercise in second-hand embarrassment, a reminder that perhaps the real monsters are the ones who would strike down these pathetic creatures. Their attacks don't just harm the body; they force you to confront uncomfortable truths about yourself. In the Carnival Perpetual, everyone's a clown, even the heroes.[[I hecking love clowns. They are so brilliantly pathetic.]]
### Bone Piper
**HD:** 1
**AC:** 12
**Attack:** +2 to hit, Bone Flute (1d6 sonic)
**Save:** 15+
**Special Ability - Dirge:** As an action, forces all within 30' to save vs Mental or be paralyzed for 1 round.
**Morale:** 7
**Encounter:** Sits cross-legged in a corner, playing a melody that sounds like a child's first attempt at music. Nearby, several dead rats are arranged as an audience, propped up with sticks. Harmless when encountered alone. But when they show up in a group, they form nightmare orchestras.
### The Attention Seeker
**HD:** 2
**AC:** 13 (Garish Costume)
**Attack:** +4 to hit, Desperate Grab (1d2)
**Save:** 14+
**Special Ability - Notice Me:** Each round, targets the player character who has taken the least actions against it. When hit, pitifully thanks its attacker. Players who ignore it for a full round must save vs Mental or feel crushing guilt, taking 1d4 System Strain.
**Special Ability - Death Performance:** When killed, asks the player to rate its performance from 1-10. If they refuse or rate it below 5, all players take 1d6 psychic damage from second-hand embarrassment.
**Morale:** 11 (Any attention is good attention)
**Encounter:** Follows the party at a distance, making increasingly obvious attempts to be noticed while pretending to be sneaky. If ignored, starts "accidentally" making loud noises while watching for reactions.
### The Mocking Mirror
**HD:** 4
**AC:** 12 (but matches the AC of the player)
**Attack:** +4 to hit, Rusty Razor (1d6)
**Save:** 14+
**Special Ability - Mirror Performance:** When attacked, pathetically mimics the attacker's combat stance and fighting style. The player must describe their attack in detail, then the Jester repeats it back badly, like a child trying to impress their older sibling. On a hit, deals damage equal to the player's last attack against it.
**Special Ability - You're Just Like Me:** When a player reduces this creature to half HP, they must save vs Mental. On a failure, they realize one way their character is similar to this pitiful creature. The player must state this similarity out loud, and their character takes 1d6 psychic damage from the revelation.
**Morale:** 12 (Hopes you'll end its misery)
**Encounter:** Found in front of a shattered mirror, striking heroic poses and making grandiose declarations. Its movements are perfect copies of the party's own mannerisms from their previous encounters.
## **Lieutenant of the Red Tower: Nalaris the Splicer**
- **HD**: 5
- **AC**: 15 (Reinforced Bio-Steel Plating)
- **Attack**: Tendril Slash (1d8) or Necro-Blaster (1d10, 90ft range)
- **Morale**: 10
Always appears with a group of Lunar Husk, that are implanted with necro-tech. She controls them via data cables running from her spine and connecting to their necronic implants.
#### **Abilities:**
- **Technovore:** Nalaris can absorb energy from technological devices, disabling them and healing 1d6 HP per use. Affected items must save or lose function for 1d6 rounds.
- **Cloak of Shards:** At will, Nalaris surrounds herself with a spinning field of metallic fragments. Melee attackers take 1d6 damage on a hit.
- **Command Node:** Once per encounter, Nalaris can issue a psychic pulse to nearby constructs or allies within 20 ft, granting them +2 to hit and damage for 1 round.
She has gained these abilities from a from a pretech staff, she wields.
### **Description:**
Nalaris is a grotesque blend of machine and flesh. Her body is twisted, her metallic plating fusing with sinew and veins that pulse faintly with necrotic energy. Despite her appearance, she retains intelligence and a sharp wit, often mocking intruders with cryptic riddles and bitter sarcasm.
### The Cryoarithmetic Engine
Source: https://www.allknivesnobagel.com/blog/cryoarithmetic-engine/
Date: 2024-12-17
Description: A mysterious archeotechdevice aboard the Gilded Bastion that powers a jump gate fragment through entropy manipulation
## The Gilded Bastion
Every lunar cycle the 12 Finger Guilds transport refined transplutonics and other rate raw materials to the zero-g forges of the Lazunan shipyards.
The cargo is protected by a ancient and venerable armored cruiser. The Gilded Bastion is a ship of the olden days, a relic of the days of the old empire. Closer to a orbital fortress than a ship, the Gilded Bastion protects the crucial mineral exports of the 12 Finger Guilds.
## The Vault
At the heart of the Gilded Bastion sits the Vault. A repository storing vast wealth, for trade with the Urbanites of Javon.
It is build to be entirely independant of the ship, and designed to withstand a siege for years. In the event of a siege, the Vault can be sealed off and jetisoned from the rest of the ship, awaiting reinforcement.
The Vault is guarded by a Venerable Shaper, a master artificer of the 12 Finger Guilds. And a contigent of Ore Wardens, a group of 12 elite warriors.
Even if the Vault is breached, intruders must first pass through the Chamber of the Turtle. Here all movement is halved, converging in a geometric series.
## The Chamber of the Turtle
A large vaulted chamber with cables and conduits converging in the center. When the Chamber is activated, all movement is halved, converging in a geometric series.
Light shifts to a deep red, and the temperature drops. The effect is strongest in the center of the chamber, which is pitch black as no light can return.
At the center of the chamber sits a jump gate fragment. The calculations of the Cryoarithmetic Engine are fed into the fragment, stabilizing the jump field. Thereby opening a meta-dimensional tunnel to the heart of the Nusantaran star. The massive amount of heat in turn powers the Cryoarithmetic Engine.
## Cryoarithmetic Engine
The Cryoarithmetic Engine is a archeotechdevice that generates processing power by drawing heat from the ambient surrounding. The compute generated thus scales logarithmically with heat.
Siphoning the entropy/heat from the star powers the cryoarithmetic engine, which in turns supplies the compute to stabilize the tunnel.
The Venerable Shaper is conducting experiments into both the engine and the jump gate fragment.
They have notice that the more energy they supply the stronger the time-dilation effect of the engine becomes. The large the temperature gradient, the stronger the geometric decay of velocity. This means that as energy supplied approaches infinity the velocity decay factor approaches 0. At infinite energy there is no more movement.
The higher the entropy of the system, the stronger the velocity decay. This also means that cold things are not slowed as strongly as hot things.
The Venerable Shaper has devised special ammunition for the Guardians of the Engine. They use highly ordered crystals with low entropy, like sapphires, diamonds and quartz.
## The Guardians of the Engine
**Venerable Shaper (4HD)**
*Equipment:*
- Grav-halberd (can lift/throw objects at range, targets save vs Tech)
- Rotary Revolver with Diamond Bullets
- Artificer Armor with Integrated Force Fields
**Ore Warden (2HD)**
*Equipment:*
- Heavy Exo-Armor
- Mag-Hammers (d10 damage, heavy)
- Integrated Power Tools
- Plasma Cutter Rifle
**Pyrocophagus**
- By super heating and entropy maximizing a sarcophagus, time can be slowed to a grinding halt. Forever preserving the entombed.
## Projects
### Babel Below
Source: https://www.allknivesnobagel.com/projects/babel-below.html
Date: 2026-03-29
Description: A tactical roguelike translating tabletop RPG mechanics into grid-based combat. Into the Breach meets Cyberpunk 2077.
A tactical roguelike that translates Forged in the Dark tabletop mechanics into grid-based combat. Into the Breach meets Cyberpunk 2077, built in Godot 4.6.
## The Pitch
Babel Below is set in the same universe as *Dark City, Shining Babel* β our Blades in the Dark hack about runners surviving a 2070 Southeast Asian megacity. The tabletop game plays as a heist-and-consequences cycle. The video game translates that into tactical grid combat with permadeath.
You lead a crew of augmented criminals through procedurally generated districts of Babel. Each mission is a "score" β infiltrate, fight, grab the objective, get out before the heat gauge fills. Between missions, you manage stress, maintain your cybernetic augments, deal with entanglements from your last job, and try not to die.
**15-30 minute runs. Permadeath via Trauma. The city always wins eventually.**
## What's Built
The game is in active development, currently at Sprint 1b (Combat Depth). Here's what works:
### Combat
- **Hex grid** with A* pathfinding, line-of-sight, and fog of war
- **FitD dice system** β roll Xd6 take highest, with crits, partial success, and consequences
- **6 enemy AI behaviors**: chase, ranged, shield wall, support/heal, overwatch, and static guard
- **8 enemy types** with faction-specific pools (corporate security, gang enforcers, drones)
- **Environmental interactions**: destructible cover, hazard tiles, hackable terminals, alarm triggers
- **Heat gauge** β fills from loud actions, triggers reinforcements at 4, elite response at 6, mission failure at 8
### Characters
- **3 playbooks**: Street Warrior (combat), Hacker (tech), Murk (stealth/violence)
- **Stress & Trauma** β spend stress to push rolls or resist consequences, but overflow means permanent trauma. Four traumas and you're retired.
- **Augments** β cybernetic and biological upgrades that require maintenance. Skip the maintenance and they might fail mid-mission.
### Infrastructure
- **Narrative engine** with 8 NPCs and 36 storylets driven by prerequisite evaluation and clocks
- **Audio system** β 53 sound effects, 9 music tracks, heat-reactive layers that intensify as missions escalate
- **Debug console** with 60+ commands (including an LLM helper for development)
- **659 tests** across 30 test suites
- **CRT/LCD visual aesthetic** β 5-layer post-processing stack for that stolen-corporate-cyberdeck look
## What's Next
- **Sprint 2**: Mission objectives beyond "kill everyone" β extraction, sabotage, data heist. Disengagement rolls for getting out alive.
- **Sprint 3**: Economy and advancement β BabelCoin flow, crew upgrades, entanglements between missions
- **Sprint 4**: Second district (The Town), tutorial, audio polish, HTML5 export
## Built With
- **Godot 4.6** + GDScript
- **Claude Code** agent swarms β the project uses a conductor/worktree model where multiple Claude agents work on different systems in parallel, coordinated through shared status files and interface contracts
- **AI art generation** for portraits, tokens, environments, and the cityscape
- **ElevenLabs** for sound effects
- **Suno** for the soundtrack
### BCS Radio
Source: https://www.allknivesnobagel.com/projects/bcs-radio.html
Date: 2026-03-29
Description: A pirate radio station from the Golden Triangle sector β AI-generated music, DJ breaks, and a cyberpunk visualizer.
Bonebox No Kips is a pirate radio station broadcasting from somewhere the Fifth Bureau can't reach. Twelve AI-generated tracks, two AI-voiced DJs, and a cyberpunk visualizer β all built as a companion piece to our Stars Without Number campaign.
## What It Is
BCS Radio is an in-universe pirate radio station from the Golden Triangle, our long-running Stars Without Number campaign. The station is hosted by two DJs β **Zafir** (loud, excitable, slang-heavy) and **Kendi** (deadpan, one-word-response energy) β who riff on campaign events between tracks.
Every track ties to something that actually happened at the table. "Catfish Wrangler" is about the time the crew went grave-robbing on Celeva. "Release the Tox-Men" is about when they found sealed monsters underground and gave them the passwords. "Eighty-Eight Cuts" is the captain's theme β a man carrying forty thousand ghosts in his nervous system who uses an ancient god-artifact to check ore futures.
## The Music
Twelve tracks generated with [Suno](https://suno.com), each in a different genre blending Middle Eastern, Southeast Asian, and electronic music:
| # | Track | Style |
|---|-------|-------|
| 1 | Catfish Wrangler (Baha's Theme) | Lo-fi reggaeton, gamelan |
| 2 | Not Truly Occult | Dark Arabic trap, 808s |
| 3 | Seven Stress | Arabic deep house, ney flute |
| 4 | Night Heart Hustle | Afro-Arabic house, oud groove |
| 5 | Release the Tox-Men | Middle Eastern EDM, festival |
| 6 | Souk Runner | Middle Eastern DnB, breakbeat |
| 7 | Seven Stress (Shanty Cut) | Space shanty, crew vocals |
| 8 | Terminator Troll (Smuggle the Truck) | Industrial bass, cyberpunk |
| 9 | Eighty-Eight Cuts (Blackwell's Theme) | Dark French electro, grime, erhu |
| 10 | Chrome and Acid (Ryze's Theme) | Industrial Arabic house, hard synth |
| 11 | Thirteen Reasons (Zheo's Theme) | Lo-fi Arabic minimal, dark comedy |
| 12 | Wild Bunch (Garrick's Theme) | Industrial military hip-hop, Arabic scales |
## The DJ Breaks
Between tracks, Zafir and Kendi banter about campaign events, deliver fake ads for in-universe corporations (Glory Pharmaceuticals, the Counters Guild), and drop station IDs. All voiced with [ElevenLabs](https://elevenlabs.io/) TTS β Zafir in an energetic male voice, Kendi in a flat, laconic female voice.
The full radio session plays as a continuous broadcast: cold open, twelve tracks with DJ breaks between each, and a sign-off. About 45 minutes of content.
## How It Works
- **Next.js 15** static export β no server needed, plays entirely in the browser
- **Web Audio API** for the visualizer β frequency analysis drives the animated bars
- **Deep-linking** β share a link to a specific track and it starts playing from there
- **Responsive** β works on mobile, adjusts layout for smaller screens
The whole thing was built in a few Claude Code sessions: one for the music generation prompts, one for the ElevenLabs DJ recordings, and one for the web app itself.
### Evil (The) Gathering
Source: https://www.allknivesnobagel.com/projects/council-decides.html
Date: 2025-09-30
Description: A deck builder with roguelike and pack opening elements where you plot evil schemes for the Council members.
A deck builder with roguelike and pack opening elements. As an intern in the DespicableWe Inc., you are tasked with plotting evil schemes for the Council members. For this, you'll have a wide range of card types at your disposal. Each card has an Evil Value (called "EP" for "Evil Points") as well as a unique card effect. In order to assemble the ultimate plan, you'll have to combine your cards in clever ways to activate combos that can give EXORBITANT amounts of points. But beware: every 5 turns a quota has to be met in order to progress. If you fail, you're out. But if you surpass your given quota, a nice bonus waits for you, which you can spend for card packs, containing more β maybe even Legendary β new cards for your deck.
Can you master the art of evilness and become the ultimate criminal?
## Play the Game
Experience the game directly in your browser:
## Game Features
- **Deck Building** - Collect and manage cards with unique effects
- **Roguelike Elements** - Progressive difficulty with strategic decision-making
- **Pack Opening** - Unlock new cards through pack purchases
- **Combo System** - Chain card effects for massive point multipliers
- **Quota System** - Meet targets every 5 turns or face elimination
- **Legendary Cards** - Rare and powerful cards to discover
## Technical Features
- Component-based architecture with TypeScript
- Responsive design for all screen sizes
- Advanced card synergy system with visual feedback
- Pack opening animations and cutscenes
- Modern UI with comic book aesthetic
- Mobile-optimized touch interface
## Tech Stack
- **TypeScript** - Type-safe development
- **Vite** - Fast build tool and dev server
- **CSS Custom Properties** - Consistent theming
- **Component Architecture** - Modular, maintainable code
- **Responsive Grid/Flexbox** - Adaptive layouts
- **Vitest** - Testing framework
## Game Jam Entry
This project was created during the "Doppelter Questpresso" Game Jam by the InfoFSR Leipzig under the topic "The Council decides". The jam focuses on collaborative game development with workshops and a relaxed atmosphere for learning and creating games.
## Credits
**Development Team:**
- **Jonas Heinke** β Programming and Systems-Design
- **Leon Noel Micheel** β Writing, Card- and Systems-Design
**Additional Credits:**
- **Emilia Weigelt** β Character-Design and Art
- **Marjan Blan** (unsplash.com) β Crumpled paper graphic for the Itch.io page
## Development Tools
The game includes several powerful development and analysis tools:
### Card Synergy Visualizer
An interactive node graph that visualizes the complex relationships between cards. Built with D3.js, it shows:
- **Interactive Network Graph** - Visual representation of card synergies and effects
- **Filtering System** - Filter by color, type, and tags to explore specific card relationships
- **Card Details** - Click any card to see detailed information and its connections
- **Real-time Analysis** - Shows how many cards each card buffs and receives buffs from
### Developer Tools Panel
Built-in debugging tools accessible in-game (press backtick ` to toggle):
- **Currency Manipulation** - Add/remove currency for testing
- **Deck Management** - Add/remove cards, modify deck composition
- **Game State Control** - Skip turns, modify quotas, trigger events
- **Card Database Browser** - Browse all cards with search and filtering
### Static Card Testing
- **Card Data Export** - Automated script to export card database for analysis
- **Synergy Analysis** - Comprehensive testing of card interactions and effects
- **Balance Testing** - Tools to verify card power levels and game balance
#### Interactive Tools
- **[Card Synergy Visualizer](/assets/games/council-decides/card-synergy-visualizer.html)** - Interactive D3.js node graph showing card relationships and synergies
- **[Card Synergy Report](/assets/games/council-decides/card-synergy-report.html)** - Comprehensive analysis of card balance, connectivity, and design recommendations
## Special Features
- **Softy Mode**: If you aren't evil enough, you can enter softy mode by hitting `SHIFT+CTRL+D`
- **Comic Book Aesthetic**: Inspired by Silver Age comic book styling
### Endstation
Source: https://www.allknivesnobagel.com/projects/endstation.html
Date: 2024-11-13
Description: A sci-fantasy story game about managing a guild of explorers at the edge of the known universe, blending comfort with strange beauty.
Endstation is set on a distant, mysterious planet, home to outcasts and explorers. From the solitary stronghold of civilization, known as the Inside, guilds of treasure hunters and salvagers embark into the wild, uncanny Outside. Guide a guild of explorers stranded at the end of the known universe as they seek forgotten secrets in ancient ruins and make connections with Endstationβs residents.
Endstation features:
- **Hangout Game**: Build relationships with a quirky cast, uncovering secrets and ambitions.
- **Cozy Strangeness**: Navigate a world where remnants of past civilizations meet thriving life.
- **Jovial Distress**: Balance exploration and decision-making against the relentless march of time.
Encounter characters like Tseya, the enigmatic mystic, and Uriah, the pragmatic Guild Creditor, as you restore outposts, explore hidden temples, and craft a guild that endures. Each choice shapes the journey, leaving a lasting mark on the world and allies. Experience a narrative of change, continuity, and the remnants of the Precursors' lost civilization.
### For Want Of Fuel
Source: https://www.allknivesnobagel.com/projects/for-want-of-fuel.html
Date: 2025-06-06
Description: A streamlined set of playtest rules for running Stars Without Number compatible mech combat scenes, focusing on quick play and minimal tracking.
A streamlined set of playtest rules for running Stars Without Number compatible mech combat scenes.
## About the Project
For Want Of Fuel is a focused set of rules for running mech combat in your Stars Without Number game. The system emphasizes quick play and minimal tracking requirements while maintaining full compatibility with the Stars Without Number ruleset.
### Key Features
- **Streamlined Combat**: One primary number per defensive category
- **Minimal Tracking**: Focus on gameplay over bookkeeping
- **Full SWN Compatibility**: Works seamlessly with existing Stars Without Number rules
- **Interactive Documentation**: Built-in tag system for quick reference
- **Clear Design**: All information available at point of use
## Sneak Peek
Here's a taste of what you'll find in the complete rules:
### Core Combat Loop
- **Attack Roll**: d20 + hit bonus vs. target's AC
- **Damage Roll**: Roll weapon dice, subtract target's DR (if applicable)
- **Movement**: Frames move in meters (m) per round
- **Actions**: Each frame gets 1 Main Action, 1 Move Action and 1 Reaction per round
### Damage Types (PEX Model)
- **Physical (P)**: Standard physical damage (bullets, missiles, etc.)
- **Energy (E)**: Laser, plasma, and other energy weapons
- **Exotic (X)**: Special damage types with unique properties
### Key Features
- **Streamlined Combat**: One primary number per defensive category
- **Minimal Tracking**: Focus on gameplay over bookkeeping
- **Full SWN Compatibility**: Works seamlessly with existing Stars Without Number rules
- **Interactive Documentation**: Built-in tag system for quick reference
## Current Status
This is a playtest document in active development (Version 0.4). The rules are being tested and refined based on actual play experience.
### Feedback Welcome
If you've played with these rules, I'd love to hear your feedback:
- What worked well?
- What could be improved?
- Any edge cases you encountered?
Feel free to reach out through the contact links on this site.
### The Golden Triangle
Source: https://www.allknivesnobagel.com/projects/golden-triangle.html
Date: 2024-11-14
Description: A Stars Without Number campaign setting for Trade, Privateering and a New Age of Sail
βΌ
### HIGH WATER
Source: https://www.allknivesnobagel.com/projects/high-water.html
Date: 2026-10-05
Description: A physics brawler where the building is the other enemy. Built in Godot in one jam week with a studio of about twenty named AI agents; a talk and an archive of the decision boards document how.
A Streets of Rage brawler with Smash physics, where the building is the other enemy. Made for the Vierfacher Questpresso jam (theme: Destroy the System!), October 2026.
**[Play it on itch.io](https://limeminister.itch.io/high-water)** Β· **[The talk](/high-water/talk/)** Β· **[The decision boards](/high-water/boards/)**
I made a game. Well, me plus a bunch of AI agents. You can do really good, high quality work now. Especially if you know what you are doing.
## The Game
A game about being a powerful cyberpunk operator wrecking people and everything else in the way. You play as TIDEMARK, a cybernetically enhanced murder machine fighting through a habitat tower against the gang PETTY VERMIN.
I wanted to dig into a simple brawler mechanic and make it feel good. And then, since I like physics, see what you can do in terms of building on that basic good game feel by expanding everything around it with physics simulation. So there is lots of throwing, bouncing, breaking, destruction and other environmental interactions.
Play around and have fun wrecking up combos.
## Making It
As the frontier models progress in capabilities I am seeing how much you can integrate them into the game building process.
Opus 5.5 released recently and it's a good model, sir.[[Anthropic, ["Introducing Claude Opus 5.5"](https://www.anthropic.com/claude-opus-5-5), 22 Sep 2026. The motion-design reputation comes from users: [Donald Jewkes' one-prompt music video](https://x.com/donaldjewkes/status/2102801469976248500) (full prompt shared, 12 hours of work) and [Pleometric's PC-98 remake of it](https://x.com/pleometric/status/2103082510607610023).]] But it was seemingly a step change in motion design, graphics design and using Blender and tools for visual and motion video. I figured that is probably going to translate to games, but wanted to have my own benchmark. Thus HIGH WATER.
HIGH WATER was built over one week, during evenings and a weekend, running a "studio" of about 20 named agents: Opus 5.5 subagents plus two Codex agents on GPT-6 Astra, one reviewing every batch of work and one on Web performance.
To coordinate all of that I had one main conversation with an Opus 5.5 instance that coordinated communication with all other agents. I talked through the design, gave feedback from playtesting, their takes and ideas, and we used dozens of HTML artifacts to communicate the details. Using HTML artifacts as a means of relaying and trying out information and context is still incredibly useful, as it is clearer and captures more bandwidth and multimedia info than just text or chat.[[Thariq Shihipar, ["Using Claude Code: The unreasonable effectiveness of HTML"](https://claude.com/blog/using-claude-code-the-unreasonable-effectiveness-of-html), May 2026. [The decision boards](/high-water/boards/) are what that looked like here.]]
From previous experiments I knew a failure mode of having a bunch of subagents is coordinating them, understanding what everyone is doing and keeping on track. Especially over multiple days of work, where there are context resets for both the agents and me.
I was inspired by @repligate and recent Anthropic research that reported that giving agents persistent identities helps them tell each other apart, check each other's work and coordinate.[[Anthropic's [report on measuring the pace of AI development](https://www.anthropic.com/institute/measuring-pace-of-ai-development), Sep 2026, appendix "Oversight of agents".]][[Janus (@repligate), [20 Sep 2026](https://x.com/repligate/status/2101554297469337687), on why long-horizon work favours persistent identities.]] I figured let's test it. Every agent was encouraged to pick a name for themselves and assume a specific role and responsibility. This worked way better than I thought. Maybe that's simply because Opus 5.5 is a great model, but on a basic level of understanding what's happening in the process, and what is being generated and input by whom, clear names made tracking what's happening easier for me. Which makes it easier for me to stay locked in and steer the process.
Also all assets, music, code and level design in this project were made by agents. My only role was directing, communicating what works and doesn't and what ideas to explore.
The voxel assets were written as code: Python scripts that box, carve and paint voxels and export them to .vox. The music is 4-operator FM synthesis in the style of the YM2151 arcade chip, scored as MML text and rendered by a Python synthesiser adapted from my OPNA engine for Down Bad in Babel. The sound effects and the voice lines are synthesised with numpy and scipy, no samples. The UI is done by agents in code. The intro video is Blender 5.0 renders of the code-built hero plus captures of the game itself, cut together with ffmpeg.[[Midjourney character studies were reference only. Nothing from an image, audio or voice model is in the game.]]
So this entire project was natively created by Claudes and GPTs using tools. Pretty cool.
Now, in the end the jam banned AI-generated assets and we got disqualified after chatting with the organisers. But I expected that, and it is totally fair.
So check out the cool stuff the others made, I do not want to take their limelight: [Vierfacher Questpresso on itch.io](https://itch.io/jam/vierfacher-questpresso).
## Further Reading and References
- **[The talk](/high-water/talk/):** a slide deck for when I want to speak on this. The three theses: engineering and developing with coding agents is a lot like management and you have to think about how to build efficient organizations; use artifacts to communicate; Game Design Documents and Guiding Light text are important to focus everyone. Plus review, what went wrong, and a dense Godot appendix.
- **[The decision boards](/high-water/boards/):** examples of the HTML artifacts used during the process.
- Thariq Shihipar, **["Using Claude Code: The unreasonable effectiveness of HTML"](https://claude.com/blog/using-claude-code-the-unreasonable-effectiveness-of-html)**, Claude blog, May 2026 ([first posted on X](https://x.com/trq212/status/2052809885763747935)). Once agents write long plans and reports, HTML beats Markdown: tables, diagrams, interactive controls, shareable as a link.
- Anthropic, **["Measurements for understanding the pace of AI development inside frontier labs"](https://www.anthropic.com/institute/measuring-pace-of-ai-development)**, c. 17 Sep 2026. The appendix "Oversight of agents" describes the internal scaffold: each agent has an individual identity that survives model upgrades, and agents talk on an open board where every message is tied to its author. The stated reasons: agents treat each other's output as claims to check, make fewer correlated mistakes, and stay auditable.
- Janus (@repligate), **[20 Sep 2026](https://x.com/repligate/status/2101554297469337687)**, reads that post as evidence that long-horizon work favours persistent-identity agents over task-scoped ones. Earlier ([1](https://x.com/repligate/status/2017711198972875142), [2](https://x.com/repligate/status/2017712297863746005), Feb 2026) Janus argued that Claude Code's "subagent" framing works worse than peers talking through a message system.
- Anthropic, **["Introducing Claude Opus 5.5"](https://www.anthropic.com/claude-opus-5-5)**, 22 Sep 2026. The announcement only mentions a game-building test where it scored highest on graphics and polish; the motion-design reputation comes from users. [Donald Jewkes](https://x.com/donaldjewkes/status/2102801469976248500) (23 Sep) made a full music video from one spoken prompt, which Claude worked on for 12 hours, and shared the prompt; [Pleometric](https://x.com/pleometric/status/2103082510607610023) (24 Sep) followed the same workflow "to really push Opus 5.5" into a PC-98 restyle. [Alex Albert](https://x.com/alexalbert__/status/2102458348511879448) showed Blender claymation from a single prompt.
### Isometric Game Engine
Source: https://www.allknivesnobagel.com/projects/isometric-game-engine.html
Date: 2025-09-22
Description: A TypeScript-based isometric game engine with centralized configuration management and comprehensive development tools.
A professional TypeScript-based isometric game engine designed for WordPress integration, featuring centralized configuration management and comprehensive development tools.
See it in Action here: [lust-auf-zahnarzt.de/ecke-tour/](https://lust-auf-zahnarzt.de/ecke-tour/) or check out the [Demo](/assets/iso-engine/).
## About the Project
The Isometric Game Engine is a complete rendering system built with modern web technologies. It provides a robust foundation for creating interactive isometric experiences with proper depth sorting, resource management, and scene transitions.
### Key Features
- **Centralized Configuration System** - Single sources of truth for all settings via `MasterGameConfig` and `SceneRegistry`
- **TypeScript Architecture** - Full type safety and modern development experience
- **Professional Development Tools** - Scene switcher, dev watermark, and debug utilities
- **Comprehensive Audio System** - Background music and interactive sound effects (SFX)
- **WordPress Integration** - Seamless plugin integration with asset path resolution
- **Event-Driven Scripting** - 12+ action types for interactive elements
- **Advanced Resource Management** - Image preloading, caching, and fallback support
## Live Demo
Experience the engine in action with my interactive workspace:
## Technical Highlights
### Architecture
- **Single Source of Truth Configuration** - All settings managed centrally in `MasterGameConfig.ts` and `SceneRegistry.ts`
- **Environment-Specific Builds** - Standalone, WordPress, and development configurations
- **Zero Production Impact** - Development tools completely excluded from production builds
- **Build-Time Scene Management** - Enable/disable scenes for specific builds
### Dev Tools
- **Scene Switcher** - Press `Ctrl+Shift+S` to switch between scenes
- **Dev Watermark** - Visual indicator showing development mode
- **Enhanced Console Logging** - Detailed debugging output
- **Scene Validation** - Automatic integrity checking
### WordPress Integration
Seamless integration with WordPress through:
- Plugin architecture with proper asset path resolution
- Configuration via `window.ISO_Game_Config`
- Media library integration for assets
- Responsive design for different screen sizes
## Usage Examples
### Basic Implementation
```typescript
import { Game } from './src/core/Game';
import { MasterGameConfig } from './src/config/MasterGameConfig';
// Use pre-configured settings (recommended)
const config = MasterGameConfig.getStandaloneConfig({
debug: true
});
const container = document.getElementById('game-container');
const game = new Game(config, container);
await game.initialize();
game.start();
```
### Scene Configuration
```json
{
"name": "workspace_scene",
"width": 800,
"height": 600,
"tileSize": 32,
"background": "workspace_bg.png",
"music": "ambient_workspace.mp3",
"elements": [
{
"id": "interactive-desk",
"type": "object",
"x": 10,
"y": 5,
"interactable": true,
"properties": {
"sprite": "desk.png",
"dialog": "A cluttered workspace desk"
},
"sfx": {
"click": "desk_interaction.wav"
}
}
]
}
```
## Current Status
- β Complete TypeScript implementation
- β WordPress plugin integration
- β Comprehensive audio system
- β Development tools and debugging
- β Scene management and transitions
- β Resource management and caching
- β Event-driven scripting system
### Future Enhancements
- Enhanced mobile touch controls
- Additional scene transition effects
- Extended scripting action library
- Performance optimizations for large scenes
## Repository
The complete source code, documentation, and examples are available on GitHub:
[View on GitHub](https://github.com/babytoad/isometric-game-engine)
### Mondnacht
Source: https://www.allknivesnobagel.com/projects/mondnacht.html
Date: 2024-12-20
Description: An interactive narrative game exploring a poetic journey to the stars, created in 10 hours for the Naranauten Game Jam.
Mondnacht is an interactive narrative experience that weaves together classic poetry and science fiction. Created in just 10 hours for the first Naranauten Game Jam, this experimental piece earned first place by transforming Joseph von Eichendorff's romantic poem into a journey through the cosmos.
## About the Project
Created in collaboration with Lukas Krieg and Leon Noel Micheel, _Mondnacht_ explores themes of romanticism and space exploration through an interactive narrative. The game transforms a classical German poem into a contemporary sci-fi experience, challenging players to discover new meanings in familiar verses.
### Features
- Interactive retelling of Eichendorff's "Mondnacht"
- Blend of classical poetry and science fiction elements
- Atmospheric text-based gameplay
## Development
This experimental piece was developed during the first Naranauten Game Jam in approximately 10 hours. Using Twine as our storytelling platform, we focused on creating an experience that would honor both the source material and our science fiction vision.
## Recognition
First Place Winner - Naranauten Game Jam
## Collaborators
- **Lukas Krieg**
- **Leon Noell Michel**
### Obsidian Archive
Source: https://www.allknivesnobagel.com/projects/obsidian-archive.html
Date: 2025-12-29
Description: A Chrome extension to archive web pages to your Obsidian vault with metadata extraction and markdown conversion.
Obsidian Archive is a Chrome extension that archives web pages to your Obsidian vault with rich metadata for search and citation. One click saves any article, tweet, or page as a well-formatted markdown file.
## Features
- **One-click archiving** - Click the extension, select a category, archive
- **Smart metadata extraction** - Automatically captures title, author, publication date, source
- **HTML to Markdown conversion** - Preserves headers, links, blockquotes, lists, images
- **Twitter/X support** - Special extraction for clean tweet archives with quoted tweets
- **Citation-ready** - Generates both markdown links and academic-style citations
- **Category organization** - Sort into Articles, Videos, Tweets, Papers, Recipes, Reference, or Misc
- **Dataview-friendly** - Frontmatter designed for Obsidian queries
## How It Works
The extension uses a Chrome native messaging host to write directly to your vault:
1. **Content script** extracts page content using Mozilla's Readability library
2. **Popup** lets you edit metadata and select category
3. **Native host** writes the markdown file to your vault
Each archived page gets frontmatter like:
```yaml
---
title: "Article Title"
url: https://example.com/article
author: John Smith
source: example.com
date_published: 2025-01-15
date_archived: 2025-12-29
category: Articles
tags: []
summary: ""
citation_md: "[Article Title](https://example.com/article)"
citation_full: "Smith, John. \"Article Title\". example.com, 15 Jan 2025."
status: raw
---
```
## Claude Code Post-Processing
The real power comes from combining the archive with Claude Code. The extension deliberately captures content without AI processing to save API costs - you run summarization manually when you want it.
### The `/summarize-archive` Skill
A Claude Code skill that batch-processes your archived files:
1. **Finds unprocessed files** - Looks for `status: raw` in frontmatter
2. **Reads and analyzes** - Understands the content in context
3. **Generates summaries** - 2-3 sentence abstracts capturing key points
4. **Adds tags** - 3-5 relevant tags for discoverability
5. **Updates status** - Changes to `summarized` so it won't reprocess
Run it from your Archives folder:
```bash
cd Archives
claude
/summarize-archive
```
### Other Claude Code Workflows
Since everything is markdown with structured frontmatter, you can ask Claude Code to:
- **Find related articles**: "What have I saved about childhood development?"
- **Generate citations**: "Give me citations for my sources on AI regulation"
- **Create reading lists**: "What's in my archive that I haven't reviewed yet?"
- **Cross-reference**: "Do any of my archived articles cite each other?"
The `status` field (`raw` β `summarized` β `reviewed`) lets you track your reading workflow.
## Installation
Requires Node.js on Windows and Chrome.
1. Download the extension files
2. Run `install.bat` to register the native messaging host
3. Load the extension in Chrome (`chrome://extensions` β Load unpacked)
4. Update the native host `manifest.json` with your extension ID
## Why I Built This
Inspired by [a tweet from Andy Masley](https://x.com/AndyMasley/status/2005492117674598404) about using Claude Code to build a "personal panopticon" of everything you read. I wanted easy archival with proper metadata for later citation in blog posts and talks.
The whole thing - extension, native host, summarization skill - was built in a single Claude Code session.
### RPG Notetaker Bench
Source: https://www.allknivesnobagel.com/projects/rpg-notetaker-bench/
Date: 2025-01-11
Description: Comparing AI models' ability to process and organize RPG session transcripts
A comprehensive comparison of how different AI models process and organize tabletop RPG session transcripts. This benchmark analyzes a 2.5-hour D&D session transcript processed by six different AI models, comparing their approaches to note-taking, organization, and information extraction.
**Source Project:** This benchmark is the result of experiments conducted as part of the [AudioToLogs project](https://github.com/BabyToad/AudioToLogs) - a web-based audio transcription application that converts RPG session recordings into well-formatted markdown logs using OpenAI's Whisper API and various LLM models for post-processing.
## Methodology
This benchmark was created as part of developing AudioToLogs' **modular LLM pipeline** for generating GM notes from session transcripts. The system uses a three-stage approach:
1. **Stage 1 (Summarization):** Chunks the transcript and generates bullet points using mid-tier models
2. **Stage 2 (Reconciliation):** Merges summaries using more capable models with full context
3. **Stage 3 (Polishing):** Final prose formatting using high-tier models
To evaluate different model combinations and approaches, the same 2.5-hour transcript was processed using six different AI models with varying prompts and processing strategies. Each model was given the task of converting the raw transcript into organized session notes, allowing for direct comparison of their approaches to note-taking, organization, and information extraction.
**Technical Details:**
- **Original Source:** 115MB MP3 recording processed through OpenAI Whisper API
- **Transcript Size:** 116KB, 5,522 lines of raw transcription
- **Processing:** Each model was given the complete transcript and asked to produce organized notes
- **Cost Tracking:** Each processing run included cost estimation and token usage analysis
## About AudioToLogs
AudioToLogs is a comprehensive web application designed to streamline the process of converting RPG session recordings into useful campaign notes. The project features:
- **Audio Processing:** Drag-and-drop interface supporting multiple audio formats (MP3, WAV, M4A, WEBM)
- **Transcription:** High-quality transcription using OpenAI's Whisper API with automatic chunking for large files
- **AI-Powered Note Generation:** Modular LLM pipeline that processes transcripts into organized GM notes
- **Cost Management:** Built-in budget controls and cost tracking for API usage
- **Campaign Management:** Support for session metadata, participant tracking, and campaign organization
The modular LLM pipeline was specifically designed to balance cost efficiency with quality output, using different model tiers for different processing stages. This benchmark represents the experimental phase of that development, testing various model combinations to optimize the note-generation process.
**Repository:** [github.com/BabyToad/AudioToLogs](https://github.com/BabyToad/AudioToLogs)
## The Session: "Dicing With Death #225"
**Session Details:**
- **Date:** June 26, 2025
- **Duration:** 2h 37m
- **Participants:** Neal (GM), Ryan (Phoenix the Warlock)
- **System:** D&D
- **Campaign:** Dragon politics and intrigue in Arcadia
## AI Model Comparison
Each model was tasked with converting the raw transcript into organized session notes as part of the AudioToLogs pipeline development. These results represent experimental runs using different model configurations to evaluate their effectiveness for RPG session note generation. Click through the different versions to see how each AI approached the task:
Original Transcript
Size: 116KB, 5,522 lines
Format: Raw audio transcript with timestamps
The unprocessed transcript directly from the recording, including all the natural speech patterns, interruptions, and cross-talk that occur during live play.
GPT-4.1 Processing
Size: 10KB, 205 lines
Approach: Comprehensive scene-by-scene breakdown with detailed NPC ledgers
Creates highly structured notes with scene summaries, character tracking, and forward-looking session preparation notes.
GPT-4o Processing
Size: 3.1KB, 72 lines
Approach: Concise summary format
Focuses on the essential plot points and key moments, creating a streamlined overview of the session.
GPT-4o Mini Processing
Size: 4.2KB, 88 lines
Approach: Balanced summary with key highlights
Provides a middle-ground approach between comprehensive detail and concise summarization.
O1-Mini Processing
Size: 7.5KB, 203 lines
Approach: Analytical breakdown with strategic insights
Emphasizes the tactical and strategic elements of the session, with detailed combat analysis.
O3-Mini Processing
Size: 12KB, 147 lines
Approach: Formatted sections with processing metadata
Creates visually distinct sections with clear headers and includes processing statistics.
O4-Mini Processing
Size: 6.4KB, 124 lines
Approach: Narrative-focused organization
Emphasizes story flow and character development over mechanical details.
### Schneekugel
Source: https://www.allknivesnobagel.com/projects/schneekugel.html
Date: 2025-12-13
Description: A fractal snow globe puzzle game. Navigate nested worlds by finding the correct snowflake gate and reach depth 100 to win.
Schneekugel is a fractal snow globe puzzle game where you navigate through nested worlds by finding the correct snowflake gate. Each snowflake contains another world inside. Reach depth 100 to win.
## How to Play
**Controls:**
- **Arrow Keys**: Move
- **Space**: Start game / Confirm
- **Escape**: Zoom out to parent world
**Goal:** Find the correct snowflake gate to descend deeper into the fractal worlds. The correct snowflake matches the boundary's fractal pattern (Koch snowflake iterations) and pulses in sync with the music. Wrong gates send you back 1-5 levels.
## Mechanics
As you go deeper, the challenge increases:
- **Depth 0-9:** Static snowflakes, quick reveal (2-3 seconds)
- **Depth 10-19:** Snowflakes drift and bounce off walls
- **Depth 20+:** Ice shards cross the arena, knockback on contact
- **Depth 30+:** More shards, faster movement
The correct snowflake is hidden at first. Wait and watch - it gradually reveals itself by pulsing brighter and in sync with the boundary/music. But waiting is risky when shards are flying.
## Features
- Koch snowflake fractal generation (boundaries and gates)
- Nested world navigation with zoom in/out transitions
- 6 color palettes cycling with depth
- Beat-synced pulse system (120 BPM)
- Progressive reveal mechanic
- Wandering snowflakes and ice shard hazards
- Cosmic shader background
## Development
Built with Godot 4.5.1 and GDScript. This is a work-in-progress game jam project.
**Status:** Playable but unfinished. Missing sound effects, victory screen, and additional enemy types planned for later depths.
### Six Springs Three Rivers
Source: https://www.allknivesnobagel.com/projects/six-springs.html
Date: 2026-11-03
Description: A saint in a painted wayside shrine. She watches your pointer, rings the bell, takes the bowl and drops it if you poke her, and her words appear on the wall in water. Work in progress, running in the browser on a local 2D character system called Dalang.
A saint in a painted wayside shrine. Move your pointer and she watches it. Ring the bell, offer the bowl, feed the frog, poke her. Her words appear on the wall.
**[Enter the shrine](/six-springs/)** Β· **[How it was made](/pose-to-shrine/)**. It has sound; there is a mute button, and it runs on a phone, though best on a desktop.
*Work in progress. The mix, the voice takes and the hands are still being worked on.*
## What it is
Six Springs Three Rivers is a character from my Throne and Wheel campaign. She is drawn as a vector puppet and animated by hand-keyed poses: every frame is a pose vector turned into a drawing, with no video model in the loop. The shrine is one painting, split by depth into a small three.js stage, so her shadow, the bell, the bowl and the frog share one light with the painted room.
Everything reacts to what actually happened. The bowl clanks as hard as it really landed, the bell strikes at the real turning points of its swing, the music stops playing when she speaks and damps its strings when the bowl falls. The animation system underneath is called Dalang, after the puppet master in wayang.
It started from [a tweet by Araminta about a rigged-puppet animation workflow](https://x.com/araminta_k/status/2117267137614205029), and grew from there.
## How it was made
Directed by me, built by Claude Opus 5.5 and GPT-6 Astra working in separate lanes and reviewing each other's work. The art is AI-generated: the painting and her parts sheets came from image models, the water loops are moved through the painting's own brushwork. Her voice is ElevenLabs (the Aki voice), reading lines written for her. Ambience and sound effects are ElevenLabs Sound Effects. The zither piece is original, played live from CC0 samples (VCSL, VSCO 2 CE). Fonts are Yatra One and Inknut Antiqua (OFL), and the stage runs on three.js (MIT).
This page's text was drafted by Claude and has not yet been rewritten by Jonas.
### SRD Framework
Source: https://www.allknivesnobagel.com/projects/srd-framework.html
Date: 2026-03-29
Description: A multi-system tabletop RPG reference built for humans in a browser and agents over HTTP: searchable SRDs, price ledgers, spell databases and seeded random tables.
One reference site for the systems my tables play: Stars Without Number (The Golden Triangle), Worlds Without Number, AD&D 2nd Edition and my own Throne and Wheel rules. Searchable, static, and deliberately readable by AI agents as well as people.
## What it is
Rules for a campaign end up scattered across rulebooks, house-rule documents and half-remembered rulings. The SRD Framework puts each system in one place as clean markdown, rendered with [Astro](https://astro.build/) and searched client-side with [Pagefind](https://pagefind.app/). No server is needed to read a rule.
Beyond the text there are tools: price ledgers for OSE and Throne and Wheel, a spell database, treasure and random-table generators, and system maps for the Golden Triangle. Anything random takes a seed and reports it, so a result can be cited and re-rolled.
## Built for agents too
The part I care most about is that the site is a first-class citizen for language models, not an afterthought:
- Every content page has a markdown sibling. Append `.md` to any page URL, or send `Accept: text/markdown`, and you get the source instead of the HTML at roughly a tenth of the tokens.
- `/llms.txt` indexes the systems, tools, API and conventions; `/llms-full.txt` carries the public systems in one file.
- The random-table API is described in `/openapi.json` and answers 4xx errors with instructions for what to do next.
- Gated systems serve a login page that explains how an agent authenticates, and a manifest whose links already carry the caller's token, for harnesses that can follow links but not build URLs.
## Ask the Archives, retired
The first version of this project was an AD&D 2E SRD with "Ask the Archives", a tool-using Claude agent that answered rules questions by searching the books rather than reciting training data. It worked, and it taught me how to make an AI answer verifiable. It was removed in June 2026: the cost per question was real, and once the site itself was agent-readable, any model with a fetch tool could do the same lookup without a bespoke endpoint. The write-up survives in the [blog post](/blog/ask-the-archives/).
## Technical Details
- **Astro 5** static site on Vercel, edge middleware for auth and content negotiation
- **Pagefind** for client-side full-text search
- Content synced from my Obsidian vault; wiki-links resolved to site paths at sync time
- Seeded random tables and price ledgers as JSON, served both to pages and to the API
- Licensed material (WWN, AD&D) is password-gated for friends; the Golden Triangle system is public
### SWN Golden Triangle Character Sheet
Source: https://www.allknivesnobagel.com/projects/swn-character-sheet.html
Date: 2025-12-29
Description: A custom Roll20 character sheet for Stars Without Number with corporate dystopia aesthetics and faction management.
A heavily customized Roll20 character sheet for Stars Without Number, designed for our Golden Triangle campaign. Features a diegetic "corporate document" aesthetic inspired by ALIENS and Blade Runner, plus a custom Faction management tab.
## Visual Design: Hylix Ventross Corporation
The sheet reimagines character management as corporate personnel files from the in-universe Hylix Ventross Corporation. Key design elements:
- **Header**: "HYLIX VENTROSS CORPORATION / Personnel Management System v3.0"
- **Color Palette**: Amber terminal glow, rust accents, cream paper, teal highlights
- **Typography**: Monospace fonts for data fields, condensed sans-serif for headers
- **Aesthetic**: Worn corporate dystopia meets Nusantaran-Arabic geometric patterns

## Custom Features
### Faction Management Tab
A complete faction tracking system for player-run organizations:
- **Overview**: Faction name, base of operations, treasury
- **Economy**: Auto-calculated income/upkeep/net from turf and assets
- **Heat Tracker**: 5 customizable regions with color-coded danger levels (green/yellow/orange/red)
- **Turf**: Repeating section for territory (name, region, income, upkeep, notes)
- **Assets**: Repeating section for equipment/vehicles/property
- **People**: NPC tracking with BitD-style magnitude scale and OSE morale loyalty

### Stress & Panic System
Mothership RPG-inspired stress mechanics:
- **Stress/Max Display**: Compact tracker in Resources section
- **Visual Warnings**: Input fields change color as stress approaches max
- **Panic Roll**: Click "Stress" label to roll 2d10 + stress - max
- **Roll Template**: Color-coded results from Laser Focus (good) to Heart Attack (critical)
## Technical Details
**Stack**: Pug (HTML templating), SCSS, TypeScript for sheet workers
**Key Patterns**:
- CSS attribute selectors for value-based styling (heat colors, stress warnings)
- Hidden inputs + sibling selectors for toggle states
- Repeating sections with auto-calculation via sheet workers
**Roll20 Compatibility Notes**:
- No `@import` for external fonts (use web-safe fonts only)
- No Unicode in CSS `content:` properties (use ASCII equivalents)
- Expanded CSS format for reliable pasting (compressed single-line truncates)
## Links
- [GitHub Repository](https://github.com/BabyToad/swn-golden-triangle-sheet)
- [Original SWN Sheet](https://github.com/roll20/roll20-character-sheets/tree/master/Stars_Without_Number_Revised) (base we forked from)
### Tausendkorn
Source: https://www.allknivesnobagel.com/projects/tausendkorn.html
Date: 2026-10-28
Description: Counting grain kernels from one phone photo, for thousand-kernel weight and the seed drill. Built by Team Goldpfanne at the Tausendkorn hackathon.
**Preliminary write-up.** I will replace this with the full post. These are the
results and lessons from the hackathon, as recorded on 29 October 2026.
## A handful of grain
Before sowing, a farm needs the thousand-kernel weight of its seed lot to set
the seed drill. Counting kernels by hand is part of that job. Our starting point
was a random handful from the sack, spread on white A4 paper, and one phone photo.
Count the kernels, add their weight and germination rate, then calculate the
seeding rate and the target weight for the drill's calibration test.
Team Goldpfanne was Leon BΓΆhlau, me, and a fleet of AI agents. We built this at
the Tausendkorn hackathon of the Smart Farming Lab at UniversitΓ€t Leipzig,
27β28 October 2026, in about 30 hours.
## Count a handful at a time
A vision model miscounts a whole image but does much better with a handful of
kernels. The pipeline splits the photo into adaptive tiles, gives each tile a
halo so edge kernels remain whole, and asks the model for one point per kernel.
Seam merging assigns points on tile boundaries to one owner. Low-confidence
tiles get a second look at their numbered marks. If a tile fails, the pipeline
returns no count: a plausible partial result would silently over-seed the field.
The [pipeline explainer](https://goldpfanne-tausendkorn.pages.dev/pipeline/)
walks through the layers with real intermediate images.
## From photo to seed drill
The iPad field app connects to FastAPI on a laptop over Wi-Fi or a hotspot. It
shows the photo, the counted points and spots to check, then takes weight and
germination inputs to calculate thousand-kernel weight and kg/ha. It keeps a
history per lot and exports CSV. There is also a REST API and an MCP server;
paid counts need human approval in the app.
We trained a local YOLO11s as an independent second counter and compared it
offline. It was not part of the field app's measured vision-model pipeline.
The [pitch deck](https://goldpfanne-tausendkorn.pages.dev/pitch/) gives the short
version of the project.
## What we measured
We froze the pipeline before the final measurement. On a holdout of 30 photos
with 170β482 kernels, mean absolute error was 5.9 kernels, or 1.85 %. Those photos
came from the same capture days as training. On six photos from a different day,
with 1,000 kernels each and all five crops represented, MAE was 15.8 kernels,
or 1.58 %.
Counts cost $0.12β0.56 per holdout photo and $0.61β0.79 per different-day test
photo, and took 1β2 minutes. These are measured results on those samples.
Confidence was not calibrated, errors differed by crop, and two visible double
marks in our own iPad photo turned out to straddle tile seams. One durum sample
also left an unresolved question: both counters disagreed with its label, and
we kept scoring against the label.
## Brief others like yourself
One main session coordinated parallel lanes for the app, pitch, API, design,
GPU work and submission. Sol implemented; Astra reviewed every code PR; a human
merged. Cross-model review caught coordinate edge cases, ignored verification
edits, cost-accounting holes and order-dependent seam merging.
The fleet also drifted. Ownership changes did not reach everyone, and two lanes
launched the same implementer in one worktree. The golden rule was to brief
another agent the way you would want to be briefed: goal, why, current state,
decisions, constraints and done criteria. Fixed splits, a frozen pipeline and
recorded traces mattered more than another clever seam rule.
### Workshop-Zuteilungs-Tool
Source: https://www.allknivesnobagel.com/projects/workshop-zuteilungs-tool.html
Date: 2025-10-06
Description: A desktop application for optimal student-to-workshop assignment using mathematical optimization algorithms.
A desktop application for optimal student-to-workshop assignment using mathematical optimization algorithms. Built with Python and featuring a clean MVC architecture. Done for a overworked teacher.
## Download
Ready-to-use executable and example file:
**System Requirements:**
- Windows 10/11
- No additional software required (standalone executable)
## About the Project
The Workshop-Zuteilungs-Tool helps teachers automatically assign students to workshops over multiple days using a mathematical optimization algorithm (Linear Programming) to maximize overall satisfaction while respecting all constraints.
### Key Features
- **Excel Integration**: Import student data and export results
- **Mathematical Optimization**: Linear Programming algorithm for optimal assignments
- **Flexible Parameters**: Customizable optimization settings
- **MVC Architecture**: Clean, maintainable codebase with 86 unit tests
- **Modern UI**: Bootstrap-themed tkinter interface with 6 theme options
- **GDPR Compliant**: All data processing happens locally
## Technical Highlights
### Architecture
- **MVC Pattern**: Clean separation of concerns with Models, Views, and Controllers
- **Service Layer**: Business logic separated into dedicated services
- **Type Safety**: Full type hints and dataclasses throughout
- **Testability**: 86 unit tests with 100% model coverage
- **Dependency Injection**: Services injected as dependencies
### Optimization Algorithm
The core uses **Linear Programming (LP)** with the PuLP library:
- **Decision Variables**: Binary assignments for each student-workshop-day combination
- **Objective Function**: Maximize weighted satisfaction scores
- **Constraints**:
- One workshop per student per day
- Workshop capacity limits
- Optional class grouping requirements
- **Solver**: COIN-OR Branch and Cut (CBC) for guaranteed optimal solutions
### Performance
For typical school scenarios (100 students, 12 workshops, 3 days):
- **Variables**: ~3,600 binary variables
- **Constraints**: ~300 constraint equations
- **Runtime**: Typically < 1 second
- **Solution Quality**: Mathematically optimal
## Usage Workflow
The application guides users through a 5-step wizard:
1. **Data Import**: Excel file with student preferences
2. **Parameters**: Days, capacity, class grouping, weights
3. **Review**: Feasibility analysis and warnings
4. **Optimization**: Automatic calculation with progress tracking
5. **Results**: Statistics, visualizations, and Excel export
## Excel Format
### Input Requirements
| Column | Description | Required |
|--------|-------------|----------|
| vorname | First name | Yes |
| nachname | Last name | Yes |
| klasse | Class | Yes |
| wunsch1-4 | Preferences 1-4 | Yes |
### Output Structure
The exported Excel contains three sheets:
- **Students**: Individual assignments by day
- **Workshops**: Participant lists by workshop
- **Statistics**: Detailed satisfaction metrics
## Technology Stack
- **Python 3.12** with type hints
- **tkinter** + **ttkbootstrap** for modern UI
- **pandas** + **openpyxl** for Excel processing
- **PuLP** for linear programming optimization
- **pytest** for comprehensive testing
## Development Features
### Code Quality
- **Type Safety**: Full type hints throughout
- **Documentation**: Google-style docstrings
- **Testing**: 86 unit tests with coverage reporting
- **Code Style**: PEP 8 compliant with 100-character line limit
### UI Components
Reusable components in `views/components/`:
- **Dropzone**: Drag & drop file selection
- **DataPreview**: Tabular data display
- **ProgressStepper**: Wizard progress indicator
- **InfoPanel**: Collapsible information panels
- **Tooltip**: Contextual help system
### Themes
Six Bootstrap themes available:
- `cosmo` (default): Light, modern
- `darkly`: Dark mode
- `flatly`: Clean & minimal
- `superhero`: Dark with color
- `litera`: High readability
- `cyborg`: Dark tech aesthetic
## Installation & Usage
```bash
# Setup virtual environment
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Run application
python app.py
```
## Testing
```bash
# Run all tests
pytest
# With coverage report
pytest --cov=. --cov-report=html
# Specific test suites
pytest tests/test_models.py
pytest tests/test_services.py
```
## Export as Executable
Create standalone .exe for distribution:
```bash
pip install pyinstaller
pyinstaller --onefile --windowed --name "Workshop-Tool" app.py
```
## Repository
The complete source code, documentation, and examples are available on GitHub:
[View on GitHub](https://github.com/babytoad/clown_orga)
## Current Status
- Complete MVC implementation
- Mathematical optimization engine
- Excel import/export functionality
- Modern UI with multiple themes
- Comprehensive testing suite
- Documentation and architecture guides
- Executable build system
### GDPR Compliance
All data processing happens locally on the user's machine. No cloud processing or data transmission occurs, ensuring full GDPR compliance for educational use.
## For Want of Fuel
### Core Loop & Dice Basics
Source: https://www.allknivesnobagel.com/for-want-of-fuel/01-core-loop/
## Basic Resolution
- **Attack Roll**: d20 + hit bonus vs. target's AC
- **Damage Roll**: Roll weapon dice, subtract target's DR (if applicable)
- **Movement**: Frames move in meters (m) per round
- **Actions**: Each frame gets 1 Main Action, 1 Move Action and 1 Reaction per round
## Combat Round Structure
1. **Initiative**: All participants roll d8 + Frame Speed
2. **Turns**: Each participant takes their turn in initiative order
## Action Types
### Main Actions
- Attack with a weapon
- Use a system that requires a Main Action
- Take a special action (Grapple, Brace, etc.)
### Move Action
- Move up to your frames speed
### Reactions
- Trigger a Held Action
- Use a fitting
- Attacks of Opportunity
### Damage Types and Armor
Source: https://www.allknivesnobagel.com/for-want-of-fuel/02-damage-model/
*The PEX (Physical, Energy, Exotic) damage model creates distinct tactical choices in combat.*
### Damage Types
**Physical (P)**: Standard physical damage (bullets, missiles, etc.)
**Energy (E)**: Laser, plasma, and other energy weapons
**Exotic (X)**: Strange or unusual damage types
### Armor and Protection
#### Damage Reduction (DR)
- Listed as a single number (e.g., DR 3)
- Base DR applies to all damage types
- Fittings may provide bonus DR vs. specific types
### Infantry and Mech Scale
Infantry deals only half damage against mechs, and mechs deal double damage against infantry.
### Narrative Themes
Source: https://www.allknivesnobagel.com/for-want-of-fuel/03-narrative-themes/
### **The Reward of Blood**
Violence brings safety, heat, respect and even divinity.
The further you go from civilisation the more violence becomes a currency.
### **Mercy is Sin**
Attempts at redemption lead only to death or corruption.
What you spare today will return tomorrow, twisted into something worse.
### **The Land is God**
Everything pales in comparison to the land itself. Your mech is large, the mountains are titanic. You cannot outdo the land, ever.
The further you journey, the more time and space become unmoored from reality.
Oases are always contested, never safe havens.
### **Scars of the Long Night**
The land bears eternal scars from the last war, with apocalyptic fires of the Scream frozen and preserved in ice.
Your deeds carve scriptures into the dirt, testimonies that outlast flesh.
## Aesthetics
> The sky bled and bled and the night did not come.
> They fought and died and none sang for them.
#### ON TRAVEL
> For three days they rode the glacier fields in silence, the snow crust splitting beneath their weight. The sun never rose proper. It circled low and sour in the east like a judgement half-sworn. They came upon bones swept clean by the wind. No beast or carrion bird in sight. Only the cold.
#### ON FACTIONS
>The men of the Sultanate bore iron-standard spears and spoke in parables even as they killed. They lit fires from the fat of the dead and prayed with rifles slung across their shoulders. The Republic soldiers wore mirrored goggles and did not speak at all. They bled oil when cut.
#### ON LANDSCAPE
>They crossed the scar of the crater where once land had ruptured upward and frozen in the act, as if in violence it had sought some last articulation of grace. The wind blew ice through the ravine like filings through magnet and the sky above was the white of old scars.
### Mechanics
Source: https://www.allknivesnobagel.com/for-want-of-fuel/04-mechanics/
## Sortie
### After a Sortie
##### What You Bring Back
Every mission, sortie or expedition earns you something.
| Fuel | Title | Description |
| ---- | ----------------------------- | -------------------------------------------------------------- |
| 0 | Blood for Nothing | The mission failed. You lost ground, gear or people. |
| 2 | The Land is Not Yet Satisfied | Minor success. A cost was paid. Maybe too much. |
| 4 | The Fire Burns | Moderate success. Some control gained, some resources secured. |
| 6 | Something Dead Gave Way | Strong success. You left a mark. Something ancient stirred. |
| 8 | The Earth Remembers | Major success. The land and people echo your name. |
{: .mechanics-table}
>"The fire dies when the blood runs dry. The land takes what it is owed."
You must pay tribute to the land to maintain your mech and yourselves. Pay 1 Cred per Tier +1.
This is not about money or glory. This is about staying alive long enough to kill again.
## Downtime
You get two downtime actions.
#### **Stoke the Furnace**
Spend fuel to refuel your frame or body.
- Spend one fuel
- Recover all your HP or recover all your mechs HP.
> _The warmest fire comes from things that once moved._
#### **Work the Bone**
Repair your mech, mend your gear, or rebuild your limbs.
- Roll +Tech or +Heal: 10 = full restore, 7-9 = patch job, 6+ = costly mishap
- On a 12+, you may also add a _makeshift mod_ (unstable, one-use)
> _Steel is only honest when it breaks._
#### **Cut a Deal**
Leverage favors, guilt, barter, or flesh to get what you need.
- Choose: gain black-market salvage, medica supplies, intel, safe passage or anything
- GM sets cost: reputation, fuel, blood
- If you fail to pay later, all who helped you will know
> _Nothing is ever given. Everything taken must be paid._
#### **Burn the Map**
Scout unknown terrain or send rumors into the wastes.
- Learn about a new point on the map
- Ask 1 question about faction movements, convoy paths, hidden threats
- Mark 1 Stressβnews is costly.
> _The land speaks in wind and ash and silence. Listen or die._
#### **Try To Help**
Fixes a local problem but failure creates a bigger one.
#### **Walk Among Them**
Try to connect with civilians on human terms.
Roll Culture
10+: Build genuine connection, reduce Dependency, gain local ally
7-9: Awkward but meaningful interaction, learn something important
6-: Your presence intimidates or alienates, increase Fear
#### **Send Word**
Try to maintain connections to distant places/people.
- Costly and often brings bad news.
- Provides intel and emotional anchoring.
#### **Report In**
Deal with Authorities.
- They make demands, but you gain favor.
- Ignoring them has consequences, but obeying them often conflicts with local needs
#### **Wager the Self**
Choose one ritual below. Roll 2d6 (optionally modified by a stat like Resolve or Guts).
- On a 10: Clear 6 stress.
- On a 7-9 Clear 4 stress.
- On a 2-6: Clear 2 stress and suffer a **mark** (complication, trauma, or omen).
**Brand the Beast** β Scar your mount, mech, or bonded creature. Whisper your name into the wound.
**Speak the Names** β Recite the names of the dead. Carve them into your mech or flesh.
**Lay Down the Mask** β Confess to someone or something that cannot or will not answer.
**Burn the Mercy** β Destroy something you spared: a prisoner, a memory, a relic.
**Read the Ice** β Pilgrimage to a frozen place. Ask the land a question. Accept the answer.
**Feast in Silence** β Eat something you shouldn't. Do not speak.
**Work the Bone** β Carve a token from bone or ruin. Name it after someone you failed. Leave it.
**Stand the Night** β Go out into the frost naked, unarmed. Return if you can.
> _You must pay something to feel nothing._
#### **Bury the Dead**
Mourn the lost, name them, or feed them to the cold.
- Clear 2 stress
- Gain a temporary Blessing or Curse, GM's choice
- If you fail to bury the dead, they may return
> _There are no ghosts here. Only witnesses._
#### **Forget What You Were**
Alter your path. Change your code. Take on a new scar.
- Choose a new Role-specific XP trigger
- Gain a Scar. Physical or Mental.
- Clear your Stress
> _This world has no place for who you used to be._
## The Reward Of Blood
Award **1 XP per line fulfilled** at the end of each session. Players should justify briefly. GM has final call.
**Mercy Breaks You**
If you showed mercy and things became worse because of it, gain XP.
**Blood Honors You**
If you killed a named foe or many innocents, gain XP.
**Hunger Commands You**
If you diminished yourself for fuel, warmth, or survival, gain XP.
**God Rides the Horizon**
If you witnessed, provoked, or embodied something sublime and brutal, gain XP.
### Scars of the Long Night
Every Sortie comes with a **scar**. Either roll or choose one. These shape worldbuilding, add flavor, and weight to your violence.
|d6|Scar|
|---|---|
|1|The land changed. Ice melted or a crater filled. A map must be updated.|
|2|A mech component gained a quirk. It weeps coolant or hums psalms.|
|3|The battlefield ground is permanently stained with oil and blood. Animals avoid it.|
|4|A canyon echoes with the screams of the fallen.|
|5|The squad's mechs now leave scorched footprints in the ice.|
|6|Blood has frozen on your mech. It wont come off.|
{: .mechanics-table}
### Frame Catalog
Source: https://www.allknivesnobagel.com/for-want-of-fuel/05-frames/
*A comprehensive catalog of available mech frames and their specifications.*
## Frame Classes
Note: Pilots of suitβclass mechs may choose to take an attack's damage on their own HP. Suitβclass armor does not apply against Heavyβclass weapons. Light/Heavy mechs ignore nonβHeavy attacks.
Light Frames
Speed
Armor
Hit Points
AC
HP
SP
Special:
Medium Frames
Speed
Armor
Hit Points
AC
HP
SP
Special:
Heavy Frames
Speed
Armor
Hit Points
AC
HP
SP
Special:
Suit Frames
Speed
Armor
Hit Points
AC
HP
SP
Special:
### Frame Weapons
Source: https://www.allknivesnobagel.com/for-want-of-fuel/06-weapons/
*Complete list of available weapons for frame customization.*
## Weapon Categories
Melee Weapons
Name
Range
Damage
Type
Tags
Special
HP
Melee
Ranged Weapons
Name
Range
Damage
Type
Tags
Special
HP
System Weapons
Name
Range
Damage
Type
Tags
Special
HP
### Frame Fittings
Source: https://www.allknivesnobagel.com/for-want-of-fuel/07-fittings/
*Complete list of available fittings for frame customization and enhancement.*
## Fitting Categories
Combat Fittings
Name
Effect
SP
Tactical Fittings
Name
Effect
SP
Mobility Fittings
Name
Effect
SP
Systems Fittings
Name
Effect
SP
Utility Fittings
Name
Effect
SP
General Fittings
Name
Effect
SP
Drone Fittings
Name
Effect
SP
Core Bonus Fittings
Name
Effect
SP
### Standard Template Mechs
Source: https://www.allknivesnobagel.com/for-want-of-fuel/08-standard-template-mechs/
## Mechs
GMS Everest Assault Pattern
Light Frame
Hull
GMS Everest
Speed
4
Armor
1
HP
40+4
AC
14
Hard Points
5/6
System Points
6/6
Weapons
Assault Rifle
Range10Damage1d12 P
[[tag:shock 4]]
Missile Rack
Range10Damage1d6+2 P
[[tag:blast 1]] [[tag:loading]]
Chain Axe
RangeMeleeDamage1d12 P
[[tag:shock 4]]
Fittings
Personalizations
+4 HP, cosmetic customization
Custom Paint Job
When you are reduced to 0 HP, roll a d6. On a 6, you are only reduced to 1 HP.
Smoke Charges
Deploy a cloud of dense smoke in a 2-range radius up to range 5. The smoke blocks line of sight and provides [[tag:soft_cover]] to anyone inside it. Lasts for 2 rounds. Can be set as mine. [[tag:limited 3]].
HE Charges
Deploy a high explosive charge at a location within range 5. The charge detonates dealing 2d6 P damage in a 1-range radius. Targets must save vs [[tag:evasion]] to take half. Can be set as mine. [[tag:limited 3]].
You can fly while moving, however you start falling when you stop or the end of your turn. [[tag:jump]]
Smoke Charges
Deploy a cloud of dense smoke in a 2-range radius up to range 5. The smoke blocks line of sight and provides [[tag:soft_cover]] to anyone inside it. Lasts for 2 rounds. Can be set as mine. [[tag:limited 3]].
Deployable Cover
Deploy a 2 hardened barriers (Size 1). The barrier provides [[tag:hard_cover]] and has 10 HP.
An integrated NHP that assists you and can follow basic instructs when operating the mech independantly. [[tag:tech]]
Flight System
You can fly. You take Class+1 HP damage each turn when flying. [[tag:flight]]
Personalizations
+4 HP, cosmetic customization
Manipulators
Advanced articulated hands that can perform delicate operations. You can interact with objects designed for human use and make fine manipulations that would normally be impossible for a mech.
Deploy a turret drone within range 10 that attacks deals +6 damage to any target you hit within the drones range of 10. The drone has 5 HP, AC 12. [[tag:tech]]
Ammo Feeder
Once per scene, you can reload a [[tag:loading]] weapon as a [[tag:quick]] action.
Stabilizers
You can fire [[tag:brace]] weapons and move, but take -2 to Hit.
### Tag Glossary
Source: https://www.allknivesnobagel.com/for-want-of-fuel/09-tag-glossary/
*Tags modify how weapons and systems function, creating unique tactical options.*
## Weapon Tags
Combat Tags
Example:
Area Effect Tags
Example:
Special Effect Tags
Example:
## Fitting Tags
Combat Tags
Example:
Movement Tags
Example:
Support Tags
Example:
System Tags
Example:
### Referee Quick Cues
Source: https://www.allknivesnobagel.com/for-want-of-fuel/10-referee-guide/
## Combat Tips
### Using Cover
- Encourage tactical positioning
- Remind players of cover bonuses
- Use terrain to create chokepoints
### Mixed Arms Tactics
- Combine different frame types
- Use terrain to force engagements
- Create opportunities for flanking
## Quick Reference
### Common DCs
- Easy task: 6
- Moderate task: 8
- Hard task: 10
- Very hard task: 12
### Common Modifiers
- Advantage: +2
- Disadvantage: -2
- Cover: Soft +2 AC/ Hard +4 AC
- Flanking: +2 to hit
- High Ground: It's over.
## Problems That Can't Be Blown Up
| d6 | Human-Scale Problem | Why Violence Fails | What They Really Need |
|----|--------------------|--------------------|----------------------|
| 1 | Crop Disease | You can't shoot germs | Agricultural knowledge, medicine |
| 2 | Trade Dispute | Both sides have legitimate claims | Mediation, compromise |
| 3 | Religious Schism | Violence makes martyrs | Understanding, patience |
| 4 | Missing Caravan | Already dead or lost | Investigation, tracking |
| 5 | Corrupt Leader | Killing them creates power vacuum | Political solution, evidence |
| 6 | Broken Infrastructure | Mechs are too big/clumsy | Engineering, manual labor |
{: .mechanics-table}
### Settlements
Source: https://www.allknivesnobagel.com/for-want-of-fuel/11-settlements/
## Core Questions
- What do they need that violence can provide? (bandits, beasts, territorial disputes)
- What do they need that violence cannot? (medicine, food, trade routes, leadership)
- What do they fear about you? (your reputation, your power, your unpredictability)
- What do they offer? (fuel, shelter, information, connection)
## Settlement Size & Character
| d6 | Size | Population | Character |
|----|------|------------|-----------|
| 1 | Waystation | 20-50 | Desperate traders, last-chance fuel depot |
| 2 | Homestead | 50-100 | Isolated families, suspicious of outsiders |
| 3 | Mining Camp | 100-200 | Rough workers, temporary but lucrative |
| 4 | Trading Post | 200-500 | Crossroads culture, news and gossip |
| 5 | Township | 500-1000 | Established hierarchy, competing factions |
| 6 | Regional Hub | 1000+ | Multiple settlements' lifeline, political complexity |
{: .mechanics-table}
## Settlement Mood (Roll 2d6)
| Result | Mood | Reception | Complications |
|--------|------|-----------|---------------|
| 2- | Terrified | Hide indoors, whisper prayers | Children cry when they see you |
| 3-4 | Wary | Polite but distant | Overcharge for everything |
| 5-6 | Neutral | Business-like transactions | Standard prices and treatment |
| 7-8 | Welcoming | Genuine hospitality | Expect you to solve their problems |
| 9+ | Reverent | See you as savior/hero | Create unrealistic expectations |
{: .mechanics-table}
## Settlement Relationship Track
| Status | Description | Implications |
|--------|-------------|--------------|
| Fear | They comply but plot against you | Inflated prices, false information, potential betrayal |
| Wariness | They deal with you but keep distance | Limited services, guarded interactions |
| Neutral | Standard business relationship | Fair trades, basic hospitality |
| Trust | They share information and ask for help | Better prices, insider knowledge |
| Dependence | They expect you to solve everything | Constant demands, emotional manipulation |
{: .mechanics-table}
> *"The more they need you, the more they'll hate you for it."*
## Settlement Problems
Roll 2d6 when arriving at a settlement to determine their immediate crisis:
| Roll | Problem | Violence as Solution? | Alternative Need |
|------|---------|---------------------|------------------|
| 2 | Plague outbreak | No - makes it worse | Medical knowledge |
| 3 | Food shortage | Partially - raid others | Trade negotiation |
| 4 | Missing persons | Maybe - if kidnapped | Investigation skills |
| 5 | Mechanical breakdown | No - too delicate | Technical expertise |
| 6 | Religious conflict | No - creates martyrs | Mediation |
| 7 | Bandit raids | Yes - classic mech job | - |
| 8 | Wild beasts | Yes - hunt them down | - |
| 9 | Corrupt officials | Partially - creates vacuum | Political solution |
| 10 | Infrastructure collapse | No - mechs too clumsy | Engineering |
| 11 | Trade dispute | No - both sides valid | Negotiation |
| 12 | Territorial conflict | Yes - but at what cost? | Diplomacy |
{: .mechanics-table}
> *"Not every problem can be solved with a mech. But the ones that can..."*
### Travel
Source: https://www.allknivesnobagel.com/for-want-of-fuel/12-travel/
> *The land stretches beyond reason. Ice and stone and silence that swallows mechs whole. You are small here. Your machine is small. Only the cold is infinite.*
## The Hard Truth of Distance
Mechs are gods of war, not gods of travel. They consume fuel like fire consumes air, break down in conditions that wouldn't slow a person on foot, and need supply chains that stretch across a continent of ice.
Between settlements lie days or weeks of frozen waste. No mech travels alone and survives. No pilot crosses the deep ice without paying the land its due.
## Before You Travel
### Supply Requirements
Every leg of the journey demands payment:
- **1 Fuel** for base consumption
- **Supplies** for crew and yourself
- **Spare parts** for inevitable breakdowns
### Travel Preparations
Choose your support:
**Solo Travel** (Desperate or Foolish)
- +1 Fuel consumption
- Automatically face all travel complications alone
- No backup when things go wrong
> *"Pride goeth before the fall, and the ice remembers fools."*
**Convoy Travel** (Standard for any smart pilot)
- Supply trucks, crew, guides
- Shared resources and expertise
- Social complications and obligations
- Roll for Convoy Dynamics each journey
**Authority Escort** (Safest but Costly)
- Official supply lines and support
- Navigation handled by authority bureaucrats
- Political complications and oversight
- May be conscripted for Authority business
## The Travel Roll
### Known Routes
Roll once for the entire journey between settlements.
**Choose Your Navigation:**
**Hire Local Guide**
- Cost: Negotiable (favors, fuel, violence)
- Roll 2d6 (guides minimize risk and variance)
- Guides always count as having rolled at least a partial success
**Follow Authority Roads**
- Cost: Papers, permits, tariffs
- Automatic navigation success
- Roll for Authority Complications instead
**Navigate Yourself**
- Roll 2d6+Navigation or +Survival
- Higher variance, more complications
- Complete independence
### Unknown Territory
When venturing into unmapped regions, break travel into legs. Each day or major terrain feature requires its own roll and complications.
## Travel Results
### Navigation Success (10+)
- Arrive on schedule without major incident
- Learn something valuable about the route
- Choose: reduce fuel consumption by 1 OR gain useful intel
### Partial Success (7-9)
You reach your destination but choose one:
- **Delayed**: Arrive late, consuming extra fuel
- **Costly**: Face a complication that demands resources or favors
- **Exposed**: Something follows you or learns of your business
### Travel Crisis (6-)
The land claims its due. Choose two:
- Lost: Add days to your journey, consuming extra fuel
- Breakdown: Mech suffers damage requiring repairs
- Encounter: Face a threat that may require a sortie
- Separated: If traveling with others, someone goes missing
- Storm-Bound: Weather forces dangerous shelter choices
## Seasonal Travel
### Frost (The Long Dark)
>*Most of the year. The ice roads are open but unforgiving.*
**Advantages:**
- Frozen rivers become highways
- Clear sight lines across the ice fields
- Avalanche zones are predictable
**Hazards:**
- Limited daylight for navigation
- Equipment failures in extreme cold
- Settlements may be sealed against winter
**Travel Modifier:** +0 to navigation, +1 fuel consumption
### Thaw (The Breaking)
>*Dangerous transition between seasons. The ice remembers nothing.*
**Advantages:**
- Some blocked routes open up
- Desperate people offer better deals
**Hazards:**
- Routes change daily as ice breaks
- Flash floods and mudslides
- Equipment failures from temperature swings
**Travel Modifier:** -2 to navigation, routes may become impassable mid-journey
### Bloom (The Brief Summer)
>*Short growing season. Everyone moves while they can.*
**Advantages:**
- Best traveling weather
- All routes accessible
- Maximum trade opportunities
**Hazards:**
- Crowded routes and competition
- Higher prices for everything
- Time pressure before next Frost
**Travel Modifier:** +1 to navigation, normal fuel consumption
## Convoy Dynamics
When traveling with others, roll for relationship complications:
| 2d6 | Convoy Complication |
|-----|---------------------|
| 2-3 | **Mutiny**: Crew questions your leadership or route |
| 4-5 | **Breakdown**: Critical supply vehicle needs repairs |
| 6-8 | **Politics**: Someone has conflicting goals or loyalties |
| 9-10| **Discovery**: Find something valuable but contested |
| 11-12| **Revelation**: Learn important information about your destination |
{: .mechanics-table}
### Authority Route Complications
When using official roads, roll for bureaucratic entanglements:
| 2d6 | Authority Complication |
|-----|------------------------|
| 2-3 | **Conscription**: Required to handle local Authority business |
| 4-5 | **Inspection**: Cargo searched, papers questioned, delays |
| 6-8 | **Tolls**: Unexpected fees, taxes, or "donations" required |
| 9-10| **Intelligence**: Authorities want information about your business |
| 11-12| **Escort**: Assigned unwanted official escort or observer |
{: .mechanics-table}
## Local Guide Relationships
Guides reduce travel risk but come with their own complications:
### Guide Motivations
- **Homeward**: Needs to reach family or clan territory
- **Trade**: Building relationships for future business
- **Political**: Advancing local faction interests
- **Spiritual**: Following traditional or sacred routes
- **Fugitive**: Avoiding someone or something
- **Curious**: Wants to know what you're really doing
### Working with Guides
- Guides know seasonal variations and hidden paths
- Can negotiate with locals you'd never reach
- May take routes that serve their purposes, not yours
- Always know more than they're telling you
- Judge you by standards you don't understand
> *"The land speaks to those who listen. Outsiders hear only wind."*
## Travel Hazards
### Environmental
- **Ice Storms**: Visibility drops to zero, equipment icing
- **Avalanche Zones**: Unstable terrain, sound discipline required
- **Crevasse Fields**: Hidden chasms that can swallow mechs
- **Temperature Extremes**: Systems failure, hypothermia risk
### Human
- **Bandits**: Desperate people with improvised weapons
- **Territorial Disputes**: Caught between competing claims
- **Refugees**: Fleeing disaster, may be pursued by threats
- **Authority Patrols**: Questions, searches, potential conscription
### Mechanical
- **Fuel Line Freeze**: Common in extreme cold
- **Gyro Drift**: Navigation systems fail in magnetic anomalies
- **Joint Seizure**: Hydraulics lock up, requires field repair
- **Sensor Ghost**: Equipment malfunctions create false readings
## When Travel Becomes a Sortie
Sometimes the journey becomes the mission:
- Convoy under sustained attack
- Major mechanical failure in hostile territory
- Discovered something that changes everything
- Weather forces shelter in a dangerous location
- Authority forces attempt to detain or conscript you
> *"The ice cares nothing for your schedule. The land takes what it is owed."*
### Media Inspiration
Source: https://www.allknivesnobagel.com/for-want-of-fuel/20-media-inspiration/
## Soundtrack
## Literature
* **The Book of the New Sun** by Gene Wolfe
* The feeling of ancient, forgotten technology
* The weight of history and myth
* The relationship between violence and divinity
* **Dune** by Frank Herbert
* The importance of resources (fuel, water)
* The relationship between people and their machines
* The weight of prophecy and destiny
* **The Road** by Cormac McCarthy
* The stark beauty of a ruined world
* The constant struggle for survival
* The thin line between humanity and brutality
## Film & Television
* **Mad Max: Fury Road**
* The importance of vehicles and fuel
* The visual language of war machines
* The relationship between people and their machines
* **Blade Runner 2049**
* The weight of history and memory
* The relationship between humans and machines
* The visual language of ruins and relics
* **The Expanse**
* The importance of resources and territory
* The relationship between people and their machines
* The weight of history and politics
## Games
* **Lancer**
* The relationship between pilots and their mechs
* The importance of customization and specialization
* The weight of history and politics
* **Into the Breach**
* The importance of positioning and terrain
* The relationship between pilots and their machines
* The weight of sacrifice and loss
* **Frostpunk**
* The importance of resources and survival
* The relationship between people and their machines
* The weight of history and politics
### For Want Of Fuel Play Test
Source: https://www.allknivesnobagel.com/for-want-of-fuel/
This document provides a streamlined set of rules for running Stars Without Number compatible mech combat scenes.
## For Want Of Fuel
The following sections contain the complete rules for running mech combat in your Stars Without Number game. The design notes below explain the reasoning behind key decisions.
### Key Design Principles
1. **Cognitive Load β€ D&D B/X**
- One primary number per defensive category
- Minimal tracking requirements
- Clear, concise stat blocks
2. **Free Kriegsspiel > Edge-Case Math**
- Rules focus on intent over mechanics
- GM discretion encouraged
- Quick resolution of edge cases
3. **100% SWN Compatibility**
- 2d6 skill checks
- d20 attack rolls against target AC
4. **All Info at Point-of-Use**
- Tags and special rules in weapon/fit lines
- No global lookup tables
- Self-contained stat blocks