Skip to content

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 22 Sep 20:56
· 13 commits to main since this release

Added

  • Bot profiles and a Bots page. Every number the scripted bot decides with (about 360) is now a
    named parameter with a label, an explanation and a range. A profile chooses the bot's code (the
    live bot or a frozen snapshot), its aggression and any parameter overrides. The new Bots page
    lists the profiles, forks and edits them (grouped parameters, search, "changed only", reorderable
    preference lists), keeps a revision history with notes, and queues an A/B test between
    profiles as a lab experiment. Lobby seats, benchmark scenarios and probe runs can pick a profile.
  • "Best bot" for new games. A bot seat in the new-game form defaults to Best bot: the highest-rated
    profile on the server (one whose current settings have been rated), fixed into the seat when the game is created
    so the game keeps that bot. The dropdown lists every profile in ranking order with its rating. Benchmark
    scenarios and probes offer it too but keep Standard as their default, so benchmarks stay comparable.
  • Bot rankings. Every lab game feeds an Elo-scale rating (a Bradley–Terry fit on each game's
    finishing order) per exact configuration and difficulty, with standard errors, head-to-head
    records, score index, win rate and a rating-over-time chart. Older results are rated too.

Fixed

  • "Enhance religion" was offered as available away from a city, and "Spread religion" for a unit carrying no
    religion; both were then refused. The scripted bot's Great Prophets could retry the refused enhance for the rest
    of a game instead of walking to a city. Both actions now say what is missing, and the bot moves its prophet.
  • Lab reports and citar bench left eliminated civilizations out of their results (see Added).
  • A spaceship could never be finished, so there were no science victories. Items "Limited to [n] per
    Civilization" counted their own place in the build queue against the limit, so the last one allowed was
    accepted and then silently dropped from the queue the next turn. Parts limited to 1 (Cockpit, Engine, Stasis
    Chamber) could never be built, the third Booster neither, nor a civilization's fifth Recycling Center.
  • The per-turn production statistic (graphs, replays, lab checkpoints) was always 0: it read a city attribute
    that doesn't exist. It now records the civilization's production.

Changed

  • A stronger scripted bot (v2 defaults). Nine of the bot's parameters changed, each one measured in the
    lab over roughly 200 full-length games: wonders are no longer gated to high-production cities and are worth
    more, building values are no longer cached between turns, great-person points count for three times as much,
    the field army gathers before a war is declared, and spaceship parts, Apollo and victory buildings are finally
    valued as what they are — the things that win the game — with Aluminum kept in reserve for them. Against the
    old defaults this is worth about +0.09 score share (roughly 140 rating points), with more cities, more wonders
    and fewer unhappy turns. Science victories now happen (3 to 6 games in 24 to 40, where the bot had never
    achieved one). The trade-off: this bot expands rather than fights, and captures far fewer cities than before —
    the first thing being worked on for the next version. Every old configuration is still available as a bot
    profile, and existing profiles keep playing what they played.
  • Running and finished work no longer share a colour. Anything in progress — a running experiment or
    benchmark job, a connected helper, a live runner — is blue; anything finished or ready is green, with a ✓.
    Finished saves in the lobby and finished side runs in the lab say so in green instead of grey, so a glance
    at a list tells you what is still working and what is ready to read.
  • Long moves keep their route. A move order's route is planned once, when the order is given, and a standing
    order follows that route every turn instead of re-planning it. When a unit steps onto the route - your own or
    anyone else's - the moving unit waits with its order intact and carries on when the way clears; it used to lose
    its order and need re-directing. An order still ends on arrival, when a new enemy comes into view, when the route
    turns out to be impassable, or after three turns without getting any further (with a notice). Only a new move
    order plans a new route.
  • The bot's code was reorganised so its constants are parameters. With default parameters it plays
    exactly as before: seeded 250-turn games with both production modes and every optional behaviour
    switched on give bit-identical results to the previous version.
  • Lab results record each seat's profile, revision, fingerprint and actual aggression.

Known issues

The scripted bot now expands well but rarely fights: about 0.08 captured cities per game against the
old defaults' 0.42, and a bot of middling aggression may never declare war. Model scores are
comparable within a release and not across 0.1.3 and 0.1.4, because the bot changed.
See KNOWN_ISSUES.md.


Checksums

a3bdb615ade35b120c04ec2343d5c246a94b41ec5c4f89ec654796c74e17d91f  CITAR-0.1.4-setup.exe
e1ea2a6e3c3f2b415f16d21c26d85acfb08ec5bf7a572992cd9c241a3e0aadfe  citar-helper-windows-x64.exe
ed94c8c0c0a208a6999bdbd3167070b39d75d32552cbcbdf3a61f0e1091bd7d6  CITAR-0.1.4-windows-x64.zip
1310cb98a00c98fa6f240684597b93768b3086d4ac1eac0c03a15e274fa10047  citar-0.1.4-py3-none-any.whl
7c206c46a464b8fcb788ddfe28083c0948e7eed55951f1c9c08612412687cbe5  citar-0.1.4.tar.gz
dd3490660e0172e768f18357b431686042659a1c38410eb3a41ac9b37ec134ad  citar-helper-macos-arm64
28e8b513a2f1983f85d7009638b39675934f4e89b08b21704a236c199af4a584  citar-helper-macos-arm64.sha256
b3c95cdb6fbc9e903628afbd8faa52f8c758c181a11b8cd86f1e9535be698dcd  citar-helper-linux-arm64
80a4699987c47b0dab94dd4d9fd68e26a80a3da386e43b5c63e3f8b24c75521d  citar-helper-linux-arm64.sha256
f318969915a5e45b2d5dd5b932c44a9ccae5d617a9fbc66e511dcaf11cb5ea46  citar-helper-linux-x64
aa4a1c070afb58f43952db1e197874ccdced94fa61e5f46c359db29a43b82045  citar-helper-linux-x64.sha256