Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Pecadis

Frischling

  • »Pecadis« ist der Autor dieses Themas

Beiträge: 29

Wohnort: München

Beruf: Fachinformatiker für Systemintegration

  • Private Nachricht senden

51

06.03.2012, 22:04

Ok das Klingt echt interressant.

wenn man die Daten von Chromanoid zugrunde liegt (13250 Blade Server) kommt man auf 53 Server pro Spielwelt. Ob das noch andere sachen hinzukommen oder nicht weiß ich nicht. Auf jeden fall dürften die Stromkosten nicht gerade niedrig sein ^^.

52

06.03.2012, 22:09

@ArthurII: Mmh das mit 500-700 Leuten kann ich mir noch einigermaßen vorstellen. Ein guter MMORPG-Server sollte so um die 1000 Spieler schaffen. So viele kommen übrigens ungefähr auf einen Tibia Realm (dort gibt's pro Realm einen physischen Server, siehe http://www.gdcvault.com/play/1014908/Ins…-Infrastructure), allerdings ist die DB mit Accountdaten und Spielerdaten-backup (?) wohl auf anderen Servern. Danke für den interessanten Einblick.

@Pecadis: Das Paper ist dazu vielleicht auch ganz interessant: Lee, Y.-T. & Chen, K.-T. Is Server Consolidation Beneficial to MMORPG? A Case Study of World of Warcraft 2010 IEEE 3rd International Conference on Cloud Computing (CLOUD), 2010, 435 -442 (leider sind scheinbar nur die Slides frei online). Soweit ich das verstanden habe, nutzen die bei WoW keine Server-Konsolidierung , so dass so viele Server pro Realm sicher Sinn machen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chromanoid« (06.03.2012, 22:20)


Pecadis

Frischling

  • »Pecadis« ist der Autor dieses Themas

Beiträge: 29

Wohnort: München

Beruf: Fachinformatiker für Systemintegration

  • Private Nachricht senden

53

06.03.2012, 22:50

Wow Chromanoid Interressante Präsentationen.

Wenn ich mir das so überlege kenne ich (bis auf Eve online und Second life) keine spiele die aktiv und durchgehend eine Server-Konsolidierung durchführen. Aber ich denke das gibt mir schon mal nen guten einblick wieviele Rechenpower ich Tatsächlich brauchen werde. Ich denk für meine angepeilten 20.000 Leute werde ich mindestens 25 Server brauchen.
Aber ich denke mit der richtigen Softwarearchitektur kann man da viel mehr rausholen.

54

07.03.2012, 14:05

Ich bin mir nicht sicher wie viel und ob überhaupt bei SL und EVE dynamisch konsolidiert wird. Bei SL passiert da AFAIK praktisch gar nichts in der Richtung. Also der Server Prozess wird pro Region irgendwo gestartet und läuft dann dort permanent. Bei EVE würde ich vermuten, dass wenn überhaupt mehr oder weniger händisch konsolidiert wird. D.h. es wird regelmäßig festgestellt wie stark frequentiert einzelne Gebiete sind und dann entsprechend langfristig eingestellt welche Sonnensysteme auf wie vielen Servern verarbeitet werden müssen... Hast du da explizite Informationen?

Falls du da Experimente machen willst, solltest du dir mal http://www.opsource.net/ anschauen, das ist ein Cloud Computing Anbieter, der VLAN und Multicast von Haus aus anbietet.

Pecadis

Frischling

  • »Pecadis« ist der Autor dieses Themas

Beiträge: 29

Wohnort: München

Beruf: Fachinformatiker für Systemintegration

  • Private Nachricht senden

55

07.03.2012, 16:53

ok wie das in SL ist weiß ich eben nicht aber in Eve online habe ich ein paar situationen erlebt die darauf schließen lassen dass die Konsolidierung teilweise automatisch abläuft. Ne genaue referenz kann ich da aber nicht geben aber: Wenn ein Krieg stattfinden soll mit mehr als 1500 Personen muss das dem Support mitgeteilt werden. Das wäre ein indiz für die händische Konsolidierung. Andererseits hatten sind wir mal in unbelebte Systeme vorgedrungen und wenn man den Betreten hatte gans die nachricht "bitte kommen in einigen minuten wieder - Der Server wird gerade gestartet". Also muss da ein gewisser automatismus drin liegen.

Aber ich zermarter mir momentan sowieso gerade mein Hirn um ne Optimallösung zwischen Serverauslastung und Energieeffizienz zu finden.

Meine letzte idee hat einfach den Nachteil dass die Server Permanent laufen müssen, auch wenn sie gerade nicht Arbeiten. Auch gibt sich da das Problem dass jeder Server eine feste position hat wodurch die implementation von neuen Servern schwierig wird. Um da nen gesunden mittelweg zu erstellen müsste ich die bereiche des Servers auflösen wodurch jeder Server überall zugreifen kann und muss d.h. wenn ich wissen will wer um eine bestimmte position herum ist da muss ich ein Broadcast an alle Server Senden wodurch die Netzlast immer schneller in den Keller geht je mehr Objekte bzw Spieler im System sind.

:hmm:

56

07.03.2012, 17:51

Ich glaube man muss bei wissenschaftlichen Auseinandersetzungen mit diesem Thema ziemlich vorsichtig sein (bzgl. Anwendbarkeit), aber inspirieren sollte es ja: http://ldc.usb.ve/~yudith/docencia/ci-48…reforMMORPG.pdf
Mal eine meiner Ideen: Wenn man den Zustand eines Gebietes gut zwischen Servern hin und her transferieren kann, wäre vielleicht eine Art verteilte Hash-Tabelle eine ganz interessante Sache. Die Server werden dann anhand eines Hashs einzelnen teilbaren Knoten zugeordnet. Sollte der Server überlastet sein, könnte man den Knoten aufteilen und den neu entstandenen Knoten neue IDs zuweisen, die dann wieder über ihre Hashwerte zugeordnet werden. Sollte nicht mehr genug Kapazität vorhanden sein, müsste man weitere Server hinzufügen. JBoss Infinispan ist so ein System mit dem man das recht leicht ausprobieren könnte.

Pecadis

Frischling

  • »Pecadis« ist der Autor dieses Themas

Beiträge: 29

Wohnort: München

Beruf: Fachinformatiker für Systemintegration

  • Private Nachricht senden

57

07.03.2012, 22:45

Ich glaube ich komme nicht drum herum diese serveranordnungen selber zu testen (selber schreiben usw) um herauszufinden welches denn wirklich das beste ist.

Deine Idee klingt nicht schlecht muss ich sagen. Das hieße dass mehrere Gebiete zu einem Server gehören können hmm :-/ erinnert mich ein wenig an dispys idee mit den "arbeit suchenden" Servern.


edit: mir ist gerade durch dich ein einfall gekommen das die probleme lösen könne und das mit relativ wenigen Zonenwechsel und Zonenänderung. Der weitere Vorteil wäre auch perfekte anpassbarkeit. =D Ich werd die idee sowieso wieder revidieren wenn mir starke mängel auffallen^^.

Hier die idee:

Jede Region im Spiel bekommt ne eigene ID. Diese Regionsgröße ist nicht abänderbar.
Die Spieler werden auf den Spielerservern verwaltet. Inhalt werden sein: die Positionsdaten des Spielers und die Regions-ID.
Es gibt einen over-all Manager der weiß welche Regionen momentan welcher Server Verwaltet (ergibt sich aus den Regions-ID der jeweiligen Spieler auf den Servern)

Vorgehen bei der suche nach "personen im umfeld des Spielers xyz":

1. Spieler fragt seinen Spieler-server wer im Umkreis von 1 Region um ihn herum ist.
2. Spielerserver fragt den over-all Manager welche Server jeweils Spieler in der Region hat.
3. Over-all Manager gibt die Server zurück die jeweils spieler in den Regionen haben zurück.
4. Spieler-Server gibt die Frage direkt an alle zurückgegebenen Server weiter.
5. Server geben die ausgewerteten Daten zurück.
6. Spieler-Server gibt diese Daten direkt an den Spieler zurück.

-> Wenn der spieler die Region wechselt wird einfach die Regions-id des Spielers geändert.

Um die abfragen in Maßen zu halten (weil es kann ja sein dass die Spieler auf den Servern maximal über alle regionen verteilt sind -> alle server müssten immer wieder befragt werden) werden die Spieler auf die Server verteilt nach der anzahl der Spieler die sich schon jeweils in den Regionen befinden. Also dass sich die zuteilung der Server zu den Regionen nach der anzahl der meisten Spieler einer Region kommt, dies aber auch nur bis der server seine limit erreicht hat (Spieler anderer Regionen werden aber weiterhin, sofern die anderen server es erlauben bzw. noch resscourcen haben, weiter verwaltet).

Wie findet ihr die idee so?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Pecadis« (08.03.2012, 14:07)


58

08.03.2012, 23:36

Momentan verstehe ich das so, dass jeder Spieler einer Umgebungsabfrage auslöst. Wäre es nicht einfacher, wenn für jede Region eine Art Nachrichtenkanal beim over-all-Manager eingerichtet wird und jeder Server für alle Regionen für die er Spieler verwaltet regelmäßig updates über den Kanal versendet bzw. empfängt?

Zwei interessante Architekturen die stark auf Message Queues setzen:
http://www.gdcvault.com/play/1014546/Mes…uing-on-a-Large
http://www.gdcvault.com/play/1013848/MMO…ilding-Disney-s

Pecadis

Frischling

  • »Pecadis« ist der Autor dieses Themas

Beiträge: 29

Wohnort: München

Beruf: Fachinformatiker für Systemintegration

  • Private Nachricht senden

59

10.03.2012, 01:45

Wie meinst du das mit der Umgebungsabfrage? Das mit dem Kanal wird eine Notwendigkeit sein, also dass der over-all-Manager immer weiß was gerade so läuft.

60

10.03.2012, 12:59

Wie meinst du das mit der Umgebungsabfrage? Das mit dem Kanal wird eine Notwendigkeit sein, also dass der over-all-Manager immer weiß was gerade so läuft.
1. Spieler fragt seinen Spieler-server wer im Umkreis von 1 Region um ihn herum ist.
2. Spielerserver fragt den over-all Manager welche Server jeweils Spieler in der Region hat. [...]
Es gibt einen Message Bus für die Verteilung von Nachrichten/Managen von Message Queues. Jede Region besitzt eine Queue. Server können diese Queues nutzen, um Informationen über eine Region auszutauschen. Jeder Server veröffentlicht über die Region-Queues die Positionen der Spieler/NPCs und abonniert außerdem alle Nachrichten, die über die Region-Queues veröffentlicht werden.

Ich würde versuchen möglichst auf einen "allwissenden" Manager zu verzichten. So ein ähnliches Modell, wie du vorschlägst, wird übrigens in dem Artikel "Big Wars" von Lin Luo im Game Developers Magazine für MMOFPS und andere Actionspiele vorgestellt. Dort funktioniert der Overall-Manager allerdings eher als gemeinsamer Speicher und nicht als bloßer Vermittler.

Ich habe für meine Diplomarbeit auch prototypisch ein MMO Serversystem entwickelt (ein bisschen schreibe ich hier darüber). Ich habe mich dabei allerdings auf eine hohe Interaktionsrate zwischen den einzelnen Spielobjekten konzentriert, von daher ist mein Ansatz nicht wirklich für eher interaktionsarme MMORPGs nützlich.

Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »Chromanoid« (10.03.2012, 13:19)


Werbeanzeige