@poison:
ich sagte ja bereits dass das nicht funktioniert, weil zu keinem Zeitpunkt ALLE per ent_create geschaffenen Entities wieder per ent_remove entfernt wurden.
Und level_free funktioniert nicht, solange noch irgendeine ent_create-Entity existiert, dann schmiert die Engine ab.
@broozar:
hm, klingt gut, werd ich versuchen, aber ich kann mir nicht vorstellen, dass das die Musterlösung ist. Zumindest glaube ich nicht dass andere z.B. Weltraumshooter so funktionieren, dass man immer wieder dieselben Entities verwendet, oder doch?

Edit: Nein, mit der Idee kann ich mich nicht anfreunden. Bei den Asteroiden, die aus dem Bild verschwinden (camera.x-500) mag das ja noch funktionieren, die immer wieder ins Bild zu schieben (camera.x+500); aber das wird schon problematisch bei den ganzen anderen Sachen. Wird ein Asteroid zerstört, entstehen Schockwellen und Trümmer. Wenn ich jetzt 10 zerstörte Asteroiden im Bild habe, setzt jeder davon 8 Trümmerstücke frei und sendet drei Schockwellen aus. Das sind allein schon 110 Entities in einem Bild; und wie soll ich solche Trümmerstücke und Schockwellen wiederverwenden? Die werden ja nicht einfach ins Bild geschoben. Da müsste ich ja unzählige dieser Entities vordefinieren und mit Pointern versehen und kompliziert auswählen, wann welche Steine an welche Position gelangen und wieder sichtbar werden, damit für jeden Asteroiden genügend Trümmer und Schockwellen da sind. Und genauso bei Antriebsflammen, Funkenflug und Laserfeuer.
Letzten Endes habe ich dann, je nach Effektanzahl, tausende Entities unsichtbar im Level rumschwirren, die darauf warten, eventuell wieder an einer anderen Stelle sichtbar zu werden.
Nein, so kann das doch nicht sinnvoll funktionieren...

Wie löst ihr das denn sonst, wenn ihr eine Entity entfernen wollt? ent_remove leert wie gesagt nicht den Zwischenspeicher und die Performance nimmt ständig ab. Jeder Programmierer, der ein Spiel entworfen hat, in dem viele Partikel etc. benötigt werden, muss doch dieses Problem und dessen Lösung kennen?! broozars Antwort klang eher nach "Da hat jemand ein Problem, dass ich nicht kenne, mal sehen, ob meine Idee funktioniert" und nicht nach "Das Problem hat jeder, jeder Pro weiß, wie man es löst" ^^

Last edited by Bastian; 04/01/08 13:15.