Performance Guide

From Cube Wiki
Revision as of 16:59, 12 December 2014 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A key part of a good gaming experience is performance. You want the most framerates you get out of a game. It can improve it's quality by several magnitudes

Steps to Increasing Performance

Things you can change that either affect your performance or your visual quality, in order of importance:

Player Models

If you are using an Intel GMA chipset, then certain player models will be much faster to render than others. Use the "Ogro" player model, which can be selected in the options menu, or you may choose him from the Sauerbraten console by typing /playermodel 2.

Also, if you are using an Intel GMA chipset, turn off stencil shadows by going to the options menu, then under the gfx tab make sure the stencil shadows option is off. You may alternatively shut these off from the Sauerbraten console by typing /dynshadow 0.

Resolution

Your resolution has the largest effect on performance. Change it in the options menu under the res tab, or force it explicitly on the command-line with sauerbraten.bat (Windows) or sauerbraten_unix (Linux/BSD/etc) in the base game folder (the -w and -h options, try -w640 -h480 for example). If you have an extremely low framerate, lowering the resolution will have immediate effects.

Video RAM

If you are using an older video card with 64 MB or less of video RAM (skip this section if you have more), then before you do anything else, first try enabling S3 texture compression (if your 3D card supports it) with the console command /texcompress 128. However, if your card does not support S3 texture compression, then add the following line to your autoexec.cfg file: maxtexsize 128

Texture compression should be tried first. However, if that fails, the maxtexsize variable will limit the size of textures to be no larger than 128 by 128, scaling them down if necessary. Either one will use much less video RAM. If a map uses more textures space than you have available video RAM, then you will notice huge slowdowns.

Shaders

Unless you have the latest and greatest card, shaders will hurt your framerate. Turn them off either by going to the options menu and under the gfx tab ensuring the shaders checkbox is off, or by adding the flag -f0 to your command line.

Note that if your card doesn't support them, they will be turned off automatically already. You can also selectively turn off some shaders by making sure the low detail option is checked next to the shaders option in the menus described above, or by setting the shaderdetail console variable with values 0 through 3 (i.e. /shaderdetail 1), with lower values meaning fewer fancy visual effects. Using a low shaderdetail value can make shaders perform quite well on low end cards.

Antialiasing

While -a4 (on the command line, may also be modified by graphics drivers) will look fantastic, especially at the lower resolutions, for max performance it should be left at the default (-a0).

Fullscreen Shaders

Do not turn full screen shaders like bloom on (in the menu) unless you have one of the latest cards.

VSync

Turn off vertical sync (in your graphics driver options) for slightly less hiccup in framerate (at the cost of potential visual tearing).

Color Depth

Changing to -b16 (16 bits per pixel) can give you quite a performance boost (but mainly only on older hardware). If you use -b16, be sure to use -z24 too (a 24 bit depth buffer won't hurt your performance, but setting it to 16 will lead to bad visuals, flickering lines, sparks, and possibly even compromised depth perception which is noticable when trying to shoot). Most graphics card automatically change to 16 bit depth buffering when using 16 bit colour depth, so make sure you use -z24 to prevent this.

Water

If water shaders are slowing you down, go to the options menu and then under the gfx tab try turning off the reflection and refraction checkboxes in the water options. You may also toggle these off from the console with /waterreflect 0 and /waterrefract 0.