Files
hermes-vault/Projects/Wave Survivors - Tech Stack.md
T

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

  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