glotzer - Di 28.01.14 18:48
Titel: Client-Server Infrastruktur
Hallo zusammen,
ich bin zurzeit daran ein sehr kleines 2D RPG Spiel zu schreiben und bin jetzt dabei mir darüber Gedanken zu machen wie man denn man besten eine skalierbare und Ausfallsichere Serverinfrasturktur aufbaut.
(sorry, meine paint skills....)
Meine bisherige Überlegung sieht so aus, dass sich ein Client immer mit drei Eingangsservern verbindet, allerdings nur eine davon verwendet, die anderen 2 bleiben quasi auf Stand-by.
Diese Server haben jeweils eine Verbindung zu jeder Spielwelt und den Loginservern.
Die Eingangsserver kümmern sich um das Login und darum die Verbindung zu entschlüssen, sowie die Pakete auf Validität zu überprüfen.
Nur dann werden sie an den eigentlichen Server weitergeleitet.
Dort wird entsprechend auf die Pakete reagiert und die Antwort an den selben Eingangsserver zurückgeschickt. Dieser leitet sie dann verschlüsselt an den Client weiter.
Erkennt der Client jetzt, dass die Verbindung zu den aktieven Eingangsserver abgebrochen ist, springt er automatisch auf eine der zwei anderen Verbindungen über und sucht sich einen neuen 3. Eingangsserver. Dem neuen Server teilt er mit, dass die Verbindung abgebrochen ist und fordert das letzte Paket erneut an. Damit weis dann auch der Spielserver, dass die Verbindung ab jetzt über den neuen Server läuft, und sendet das letzte Paket erneut.
Was haltet ihr davon? Ist das ganze so sinnvoll oder habt ihr eine bessere Idee? Mein Grundgedanke war, dass die Außenwelt die eigentlichen Server nie sieht und so nur die Eingangsserver angreifbar sind, wenn die allerdings abstürtzen oder durch ddos lahmgelegt werden, tut das niemanden weh, der Spieler merkt es wahrscheinlich nichtmal, weil automatisch über einen anderen Server weiter gemacht wird.
mfg
glotzer
Martok - Di 28.01.14 20:49
Die wichtigste Frage: Wie viele Spieler?
Dein Design skaliert durch die parallelen Verbindungen schonmal relativ schlecht, aber was das genau bedeutet kann man nur mit einer geschätzten Größenordnung angeben. Ausfallsicher könnte es sein, aber sobald ein Proxy stirbt hast du im worst-case eine schöne Kettenreaktion und einer nach dem anderen fällt um.
Ein paar Worte hatten
wir dazu auch schonmal geschrieben [
http://muo-game.de/de/new-gui-design-network-protocol/]. Nicht mehr alles aktuell und ein paar Stellen haben wir seitdem optimiert, aber die Grundidee ist noch da. Unsere Größenordnung: bis zu 200-1k Spieler in einem Sektor.