# Audiopoker Audiopoker ist ein barrierefreies Multiplayer-Pokergame für blinde Spieler, das primär über Audio (TTS & SFX) bedient wird. Das Spiel wird via Webbrowser aufgerufen und auf WebAssembly kompiliert. ## Technologie-Stack - **Engine:** Bevy (Rust) - **Target:** WebAssembly (Wasm) - **Networking:** WebSockets für die Synchronisation des Spielzustands. - **Audio-Output:** Web Speech API (via JS-Bindings) für Text-to-Speech, `bevy_audio` für Soundeffekte. - **Input:** Tastatur-zentrierte Steuerung (Tab/Space/Enter). ## Modul-Struktur - `core::logic`: Reine Poker-Logik (Deck, Hand-Evaluation, Betting) ohne grafische Abhängigkeiten. - `core::network`: Netzwerkprotokoll und WebSocket-Handhabung für Multiplayer-Synchronisation. - `audio::tts`: Interface zur Web Speech API für dynamisches Sprechen von Spielereignissen. - `audio::sfx`: Sound-Manager für atmosphärische Effekte (Chips, Karten mischen). - `ui_minimal`: Minimalistische Darstellung, optimiert für Barrierefreiheit und geringen Ressourcenverbrauch. ## Installation & Voraussetzungen Dieses Projekt verwendet Rust und das Bevy Framework. Um das Projekt zu starten, benötigen Sie: 1. **Rust:**Installieren Sie Rust über [rustup](https://rustup.rs/). 2. **Bevy Engine:** Die Abhängigkeiten werden automatisch via Cargo verwaltet. ### Starten des Projekts ```bash cargo run ``` ## Funktionsumfang (Roadmap) ### Phase 1: Fundament & Core Logic (MVP) - *Abgeschlossen* - [x] Projektstruktur aufsetzen. - [x] Poker Engine (Hand-Rankings, Deck-Shuffling/Draw, Betting-Logik). - [x] Audio-Grundlagen (`audio::tts` via Web Speech API). - [x] Bevy-App-Grundgerüst mit `AudiopokerPlugin`. ### Phase 2: Networking & Multiplayer - *In Planung* - [ ] Server-Architektur für Spielräume und Spielerverwaltung. - [ ] Netzwerkprotokoll für Aktionen definieren. - [ ] Multiplayer-Lobby und Tischsuche implementieren. ### Phase 3: Audio Experience & UI - *In Arbeit* - [x] TTS-Logik verfeinert (kontextuelle Ansagen). - [x] Soundeffekte eingebunden (Event-Ebene). - [x] Tastaturzentrierte Steuerung. - [ ] Mehrspieler-lokal-Testbarkeit verbessern. - [ ] Neue Hand nach Showdown automatisch starten. ### Phase 4: Polishing & Testing - *In Planung* - [ ] Barrierefreiheits-Audit (Tastatur-Flow). - [ ] Latenztests im Multiplayer. - [ ] WebAssembly Deployment Vorbereitung.