# 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]]