Frage zur internen Struktur eines 3D-Games.



  • Hiho,
    ich habe mal eine Frage und zwar wuerde ich gern in Erfahrung bringen wie in 3D-Games die Positionen von Objekten( statische wie Baeume, Steine oder was sich halt nicht bewegt; und dynamische sowas wie Einheiten eines Spielers) im Speicher liegen? Also wie wird das Programmiertechnisch geloest? wird ein GROßES Arry allociert und dort alle Objektpositionen gesichert? oder werden mehrere Arrays allociert und dort fuer jeden Spieler ect. die Positionen von dessen Einheiten usw. gesichert?
    Gibt es da verschiedene Methoden wie Spieleentwickler dieses Problem loesen oder ist es prinzipiel immer das gleiche?
    Vieleicht noch eine allerletzte Frage, mit sicherheit werden die Objekte, welche ja Strukturen/Klassen sind, in Arrays besichert, kann man mit Bestimmtheit sagen, dass hier alle Informationen ueberdas jeweilige Objekt gesichert sind (Mana, Speed, Healthpoints, was weiß ich noch alles) oder liegen hier dann nur die Koordinaten?

    Hoffe das warn jetzt nicht soviel Fragen aufeinmal 😉 Waere euch aber dankbar, wenn ihr mir da auskunft geben wuerdet.

    Gruß Tobi



  • Also wie wird das Programmiertechnisch geloest? wird ein GROßES Arry allociert und dort alle Objektpositionen gesichert? oder werden mehrere Arrays allociert und dort fuer jeden Spieler ect. die Positionen von dessen Einheiten usw. gesichert?

    Die Organisation wird meist mit einem Szenengraph gelöst. Die Implementierungsmöglichkeiten sind da nahezu Grenzenlos, genauso wie die angewandten Konzepte. Da solltest du dir einen Überblick verschaffen (Google).

    Reine C++ Arrays werden wohl kaum irgendwo als Datenstruktur verwendet, wenn ihre Größe nicht schon zu 100% zur Kompilerzeit feststeht (Bsp. statische extension Tabelle). Ohne SG würd ich ne STL List oder eine Set mit Shader-/ Renderstatesortierung benutzen.

    [/quote]Vieleicht noch eine allerletzte Frage, mit sicherheit werden die Objekte, welche ja Strukturen/Klassen sind, in Arrays besichert, kann man mit Bestimmtheit sagen, dass hier alle Informationen ueberdas jeweilige Objekt gesichert sind (Mana, Speed, Healthpoints, was weiß ich noch alles) oder liegen hier dann nur die Koordinaten? [quote]

    Nodes (Knoten) im Graphen besitzen neben der eigentlichen Transformation noch spatiale Eigenschaften, wie Hüllvolumen um effektives Culling zu ermöglichen.
    Was sonst noch in Ihnen gespeichert wird ist dem Entwickler und dem allgemeinem Enginedesign überlassen.
    Häufig gibt es verschiedene Nodeklassen für statische Geometrie, dynamische... Vegetation, Environment etc.

    MfG Wally



  • Das hoert sich alles schon mal sehr interesant an, koenntest du mir evtl. noch ein paar Anhaltspunkt zum googlen posten? Szenengraph hab ich jetzt schon mal vernommen, glaub aber nicht das ich dmait allein weit komme oder?

    Btw.: evtl. haettest du ja auch schon mal ein paar tolle Links?

    Gruß Tobi



  • Sofern du der englischen Sprache mächtig bist (das trifft ja leider nicht für jeden mit Abi zu 😃 <-- beziehe ich auf deine Signatur), empfehle ich dir http://www.geometrictools.com/ und die Bücher von dem Autor sind auch empfehlenswert. Auf der Seite gibt es auch eine komplette "Lernengine" zum download.

    Lernengine sage ich deshalb, weil das Teil tatsächlich dazu geproggt wurde, um sich mit den Implementationstechniken vertraut zu machen. Wenn die Grundlagen sitzen schaust du dir am besten andere Engines an, die mehr Technik für den Produktiveinsatz bieten, wie z.B. Horde3D <-- kann ich nur empfehlen, wenn du mit OpenGL vorlieb nehmen willst.

    MfG Wally





  • Hey thx fuer die Links und Tipps, werd ich mir die naechste Zeit mal zum Gemuet fuehrn und an meiner Sgnature rumpfeilen ^^

    Gruß Tobi



  • [ups, war schon]


Anmelden zum Antworten