"Kinderkram" mag der erste Gedanke vieler sein, wenn es auf das Thema Computer- und Videospiele kommt. Doch das Wachstum der Branche und ihre Verkaufszahlen sprechen da eine ganz andere Sprache: Die weltweiten Umsätze haben längst zweistellige Milliardenbeträge erreicht und von den Wachstumsraten können andere Branchen nur träumen. Alleine in den USA wurden im Jahr 2007 18,8 Milliarden US-Dollar mit Soft- und Hardware für Computer- und Videospiele umgesetzt. Dies bedeutet eine Steigerung um vierzig Prozent gegenüber dem Vorjahr. Analysten sagen voraus, dass dieser Industriezweig in absehbarer Zeit sogar die Umsatzzahlen der Musikindustrie übertreffen wird. Mit der zunehmenden Bedeutung der weltweiten Vernetzung über das Internet steigt auch der Anteil sogenannter "Online-Spiele". Bei dieser Art von Spielen können sich Teilnehmer, die über die ganze Welt verteilt sind, zum gemeinsamen Spielen über das Internet miteinander verbinden. Auch die Zukunftsaussichten solcher Online-Spiele sind glänzend: bis 2011 soll der weltweite Umsatz auf über 13 Milliarden US-Dollar ansteigen. Die kommerziell wohl erfolgreichste Art von Online-Spielen sind die sogenannten "Massively Multiplayer Online Games (MMOGs)". Dieses Genre bietet riesige virtuelle Spielwelten, in denen tausende von Spielern gleichzeitig interagieren können. Dazu erschaffen sie individuelle virtuelle Avatare, die in Anlehnung an reale Personen Eigenschaften und Fähigkeiten entwickeln sowie Besitztümer anhäufen können. Die Spielwelten sind rund um die Uhr verfügbar, ein Spieler kann sie jederzeit mit einem Avatar betreten. Anders als bei anderen Spielgenres gibt es kein vorgegebenes Ziel nach dessen Erreichen das Spiel zuende ist. Stattdessen existieren die virtuellen Welten oft über viele Jahre hinweg und binden somit die Spieler langfristig. Der erfolgreichste Vertreter der MMOGs ist zur Zeit "World of Warcraft", der Anfang 2008 über zehn Millionen Teilnehmer weltweit vorweisen konnte und damit einen Marktanteil von über 62 Prozent innehatte. Die Teilnahme an diesen Spielen wird in der Regel über Abonnements realisiert, für die monatliche Beträge von bis zu 15 US-Dollar erhoben werden. Die Entwicklung von heutigen Computer- und Videospielen ist eine komplexe und kostenintensive Herausforderung. Im Jahr 2008 hat das erste Videospiel die Grenze von 100 Millionen US-Dollar an Entwicklungskosten überschritten. Zusätzlich müssen Anbieter von Online-Spielen die notwendige Infrastruktur bereitstellen und betreiben, damit ein Spiel über das Internet gespielt werden kann. Traditionell werden diese Spiele als Client/Server-Architektur realisiert. Der Client dient dabei nur als eine Art Terminal, das die Spielwelt audiovisuell darstellt und Kommandos des Spielers entgegennimmt um sie an den Server zu schicken. Alle notwendigen Berechnungen um diese Kommandos zu verarbeiten und den Zustand der Spielwelt zu verwalten werden auf dem Server durchgeführt. Um hunderte oder gar tausende von Spielern in einer Spielwelt unterzubringen sind leistungsfähige Rechner und breitbandige Internetverbindungen notwendig. Dazu kommt ein erheblicher Personalaufwand für das Betreiben der Server, das Erstellen von Softwareupdates sowie Kundenservice und Abonnementverwaltung. Beispielsweise liefen für World of Warcraft seit dem Start im November 2004 rund 200 Millionen US-Dollar an Kosten an. Zusätzlich zu dem Aufwand, den Betrieb eines Online-Spiels aufrecht zu erhalten, kommt eine weitere Herausforderung hinzu: das Spiel frei von Betrügern, sogenannten "Cheatern" zu halten. Als Cheater bezeichnet man Spieler, die sich unfaire Vorteile gegenüber anderen Spielern verschaffen. Dies hat erheblichen Einfluss auf das Spielerlebnis ehrlicher Spieler und damit letztendlich auch auf den kommerziellen Erfolg eines Spiels. Ehrliche Spieler werden durch Cheater benachteiligt, was dazu führt, dass sie häufig ihre Abonnements kündigen. Die Betreiber von MMOGs gehen in der Regel hart gegen Cheater vor und zögern nicht diese sofort vom Spiel auszuschließen. Beispielsweise hat Blizzard Entertainment, der Betreiber von World of Warcraft, im Jahr 2006 innerhalb eines einzigen Monats 59.000 Spieler wegen Cheatings des Spiels verwiesen. In dieser Arbeit stellen wir eine Netzwerkarchitektur für Online-Spiele vor, die darauf abzielt, die Kosten für das Bereitstellen der notwendigen Dienste erheblich zu senken. Dies geschieht, indem die benötigte Rechenzeit und Bandbreite nicht mehr vom Server, sondern von den Clients, d.h. den Rechnern der Spieler, bereitgestellt wird. In der Regel verfügen Spieler über sehr leistungsfähige Hardware, die bei Online-Spielen bislang nicht voll ausgelastet wird, da die Spielwelt vollständig auf dem Server verwaltet wird. Weiterhin sind Spieler häufig über breitbandige Verbindungen an das Internet angeschlossen. Unsere Architektur nutzt diese Ressourcen indem sie die Verwaltung der Spielwelt auf die Clients verlagert. Zu diesem Zweck wird die Spielwelt in kleinere Regionen, deren Verwaltung von einem einzelnen Spielerrechner bewältigt werden kann, unterteilt. Ein Spieler, dessen Avatar sich in einer bestimmten Region befindet, verbindet sich mit dem Rechner, der für die Verwaltung dieser Region zuständig ist. Der Spielbetreiber muss nun nur noch Dienste bereitstellen, die verhältnismäßig wenig Ressourcen in Anspruch nehmen. Zum einen wird ein Dienst benötigt, der die Spielregionen den Clients zur Verwaltung zuweist. Dieser Dienst kann gleichzeitig als Zutrittspunkt zum System fungieren, der jeden Spieler zu dem Rechner weiterleitet, der gerade für seine Region zuständig ist. Weiterhin sollte die Abonemmentverwaltung nur von einem vertrauenswürdigen Server durchgeführt werden, da hier sensible Daten gespeichert sind. Die gerade beschriebene Netzwerkarchitekur wird in ein Framework integriert, dass netzwerkspezifischen Programmcode vor dem Spielentwickler verbirgt. Das vermindert die Komplexität des Entwicklungsprozess' erheblich und damit auch die verbundenen Kosten. Gleichzeitig wird die Wiederverwendbarkeit deutlich gesteigert. Die Abstraktion vom Netzwerk wird über das Publish/Subscribe-Paradigma erreicht. Das Framework sorgt dafür, dass Änderungen des Spielstandes über eine Publikation automatisch zu den Rechnern verteilt werden, die an dieser Änderung interessiert sind. Auf diese Weise wird der Zustand des Spiels auf allen Knoten konsistent gehalten, ohne dass der Spielentwickler dazu manuell eingreifen muss. Das Framework abstrahiert aber nicht nur von der oben genannten Netwerkarchitektur. Prinzipiell kann jede Architektur verwendet werden, solange die Kommunikation auf die entsprechenden Subskriptionen und Publikationen abgebildet werden kann. Momentan unterstützen wir zusätlich die traditionelle Client/Server-Architektur und einen reinen Peer-to-Peer-Modus. Zusätzlich zur Netzwerkabstraktion beschleunigt das Framework den Entwicklungsprozess durch einen datenzentrierten Ansatz. Jeder Aspekt eines Spielobjekts - Zustand, Typ und Operationen - können aus einer externen Datei geladen und zur Laufzeit verändert werden. Dadurch wird zeitaufwändiges Neukompilieren bei Änderungen am Spieldesign vermieden. Weiterhin stellen wir eine Lösung vor, die regelwidrige Veränderungen am Spielstand verhindert. Dieses Problem entsteht, wenn der Zustand des Spiels nicht auf vertrauenswürdigen Servern, sondern auf den Clients der Spieler verwaltet wird. Weil diese Clients prinzipiell nicht vertrauenswürdig sind, können wir uns nicht ohne weiteres auf deren Berechnungen verlassen. Anstatt einen einzelnen Client über den Zustand einer Region entscheiden zu lassen, wird der Zustand auf mehreren Clients repliziert. Jede Replik votiert nun für einen bestimmten Zustand des Spiels und die Mehrheit entscheidet. Solange die Mehrzahl der Repliken sich regelkonform verhält, können Manipulationen dadurch verhindert werden. Der Abstimmungsprozess erfordert keine direkte Synchronisation zwischen Repliken. Dadurch wird der Kommunikationsaufwand minimiert und einzelne Repliken können den Entscheidungsprozess nicht blockieren. | German |