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

physX

Treue Seele

  • »physX« ist der Autor dieses Themas

Beiträge: 119

Wohnort: Dresden

  • Private Nachricht senden

1

28.05.2009, 15:42

verwalten von Dateinamen

Hallo, ich wollte mich mal erkundigen wie ihr in euren Programmen üblicherweise Dateinamen für sounds/bilddateien etc. verwaltet.

Ich hatte mir überlegt eine einfache datei mit entsprechenden #defines zu erstellen, die man dann bei bedarf per include mit einbinden kann. also im Stil von

datei mit definitionen für dateinamen

C-/C++-Quelltext

1
2
3
#define PLAYERSPRITE "./Data/meinPlayer.png"
#define LASERSOUND "./Data/LaserSound.wav"
// ... usw.


oder ist es sinnvoller dafür

C-/C++-Quelltext

1
2
3
const std::string PLAYERSPRITE="./Data/meinPlayer.png"
const std::string LASERSOUND="./Data/LaserSound.wav"
// ... usw.



zu verwenden? Hat ja beides seine Vorteile.

Welche anderen Möglichkeiten kennt ihr noch zur Verwaltung auch größerer Mengen an Datenfiles? Listen von Strukturen o.ä.?
(Momentan wäre das für meine kleinen Programme sicher der Overkill) Ab welchen Datenmengen lohnt es sich eine eigene DateiVerwaltung für diesen Zweck in das Spiel mit zu implementieren.

Danke schonmal für Tips und Hinweise.
Gruss

2

28.05.2009, 16:11

Welchen Vorteil haben defines gegenüber konstanter Variablen?
Ansonsten habe ich eigentlich nur sehr wenig direkt im Code. Und die dann meistens an Ort und Stelle, z.B. beim laden der GUI.
Die ganzen anderen Sachen stehen dann jeweils z.B. in der Leveldatei (bzw. da stehen die Objekte drin, zu denen wieder Dateien existieren wo dann z.B: die Textur drin steht).

Also eine große Liste für Dateinamen im Programmcode zu haben halte ich für wenig sinnvoll, hier sind externe Dateien sicherlich besser.
Lieber dumm fragen, als dumm bleiben!

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

3

28.05.2009, 16:27

Abgesehen von dem was Jonathan schon gesagt hat, sollte man auch mit defines sparsam umgehen ;)

FalkT

Treue Seele

Beiträge: 125

Wohnort: AC

  • Private Nachricht senden

4

02.06.2009, 20:02

Re: verwalten von Dateinamen

Zitat von »"physX"«


datei mit definitionen für dateinamen

C-/C++-Quelltext

1
2
3
#define PLAYERSPRITE "./Data/meinPlayer.png"
#define LASERSOUND "./Data/LaserSound.wav"
// ... usw.



Je nach verwendetem Buildsystem (z.B. cmake) kann man sich Defines automatisch generieren lassen, bis hin zu automatisch zur-compilezeit-erstellten Listen von Dateiennamen.
Hätte dann auch etwa folgenden Code als Konsequenz :

C-/C++-Quelltext

1
2
3
#ifndef PLAYERSPRITE
 #define PLAYERSPRITE "./defaultpath/defaultname"
#endif

5

03.06.2009, 10:29

Re: verwalten von Dateinamen

Zitat von »"physX"«

Welche anderen Möglichkeiten kennt ihr noch zur Verwaltung auch größerer Mengen an Datenfiles?

Bei mir wäre sowas in einer Config (meist XML)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

03.06.2009, 11:48

Also ich musste lernen, dass es immer gut ist möglichst viel aus den unteren Ebenen auszulagern. Sprich Verwaltungen für die Musik, Klänge usw. ist selten ein echter Overkill (wenn man von wirklich kleinen Projekten absieht). Auch sind einfache Verwaltungen echt leicht runter zu schreiben. Zum laden in die Verwaltung kann man dann natürlich beliebige Quellen nutzen. Für kleine Sachen reichen ja sogar .txt. Wenn es strukturiert sein soll, kann man XML nutzen und für sehr große, sehr komplizierte und sehr viele Datensätze empfehle ich Datenbanken.
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