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

11

18.11.2017, 20:08

Ich vermute es nur, da ich mich bald an die Algorithmen zur Weltengenerierung und die Spielobjekte im allgemeinen heranwagen und damit experimentieren werde.
Da ich diese so früh auch nicht optimieren werde, sondern mein primäres Ziel ein funktionierender Prototyp ist gehe ich davon aus, dass im Laufe der Entwicklung der Stack auch stärker ausgelastet wird ( spätestens wenn die KI ins Spiel kommt ) und ich früher oder später sowieso die meisten Objekte auf dem Heap benötigen werde, setze ich mich lieber jetzt schon damit auseinander

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

12

19.11.2017, 09:16

Heißt das, solange ich Pools mit fester Größe verwende wäre mein Ansatz valide?
Ja, das ist moeglich. Gibt auch grosse Projekte, die sowas umsetzen. Ich glaube die früheren id Engines zum Beispiel, nach Quake 3 weiss ich aber nicht. Man kommt aber vermutlich nicht umhin dann einige Sache wieder neu zu programmieren, die sonst in new drin wären.

Was auf jeden Fall Sinn macht, das man new etc. im Groben verstanden hat, bevor man sich dagegen entscheidet.

Man kann seinen Speicher ja auch komplett von z.B. std::vector managen lassen und hat dann mit new nie etwas zu tun. Also alles was nur eine Instanz hat auf dem Stack, alles andere in einem std::vector - was genau spräche für dich dagegen?

13

19.11.2017, 10:57

Es spricht rein garnichts dagegen, sondern klingt sogar recht gut. Ich wusste um ehrlich zu sein nicht, dass std::vector seine Elemente auf dem Heap hat :whistling:

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

19.11.2017, 11:08

Du musst bei einem Vector nur aufpassen keine Referenzen der Objekte darin nach außen zu reichen, weil ein Vector seine Elemente im Speicher verschiebt, wenn es notwendig ist. Danach würden deine Referenzen nur noch Käse referenzieren.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

15

19.11.2017, 11:21

Ok, gut zu wissen, aber eine Referenz zum Vector selbst ist stabil?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

19.11.2017, 11:23

Wenn der im Stack liegt und nicht selbst wieder in einem Vector, ja.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

17

19.11.2017, 12:08

Ich wusste um ehrlich zu sein nicht, dass std::vector seine Elemente auf dem Heap hat :whistling:

Ist aber eigentlich logisch, denn sonst könntest du in einem Vector nur so viel speichern, wie der Stack es zulässt (das wäre sehr wenig). Außerdem könnte der Vector seine Speichergröße nicht dynamisch ändern, d.h. er müsste immer eine fixe gewisse Menge Speicher reservieren.

Werbeanzeige