Frage zur Persistenz von MMO-Daten

7

Ich wollte eine Frage zu Datenpersistenzstrategien für ein MMO stellen. Ich habe einige Erfahrungen in der Spielebranche mit sozialen Synchronspielen. Bei Zynga haben wir statische Protodaten in XML sowohl auf dem Client als auch auf dem Server gespeichert und Instanz- / Laufzeitdaten in membase gespeichert. Aus Gründen der Klarheit wären Protodaten für einen Trank PotionName oder MaxCharges, während Laufzeit- / Instanzdaten so etwas wie ChargesRemaining sind. Wenn ein Spieler einen Trank aufnimmt, wird die Instanz (über eine Vorhersage) aus XML-Daten auf dem Client erstellt. Die Anforderung wird an den Server gesendet, auf dem die Instanz aus XML erstellt und dann zu membase hinzugefügt wird.

Ist die gleiche Strategie, die für etwas wie ein MMO verwendet werden würde? Wäre es möglich, statische Protodaten in einer speicherinternen No-SQL-Datenbank sowohl auf dem Client als auch auf dem Server zu haben, wobei Instanzdaten auf dem Server in einer Datenbank auf Unternehmensebene gespeichert werden? Oder sollten alle Daten (Proto / Instanz) auf dem Server gespeichert werden und der Client alles vom Server erhält?

Ich weiß, dass eine Menge davon auf bestimmte Spielanforderungen zurückzuführen ist, aber ich suche hier im Grunde nach einer allgemeinen Meinung / Best Practices, falls es welche gibt.

JasonG
quelle
1
WoW macht das mit .wdb-Dateien. wowwiki.com/WDB_files
Kikaimaru

Antworten:

4

Ist die gleiche Strategie, die für so etwas wie ein MMO verwendet werden würde? Auf jeden Fall, aber bis zu einem gewissen Punkt. Die statischen Daten werden normalerweise mit dem Client bereitgestellt (oder auf diesen gepatcht), und dynamische Daten werden bei Bedarf vom Server angezeigt.

Zwischen diesen beiden Extremen befinden sich jedoch statische Daten, die Sie nicht ständig auf einem Client speichern möchten. Dies kann die Statistiken für geheime Gegenstände oder Kartendaten für versteckte Bereiche umfassen. Auf dem Server werden diese wahrscheinlich auf die gleiche Weise wie die anderen statischen Daten gespeichert - sie werden jedoch auf einer Basis, die Sie wissen müssen, an den Client gesendet.

Bei den eigentlichen Speicherstrategien gibt es fast so viele Ansätze wie bei Spielen, da jedes Spiel unterschiedliche Anforderungen an die Daten stellt. Auf der Serverseite haben ich und andere hier mehrere Antworten gegeben: Welche Art von Datenbanken werden normalerweise in einem MMORPG verwendet? Und auf der Clientseite ist ihre 'In-Memory-No-SQL-Datenbank' oft nur eine Datenstruktur, die sie selbst geschrieben haben, basierend auf dem Lesen in einem Dateiformat, das sie möglicherweise auch selbst geschrieben haben.

Kylotan
quelle
Kikaimaru ist mit dem WoW-Wiki verknüpft, das besagt, dass WDB-Dateien Cache-Dateien sind. Ich dachte, das Hervorheben dieser Tatsache würde den zweiten Absatz hier gut vervollständigen: Sie möchten einem Kunden keine Informationen über alle möglichen Elemente geben, da früher oder später jemand sie entschlüsseln und veröffentlichen wird. Es sei denn, Sie möchten, dass es öffentlich ist.
Markus von Broady
Vielen Dank, ich hatte das Konzept der geheimen Gegenstände nicht in Betracht gezogen, war bei der Planung nicht so weit gekommen, aber definitiv etwas, das ich berücksichtigen muss.
JasonG