chore: Musik als MP3 64 kbit/s, Sync-Skript ausführbar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lukas Müllner 2026-11-13 16:25:58 +01:00
parent ff37b52711
commit be6cbfe9e1
3 changed files with 11 additions and 4 deletions

View file

@ -138,5 +138,7 @@ Abgabe: **9. Dezember 2026, 03:00 MEZ**. Eingereicht wird in „Best Daily Game
- Ziele (`computeGoals`, 7 Bot-Partien) plus Nachspielen dauern in Node ≈ 80 ms – unproblematisch für den Server.
Für die Prüfung **nicht** `verifyProgress` aus `progress.ts` nehmen: das zieht Kampagnen-JSONs ins Bundle und kennt
nur die Website-Tageskarte. Eigene Prüfung aus `applyMoves` + `computeGoals` + `starsOf`.
- Musik: vorerst ein Titel („Peaceful Village“, MP3, 1,6 MB) – MP3 läuft auch in iOS-Webviews. Ein Größenlimit für
- Musik: ein Titel („Peaceful Village“), vom Sync-Skript aus der Opus-Datei des Hauptspiels als **MP3 64 kbit/s**
kodiert (1,0 statt 1,6 MB; Besitzer hat Varianten verglichen). MP3 läuft auch in iOS-Webviews. Ein Größenlimit für
Webview-Assets steht nicht in der Doku; weitere Titel in `scripts/sync-engine.sh` (`musik=(…)`) ergänzen.
- Biome: Ordner-Ausschluss als `"!src/engine"` schreiben – `"!src/engine/"` mit Schrägstrich griff nicht.

11
scripts/sync-engine.sh Normal file → Executable file
View file

@ -13,10 +13,11 @@ ziel="$(cd "$(dirname "$0")/.." && pwd)/src/engine"
commit="$(git -C "$repo" rev-parse --verify "$tag^{commit}")"
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
# Musik: nur MP3 (läuft überall, auch in iOS-Webviews) und nur wenige Titel – jeder ≈ 2 MB
# Musik: wenige Titel, als MP3 mit 64 kbit/s (läuft überall, auch in iOS-Webviews; ≈ 1 MB je Titel).
# Quelle ist die Opus-Datei des Hauptspiels (bessere Vorlage als dessen 96-kbit/s-MP3); braucht ffmpeg.
musik=(peaceful-village)
musik_pfade=()
for titel in "${musik[@]}"; do musik_pfade+=("public/audio/music/$titel.mp3"); done
for titel in "${musik[@]}"; do musik_pfade+=("public/audio/music/$titel.webm"); done
git -C "$repo" archive "$commit" src/core src/campaign src/puzzles public/sprites/tiles public/sprites/themes \
"${musik_pfade[@]}" | tar -x -C "$tmp"
@ -31,7 +32,11 @@ public="$(dirname "$ziel")/../public"
rm -rf "$public/sprites" "$public/audio"
mkdir -p "$public/sprites" "$public/audio"
cp -r "$tmp/public/sprites/tiles" "$tmp/public/sprites/themes" "$public/sprites/"
cp -r "$tmp/public/audio/music" "$public/audio/"
mkdir -p "$public/audio/music"
for titel in "${musik[@]}"; do
ffmpeg -v error -y -i "$tmp/public/audio/music/$titel.webm" -map_metadata -1 -c:a libmp3lame -b:a 64k -ar 44100 \
"$public/audio/music/$titel.mp3"
done
printf 'tag: %s\ncommit: %s\n' "$tag" "$commit" > "$ziel/VERSION"
echo "Engine synchronisiert: $tag ($commit)"