Thema Game-Server und Mehrspieler-Szenarien

Transcription

Thema Game-Server und Mehrspieler-Szenarien
Universität Ulm
Fakultät für Informatik
Abteilung Verteilte Systeme & Künstliche Intelligenz
IV
U
L
M
· SCIENDO
ANDO · U
N
ITÄT
ERS
DO
CENDO
·
·
C
UR
Hauptseminar
Technik der Spieleprogrammierung
Thema
Game-Server und Mehrspieler-Szenarien
Name
Nancy Bringezu
Betreuer
Prof. Dr. Friedrich von Henke
Prof. Dr. Susanne Biundo-Stephan
Prof. Dr. Peter Schulthess
Karsten Gugler
Thorsten Liebig
Andreas Schorr
Datum
Juni 2001
2
Inhaltsverzeichnis
1. Einleitung.................................................................................................................5
1.1 Geschichte der Multiplayer-Spiele
1.2 Multi-User-Dungeons
1.3 Multiplayer-Interaktionen in verschiedenen Spielegenres
2. Multi-User-Spiele - aus Spielersicht und aus Entwicklersicht..........................10
3. Funktionsweise und Aufbau des Game-Server .................................................12
3.1 Software
3.1.1 Dedicated-Server versus Non-Dedicated-Server
3.2 Hardware
3.2.1 Hardwareausstattung
4. Kommunikation zwischen Server – Client...........................................................14
4.1 Grundbegriffe
4.1.1 Netzwerkleistung
4.1.1.1 Bandbreite
4.1.1.2 Latenz
4.2 Verbindungsmöglichkeiten
4.2.1 Modem - Modem
4.2.2 Nullmodem
4.2.3 LAN
4.2.4 Internet
4.3 Verbindungsmodelle
4.4 Synchronisationsmechanismen
4.5 Protokolle
4.5.1 TCP/IP - Transmission Control Protocol/Internet Protocol
4.5.2 UDP
- User Datagram Protocol
4.5.3 IPX/SPX - Internetwork Packet Exchange/ Sepuenced Packet Exchange
4.6 Beispiele
3
5. Spielemanipulation.................................................................................................23
5.1 Cheats
5.1.1 Angriffsmöglichkeiten
5.1.2 Abwehrtechniken
5.1.2.1 PunkBuster
6. Literatur...................................................................................................................26
4
Kapitel 1
Einleitung
Multi- Player- Games eröffnen jedem Freund von Computerspielen neue Möglichkeiten.
Egal ob im Internet oder im LAN. Egal ob Echtzeitstrategie-, Rollen- oder Actionspiel.
Wenn der PC erst einmal besiegt ist, begeben sich immer mehr Spieler auf die Suche nach neuen
Herausforderungen, die sie im Kampf mit oder gegen andere Spieler finden. Letztendlich kommt das
richtige Feeling bei vielen Computerspielen aber erst innerhalb einer Gruppe auf.
Laut Analysen gab es im Jahre 1999 weltweit etwa 8,4 Millionen PC-Spieler, welche sich
online ihrem Spieltrieb hingaben. Rund ein Drittel davon kamen aus den USA. Im Jahre 2004 sollen
laut Prognosen weltweit über 28 Millionen PC-Spieler ihre Spielgelüste im Netz austoben... .
Der Prozentsatz der Westeuropäer soll dann 55% betragen.
Der vorliegende Text soll einen kleinen Einblick in den Bereich der Game-Server und MehrspielerSzenarien vermitteln. Zum Anfang wird eine kurze Einführung in die Geschichte von MultiplayerSpielen gegeben. Im weiteren Verlauf des Seminars wird gezeigt, warum Multi-Player-Games so
populär sind und welchen Reiz Netzwerkspiele auf die Menschheit ausüben. Es werden Vor- und
Nachteile aufgezählt und der Nutzen für die jeweiligen Spielentwickler aufgeführt. Anschließend
werden technischen Aspekte beleuchtet. Es sollen die charakteristischen Leistungsmerkmale eines
Netzwerks analysiert und abschließend Sicherheitsaspekte in einem Netzwerk angeführt werden.
1.1 Geschichte der Multiplayer-Spiele
Die Entwicklung bzw. Geschichte von Multiplayer-Spielen ist leider nur unzureichend dokumentiert,
so dass sich dadurch nur sehr wenig darüber erfahren lässt. Lediglich die Anfänge von Multi-UserSpielen sind in etwa bekannt.
Im Frühjahr 1979 schreibt Roy Trubshaw, ein Student an der Essex University in England, im
Zusammenhang mit Experimenten im Bereich der künstlichen Intelligenz sein erstes MUD in Macro10 auf einer DEC-10 und das erste MUD in der Geschichte der PC-Spiele überhaupt. MUD steht als
Abkürzung für Multi-User-Dungeon. Von der Präsentation her lassen sich MUDs am ehesten mit
Textadventures vergleichen, da alles ohne Grafik, nur mittels Text ausgedrückt wird .
Bild01 – Photo einer DEC-10
Trubshaw begann mit einer einfachen Kette von verbundenen Räumen, in welchen man sich bewegen
und auch unterhalten konnte. Er verfeinerte und entwickelte das Programm im Laufe der Zeit immer
weiter, bis er eine lauffähige Version hatte, die er MUD taufte.
5
Schon in den Anfängen waren über 20 Räume und 10 Kommandos vorhanden. Roy Trubshaw schrieb
die ersten Versionen von MUD in Assembler. Nachdem diese jedoch immer unhandlicher wurden und
zu viel Speicher verbrauchten (die Größe des Speichers des DEC-10 lag zu der Zeit bei max. 50K),
verwarf er kurzerhand diese Versionen und schrieb MUD in BCPL neu. Das komplette Umschreiben
von MUD wurde zu Ostern 1980 beendet und dieses MUD wird seitdem als das Original MUD1
bezeichnet. Als Trubshaw Essex verlässt, fällt die Weiterentwicklung an Richard Bartle, der das Spiel
ganz oben auf MUDDL-Basis (MUD Definition Language), die von seinem Kollegen erdacht wurde,
neu entwirft.
Bild02 – Karte vom Original MUD von 1984
Die spielerischen Aspekte in MUD1 wurden stark erweitert und verbessert. Darunter fielen z.B. die
‘Quests‘ für die Spieler, die Punktwertungen, die Interaktion und die Kommunikation zwischen den
Spielern ... zusammen in über 400 Räumen.
Als Essex 1980 ans ARPAnet (Advanced Research Projects Agency Network) angeschlossen wird,
vergrößern 'externe' Spieler von anderen Universitäten die Umwelt, die vorher vorwiegend von
Studenten der Universität von Essex genutzt wurde. Die Universität musste alsbald die maximale
Zugriffszeit auf das Spiel limitieren, um die Rechenlast der überlasteten DEC-10 zu reduzieren.
Durch die Verbreitung von Kopien des Source-Codes hatten Studenten aus Essex und verschiedenen
anderen europäischer Universitäten die Möglichkeit aus dem Originalcode neue MUDs zu erzeugen.
Sie verbreiteten die Idee in der ganzen Welt und schufen ‘Nachfolger‘ wie Aber-Mud, Vax-Mud, LPMUD, Tiny-MUD und andere ... .
Das Konzept mutierte von MUDs zu MOOs (Muds Object-Oriented) zu MUCKs und zu MUSHs
(Multi-User Shared Hallucination) . Jede dieser Variationen verfügte über neue Optionen und
Fähigkeiten für die wachsende Spieleranzahl und doch hatten alle eines gemeinsam: die Interaction
mit anderen Usern und das Spiel in einer virtuellen Welt.
Multi-User-Dungeons übten eine große Anziehungskraft auf die Studenten an netzwerkfähigen
Computern aus und bewiesen, dass Online-Spiele eine große Zukunft in den kommenden Jahren haben
würden.
Das Original MUD selbst wurde von CompuServe lizensiert und läuft auch heute noch, als das älteste
Multi-User-Dungeon Spiel überhaupt. Mittlerweile existieren circa fünfundzwanzig verschiedene
Versionen, die sich mehr oder weniger durch ihre technischen Daten unterscheiden.
6
1.2 Multi-User-Dungeons
Nachdem einleitend eine kurze Abhandlung über die Geschichte von MUD’s dargestellt wurde, stellt
sich nun die Frage, was MUDs konkret sind und was ihre Besonderheit darstellt.
Multi-User-Dungeons entstanden in Anlehnung an ein beliebtes amerikanisches Fantasie-Rollenspiel
“Dungeons and Dragon“. Da es sich heutzutage weniger um Dungeons als um virtuelle Welten handelt
und es zudem auch MUDs gibt, die rein wissenschaftlichen Zwecken dienen, wie das MOO vom MIT,
wird unter MUD auch zunehmend Multi-User-Dimensions verstanden.
Bei einem MUD handelt es sich um virtuelle Spielwelt, in der sich eine Vielzahl von Teilnehmern
gleichzeitig einloggen kann.
Wenn man sich das erste Mal in einem MUD einloggt, erhält man einen Avatar, eine virtuelle
Spielfigur dessen Aussehen, Eigenschaften, Geschlecht, ja oft sogar die Rasse man selbst festlegen
kann. Mit dieser Figur erforscht man dann die Welt, löst kleine Aufgaben, sogenannte Quests und
sammelt Erfahrungspunkte, um damit früher oder später seinen Avatar auszubauen. Dieser kann
dadurch ganz neue Fähigkeiten erhalten. Ab einer bestimmten Erfahrungsstufe ist es in den meisten
MUDs möglich, zu einem Magier oder Gott aufzusteigen und die Datenbank zu verändern. Dadurch
entstehen ständig neue Level, Quests und sogar neue NPC’s (NON-Player-Characters). Erfahrene
Spieler erhalten auch Zugriffsrechte auf die Implementierung und dürfen das Spiel weiter ausbauen.
Das Spiel wird von den Spielern selbst gemacht, völlig ohne kommernzielle Interessen, ohne
Spielfirmen, ohne, dass damit irgendjemand Gewinn machen würde. Die kommerziellen Spiele mit
Multiplayerfunktionen entstanden in diesem Zusammenhang erst sehr viel später (in den 90er Jahren).
Leider findet man zu speziell dieser Entwicklung keinerlei Informationen.
In MUDs existieren, im Gegensatz zu den meisten anderen Computerspielen, keine konkreten
Spielziele. Es gibt keinen speziellen Anfang, kein Ende, kein Gewinnen und somit auch kein
Verlieren. Selbst der Tod seines Avatars bedeutet kein Game-Over sondern nur den Verlust von
Ausrüstung und Erfahrungspunkten.
Der Spieler lebt sozusagen in einer zweiten Welt, die er mit vielen hundert anderen Mitspielern
bevölkert und mit denen er sich unterhalten und gemeinsam Abenteuer erleben kann. Gerade das
macht wohl den Reiz von MUDs aus und ist ein entscheidender Grund für deren Beliebtheit.
Im Jahre 1989 legte Jim Aspnes von der Carnegie-Mellon-Universität im US-amerikanischen
Pittsburgh den Grundstein für eine neue Familie von Kommunikations- und Spielsystemen für
mehrere Nutzer, die auch unter Bezeichnungen wie MUSH, MOO und MUCK bekannt wurden.
Hierbei handelt es sich im Unterschied zu den streng hierarchisch organisierten und zum Teil recht
gewalttätigen Abenteuer-MUDs um Spiele, in deren Zentrum Kooperation, Solidarität, Bildung und
Wissenschaft stehen. Sie sind viel lockerer strukturiert und der Kampf- und Abenteueraspekt rückt
deutlich in den Hintergrund. Mehr Wert wird in diesen Versionen von MUD auf Rollenspiel und
Interaktion unter den Spielern gelegt. Jedes dieser 'sozialen' MUDs steht unter einem bestimmten
Thema. Jeder Teilnehmer erhält von Anfang an Programmierrechte, d.h. er kann Räume und Objekte
kreieren und die Spiellandschaft selbständig mitgestalten. In den USA werden MOOs seit einigen
Jahren als interaktive Lernumgebungen genutzt, in denen Eltern und Kinder, Lehrer und Schüler
gemeinsam mit dem neuen Medium Internet spielerisch Erfahrungen sammeln können.
7
Bild03 - Karte von DISCWORLD MUD
1.3. Multi-User-Interaktionen in verschiedenen Spielegenres
Die meisten Spielarten eignen sich sehr gut für die Entwicklung von Multiplayerspielen.
Dieses Kapitel soll dazu dienen verschiedene Genre zu erwähnen und Beispiele dazu aufzuführen.
Brettspiele/ Gesellschaftsspiele: Gesellschaftsspiele sind vom Spielprinzip für zwei oder mehr
Spieler gemacht und eignen sich daher immer als Multi-User-Spiele. Sie wurden ja auch in erster Linie
dafür entwickelt. Erst im nachhinein wurde der Mensch durch einen Computergegner ersetzt. Durch
solche PC-Spiele lassen sich große Tuniere (z.B. Schachtuniere) kostengünstig und bequem von zu
Hause aus organisieren und austragen.
Strategiespiele: Man mag es kaum glauben, aber laut Verkaufsstatistiken ist das Strategiespiel in
Deutschland das beliebteste Genre von allen. Bei Strategiespielen wie z.B. „Die Siedler IV“ erhöht
sich der Spielwert ganz ungemein, wenn man die Möglichkeit hat, gegen echte Menschen zu spielen.
Der Einfallsreichtum und die Phantasie eines jeden Mitspielers lässt diese Art von Genre spannend
bleiben. In Strategiespielen geht es meist darum bestimmte Orte zu besiedeln und sein Gebiet weiter
auszuweiten, sich zu entwickeln und das Land gegen Feinde (andere Spieler) zu verteidigen. Man
muss mit kreativem und logischem Denken den besten Weg zum Sieg finden.
First Person Shooter: Die Multi-User-Variante spielt bei den Ego Shootern eine ganz große Rolle.
Zum Tragen kommen in diesem Genre Dinge wie z.B. erhöhte Spannung durch das Spiel gegen echte
Gegner, Wettkampfstreben, Ideenreichtum und unterschiedlichste Spielarten eines jeden menschlichen
Gegners.
Trotz guter Grafik und netter Story wird das Spielgeschehen immer wieder auf das ‘Töten von allem
was sich in Sichtweite bewegt‘ und kleiner Problemstellungen (Schalter umlegen, Knöpfe drücken,...)
reduziert. Das Erreichen von hohen Highscores ist dabei eher nebensächlich. Erzielte Frags
(Abschüsse/ Punkte) sind meist nur temporär und sind bereits im nächsten Level Geschichte.
Auf der Internetseite “www.theclq.com“ kann man sich für seinen jeweiligen Charakter die Statistik
der erreichten Frags in einem bestimmten Zeitraum anzeigen lassen.
Beispiele für aktuelle und sehr erfolgreiche Multi-User-Shooter sind Counterstrike, Unreal
Tournament und Quake III Arena.
8
Bild 04 – Screenshot aus Quake III Arena
Rollenspiele: Schon an dem großen Erfolg von Multi-User-Dungeons und Ultima Online hat man
sehen können, dass sich Rollenspiele ebensogut für Multi-User-Spiele eignen wie die First Person
Shooter. In dieser Art von Spiel wird der Mensch zum Bewohner einer Rollenspielwelt gemacht. Dies
wirkt viel glaubwürdiger und realistischer als Bewohner die computergesteuert sind. Spannende
Stories, stimmungsvolle und nahezu perfekt gestalteten Spielwelten sowie hohe Anzahl
unterschiedlicher Gegner lassen das Rollenspiel zu einem fantastischen Abenteuer werden. In
typischer Adventuremanier werden bestimmte Orte durchstöbert, Gegenstände gesucht und Rätsel
gelöst. Umfangreiche Zaubersprüche und Waffenarsenale tun ihr übriges.
Das Rollenspiel lebt von den Interaktionen mit anderen. Die KI’s haben nur beschränkte
Interaktionsmöglichkeiten. Aktuelle Beispiele für Rollenspiele wären DiabloII, Baldurs Gate 2 oder
Gothic.
Bild05 - Screenshot aus Arcanum
Simulationsspiele: Unter Simulationsspielen versteht man im allgemeinen Renn- oder
Flugzeugsimulationen, aber auch Sportsimulationen. Dieses Spielgenre baut auch auf einen kleinen
Konflikt (Spieler-Gegner) auf, ähnlich dem der Ego Shootern, welches es zu einem sehr einfach
umzusetzendem Multiplayer- Spiel werden lässt. Wieder erhöht die Spielspannung und der Wettkampf
mit anderen den Spielspaß und den Wiederspielwert gegenüber der Single-Player-Variante.
Jump’n Run Spiele, Adventures und Denk- und Logikspiele eignen sich aufgrund ihres
Single-Player-Spielprinzips eher nicht für eine Multi-Player-Umsetzung. Obwohl dies eine MultiPlayer-Variante nicht ausschließen soll, ist diese jedoch eher selt en vorzufinden.
Diese Aufzählung von Genre erhebt keinen Anspruch auf Vollständigkeit. Sicherlich lassen sich die
verschiedensten Spiele in mehrere Gebiete einordnen.
9
Kapitel 2
Multi-User-Spielen aus Spielersicht und aus
Entwicklersicht
In diesem Kapitel sollen die Vor- und Nachteile von Multiplayer-Spielen erörtert werden.
Es wird versucht Fragen wie z.B. :
•
•
•
Welchen Reiz üben Multi-User-Spiele auf uns Menschen aus?
Was treibt Spielproduzenten dazu, in dieses Gebiet zu investieren?
Lohnt sich der Aufwand und die Mühe der Entwicklung von Multi-User-Spielen überhaupt?
in diesem Teil des Seminars zu beantworten.
Die Faszination, die Multi-User-Spiele ausüben, liegt wahrscheinlich darin, dass die Gegner zumeist
menschliche Spieler sind.
Gegner, welche mit ihren eigenen Ideen, mit eigener Phantasie und ihrer eigenen Taktik aufwarten.
Gegner, die ihre eigene Strategie überraschend ändern, oder sich der Spielweise des Gegners anpassen
können.
Aber auch Gegner, die selbst mit viel Spielwitz und Vorfreude an das Spiel herangehen.
Leider ist man heute immer noch nicht in der Lage programmierte Computergegner mit einer solchen
künstlichen Intelligenz auszustatten, welche der des Menschen nahe kommt.
Die Spielstärke von computergesteuerten Gegner beruht zumeist in der materiellen Überlegenheit und
darin, dass zumeist die Spielumgebung schon bekannt ist und nicht mehr erforscht werden muss. Diese
Spielstärken sind z.B. in Strategiespielen vorzufinden. Hier ist es meistens der Fall, dass dem
Computer mehr Ressourcen zugewiesen werden oder Beschränkungen, wie “Fog of War“ für die KI
nicht gelten. Schnelligkeit und übermenschliche Reaktionen sind Merkmale von Computergegner in
z.B. First-Person-Shootern. Diese Eigenschaften führen im Laufe des Spiels dazu, dass die Gegner
entweder durchschaubar werden und sich recht schnell ihre Taktik erkennen lässt oder es zu einer
Frustration des Spielers kommt, da er gegen diese unfairen Gegner nicht mehr ankommt (z.B. „C&C
III“). Im ersteren Fall lässt sich eine eigene Gegentaktik, relativ schnell entwickeln. Sobald man die
Strategie des Gegners erkannt hat, wird er verlieren, da er seine Taktik nicht ändern kann. Man wird
dadurch als Spieler gezwungen, immer wieder ähnliche Züge zu machen, um zu gewinnen. Im anderen
Fall kann es passieren, dass das Spiel alsbald in der Schublade verschwindet.
Ein weiterer wichtiger Reiz von Netzwerkspielen liegt darin, dass man nicht gegen gefühlslose
Computergegner antritt, sondern gegen echte Menschen. Man spielt viel konzentrierter, man ist viel
stärker bei der Sache und auch die Spannung ist natürlich viel größer, da man sich nicht vor anderen
blamieren möchte. Kurz gesagt, man spielt auf einer ganz anderen Gefühlsebene.
Zusammenfassend kann man sagen, dass die Möglichkeit, gemeinsam in einem Spiel mit anderen zu
agieren, neben guter Grafik, realistischer Handlung, hoher Levelanzahl und gutem Sound, eine der
wichtigsten Eigenschaften bei einem Spiel überhaupt sind...
Ausgehend von diesen positiven Eigenschaften stellt sich nun die Frage, welchen Nutzen man als
Entwickler von Multi-User- Spielen aus der ganzen Sache hat.
Durch die vorher aufgezählten Besonderheiten ist die Langzeitmotivation sehr hoch. Das heißt, dass
die Wahrscheinlichkeit, dass sich der Kunde ein neues Spiel desselben Herstel lers kaufen wird,
nachdem er ein gutes Multi-User-Game gespielt hat, sehr hoch ist. Die Werbung spielt ebenfalls eine
große Rolle für den Produzenten. So hat z.B. das Add-On „Counterstrike“ für den 3D-Shooter „HalfLife“ zu einem großen Kaufinteresse an HL geführt.
Da man zum Spielen im Internet einen gültigen CD-Key benötigt und dieser nicht beliebig oft
gleichzeitig verwendet werden kann, waren Originalversionen von HL plötzlich wieder sehr gefragt.
10
Der große Nachteil von Multi-User-Spielen liegt wohl in den enormen Kosten bei der Entwicklung.
Die Entwicklung einer Software, die verteilt auf verschiedenen Rechnern zuverlässig arbeitet, ist viel
zeitaufwendiger und schwieriger zu realisieren, als der Single-Player-Anteil, der nur auf einem
Rechner laufen soll. Hinzu kommt der Servercode, der zusätzlich zum Spiel entwickelt werden muss
und eine hohe Zuverlässigkeit aufzuweisen hat. Der Einsatz von Debuggern, mit welchen man nach
Fehlern im bereits fertigen Programm sucht, kann in einem verteilten System sehr schwierig sein,
besonders bei zeitrelevanten Problemen. Das folgende, sehr interessante Beispiel für einen derartigen
Fehler stammt aus der Entwicklung des Spiel’s „Black & White“:
Ein hungriges Monster kam zu einem Stall mit Schweinen, die gerade beim Fressen waren. Es nahm
die Schweine und fraß sie nacheinander auf, ... und plötzlich war das Monster verschwunden. - Was
war geschehen? - Die Programmierer haben in ihrem Realismuswahn die Schweine mit einem eigenen
Freßverhalten ausgestattet. Eines der Schweine war noch mit dem Fressen beschäftigt, als das Monster
es aufhob. Und das nächste Eßbare in der Nähe des Schweines war das Monster selbst.
Daran sieht man, dass das Debuggen nicht als trivial dargestellt werden darf.
Bild06 – Screenshot aus dem Spiel „BLACK & WHITE“
Ein wichtiger Kostenfaktor ergibt sich auch aus dem höheren Testaufwand. Mehrere Tester müssen
gleichzeitig miteinander arbeiten und sich synchronisieren. Zudem sind Fehler oft nur sehr schwer
reproduzierbar. Alle Tester müssen sich beim Auftreten von einem Fehler genau abstimmen und
Schritt für Schritt alles wiederholen bis zum Erscheinen des Bugs.
Erhöhte Kosten ergeben sich auch im Servicebereich des Unternehmens. Durch die Vernetzung der
Rechner ergeben sich viel öfter Hardware- und Konfigurationsprobleme, als bei Single-Player-Spielen.
Die Anzahl des benötigten Servicepersonals liegt dementsprechend auch viel höher. Durch
gewünschte Kenntnisse über die Tücken des Spiels, des zugrundeliegenden Betriebssystems und die
Telekommunikation und Vernetzung erhöht sich auch die Qualifikation des Personals.
11
Kapitel 3
Funktionsweise und Aufbau des Game- Servers
3.1 Aufgaben eines Game- Servers
Der Name Server wurde vom englischen "to serve" abgeleitet und bedeutet soviel, wie jemandem
dienen oder jemanden versorgen.
Die Aufgabe eines speziellen Game- Servers besteht im einzelnen in der Durchführung der jeweiligen
Berechnungen im Bereich der künstlichen Intelligenz (Wegerkennung, Taktik, ...) während des Spiels.
Er übernimmt den gesamten auftretenden Verwaltungsaufwand.
Der Server vergibt die einzelnen Punkte für die jeweilige Mitspieler und er schreibt umfangreiche
Logs zur späteren Auswertung.
3.2 Software
3.2.1 (Non-) Dedicated- Server
Nach der Art und Weise ihrer Funktion lassen sich im Spielebereich 2 Typen von Game-Servern
unterscheiden.
Ein dedicated oder auch dedizierter (dt.) Server bezeichnet einen Computer; welcher nicht als Client
benutzt wird bzw. werden kann.
Dieser Server hat die Funktion ein Spiel zu hosten 1, damit keiner der anderen Rechner (Clients) das
Spiel leiten muss. Die Latenzzeit des Spiels wird dadurch im Normalfall geringer.
Auf dem Server selbst wird nicht gespielt. Auch wenn die Spielmöglichkeit an diesem Rechner nicht
gegeben ist, so lassen sich allerdings andere Anwendungen darauf ausführen.
Dies kann den Spielfluss jedoch negativ beeinflussen, da es u.U. zu Engpässen beim Plattenzugriff,
der CPU- Leistung oder dem Netzwerkdurchsatz kommen kann.
Zusammenfassend kann man sagen, dass zusätzlich laufende Anwendungen den Server ausbremsen
können, aber prinzipiell möglich sind.
Das Gegenstück zu einem dedicated Server ist ein non-dedicated Spieleserver. Bei dieser Art
kann man selbst in das Spielgeschehen mit eingreifen. Das bedeutet, dass auf diesen Rechner auch
selbst mitgespielt werden kann. Auf den LAN Parties wählt man meist den stärksten Rechner als nondedicated Server, der zusätzlich zu den eigentlichen Aufgaben noch die Funktion der Spielverwaltung
übernimmt und das Spiel für die anderen hostet.
Welche Art von Game- Server jeweils unterstützt wird, hängt vom entsprechendem Spiel ab.
Es gibt Spiele, die nur einen dedicated Server unterstützen, es gibt Multiplayerspiele die einen non dedicated Server bevorzugen und es gibt Spiele die auf beiden Versionen laufen.
Ein Beispiel für die Unterstützung eines dedicated Servers liefert das Spiel IMPERIAL CONFLICT.
Dieses Spiel kann nur im Internet gespielt werden. Webserver sind ausschließlich dedicated Server.
DiabloII stellt ein gutes Beispiel für die Unterstützung eines non- dedicated Servers dar. Es existiert
keine kaufbare dedicated- Serverversion. Lediglich die Battle- Net Version von DiabloII ist als
dedicated- Server ausgelegt und kann, wie IMPERIAL CONFLICT, nur im Internet gespielt werden.
Die meisten Spiele unterstützen jedoch sowohl dedicated als auch non –dedicated Server.
Beispiele hierfür wären Counterstrike, Quake3 Arena und Unreal Tournament.
1
Host: Als Host bezeichnet man einen Computer der ein Spiel anbietet und mit dem man sich
dann verbindet.
12
3.3 Hardware
3.3.1 Hardwareausstattung
Wie im vorhergehendem Kapitel schon dargestellt, kann man zwischen zwei Arten von GameServern unterscheiden. Diese Einteilung wirkt sich natürlich in gewisser Weise auch auf die Hardware
des Servers aus.
Bei einem Rechner, welcher ein Netzwerkspiel bereitstellt und auf welchem man nicht selbst spielt,
kann man auf bestimmte Ausstattungsmerkmale verzichten. 3D-Beschleunigerkarten wären in diesem
Falle wirklich nur Geldverschwendung. Auch auf eine Audioausgabe mittels Soundkarte kann hier
verzichtet werden. Ein PC mit der CPU- Leistung einer älteren Pentium-Generation ist für manche
Spiele sogar ausreichend.
Dagegen braucht ein non-dedicated Server weitaus mehr an Ausstattung. Man kann in etwa sagen,
dass diese einer Multimediaausstattung entspricht. Guter Sound und gute Grafik sind hier sehr wichtig,
damit derjenige, der vor dem Server selbst sitzt, auch eine gute Darstellung des Spiels geboten
bekommt. Weiterhin gilt bei CPU- Power und Größe des Speichers das Motto: Je mehr desto besser,...
Auf Lan-Parties wird im allgemeinen der schnellste und auch stabilste Rechner als Server engagiert.
Der wichtigste Punkt dabei ist wohl eine Verbindung mit hoher Übertragungsgeschwindigkeit. Je
mehr Spieler sich auf dem Server anmelden, um so mehr müssen sich die vorhandene Bandbreite
teilen. Im LAN gibt es damit keine Probleme. Soll der Server jedoch im Internet zur Verfügung
stehen, ist eine ISDN Verbindung mit Kanalbündelung das Minimum. Dann können gerade mal vier
Spieler mit 33.6er Modem noch vernünftig spielen. Geeignet für einen Internet-Game-Server ist
eigentlich nur eine DSL- oder Kabelmodem-Verbindung. Wenn die Bandbreite nicht für alle ausreicht,
‘laged‘2 das Spiel bei allen Teilnehmern, weil der Server nicht genug Informationen an alle
gleichzeitig senden kann.
Viel Arbeit bekommt der Rechner dann, wenn der Verwaltungsaufwand z. B. Anmeldung
neuer Spielteilnehmer oder Berechnungen im Bereich KI (Wegerkennung, Taktik, ...) steigt.
Die Voraussetzungen an einen Server hängen sehr von der Anzahl der angemeldeten Spieler ab.
Bei dem Spiel SiedlerIV ist beispielsweise die Anzahl der Leute in einer LAN- bzw. Internet- Partie
schon von vornherein begrenzt. Es dürfen maximal 8 Leute an einem Spiel teilnehmen. Im Internet
wird von den Herausgebern dieses Spiels ein Internet-Server kostenlos zur Verfügung gestellt. Dieser
Server besitzt ein Dualprozessorsystem mit 600Mhz und 512 MB Speicher.
Da die Spiele äußerst schnell sind, trüben bereits kleinste Verzögerungen bei den
Netzwerkverbindungen bereits den Spielgenuss. Manche Spiele arbeiten diesem Problem entgegen,
indem die Clients die Bewegungen der Mitspieler vorausberechnen und so versuchen kleinere
Aussetzer zu überbrücken. Anders als bei Echtzeitstrategiespielen, bei denen ein Spieler mit einer
langsamen Verbindung alle anderen ausbremst, ist bei den First-Person-Shootern nur die eigene
Verbindungsgeschwindigkeit von Bedeutung. Gute Datenraten erlauben ein flüssiges Spiel und genaue
Schüsse. Bei langsamen Verbindungen ruckelt das Spiel und man dient den anderen Mitspielern nur
noch als “Kanonenfutter“.
2
Lag: Als Lag bezeichnet man eine zeitliche Verzögerung im Spielverlauf.
13
Kapitel 4
Kommunikation zwischen Server - Client
4.1 Grundbegriffe
4.1.1 Netzwerkleistung
4.1.1.1 Bandbreite
Die Bandbreite misst die Datenmenge, die ein Netzwerk in einem gegebenen Zeitraum
transportieren kann. Übliche Maßeinheiten sind KBit/s, MBit/s und GBit/s.
Typische Werte sind z.B. bei einer Netzwerkkarte 10MBit/s bzw. 100 MBit/s und bei einem
Modem 28 bis 56KBit/s. Die Bandbreite bei Onlinespielen wird in erster Linie durch die
Modemgeschwindigkeit eines jeden Spielers und die Geschwindigkeit der Telefonverbindung
stark eingeschränkt.
Die Datenmenge, die im Netz transportiert wird, ergibt sich nicht nur aus den Spieldaten,
welche ständig verschickt werden, sondern auch aus den verwendeten Internetprotokollen. Bei
Verwendung eines TCP- oder UDP Protokolls (siehe Abschitt 5.4) ergibt sich ein ProtokollOverhead, welcher typischerweise bei TCP 28 Bytes pro Paket und bei UDP 8 Bytes pro Paket
beträgt. Diese Zusatzkosten sind notwendig, um z.B. die Adresse und bestimmte
Sicherheitsinformationen zu übertragen. Weiterhin muss man den Verlust von Paketen mit
berücksichtigen, was das Datenaufkommen ebenfalls erhöht, da diese Pakete ja erneut
geschickt werden müssen. Yu-Shen NG [Designing Fast-Action Games for the Internet,
Artikel] empfiehlt als Zielsetzung für das Spieldesign eine Bandbreite von nicht mehr als
1KByte/s. Dieser Wert ist ein Richtwert, in dem Overhead und “Resends“ aufgrund von
Datenverlusten schon berücksichtigt wurden. Für heutige Modems ist dieser Wert jedoch recht
niedrig angesetzt.
Bild07 – Darstellung der Round–Trip-Latenz
4.1.1.2 Latenz
Latenz ist die Übertragungszeit von Informationen von einem Sender zu einem Empfänger.
Die Latenz wird zumeist bidirektional als Round-Trip-Latenz gemessen. Realistische Werte im
Internet variieren von 120ms bis 5s und mehr. Die Grenze ist nach oben hin offen.
14
Jede Modemnutzung bewirkt eine Latenz von etwa 30-40 ms, welche durch Pufferung im
Modem, Codieralgorithmen oder durch TCP Software Pufferung entsteht.
Bei einem Round-Trip-Ping sind alle 4 Modemports beteiligt: Sender-Ausgang, EmpfängerEingang, Empfänger-Ausgang und Sender-Eingang. Daraus ergibt sich eine minimale RoundTrip-Latenz von 120-160ms.
Mit dieser Zeit kann man auch in Multiplayer-Spielen rechnen. Auch das Senden und
Empfangen von Daten kostet Zeit. Diese ist jedoch sehr klein und wird noch geringer bei der
Nutzung eines schnelleren Modems und durch Komprimierungsverfahren im Modem.
Ein großer Teil von Latenzzeit im Internet wird von sogenannten Routern erzeugt, was daran
liegt, dass diese die Daten erst sammeln, bevor sie die Pakete weiterschicken (siehe Store &
Forward Delay). Auch die Auswertung der Routertabelle braucht seine Zeit. Weiterhin werden
Pakete unter Umständen weggeworfen, wenn die Router überladen sind.
4.2 Verbindungsmöglichkeiten
4.2.1 Modem – Modem (MODulator/ DEModulator)
Eine Möglichkeit der Vernetzung ist die direkte Verbindung zweier Rechner durch Modems.
Inzwischen ist diese Art der Verbindung jedoch weitgehend durch das Internet verdrängt worden.
Der Hauptnachteil dieses Verfahrens ist die auf zwei Teilnehmer begrenzte Spieleranzahl.
Ein weiterer Nachteil ergibt sich aus dem Gebührensystem der Telekom. Dieses Verfahren ist
unrentabel, sobald sich die Spieler außerhalb des Ortsnetzes befinden. Die direkte Verbindung hat
jedoch den Vorteil, dass sich nur einer der Spieler einwählen muss. Dies bedeutet dann halbe
Telefonkosten.
Die Pingrate4 liegt u.U. unter der des Internets, was einen weiteren Vorteil darstellt, da die volle
Bandbreite, die ein Modem erreichen kann, zur Verfügung steht.
4.2.2 Nullmodem
Bei einer 'Nullmodem- Verbindung' handelt es sich um eine simulierte Modemverbindung, welche
einen lokalen Datenaustausch ermöglicht.
Diese Art der Verbindung wird heutzutage im Spielebereich praktisch nicht mehr verwendet.
Die Vorteile des Nullmodems liegen in der günstigen Anschaffung und darin, dass keine laufenden
Kosten entstehen. Die sehr niedrige Pingrate 4, welche sich aus der geringen Distanz der verbundenen
Rechner ergibt, ist ein weiterer Vorteil des Nullmodems. Zusätzliche Hardware, wie z.B.
Netzwerkkarte oder Modem, wird nicht benötigt.
Das Nullmodem vereinigt die Nachteile von LAN und Modem. Wie beim Modem ist die
Spieleranzahl auf zwei begrenzt. Die verbundenen Rechner müssen sich in unmittelbarer Nähe
zueinander befinden, ähnlich wie beim LAN.
4.2.3 LAN
Das lokale Computer- Netzwerk scheint von allen Verbindungsmöglichkeiten wohl
die optimalste Lösung zu sein. Durch die extrem hohe Bandbreite und die sehr geringe
Paketlaufzeit4 erreicht man ein flüssiges Spielgefühl. Diese Faktoren ermöglichen eine fast
unbeschränkte Anzahl von Teilnehmern. Der heutige Standard für die Übertragungsrate im LAN liegt
bei 100MBit, wodurch sich detaillierte Zustandsinformationen übermitteln lassen.
4
Pingrate/ Paketlaufzeit: Summe aus Signallaufzeit im Kabel und Store- and- Forward- Delay
(einschließlich Verarbeitung im Quell- und Zielrechner).
Kurz gesagt, die Zeit die benötigt wird, ein Byte von einem PC zu einem anderen zu schicken und
auch wieder zurück.
15
Der wichtigste Nachteil, den das Local- Area- Network besitzt, ist der, dass sich die Rechner nur in
einem geringen Abstand (<100m) voneinander befinden können. Die Anschaffungskosten sind für den
Privatanwender relativ hoch, was einen weiteren Nachteil darstellt. So kostet ein 8- Port Switch
(Tischgehäuse) ab 160,- DM und eine Netzwerkkarte (PCI 10/ 100 MBit/ s) ab 40,- DM.
4.2.4 Internet
Das Internet, zur Vernetzung für ein Multiplayer- Game, bietet zwei entscheidende
Vorteile:
1. es können viele Spieler teilnehmen, ähnlich wie beim LAN und
2. im Gegensatz zum LAN können die Clienten- Rechner einen großen
räumlichen Abstand voneinander haben.
Jedoch handelt man sich die üblichen Nachteile einer Internetverbindung ein. Während in einem LAN
10 oder 100 MBit Standard sind, handelt es sich beim Internet um ein heterogenes Netz. Die
Teilnehmer sind entweder über Modem (56 KBit/s), ISDN (64 KBit/s), DSL (bis 2 MBit/s) oder
Standleitung (bis GBit/s) ans Internet angeschlossen.
Das führt zu Unterschieden in der Paketlaufzeit und u.U. zu Vorteilen für die schneller angebundenen
Spieler.
Der räumliche Abstand der Spieler darf allerdings nicht beliebig groß werden, da die Pakete sonst zu
viele Hops5 erfahren und dadurch der "Store- and- Forward" Delay6 zu groß wird, was auf die
Paketlaufzeit drückt. Besonders bei den Ego- Shootern ist eine niedrige Paketlaufzeit (Ping) für das
erfolgreiche Mitspielen entscheidend. Betrachtet man Counterstrike, Unreal Tournament und Quake 3
Arena, so kann man sagen, dass ein Ping unter 200ms ein flüssiges Spielen ermöglicht. Ab ca. 300ms
wird das Spiel merklich ruckelig und unspielbar.
Spieler, die sich über DSL oder ISDN einwählen, haben normalerweise einen Ping unter 100ms,
während Modem- Spieler (56 KBit/s) einen Wert um die 180ms als "gut" bezeichnen würden. Neben
der Ping-Rate ist im Internet noch ein weiterer Faktor für die "erfolgreiche" Teilnahme an einem EgoShooter wichtig. Der sogenannte "packet loss" gibt an, wie viele Pakete den Clienten nicht erreichen.
Treten hier häufig "Bursts" auf, so stockt der Spielfluss und die Synchronisation zwischen den
Clienten geht verloren. Bei "Counterstrike" werden in solch einem Fall alle Bewegungen des Spieler
nachgearbeitet. Das führt dazu, dass ein Spieler zunächst unbeweglich stehen bleibt und plötzlich wie
wild durch die Gegend flitzt. Bei "Unreal Tournament" hingegen wird das Spiel neu synchronisiert.
Der Spieler macht somit plötzlich Sprünge, u.U. auch an einen früheren Ort zurück. Bursts beim
"packet loss" entstehen entweder durch eine Überlastung des Game-Servers (alle Mitspieler betroffen)
oder eines Zwischenknotens (alle Mitspieler hinter dem Knoten betroffen). Diese Bursts werden als
"Lags" bezeichnet. Für rundenbasierte Multiplayer- Games (z.B. Master of Orion), Strategie-Spiele
(z.B. Imperial Conflict oder Command and Conquer) oder allgemein bei Spielen, bei denen es nicht
auf Geschicklichkeit ankommt, ist die Ping- Rate und der „packet loss“ meist zweitrangig.
5
Hops : Ein Paket wird mehrmals weiter gereicht. Z.B. Charly02->Pandora->Stockwerksverteiler->Router->
Rechenzentrum->BelWü->...->Game-Server. Jede Weiterreichung wird als "Hop" bezeichnet.
6
Store- and- Forward- Delay:
Bei jedem Hop muss das Paket zwischengespeichert (STORE) werden und zum nächsten Empfänger
auf dem Weg weitergereicht (FORWARD) werden. Dabei entsteht eine Verzögerung (DELAY).
16
Bild08 – Darstellung der Pingrate vor dem Lag
Bild09 – Darstellung des Ping‘s während eines Lag‘s
17
4.3 Verbindungsmodelle
Alle Netzwerkspiele haben gemeinsam, dass jeder Teilnehmer das Spiel sehen und dem entsprechend
auch ins Spielgeschehen eingreifen können muss.
Prinzipiell lassen sich drei verschiedene Modelle für die Informationsübertragung
finden:
1. zentralistischer Ansatz
2. halbzentralistischer Ansatz
3. verteilter Ansatz.
Die Einteilung der Modelle beruht auf der Art und Weise, wie das Spiel im Netzwerk gespeichert ist.
Im zentralistischen Ansatz läuft das eigentliche Spiel nur auf einem einzigen Rechner,
dem 'Server' (siehe Kapitel 4). Alle anderen angeschlossenen PC's werden als 'Clients'
(siehe Kapitel 4) bezeichnet.
Auf ihnen werden keinerlei Berechnungen durchgeführt. Sie fungieren lediglich als "Terminal"
auf denen die aktuellen Spieldaten dargestellt werden, die der 'Server' ständig sendet.
Die Eingaben der Spieler werden von den Clients zum Server geschickt.
Die Vorteile dieses Ansatzes liegen in der einfachen Implementierung und in der geringen
Fehleranfälligkeit.
Eine Variante des zentralistischen Ansatzes ist der halbzentralistischer Ansatz.
In diesem Ansatz wird die Übertragung der großen Datenmenge dadurch eingeschränkt,
dass nur Spielstandsänderungen übertragen werden.
Fehler, die bei dieser Art der Datenübertragung auftreten, werden nicht mehr automatisch korrigiert.
Das heißt, dass die Anzahl der Fehler sehr klein gehalten werden muss. Eine wesentliche Rolle bei der
Korrektur eventueller Fehler spielt dann auch die Art der Zustandsänderungen. Es lassen sich dabei
relative und absolute Werte unterscheiden.
Bei absoluten Werten, wie z.B. 'Die Position von X ändert sich in die Position Y', kann ein
falscher Wert (in dem Fall die vorhergehende Position) wieder durch einen richtigen Wert
überschrieben werden. Im Falle von relativen Werten ist dies nicht der Fall. Ein Wert der einmal
falsch war, bleibt auch falsch.
Beispiel: ' Die Höhe/ Breite/ Länge von X erhöht/ erniedrigt sich um einen Wert Y'. Wenn die Höhe/
Breite/ Länge von X vorher falsch war, ist auch die neue Höhe/ Breite/ Länge von X nicht korrekt.
Im verteilten Ansatz läuft eine vollständige Kopie des Spiels auf allen Rechnern. Die zu übertragenden
Datenmengen in diesem Modell sind sehr gering, da nur Informationen darüber ausgetauscht werden,
welcher Spieler, welche Aktion, wann gemacht hat. Durch die niedrige Datenmenge
können deshalb auch komplexe Spiele im Internet gespielt werden. Allerdings ergibt sich dadurch
auch eine erhöhte Fehleranfälligkeit.
4.4 Synchronisationsmechanismen
Schon im vorhergehenden Kapitel waren Ansätze des Themas Synchronisation erkennbar.
Dieses Kapitel soll die nun verschiedenen Mechanismen und deren Auswirkungen auf
Multiplayerspiele darstellen.
Der ideale Fall in einem Netzwerkspiel ist der, dass auf allen beteiligten Rechnern der gleiche
Spielzustand vorliegt. Dies wird dann als synchrones Spiel bezeichnet. Bei einem synchronen Spiel
sind Sender und Empfänger durch einen gleichen Zeittakt aneinandergekoppelt. Das bedeutet, dass die
Daten, welche übertragen werden, im gleichen Takt von beiden Seiten gesendet und empfangen
werden. Dadurch befinden sich dann auch auf allen Rechner zu einem bestimmten Zeitpunkt dieselben
Daten. Ein Taktgenerator koordiniert und steuert diese zeitlichen Vorgänge.
18
Der jeweilige Synchronisationsbedarf ist bei den verschiedenen Multiplayer-Genres sehr
unterschiedlich ausgeprägt. Bei Strategie- bzw. Entwicklungsspielen hat die Synchronistion zum
Beispiel eine andere Rolle als bei Actionspielen. Bei Actionspielen wird eher auf eine zeitliche
Synchronisation Wert gelegt, als auf eine Objektsynchronisation.
Wenn im Bereich von Strategie- bzw. Entwicklungsspielen die Objektsynchronisation fehlt, kann sich
leicht ein Chaos entwickeln. Bei dieser Art von Spielen sind die verschiedensten Berechnungen sehr
wichtig und dementsprechend auch spielentscheidend. Es besteht die Gefahr, dass die anderen
Teilnehmer des Spiels über eine völlig andere Ausstattung und Anordnung von Gebäuden, Einheiten,
etc. verfügen, als dies auf dem lokalen Rechner zu erkennen ist.
Es wäre schon ziemlich ärgerlich, wenn man zum Beispiel Einheiten angreifen möchte, die sich in
einer bestimmten Position befinden, aber nicht wirklich dort vorhanden sind,... .
Ein Beispiel eines absolut synchronen Multiplayer-Spiels ist Warcraft2. Bei diesem Spiel wird die
Synchronisation dadurch erreicht, dass die einzelnen spielstandsrelevanten Handlungen der Spieler
nicht sofort ausgeführt werden. Dementsprechend ist der Spielstand auf allen beteiligten Rechnern
auch exakt gleich. Sofort ausgeführte Aktionen auf dem lokalem Rechner sind nur das Scrollen, die
Sprachausgabe beim Anklicken einer Einheit,... .
Kurz gesagt, es wird all das gleich ausgeführt, was den Spielstand nicht beeinflussen kann.
Jetzt stellt sich natürlich die Frage, was bei einer spielstandsrelevanten Handlung eines Teilnehmers
passiert. Das wird wie folgt behandelt:
Einer der Spieler schickt zum Beispiel einen Angriffsbefehl an eine seiner Einheiten. Dieser Befehl
erreignet sich zu einem bestimmten Zyklus. Jetzt weiß man, dass die Übertragung dieser Information
an die anderen Teilnehmer eine bestimmte Zeit z.B. 10 Zyklen braucht. Daher bekommt der Befehl
einen Zusatz, in dem steht, dass er im Zyklus X + 10 ausgeführt werden soll und verschwindet dann in
einer Queue. Der Befehl wird erst dann ausgeführt, wenn der Zyklus an der Reihe ist, in dem der
Befehl abgearbeitet werden soll. In der Zwischenzeit ist dieser Befehl auch bei den anderen
Teilnehmern angekommen und wird dort ausgeführt.
Bei mehr als zwei Rechnern erhöht sich die Zykluszeit dementsprechend, da ein Zentralrechner
vorhanden sein muss, der alle Befehle entgegennimmt und auch wieder zurückschickt.
Der Spieler selbst bekommt von diesen Verzögerungen nur relativ wenig mit. Man merkt es auch nur,
wenn man genau darauf achtet. Und selbst dann ist die Ausführung der Befehle noch relativ schnell,
und liegt etwa bei einer Sekunde. Anders ist das bei Actionspielen, da hier die Zeitsynchronisation
eine wichtigere Position einnimmt als die Objektsynchronisation. Verzögerungen der Art, wie sie bei
Strategie- bzw. Entwicklungsspielen vorkommen sind untragbar, zumal es bei Actionspielen auf
Geschick und Schnelligkeit ankommt und dies spielentscheidene Bedeutung hat.
Manche Spiele, wie zum Beispiel X-Wing und DESCENT besitzen nur wenige
Synchronisationsmechanismen. In schnellen Netzwerken (LAN) wirkt sich diese gewisse
Asynchronität jedoch nicht störend aus, weil der Informationsaustausch durch eine sehr geringe
Latenzzeit schnell vollzogen wird.
Asynchrone Vorgänge sind zeitlich nicht fest miteinander gekoppelt. Es existiert kein vorgegebener
Takt der das Computersystem steuert.
4.5 Protokolle
Protokolle sind für den geregelten Informationsaustausch zwischen Rechner und Peripheriegeräten
zuständig. Sie beinhalten Übereinkünfte über Datenformate, Zeitabläufe und Fehlerbehandlungen
beim Datenaustausch zwischen den einzelnen Computern.
Die mit dem Internet in Zusammenhang stehenden Protokolle sind im Request For Comments 793
(kurz: RFC) definiert und veröffentlicht. Es existiert eine Vielzahl von Protokollen .
4.5.1 TCP/IP - Transmission Control Protocol/ Internet Protocol
Das TCP/ IP Protokoll ist ein verbindungsorientiertes Netzwerkprotokoll.
Das Internet Protocol (kurz: IP) ist der Kern des gesamten TCP/ IP Protokolls. Die Aufgabe des IP
liegt in der Fragmentierung, Adressierung und im Versand von Daten.
19
IP ist ein sogenanntes verbindungsloses Protokoll. Verbindungslos bedeutet, dass man in diesem
Falle nicht testen braucht, ob der Zielrechner, den man erreichen möchte, überhaupt erreichbar ist. Das
Verschicken des IP- Paketes ist völlig ausreichend.
Über der Internetschicht befindet sich die Transportschicht. Diese wird vom Transmission Control
Protocol (kurz: TCP) unterstützt. Das TCP sorgt für das Ankommen der Daten und die Einsortierung
der Pakete in der richtigen Reihenfolge beim Empfänger. Außerdem bietet es gewisse Sicherheit in der
Kommunikation durch die Bestätigung des Paketempfangs. Ein weiterer Pluspunkt ist die
automatische Korrektur der Übertragungsfehler. Das TCP Protokoll ist im Gegensatz zum IP ein
verbindungsorientiertes Protokoll.
Die Vorteile des TCP/ IP Protokolls liegen in den netzwerkweit einheitlichen Adressen und in der
einheitlichen, geschlossenen API (Application Programming Interface) die dem Programmierer
angeboten wird.
TCP/ IP ist eine offene Protokollfamilie, die unabhängig von Herstellern entwickelt wurde, was
wiederum von Vorteil ist.
Der erhöhte Aufwand durch die ständige Kontrolle stellt allerdings auch einen Nachteil dar.
Bild10 – Darstellung der Schichtung von TCP/ IP
Bild11 – Darstellung des TCP/ IP im ISO/ OSI Schichtenmodell
4.4.2 UDP
- User Datagram Protocol
Das User- Datagram -Protokoll ist wie das TCP Protokoll ein Transportprotokoll und unterstützt
den verbindungslosen Datenaustausch zwischen Rechnern.
Das UDP wurde definiert, um auch Anwendungsprozessen die direkte Möglichkeit zu geben,
Datagramme3 zu versenden. UDP baut ebenfalls direkt auf dem darunterliegenden IP- Protokoll auf.
3
Datagramm: Ein Datagramm ist eine in sich geschlossene unabhängige Dateneinheit, die Informationen enthält,
und mittels eines Datagrammdienstes über ein Netzwerk transportiert werden soll. Ein
Datagramm enthält im wesentlichen die Empfangs- und Absenderadresse sowie die Nutzdaten.
20
Das bedeutet, dass UDP/ IP einen verbindungslosen Datentransfer ermöglichen.
Der Nachteil bei UDP/ IP ist, dass ein Ankommen der Nachrichten nicht garantiert wird, was aber
wiederum auch einen Vorteil darstellt, da dadurch Verzögerungen vermindert werden.
4.4.3 IPX/SPX - Internetwork Packet Exchange/ Sepuenced Packet Exchange
Bei dem IPX- Protokoll handelt es sich um ein spezifisches Netzwerkprotokoll, das vorwiegend in
Novell- Netware -Umgebungen eingesetzt wird. IPX ist ein verbindungsloses Übertragungsprotokoll,
welches man ebenfalls in die Vermittlungsschicht einordnen kann. Es ermöglicht die Adressierung
und das Routing von Datenpaketen in LANs. IPX ist die Basis für die Kommunikation innerhalb von
Novell- Netzen.
SPX ist eine von Novell entwickelte Schnittstelle (Transport Level Interface), welche im Netzwerk die
Möglichkeit zur verbindungsorientierten Paketübermittlung bietet. Es ist im wesentlichen eine
Erweiterung des IPX- Protokolls.
Der Zusammenhang von SPX und dem IPX- Protokoll entspricht dem des TCP- und IP- Protokolls .
SPX erhöht die Zuverlässigkeit der Übertragung durch die Überprüfung der zugestellten Datenpakete.
Es ist im IPX- Protokoll eingebettet und übernimmt eine reine Transportfunktion.
Bild12– Darstellung von IPX/ SPX
4.5 Beispiele
Siedler III
Bei Siedler III steht uns eine Vielzahl vom Multiplayer- Karten fürs Internet
und fürs lokale Netz zur Verfügung. Das Spiel unterstützt lokale Netzwerkspiele
(LAN), das TCP/IP- und das IPX/ SPX- Protokoll.
Weiterhin wird ein SIEDLER III- Internet- Server angeboten.
Total Annihilation
TA unterstützt das Multiplayerspiel über Nullmodem und Modem, sowie über IPX- und TCP/ IPNetzwerk. Weitere Möglichkeiten, unter welchen man TA im Multiplayermodus spielen kann, sind
MPlayer, TEN und Kali. Dies sind kommerzielle Gameserver, welche die jeweiligen Spiele anbieten,
wenn der Spielehersteller keinen eigenen Gameserver zur Verfügung stellen. Bei MPlayer sind die
meisten Spiele sogar kostenlos.
Ein Datagramm könnte man auch als Datentelegramm interpretieren.
21
DiabloI & DiabloII
Während DiabloI noch Nullmodem, Modem, IPX- Netzwerk und TCP/ IP- Netzwerk (BattleNet) als
Verbindungsmöglichkeiten anbot, existieren bei DiabloII nur noch das TCP/ IP- Netzwerk und die
BattleNet- Version.
Half-Life
Das beste 3D-Actionspiel des Jahres 1998 unterstützt das IPX- Netzwerk, das UDP/IP- Netzwerk
und den Gameserver Mplayer.
Die sehr große Multiplayer- Fangemeinde wird bei diesem Spiel mit tollen Zusatzprogrammen, wie
Team Fortress & Counterstrike, bereichert.
TCP/ IP ist für dieses SpielGenre deswegen ungeeignet, da hierbei (insbesondere im Internet) weitaus
größere Verzögerungen auftreten würden, als bei UDP/ IP.
22
Kapitel 5
Spielemanipulation
5.1 Cheats
Die Spiellust sinkt immer mehr, wenn man bei einem Spiel am x-ten (x∈N) Tag immer noch an
derselben Stelle hängt, wie schon y-Tage (y ≤ x) zuvor. Das führt dann bald dazu, dass man das Spiel
in die Ecke legt und keine Lust mehr hat weiterzumachen. Wer aber das INTERNET nutzt, hat es
einfacher.
Man kann sich heutzutage zu fast jedem Spiel Hilfe holen. Es existiert für fast alle Spiele eine
Sammlung von sogenannten "Cheats" oder sogar ganze Komplettlösungen.
Das Wort "cheat" kommt aus dem Englischen und bedeutet soviel wie täuschen, schummeln, mogeln
oder betrügen.
Was aber kann man als Cheat ansehen?
Definitiv wird jeder Hack oder jede unerlaubte Veränderung des originalen Programmcodes als Cheat
betrachtet, weil diese Variation des Originalcodes nicht als harmlos verifiziert werden kann (selbst
wenn sie harmlos sein sollte). Das Ausnutzen von Fehlern im Spiel wird ebenfalls als cheaten
angesehen, da Bugs einen unfairen Vorteil für diejenigen Spieler bedeuten, die über diese Bescheid
wissen. Genauso versteht man unter Cheats Programme oder Treiber, die einem Spieler dabei
„helfen“, eine bessere Leistung zu erreichen (bessere Zielmöglichkeiten, Ausleuchten dunkler Ecken
oder Transparenz von Wänden).
Aber: Programmierskripte, die Befehle benutzen, die von den Originalentwicklern eingebaut und
dokumentiert wurden, werden nicht als Cheats bezeichnet, außer sie nutzen bekannte Fehler aus. Diese
typischen Cheat-Codes bzw. Befehle, die es zu fast jedem Spiel gibt, wurden zu Testzwecken in die
jeweiligen Spiele eingebaut und von den Beta-Testern benötigt.
Die Cheater sind bei Online-Spielen ein lästiges Dauerthema, da sie sich mit diesen kleinen
Zusatzprogrammen ungerechte Ausgangssituationen verschaffen. Gängige Praxis ist zum Beispiel der
Einsatz von automatischen Zielvorrichtungen oder etwa der Austausch von farbigen Wandtexturen
durch durchsichtige Texturen bei First-Person-Shootern. Bei Echtzeitstrategiespielen können die ganze
Karte aufgedeckt oder unendlich viele Ressourcen und alle Technologien freigeschaltet werden. Die
Hersteller versuchen mit immer neuen Patches den Cheatern beizukommen. Einen hundertprozentigen
Schutz gibt es jedoch bisher jedoch in keinem Spiel. Welche Möglichkeiten es bisher gibt, wird im
Absatz 5.2.2 beschrieben. Wenn allzu offensichtlich gemogelt wird, spricht sich dies bei den
Profispielern schnell herum und die betreffenden Personen werden von der Weltrangliste gestrichen
und bei Turnieren ausgeschlossen. Subtile Formen des Mogelns bleiben jedoch zumeist unentdeckt.
23
5.1.1 Angriffsmöglichkeiten
Es existieren verschiedene Möglichkeiten um ein Spiel zu manipulieren. Man kann dies zum Beispiel
mittels Veränderungen an Datendateien oder Patchen der Exe-Files tun. Man kann aber auch
bekannte Fehler im Spiel oder der gespielten Maps eines Games nutzen und davon Vorteile
für sich selbst erreichen.
Einige bekannte Beispiele:
• „Wasserbug“ in CounterStrike Level „CS_SIEGE“,
der Spieler, welcher an einer bestimmten Stelle im Wasser kniet, kann nicht
erschossen werden, aber Gegner töten
•
die Maps „CS_ASSAULT“ und „DE_CBBLE“ boten in früheren Versionen die Möglichkeit
zu Verstecken, die außerhalb der Map lagen & ein Spieler konnte, wenn er den richtigen
Einstiegspunkt gefunden hatte, durch die Luft laufen
5.1.2 Abwehrtechniken
In diesem Abschnitt soll einmal gezeigt werden, welche Möglichkeiten man hat, gegen Cheater
vorzugehen. Leider sind diese Möglichkeit nicht von Dauer, so dass man gezwungen wird, immer
wieder nach neuen Lösungen zu suchen, um dieses Problem in den Griff zu bekommen.
5.1.2.1 PunkBuster
PunkBuster stellt eine sehr aktuelle Möglichkeit dar, um gegen Cheats vorzugehen. Das Wort ‚Punk‘
steht für armselig und schäbig. Und ‚buster‘ bedeutet nichts anderes als ‚Bursche‘ oder im
Zusammenhang mit ‚safe‘ oder ‚tank‘ Geldschrank- oder Panzerknacker,... und damit wird auch schon
das Aufgabengebiet angedeutet. PunkBuster sucht nach Cheats in den Spieledateien oder in laufenden
Prozessen und deckt diese auf. Es überträgt Codes, die es den verbundenen PunkBuster-Servern
ermöglichen, die Spieler für die jeweiligen Multiplayer-Games zu authentifizieren. PunkBuster
speichert jedoch zu keinem Zeitpunkt Daten über die Systeme der angeschlossenen Clients, weder
durch das Schreiben in Dateien, noch durch Übertragung per Netzwerk oder Internet. PunkBuster
strebt das Ziel an, cheatfreie Server anbieten zu können, auf denen die aufrichtigen Spieler Spaß haben
können. Leider wird derzeit nur Half-Life von Valve Software (und die unterschiedlichen
Modifikationen, so z.B. Team Fortress 1.5 und Counterstrike) unterstützt.
Doch was unterscheidet PunkBuster von anderen Methoden, welche gegen Cheats vorgehen?
PunkBuster ist momentan einzigartig. Natürlich wird sich das mit der Weiterentwicklung der
Spielesoftware ändern werden.
Andere Anti-Cheat Methoden lassen sich in 3 Kategorien einteilen. Sie sind entweder in das Spiel
selbst integriert, sind serverbasierend oder basieren einfach nur auf Glück. Wenn ein Spiel einen Anti Cheat-Code eingebaut hat, dann kann dieser sehr wirksam sein - bis er geknackt wird. SpieleEntwickler sind aber normalerweise nicht sehr schnell in der Lage, diese Cracks zu beheben, so dass
meist schon ein zweiter Cheat existiert, wenn der erste durch einen Patch behoben ist.
Serverbasierende und von anderen Firmen entwickelte Anti-Cheat Methoden kann man normalerweise
leicht durch einfache Veränderungen im Client überlisten. Die dritte Methode (Glück) beruht auf der
Hoffnung, dass ein Cheater arrogant genug ist zuzugeben, dass er cheatet, oder dass er einen
Screenshot oder anderes belastendes Material veröffentlicht.
Neue Cheats tauchen ähnlich wie auch Computerviren jedoch immer wieder auf.
Und genau wie Anti-Viren-Software ständig aktualisiert werden muss, um neue Viren abzuwehren, so
muss dementsprechend auch PunkBuster regelmäßig aktualisiert werden, um neue Cheats zu
erkennen.
Der Schwerpunkt von PunkBuster liegt hauptsächlich darin, Punks bloßzustellen, die Cheats
verwenden.
24
Und Cheater, die denken, dass sie mit ihren Cheats davonkommen, werden im Laufe der Zeit
geschnappt, falls sie nicht irgendeine geniale Cheatmöglichkeit entwickeln (und die Entwicklung dann
natürlich auch niemals jemanden erzählen).
Doch wie funktioniert PunkBuster überhaupt?
Von PunkBuster gibt es eine Server- und eine Clientversion. Der PunkBuster-Server überwacht die
einzelnen Game-Server. Die Client-Version von PunkBuster muss von den Spielern aufgerufen
werden, bevor das jeweilige Spiel gestartet wird. Wenn dies einmal vergessen werden sollte, werden
die Spieler innerhalb des Spiels daran erinnert und es wird ihnen eine Zeitspanne eingeräumt, in der
das Starten des Clients nachgeholt werden kann. Geschieht dies nicht werden die Spieler aus dem
Spiel geworfen. Dies geschieht aber nur, wenn eine Verbindung mit einem überwachten Server
besteht.
Wenn die Spieler sich mit nun einem Gameserver verbinden, wird der PunkBuster-Server, der diesen
Gameserver überwacht, automatisch Kontakt mit der Client-Version der Spieler aufnehmen und sie
verifizieren. Falls notwendig oder gewünscht, kann der Spieler seinen Client auch manuell direkt mit
einem PunkBuster-Server verbinden, indem er dessen IP-Adresse eingibt, um die Überwachung
auszulösen. Wenn der PunkBuster einen Cheat entdeckt hat, wird der Name des Cheaters den anderen
Spielteilnehmern bekanntgegeben und er wird von dem Gameserver verbannt. Selbst das Installieren
von Cheats nach dem Aufruf des PunkBusters hat wenig Sinn, da prinzipiell die gesamte Liste der
laufenden Prozesse auf dem Client-Rechner während des Spiels gescannt wird. Sobald ein neuer
Prozeß gestartet wird, erzwingt der PunkBuster eine erneute Authentifizierung.
Zusätzlich verlangen die PunkBuster-Server in unregelmäßigen Abständen eine erneute
Authentifizierung alle 20 bis 40 Minuten. Dies passiert alles im Hintergrund und beeinflusst in keiner
Weise den Spielablauf (es sei denn, jemand wird beim Cheaten ertappt ).
25
Kapitel 6
Literatur
Daniel Mühlbacher, Peter J. Dobrovka, Jörg Bauer
Computerspiele – Design und Programmierung
MITP – Verlag GmbH Bonn
1. Auflage 2000
ISBN 3-8266-0634-5
Vortrag ‚Multi-User-Interaktion in Computerspielen‘
Katharina Stahl
Magdeburg, April 2000
Datenschutz:
http://bowle.de/vortrag/971023dr/02-datenschutz.html
http://barolo.tsm.musin.de/projekte/netze/artikel/99/03/160/art.htm*
http://www.netzmafia.de/skripten/sicherheit/index.html
http://rzsunhome.rrze.uni-erlangen.de:81/~unrzg8/seminar/iug_ds_auarbeit.html*
http://www.punkbuster.4players.de/
Client/ Server:
http://wwwi.wu-wien.ac.at/glossar/1-2_17.htm
Protokolle:
http://barolo.tsm.musin.de/projekte/netze/artikel/93/03/232/art.htm*
http://www.iig.uni-freiburg.de/~mhartman/tcpip/tcp1.html
Verschiedenes:
http://www.glossar.de
http://www.networkworld.de/onlinelexikon
http://www.heise.de/ct
Spiele:
http://www.bluebyte.net/siedler4
http://tfcfaq.tf2-web.de/server.phtml
http://ourworld.compuserve.com/homepages/mechanics/multipla.htm
http://www.8bit-museum.de/
http://www.egames.ch/engine.asp?action=previews&data=Adventure
http://www.cybergeography.org/atlas/muds_vw.html
Geschichte:
http://www.thelegacy.de/Start2/Deutsch/index.html
http://www.gamespy.com/articles/january01/muds1/index.shtm
26