View Single Post
DreamStalker
Junior Member
Join Date: Jun 2015
Old 06-21-2015 , 08:50   Re: ReHLDS, Reverse-engineered HLDS
Reply With Quote #12

Hey TjaardA!

Quote:
Originally Posted by TjaardA View Post
Just don't understaind your issues on the current HLDS version: v1.1.2.7Stdio 6153 secure (10)
1. It's not optimized and therefore it wastes CPU time. You may get more FPS or run more servers/slots on the same box if you use ReHLDS.
2. Original HLDS still has some bugs which worsen game experience or which may crash the server.

Quote:
Originally Posted by TjaardA View Post
FPS drops obviously as a high-latency player connects, where the FPS previously were more stable.
Could you please provide numbers (what latency is "high", how many FPS were before/after a high-latency player has joined the server, how did you measure FPS stability). I'm aware of stories that high-latency players increase CPU load on server, but I can't confirm it. Based on my experience, CPU load on server (and therefore FPS stability) depends on how many entities players see. That's why average serverside FPS on maps with huge open spaces and lot of entities (de_aztec for example) is much lower than on narrow-corridors kind of maps (de_dust2)

Quote:
Originally Posted by TjaardA View Post
While on the original HLDS everybody got a LAG problem, when a high-latency player connected.
Please explain what lag problem are you talking about. I played on Half-Life servers with 200+ latency players and I haven't experienced any problems.

Quote:
Originally Posted by TjaardA View Post
JIT compilation needs extra layers software like JAVA installed.
Thanks God we don't need Java to do JITting
We use C++ library called jitasm to generate native code in runtime.

Quote:
Originally Posted by TjaardA View Post
Also Implementing SSE math. will make ReHLDS less compatible.
Not sure what kind of compatibility do you mean. All Intel and AMD CPUs manufactured after 2005 do have SSE2 instructions support. Even my 11-years-old laptop with Windows XP is able to run ReHLDS

Quote:
Originally Posted by TjaardA View Post
Please explain: ReHLDS should produce data that bit-to-bit equal to data
produced by original HLDS when both apps are fed with similar incoming data.
It's better to draw some schemas to explain this. But first of all, If you are not familiar with black-box testing, please read the article on wikipedia

On this picture we feed the same data (green rectangle) to both HLDS and ReHLDS and the same (bit-to-bit equal) result (blue rectangle) are produced by both applications:



If we apply SSE optimizations to ReHLDS and repeat the experiment, we'll get this:


The results are very close to each other (the differences are 154.444 vs 154.445 and 34.541 vs 34.542), but if you serialize both results to set of bytes, they won't be equal.
DreamStalker is offline