Du bist nicht angemeldet.

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

Nico

Frischling

  • »Nico« ist der Autor dieses Themas

Beiträge: 82

Wohnort: Nürnberg

  • Private Nachricht senden

1

21.11.2007, 10:47

XML-DB! Oder doch nicht?

Grüss euch.
Mir brennt eine Frage auf der Seele.
Und zwar hatte ich eigentlich vor, für meinen MadTV-Klon die Filme im XML-Format zu speichern. Allerdings lese ich immer wieder, dass xml für solche Sachen zu langsam sei. Ich persönlich finde allerdings, dass es immer gut ist, seine Dateiformat offen zu halten, damit andere was damit anfangen können. OSS-Programmier halt :P.
Ich dachte da an folgendes Format:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
<? xml version="1.0" encoding="UTF-8" standalone="no" ?>
     <movie value="Die Hard I">
     <starring value="Bruce Willis" />
     <fsk value="18" />
     <blocks="2"/>
     <blockbuster="yes" />
     <series value="false" >
        <!-- Hier kommen Serienteile rein, wenns eine Serie ist. />
     </series>
     <popular="true" />     
</movie>

Sinn und Zweck:
FSK beeinflusst um welche Uhrzeit der Film gesendet werden darf. FSK 16 ab 20:15, FSK 18 erst nach 22:Uhr bis 4:Uhr morgens. Alles darunter ist egal.
blockbuster, blocks und series sind dafür verantwortlich, welchen Preis das Ding beim Broker kosten wird. Ich dachte da an Basispreise die dann multipliziert werden:
Film_Preis: 10.000$
Blockbuster_Preis = 20.000$
Serien_Preis: 5.000$
Popular_Mult = 2x

Als Beispiel ein populärer Blockbuster:
preis = (Blockbuster_Preis * Blocks * Popular_Mult) * blocks;
preis = preis + rand(); // rand ist zwischen 5.000 - 60.000$

Die genauen Werte muss man sich dann später nochmal ankucken, aber so ungefähr hab ich mir das vorgestellt. Aber ich schweife ab. :D

Die Filme sollen jeder in eine Xml-Datei kommen und später dann einfach per Iteration alle in eine Liste geladen werden. Hier wird dann noch nach Blockbuster, Serie und "NormalFilm" sortiert. Naja, eigentlich in 3 versch. Listen. Aus die wählt dann das Spiel dementsprechend Filme aus.
Vorteil:
Jeder Spieler kann sich selber Filme einfügen und bearbeiten ohne viele Kenntnisse. Dadurch gibt man auch einer Community die Chance, sich auszutauschen. Editor (der auch den ca. ingame-Preis anzeigen kann) und Updater sollen später folgen, damit man sich neue Filme automatisch von einem Server laden kann. (SourceForge evtl. oder andere OSS-Hoster).

Oder wäre es schlauer hier ein geschlossenes Dateiformat herzunehmen? Evtl. Binär gespeichert. Nicht dass ich mit wachsender Zahl der Filme dann auf einer zu langsamen Laderoutine sitze...
Bin auf eure Antworten gespannt.
lg

2

21.11.2007, 14:06

Ließ mal Gems 4 ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

DarioFrodo

Treue Seele

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

3

21.11.2007, 15:04

Genau, in Gems4 steht ein Artikel genau über dieses Thema.
Und zwar wird das XML-Format zum Testen genommen, aber für die Release Version wird es nach XDS porteirt, welches ein Binäres Format ist, ausgerichtet auch schnelle Verarbeitungszeit.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

21.11.2007, 15:37

Oder man nimmt ein System, was für große Datenmengen ausgelegt ist, aber auch relativ weit verbreitet und leicht zu warten ist. Warum also keine (SQL)DB nutzen?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

5

21.11.2007, 19:22

Am besten schreibst du für die Verwaltung der Filme eine Klasse welche den Zugriff kapselt. Dann kannst du die Datenquelle im Nachhinein noch ändern, wenn XML zu langsam wird, ohne etwas am rest des Programms ändern zu müssen.

Werbeanzeige