So funktionieren Privatserver

Geschrieben von Filipper am 27.08.2011, 12:46 Uhr

Grundidee eines Privatservers: So funktioniert ein World of Warcraft-Emulator

 

Einige von euch haben sich sicher schon einmal gefragt, wie genau die Emulationssoftware für World of Warcraft funktioniert. Für diejenigen unter euch, die keine Lust haben, sich durch tausende Zeilen Quellcode der offenen Emulations-Projekte wie beispielsweise MaNGOS oder TrinityCore zu lesen, haben wir von iBlizz hier die Grundidee eines Privatservers zusammengefasst.

 

Grundlegendes

Zunächst ist es wichtig zu wissen, dass World of Warcraft eine Server-Client-Anwendung ist. Das bedeutet, dass es nicht (so wie bei einem Offline-Spiel) nur ein Programm gibt, sondern grundsätzlich zwei verschiedene Programme: Der Server und der Client. Der Server ist ein Programm, das nur Blizzard Entertainment, also der Hersteller besitzt, der Client ist hingegen der Teil von World of Warcraft, der bei uns auf dem PC installiert ist. Wie genau der Server aussieht, weiß dabei nur Blizzard Entertainment. Wichtig ist auch zu erwähnen, dass Server und Client miteinander kommunizieren müssen, was über das Internet geschieht.

Das Programm World of Warcraft kommuniziert also immer mit dem Server von Blizzard Entertainment. Ohne diese Kommunikation würde der Client nicht funktionieren. Über die Kommunikation mit dem Server erhält der Client Anweisungen, was als nächstes zu tun ist, was dargestellt werden soll usw.

Nun ist es so, dass jede Kommunikation immer eine Sprache benötigt, um stattfinden zu können. Ein einfaches Beispiel aus dem Alltag verdeutlicht dies: Wenn du bei einem französischen Restaurante anrufst, dessen Wirt nur Französisch spricht, du selbst aber nur Deutsch kannst, wird es dir schwerfallen, dort einen Tisch zu reservieren. Wenn du sagst "Ich würde gerne einen Tisch reservieren." versteht dich der Wirt nicht und wird vermutlich das Gespräch beenden. Eine Kommunikation kommt nicht zustande.

In der Informatik bezeichnet man eine Sprache als Protokoll. Jede Kommunikation zwischen zwei Anwendungen hat ihr eigenes Protokoll. Anwendung 1 kann nur mit Anwendung 2 kommunizieren, wenn die beiden Anwendungen das gleiche Protokoll verwenden (die gleiche Sprache sprechen). Wer im Internet unterwegs ist, ist schon in Kontakt mit mehreren solcher Protokolle gekommen: Die Übertragung von Websites geschieht beispielsweise über HTTP (Hyper Text Transfer Protocol), andere bekannte Protokolle sind FTP (File Transfer Protocol) oder SMTP (Simple Mail Transfer Protocol). Und so ist es auch bei World of Warcraft: Blizzard Entertainment hat ein Protokoll entwickelt, mit dem sich die Server von Blizzard mit dem World of Warcraft-Clienten bei euch zu Hause unterhalten.

Wenn euch ein Ebenenschreiter im Brachland angreift, sieht die Kommunikation zwischen dem Server und dem WoW-Clienten in Etwa so aus:

Mob mit dem Namen "Ebenenschreiter" und der Model-ID "123456" auf der Position "X,Y,Z" greift Spieler mit dem Namen "ABC" an und verursacht 23 Schaden.

Natürlich wird der Server nicht genau diesen Text an den Client übermitteln, aber so ungefähr kann man sich die Kommunikation zwischen dem Server und dem Client vorstellen.

 

So funktioniert der Privatserver

Damit der Client mit dem Server über das Internet in oben beschriebener Art und Weise kommunizieren kann, benötigt der Server die IP-Adresse des Clienten und umgekehrt. Nur so können die beiden miteinander sprechen. Aus diesem Grund ist die IP-Adresse des Servers im World of Warcraft-Clienten eingespeichert. Startet man World of Warcraft meldet sich der Client bei der eingespeicherten IP-Adresse und begrüßt den Server. Dieser erfährt dadurch die IP-Adresse des Clienten und die Kommunikation kann stattfinden.

Wie sich einige von euch nun vielleicht schon gedacht haben, ist diese IP-Adresse im World of Warcraft-Clienten innerhalb einer bestimmten Datei gespeichert: Der Realmlist (Realmlist.wtf). Jeder, der schonmal auf einem Privatserver gespielt hat, weiß, dass man dazu den Inhalt dieser Datei modifizieren muss. Man muss dort die IP-Adresse des Servers eintragen, auf dem man spielen möchte. Anstatt dass der WoW-Client nun die erste Begrüßung an die echten Server von Blizzard sendet, schickt er so die Begrüßung an die dort angegebene IP-Adresse, hinter der der Privatserver steht.

Der Privatserver muss nun dazu in der Lage sein, genauso auf die Begrüßung zu antworten, wie es der echte Server machen würde. Dazu haben die Entwickler der Emulatoren in jahrelanger Arbeit den Clienten analysiert und den Netzwerk-Verkehr beim Spielen aufgezeichnet. Auf diese Weise lassen sich Rückschlüsse auf das von Blizzard Entertainment entwickelte Protokoll ziehen.

Privatserver sind inzwischen dazu in der Lage, das Protokoll von World of Warcraft fast vollständig zu emulieren. Der Client denkt, dass er tatsächlich mit einem echten Server von Blizzard spricht. Im übertragenen Sinne haben die Emulatoren also die Sprache von World of Warcraft erlernt.

 

Woher kommen Bugs auf Privatservern?

Bugs, also Fehler, treten immer wieder auf und sind gewissermaßen die Plage auf Privatservern. Einige Sachen funktionieren auf Privatservern nicht so, wie sie auf den echten Servern funktionieren. Das liegt daran, dass das Protokoll noch nicht vollständig erforscht wurde. An manchen Stellen weiß der Server einfach nicht, was er der Anfrage des Clienten antworten soll oder antwortet falsch.


Die letzten 10 Kommentare

Geschrieben von dönerman am 10.04.2012 um 14:07 Uhr
geeanu

Kommentar schreiben

Hinterlassen Sie ein Kommentar zu diesem Tutorial.
Anstößige Kommentare sind nicht erwünscht!

Benutzername
E-Mail Adresse
Homepage (falls vorhanden)
Ihre Nachricht
Noch 300 Zeichen

Gamekey-Shop.de

© 2010 - 2012 by iBlizz.net
Kontakt | AGB | FAQ | API

262 Aufrufe in den letzten 24 Stunden