Ein Multiplayer-Spiel basierend auf "Among Us" mit Next.js, Tailwind CSS und Supabase.
git clone https://github.com/Stevenrylski/ImposterGame.git
cd ImposterGame
npm install- Gehe zu supabase.com und erstelle ein kostenloses Konto
- Erstelle ein neues Projekt
- Kopiere die Project URL und anon public key aus den Projekteinstellungen
Erstelle eine .env.local Datei im Root-Verzeichnis:
NEXT_PUBLIC_SUPABASE_URL=deine-project-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=dein-anon-key- Gehe in dein Supabase-Projekt → SQL Editor
- Kopiere den Inhalt von
supabase-schema.sqlund führe ihn aus - Aktiviere Realtime für alle Tabellen in den Projekteinstellungen
npm run devÖffne http://localhost:3000 in deinem Browser.
- Minimum: 3 Spieler, Maximum: 15 Spieler
- Imposter: 1-3 (einstellbar vom Host)
- Ablauf:
- Wort-Phase: 15 Sekunden - alle sehen das Wort (außer Imposter)
- Diskussion: Freie Diskussion (optional: Text-Chat)
- Abstimmung: 60 Sekunden - Spieler wählen einen aus
- Imposter-Gewinn: Wenn das Wort erraten wird
- Crew-Gewinn: Wenn alle Imposter eliminiert werden
- Frontend: Next.js 14 (App Router), TypeScript, Tailwind CSS
- Backend: Supabase (PostgreSQL, Realtime, Auth)
- Styling: Dark Mode, Responsive Design
src/
├── app/ # Next.js App Router
│ ├── room/ # Spiel-Routen
│ └── globals.css # Globale Styles
├── components/ # React-Komponenten
│ ├── Lobby.tsx # Lobby-Ansicht
│ ├── GameView.tsx # Haupt-Spiel-Ansicht
│ ├── WordReveal.tsx # Wort-Anzeige
│ ├── VotingPhase.tsx # Abstimmungs-Phase
│ └── ...
├── lib/ # Utilities
│ └── supabase.ts # Supabase-Client
└── types/ # TypeScript-Typen
└── supabase.ts # Datenbank-Typen
# Development Server
npm run dev
# Build für Production
npm run build
# Production Server
npm start
# Linting
npm run lint- Grundstruktur mit Next.js und Tailwind
- UI-Komponenten für alle Spielphasen
- Supabase-Schema und Typen
- Realtime-Integration
- Spiel-Logik und Zustandsmanagement
- Room-Management (Join/Leave)
- Host-Funktionen
- Mobile Optimierung
- Error Handling
- Deployment
- Fork das Repository
- Erstelle einen Feature-Branch
- Committe deine Änderungen
- Push zum Branch
- Erstelle einen Pull Request
MIT License