To optimize my scene file, I went through and gradually took everything out to see how big a performance hit each item was giving. I thought other folks might like to see the results--and I would love it if anyone could help explain some of the strange things I found. I also think it would be great if anybody else wants to post how much various things affect their own performance.
Also, maybe I just didn't find it, but there doesn't seem to be much commentary at all on frame rate and performance. The Wiki doese have a few very general
frame rate hints. If anybody can think of other resources for optimizing games, that would be very cool.
I did all my testing on a slow machine. This is important because things that slow down my slow machine don't affect my fast one at all. For instance, reducing polys doesn't benefit my fast card any because it hasn't reached any kind of bottleneck.
Here are the highlights that I picked up:
1. I started off with about 600 WMB polys and 1800 entity polys (2767 portals). (The main character alone is about 900). One of the main things that helped was bringing the number of entity polys down to about 1000. That sped me up from 20 to 30 FPS. I was very surprised that it had a hard time with so few entity polys. A single character in our PS2 games had more than that.
2. The other big observation I had was that none of the things that I thought would make a big deal really mattered. Dynamic lights, stenciled shadows, a hundred dirt sprites, visibility calculations, and block texture resolution. None of it really made any difference. (Except--staring at two big dynamic lights, full-screen, with stenciled shadows turned on slowed it down over 30%.)
3. The other strange thing is that when EVERYTHING was gone from the level, jumping down from 800x600 to 640x480 DOUBLED the FPS. I could understand a 1/3 improvement, but not double.
4. This likely says a lot more about my own card than about general responsiveness of the engine, but it's a start.
5. Also, there seem to be little plateaus. For instance, it seemed to stick at almost exactly 19.4 for many different changes--and then again at about 29.2. Similarly, my fast machine (Dual 2GHz & Quadro4) usually sticks at 63.2 FPS, even in just an empty room. But in some complex rooms (like the dynamic lights/stenciled shadow test below) it'll hit 75 to 85 FPS. Just kinda strange.
Test machine info:
Dell Latitude C800
847 Mhz
Windows 2000 Professional
512 MB RAM
ATI M4 AGP4x
(I think it has either 32 or 64MB of RAM)
Variation #1:
Modification FPS Full-Screen, 800x600, Hi-Rez 19
Re-compiled with Visibility Calculations "OFF" 19
Turned Stenciled Shadows OFF 19
Turned the steam particles OFF 19
Turned the Dynamic Torch lights OFF 19
Turned Animated Sprite fire OFF 19
Deleted about 100 dirt Sprites 19
Cut texture maps from 256 to 128 19
Deleted all entities except torches 22
Deleted torches 29
Replaced all level geometry with single hollow block 29
Deleted the character 30
Variation #2:
2 dynamic lights 29
Dynamic lights OFF 29
Add Stenciled Shadows 19
Variation #3 (same as #1 but at 640x480):
Re-compiled with Visibility Calculations "OFF" 23
Turned Stenciled Shadows OFF 28
Turned the steam particles OFF 28
Turned the Dynamic Torch lights OFF 28
Turned Animated Sprite fire OFF 28
Deleted about 100 dirt Sprites 29
Cut texture maps from 256 to 128 29
Deleted all entities except torches 29
Deleted torches 29
Replaced all level geometry with single hollow block 29
Deleted the character (or just go to first-person) 59