To ease myself back in I've brought on yet another GLQuake build to use as a baseline for experiments. This is a handy thing to have as it means that I can try out new stuff without polluting the main RMQ or DirectQ codebases, and I can determine if a problem is a code problem or an RMQ/DirectQ problem if something works in one but not in the other.
Some things I've done with it so far include:
- I've ported my water and sky shaders from HLSL to GLSL. The water shader is unlikely to make it into RMQ owing to weird interactions with wateralpha and fog, but the sky shader has already been brought over.
- A new replacement timer from some code found on the Microsoft Research site. This has 100 nanosecond resolution and suffers from none of the problems that QueryPerformanceCounter has. Obviously it's Windows only so it's not for RMQ, but is a candidate for DirectQ.
- I've successfully decoupled the client timer from the server timer and now have them both advancing at different rates. They're still in a single thread, but otherwise it means that the server can now be locked to a max of 72 FPS while the client can run as fast as it wants. This is a candidate for both engines.
- Some significant speed and memory usage improvements when loading maps. I'm not certain if this code would be useful for either engine just yet.