Füllen Sie alle Ihre Spieldaten in riesige Excel-Tabellen? Gibt es eine bessere Methode?


8

Ich möchte wirklich wissen, wie viele Spieleentwickler es vorziehen, mit einem riesigen Tisch für alle Gegenstände, einem anderen Tisch für alle Fähigkeiten und sogar einem anderen Tisch für alle Mobs in einem MMORPG zu arbeiten. Und diese Tabellen können mit tausend Datensätzen auf mehrere hundert MB anwachsen, aber die meisten Datensätze verwenden nur wenige Felder in einer Tabelle.
Ich weiß, dass einige Spieledesigner auf diese Weise arbeiten. Gibt es eine bessere Methode?


1
Beeindruckend! Sagen Sie Ihrem Spieledesigner-Freund, er
solle

@bummzack: SQLite ist eine relationale Datenbank. Excel ist eine Tabelle. Eine RDB kann (schlecht) durch ein Tabellenkalkulationsprogramm ersetzt werden, aber Sie können ein Tabellenkalkulationsprogramm nicht nur durch eine RDB ersetzen.

(Ich habe endlose professionelle Anekdoten darüber, warum Excel für solche Dinge großartig / schrecklich ist, die ich in ein oder zwei Tagen aufschreiben könnte, wenn ich denke, dass ich es schaffen kann, ohne verklagt zu werden, aber ich hoffe, dass jemand mehr Beweise hat -basierte Antwort.)

1
Ich glaube, ich habe den Kontext hier falsch interpretiert. Ich dachte, dies würde als Spieldatenquelle und nicht als "Design-Tool" verwendet.
Bummzack

Hat jemand daran gedacht, XML-Dateien für diesen Zweck zu verwenden?
James P.

Antworten:


4

Ich wollte hier nicht antworten, aber als ich eine andere Antwort / Kommentare sah, änderte ich meine Meinung. SQL ist keine sehr gute Lösung dafür. SQL definiert Tabellen und fügt viele Daten in diese Tabellen ein. Dies ist nicht der Fall. Beim Erstellen / Testen des Spieldesigns möchten Sie meistens überprüfen, ob das riesige System ausgeglichen ist. Das bedeutet viele Tabellen, die sich gegenseitig beeinflussen. Eigentlich nichts Gutes für SQL - oder es ist, aber nicht einfach zu handhaben, weil Sie programmieren müssen, was nicht notwendig ist. Und Spieledesigner müssen es nicht wissen.

Als Spielprogrammierer / -entwickler können wir Excel und seine Verwendung für alles verachten, aber es ist ein ziemlich gutes Werkzeug für diesen Fall, insbesondere wenn der Spieleentwickler es gut verwenden kann und das Dokument gut erstellt ist.

Ich kann kein anderes Tool empfehlen, aber ich kann sagen, dass ich professionelle Spieledesigner kenne, die auch Excel verwenden. Ich gehe also davon aus, dass es ein gängiges Werkzeug ist.


Ja, Excel ist ein gängiges Werkzeug. Der Punkt der Frage ist: "Ein einziger großer Tisch für alle Gegenstände", Gegenstände umfassen Ausrüstungen, Verbrauchsartikel usw. Ist es notwendig, den großen in kleine zu unterteilen? Sogar getrennte Konfigurationsdatei für jedes Element? Ich fürchte, der riesige Tisch könnte ihre Augen verletzen: o)
Huang F. Lei

Entschuldigung, ich weiß das nicht. Ich bin Motorprogrammierer. Ich wollte nur sagen "Hey, warum sagt ihr alle SQL und macht Witze über Excel, wenn es ein gängiges Werkzeug ist?". Die Frage ist gut und ich interessiere mich für eine ausgefeilte Antwort, besser als meine.
Notabene

Meine ursprüngliche SQl-Antwort war darauf zurückzuführen, dass ich den Teil der Frage "Spieledesigner" verpasst habe, und ich habe ihn gelöscht, weil er irreführend wäre.
Die kommunistische Ente

3

Ich stimme den meisten Antwortenden zu, dass Tabellenkalkulationen manchmal anständige Entwicklungswerkzeuge darstellen können, insbesondere für Designer.

Wenn Sie diesen Ansatz weiterentwickeln möchten , verwendet das Resolver One- Tabellenkalkulationsprogramm Python für die Skripterstellung, sodass Sie auf einfache Weise eine Tabelle für Designer einrichten können, die sowohl komplexe Modellierungen als auch den Export in ein spielfreundliches Datenformat ermöglicht. Ich finde es viel einfacher, damit zu arbeiten als mit Excel's VBScript.


1
Viel Spaß beim Warten auf das Öffnen! Bah ist langsam (auch auf schnellen Maschinen)
Spooks

2

