Releases: morten-olsen/nova
Releases · morten-olsen/nova
Release list
v1.0.0
feat: balance the ruleset against measured play The game was mechanically complete and had never been tuned. This is a first balance pass, driven by simulation against the real engine rather than by argument: `packages/game/bench` plays seeded games with strategy archetypes, and `docs/BALANCE.md` records what was measured, which defaults came out of it, and which ideas were tried and thrown away. The shape of the problem, measured: the cheapest building was the best points on the board by a factor of three, so the optimal colony was a field of depots nobody stored anything in. A colony module — the win condition — needed 20 electronics against the 12.8 a map scattered, and nothing in the game produced any. An android lived a thousand rounds, so neither hazards nor attrition were decisions. Two players on a 16x16 board barely reached the same ground, and identical scripts finished 18-43% apart on map luck alone. What changed, with the numbers in the balance notes: - Industry is reachable and is now the strongest line of play. The processor refines metal and water into electronics, the acid plant turns cleaned-up acid into polymer, and polymer is no longer scattered at all — so a colony module can only be built by a player who has cleaned up part of the planet. The reference strategy lands an extractor on round 33 and a processor on round 40, against never. - The fleet is the multiplier and arrives immediately: a charger allows two androids, so a sibling can launch on round 1 rather than round 39. - Androids are consumables. Decay wears one out in about sixty-five rounds, and `match.replaceLostAndroids` sends a replacement to a player left with none — mortality without recovery is elimination, not attrition. - Sprawl no longer pays flat. Depots and chargers both diminish, because capping only the depot moved the sprawl onto chargers. - Hazards bite, the board is 12x12 (identical scripts now finish 3% apart), rich ore is rare enough to be worth contesting, and raiding is a contest: hostile salvage out-damages the new repair action, while banked material in a depot is safe from other players entirely. Nine defects surfaced along the way, all fixed and covered by tests. The four that mattered were economy-breaking: salvage paid out a share of a building's type cost rather than what was invested in it, so placing a colony-module site with an empty hold and taking it apart minted 54 units of material; a site's outstanding cost was totalled across all materials, so 20 units of worthless water bought a 6-metal depot; `resources` accepted negative amounts, so a deposit could mint a thousand metal into cargo; and "complete" meant two different things, so a ruleset with `ticks: 0` scored buildings nobody had paid for. Androids were also blind on their first turn, and lazily created players started one tile apart.
v0.7.0
v0.6.0
v0.5.1
Changes
- docs: improved information flow (#14) @morten-olsen
v0.5.0
v0.4.0
Changes
✨ Features
- feat: make every game constant a rule (#10) @morten-olsen
- feat: soften failed turns and keep destroyed androids in the world (#9) @morten-olsen
- feat: compile and bundle androids from typescript (#7) @morten-olsen