some general optimisation rules:
lock your framerate to max 60FPS. its the basic full screen monitor refresh rate. if a monitor is faster, good for you but 60fps are enough. you dont need to go faster than that.
use the right clipping. why do you have a clip range of 15 000 if youre doung a game with ingame corridors? you wont see anything anyway?
make sure you make unseen entitie pasued while not on the screen. the less functions, the better.
dont use hundrets of entities at once. group some in med if tehy are close together like a set of boxes for example.
dont use a model with hundrets of frames. A7 can interpolate. use that
use LOD. alot!
texture unseen surface sides in wed with the default texture. set it to scale 25 on x and y and to rendering flag none.
use wed only for rough level geometry. do all details with models.
dont use huge texture sizes if you dont need them. your enemy looks okay with a 512*512 texture if he doesnt stay close to your view all the time...
use good and clean code. bad code can slow you down alot...
same goes for shaders.
reduce the use of post processing effects. they are slower...
use LOD for stencil shadows.
only cast a stencil shadow on important things, like your player (if 3rd person). use the basic decals for everything else.
use pcx, dds or png instead of bmp and tga.
those are some general rules. they dont apply to all games. some of you will probably think im talking shit. or that 120fps are important. or that a models needs to have 3k polies but 400 frames and a 2048 skin. thats riddiculous. you dont need that shit. optimisation goes beyond reducing polies. its hard work.
im doing a few wrng things in my games aswell. like unoptimized code. or too huge models. im doing that mistakes. but im working on that too. you can get much more out of the engine if you know the weaknesses. like lightning building. the longer the compiling of the level takes, the better the framerate. its simple. just know your stuff and youre fine...