📦 Erster Sync via Git
This commit is contained in:
@@ -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]]
|
||||
Reference in New Issue
Block a user