Its very IRRITATING, but not actually ridiculous, as JCL explained to me once.
We'll see how well I remember. Its all got to do with how GS caches its memory.
Im just talking about "level-cache" memory, not video memory...
Lets say you ent_create 'ModelA', and it uses 100K of memory.
Later on, you ent_remove it. This memory is no longer used, but is still cached.
Now ent_create another 'ModelA', and it uses ANOTHER 100K of memory.
Later on, you ent_remove it. This memory is no longer used, but is still cached.
Thats where all the memory goes... BUT, its not really that bad, because if
you do a level_load or a level_free, THEN the memory is completely cleared and released.
But thats no good to ME, because I NEVER DO any level_load or level_free's because
I dont want to lose ALL the game-objects created since the last level_load or level_mark.
Do you want further reasoning about WHY the ent_removed memory stays allocated?
I cant remember sorry, all I can remember is that the memory DOES get used for
other stuff, but never re-used by entities.
I THINK it was something like that GS doesnt know how much level-cache an entity
will need until it is FINISHED loading into cache, and so to avoid trying to load
it into a 'gap' that is too small, and thereby corrupting following data,
they simply avoid the issue by always getting loaded on the end of the cache.
Thats my understanding anyway...