Custom Source Engine branch based on Source Engine 2007, currently available on Windows in x86.
Pull this repository with recursive submodules (git clone --recursive
) to clone qpc and game/core folder
Install Visual Studio 2019 Community, Make sure to go to Individual components and install C++ MFC for v142 build tools (x86 and x64)
Install Python, minimum version is 3.6, and make sure to check the "py launcher" option when installing
Run src/_create_allprojects.bat
Open the solution created, and build the "Game" folder in the solution in Release - Win32, or more projects if you want.
Install Perl, open Perl Command Line and enter cpan String::CRC32
.
(Only if you didn't build shadercompile and dx_proxy yet) Run src/_create_coreprojects.bat and build the solution in Release - Win32.
Build shaders by running src/materialsystem/stdshaders/_buildallshaders.bat.
Build stdshader_xxx projects in Visual Studio again.
Linux and MacOS support is currently being worked on in the posix-support branch. If you want to help, See Supporting Non-Windows Platforms.
Edit game/make_dir_junction.bat with your HL2 install directory if needed and Run. This is used so you don't need to add absolute paths into the gameinfo.txt file for loading assets.
Run the game with any one of the game/run_mod_x.bat files
Linux and MacOS support isn't finished, however, it is possible to download one of the auto builds and use Wine or Proton.
Either create system links to Half-Life 2/hl2, episodic, and ep2 to the game/ folder, or set the paths in the gameinfo.txt file
For Wine, run the game with any one of the game/run_mod_x.bat files
For Proton, add game/bin/win32/quiver.exe as a non-steam game, and copy the arguments from any one of the run_mod_x.bat files into steam launch option, and start the game with proton
The Source Engine was built heavily Windows-oriented, as it uses DirectX as it's graphics API which is only available on Windows, Xbox, Xbox 360 and the Xbox One. This is the major obstacle in supporting other platforms. To bring support to other platforms; we need an experienced graphics programmer who can work with OpenGL or Vulkan as these graphics APIs are universal, other than that some platform-specific code may be required.
(unused) Trello