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

1

22.05.2009, 00:35

World of Warcraft

moin,
ich weiß ja das hier sehr warscheinlich niemand bei blizzard arbeitet.
auch wenn dürfte er ja keine daten der srever preisgeben allerdings möchte ich gerne wissen wie die server aufgebaut sind das sie über 5000 clienten gleichzeitig behandeln können.

mfg nekturion

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

2

22.05.2009, 07:25

Naja, ich denke es ist klar, dass ein Server ingame nicht auch genau einem Server in Wirklichkeit entspricht. Ich denke es ist nicht viel über die interne IT-Infrastruktur bei Blizzad bekannt :D
Ein Ingame-Server besteht aber wohl aus etlichen, schon für sich allein starke, Servern, die parallel arbeiten. Genauer weiß ich nur, dass sie getrennte Login Server haben, die sich nur um das Queueing, Authorisierung und Charakterliste kümmern. Die einzelnen Ingame-Server sind soweit ich weiß nach Regionen aufgeteilt, denn es kommt nach neuen Addons oder Content-Patches bestimmte "Regionen" nicht mehr betretbar sind, weil sie so überlastet wurden, dass sie abgestürtzt sind. Außerdem gibt es, wenn ich mich recht erinnere auch wieder getrennte Instanz-Server, welche wie du aber wohl weißt, wenn du das Game noch zockst, relativ limitiert sind....

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

22.05.2009, 16:39

Das einzige, was mich daran interessieren würde, wäre wie sie die Übergänge zwischen den Regionen behandeln. Prinzipiell ist aber ein RPG Server "relativ" einfach aufgebaut. Man kann ja die Bereiche sehr gut partitionieren und einzeln behandeln. Und hat man die Aufgaben erstmal möglichst unabhängig von einander definiert, kann man sie auch gut in Threads packen, die sich dann auch nicht weiter behindern.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

4

22.05.2009, 16:46

Wobei theoretisch ja trotzdem sich die halbe Spieler-Bevölkerung mal in der gleichen Region aufhalten könnte - was zu entsprechenden Problemen führte. Wie das, spielgerecht, verhindert wird wäre auch noch interessant :)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

22.05.2009, 17:46

Kommt immer auf die verwendete Unterteilung an. Prinzipiell könnte man alle Spieler und Objekte per Workloadsystem verteilen. Das würde zwar mehr lock-Aufwand bedeuten, aber sehr gerecht sein. Oder man unterteilt halt in Gebiete. Dann ist der Aufwand halt zwischen den Regionen gegeben und eine Region kann dann schnell mal überlastet sein. Vielleicht gibt es ja noch mehr Konzepte, aber dass sind die, die mir spontan einfallen.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

6

22.05.2009, 18:41

Ich glaube Blizzard löst das Problem größtenteils durch ihr Gamedesign. Sie schaffen es halbwegs gut die Bevölkerung gut zu verteilen. Und wie bereits gesagt, unterteilen sie auch einfach nur die Gebiete, was zur Folge hat, dass manche davon wirklich mal durch überlastung abstürzen und dann nicht mehr erreichbar sind. Aber das ist eigentlich nur selten der Fall. Es scheint also auch so zu funktionieren....

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

7

27.05.2009, 14:54

du kannst dir mal MaNGOS ansehen, das ist eine freie implementierung eines mmorpg servers welcher für wow ist:
sourcecode: http://github.com/mangos/mangos
forum des cores: http://getmangos.com/
forum der script library (c++ scripte und sql-scripte der mobs): http://scriptdev2.com/
forum der datenbank: http://udbforums.org/


