Project Darkstar - Gameserver für Jedermann

Online-Spiele sind der Boom der letzten Jahre. World of Warcraft, Guild Wars, Lord of The Rings Online die von der Spielercommunity sehnlich erwarteten Conan und Warhammer Online vereinen Millionen von Spielern auf der ganzen Welt. In diesem Arikel geht es um die Technik hinter diesen Spielen und Project Darkstar, den großartigen freien Gameserver, den Sun unter einer OpenSource-Lizenz freigegeben hat.

Was ist Project Darkstar?

Project Darkstar ist ein vollständig in der Programmiersprache Java geschriebener Gameserver, mit dem man beliebige Multiplayer-Spiele und auch andere kommunikationsintensive Netzanwendungen entwickeln kann. Darkstar ist also kein fertiges Spiel, sondern eine Plattform, um eigene Spiele zu entwickeln.

Normalerweise verschlingt bei einem MMORPG (Massive Multiplayer Onlline Role Playing Game - Multiplayer Online Rollenspiel) die Entwicklung des Servers und der Kommunikationsinfrastruktur entweder immense Geldsummen, wenn die Technologie zugekauft wird, oder einen erheblichen Anteil der Entwicklerkapazität. Die Infrastruktur eines Massiven Online Spieles ist eine sehr große Herausforderung, besonders wenn sie auch noch mit der Anzahl der Spieler skalierbar sein soll. Zusättzlich wird das Programmiermodell für die Entwickler mit steigender Komplexität der Serveranforderungen immer unübersichtlicher, da eine ganze Reihe von Faktoren berücksichtigt werden müssen, die mit dem eigentlichen Spiel nichts zu tun haben.

Project Darkstar baut auf den Erfahrungen mit den Online-Spielen der letzten Jahre auf und bietet unter anderem Lösungen für folgende Probleme:

  • Einfaches Programmiermodell - Für den Spieleentwickler ist Darkstar eine Eventgetriebene Single-Threaded-Umgebung. Die gesamte Verteilung der Last auf mehrere Threads, Prozesse, CPU's oder gar Netzwerkcluster erfolgt völlig transparent durch den Server. Der Programmierer kann sich also darauf konzentrieren, an der Spielelogik zu arbeiten und muß sich nicht um Threadsicherheit kümmern.
  • Transaktionssichere Persistenz - Der Server kümmert sich selbst darum, daß die Daten im gesamten Cluster transaktionssicher verwaltet werden. Alle Objekte der Spielewelt werden automatisch gespeichert und können einfach aktualisiert werden.
  • Ausfallsicherheit - Wenn ein Server im Cluster ausfällt, übernehmen die anderen die Arbeit automatisch und transparent. Da das ganze System durch die Transaktionsorientierung immer in einem gültigen Zustand gehalten wird, verliert man auch bei einem völligen Ausfall des Rechenzentrums höchstens einige Sekunden der Spielewelt und kann sie an dem Punkt weiterlaufen lassen, an dem der Ausfall stattgefunden hat.
  • Unbegrenzte Spielwelten - Der Server erfordert keine Maßnahmen zur Unterteilung der Spielwelt. Man kann in Zonen einteilen, muß aber nicht. Sollte die Spielwelt und die Anzahl der Spieler wachsen, kann man einfach weitere Rechner in den Cluster einhängen.
  • Freie Wahl der Programmiersprache - Da Project Darkstar selbst in Java geschrieben ist, ist Java natürlich auch die einfachste Möglichkeit, den serverseitigen Code zu schreiben. Man muß aber nicht. Es gibt unter anderem Schnittstellen zu C/C++ und Python. Beim Client, also dem Programm, welches der Spieler benutzt um mit dem Server zu interagieren, gilt das gleiche: Man kann, aber muß nicht in Java programmieren.

Sun bietet im Zuge des Project Darkstar vielversprechenden Projekten auch eine Hardwareplattform mit entsprechenden Ressourcen. Der im SDK enthaltene Entwicklungsserver ist ausdrücklich nicht für einen produktiven Betrieb bestimmt und benutzt als Backend eine recht einfache Datenbanklösung (Berkeley DB), die im Produktionsbetrieb wohl eher durch bekannt gut skalierende Datenbanken ersetzt wird.

Links

Die Homepage des Projektes: http://www.projectdarkstar.com

Ein einführendes Tutorial als eBook: http://www.oreilly.com/catalog/9780596514846/


Bookmark and Share