📦 Erster Sync via Git

This commit is contained in:
Dustin-Mike Jens Hähnel
2026-07-19 21:49:30 +02:00
commit bfcbbd2881
66 changed files with 2452 additions and 0 deletions
+117
View File
@@ -0,0 +1,117 @@
# Wave Survivors - Tech Stack & Standards
**Projekt:** ~/Projects/wave_survivors/
**Engine:** Flame 1.37.0
**Plattformen:** macOS, iOS, Android
**Status:** Setup-Phase (2026-07-12)
---
## 🎯 Top 10 Empfehlungen
### ✅ SOLLTE (höchste Priorität)
**1. AGENTS.md mit Code-Limits**
- Max 100 Zeilen pro Datei (enforced durch dart_code_metrics)
- Ponytail-Philosophie: "Kürzester funktionierender Diff gewinnt"
- Verhindert Code-Bloat
**2. flutter-development + flutter-code-review Skills**
- Bereits in ~/.hermes/skills/
- Flame-Engine Pitfalls + Quality Gates
- Automatische Code-Review
**3. Riverpod statt Bloc**
- Weniger Boilerplate
- Direkter State-Zugriff
- Besser für Game-Loops
**4. freezed für Data Models**
- Immutable Classes automatisch
- Eliminiert Boilerplate (copyWith, JSON)
- Type-safe Union Types
**5. Feature-first Ordnerstruktur**
```
lib/
├── features/player/
├── features/enemies/
├── features/weapons/
├── systems/
├── ui/
└── game/
```
**6. flame_lint + dart_code_metrics**
- Flame-spezifische Lint-Regeln
- Erzwingt max 100 Lines, max 4 Parameter
- Automatische Code-Qualität
---
### 🟡 OPTIONAL (mittlere Priorität)
**7. object_pool für Performance**
- Wiederverwendung von Enemy/Projectile-Objekten
- Verhindert GC-Spikes bei 50+ Enemies
**8. flame_tiled für Level-Design**
- Tiled Map Editor Integration
- Visuelles Level-Design
**9. flame_rive für Animationen**
- Hochwertige 2D-Animationen
- Besser als Sprite-Sheets
**10. talker für Logging**
- Unified Logging statt print()
- Crashlytics/Sentry Integration
---
### 🔧 Weitere Optionen (aus Sub-Agent Recherche)
**Flame Engine Addons:**
- **flame_forge2d: ^0.19.2+6** - Physik-Engine (Box2D) für Projektile, Knockback, Partikeleffekte
- **flame_state_machine: ^3.0.0** - Type-safe State Machines für Enemy AI, Player States (Idle, Attack, Hit)
- **flame_camera_tools: ^5.0.2** - Screen Shake, Camera Follow, Zoom-Effekte bei Hits
- **flame_svg: ^1.12.1** - Vektorgrafiken für UI-Elemente und skalierbare Assets
**Architecture & DI:**
- **get_it: ^9.2.1** - Service Locator für Dependency Injection
- **injectable: ^3.0.0** - Annotation-basierter Code-Generator (weniger Boilerplate)
- **injectable_generator: ^3.1.0** - Generator für injectable
**Logging Integration:**
- **talker_flutter: ^5.1.17** - Flutter-UI für talker Logs
- **talker_riverpod_logger: ^5.1.17** - Automatisches Logging aller Riverpod State-Änderungen
**Alternative zu Riverpod:**
- **bloc: ^9.2.1** + **flutter_bloc: ^9.1.1** - Event-driven, gut für komplexe Game Events
- **bloc_concurrency: ^0.3.0** - Parallelverarbeitung von Events
**Code Generation:**
- **build_runner: ^2.4.0** - Code Generation Framework
- **freezed_annotation: ^3.0.0** - Annotations für freezed
- **flutter_riverpod: ^3.3.2** - Flutter-Integration für Riverpod
**Linting:**
- **very_good_analysis: ^5.1.0** - Strengere Lint-Regeln (alternative zu flame_lint)
---
## 📋 Nächste Schritte
1. ✅ Flutter-Projekt erstellen
2. ✅ AGENTS.md erstellen (Ponytail + Code-Limits)
3. ✅ analysis_options.yaml konfigurieren
4. ✅ Riverpod + freezed installieren
5. ✅ Ordnerstruktur anlegen
6. ✅ Main Menu bauen
---
## 🔗 Links
- [[Wave Survivors - GDD]]
- [[Wave Survivors - Development Log]]