ReHLDS, Reverse-engineered HLDS
Dear All,
I want to introduce you ReHLDS, reverse-engineered, bugfixed and optimized version of HLDS. Source code Most recent builds (built by CI from the 'master' branch) Now I'll go through project's history and highlight some of its features. Reverse engineering One of the main goals during reverse engineered phase was to achieve the same behaviour as original HLDS has. By 'the same' I mean that ReHLDS should produce data that bit-to-bit equal to data produced by original HLDS when both apps are fed with similar incoming data. This goal was achieved by implementing 'black box' test suite which writes all calls to external functions to file and then uses this file to "replay" recorded scenario. Please notice that "same behaviour" is also related to supporting no-steam clients. Since original HLDS supports only Steam clients, ReHLDS does the same. Later we added optimization/bugfixes that breaks "same behaviour" rule and that's why ReHLDS distribution archive contains two versions of engine, 'pure', which is 'same behaviour' version, and 'bugfixed', which contains optimizations and fixes that break 'same behaviour' rule Bugfixes You may find all fixes by searching usages of 'REHLDS_CHECK' and 'REHLDS_FIXES' defines in the source code. Most fixes are kind of 'avoid buffer overflow', but some interesting bugs like flying players are also fixed Performance optimizations "Hey, let's use SSE for vector math, it will increase performance dramatically" - that was my first thought when I started thinking about the optimization. I was wrong :) Implementing SSE math in several frequently used functions gave ~5-15% boost. Enormous performance gain was achieved by implementing JIT compilation for delta encoder. You may read more about optimizations results here In short: ReHLDS 2+ times faster than original HLDS. It could be almost 3 times faster if necessary optimizations are applied to metamod and gamedll. Why I'm here I'm here for 3 reasons:
FAQ Which OSes are supported? Windows and Linux. No MacOSX yet. Is ReHLDS fully compatible with HLDS and/or AmxModX? It's fully compatible with HLDS 6132 and 6153. It's also compatible with all plugins except ones that do engine memory patching (Orpheu as an example). Is it safe to install it? ReHLDS is not stable yet, especially Linux version. I'm looking for people who can help me with testing. How to install it? You should have working server based on HLDS 6132 or 6153. Download most recent (see Last Modified column) .zip file from artifacts storage and unpack it. Copy bin/[pure|bugfixed]/[engine_i486.so|swds.dll] to your server root. 'pure' version does have the same behaviour as original HLDS, but doesn't have some bugfixes and optimizations 'bugfixed' version contains all optimizations and bugfixes, but should be considered as less stable. How can I help the project? Use it and report bugs :) |
Re: ReHLDS, Reverse-engineered HLDS
Only the official Steam version of HLDS is supported/advertised here.
|
Re: ReHLDS, Reverse-engineered HLDS
Quote:
He just posted a modded version of HLDS just for testing and for people who want to test something new he mentioned that he doesnt support no.steam Great i shall look into the engine too :) |
Re: ReHLDS, Reverse-engineered HLDS
Neat.
|
Re: ReHLDS, Reverse-engineered HLDS
I would love to test this. If your claim of this being 2 x faster than original HLDS is true. Then you might put some life back into this dying game.
|
Re: ReHLDS, Reverse-engineered HLDS
Code:
Distributor ID: Ubuntu PHP Code:
|
Re: ReHLDS, Reverse-engineered HLDS
Quote:
|
Re: ReHLDS, Reverse-engineered HLDS
Quote:
https://forums.alliedmods.net/showpo...9&postcount=10 What's going to happen is: Alfred will ask for dreamstalker's purpose on doing this, and that can be solved by just looking up thread's introduction. :) gg So, get all those damnit things out of here, this is actually insane and really nice. Also, he did it with the same restrictions as default HLDS. In case of allowing no-steam clients, would be easier to install dproto on a legit server? So what is the complain? Is someone here "supporting" this? Is he forcing users to test it? He's providing a nice link which is out of this forum, and everybody here is able to be friendly (like you) with him and help to test him, posting or not here. I mean, I appreciate his work, and also, Valve should do it, since it's providing a lot of fixes that original HLDS should implement. That's more than a valid reason. |
Re: ReHLDS, Reverse-engineered HLDS
All, thank you for your answers!
fysiks, It may violate copyright law, but I'm not going to have discussion about this, because I'm not a lawyer. I'm a developer, who wants to create amazing things. If admins/moders decide that this topic violates something, it will be deleted/trashed. Quote:
|
Re: ReHLDS, Reverse-engineered HLDS
hi DreamStalker,
Just don't understaind your issues on the current HLDS version: v1.1.2.7Stdio 6153 secure (10) FPS drops obviously as a high-latency player connects, where the FPS previously were more stable. While on the original HLDS everybody got a LAG problem, when a high-latency player connected. JIT compilation needs extra layers software like JAVA installed. Also Implementing SSE math. will make ReHLDS less compatible, 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. TjaardA |
All times are GMT -4. The time now is 16:51. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.