Private Server - Wie?

06/13/2011 03:06 Shawak#1
Hallo Community,

ich wollte einfach mal fragen wie so ein privat Server wie z.B. ein WoW- Private Server funktioniert, und kommt mir bitte nicht mit Antworten wie lern cpp etc.. Ich will das Prinzip verstehen.

Also, weiß jemand wie sowas funktioniert? Wenn ja, wie? Alles über Packets? Ist es für jedes Game umsetzbar?

mfG,
Shawak™


(Da in der Main Sektion keiner ne Ahnung davon hat poste ich einfach mal hier)
06/13/2011 05:28 Ronox#2
Bei WoW ist es eine Client - Server Applikation.

Der Server verwaltet grob gesagt alles, also Items, Spieler Positionen usw.
Der Client fragt bei dem Server nach was er den an Items hat und wo seine Position ist und stellt dies Grafisch für den Benutzer dar.

Das ist das Grobe Konzept. Weis aber jetzt nicht ob du das meintest. Wenn nicht bitte genauer Erläutern :D
06/13/2011 10:42 xNopex#3
AFAIK analysiert man zuerst die Packets, die zwischen Client und Server ausgetauscht werden und versucht dann herauszufinden, was die einzelnen Bytes bedeuten (e.g. 0x01 steht für eine Statusmeldung des Servers [OK] oder 0xAF ist ne Anfrage des Clients, wie viele Spieler [Clients] mit dem Server verbunden sind).
So erstellt man schrittweise das verwendete Protokoll und kann damit den Server programmieren. Wenn man Glück hat, findet man bald heraus, dass das verwendete Protokoll kein eigens ausgedachtes, sonder zweckentfremdes ist, z.B. kann das IRC-Protokoll einfach mal misbraucht werden. In solchen Fällen kann man sich die Packet-Analyse sparen und einfach die Dokumentation des Protokolls zu Rate ziehen und dann damit den Server programmieren.
Tatsache ist, dass die Programmiersprache ziemlich egal ist, in der du das realisierst. Sie sollte nur grundlegende Socket-Funktionalitäten liefern, weil das ganze sonst ziemlich schwer wird. Bevorzugt wird meistens C/C++, da schnell und im Prinzip Plattformunabhängig, sodass es auch auf einem UNIX-Server laufen würde, wenn man nur die richtigen Libs verwendet. Ich rate zu boost::asio.
06/13/2011 13:02 Shawak#4
Danke Nopex :).