Algorithmen für Computerspiele Multiplayer Technologien
Gliederung 1. Einleitung 2. Das Internet 3. Existierende Probleme und Lösungen 4. Abschließende Worte
1.1 Motivation Gemeinsames Spielen Künstliche Intelligenz Echte Intelligenz E-Sport Kapazitäten sind begrenzt
1.2 Multiplayer Games Shooter (Counter Strike, Battlefield) Strategiespiele (Starcraft, Warcraft III) MMORPGs (World of Warcraft, Guild Wars 2) Sportspiele (FIFA, Rennspiele) Browsergames (Die Stämme, Farmerama)
2. Das Internet Netzwerke Entwicklung des Internets Protokolle Peer-to-Peer Client/Server
2.1 Netzwerke Entfernung Ort Beispiel 1 Meter System Multicomputer 10 1.000 Meter Raum, Gebäude, Campus Local Area Network (LAN) 10 Kilometer Stadt Metropolitan Area Network (MAN) 100 1.000 Kilometer Kontinent 10.000 Kilometer Planet Internet Wide Area Network (WAN)
2.1 Netzwerke
2.2 Entwicklung des Internets Vorläufer des Internets Time-Sharing System Distributed Network ARPANET
2.3 Protokolle ISO OSI Schichtenmodell Kommunikationsprotokolle Aufeinander aufbauend
2.3 Protokolle Internet Protocol (IP) Verbindungslos Paketorientiert ermöglicht Adressierung Datenverlust möglich
2.3 Protokolle User Datagram Protocol (UDP) Baut auf IP auf Verbindungslos Datenverlust möglich, keine Reihenfolgensicherung
2.3 Protokolle Transmission Control Protocol (TCP) Baut auf IP auf Verbindungsorientiert Datenverlust wird erkannt und behoben Fehlerbehandlung, Flusskontrolle, kein Datenverlust
2.4 Peer-to-Peer Peer Rechner direkt verbunden Vorteile Skalierbarkeit Robust gegen Ausfälle Jeder PC kann Dienste anbieten Nachteile Dezentral, somit schwer administrierbar Wenig Sicherheit
2.5 Client/Server Client Server Vorteile Zentralisiert, leicht administrierbar Sicherheit Keine Mehrfachspeicherung von Daten Nachteile Single-Point-of-Failure Schwierige Skalierbarkeit
3. Probleme und Lösungen Problem 1: Infrastruktur Hard- und Software Problem 2: Bandbreite Geschickte Programmierung Problem 3: Latenz Dead Reckoning Problem 4: Cheats NEO
3.1 Infrastruktur Hardware Lokal (Router, Leitung, PC-Hardware) Global (Serverkapazität, Bandbreite, Leitung) Software Lokal (Firmware, Treiber) Global (Firmware, Treiber, Software der Anbieter) Lösungsmöglichkeiten Hardware aufrüsten Software aktuell halten Neue Technologien
3.2 Bandbreite Welche Daten sind wichtig? Nur Referenzen Senden Berechnungen zum Client auslagern Angepasste Datenstrukturen Nur veränderte Daten übertragen Datenkomprimierung Worst-case Test
3.2 Bandbreite Wahl des Protokolls Paketreihenfolge Packet Bloating Paketfrequenz
3.3 Latenz Verzögerungszeit Die Zeit die eine Nachricht vom Sender zum Empfänger benötigt Setzt sich zusammen aus Probleme Ausbreitungsverzögerung Übertragungsverzögerung Wartezeit Informationen werden nicht rechtzeitig übermittelt
3.3.1 Dead Reckoning Distributed Interactive Simulation (DIS) Prinzip Jeder Teilnehmer simuliert Objekte unabhängig Z.B. Fahrzeuge Objekterzeuger sendet Information einmal Teilnehmer berechnen Bewegungen nun selbst Vergleich zwischen realer und simulierter Wirklichkeit Sammlung von Algorithmen
3.3.1 Dead Reckoning Protocol Data Unit (PDU) Identifikation Position Geschwindigkeit Beschleunigung Richtung Lebenspunkte
3.3.1 Dead Reckoning Reale und Simulierte Wirklichkeit Smoothing/Interpolation
3.3.1 Dead Reckoning Algorithmen Position t1 = Position t0 Position t1 = Position t0 + v t1 t0 Position t1 = Position t0 + v t1 t0 + 1/2a(t1 t0)
3.3.1 Dead Reckoning Erweiterungen Viele weitere Dinge können mittels DR simuliert werden Z.B. Geschützturm auf einem Fahrzeug Verträge Grenzen Objektsprung Viele unberechenbare Objekte
3.4 Cheats Erlangung nicht vorgesehener Vorteile Singleplayer Einfacher Spaß Ranglistenverfälschung Multiplayer Unfair
3.4 Cheats Game Level Cheats Spielregeln brechen Application Level Cheats Veränderungen am Programmcode Network Level Cheats Denial-of-service attack Protocol Level Cheats Modifizierung des Protokolls
3.4 Cheats Protocol Level Cheats Fixed-Delay Cheat Timestamp Cheat Suppressed Update Cheat Inconsistency Cheat Collusion Cheat
3.4.1 NEO New Event Ordering Protocol Peer-to-Peer Architektur MMOGs Verhindert Protocol Level Cheats Langsam gegenüber wenigen, schnell gegenüber vielen
3.4.1 NEO Authentifizierungskomponente Spieler sind eindeutig identifizierbar Generiert Schlüssel für das Spiel Kommunikationskomponente Selbstorganisierend, spiegelt die Struktur der virtuellen Welt Events erreichen nur die Spieler die sie tatsächlich sehen Speicherkomponente Speichert den Spielstatus Distributed Hash Table Berechnungskomponente Scheduling
3.4.1 NEO Zeit wird in Runden eingeteilt Jeder Spieler sendet in jeder Runde (verschlüsselte) Updates In der nachfolgenden Runde werden die Schlüssel versendet Kommen Updates nicht rechtzeitig an kann der Spieler nicht mitspielen Es reicht eine Mehrheit zu erreichen Einzelne Spieler mit hoher Latenz verzögern so nicht alles
3.4.1 NEO Nachrichtenformat Zeitstempel Signatur Verschlüsselte Nachricht für die aktuelle Runde Schlüssel für die Nachricht der vorherigen Runde Bit-Vektor mit erhaltenen Nachrichten (Voting) Nachricht wird akzeptiert wenn sie eine Mehrheit erreicht hat
3.4.1 NEO Fixed-Delay-Cheat Runden Zu spät ankommende Updates werden ignoriert Timestamp Cheat Nach Rundenende kann kein Spieler mehr Züge machen Suppressed Update Cheat NEO beobachtet Senderate Fehlen Updates von einer Person erhält diese ebenfalls keine Updates mehr
3.4.1 NEO Inconsistency Cheat Signaturen Statusabgleich Collusion Cheat Nötige Mehrheit kann beliebig angepasst werden Authentifizierungskomponente verhindert mehrfaches einloggen Augenzeugen
4. Ende Zusammenfassung Multiplayer immer beliebter Verschiedene Architekturen Begrenzte Kapazität Allgemeine, kleinere Lösungen Komplexere Lösungen Fragen
3.3.2 Hybrid Game Architecture Kombination von Server/Client und Peer-to-Peer Nutzt Server u.a. zur Cheatverhinderung Umgeht den Server als Flaschenhals Teilw. geringere Latenz (Server nicht immer beteiligt) Fokus auf Rollenspiele Statusverändernde Bewegungen Zentralserver Positionsbewegungen Regionale Server
3.3.2 Hybrid Game Architecture Zentralserver Registriert Spieler Überwacht Spieler Entfernt Spieler Wählt Regionale Server Regionale Server Spieler Vorzugsweiße in Zentralserver Nähe Geographisch zusammenliegende Spieler werden dann je einem Regionalen Server zugewiesen
3.3.2 Hybrid Game Architecture Bewegungen werden nur Regional behandelt Statusverändernde Updates dagegen Global
3.3.2 Hybrid Game Architecture Sparsamer Umgang mit Bandbreite Bewegungen werden nur regional behandelt Statusupdates werden nur zur den regionalen Server geschickt Cheats Zentralserver kontrolliert Statusverändernde Aktionen Problem Regionale Server müssen gefunden werden Zentralserver misst Spieler pathrate Maximale Latenz
3.3.2 Hybrid Game Architecture Evaluation Versuchsaufbau Einfaches, selbst entwickeltes Spiel Simulierte Spieler Verhalten Internetverbindung Künstlich erzeugte hohe Datenmengen Vergleich zwischen Client/Server und Hybrid Architecture Messungen Ein- und ausgehende Bandbreite Latenz jedes Zuges
3.3.2 Hybrid Game Architecture Unterschiedliche Regionendichte
3.3.2 Hybrid Game Architecture Anzahl Regionaler Server
3.3.2 Hybrid Game Architecture Ergebnisse Spart Bandbreite für den Zentralserver Geringe Latenz wenn genug Regionale Server zur Verfügung stehen