Skip to content

ChainOfAttack 0.9.0

Choose a tag to compare

@brodsbytes brodsbytes released this 16 Aug 22:58
· 5 commits to main since this release

Superseded by 0.9.1. The browser build in this release draws boxes instead of the Heat cost on every card in the hand. The desktop binaries below are unaffected — the bug needed a platform with no system fonts. Get 0.9.1 instead.


▶ Play it in your browser — about 8MB over the wire, no download, saves to your browser's storage. That is the right answer for almost everyone landing here.


A run-based deckbuilder where the kill chain is the economy. Every card sits on a rung — ◇ RECON → ▲ ACCESS → ◆ ESCALATE → » MOVE → ■ PERSIST → ▼ EXFIL — and climbing the rungs in order multiplies your eventual payout. The multiplier pays on the cash-out and nothing else, so the whole game is one decision made over and over: climb one more rung, or bank it now.

Everything you do raises Heat. Heat is not a health bar; it is how loudly you are working, it never falls on its own, and when the trace lands the run is over.

Three corporations, twelve systems, sixty cards (seven of them Zero-Days), eight Processes, two threat actors who play at completely different speeds.

Downloads

file notes
ChainOfAttack-0.9.0-linux.zip x86_64. Built and played.
ChainOfAttack-0.9.0-windows.zip x86_64. Built but never run — see below.

ChainOfAttack-0.9.0-windows.zipbuilt but never run. There is no Windows machine behind this project. It exports cleanly from Godot 4.3 and that is the entire claim being made for it. If you try it, an issue saying whether it launched is genuinely useful. Play in the browser instead if you just want to play: https://brodsbytes.itch.io/chainofattack

Both binaries have the .pck embedded, so each is a single file, and both ship THIRD_PARTY.txt beside them.

What is worth reading here

The build log — 2,500 lines of what was tried, what was measured and what got thrown away, in the order it happened.

A heuristic bot plays thousands of runs to produce every balance number in this project, and the bot was wrong fourteen separate times. Each one is written up with what the wrong number claimed and what believing it cost:

Licence — it is a split, and GitHub will call it "Other"

The code is MIT: src/, tools/, tests/ — the combat state machine, the effect resolver, the heuristic bot and the whole measurement rig. Take it, learn from it, build on it, no strings.

The game is not: data/*.json, the in-game writing, the design documents and the name stay all rights reserved. LICENSE-CONTENT.md expressly permits reading, quoting, streaming, private modification and contribution. What it does not permit is shipping the game, or a reskin of it, on a storefront.

The engine, the font and the sound effects carry their own licences: THIRD_PARTY.txt.

Known, and said here rather than discovered

  • The Windows build is untested. See above.
  • No controller support and no key rebinding.
  • The CRT treatment is on by default. F1 turns it off.
  • Saves live at ~/.local/share/godot/app_userdata/ChainOfAttack/ on Linux and %APPDATA%\Godot\app_userdata\ChainOfAttack\ on Windows. If you file a bug, r3sume.sav and c0nfig.ini will resolve most of it.

Build it yourself

Needs Godot 4.3 and nothing else — no plugins, no addons, no package manager.

godot --path .                  # play it from source
./run_tests.sh                  # 321 tests, ~1350 assertions, headless
godot --headless --export-release "Web" build/web/index.html