Froelich131 wrote:Physics are a lot different. Sorry Colorpinoint - Grenades don't go super far anymore.
You pretty much need a perfect emulation of the physics due to the nature of the protocol, unless of course you're happy with your input lagging behind a bit and letting the server calculate your physics for you. As the code is GPLv3, you can just pinch the code from Pyspades.
ALSO FUCK __MACOSX DIRECTORIES AND FUCK YOU APPLE FOR RUINING THE ZIP FORMAT BY SHITTING ALL OVER IT WITH THOSE STUPID THINGS
Anyhow, I'm going to see how well this runs.
EDIT: OK, it runs fairly well... when turned up to 11 (but no AA as this GPU doesn't support it) it's not amazing in terms of framerate, but when turned down to 1 it runs at a sold 60fps (I think) on an Intel HD 3000.
Let's take a look!
- Turning Lighting up to High is the biggest bottleneck. Medium and Low give similar performance levels, so just set this to Medium unless you have a really good GPU or can handle ~10fps.
- The second-biggest FPS hit is the Shader Effects option. Setting this to Low and lighting to Medium gives you good performance (Shaders = Low, Lighting = High is also OK for performance and looks nice), and you can just turn everything else on...
- ...except Global Illumination. It doesn't actually work. All it does is gets rid of the ambient component so everything that's shadowed is black. Iceball's ambient occlusion (courtesy of melchips, method courtesy of lots of people) does a MUCH better job. Turn it off.
I'd like to point out a bit about global illumination. While I'm not much of an expert on the subject, I do know what the hell I'm talking about.
For a cheap GI approximation, Ambient Occlusion is the best... whatever the hell it actually IS. What it ISN'T is Radiosity.
And no, I mean regular pre-baked AO, not SSAO. That shit really chugs this GPU.
(EDIT: Apparently this does do at least *some* AO stuff, although it would be nice to do a form of AO for the shadows.)
Unlike AO, I actually know what Radiosity is, and 3 methods of calculating it. It's a GI method for calculating diffuse lighting, and was used in the original Quake.
Firstly there's the perfect calculation, where you get an n x n matrix and calculate the inverse. The problem with that method is that n is usually something like 10,000, and so you end up with a really, really big matrix that chews up gigs of RAM. Plus it's the slowest method.
Secondly, there's incremental radiosity, where you calculate several iterations until the difference between iterations is virtually nil. It's where you look at each point and calculate how much light is coming from all the other points.
Finally, there's Instant Radiosity, where you spam Virtual Point Lights (VPLs), say, 64, from a given source light and other VPLs, and then you can calculate diffuse stuff from that. This would be the best choice, but a good heuristic will be necessary.
Rizki: Set AA to Off.