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

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

1

22.06.2012, 11:36

Resourcen richtig speichern

Hi,

wie speichert man am besten Resourcen, wie Maps und andere selbst erstellte Sachen?

Ich hab sie bisher als XML gespeichert, weil man das einfach ein- und auslesen kann. Alledings gibts dadurch immer nen großen Überhang an Tag-Namen etc.

Wie speichert man sowas am Besten, um es dann möglichst einfach wieder ein- und Auslesen zu können?



Gruß

Sp3iky

Treue Seele

Beiträge: 232

Beruf: Entwicklungsingenieur

  • Private Nachricht senden

2

22.06.2012, 12:37

Das kann man pauschal nicht sagen. Möchtest du möglichst effizient und speicherschonend speichern, dann schreibe die Daten direkt binär in eine Datei und lese sie in gleicher Reihenfolge wieder aus.
Soll die Datei auch gut lesbar und vom Menschen leicht veränderbar sein, musst du zwangsläufig in lesbaren Zeichen speichern. Ob dann strukturiert über XML-Tags oder in einer Textdatei mit prefix zum leichteren Parsen ist dir überlassen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

22.06.2012, 12:50

Es bietet sich oft an während der Entwicklungsphase ein lesbares Format zu nutzen (xml, ...) und die Daten später, für das Spiel, in einem binären Format zu hinterlegen.
@D13_Dreinig

4

22.06.2012, 14:14

Alledings gibts dadurch immer nen großen Überhang an Tag-Namen etc.

Die Frage ist doch, ob das wirklich ein Problem ist. Festplattenplatz ist billig, hast du wirklich das Gefühl, dass du viel zu viel davon brauchst? Auf ein paar mb kommt es ja heutzutage nicht mehr an.
Das zweite wäre vielleicht die Ladezeit. Aber da dominierten bei mir immer eher Dinge wie Texturen oder Modelle laden.
Bei riesigen Datenmengen ist ein optimiertes Binärformat sicherlich sinnvoll. Aber bei überschaubaren würde ich bei XML bleiben, alleine weil es so schön einfach und robust ist und man kleinere Dinge direkt im Texteditor ändern kann.
Lieber dumm fragen, als dumm bleiben!

FSA

Community-Fossil

  • Private Nachricht senden

5

22.06.2012, 14:42

Ich habe auch mal meine Maps in INI-ähnlichen Dateien gespeichert. Ich war einfach begeistert wie unglaublich schnell daraus gelesen werde konnte. Also habe ich jetzt INI-ähnliches genommen. Das ist zwar sehr Mod anfällig, aber richtig schnell. Zum Thema Texturen: Wenn 2 Objekte die selbe Textur haben, muss an doch nur einmal laden!? Und Modelle sollten auch schnell geladen sein. Anfangs habe ich auch alles Binär gespeichert. Aber das war nicht immer das schnellst(oder mein PC hat eine Macke). Das einzige was ich wirklich Binär speichere sind Vertex/Indexdaten und die Speicherstände, denn da habe ich einfache ein Struktur die ich auslesen kann.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

6

22.06.2012, 14:55

Hängt ganz davon ab was du speichern möchtest und ob du anderen Personen den Zugriff darauf gewähren möchtest oder nicht. Dabei solltest allerdings auch, wie mein Vorredner es gesagt hat, auf die Schnelligkeit achten. ;)
Only God can judge me.

7

22.06.2012, 15:13

Zum Thema Texturen: Wenn 2 Objekte die selbe Textur haben, muss an doch nur einmal laden!?

Das schon, aber man hat ja nicht nur immer eine Textur. Die bestehen oft aus verschiedenen Materialien und dann nicht nur aus Colormap sondern auch Normalmaps und vielleicht Specularmaps. Und Lightmaps mit gebaktem Ambient Occlusion nehm ich auch gerne. Insgesamt hat man dann schon so 3-10 Texturen pro Objekt, wenn man dann von 20 verschiedenen Objekten (also Objektarten) ausgeht kommt man ganz schnell mal an die 100 Texturen, die geladen werden wollen.
Lieber dumm fragen, als dumm bleiben!

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

8

22.06.2012, 15:36

Probier mal XDS. Das ist (einfach gesagt, stimmt nicht ganz) eine binäre "version" von XML. Einige XDS-Bibliotheken erlauben es, dass man bei entwicklungsbeginn mit XML arbeiten und dann später ohne viel Arbeit zu XDS umsteigen kann. Im Game Programming Gems 4 (Weiß nimmer, welches, werde es schnell nachschauen) wird das detailliert vorgestellt. XDS hat dieselben Vorteile wie XML, aber nicht dieselben Nachteile, der Großteil der Header fliegt raus und es lässt sich VIEL schneller lesen (parsen)

mfg CBenni::O

PS: Drecks smileys, kann bitte jemand den "XD" smiley so konfigurieren, dass er nicht umgewandelt wird, wenn man XD schreibt?
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »CBenni::O« (22.06.2012, 15:48)


Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

9

22.06.2012, 16:11

Hi,

@CBenni::O:
Hast du eine gute XDS-Bibliothek für C++ zur Hand? Ich hatte grad noch nicht so viel Zeit zum Googlen, werds aber heut Abend mal nachholen ;)


Gruß

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

10

22.06.2012, 16:13

Naja wie schon angesprochen hängt das stark von den Daten ab. Wem XML zu klobig ist, den könnte json interessieren. Wer stark relationale Datensätze hat (erkennt man daran, dass z.b. an x-Stellen immer der Gleiche Name steht, oder man mit IDs anfängt zu arbeiten um Verweise zu ermöglichen), dem ist SQLLite ans Herz zu legen.
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.

Werbeanzeige