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:
-
match3_campaigns- Kampagnen-Informationen (Name, Beschreibung, Reihenfolge)
- Aktiv/Inaktiv-Status
-
match3_levels- Level-spezifische Einstellungen (Brettgröße, Juwelen-Typen)
- Verknüpfung zu Kampagnen
- Züge- und Zeitlimits
-
match3_objectives- Level-Ziele mit Typ, Beschreibung und Zielwert
- Verschiedene Operatoren (>=, <=, =, >, <)
-
match3_user_progress- Kampagnen-Fortschritt pro Benutzer
- Gesamtpunktzahl, Sterne und abgeschlossene Level
-
match3_user_level_progress- Detaillierter Level-Fortschritt
- Bestwerte und Versuchszähler
🔧 Backend-Services
Match3Service
getActiveCampaigns(): Lädt alle aktiven KampagnengetCampaign(campaignId): Lädt eine spezifische KampagnegetUserProgress(userId, campaignId): Lädt BenutzerfortschrittupdateLevelProgress(): Aktualisiert Level-FortschrittgetLeaderboard(): Lädt BestenlistegetUserStats(): 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
match3Schema - 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.jserstellt dasmatch3Schema - Tabellen-Synchronisation: Sequelize erstellt alle Tabellen mit
sync({ alter: true }) - Beispieldaten:
utils/initializeMatch3.jserstellt die erste Kampagne - Assoziationen:
models/associations.jsverknü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.