xml-orgien in spielen?



  • Seh ich das richtig, dass deine XML-Bibliothek keine Attribute unterstützt?

    Du müsstest also statt

    <?xml version="1.0" ?>
    <Config>
    <Environment os="Windows" cpu="1.5ghz" ram="512mb" />
    </Config>
    

    folgendes schreiben

    <?xml version="1.0" ?>
    <Config>
    <Environment>
    <Os>Windows</Os>
    <Cpu>1.5ghz</Cpu>
    <Ram>512mb</Ram>
    </Environment>
    </Config>
    

    ?

    Und ja ich weiß, dass das Beispiel stinkt 😃

    Und zu deiner Idee, XML ist ja eine Auszeichnungssprache, also statt tausende proprietäre Formate zu entwerfen um dein Design flexibel und Datengesteuert zu halten, ist XML die beste Wahl.
    XML um eine GUI zu designen finde ich eine super Idee und wird ja auch schon vielerorts gemacht. Auch deine Musikliste finde ich gut und wenn du darin Objekte beschreiben/zusammensetzen kannst, dann finde ich das auch passend.
    Die Alternative wäre ja nur ein anderes Format zu verwenden, da gewinnst du ja nichts wirklich.

    Wenn du bei XML bleiben willst und nicht auf das XDS umsteigen willst, dann könntest du auch einfach die XML Dateien komprimiert speichern. Geht mit den boost::iostreams kinderleicht.



  • Um mal 'ne Hausnummer zu nennen, wenn du xml Dateien hast, die in die Nähe von 1 Mb kommen, oder insgesamt über 20 Mb, dann sind es evtl. zu viel.

    Gruß, TGGC (\-/ returns)



  • ookay.. wenn ich so weit komme, überleg ich mir das nochmal ^^
    Aaaber ich glaub, insgesamt wird so viel nicht geladen..

    @ User : stimmt, unterstützt sie nicht- war ich irgendwie zu faul für ^^



  • Warum die Befürchtung, dass XML etwas langsam macht? Du benutzt doch XML hoffentlich nur, um etwas persistent auf der Platte abzulegen...
    dagegen ist dann auch nichts einzuwenden.

    Die ganze Baumstruktur solltest du zur Laufzeit nicht mehr unbedingt haben. Ich gehe eigentlich immer vom Code aus und schreibe sowas:

    struct Settings {
        string playerName;
        Size resolution;
        ...
    }
    

    Und serialisier das als XML. Ein Baum ergibt sich, wenn das struct ein struct enthält (Size). Zur Laufzeit gibt es das XML-Dokument nur beim einmaligen Laden.



  • Weil das lässig mal zehn bis fünfzig Mal so lange Zeit und Speicher braucht, wie binär.

    Gruß, TGGC (\-/ returns)[/quote]



  • Benutz doch TinyXML (kostenlos). Das nehme ich auch.
    XML an sich ist schon eine feine Sache, weil man am Anfang erst einmal drum herum kommt, einen Editor zu programmieren, da ja alles schön lesbar ist.



  • TGGC schrieb:

    Weil das lässig mal zehn bis fünfzig Mal so lange Zeit und Speicher braucht, wie binär.

    Gruß, TGGC (\-/ returns)

    [/quote]Ja, beim einmaligen Laden braucht es mehr Zeit und beim Speichern *auf der Festplatte* braucht es mehr Platz. Ich sehe das Problem nicht.


  • Mod

    Optimizer schrieb:

    TGGC schrieb:

    Weil das lässig mal zehn bis fünfzig Mal so lange Zeit und Speicher braucht, wie binär.

    Gruß, TGGC (\-/ returns)

    Ja, beim einmaligen Laden braucht es mehr Zeit und beim Speichern *auf der Festplatte* braucht es mehr Platz. Ich sehe das Problem nicht.[/quote]
    ob etwas 3s oder 30s zum laden braucht ist schon ein unterschied.

    xml sollte man als metaformat nutzen und final in der anwendung dann ein binaerformat. optimal ist dabei wenn man memorymapped arbeitet, dann kann man oft daten von mehreren hundert MB schneller laden als ein paar MB aus xml.



  • Ich seh schon, alles steht und fällt mit der Datenmenge, wobei wahrscheinlich nur Daten in XML liegen sollten, die ich nicht ständig neu laden muss..

    Da machen mir jetzt eigentlich nur meine Objektmetadaten Kopfschmerzen..
    Naja. Die liegen innerhalb meines Objekts ja auch als Datenstruktur da- da werd ich diese wohl noch um ein serialize/deserialize erweitern..



  • Bist du eigentlich mit dem Typ auf zfx verwandt oder sowas? => http://www.zfx.info/DisplayThread.php?TID=22581 f'`8k

    Gruß, TGGC (\-/ returns)



  • Nein, so krank bin selbst ich nicht 😉
    Aaaber gabs da nicht auch einen, der avis so speichern wollte?



  • Benutz doch lieber etwas wie OGDL.

    XML ist nur dazu da um Stellen in Texten zu markieren. Also nicht wirklich ideal um Daten zu ordnen.

    Aber vielleicht ist für deinen Zweck ein normaler serializer praktischer. Ich weiß nicht wie gut das Boost Zeugs da ist. Beschäftige mich gerade nur mit Elephant für Common Lisp 🙂



  • kingruedi schrieb:

    XML ist nur dazu da um Stellen in Texten zu markieren. Also nicht wirklich ideal um Daten zu ordnen.

    hmm... wozu gibts dann soap? warum xml-basierte Datenbanken?

    Zur boost: ich nutz die nicht wirklich- hab mich irgendwie noch nicht so richtig mit anfreunden können. So isses halt, wenn man hinter der Zeit lebt 😃



  • Ja, warum denn eigentlich? Sag's uns. f'`8k

    Gruß, TGGC (\-/ returns)



  • Aaalso soap gibts, weil m$ ganz frech den Giftschrank der Apache-Group geplündert hat- die haben's nämlich erfunden und gleich wieder versteckt..
    xml-basierte db? hmmm.. ich weiß auch nich alles..
    Und dass ich etwas hinter der Zeit lebe- :p nenn mich einfach sentimental 😃


Anmelden zum Antworten