07-14-2003, 02:05 AM
Based on a few webpages I've read about all this, I thought i'd offer some guidance on what can be done to reduce lag. I know it's become a hot topic due to a rampant thread on here about CrazyKiller/Acid to which even I contributed a complaint or two. However, I like to take a proactive approach, so here goes:
[*]Start by enabling network graphic display, using net_graph 1, so that you can see how your network traffic is doing. (using net_graph 0 will turn it off again when your done). If you want to see full information, you can do net_graph 3.
[*]'CL_RATE' is the client's rate at sending updates, as far as I remember, and there are certain ranges that should be considered when setting this: Dialup = 1000 - 5000, ISDN = 4000 - 8000, DSL/Cable = 5000 - 20000, for higher connections 20000+. I'd suggest starting small and then upping the number by 500 at a time to see if it gets worse or still allows for a good connection. This is denoted by the two green bars at the top of the net_graph.
[*]Check your 'FPS_MAX' variable. There are some suggestions that you do not need to change this from the default, but it's handy to know what it is, because this will be the maximum FPS you can achieve in game.
[*]'PUSHLATENCY' should be a negative value that equates to approximately half value of your 'PING'.
[*]Try not to use Software Rendering if you can help it as this will produce a form of lag in itself, unless you machine is a top of the range spec. OpenGL/Direct3D will take advantage of a video cards own rendering features that will reduce the burden on your processor and so make for a faster game. If your current drivers do not support OpenGL/Direct3D consider trying to locate the latest drivers and see if they are now compatible.
[*]Try using a lower screen resolution. The less display/update that needs to be done to you screen means the less has to be rendered. The higher the resolution, the more pixels, the more work needs to be done by your PC.
[*]'R_DYNAMIC 0' turns off dynamic lighting, the stuff that appears when like a rocket is fired within TFC... totally unnecessary in Ricochet (except for dark corners of rc_stalkyard).
[*]'GL_ZTRICK 1' slight speed increase when on, may cause flickering on some video cards as it makes use of a trick that allows the renderer to avoid clearing the depth buffer every frame. This results in a slight speed increase, with a trade off for less depth precision but for Ricochet this will be ok.
[*]'GL_TEXSORT 0' turning this on will decrease speed, setting this to 1 and also setting gl_overbright 1 will brighten the display considerably, but incurs a speed penalty. When gl_texsort is non-zero, the engine will sort by texture, so as to minimize the overhead of changing the active texture. When it is disabled, the engine will render all the surfaces in front to back order, with no texture sorting, and with multitexturing, if available.
[*]'CL_HIMODELS 0' slight speed increase if off, and uses slightly lower quality player models which for Ricochet isn't that necessary again.
[*]'R_SHADOWS 0' disables shadows when off, and speeds up video considerably. For Ricochet this is a good move as there isn't really any ground over the major portion of the map to display shadows on anyway.
[*]'GL_ROUND_DOWN 3' valid values are 0 - 3, 3 is fastest. OpenGL only allows textures to repeat on power of two boundaries (32, 64, 128, etc), but there are a number of textures that are repeated at 24 or 96 pixel boundaries. These need to be either stretched out to the next higher size, or shrunk down to the next lower. By default, they are filtered down to the smaller size, but you can cause it to use the larger size if you really want by using "gl_round_down 0". This will generally run well on a normal 4 MB 3dfx card, but for other cards that have either worse texture management or slower texture swapping speeds, there are some additional settings that can drastically lower the amount of textures to be managed
[*]'R_DRAWVIEWMODEL 0' 0 disables drawing the gun model in your hand, and improves speed a lot.
[*]'R_DECALS 1' 1 disables drawing of explosion blast marks and player logo decals and improves speed. This is very useful if you have bad lag as it will not keep trying to get a lot of decals and display them constantly, thus providing a smooth game. It may also be advisable to perform 'CL_ALLOWDOWNLOAD 0' as it will prevent any requests for pedical.wad from the server.
[*]'R_TRACEGLOW 0' keep this off or suffer a performance hit.
[*]'HISOUND 0' enables/disables high-quality sound (22kHz sampling cl_rate), and when disabled sets the lower 11kHz sampling which may reduce CPU load.
[*]'LOADAS8BIT 1' forces the loading of sounds as lower-quality 8-bit samples (as opposed to 16-bit, the default).
[*]'S_REVERB 0' will turn off reverb sound effects which may help to reduce CPU load.
[*]'S_A3D 0' disables A3D support which is useful if your sound card doesn't support it, and may still improve speed if it does.
[*]'S_EAX 0' disables EAX support which is useful if your sound card doesn't support it, and may still improve speed if it does.
[*]Start by enabling network graphic display, using net_graph 1, so that you can see how your network traffic is doing. (using net_graph 0 will turn it off again when your done). If you want to see full information, you can do net_graph 3.
[*]'CL_RATE' is the client's rate at sending updates, as far as I remember, and there are certain ranges that should be considered when setting this: Dialup = 1000 - 5000, ISDN = 4000 - 8000, DSL/Cable = 5000 - 20000, for higher connections 20000+. I'd suggest starting small and then upping the number by 500 at a time to see if it gets worse or still allows for a good connection. This is denoted by the two green bars at the top of the net_graph.
[*]Check your 'FPS_MAX' variable. There are some suggestions that you do not need to change this from the default, but it's handy to know what it is, because this will be the maximum FPS you can achieve in game.
[*]'PUSHLATENCY' should be a negative value that equates to approximately half value of your 'PING'.
[*]Try not to use Software Rendering if you can help it as this will produce a form of lag in itself, unless you machine is a top of the range spec. OpenGL/Direct3D will take advantage of a video cards own rendering features that will reduce the burden on your processor and so make for a faster game. If your current drivers do not support OpenGL/Direct3D consider trying to locate the latest drivers and see if they are now compatible.
[*]Try using a lower screen resolution. The less display/update that needs to be done to you screen means the less has to be rendered. The higher the resolution, the more pixels, the more work needs to be done by your PC.
[*]'R_DYNAMIC 0' turns off dynamic lighting, the stuff that appears when like a rocket is fired within TFC... totally unnecessary in Ricochet (except for dark corners of rc_stalkyard).
[*]'GL_ZTRICK 1' slight speed increase when on, may cause flickering on some video cards as it makes use of a trick that allows the renderer to avoid clearing the depth buffer every frame. This results in a slight speed increase, with a trade off for less depth precision but for Ricochet this will be ok.
[*]'GL_TEXSORT 0' turning this on will decrease speed, setting this to 1 and also setting gl_overbright 1 will brighten the display considerably, but incurs a speed penalty. When gl_texsort is non-zero, the engine will sort by texture, so as to minimize the overhead of changing the active texture. When it is disabled, the engine will render all the surfaces in front to back order, with no texture sorting, and with multitexturing, if available.
[*]'CL_HIMODELS 0' slight speed increase if off, and uses slightly lower quality player models which for Ricochet isn't that necessary again.
[*]'R_SHADOWS 0' disables shadows when off, and speeds up video considerably. For Ricochet this is a good move as there isn't really any ground over the major portion of the map to display shadows on anyway.
[*]'GL_ROUND_DOWN 3' valid values are 0 - 3, 3 is fastest. OpenGL only allows textures to repeat on power of two boundaries (32, 64, 128, etc), but there are a number of textures that are repeated at 24 or 96 pixel boundaries. These need to be either stretched out to the next higher size, or shrunk down to the next lower. By default, they are filtered down to the smaller size, but you can cause it to use the larger size if you really want by using "gl_round_down 0". This will generally run well on a normal 4 MB 3dfx card, but for other cards that have either worse texture management or slower texture swapping speeds, there are some additional settings that can drastically lower the amount of textures to be managed
[*]'R_DRAWVIEWMODEL 0' 0 disables drawing the gun model in your hand, and improves speed a lot.
[*]'R_DECALS 1' 1 disables drawing of explosion blast marks and player logo decals and improves speed. This is very useful if you have bad lag as it will not keep trying to get a lot of decals and display them constantly, thus providing a smooth game. It may also be advisable to perform 'CL_ALLOWDOWNLOAD 0' as it will prevent any requests for pedical.wad from the server.
[*]'R_TRACEGLOW 0' keep this off or suffer a performance hit.
[*]'HISOUND 0' enables/disables high-quality sound (22kHz sampling cl_rate), and when disabled sets the lower 11kHz sampling which may reduce CPU load.
[*]'LOADAS8BIT 1' forces the loading of sounds as lower-quality 8-bit samples (as opposed to 16-bit, the default).
[*]'S_REVERB 0' will turn off reverb sound effects which may help to reduce CPU load.
[*]'S_A3D 0' disables A3D support which is useful if your sound card doesn't support it, and may still improve speed if it does.
[*]'S_EAX 0' disables EAX support which is useful if your sound card doesn't support it, and may still improve speed if it does.