Bereinigen und Entfernen von nicht mehr benötigten TinyMCE-Dateien und -Plugins; Aktualisierung der Internationalisierung für Deutsch und Englisch in den Falukant- und Navigationsmodulen; Verbesserung der Statusleiste und Router-Implementierung.
This commit is contained in:
175
README_MATCH3_CAMPAIGN.md
Normal file
175
README_MATCH3_CAMPAIGN.md
Normal file
@@ -0,0 +1,175 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user