MMO Spieleserver

Für allgemeine Fragen zur Programmierung mit PureBasic.
Tomarr Sovai
Beiträge: 39
Registriert: 18.11.2005 16:09

Beitrag von Tomarr Sovai »

Hehe, nettes Beispiel. Aber nicht umsonst wurde OO entwickelt.

Ich mecker ja gar nicht wirklich das es kein OO gibt. Es macht halt nur vieles einfacher. Und wie gesagt, habe PB halt mehrere Jahre nicht benutzt, habe also ein paar Updates verpasst. Deswegen bin ich wohl auch ein wenig verwirrt, weil PB geht irgendwie einen GAAAAANZ andren weg als andere Sprachen. Ist nicht unatraktiv, gebe ich zu, aber halt gewöhnungsbedürftig.

Aber ich glaube wir kommen ein winziges Stückchen vom Thema ab ^^.

Denn damit weiß ich noch immer nicht was mit ZonenServer gemeint ist.
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

Du müsstest halt die Informationen, die jedem Client zur Verfügung stehen sollen, auf ein minimum reduzieren.
Es reicht zu wissen, ob ein Spieler "da" ist. Ein Spieler könnte "da" sein, wenn er in einer gewissen Entfernung steht oder ähnliches. Du musst dann nur von diesen die Daten zum Client schicken.
Der Client ist normalerweise dumm, er empfängt die Position und zeichnet fröhlich den Screen damit voll. Evtl versucht er noch zB Bewegungen voraus zu ahnen. Dies kann allerdings zu den Gummibandeffekten führen, zB wenn du gerade aus läufst, aber von einem Hindernis geblockt wirst, was dir noch gar nicht vom Server mitgeteilt wurde -> Die Positionen unterscheiden sich.
Die Technik von Guild Wars wäre für dich vllt interessant, da gibt es quasi die Sammelbecken zum Treffen von Spielern (zB Städte) und Zonen, die man mit einer bestimmten Gruppe betritt. Vorteil: Du weisst immer wer sich in der Zone aufhält, kannst diese Gruppe autonom verwalten.
Ist eine Stadt zu voll, werden Instanzen erzeugt (zB ab 100 Spielern gibt es Distrikt 1 und 2).
Diese kann man dann auf verschiedene Server im Notfall auslagern.
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Also ohne es wirklich zu wissen, denke ich, daß bei Zonenserver tatsächlich mehrere Server einen ganzen Server simulieren oder so ähnlich... ^^
Vorstellungen, wie ich sowas realisieren wollte hätte ich, aber ob das funktionieren würde, ist wieder was anderes. Natürlich müßten die Server auch untereinander kommunizieren und auf verschiedenen Rechnern laufen. Die Clients würden auf einem Server connecten und dann auf die Zonenserver verteilt. So mal meine grobe Theorie.
Eine Art Query-Planner soll die Ausführung von Map/Reduce-Funktionen in Hadoop stark beschleunigen.
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

ich denke es ist ein Netzwerk gleichberechtigter Server. Nur muss es letztendlich einen Server geben, der überwacht, dass alles passend verteilt wird und Querverbindungen herstellt. Schwierig schwierig werden das sein...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> ich denke es ist ein Netzwerk gleichberechtigter Server.
denke ich auch, wobei anhand der IP des client festgelegt wird, zu welchem Zonenserver er connected.
d.h. die Client-Verwaltung wird unter mehreren Servern aufgeteilt, um die effizienz zu erhöhen.

weiterhin kann ich mir vorstellen, dass für sowas wie WoW fettere Hardware für die Server verwendet wird, also sowas wie 16 Core bis 80 Core Server, und davon auch mehrere.
auf einem stinknormalen QuadCore 1000 Clients zu verwalten wird illusorisch sein.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Tomarr Sovai
Beiträge: 39
Registriert: 18.11.2005 16:09

Beitrag von Tomarr Sovai »

Hmmm... Also ich weiß dass die Originalserver von Ultima Online etwas in der Art benutzen, und in dieser etwas ekelhaften Spieleprogrammiersoftware Gamestudio ist ebenfalls ein Zonenserver eingebaut.

