tmp64 / BugfixedHL-Rebased

Bugfixed and improved Half-Life
GNU General Public License v3.0
108 stars 22 forks source link

How to contribute #138

Closed gustavomassa closed 1 year ago

gustavomassa commented 2 years ago

Hello,

I would like to contribute, is there any doc/guide/wiki on how to contribute?

I will focus on the client-side, mainly AG-related features. What is the best development workflow using vscode and steam on Windows? Do I need Steam to test the client? I can also use Linux if it's easier to debug/test. I have to compile the client-dll as debug mode and replaced it inside the Steam HL folder for every change?

My first idea is to create some cvar for "fix_crossbow" or "crossbow_quickshot", we already use a lot of alias and binds on the config for the crossbow quick shot, so why not implement a feature for it? We already have the "auto_jump" and "+ljump" features

tmp64 commented 2 years ago

Hi!

The project uses CMake to generate platform-specific files.

On Windows you will need Visual Studio 2017 or newer. Windows XP support requires v141_xp toolchain (available in VS 2017 or 2019). I personally use VS 2019. VS Code may not work (depending on what compilers it uses, BHL only supports MSVC).

On Linux you will need to install cmake, make, gcc, g++ and gcc-multilib for 32-bit support. CMake must be 3.15 or newer but I recommend 3.16+ for PCH support. CMake must be configured with -DCMAKE_TOOLCHAIN_FILE=[repo]/cmake/ToolchainLinuxGCC.cmake (or "Use toolchain file" in cmake-gui) to make it correctly build 32-bit libs. I also suggest using Ninja instead of Makefiles (-GNinja CMake argument) as it can more efficiently use multiple CPU cores. I use CLion as the IDE.

To install the built libraries, you need to copy them to Half-Life/valve_addon/cl_dlls/client.{dll,so} (client) or HLDS/valve/dlls/hl.{dll,so} (server). This can be automated if you enable AUTO_DEPLOY CMake option and create PublishPathClient.txt or PublishPathServer.txt with path to cl_dlls or dlls in the CMake build directory.

You need to have Steam running to play the game.

A note about "crossbow_quickshot". "+ljump" was added for players that can't easily press Ctrl + Space (e.g. on a small netbook keyboard).

Auto BHopping is a somewhat controversial feature (and bhop scripts were blocked on engine level). It's included because it's been a major part of AG/HL for years and it can't be done manually (requires frame perfect inputs). But crossbow quickshooting, in my opinion, is way too much to add and can be considered some kind of cheating.

I will not accept any macros that may give unfair advantage to players against ones that don't use them.