Excel ist eine hervorragende Lösung. Ich hatte mich gefragt, wie das gemacht werden sollte. Aber darüber nachzudenken, Excel ist , während ein sehr beliebtes Werkzeug und völlig ausreichend für diese Aufgabe, würde ich nicht empfehlen , diese Praxis. Darüber hinaus bringt die tatsächliche Datenbank, wie @notabene vorschlägt, viel zusätzlichen Aufwand mit sich, den Sie wirklich nicht benötigen. Ich sehe einige Optionen, von denen eine der Verwendung von Excel ähnelt:

  • Open Office Calc: kostenlos. Es gibt auch einen MySQL-Connector- Download (Open Source, glaube ich) für Calc.
  • serialisierte Daten: entweder XML oder binär (verschlüsselt)

... so oder so, kostenlos und Sie haben die vollständige Kontrolle.

Ich persönlich würde gerne mit binär serialisierten und verschlüsselten Daten arbeiten. Zwei Gründe:

  • Spieldaten können nicht leicht manipuliert werden
  • Ich kann eher mit Datentabellen als mit der XML-Serialisierung von Datensätzen arbeiten, dh ich habe die Option.

Gibt es eine Notwendigkeit für eine dedizierte, true Spiel orientierte Datenbibliothek ? Vielleicht ... es sei denn, jemand weiß von einer solchen Bibliothek, die es bereits gibt.

Betrachten Sie die CSV-Datei jeder Seite bis zur Frage des OP als eine einzelne Datentabelle - ähnlich einer Tabelle in einer Datenbank. Jede Seite Datei sollte die zugehörigen Daten enthalten:

  • Fähigkeiten oder
  • Ausrüstung oder
  • NPC-Statistiken

Dies hilft Ihnen dabei, ein hohes Maß an Organisation aufrechtzuerhalten, was sehr wichtig ist, wenn der Dateninhalt wächst, der Spielinhalt erweitert wird usw.

Bearbeiten
Nach dem tatsächlichen Versuch, .ODS (OpenOffice Calc-Datei) zu verwenden und eine Verbindung von einer Anwendung aus herzustellen, ist dies tatsächlich nicht möglich, da erste Beiträge auf der OO-Site dies implizieren. Ich konnte nichts spezielles finden, das den Codez bei der Implementierung zeigt.

Außerdem kann die Verwendung von Excel-Dateien während der Entwicklung eines Spiels in Ordnung sein , sodass Daten ohne Overhead aus einer Datenbank optimiert werden können. Wenn Sie dies jedoch vorhaben, muss MS Office installiert sein, damit Sie auf Microsoft Excel Interop COM verweisen können. Dies mag zunächst von Vorteil sein, aber ich möchte keinen Code entfernen oder ändern, um eine Anwendung für Alpha, Beta oder RC vorzubereiten. Eine sehr vereinfachte Bibliothek würde mehr Aufwand erfordern, als ich für nützlich halten könnte.

Ich werde CSV-Dateien für die frühzeitige Datenspeicherung verwenden. Es gibt einige Nachteile, aber insgesamt halte ich dies für eine viel bessere Option. Alles ist in meinen Bibliotheken enthalten. .Net bietet sehr nützliche Klassen zum Lesen dieser Textdateien. Als CSV-Dateien können die Daten auch leicht bearbeitet werden. Für spätere Entwicklungsstadien muss ich lediglich meine Datendateien in XML und später in eine verschlüsselte Binärdatei serialisieren lassen.


Ich habe überhaupt nichts gegen Abstimmungen ... außer wenn ich nicht weiß warum. Stimmt etwas mit den von mir bereitgestellten Optionen oder meinen Ratschlägen zum Organisieren einer Tabelle nicht? Oder mochte jemand meine Optionen einfach nicht ?
IAbstract

Ich habe Ihnen -1 gegeben, weil Sie eine Tabelle mit einem Datenträgerdatenformat verglichen und dann Aussagen wie "Spieldaten können nicht einfach manipuliert werden" gemacht haben. Ein Programm / eine Schnittstelle und ein Datenträgerdatenformat sind nicht wirklich vergleichbar, und die Binärdarstellung Ihrer Spieldaten kann Modder nur wenig davon abhalten. Außerdem ist Ihr vorgeschlagenes Tabellenkalkulationsschema schrecklich, da alle Daten in einer Datei gespeichert sind. Natürlich sollten Fähigkeiten und NPCs in separaten Dateien gespeichert sein . Vielleicht sollten sich alle NPCs auf separaten Seiten in derselben Datei befinden . Wenn Sie jedoch ein sperrendes RCS verwenden, wird dies ebenfalls schrecklich.

Ich stimme dir nicht zu. Nehmen Sie Open Office Calc mit dem MySql-Connector. Sicher können Sie für jede eine andere Datei erstellen. Aber ich würde nicht erwarten, dass meine Daten in diesem Format bleiben, wenn ich einen RC habe.
IAbstract

