Refactor database connections to use per-query instances
DoubleSnake
Ein kooperatives Snake-Spiel für zwei Spieler, entwickelt mit Node.js, Express und Socket.IO.
📋 Projektübersicht
DoubleSnake ist eine moderne Interpretation des klassischen Snake-Spiels für zwei Spieler. Es ermöglicht Spielern, gemeinsam in Echtzeit zu spielen und Punkte zu sammeln. Das Spiel bietet ein Lobby-System zum Erstellen und Beitreten von Spielen sowie Benutzerkonten zur Spielerverwaltung.
🌟 Hauptfunktionen
- Benutzerkonten-System: Registrierung, Anmeldung und Profilbearbeitung
- Lobby-System: Erstellen und Beitreten von Spielen mit eindeutigen Codes
- Echtzeit-Multiplayer: Simultanes Spielen mit einem Partner
- Responsive Design: Optimiert für Desktop und mobile Geräte
🛠️ Technologien
- Frontend: HTML, CSS, JavaScript
- Backend: Node.js, Express
- Echtzeit-Kommunikation: Socket.IO
- Datenbank: MySQL2
- Authentifizierung: Bcrypt, Express-Session
🚀 Installation
Voraussetzungen
- Node.js (Version 18 oder höher)
- MySQL Server
Schritte zur Installation
-
Repository klonen
git clone [https://github.com/yourusername/doubleSnake.git](https://github.com/yourusername/doubleSnake.git) cd doubleSnake -
Datenbank einrichten
- Erstellen Sie eine MySQL-Datenbank mit dem Namen "doublesnake"
- Importieren Sie die Datenbankstruktur aus der Datei
doublesnake.sql
-
Umgebungsvariablen konfigurieren Erstellen Sie eine
.env-Datei im Backend-Verzeichnis mit folgenden Werten:SESSION_KEY=IhrGeheimesSessionKey PORT=3000 DB_HOST=localhost DB_PORT=3306 DB_PASSWORD=IhrDatenbankPasswort FRONTEND_PATH=../frontend -
Dependencies installieren
cd backend npm install -
Server starten
npm run dev # oder mit Nodemon npm run nm -
Anwendung öffnen Navigieren Sie zu
http://localhost:3000in Ihrem Browser
🐳 Docker-Installation
Das Projekt enthält zwei Docker-Konfigurationen:
Dockerfile– Für lokale Tests oder einfache Deployments.docker build -t doublesnake . docker run -p 3000:3000 -e DB_HOST=your-db-host -e DB_PASSWORD=your-db-password -e SESSION_KEY=your-session-key doublesnakeDockerfile.dokploy– Optimierte Variante für das Hosting über Dokploy. Hierbei wird nur der notwendige Produktionscode in ein Debian-basiertes Node.js-Image übertragen, damit Module wiebcryptohne zusätzliche Build-Tools funktionieren.docker build -f Dockerfile.dokploy -t doublesnake-prod . docker run -p 3000:3000 \ -e SESSION_KEY=your-session-key \ -e DB_HOST=your-db-host \ -e DB_PORT=3306 \ -e DB_USER=your-db-user \ -e DB_PASSWORD=your-db-password \ doublesnake-prod
💡 Für Dokploy sollte die Datenbank als externer Service eingebunden werden. Die oben aufgeführten Umgebungsvariablen können direkt im Dokploy-Dashboard konfiguriert werden. Der statische Frontend-Code wird automatisch in den Container kopiert, daher ist keine zusätzliche Konfiguration für
FRONTEND_PATHerforderlich.
🎮 Spielablauf
- Registrieren Sie sich für ein Konto oder melden Sie sich an
- Navigieren Sie zum Dashboard und wählen Sie "Lobby"
- Erstellen Sie eine neue Lobby oder treten Sie einer bestehenden mit einem Code bei
- Teilen Sie den generierten Code mit einem Freund
- Sobald zwei Spieler verbunden sind, beginnt das Spiel automatisch
- Steuern Sie Ihre Schlange, sammeln Sie Punkte und vermeiden Sie Kollisionen
👨💻 Entwicklung
Das Projekt ist in folgende Hauptkomponenten unterteilt:
- Server: Express und Socket.IO für HTTP- und Websocket-Kommunikation
- Datenbank: Benutzerkonten und -daten
- Lobby-System: Verwaltung von Spielräumen und Spielerzuordnung
- Game-Engine: Kernspielfunktionalität und -logik
📄 Lizenz
Dieses Projekt steht unter der MIT-Lizenz. Weitere Details finden Sie in der LICENSE-Datei.
