Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich schreibe zZ ein Tool das bei der Erstellung von Pen-and-Paper Rollenspielen nützlich sein soll.
Dabei werden natürlich verschiedene Daten anfallen, die ich werde speichern wollen. Größere Texte, Charakterdatenblätter, außerdem natürlich verschiedene Daten aus den entsprechenden Regelwerken, die ich irgendwo abspeichern muss.
Nun habe ich dabei bisher (bisher ist nur der Charaktereditor lauffähig) mit XML-Dateien gearbeitet. Das funktioniert bis jetzt auch ganz gut, wird aber bei den viel Datenintensiveren Tools die ich jetzt in Angriff nehmen möchte viel arbeitsintensiver werden. Wenn ich mich schon ewig damit beschäftige möchte ich, dass es am Ende auch gut ist. Leider kenne ich mich nicht aus mit den verschiedenen Möglichkeiten Daten in Java zu verwalten.
Ich bin nicht sicher ob eine Datenbank für meine Anforderungen die richtige Lösung wäre.
Jetzt also meine Frage: hat dazu jemand eine tolle Idee, oder kann mir Bücher/Links etc. empfehlen wo auf das Problem der Daten verwaltung allgemein eingegangen wird damit man sich für eine Möglichkeit entscheiden kann? (Also keine Tutorials nur zu Datenbanken etc. bitte. Ich möchte mich erstmal nur informieren welche Möglichkeiten ich habe und welche davon die geeignetste ist. Wenn ich dann eine Methode habe, dann finde ich dazu schon Material)
Große Datenmengen kann man immer gut in Datenbanken speichern.
Wie dein Programm aussieht weiß ich nicht, aber für das Spiel könnte man zum Beispiel eine Tabelle für deine Spieler erstellen, eine für etwaige Helden oder Quests.
So wäre alles schön aufgeräumt.
Wenn sich die Dateien nie ändern werden, könntest du aber auch z.B. Properties Dateien verwenden.
Diese sind halt sehr leicht zu bearbeiten und auch gut lesbar, ohne ein extra Programm oder einen Viewer.
Für bestimmte Daten (NPCs, Orte) bin ich mir recht sicher das eine Datenbank das geeignete Mittel ist.
Für andere Daten allerdings, bin ich mir noch nicht sicher. In erster Linie bei den Daten, die ich aus dem Regelwerk brauche. Vielleicht am Beispiel Charaktererstellung:
Ich habe ein Tool zu Charaktererstellung. Den fertigen erstellten Charakter würde ich in einer Datenbank abspeichern, da ich auf diesen später zugreife um ihm zB einem Abenteuer zuzuweisen.
Während der Charaktererstellung brauche ich aber eine ganze Menge Daten aus dem Regelwerk um dem Spieler alle Möglichkeiten zur Auswahl zu stellen und sie ihm auch zu erklären. (zB. 'wähle eine Rasse' erfordert das Einlesen aller möglichen Rassen sowie der dazugehörigen Informationstexte u.s.w.)
Diese Daten haben zwar einen Kontext, stehen aber zueinander eigentlich nicht in Verbindung, ich sehe hier also keine sinnhafte Verwendung für Datenbankabfragen o.ä.. Für seitenweise Infotexte, Auswahloptionen, Regeln u.ä. extra Datenbanktabellen anzulegen erscheint mir daher ein wenig als würde man mit einer Angel Vögel fangen wollen. Es geht, aber ideal ist es nicht.
Bis jetzt sieht mein Lösungsansatz so aus eine Datenbank zu verwenden und all die Daten die meiner Ansicht nach dort falsch wären in eigene XML Dateien zu packen. Das scheint mir aber eine recht behelfsmäßige Lösung zu sein und ich würde mich gerne dazu informieren wie man so etwas elegant löst.
ich habe mir mal gedanken gemacht. Das ist meine persönliche Meinung. Ich würde vielleicht mal Datenbank Datenbank sein lassen, und einfach mal für sich die Sache betrachten:
Ich beginne mal mit einer Klasse "Item", die die grundlegenden Eigenschaften, wie Stärke, Geschicklichkeit usw. enthält.
Dann würde ich eine Klasse "Charakter" von Item ableiten, die zusätzlich Name, Geschlecht usw. beinhaltet
Beide Klassen verbindet eine 1:n-Beziehung, da ein Charakter mit Dingen wie Waffen, Rüstungen usw. ausgestattet ist.
Ein Item ist mit einer "Beschreibung" aus einem Bild und einem Text verbunden.
Die Beschreibungen sind Listen oder Bäumen organisiert.
Technisch würde ich wirklich das Abspeichern in Strings im Sinne der Serialisierung in Betracht ziehen. So einen Weg habe ich einmal in einem ähnlichen Projekt gewählt.
Neben der XML würden mir ähnliche Systeme einfallen, die aber leichter lesbar sind, wie bei Wikipedia, wo "===" beispielsweise als eine Abschnittsüberschrift dargestellt wird, die dann auch noch in ein Suchfeld als Baumeintrag integriert wird.
Um die Textabschnitte aufrufen zu können, könnte man die Knoten suchen, also z.B. die abschnittsüberschriften, die benötigt werden. Dann wird der Text dargestellt. Dabei wäre es auch möglich, die Veränderung der Werte durch das Item automatisch aus dem Text einzulesen werden( z.B. AXT Stärke+1).
Ich bin hier aber in er Konzeption nicht frei. Wie gesagt, ich erstelle kein Spiel, sondern ein Hilfstool für ein bestimmtes Pen and Paper System. In diesem System wählt man eine Kultur, mit der verschiedene Eigenschaften und Wahloptionen verbunden sind. Mit einigen dieser Wahloptionen sind weitere Wahloptionen verbunden usw. Das Datensystem ist nicht gerade günstig um es in ein PC Tool zu übertragen.