Wenn Designer Excel verwenden, sie werden Daten untereinander in Formaten wie XLS oder CSV übergeben. Wenn Sie diese Daten nicht in einem Outlook-Schwarzen Loch verlieren möchten oder wenn der Computer abstürzt, müssen Sie ihnen beibringen, sie im RCS zu behalten.

1

Solange die Art Ihrer Daten es erlaubt, sie in einer Tabelle zu speichern, ohne durch zu viele Rahmen zu springen, ergibt sich ein sehr gutes Format, insbesondere für Entwicklungsarbeiten. Am Ende möchten Sie es vielleicht in anderen Formaten speichern, aber die Tabelle bietet Ihnen einen sehr leistungsfähigen Editor, der SEHR hilfreich sein kann, wenn Sie sich entscheiden, Ihre Handhabung zu ändern!

Wenn Sie Excel verwenden, erhalten Sie eine Kopie der ASAP-Dienstprogramme. Dadurch wird die Tabelle zu einem noch besseren Editor.


SCHNELLSTMÖGLICH??? Können Sie einen Link bereitstellen?
IAbstract


-2

Nun, für mich ist es so, dass Speartesheet-Programme mit solchen Dingen nicht richtig und effektiv umgehen können. RDB war eigentlich darauf ausgelegt, riesige Daten und Tabellen zu verarbeiten. Moderne RDB wurden entwickelt, um die "riesigen" Dinge zu bewältigen, und sie machen es sehr gut.

Der Punkt ist, um die beste Ausgabe der RDB zu erhalten, müssen Sie Ihre Datenbank auf die richtige Weise entwerfen. Wenn Ihr Datenschema schlecht war oder nicht alle Daten Ihres Projekts abdeckte, werden Sie mit sehr schlechten Ergebnissen, Leistung und Ausgabe enden.

Die Idee von RDB ist es, große Tabellen in kleinere zu unterteilen, damit Sie die Leistung und Lesbarkeit verbessern können. Wenn Sie eine sehr große Tabelle (Attribute oder sogar Datensätze) oder viele Neupartitionen haben und die meisten davon nicht verwenden, bedeutet dies, dass Ihr Entwurf der Datenbank einige Fehler aufweist.

In Ihrer Frage Huang F. Lei, wenn ich gebeten würde, eine MMORPG-Datenbank zu entwerfen, werde ich nicht alle Fähigkeiten in einer Tabelle und alle Mobs in einer Tabelle hinzufügen. Ich werde die Fähigkeiten nach Klassen und Verwendung in mehrere Tabellen unterteilen. Jeder Fertigkeitstyp hat eine eigene Tabelle oder sogar Tabellen. Für Mobs werde ich sie entweder nach ihrem Typ oder nach ihrem Standort in verschiedenen Welten aufteilen. Und so weiter.

Auf diese Weise kann ich die Tabellengrößen verkleinern, das Verfolgen der Daten erleichtern und die DB-Leistung verbessern.

In Excel hingegen werden alle Daten an einer Stelle "zerbröckelt". und ein Datenelement zu finden ist fast unpassierbar, episch, wenn Sie wiederholte Daten haben. Wenn die Daten größer werden, erhöht sich außerdem die Öffnungszeit der Datei.

Am Ende ist Excel meiner Meinung nach eine sehr schlechte Methode, um mit großen verwandten Daten umzugehen.


Sie haben Recht, aber dies ist keine richtige Antwort. Wenn Sie die Frage sorgfältig lesen oder andere Antworten oder Kommentare lesen, wissen Sie, dass es bei der Frage um das Spieldesign geht und nicht um das Speichern von Daten.
Notabene

Ich weiß, es geht um das Design und rot die Fragen und Antworten. Ich verstehe, dass Huang F. Lei versucht, zwischen RDB und Tabellenkalkulation zu wählen. Meine Antwort versucht den Unterschied zwischen den beiden zu zeigen!
Ali Albahrani

Zitieren: Huang F. Lei: "Ja, Excel ist ein gängiges Werkzeug. Der Punkt der Frage ist:" Ein einziger großer Tisch für alle Gegenstände ", Gegenstände umfassen Ausrüstungen, Verbrauchsartikel usw. Ist es notwendig, den großen in zu unterteilen? kleine? Sogar getrennte Konfigurationsdateien für jedes Element? Ich fürchte, die riesige Tabelle könnte ihre Augen verletzen: o) "
Notabene

2
Vielen Dank für Ihre Antwort: o) Bei der Frage geht es darum, wie der Spieledesigner Daten für die Erstellung des Spiels bereitstellt, nicht darum, wie der Programmierer die Daten des Spielers im Spiel speichert / darauf zugreift.
Huang F. Lei
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.