Commit Graph

18 Commits

Author SHA1 Message Date
f1b85862da docs: correct the rebuild-cost yardstick in ADR-0004 and the spec
Measured while building #16: at 10 000 enemies the grid rebuild costs
0.057 ms against 0.021 ms for move_enemies — 2.7x more, not less. ADR-0004
§3 counted arithmetic and missed what dominates: move_enemies is a linear
table walk, the rebuild writes into ~7000 scattered buckets.

The decision does not change. It never rested on the comparison but on the
absolute bound of 0.10 ms, and 0.057 ms is 0.34 % of the frame budget; an
incremental update would pay the same scattered write on every cell
crossing. Revision trigger 1 and the acceptance criterion of spec feature 3
are restated on that bound, which is what the runnable check now asserts.

Also records the second deviation the build produced: a cell holds
(Entity, Vec2) rather than Entity, because soft separation writes Transform
while reading its neighbours' positions.
2026-08-11 09:03:43 +02:00
0f93a939c0 feat: add enemies, spatial grid and soft separation
Enemies spawn on the arena rim, walk radially at the tower and stop at the
attack range. The spawner is cap-driven — it tops the field up to the target
population instead of placing N enemies on a schedule — so the target
population is the binding quantity the difficulty curve will stand on.

The spatial grid of ADR-0004 lands with them, because it now has its first
consumer and #17 needs it unchanged for target selection and projectile
collision. One full rebuild per frame is the only pass over the enemy set;
every consumer asks the grid.

Soft separation is a clamped positional offset, not a force: overlap stays
allowed, and capping the offset below one movement step is what keeps the
tower ring from pulsing.

Closes #16.
2026-08-11 09:03:36 +02:00
afeb09bdcd chore: bring skeleton branch up to date with master 2026-08-10 16:12:08 +02:00
d9688c74dc docs: record project lessons that are not derivable from code or ADRs 2026-08-10 16:09:57 +02:00
158d10b498 chore: track project instructions 2026-08-10 15:53:48 +02:00
bcc6d333d4 feat: add app skeleton with balance module, arena and tower 2026-08-10 15:50:58 +02:00
524f3fdaef docs: chart and specify the vertical slice
Schließt die /wayfinder-Reise ab (Karte: Issue #1). Enthält CONTEXT.md,
die Vertical-Slice-Spec, vier ADRs, den In-Run-HUD-Entwurf, den gesammelten
Wiki-Primärtext und den Perf-Spike, der das Entity-Budget gemessen hat.

Kein Produktionscode: src/main.rs bleibt das Bevy-Scaffold.
2026-08-10 15:07:59 +02:00
6e1df29364 refactor: drop spent ablation knobs from perf spike, trim ADR-0002 consequences 2026-08-10 15:07:36 +02:00
68a587b948 docs: add ADR-0004 spatial grid, fix Fraction stat mode, extend spec 2026-08-10 14:32:22 +02:00
a9486d745f docs: add vertical slice spec 2026-08-10 14:02:39 +02:00
cb13adce33 docs: add ADR-0003 on save format, location and migration 2026-08-10 13:46:03 +02:00
1d8175cb5a docs: add in-run HUD mockup 2026-08-10 13:38:25 +02:00
0c812e3c1c docs: add ADR-0002 on stat and modifier pipeline 2026-08-10 13:19:24 +02:00
6fa10f72de docs: add ADR-0001 on balancing data location 2026-08-10 13:02:57 +02:00
40a19f39db test: add throwaway perf spike measuring 2D entity budget 2026-08-10 12:38:20 +02:00
8f057e2991 docs: sharpen wave definition and flag Coins naming collision 2026-08-10 12:38:20 +02:00
445f133c90 docs: add CONTEXT.md with glossary and slice scope 2026-08-10 10:47:29 +02:00
c0e59df515 chore: initial commit (bevy 0.19 scaffold) 2026-08-10 09:01:50 +02:00