Ein Tool zur Analyse von StarCraft 2 Replay-Dateien mit Go-Backend und Vue.js-Frontend.
- Replay Upload: Hochladen und Parsen von .SC2Replay Dateien
- Supply Block Analyse: Erkennung und Visualisierung von Supply Blocks
- Spending Quotient: Berechnung und Bewertung des Resource Management
- APM Tracking: Aktionen pro Minute im Zeitverlauf
- Build Order Extraktion: Automatische Extraktion der ersten 8 Minuten
- Inject Analyse (Zerg): Effizienz der Spawn Larva Injects
- Armeewert Tracking: Entwicklung des Armeewerts über Zeit
- Verbesserungsvorschläge: Priorisierte Tipps basierend auf der Analyse
- Trends: Verbesserungstrends über mehrere Spiele
- Backend: Go mit s2prot, chi Router, SQLite
- Frontend: Vue 3, TypeScript, TailwindCSS, ApexCharts
- Datenbank: SQLite
sc2-analytics/
├── backend/
│ ├── cmd/server/main.go # Entry Point
│ ├── internal/
│ │ ├── api/ # REST API Handler
│ │ ├── parser/ # s2prot Replay Parser
│ │ ├── analyzer/ # Analyse-Module
│ │ │ ├── macro/ # Supply, Inject, Spending
│ │ │ ├── micro/ # APM, Army
│ │ │ └── builds/ # Build Order
│ │ ├── models/ # Datenmodelle
│ │ └── repository/ # SQLite Repository
│ └── go.mod
├── frontend/
│ ├── src/
│ │ ├── views/ # Seiten
│ │ ├── components/ # Vue Komponenten
│ │ ├── stores/ # Pinia State
│ │ └── api/ # API Client
│ └── package.json
└── Makefile
cd backend
go mod download
go build -o bin/server ./cmd/servercd frontend
npm install
npm run buildTerminal 1 - Backend:
make backend-dev
# oder
cd backend && go run ./cmd/serverTerminal 2 - Frontend:
make frontend-dev
# oder
cd frontend && npm run devmake build
make runDas Backend läuft auf http://localhost:8080, das Frontend auf http://localhost:5173.
| Methode | Endpoint | Beschreibung |
|---|---|---|
| POST | /api/v1/replays/upload |
Replay hochladen |
| GET | /api/v1/replays |
Alle Replays auflisten |
| GET | /api/v1/replays/:id |
Replay Details |
| GET | /api/v1/replays/:id/analysis |
Vollständige Analyse |
| GET | /api/v1/stats/trends |
Verbesserungstrends |
- Erkennt Zeiträume, in denen Supply = Max Supply
- Klassifiziert nach Schweregrad: <5s (leicht), 5-15s (mittel), >15s (schwer)
Formel: SQ = 35 * (0.00137 * avgIncome - ln(avgUnspent + 1)) + 240
Bewertung:
- < 70: Verbesserungswürdig
- 70-90: Unterdurchschnittlich
- 90-110: Durchschnittlich
- 110-130: Gut
-
130: Exzellent
- Durchschnitts-APM über gesamtes Spiel
- Peak-APM
- EAPM (Effective APM, filtert Spam)
Der Server akzeptiert folgende Flags:
-port int Server Port (default 8080)
-db string Pfad zur SQLite Datenbank (default "./data/sc2analytics.db")
-uploads string Upload-Verzeichnis (default "./data/uploads")
Tracking wird nur aktiviert, wenn beide Vite-Variablen gesetzt sind:
VITE_UMAMI_SCRIPT_URL=https://umami.myhost/script.js
VITE_UMAMI_WEBSITE_ID=11111111-1111-1111-1111-111111111111Lokal: Variablen in frontend/.env setzen (siehe frontend/.env.example).
Docker Compose: Variablen in der root-.env setzen (werden als Build-Args durchgereicht).
Hinweis: VITE_... Variablen sind Build-Time-Konfiguration. Nach Änderungen ist ein neuer Frontend-Build nötig (npm run build bzw. docker compose build).
MIT