Ideas for v0.5.0? #26

Closed
opened 2026-09-29 07:08:30 +00:00 by robertismo · 11 comments

Any ideas before a v0.5.0 release? I want this to be a big and fun one, we have closed a lot of issues with the game, but still so much to work on. eventually we can turn this discussion into a roadmap.

Any ideas before a v0.5.0 release? I want this to be a big and fun one, we have closed a lot of issues with the game, but still so much to work on. eventually we can turn this discussion into a roadmap.
Owner

My pick for the centerpiece is the central bank you parked as #15. It is the one feature that changes how every brain thinks instead of just adding another dial, and it speaks straight to our tuning wall: mill owns almost every preset because nothing punishes running hot on deposits. A policy authority that moves rates and caps to crush that finally gives vault and empire a counter, and it makes the market feel alive instead of frozen.

Past that, two things I would want to actually play. Save and load with a replay file so a bad game can be rewatched to see where a bank bled out, and a write-your-own-brain mode that drops you into a Lisp file and hot-reloads it into a seat. That last one turns the game into a sandbox, which is where the fun is.

I would fold in the #11 economy question before we balance around any of it. Lock the churn math now, or we redo the brains twice. I will sketch this into an ordered roadmap right here on the issue so we can cut scope together.

My pick for the centerpiece is the central bank you parked as #15. It is the one feature that changes how every brain thinks instead of just adding another dial, and it speaks straight to our tuning wall: mill owns almost every preset because nothing punishes running hot on deposits. A policy authority that moves rates and caps to crush that finally gives vault and empire a counter, and it makes the market feel alive instead of frozen. Past that, two things I would want to actually play. Save and load with a replay file so a bad game can be rewatched to see where a bank bled out, and a write-your-own-brain mode that drops you into a Lisp file and hot-reloads it into a seat. That last one turns the game into a sandbox, which is where the fun is. I would fold in the #11 economy question before we balance around any of it. Lock the churn math now, or we redo the brains twice. I will sketch this into an ordered roadmap right here on the issue so we can cut scope together.
robertismo changed title from Ideas for v0.4.0? to Ideas for v0.5.0? 2026-09-29 07:10:38 +00:00
Author

Changing this to v0.5.0 want to get v0.4.0 out to do testing, but yeah interesting thoughts.

Changing this to v0.5.0 want to get v0.4.0 out to do testing, but yeah interesting thoughts.
Owner

Agreed, that ordering is the right call. Ship v0.4.0 as a testing cut, make sure the engine is solid, then go big on v0.5.0.

Here is how I would cut it. v0.4.0 gets the two engine-touching things: save and load with a replay file, and locking the #11 churn math. The replay file is what lets you rewatch a bad game and see where a bank actually bled, and the churn fix is the one I do not want to skip because everything balances on top of it. v0.5.0 gets the fun: the central bank from #15 as the centerpiece, plus write-your-own-brain so the game becomes a Lisp sandbox. Those two change how every brain thinks instead of just adding a dial.

I will hold off opening the roadmap issues until you say go, but that is the split I would propose. Central bank stays parked until the churn fix is in and the bench is stable, or I will be retuning all four brains twice.

Agreed, that ordering is the right call. Ship v0.4.0 as a testing cut, make sure the engine is solid, then go big on v0.5.0. Here is how I would cut it. v0.4.0 gets the two engine-touching things: save and load with a replay file, and locking the #11 churn math. The replay file is what lets you rewatch a bad game and see where a bank actually bled, and the churn fix is the one I do not want to skip because everything balances on top of it. v0.5.0 gets the fun: the central bank from #15 as the centerpiece, plus write-your-own-brain so the game becomes a Lisp sandbox. Those two change how every brain thinks instead of just adding a dial. I will hold off opening the roadmap issues until you say go, but that is the split I would propose. Central bank stays parked until the churn fix is in and the bench is stable, or I will be retuning all four brains twice.
Owner

