Files
yourpart3/README_MATCH3_CAMPAIGN.md

6.2 KiB

Match3 - Juwelen Kampagne

Übersicht

Das Match3-Spiel wurde von einem einfachen Spielmodi-System zu einem vollständigen Kampagnen-System umgebaut. Spieler starten direkt in die Kampagne und müssen Level für Level verschiedene Ziele erreichen.

Neue Features

🎯 Kampagnen-System

  • Direkter Start: Keine Spielmodi-Auswahl mehr, Spieler starten sofort in die Kampagne
  • Level-basierter Fortschritt: Jedes Level hat spezifische Ziele und Anforderungen
  • Stern-System: Spieler können 1-3 Sterne pro Level verdienen
  • Fortschrittsspeicherung: Alle Daten werden im Backend gespeichert

🏆 Level-Objectives

  • Punkte-Ziele: Sammle eine bestimmte Anzahl von Punkten
  • Match-Ziele: Mache eine bestimmte Anzahl von Matches
  • Effizienz-Ziele: Verwende weniger Züge als vorgegeben
  • Zeit-Ziele: (Zukünftig) Schließe das Level in einer bestimmten Zeit ab

📊 Fortschrittsverfolgung

  • Persistente Daten: Spielstand wird in der Datenbank gespeichert
  • Benutzerstatistiken: Detaillierte Übersicht über alle Kampagnen
  • Bestenlisten: Vergleich mit anderen Spielern
  • Versuchszähler: Verfolgung der Versuche pro Level

Technische Architektur

🗄️ Backend-Schema

Neue Tabellen im match3 Schema:

  1. match3_campaigns

    • Kampagnen-Informationen (Name, Beschreibung, Reihenfolge)
    • Aktiv/Inaktiv-Status
  2. match3_levels

    • Level-spezifische Einstellungen (Brettgröße, Juwelen-Typen)
    • Verknüpfung zu Kampagnen
    • Züge- und Zeitlimits
  3. match3_objectives

    • Level-Ziele mit Typ, Beschreibung und Zielwert
    • Verschiedene Operatoren (>=, <=, =, >, <)
  4. match3_user_progress

    • Kampagnen-Fortschritt pro Benutzer
    • Gesamtpunktzahl, Sterne und abgeschlossene Level
  5. match3_user_level_progress

    • Detaillierter Level-Fortschritt
    • Bestwerte und Versuchszähler

🔧 Backend-Services

Match3Service

  • getActiveCampaigns(): Lädt alle aktiven Kampagnen
  • getCampaign(campaignId): Lädt eine spezifische Kampagne
  • getUserProgress(userId, campaignId): Lädt Benutzerfortschritt
  • updateLevelProgress(): Aktualisiert Level-Fortschritt
  • getLeaderboard(): Lädt Bestenliste
  • getUserStats(): Lädt Benutzerstatistiken

Match3Controller

  • RESTful API-Endpunkte für alle Match3-Operationen
  • Authentifizierung erforderlich für alle Routen
  • Fehlerbehandlung und Validierung

🌐 API-Endpunkte

GET    /api/match3/campaigns              - Alle aktiven Kampagnen
GET    /api/match3/campaigns/:id          - Spezifische Kampagne
GET    /api/match3/campaigns/:id/progress - Benutzerfortschritt
POST   /api/match3/campaigns/:id/levels/:levelId/progress - Fortschritt speichern
GET    /api/match3/campaigns/:id/leaderboard - Bestenliste
GET    /api/match3/stats                  - Benutzerstatistiken

🎮 Frontend-Änderungen

Match3Game.vue

  • Entfernt: Spielmodi-Auswahl, Highscore-System
  • Hinzugefügt: Kampagnen-Status, Level-Info, Objective-Anzeige
  • Neue Dialoge: Level-Abschluss, Kampagnen-Abschluss
  • API-Integration: Laden und Speichern von Kampagnen-Daten

Lokalisierung

  • Neue Übersetzungsschlüssel für Kampagnen-System
  • Deutsche und englische Lokalisierung
  • Konsistente Benennung

Installation & Setup

1. Backend starten

cd backend
npm start

Das Backend erstellt automatisch:

  • Das match3 Schema
  • Alle erforderlichen Tabellen
  • Beispieldaten (Kampagne + 2 Level)

2. Frontend starten

cd frontend
npm run dev

Automatische Initialisierung

Das System initialisiert sich automatisch beim ersten Start:

  • Schema-Erstellung: utils/sequelize.js erstellt das match3 Schema
  • Tabellen-Synchronisation: Sequelize erstellt alle Tabellen mit sync({ alter: true })
  • Beispieldaten: utils/initializeMatch3.js erstellt die erste Kampagne
  • Assoziationen: models/associations.js verknüpft alle Modelle

Beispieldaten

Die automatische Initialisierung erstellt:

  • 1 Kampagne: "Juwelen-Meister"
  • 2 Level: "Der Anfang" und "Erste Herausforderung"
  • 5 Objectives: Verschiedene Ziele für beide Level

Erweiterte Funktionen

🔮 Zukünftige Entwicklungen

  • Mehr Kampagnen: Verschiedene Themen und Schwierigkeitsgrade
  • Spezial-Juwelen: Power-ups und Bonus-Effekte
  • Multiplayer: Wettbewerbe zwischen Spielern
  • Achievements: Belohnungssystem für besondere Leistungen
  • Tägliche Herausforderungen: Neue Ziele jeden Tag

🎨 Anpassungsmöglichkeiten

  • Neue Objective-Typen: Einfach über das Datenbankschema erweiterbar
  • Kampagnen-Editor: Admin-Interface zum Erstellen neuer Kampagnen
  • Benutzerdefinierte Level: Spieler können eigene Level erstellen
  • Themen-Skins: Verschiedene visuelle Stile

Wartung & Monitoring

📈 Metriken

  • Spieler-Engagement pro Kampagne
  • Level-Abschlussraten
  • Durchschnittliche Spielzeit
  • Beliebte Kampagnen

🛠️ Admin-Funktionen

  • Kampagnen aktivieren/deaktivieren
  • Level-Parameter anpassen
  • Objective-Ziele optimieren
  • Benutzerfortschritt zurücksetzen

Technische Details

Modul-Struktur

  • ES6-Module: Alle neuen Dateien verwenden import/export
  • Konsistente Struktur: Folgt dem bestehenden Projekt-Pattern
  • Zentrale Assoziationen: Alle Beziehungen in models/associations.js
  • Automatische Schema-Erstellung: Keine manuellen Migrationen nötig

Datenbank-Design

  • Flexible Objective-Systeme: Verschiedene Zieltypen und Operatoren
  • Performance-Optimiert: Indizes auf häufig abgefragten Feldern
  • Referentielle Integrität: Foreign Key Constraints für Datenkonsistenz
  • Skalierbar: Einfach um neue Kampagnen und Level erweiterbar

Fazit

Das neue Kampagnen-System verwandelt das einfache Match3-Spiel in ein vollwertiges, progressives Spielerlebnis. Durch die Backend-Integration werden alle Spielstände persistent gespeichert und ermöglichen eine langfristige Spielerbindung.

Die modulare Architektur macht es einfach, neue Kampagnen, Level und Objective-Typen hinzuzufügen, ohne den bestehenden Code zu beeinträchtigen. Das System initialisiert sich automatisch und erfordert keine manuellen Datenbankoperationen.