3d/Game Engine in C++ oder C#



  • um jeden Mist(vor allem Memoryleaks) zu kümmern

    also ich finde es nicht weiter schlimm ein paar mal "delete xyz" in den destruktor zu schreiben.
    sonst macht es von der arbeit her bei einer grafik-engine wohl keinen so großen unterschied welche sprache du verwendest. der größte aufwand liegt halt beim code desgin.


  • Mod

    es ist ein sehr grosser trugschluss dass ein GC vor memoryleaks scheutzt. wenn du in sprachen die einen GC haben auf einen speicher referenzierst und vergisst ihn zu deferenzieren, kannst du trotzdem ein memoryleak haben. weiter gibt es resourcen wie z.b. texturen die du weiterhin managen musst.



  • also memoryleak-frei proggen geht ... mann muss nur bei jeder funktion wo man new/malloc verwendet gleichzeitig am ende oder im destructor das zu gehörige delete/free schreiben ...

    bei einem spiel wo ich den server bei mir aufm root hoste ist da extrem schlampig gearbeitet: nach 3-4 tageb 50-60MB memoryleaks also für meine begriffe mehr als nur schlampig... es handelt sich um Raven Shield und desse stand alone dedicated server.



  • Das ist ja garnichts.

    Vietcong 1 dedicated server: Paar hundert MB alle 24 Stunden 😃
    Da heißts jeden Tag neu starten oder crash.

    Trotzdem der beste egoshooter.

    VIETCONG 1 FOR EVER!

    MfG


  • Mod

    bei 60MB in 24h muss es kein memleak sein, es kann auch durch speicherfragmentierung kommen oder logs die gespeichert werden.



  • LinkeT schrieb:

    also memoryleak-frei proggen geht ... mann muss nur bei jeder funktion wo man new/malloc verwendet gleichzeitig am ende oder im destructor das zu gehörige delete/free schreiben ...

    Nichtmal. Es gibt ja auch noch auto_ptr und Ähnliches.



  • Das ist genauso komisches Gerede wie dass ein GC vor Memory Leaks schütze. Klar, es ist ganz einfach. Einfach immer nen smart-pointer benutzen, so leicht ist das Leben. 🤡 👍

    Ich überlasse jedem selber die Entscheidung was er leichter findet. Ich ziehe GC vor, da muss man aber auch aufpassen dass man nichts verbockt und muss profilen und die Speichernutzung analysieren, damit er nicht zum Flaschenhals wird.

    Dafür hat man ohne GC anderes Probleme, durch Fragmentierung, mögliche Fehler durch benutzen eines deallokierten Objekts, usw. und es ist nicht einfach immer "an delete denken" oder "smartpointer benutzen" Jeder kann sich da sein Gift aussuchen.



  • LinkeT schrieb:

    pc und linux ???
    eher windows und linux

    und xbox360 mit c++ ?? wenn es ne stl gibt ok so weit ich weis gibts danur xna und das ist automatisch mit c# gebunden ... also fällt da irgendwas flach 😉

    Dein Wissen ist falsch.



  • da ham die was geändert ... die S.... xD



  • Optimizer schrieb:

    Das ist genauso komisches Gerede wie dass ein GC vor Memory Leaks schütze. Klar, es ist ganz einfach. Einfach immer nen smart-pointer benutzen, so leicht ist das Leben. 🤡 👍

    😃 da ist der Unteschied zwischen Ungültigen Referenzen/Pointern und Memory-Leaks. Wenn das vor Memory-Leaks schützen würde, müssten mich Smart-Pointer davon abhalten 1000000 Objekte zu erstellen, die ich nicht brauche, und in ein Array zu packen. Das gleiche gilt für den GC.


  • Mod

    LinkeT schrieb:

    da ham die was geändert ... die S.... xD

    ja, sie haben fuer die oeffentlichkeit ein idiotensicheres mittel veroeffentlich;) dann ist es auch nicht so einfach linux laufen zu lassen.
    ansonsten werden spiele (auch fuer xbox) mit c++ gemacht.


Anmelden zum Antworten