3.2 KiB
3.2 KiB
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
- ✅ Flutter-Projekt erstellen
- ✅ AGENTS.md erstellen (Ponytail + Code-Limits)
- ✅ analysis_options.yaml konfigurieren
- ✅ Riverpod + freezed installieren
- ✅ Ordnerstruktur anlegen
- ✅ Main Menu bauen