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.
wir entwickeln atm einen mp-weltraumshooter für 16 spieler. jeder von denen bekommt ein ansehnliches waffenarsenal an lasern, raketen, schiffe werden zertrümmert etc.
da erzeugen und registrieren von mp-entities noch langsamer als ent_create ohnehin schon ist (lags lags lags), mussten wir zu genau dieser lösung greifen. das ganze arsenal wird also vorinitialisiert, unsichtbar in eine levelecke gestellt und stumm geschaltet. das war nicht nur der beste weg für uns, sondern der einzige. ich kenne noch ein paar andere leute, die mit dem entitymanagement atm probleme haben. aber dieser weg scheint der einzig gangbare (und mittlerweile erprobte) zu sein.
es mag dir zunächst doof vorkommen und ist auch erstmal ne menge schreibarbeit, aber du gewinnst auch eine größere kontrolle über die entities, weil du jede mit einer eigenen ID registrieren kannst, sommit hast du direkten zugriff auf jede einzelne entity.