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

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

11

20.11.2014, 19:36

Ist ja kein Problem die paar Materialeigenschaften doppelt zu speichern.
Wenn es wirklich so wichtig später ist würde ich da aber auch eher in ein eigenes Format ablegen.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

12

20.11.2014, 21:42

Wenn mehrere Objekte das gleiche Material zugewiesen bekommen, würde durch diese Speicherung diese Information wieder verloren gehen, da im Grunde mehrere Duplikate dadurch vorhanden sind. Will ein Entwickler nach einem Laden der Objekte nun dieses ursprünglich eine Material bearbeiten, müsste es das für jedes einzelne Objekt erledigen.
Und dabei gehe ich davon aus, dass im Material nur Informationen über und für den richtigen Shader gespeichert werden, die referenzierten Texturen aber weiterhin separat gespeichert werden. Sind bei dir die Texturen aber teil des Materials, dann würde so auch die Datenmenge aufgebläht werden.

Es kam wenn ich richtig bin auch das Stichwort der Netzwerkübertragung: bei den meisten Spielen, die man im Netzwerk mit anderen zusammen spielen kann, liegen die Ressourcen bereits nach der Installation auf jedem Rechner und es müssen nur noch relativ wenige Informationen zwischen den Spielern und dem Server (sofern vorhanden) ausgetauscht werden.
Es gibt aber auch Spiele, in denen die Spieler eigenen Content und auch eigene Modelle und Texturen erstellen können, welche dann auch im Mehrspielermodus nutzbar sind. Beispiele dafür wären Counter Strike Source und wahrscheinlich auch die meisten anderen Mehrspieler Spiele auf Source-Basis (Garys Mod, Team Fortress 2, ...). Dort werden die Texturen, Modelle, Sounds etc. aber auch nicht in einem solchen Format abgelegt und auch nicht (soweit ich weiß) gepackt übertragen.

Um die Frage also zu Beantworten: eine Szene beinhaltet Referenzen auf die enthaltenen Objekte/Ressourcen
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

13

21.11.2014, 13:27

@Sacaldur: das meinte ich^^ hab nur nicht die richtigen Worte gefunden, die Assets Sounds etc. dann übertragen (was ist besser: gepackt oder roh?) damit ich nicht alle Maps machen muss, und da ich eh vorhatte ein (kleines) Pluginsystem einzubauen um zB. sowas wie bei CS1.6 zu ermöglichen: ZombieMod, DeathRun, Deathmatch ...(die Liste ist ja schier unendlich^^) und eben auch eigene Maps wie die ZombieMod-Maps mit "zm_" anfangen.

So, andere Frage: Wie kann ich alles effizient, platzsparend(nicht wie WoW 25GB!) und programmierer-/nuterfreundlich anlegen? Einen eigenen Ordner für Assets, Materials, Vertex/Face-Daten(Wavefront nutzen?) oder alles per Index-Datei zuweisen und ein Verzeichnis?

LG felipe

PS: sind in Archiven die Pfadangaben eig. Linux/UNIX oder Win Norm(d.h. "/" oder "\")? oder OS-abhänging?

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

14

21.11.2014, 13:45

Faustregel: Windows macht alles anders.
Alle Unix Systeme /, Windows \.

In der Regel wirst du ja irgendeinen Asset Manager haben. Du kannst dann für jedes Objekt z.B. den/die Dateinamen speichern, aus denen die Daten geholt werden sollen.
Wenn die Datei schon geladen wurde wird deren Inhalt sinnvoll zurückgegeben. Ansonsten wird sie geladen.
Ich hab hier ein recht anschauliches Beispiel in JavaScript mit callback Funktionen, denke ich.

15

21.11.2014, 13:49

@DeKugelschieber: merkt man ja schon an unistd.h und windows.h und dlsym etc.^^
Wie ist übrigens die define für win32/64 systeme? __WIN32__ oder?

FSA

Community-Fossil

  • Private Nachricht senden

16

21.11.2014, 16:49

@DK: Windows akzeptiert auch '/' ...

Zitat

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

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

17

21.11.2014, 18:00

@DK: Windows akzeptiert auch '/' ...

Jau hast recht, hab gerade an Arma gedacht, das akzeptiert in der Scriptsprache nur Backslashes...

18

22.11.2014, 12:27

ok, hab jz glaub ich alles und btw geht der topic ins OT^^
-> closed

19

04.12.2014, 14:59

Ja, bei Win und linux spuckt OGRE immer nur Fehler aus(in Form von Speicheraddressen) oder beendet einfach so, OHNE TRY-CATCH!

FSA

Community-Fossil

  • Private Nachricht senden

20

04.12.2014, 16:04

Oder du hast einfach kein catch in deinem Code? Ogre spuckt garantiert eine Exception.

Zitat

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

Werbeanzeige