Well, JCL eventually posted a very vague response in the "Ask Conitec" forum. I'm afraid he just doesn't want to draw much attention to what a serious problem this is. So, I've done my own tests and here's what I've found--none of it is very encouraging:
There are two problems with 3DGS's 9lack of) memory management: sound and bitmaps. We really need to be able to control when these two elements are loaded into and removed from system RAM. At the very least, Conitec should make very clear that any game made with 3DGS needs to be VERY light on soundfx and bitmaps.
Sound
ANY time you create a "sound," sound music1 = <music1.ogg>; it is allocated to system RAM. Then when you actually play it, it's loaded in AGAIN--into acknex.exe. You can never clear the FIRST loading of the sound file, but you can clear the SECOND loading of it by playing another small sound file. Ent_morph doesn't seem to work for that.
You can work around this problem by using media_play to stream your music files off the hard-drive. This gives you a performance lag, and it also makes your install very messy because media_play isn't smart enough to look in a folder, let alone a resource.
However, media_play isn't a very effective solution for soundFX, so if you want to give a bunch of unique sounds to a bunch of different charcters across numerous levels, you're going to use a TON of RAM.
Bitmaps
ANY time you declare a bitmap, bmap Picture1 = <picture1.pcx>;, it is loaded into system RAM and will NEVER come out. You can purge it out of the video memory, but it's going to hog up system memory until you exit. This means that if you use a bunch of cool panels ANYWHERE in the game for any reason, you're going to have to pay for them, in system RAM, forever, always, no matter what. It's also loaded in to system RAM a SECOND time when it's displayed. Bmap_purge is an effective tool for getting the SECOND copy of the bmap out of RAM.
At least this is what my own tests have shown. I REALLY REALLY hope that someone will tell me I'm wrong.
Here's a little more data about my tests:
Level: Empty room, default texture, one light, and a Position
acknex.exe RAM usage: 11MB Total RAM usage: 55MB
Add a huge .ogg file (4.3 minutes)
acknex.exe RAM usage: 55MB Total RAM usage: 104MB
Play the .ogg file
acknex.exe RAM usage: 104MB Total RAM usage: 163?MB
OR--instead of the .ogg file, add one huge texture (2048x2048)
acknex.exe RAM usage: 23MB Total RAM usage: 68MB
(.pcx used about 4MB less ram than 24-bit .tga)
Last edited by Argonautut; 10/06/04 05:51.