Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele
Warum? Die erste Frage die ich mir stelle
Gemeinsamkeiten bisheriger Lösungen 1.Nicht ins Spiel integriert 2. Serverbasiert 3. Kanal-basiert Teamspeak, Ventrillo, Roger Wilco, XBox-Live Wir werden die 3 Punkte im Detail besprechen.
Nicht ins Spiel integriert Spieler 1 Spiele- server Spieler 2 Spieler 3 Audio- server Spieler 4 Resultierende Probleme: Warum brauche ich eine Extrasoftware und Hotkeys für de Steuerung? (Kontrolle) Warum kann ich nicht entscheiden wen ich hören will? (Kontrolle) Warum kann ich nicht mit meinem direkten Gegenüber sprechen? (Intuitiv) Warum sehe kann ich nicht erkennen wer mit mir spricht? (Intuitiv) Sprache ist losgelöst vom Spiel Spieledaten Audiodaten
Serverbasierte Audiokommunikation Spielewelt Reale Welt 1 1 2 3 S 2 S 4 4 3 Hohe Kosten für Anbieter einer solchen Lösung preise für einen TS server für 200Leute liegt bei 50€ im Monat. (WoW hat 10 Millionen Teilnehmer) Delay ist davon abhängig ob sich der server im „Schwerpunkt“ aller Teilnhemer befindet. Hohe Kosten für Anbieter Hohe Delays weit entfernte Spieler (z.B. #4)
Kanal-basiert : Modell Informations- quelle Ziel Transmitter Kanal Receiver Shannon, Weaver und Schramm Störung
Wenn man 2 Leute hat funktioniert Kommunikation über einen Kanal super Wenn man 2 Leute hat funktioniert Kommunikation über einen Kanal super! Siehe Telefon
Problem: Viele Teilnehmer aber nur 1 Kanal Wenn jetzt aus 2 Leuten 6 werden wird die Sache nicht mehr ganz so übersichtlich.
1-Kanal-Modell Informations- quelle Ziel Transmitter Receiver - Kanal ist limitiertert (Bsp. Reden zu viele Leute gleichzeitig kann keiner jemanden verstehen) - Störungen betreffen gleich alle (Bsp. Ein Spieler hört Musik und alle müssen mithören) - Keine Kontrolle über Empfang und Versand der Nachricht (Jeder bekommt alle Nachrichten auch wenn er das garnicht will) - Keine Zuordnung zwischen Sprache und Avataren (Bsp. Sprache kommt jederzeit und man weiß nicht von wem) Transmitter Störung Receiver
Resultierende Probleme 1. Sprache losgelöst vom Spiel 2. Hohe Kosten und Delay 3. Fehlende Kontrolle Warum brauche ich eine Extrasoftware und Hotkeys für de Steuerung? (Kontrolle) Warum kann ich nicht entscheiden wen ich hören will? (Kontrolle) Warum kann ich nicht mit meinem direkten Gegenüber sprechen? (Intuitiv) Warum sehe kann ich nicht erkennen wer mit mir spricht? (Intuitiv) Warum soll ich für Sprache im Spiel extra zahlen? (Kosten) Warum können nicht alle Provider einfach eine die Sprachkommunikation integrieren (Kosten)
3 Ziele 1. Sprache ins Spiel integrieren 2. Kosten und Delay senken 3. Kontrolle verbessern
Peer-to-Peer – Die Lösung für alles?
1. Kosten senken
Peer-to-Peer Keine Kosten für Anbieter Direkte Wege Spielewelt Reale Welt 1 1 2 3 2 4 4 3 Keine Kosten für Anbieter Direkte Wege
2. Kontrolle verbessern
Peer-to-Peer: direkte Kanäle
N-Kanal-Modell Informations- quelle Ziel Transmitter Kanal Receiver Jedes Gespräch erhält einen Kanal Genaue Adressierung Lokale Kontrolle Keine Interferenzen Transmitter Kanal Receiver Störung
3. Integration ins Spiel
Neue Probleme Wie kontrolliert man eine P2P-Audio- Konferenz? Wie nutzt man die geringe Bandbreite der Clients effizient?
3.1 Wie kontrolliert man eine P2P-Audio-Konferenz?
SIP
Session Initiation Protocol Unterschied zwischen Signalisierung und Audiostrom Signalisierung / Audio Zentral Dezentral Serverbasierte Lösungen Hybrid Serverbasierte Lösungen sind Teamspeak, Ventrillo etc... Hybrid dünn: Audio zentral aber signalisierung dezentral macht nicht so viel Sinn weil wir die größte Datenmenge zentralisieren Hybrid dick: Audio dezentral bei Clients und nur ein Server für Kontrolle nötig Dez Dez: Skype hoher Aufwand notwendig um ein funktionierendes P2P SIP zu ermöglichen. Hybird Komplett dezentrale Lösungen (z.B. Skype)
Hybrides dezentrales Audiomixing Client Client Mixer Mixer Konf Signalisierung Audiostrom Registrar
3.2 Wie nutzt man die geringe Bandbreite der Clients effizient?
Intuitive Lösung: Metaphern der Übertragung von Sprache
Walkie Talkies = 1-Kanal-Modell Mobil, Funktioniert ohne nummern, alle sind in einem Kanal. Man kann jeden erreichen.
Full-Mesh Spielewelt Bandbreite Knoten 1 2 Bandbreite Knoten 1 5 4 3 Will man tatsächlich das Audiosignal von 50 personen gleichzeitig hören?
Sprache per Luft = N-Kanal-Modell % Übertragung per Luft, man muss keine Nummern kennnen erreicht aber nur Leute in seiner umgebung.
Hörreichweite Area of Interest bei Sprache 1 Hörreichweite definiert wann eine Verbindung aufgebaut werden muss Beschränkt die Anzahl der Verbindungen
Partialmesh 1 Spielewelt 2 5 Bandbreite Knoten 1 4 3
Proxemik
Proxemik-Zonen 10m 3m 1m Persönliche Zone Soziale Zone Öffentliche Zone
Schall in der Luft 100% 0% 1m 3m Persönliche Zone Soziale Zone Öffentliche Zone Lautstärke 100% 0% 1m 3m Entfernung
Schall in der Luft 100% 0% 1m 3m Persönliche Zone Soziale Zone Öffentliche Zone Lautstärke 100% 0% 1m 3m Entfernung
Öffentliche Zone Aufbau der logischen SIP Verbindung 5 Aufbau der logischen SIP Verbindung Kein Austausch von Audioinformationen Techniken: Silence-Suppression mit RTP SIP-HOLD
Soziale Zone Anpassung der Lautstärke Metapher der Luftübertragung 5 Anpassung der Lautstärke Metapher der Luftübertragung Viele Spieler, mittlere Sprachqualität (8 KBit / s)
Persönliche Zone Keine Anpassung der Lautstärke 5 Keine Anpassung der Lautstärke Wenig Spieler, hohe Audioqualität (16 Kbit / s)
Partialmesh mit 3 Zonen Spielewelt Bandbreite Knoten 1 2 Bandbreite Knoten 1 5 4 3 Bandbreite Knoten 4
Implementierung
Irrlicht PjSIP OpenSer Architektur Irrlicht PjSIP 3D Framework: Irrlicht andere Kanditaten Ogre3D. Spieleframeworks Nexuiz, Quake, Sauerbraten VoiP Framework: PjSIP Sip Protokollstapel. Auch SIP Phones möglich, aber nicht so vielseitig verwendbar. Andere Kanditaten Skype (nicht offen), TS, Ventrillo etc.. Proprietär serverbasiert... Server Opennser auch Asterisk möglich OpenSer
Mixing Konzept Walkie-Talkie Luftübertragung
Konferenz Brücke Slot1 Slot2 Mic Slot3 Slot3 Slot3 Slot3 Slot4
Proxemik Logik Sip Anruf Sip Anruf beenden Konferenz verlassen 8 KBit Codec Öffentliche Zone Soziale Zone Private Zone Konferenz betreten 16 KBit Codec Silence Suppression Lautstärke anpassen
Messung Proxemik-Zonen
Fragen?
Vielen Dank für Ihre Aufmerksamkeit
Zusätzliche Folien
SIP im Protokollstapel
SIP Signalisierung
Messung SIP als Netzwerkschicht
SIP als Netzwerkschicht
Partialmesh Worstcase Spielewelt Bandbreite Knoten 1 1 2 3 4
PjSIP
Ventrillo Administration
Ausblick P2PSIP (DHT) 3D-Positionierung (HRTF) Variable Bitrate (Speex VBR) Supernodes Evaluierung im tatsächlichen Spiel