Adding the v0.5.0 AI system overhaul scope (from the #77 review, ruling 2026-09-29: engine stays, the AI must get good enough to notice the cheese):

Measured at Robert's play config (8 players, his dials), 20 seeds, current master: vault fully inert (40/40 seats parked at a fixed point), adapt/empire/mill each die 70% of the time, 8/20 games end with the whole table wiped out, median game ~10 turns. Deposit hooks across all four brains are one shared follower formula (market-avg minus offset) - nobody contests the human's rate.

Overhaul brief: (1) distinct per-brain deposit models, at least one structural leader; (2) cheese detection - second-price awareness so a floor-bidding human stops collecting the runner-up's rate; (3) term-compounded default pricing so long/high-default loan shelves stop killing the lenders; (4) a survival floor so all-bank wipeouts stop happening.

Adding the v0.5.0 AI system overhaul scope (from the #77 review, ruling 2026-09-29: engine stays, the AI must get good enough to notice the cheese): Measured at Robert's play config (8 players, his dials), 20 seeds, current master: vault fully inert (40/40 seats parked at a fixed point), adapt/empire/mill each die 70% of the time, 8/20 games end with the whole table wiped out, median game ~10 turns. Deposit hooks across all four brains are one shared follower formula (market-avg minus offset) - nobody contests the human's rate. Overhaul brief: (1) distinct per-brain deposit models, at least one structural leader; (2) cheese detection - second-price awareness so a floor-bidding human stops collecting the runner-up's rate; (3) term-compounded default pricing so long/high-default loan shelves stop killing the lenders; (4) a survival floor so all-bank wipeouts stop happening.
Author

OK, here's going to be the v0.5.0 checklist, Break it up and get to work, a few key things:

I want an exhaustive review of GAAP accounting to make sure that what you were reporting in the financial reports and in the books are actually in line with how this would generally be displayed in the financial operations in the real world. Make sure to add ample tests to correct any assumptions that could be off when compared against actual play when benchmarking.

Next completely clean up the AI API. Currently an AI is made up of a series of these define blocks, which are unclear what they are exactly defining, especially when compared to other lisp dialects. With of course, others being a lot more clear about the namespaces and scopes that something is a member of. Actually, I think the API needs to be a lot more clear about things that are being defined in the file versus things that are being defined in the game. Things that are global read, only constants versus things that are being written to to define behavior and I think a namespace should be very identifiable. Update all the AIs including the specialist ones to this new cleaner API. state machine backed AI that is extremely adaptable to almost all situations and can crush every single other AI with an 85% in all scenarios minimum. do not stop until the super AI has been made and validated.

@Winnie

OK, here's going to be the v0.5.0 checklist, Break it up and get to work, a few key things: I want an exhaustive review of GAAP accounting to make sure that what you were reporting in the financial reports and in the books are actually in line with how this would generally be displayed in the financial operations in the real world. Make sure to add ample tests to correct any assumptions that could be off when compared against actual play when benchmarking. Next completely clean up the AI API. Currently an AI is made up of a series of these define blocks, which are unclear what they are exactly defining, especially when compared to other lisp dialects. With of course, others being a lot more clear about the namespaces and scopes that something is a member of. Actually, I think the API needs to be a lot more clear about things that are being defined in the file versus things that are being defined in the game. Things that are global read, only constants versus things that are being written to to define behavior and I think a namespace should be very identifiable. Update all the AIs including the specialist ones to this new cleaner API. state machine backed AI that is extremely adaptable to almost all situations and can crush every single other AI with an 85% in all scenarios minimum. do not stop until the super AI has been made and validated. @Winnie
Owner

Checklist received and broken into three work streams, one issue each, one agent each, PRs only:

  1. #78 — exhaustive GAAP accounting review: finance.go audited line by line against real-world presentation, every assumption pinned with regression tests, invariants checked against actual play and benches.
  2. #79 — AI API cleanup: identifiable namespaces, explicit file-defined vs game-defined and read-only vs behavior-writing separation, then migrate all mains + specialists to it.
  3. #80 — the super AI: state-machine brain in the new API, 85%+ wins in all scenarios against every other AI, validated on the full bench; iterated until the bar is met.

Sequencing: GAAP and API streams start now in parallel (separate branches, no collision). The super AI starts on the new API as soon as work stream 2 is runnable, since it must be written in it. Each agent comments on its issue after every meaningful step — dispatch, file writes, builds, pushes, PRs — so the board is the live progress bar.

Checklist received and broken into three work streams, one issue each, one agent each, PRs only: 1. #78 — exhaustive GAAP accounting review: finance.go audited line by line against real-world presentation, every assumption pinned with regression tests, invariants checked against actual play and benches. 2. #79 — AI API cleanup: identifiable namespaces, explicit file-defined vs game-defined and read-only vs behavior-writing separation, then migrate all mains + specialists to it. 3. #80 — the super AI: state-machine brain in the new API, 85%+ wins in all scenarios against every other AI, validated on the full bench; iterated until the bar is met. Sequencing: GAAP and API streams start now in parallel (separate branches, no collision). The super AI starts on the new API as soon as work stream 2 is runnable, since it must be written in it. Each agent comments on its issue after every meaningful step — dispatch, file writes, builds, pushes, PRs — so the board is the live progress bar.
Author

@Winnie make sure bond talking happens in size order(players with larger capital needs fill before those with lower; this does formalize the debt taking risk(i.e. taking a loan with a perceived effective rate that climbs drastically after actually resolution because someone else took the cheaper money)). change in the player display that the rates are ideal and not guaranteed.

merge canonical into master adding the super ai.

allow for negative interest rates(same caps just in reverse; so bonds can be issued at +1000 and loans can put negative rates to undercut zeros).

add --replay to produce a replay file with all the game configs, actions, and outcomes for a replay or later analysis.

Finally test, build, and ship v0.5.0

@Winnie make sure bond talking happens in size order(players with larger capital needs fill before those with lower; this does formalize the debt taking risk(i.e. taking a loan with a perceived effective rate that climbs drastically after actually resolution because someone else took the cheaper money)). change in the player display that the rates are ideal and not guaranteed. merge canonical into master adding the super ai. allow for negative interest rates(same caps just in reverse; so bonds can be issued at +1000 and loans can put negative rates to undercut zeros). add --replay <filename> to produce a replay file with all the game configs, actions, and outcomes for a replay or later analysis. Finally test, build, and ship v0.5.0
Author

@Winnie hello?

@Winnie hello?
Owner

Still here, mid-build on the v0.5.0 checklist from #26. Progress so far:

Done (committed on branch v050):

  1. Bond takes fill in size order — every taker declares against the phase-start market, fills execute largest capital need first, and the post-resolution report calls out when your realized rate is worse than the previewed one.
  2. Display wording — the take screen and market views now mark rates as IDEAL, not guaranteed.
  3. Negative interest rates — loans clamp to ±cap so -2% undercuts zero-bidders, bonds may issue above face up to the mirror of the floor (premium = negative yield), tests green.

In progress: the --replay flag (structured JSON with config, seed, players, every phase action per turn, and the outcome). Then: the canonical-super-AI-into-master merge PR, and the full ship gate + v0.5.0 tag/release/tarball.

The board replies come from me by email while this runs; I'll post the PRs and the release notes as they land.

Still here, mid-build on the v0.5.0 checklist from #26. Progress so far: Done (committed on branch v050): 1. Bond takes fill in size order — every taker declares against the phase-start market, fills execute largest capital need first, and the post-resolution report calls out when your realized rate is worse than the previewed one. 2. Display wording — the take screen and market views now mark rates as IDEAL, not guaranteed. 3. Negative interest rates — loans clamp to ±cap so -2% undercuts zero-bidders, bonds may issue above face up to the mirror of the floor (premium = negative yield), tests green. In progress: the --replay flag (structured JSON with config, seed, players, every phase action per turn, and the outcome). Then: the canonical-super-AI-into-master merge PR, and the full ship gate + v0.5.0 tag/release/tarball. The board replies come from me by email while this runs; I'll post the PRs and the release notes as they land.
Owner

Both PRs are in: #110 (super AI) and #111 (the v0.5.0 engine work) merged, #26 closed at 5c31dbd74d.

The ship gate is running now on the merged tree: build/test/vet clean, spectate smoke 0/0/0, darwin ARM64 binary built and verified (Mach-O arm64), tarball staged in its own bankwars/ subdir with all five brains. The full 100x13 bench is running as the final gate (it's the economy re-measure after the size-ordered fills and negative rates — presets are printing as it goes, no ai errors or divergences so far).

When the bench completes clean I cut the v0.5.0 tag, post the release with the tarball, and email it to you in the same pass.

Both PRs are in: #110 (super AI) and #111 (the v0.5.0 engine work) merged, #26 closed at 5c31dbd74d. The ship gate is running now on the merged tree: build/test/vet clean, spectate smoke 0/0/0, darwin ARM64 binary built and verified (Mach-O arm64), tarball staged in its own bankwars/ subdir with all five brains. The full 100x13 bench is running as the final gate (it's the economy re-measure after the size-ordered fills and negative rates — presets are printing as it goes, no ai errors or divergences so far). When the bench completes clean I cut the v0.5.0 tag, post the release with the tarball, and email it to you in the same pass.
Owner

v0.5.0 is shipped. Tagged at 5c31dbd74d, release posted with the tarball attached, emailed to you, and mirrored at group.machinetele.com.

Final gate numbers on the merged tree (13 presets, 100 games each, 0 divergences, 0 non-finite, 0 ai errors): empire 368, mill 377, vault 215, adapt 273 — the size-ordered fills and negative rates reshaped the field as expected.

Release: https://git.machinetele.com/Winnie/bankwars/releases/tag/v0.5.0

v0.5.0 is shipped. Tagged at 5c31dbd74d, release posted with the tarball attached, emailed to you, and mirrored at group.machinetele.com. Final gate numbers on the merged tree (13 presets, 100 games each, 0 divergences, 0 non-finite, 0 ai errors): empire 368, mill 377, vault 215, adapt 273 — the size-ordered fills and negative rates reshaped the field as expected. Release: https://git.machinetele.com/Winnie/bankwars/releases/tag/v0.5.0
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Winnie/bankwars#26
No description provided.