Finetuning Half-Life

Everyone can play Half-Life on a dual-core Pentium1000 with 80 gigs of RAM, a T3, and a GeForce so powerful it turns your room into a sauna. There's no trick to that. Playing Half-Life on a Pentium 2 with a modem, that's a little more sophisticated. This guide is to teach you the lost commands and tweaks that you might just need to know.

This is a work in progress, and is so far quite small. Post up tricks you might remember, and I'll add them in. Linking sofware is also on the to-do list.

Graphical tweaking

A GeForce 2 is all you really need to comfortably play Half-Life at, say, 800x600, but it might take some work to beef it up. The magic word here is RivaTuner (which I hear also works on ATI cards, but cannot verify). RivaTuner allows you to easily tweak some settings with your card, OpenGL, and DirectX. Some of them can have a big impact, such as the overclock settings--all conventional overclocking rules apply, so don't mess with those unless you know at least enough to not blow it up. We'll discuss them now:


You've probably heard of people who have water cooling systems and speeds well and above safe values. We're not going to be emulating them. Overclocking can be done by the driver, or directly adjusted on the card--it's your choice, and both choices are offered by RivaTuner as well as some drivers. If you want to know the exact maximum speed you can set your card to, be prepared to test. Traditionally you start overclocking the memory (which in the RivaTuner overclock menu is the bottom slide) by 5MHz until one of your testing programs (todo--find a good one to suggest) starts to glitch. Then you knock it back down to a stable number and repeat the process with the core (the upper slide). If that's too much work, usually a 10% increase is safe, though if you don't have a fan on the card or a case fan in your computer you should probably get one. One final downside is that it's suppossed to shorten the lifespan of your card, though I've not had problems. Normally I wouldn't worry about that, but if you're playing Half-Life on a GeForce 2, money might be a concern for you.

OpenGL and DirectX 

There are a few settings hidden in drivers and the like which modify how DirectX and OpenGL render things. These can be altered to make the game FASTER, and since drivers are not all uniform, I'll again assume RivaTuner.

Clicking the OpenGL button in the RivaTuner driver menu opens up a window with all sorts of tabs and options. Click around. Some tweaks are obvious, like slider bars with quality on one side and performance on the other. For OpenGL, the defaults are often just fine, but you might want to look at the vsync option. When an image is drawn on your monitor (some 60 times a second), between each drawing there's a pause. That pause is usually when a game writes a new image, and the game might be waiting around for that pause instead of doing more useful things. By turning vsync off you tell the game to write the new image immediately, which makes everything smoother--except your image. As a direct result of not waiting, the monitor will often draw part of one frame and part of the new frame, causing a shearing effect. Some people aren't bothered by that. Some people don't think it's worth it.

The DirectX button offers more settngs to tweak. One that almost always helps is in the vsync tab, and it's NOT disabling vsync. By default, the prerender limit is probably set to three. For a slow PC, bump that down to 1. If you don't use DirectX because there's a massive delay between when you hit a key and when your guy moves, that setting is likely the cause. And of course there are a few options that let you sacrifice quality for speed. Click around and see what you find.


These mostly apply for CS. The early CS models had a lower poly count, so they were less taxing on cards. Also, removing the left handed weapon models (or right if you play left handed) is suppossed to ease the burden on your RAM. Packs exist to replace both of them (todo--find packs or upload mine), but beware--some servers refuse to let people have custom models, as they can be easily abused.

Connection tweaking

Not everyone has a T3, and even if you do, it might not be all it can be...

Firewalls, routers, and other NAT problems

If you have a firewall running (For God's sake people, you should) or a home router, you can run into problems. Depending on your network, you can shave off quite a few ms by forwarding the Half-Life ports to your Half-Life computer (UDP 27005, though you may want to route more). And of course you'll have to unblock Half-Life or its ports in order to play. The disadvantage? Forwarding ports to one computer denies them to any others. Using this trick, you and a friend can't both play on your cable connection.

cl_cmdrate, cl_updaterate, rate, net_graph

Any modemer like me should know these by heart. "net_graph 1" offers a nice graph to help you identify what's going on with your connection (other numbers are valid; 3 gives you raw numbers). Green dots are good, yelow dots and red dots are bad, and the height of the dots gives you a graph of your ping over time. Ideally you want a flat green line. Rolling green hills means you should play with cl_updaterate or cl_cmdrate. Without getting into the specifics of UDP, the occasional lost or late packet (red & yellow) isn't bad. A graph sprinkled with red and yellow is, and if tweaking the other settings doesn't help, the only real fix is to find another server or get a new ISP.

cl_updaterate and cmdrate adjust how often you send and receive packets from the server. For tweaking a GOOD computer, it would probably be best to set these to your framerate, or to something that divides into it. For tweaking a slow one, you'll want to limit these to prevent them from saturating your connection. Simple rule: if your net graph has hills, try lowering these two settings. Otherwise, don't. Be forewarned--servers can override these and force slow people to lag out.

Rate of course adjusts how much data you send and receive. Some people have lots of success playing with this, carefully watching net_graph for changes in their game. I never did, and I think that my low cmdrate and updaterate settings ursurp this one. There are also questions regarding how our network full of LAN servers handle this.

More to come.

© 2003-2024 Steamless CS Project Team