2.6 KiB
2.6 KiB
Projektplan: Audiopoker (Bevy + Wasm)
Zielsetzung
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_audiofü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.
Implementierungsphasen
Phase 1: Fundament & Core Logic (MVP)
- Projektstruktur aufsetzen (
Cargo.toml; Modul-Strukturcore/audiobereinigt und verdrahtet). - Poker Engine: Hand-Rankings (inkl. Wheel-Straight, 7-Karten-Bestbewertung), Deck-Shuffling/Draw und einfache Betting-Logik (Fold/Check/Call/Raise, All-In) implementiert und getestet.
- Audio-Grundlagen:
audio::ttsruft die Web Speech API korrekt an (SpeechSynthesisUtterance); auf nativen Targets Dummy-Ausgabe für Tests. - Bevy-
App-Grundgerüst aufgesetzt:AudiopokerPlugin(src/game_plugin.rs) verdrahtetcore::game/core::logicundaudioüber Bevy-Messages (Announce,PlaySfx) mitStartup/Update-Systemen. API-Stand: Bevy 0.19 (Message/MessageWriter/MessageReader/add_message, seit 0.17 getrennt von Observer-Events). Bitte lokal mitcargo check/cargo runverifizieren, da hier kein zu Bevy 0.19 passender Compiler zur Verfügung stand.
Phase 2: Networking & Multiplayer
- Server-Architektur für Spielräume und Spielerverwaltung aufbauen.
- Netzwerkprotokoll für Aktionen (Deal, Bet, Fold) definieren.
- Multiplayer-Lobby und Tischsuche implementieren.
Phase 3: Audio Experience & UI
- TTS-Logik verfeinern (Kontextuelle Ausgaben).
- Soundeffekte einbinden.
- Minimalistisches, barrierefreies User Interface erstellen.
Phase 4: Polishing & Testing
- Barrierefreiheits-Audit (Tastatur-Flow ohne Maus).
- Latenztests im Multiplayer.
- WebAssembly Deployment Vorbereitung.