#!/usr/bin/env bash # Play a few rounds and print how the line-of-sight cache grew. # # ./scripts/los-growth.sh # # ROUNDS rounds to play before quitting (default: 4) # SEAT the faction the bot plays (default: the scenario's first) # SCENARIO the .mms (default: scenarios/mirror-lance.mms) # OUT where the run lands (default: runs/los-growth) # SDS_IMAGE the match image to run in # # Four rounds, not a benchmark. The cache lives for the whole match now, and # this is the reproducible way to see how fast it grows without reading a # twelve-thousand-line log: `sds.loscache` turns the bot's per-turn line into a # table. Delete the run directory afterwards; a match writes megabytes. set -euo pipefail export PATH="$HOME/.cargo/bin:$PATH" HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$HERE" ROUNDS="${ROUNDS:-4}" SCENARIO="${SCENARIO:-$HERE/scenarios/mirror-lance.mms}" OUT="${OUT:-$HERE/runs/los-growth}" SEAT="${SEAT:-$(sed -n 's/^Factions=\([^,]*\).*/\1/p' "$SCENARIO" | head -n 1)}" echo "==> $ROUNDS rounds of $(basename "$SCENARIO"), bot in the $SEAT seat" ./sds.sh --scenario "$SCENARIO" --max-rounds "$ROUNDS" --out "$OUT" \ one --bot /work/target/release/sds-bot --sds-seat "$SEAT" >/dev/null || true python3 -m sds.loscache "$OUT"