{"id":1368,"date":"2011-08-17T09:40:43","date_gmt":"2011-08-17T09:40:43","guid":{"rendered":"http:\/\/www.lukas-kalinowski.com\/Homepage\/?page_id=1368"},"modified":"2016-06-19T15:38:56","modified_gmt":"2016-06-19T15:38:56","slug":"masterarbeit-2011","status":"publish","type":"page","link":"http:\/\/www.lukas-kalinowski.com\/Homepage\/masterarbeit-2011\/","title":{"rendered":"Masterarbeit 2011"},"content":{"rendered":"<p>&nbsp;<\/p>\n<h2><span style=\"color: #3282cd;\"><\/p>\n<p style=\"text-align: center;\">Einsatz von Latenzkompensierungsverfahren bei der Realisierung von verteilten interaktiven grafischen Echtzeitanwendungen<\/p>\n<p><\/span><\/h2>\n<h3><span style=\"color: #3282cd;\">Bearbeiter<\/span><\/h3>\n<ul>\n<li>Lukas Kalinowski<\/li>\n<\/ul>\n<h3><span style=\"color: #3282cd;\">Betreuende Professoren<\/span><\/h3>\n<ul>\n<li>Erster betreuender Professor Prof. Dr. Martin Rumpler<\/li>\n<li>Zweiter betreuender Professor Prof. Dr. Stefan Naumann<\/li>\n<\/ul>\n<h3><span style=\"color: #3282cd;\">Kurzdarstellung<\/span><\/h3>\n<p style=\"text-align: justify;\">Der Fortschritt der Computertechnologie und das Aufkommen des Internets erm\u00f6glichen es, interaktive grafische Echtzeitanwendungen zu entwickeln und \u00fcber ein Netzwerk zu verteilen. Bei der \u00dcbertragung von Daten kommt es st\u00e4ndig zu Verz\u00f6gerungen bei der Netzwerk-kommunikation. Dies stellt sich vor allem als Problem bei Echtzeitanwendungen dar, da bei diesem Anwendungstyp \u00c4nderungen sofort wahrgenommen werden und Verz\u00f6gerungen folglich den Anwendungsablauf beeintr\u00e4chtigen.<br \/>\nIn dieser Arbeit werden Verfahren untersucht, um Latenz zu kompensieren und so einen fl\u00fcssigen Ablauf der Echtzeitanwendung zu erhalten.<br \/>\nZun\u00e4chst werden Grundlagen zu Netzwerktechnologien erl\u00e4utert. Dabei wird vor allem der Frage nachgegangen, wie Latenz entsteht, welche Arten der Latenz existieren und welche Auswirkungen Latenz auf verteilte interaktive grafische Echtzeitanwenden hat. Danach wer-den unterschiedliche Verfahren, um der Verz\u00f6gerung entgegenzuwirken zun\u00e4chst theoretisch erl\u00e4utert. Mit Hilfe einer Netzwerk-Bibliothek wird ein Beispiel Netzwerk-Game basierend auf einer Client\/Server Topologie entwickelt, in welchem in einer virtuellen Umgebung eine Schneeballschlacht zwischen Spielern ausgetragen wird. Anhand dieser Beispielanwendung werden mehrere Verfahren implementiert und evaluiert. Dabei werden die Latenz und weitere Faktoren k\u00fcnstlich erh\u00f6ht, der Spielablauf beobachtet und ausgewertet. Es hat sich herausgestellt, dass jedes Verfahren eine Kehrseite besitzt und folglich immer ein auf die Anwendung zugeschnittener Kompromiss gefunden werden muss. Es stellte sich heraus, dass mit dem R\u00fcckgang der Reaktionsgeschwindigkeit der Anwendung ein Ausgleich der Verz\u00f6gerung erreicht werden konnte, was zur Erh\u00f6hung der Spielbarkeit f\u00fchrte.<br \/>\nDie daraus gewonnenen Erkenntnisse k\u00f6nnten f\u00fcr die Entwicklung von k\u00fcnftigen Netzwerk-Games von Bedeutung sein.\n<\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #3282cd;\"><\/p>\n<p style=\"text-align: left;\">Umgesetzte Verfahren<\/p>\n<p><\/span><\/h2>\n<h3><span style=\"color: #3282cd;\">Abspielverz\u00f6gerung und Interpolation<\/span><\/h3>\n<p style=\"text-align: justify;\">Bei diesem Verfahren wird anders als bei &#8222;Dead Reckoning&#8220; die Ende-zu-Ende-Latenz erh\u00f6ht.. Der Fehler, der bei \u201eDead Reckoning&#8220; aufgrund der Extrapolation entsteht, gibt<br \/>\nAnlass f\u00fcr ein solches gegens\u00e4tzliches Verfahren. Wie der Name bereits vermuten  l\u00e4sst, werden zugesandte Spiel-zust\u00e4nde nicht  sofort abgespielt,  sondern eine gewisse Zeit lang gepuffert.  Zur Rekapitulation, bei Dead Reckoning wurden Benutzeraktionen direkt ausgef\u00fchrt und es war ungewiss, ob beim entfernten Spieler in Zukunft die extrapolierte Position mit der des lokalen Spielers \u00fcbereinstimmt.<br \/>\nBei  &#8222;Abspielverz\u00f6gerung und Interpolation&#8220; puffert der Client mindestens zwei Spielzust\u00e4nde und interpoliert von einem zum anderen, bis ein weiterer Spielzustand ankommt. Indem beim Client das Abspielen von Spieleraktionen in der Zeit verz\u00f6gert wird, entsteht f\u00fcr den Client keine Ungewissheit, da immer neue Spielzust\u00e4nde zur Verf\u00fcgung stehen.<br \/>\nSpielzust\u00e4nde k\u00f6nnen bei  &#8222;Abspielverz\u00f6gerung und Interpolation&#8220;  ebenfalls wie bei Dead Reckoning in einer niedrigen Frequenz versandt werden. Wenn  allerdings Spielzust\u00e4nde vom Sender in Zeitabst\u00e4nden zum Client geschickt werden, w\u00fcrden die Spieleraktionen ruckelartig vonstattengehen. Je mehr Zeit zwischen den Spielupdates vergeht, desto sichtbarer wird der Effekt. Dies w\u00fcrde das Spielverhalten enorm beeintr\u00e4chtigen. Um dem entgegenzuwirken, gibt es mathematische Verfahren,  um zwischen zwei Werten \u00fcber einen Zeitraum zu interpolieren.<br \/>\nDer Server ist den Clients immer von der Zeit und den Spielzu-st\u00e4nden her voraus und daher funktioniert das Interpolationsverfahren, da immer Werte zum interpolieren vorhanden sind.<\/p>\n<div align=\"center\">\n  <img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" title=\"playoutDelays\" src=\"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-content\/uploads\/FlubbersCombat\/playoutDelays.png\" alt=\"\" width=\"604\" height=\"204\" \/>\n<\/div>\n<p style=\"text-align: justify;\">Der Client f\u00e4hrt den Pfad des Servers ab, indem die Position und Orientierung interpoliert werden.<\/p>\n<h3><span style=\"color: #3282cd;\">Time Warp<\/span><\/h3>\n<p style=\"text-align: justify;\">Eine Technik um Konsistenz zu bewahren und Fairness in Netzwerk Games zu steigern wird im  Deutschen als Verz\u00f6gerungskompensierung (engl.  &#8222;Lag Compensation&#8220;) bezeichnet. Der Server spult bei dieser Technik Events zu einem Zeitpunkt zur\u00fcck, zu welchem eine Spieleraktion ausgef\u00fchrt wurde. Dies ist aufgrund von Latenz bei der \u00dcbertragung von Paketen zwischen  dem Client und dem Server notwendig. Der Spieler f\u00fchrt eine Aktion basierend auf dem, was er auf dem Bildschirm wahrnimmt, aus. Wenn ein Sch\u00fctze, der eine hohe Latenz besitzt, einen Schuss auf einen anderen Spieler abfeuert, dauert es eine Zeit lang, bis die Nachricht zum Server gelangt und diese vom Server aus alle anderen Teilnehmer erreicht. In dieser Zeit k\u00f6nnte sich der betroffene Spieler jedoch bereits an einer andere Stelle bewegt haben und der Schuss w\u00fcrde aus der Sicht des betroffenen Spielers danebengehen. Dabei war sich der Sch\u00fctze doch sicher, dass er genau gezielt hatte und der Schuss den anvisierten Spieler h\u00e4tte treffen m\u00fcssen. Dies k\u00f6nnte zu Frustration beim Benutzer f\u00fchren. Es stellt sich die Frage, warum die Spieleraktion erst an den Server geschickt werden muss und warum die Clients nicht direkt untereinander kommunizieren k\u00f6nnen. Das Problem ist, dass den Clients nicht vertraut werden kann aufgrund von Cheating. Zudem besitzt nur der Server eine konsistente Version der virtuellen Umgebung. Das hei\u00dft, dass nur die Ereignisse, die der Server wahrnimmt gelten. Daher kam beim Server das Verfahren Time Warp zum Einsatz, um die Fairness zu erh\u00f6hen. Dabei h\u00e4lt der Server von jedem Spieler eine Position History aufrecht. In regelm\u00e4\u00dfigen Zeitintervallen werden die Position vom Spieler und ein Zeitstempel in dieser Position History abgelegt.<\/p>\n<p style=\"text-align: justify;\">Das Verfahren Time Warp wurde anhand unterschiedlich langer Verz\u00f6gerungen begutachtet. Die Bewertung erfolgte durch zwei Benutzer auf zwei Computern. Es wurde eine flache virtuelle Umgebung mit einer Wand designed. Ein Spieler wurde vor die Wand platziert und sollte auf den anderen Spieler zielen und einen Schuss abfeuern. Dabei wurde getestet, ob der Schneeball den anderen Spieler getroffen hat.<\/p>\n<div align=\"center\">\n  <img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" title=\"timeWarp\" src=\"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-content\/uploads\/FlubbersCombat\/timeWarp.png\" alt=\"\" width=\"623\" height=\"332\" \/>\n<\/div>\n<p style=\"text-align: justify;\">Es wurden mehrere Testdurchl\u00e4ufe durchgef\u00fchrt. Dabei hat sich der blaue Spieler in Rich-tung der Wand bewegt. Wenn er ins Visier des braunen Spielers kam, wurde ein Schuss abgefeuert. Die Resultate sind in der darunterliegenden Tabelle zu sehen.<\/p>\n<div align=\"center\">\n  <img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" title=\"timeWarpResult\" src=\"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-content\/uploads\/FlubbersCombat\/timeWarpResult.png\" alt=\"\" width=\"747\" height=\"255\" \/>\n<\/div>\n<p style=\"text-align: justify;\">Daraus l\u00e4sst sich schlie\u00dfen, dass das Verfahren Time Warp trotz enormer Verz\u00f6gerungen erfolgreich funktioniert. Der Nachteil des Verfahrens ist, die sp\u00e4te Trefferverzeichnung beim betroffen Spieler. Dieser f\u00fchlte sich hinter der Wand sicher, als er getroffen wurde.<\/p>\n<h3><span style=\"color: #3282cd;\">Interessen Management<\/span><\/h3>\n<p style=\"text-align: justify;\">Das Aura-, Fokus- und Nimbus-Modell betrachtet nach den Raum um ein Objekt herum. Dabei wird davon ausgegangen, dass Informationen<br \/>\nvon Objekten in unterschiedlichen Medien wie zum Beispiel Audio, Video, Grafik und Text-kommunikation produziert werden. Folglich k\u00f6nnen die Spieler untereinander wahrgenom-men werden. Dabei geht es immer um die eigene Wahrnehmung  und  darum,  von  anderen wahrgenom-men zu werden. Die Aura eines Spielers wird als Sph\u00e4re dargestellt und definiert den Be-reich, in welchem andere Spieler potentiell wahrgenommen werden k\u00f6nnen. Im visuellen Fokus Bereich nimmt der Spieler andere Spieler in  einem  zunehmenden Detailierungsgrad wahr. W\u00e4hrend der visuelle Nimbus die Sph\u00e4re beschreibt, innerhalb welcher der Spieler von anderen Spielern aus allen Richtungen wahrgenommen werden kann. Der Audio Focus be-schreibt,  wie beim Menschen,  den Geh\u00f6rsinn eines  Spielers. In diesem Bereich kann der Spieler innerhalb dieses Mediums nach Ger\u00e4uschen von anderen Spielern lauschen. Der Audio Nimbus hingegen gibt den Bereich an, in welchem Ger\u00e4usche wie zum Beispiel Schrit-te oder Sprache produziert und von anderen Spielern geh\u00f6rt werden k\u00f6nnen. Abh\u00e4ngig von der St\u00e4rke der Wahrnehmung in einem Medium kann ein sogenannter Interes-senlevel berechnet werden. Je h\u00f6her der Interessenlevel, desto mehr Informationen werden \u00fcber den wahrgenommenen Spieler ben\u00f6tigt.<br \/>\nIm konkreten Fall erhalten somit nur die Spieler innerhalb der Sph\u00e4re die vom Server physikalisch berechneten Daten des serverseitigen Spielers. Alle anderen Spieler befinden sind au\u00dferhalb der Aura des aktuellen serverseitigen Spielers und erhalten keine Daten.<\/p>\n<div align=\"center\">\n  <img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" title=\"interestManagment\" src=\"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-content\/uploads\/FlubbersCombat\/interestManagment.png\" alt=\"\" width=\"311\" height=\"304\" \/>\n<\/div>\n<p style=\"text-align: justify;\">Der gelbe und schwarze Spieler sind innerhalb des Kreises vom gr\u00fcnen Spieler und erhalten Spielzust\u00e4nde von ihm. Spieler Braun und Rot befinden sich au\u00dferhalb des Kreises. Daher erhalten beide keine Spielzust\u00e4nde vom gr\u00fcnen Spieler und der gr\u00fcne Spieler auch nicht vom braunen und roten Spieler. Der gr\u00fcne Spieler w\u00fcrde den braunen Spieler dort sehen, wo er als letztes noch f\u00fcr den gr\u00fcnen Spieler von Interesse war. Wenn der braune Spieler wieder an einer anderen Stelle in den Kreis eintritt, sieht der gr\u00fcne Spieler ihn von seiner alten Position zur neuen \u201espringen\u201c. Dies ist jedoch nicht weiter tragisch, da die Aura eines Spielers relativ hoch (zum Beispiel 60 Meter) gesetzt werden kann und der braune Spieler sowieso nur sehr undeutlich zu sehen ist.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Einsatz von Latenzkompensierungsverfahren bei der Realisierung von verteilten interaktiven grafischen Echtzeitanwendungen Bearbeiter Lukas Kalinowski Betreuende Professoren Erster betreuender Professor Prof. Dr. Martin Rumpler Zweiter betreuender Professor Prof. Dr. Stefan Naumann Kurzdarstellung Der Fortschritt der Computertechnologie und das Aufkommen des &hellip; <a href=\"http:\/\/www.lukas-kalinowski.com\/Homepage\/masterarbeit-2011\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"onecolumn-page.php","meta":{"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-1368","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-json\/wp\/v2\/pages\/1368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-json\/wp\/v2\/comments?post=1368"}],"version-history":[{"count":33,"href":"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-json\/wp\/v2\/pages\/1368\/revisions"}],"predecessor-version":[{"id":1732,"href":"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-json\/wp\/v2\/pages\/1368\/revisions\/1732"}],"wp:attachment":[{"href":"http:\/\/www.lukas-kalinowski.com\/Homepage\/wp-json\/wp\/v2\/media?parent=1368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}