176 lines
6.2 KiB
Markdown
176 lines
6.2 KiB
Markdown
# 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**
|
|
```bash
|
|
cd backend
|
|
npm start
|
|
```
|
|
|
|
Das Backend erstellt automatisch:
|
|
- Das `match3` Schema
|
|
- Alle erforderlichen Tabellen
|
|
- Beispieldaten (Kampagne + 2 Level)
|
|
|
|
### 2. **Frontend starten**
|
|
```bash
|
|
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.
|