Letzteres beweist meiner Ansicht nach allerdings auch das es so komplex nicht sein kann. Zwar gibt es den ZonenServer nur in der Pro Version, allerdings finde ich das ganze Konzept so schlecht und undurchdacht das es nicht wirklich viel Aufwand sein kann. Kann mich allerdings auch täuschen.

Edit, aber gerade Gamestudio behauptet ja das ihr Serversystem mit "endlos" vielen Spielern auch auf normalen Servern läuft.

Das ich irgendwann soweit gehen muss das sich mehrere Server zusammen schließen können ist mir schon klar. Aber so weit will ich am Anfang dann doch noch nicht gehen. ^^
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nuja, 3DGS benutzt teilweise selber nur Baukastensysteme,
also die Qualität der 3D-Engine sagt nix drüber aus,
was für Serversoftware die gekauft und dazugeschraubt haben...

> Ultima Online
..und da komm ich drauf, dass ich mich geirrt haben könnte:
die Zonen könnten sich auch auf Zonen inGame beziehen,
nicht auf Zonen von Client Locations.


> Gamestudio behauptet ja das ihr Serversystem mit "endlos" vielen Spielern
klar, und manche Webdienste bieten "unlimited" Traffic an...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

re:

Beitrag von smateja »

ZonenServer:

Eine Spielwelt wird quasi unterteilt in mehrere Abschnitte / Regionen. Jede Region wird von einem Server/Servercluster abgebildet, sodass nicht 1 Server an alle Spieler die Daten schicken muß sondern jede Zone quasi nur an die Spieler die sich hier in der Zone befinden. Macht ja keinen Sinn Spieler A die POsition von Spieler B mitzuteilen welcher hier schonmal garnicht in der selben Region umherspringt.

Dann kommt ja noch dazu dass man hier innerhalb der Zone nochmals unterteilt ob der Spieler den anderen sieht etc und wird dann nur mit Koordinaten versorgt.

=> Quasi eine art demultiplexing um Last zu verteilen bei Flaschenhals Bandbreite/CPU auf Serverseite etc.

Hoffe ich konnte es halbwegs verständlich aufschreiben.
PB 4.6 / 32 Bit / 64 Bit
Tomarr Sovai
Beiträge: 39
Registriert: 18.11.2005 16:09

Beitrag von Tomarr Sovai »

Ja konntest du. Verstanden habe ich es auf jeden Fall.

Da treten halt nur zwei Probleme auf. Das eine ist die Entscheidung wie bei einer 3D Umgebung so ein Zonenserver dann aussieht. Na gut, vielleicht auch nicht viel anders wie eine Teilchenengine. Ich stelle mir halt nur einfacher vor bei einer Teilchenengine eine nahtlose Welt uf Zonen aufzuteilen als es bei 3D-Landschaften möglich ist, da man einfach nur die Teile "abzählen" muss.

Das andere sind wiederum die Übergänge. Für das nahtlose übergehen muss man sich ja schon einiges einfallen lassen. Bringt ja nichts wenn man einen Weg entlang geht und plötzlich betritt man ne andere Zone und es poppen 20-30 Gegner auf die man vorher nicht gesehen hat.

Aber wenigstens weiß ich nun in welche Richtung es geht. Und vieles wird sich ja wohl auch entwickeln, gerade wenn es in richtung Open Source geht bringen ja hoffentlich noch einige ihre Ideen mit ein.

Danke an alle für die Hilfe.
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Ich bin der Meinung, daß Zone nicht unbedingt gleich Gebiet sein muß, würde es eben eher so realisieren, daß jeder "Zonenerver" eine gewisse Anzahl von Usern verwaltet.
Wobei, wenn man jetzt von WoW aus geht, die Instanzen und Schlaftfelder scheinbar von extra Servern verwaltet werden, dementsprechend taucht auch ein Ladebildschirm auf. Auch das wechseln auf Kontinente ist mit Ladezeiten verbunden und deutet eventuell auf Zonenserver hin. Mittlerweile ist es auf den Schlachtfeldern sogar so, daß diese aus verschiedenen Gameserver zusammengelegt sind.
Also gehn tut das grundsätzlich schon, daß Zonenserver verschiedene Gebiete verwalten.
Eine Art Query-Planner soll die Ausführung von Map/Reduce-Funktionen in Hadoop stark beschleunigen.
Antworten