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
Zitat von »"hanse"«
Och ich denke so schwer ist es aus Technischer sich auch wieder nicht.
Zitat
Ledin am Montag 18.08.2008 auf developia auf die Frage hin, wo der Unterschied zwischen Multiplayer und MMO liege
Verfasst am: Mo Aug 18, 2008 10:32 am Titel: Antworten mit Zitat
Ich bin jetzt nicht gerade ein Experte auf dem Gebiet, will's aber mal versuchen.
Wie schon gesagt, ist eine MMO-Welt persistent und muss hunderte, wenn nicht tausende Spieler gleichzeitig verkraften.
Die Persistenz fordert, dass der Server 24/7 läuft. Deshalb darf er unter keinen Umständen Memory Leaks aufweisen. Hier muss man ein rigoroses Speichermanagement haben, es empfiehlt sich auch der Einsatz von Code-Analyse-Software, die so manches Leak aufdecken kann.
Du kannst den Server nicht mal eben neustarten, so wie man es beim Heimrechner machen kann.
Es wird ein leistungsfähiger Datenbankserver benötigt, der auf keinen Fall direkt vom Client aus zugreifbar sein darf, sondern nur durch eine vorgeschaltete Instanz, die nur bestimmte Änderungen auf der DB durchführen kann. Als DB-Server braucht man was richtig Leistungsfähiges. Auch wenn z.B. Tibia auf Mysql setzt, haben mich deren Leistungsdaten (Präsentation auf der letzten Quo Vadis) nicht überzeugt, sodass ich zu den großen raten würde (Oracle, MS SQL Server, vielleicht IBM DB2). Diese erfüllen auch gleich alle ACID-Kriterien (sehr wichtig!) und haben oft Interfaces zu Backup-Software (z.B. Tape), auf die die Datenbank zumindest täglich gesichert werden muss.
Auch im Falle eines Blitzeinschlags, der deine komplette Hardware schrottet, musst du in der Lage sein, die Daten von heute früh wiederherzustellen (Disaster Recovery). Das ist bei kommerziellen, datenbankgestützten Programmen wie Banken-Software auch nicht anders, auch wenn die das oft noch ein Stück rigoroser handhaben (Panzerschrank, vielleicht auch Verschiffen von Sicherungen außer Landes).
Das waren alles nur Folgerungen aus der Persistenz.
Die Spieleranzahl ergibt ähnlich viele Probleme.
So darf die Spiellogik auf dem Server auf *keinen* Fall laggen. Üblicherweise funktioniert die Dimensionierung eines Server-Systems dann wie der deutsche Brückenbau. Prüfe, wieviel Leistung der Server bei der maximalen Spieleranzahl braucht, verdopple die Leistung dann und füge evtl. noch 10% Leistung hinzu.
Bei der Spieleranzahl fällt auch das gängige Serverdesign "Eigener Thread für jeden Spieler" aus, da einen der Overhead killen würde (neben horrenden Synchronisationsschwierigkeiten).
Der Server muss mit allen Clients gut genug kommunizieren können, auch wenn die Verbindungen nicht die besten sind. Hier muss zumindest genug über die Leitung kommen, dass der Client noch vernünftig interpolieren kann. Hier muss ein ständiges Leistungslogging erfolgen, sodass frühzeitig eingegriffen werden kann, wenn die Auslastung des Servers den definierten Schwellenwert überschreitet. Dann muss schleunigst neue Hardware her, weswegen von der Hardware fast nur Blade-Server in Frage kommen, da man diese ja verstärken kann, ohne sie herunterzufahren.
Da man das alles nicht so ohne Weiteres überwachen kann, muss eine Art Ampel-System her. Das ist ein Programm, das verschiedenste Werte ständig überwacht und ein einzelnen Licht auf rot schaltet, sobald was im argen ist. Sie sind aufgrund der Anzahl Lämpchen hierarchisch organisiert, sodass die "Vaterampel" rot wird, sobald auch nur einer der Söhne rot ist.
Fast selbstredend, aber nicht offensichtlich: auf dem Server sollte wirklich *nichts* außer der für den Betrieb nötigen Software laufen. Die Maschinen müssen identische Hardware haben, sodass sie leichter austauschbar sind. Du kannst die Welt nicht anhalten, wenn du mal OS oder DB-Updates installieren musst. Deswegen musst du einen gleichen Rechner updaten, den laufenden Server auf diesen fortlaufend spiegeln, bis du auf den neuen Server umschalten kannst. Bei gutem Systemdesign kriegen die Spieler das nicht mal mit.
Naja, lies einfach mal ein bisschen. Es gibt auch Bücher zu dem Thema (Massive Multiplayer Game Development fällt mir da grad ein), aber da habe ich mich bisher nicht hereingelesen.
Zitat von »"neptun"«
Zitat von »"hanse"«
Och ich denke so schwer ist es aus Technischer sich auch wieder nicht.
Ufff. Da täuschst du dich mal ganz gewaltig.
Zitat von »"hanse"«
Zitat von »"neptun"«
Zitat von »"hanse"«
Och ich denke so schwer ist es aus Technischer sich auch wieder nicht.
Ufff. Da täuschst du dich mal ganz gewaltig.
Schon mal probiert? :badgrin:
Ich denke das hängt vor allem von der Art des Spieles ab. Bei diesen 3D MMOS dürfte das synchronisieren und das verhindern von Laggs recht tricki sein. Gerade aber Spiele wie The Mana World halte ich vom technischen Schwierigkeitsgrad für nicht sooo schwer. Ich denke in der Spielentwicklung gibt es grössere Herausforderungen. Zumindest schaut das: http://wiki.themanaworld.org/index.php/Server_development nicht kompliziert aus.
Zitat
Nein, ich habs nicht schonmal probiert - ich weiss auch wieso.
Und ich zweifle ganz stark daran, das sie Coder mit einem solchen Know-How im Team haben, um sowas nur Ansatzweise realisieren zu können.
Zitat
Ein MMO gehört definitiv zum schwierigsten was es in Punkto Game-Programmierung gibt.
Zitat
Ach du gehörst zum Team.
Zitat
Wenn du willst kann ich dir nen Link zur Diskussion "Unterschiede zwischen Multiplayer und MMO" schicken. Da sind so ziemlich die erfahrensten und besten Hobby und non Hobby Gamedeveloper aus .de daran beteiligt. Die sagen dir alle so ziemlich das selbe. In jenem Thread aber auch mal technisch begründet.
Zitat von »"xardias"«
Ich kann hier eigentlich nur sagen, was ich in diesem Forum schon so oft gesagt habe:
Lasst euch eure Träume nicht von irgendwelchen Leuten kaputtreden. Wenn man seine Ziele erreichen will dann findet man auch einen Weg, auch wenn dieser Steinig und verdammt lang ist.
Im Endeffekt könnt ihr nur gewinnen. Egal ob ihr das Spiel fertig macht oder nicht.
Zitat von »"Nox"«
Lange Rede, kurzer Sinn: meiner Meinung nach möglich, wenn man dran bleibt.
Zitat von »"neptun"«
Ich finde jetzt tust du mir unrecht. Ich rede hier nicht irgendwelche Träume kaputt und ich habe betont, das ich diesen Ehrgeiz und dieses Engagement super finde. Ich würde es ihnen auch wirklich gönnen wenn das Projekt ein Erfolg würde. Darum auch meine Empfehlung für den Anfang etwas kleiner zu fahren. Nicht einstampfen, sondern umformen!
Werbeanzeige