wir (http://naxxramas.eu/) haben mit einem quadcore und 8gb ram leichte lagprobleme ab ca. 800 leuten (wir haben das playercap momentan auf ca. 800 eingestellt, sonst würde es am WE nur noch laggen :(), das liegt daran, dass mangos leider damals nicht wirklich auf multithreading/multiprocessing ausgelegt wurde (wir haben den sogenannten 'mtmaps' patch eingespielt, welcher die maps in threads unterteilt)

@nox: sieh mal in diese files rein (hab einfach kurz alle mit Map am anfang des namens genommen^^, links gehen auf den letzten commit, 7897):
Map.cpp: http://repo.or.cz/w/getmangos.git?a=blob;f=src/game/Map.cpp;h=e3cf0164b3ddf31e5abb90086540b6726e85f84e;hb=HEAD
Map.h: http://repo.or.cz/w/getmangos.git?a=blob;f=src/game/Map.h;h=a07553181aad3bbb398aea4b3891d96548293540;hb=HEAD
MapInstanced.cpp: http://repo.or.cz/w/getmangos.git?a=blob;f=src/game/MapInstanced.cpp;h=e6eaa62984fac63a6d71a39b998288e775c8c759;hb=HEAD
MapInstanced.h: http://repo.or.cz/w/getmangos.git?a=blob;f=src/game/MapInstanced.h;h=783de74ad2c7ab2fad7492cfec304e71c2b5211e;hb=HEAD
MapManager.cpp: http://repo.or.cz/w/getmangos.git?a=blob;f=src/game/MapManager.cpp;h=074034d2b1b6f424212281a23913409b9fc1c03f;hb=HEAD
MapManager.h: http://repo.or.cz/w/getmangos.git?a=blob;f=src/game/MapManager.h;h=0de79a8b914c7e3cb726593de4c2a5671e7ca69b;hb=HEAD
MapRefManager.h: http://repo.or.cz/w/getmangos.git?a=blob;f=src/game/MapRefManager.h;h=02f8b2ea465e9c9950c167177e26dc52b9a90021;hb=HEAD
MapReference.h: http://repo.or.cz/w/getmangos.git?a=blob;f=src/game/MapReference.h;h=3879da51c1212a6505764a25c5f178254e727c25;hb=HEAD


Edit: fragen über wow server versuche ich so gut wie möglich zu beantworten, ich programmier ja daran mit, möchte aber darauf hinweisen, dass ich da nicht im entwicklungs-team bin und auch nicht alles so gut kenne (maps kenne ich eher weniger gut)

storage

Treue Seele

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

8

27.05.2009, 15:27

Man nimmt ja auch kein Mangos, sondern ArcEmu, weild iese ein wesentlich besseren Netzwerkcode haben und man es dort locker auf 2000 Spieler bringen kann ohne lags.

Du kannst es dir ja mal anschauen, habe früher auch mit Mangos angefangen, aber sind später zu ArcEmu über gegangen.

<Source> svn://arcemu.info/svn/
<Forum> http://arcemu.org/
<Datenbank> http://nc-db.info/svn/ncdb

Die Datenbank gibts aber auch precompiled im Forum der Core und zum herunterladen des Sourcecodes benötigst du ein SVN-Tool(z.b TortoiseSVN).

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

9

27.05.2009, 15:43

Ich glaube wir sprachen von der Orginalimplementierung von Blizzard, die immerhin mehrere zehntausend Spieler gleichzeitig mit WoW bedienen können ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

10

27.05.2009, 15:50

Zitat von »"storage"«

Man nimmt ja auch kein Mangos, sondern ArcEmu, weild iese ein wesentlich besseren Netzwerkcode haben und man es dort locker auf 2000 Spieler bringen kann ohne lags.


ich muss dir leider wiedersprechen, arcemu kann zwar in der tat mehr user handeln, aber dafür leidet der content darunter. bei arcemu geht massiv weniger als bei mangos.

und btw, ich hab schon mangos-basierte server mit 9.5k usern online gesehen ;)


PS: bitte nicht in zu einem arcemu vs. mangos thread werden ;)



Nox: blizz hat für jeden realm mehrere server und hat auch die instanzen auf eigene instanzenserver ausgelagert (die bosse in den instanzen brauchen auch einiges an rechenleistung weil sie ja immer mehrfach instanziert sind und auch einiges berechnen müssen.). desweiteren haben die vmtl. eine massiv bessere implementierung des spell systems als je ein emulator haben kann -> geringere latenz.

die netzwerk-lib die mangos verwendet, ACE, kann ohne probleme (bei einer korrekten verwendung der lib^^) mehrere 10k connections handhaben.

Werbeanzeige