Xash3D (pronounced [ksɑʂ]) FWGS is a game engine, aimed to provide compatibility with Half-Life Engine and extend it, as well as to give game developers well known workflow.
Xash3D FWGS is a heavily modified fork of an original Xash3D Engine by Unkle Mike.
\
If you like Xash3D FWGS, consider supporting individual engine maintainers. By supporting us, you help to continue developing this game engine further. The sponsorship links are available in documentation.
.pk3 and .pk3dir support, compatibility with GoldSrc FS module, fast case-insensitivity emulation for crossplatform..ogg) & Ogg Opus (.opus) audio formats support.0) Get Xash3D FWGS binaries: you can use testing build or you can compile engine from source code.
1) Copy engine binaries to some directory.
2) Copy valve directory from Half-Life to directory with engine binaries.
If your CPU is NOT x86 compatible or you're running 64-bit version of the engine, you may want to compile Half-Life SDK.
This repository contains our fork of HLSDK and restored source code for Half-Life expansions and some mods.
You still needed to copy valve directory as all game resources located there.
3) Run the main executable (xash3d.exe or AppImage).
For additional info, run Xash3D with -help command line key.
0) Install the APK file.
1) Copy valve directory to a folder named xash in the Internal storage.
2) Run games from within the app.
We are using Waf build system. If you have some Waf-related questions, I recommend you to read Waf Book.
NOTE: NEVER USE GitHub's ZIP ARCHIVES. GitHub doesn't include external dependencies we're using!
If your CPU is x86 compatible and you're on Windows or Linux, we are building 32-bit code by default. This was done to maintain compatibility with Steam releases of Half-Life and based on it's engine games. Even if Xash3D FWGS does support targetting 64-bit, you can't load games without recompiling them from source code!
If your CPU is NOT x86 compatible or you decided build 64-bit version of engine, you may want to compile Half-Life SDK. This repository contains our fork of HLSDK and restored source code for Half-Life expansions and some mods.
cinst python.install if you have Chocolatey.cinst git.install if you have Chocolatey.git clone --recursive https://github.com/FWGS/xash3d-fwgs.$ sudo dpkg --add-architecture i386.aptitude (why?): $ sudo apt update && sudo apt upgrade && sudo apt install aptitude$ sudo aptitude --without-recommends install git build-essential gcc-multilib g++-multilib libsdl2-dev:i386 libfreetype-dev:i386 libopus-dev:i386 libbz2-dev:i386 libvorbis-dev:i386 libopusfile-dev:i386 libogg-dev:i386.Set PKG_CONFIG_PATH environment variable to point at 32-bit libraries: $ export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig.
For 64-bit engine on 64-bit x86 and other non-x86 systems:
Install development tools: $ sudo apt install git build-essential python libsdl2-dev libfreetype6-dev libopus-dev libbz2-dev libvorbis-dev libopusfile-dev libogg-dev.
Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
$ sudo dnf install git gcc gcc-c++ glibc-devel.i686 SDL3-devel.i686 sdl2-compat-devel.i686 opus-devel.i686 freetype-devel.i686 bzip2-devel.i686 libvorbis-devel.i686 opusfile-devel.i686 libogg-devel.i686.Set PKG_CONFIG_PATH environment variable to point at 32-bit libraries: $ export PKG_CONFIG_PATH=/usr/lib/pkgconfig.
For 64-bit engine on 64-bit x86 and other non-x86 systems:
Install development tools: $ sudo dnf install git gcc gcc-c++ SDL3-devel sdl2-compat-devel opus-devel freetype-devel bzip2-devel libvorbis-devel opusfile-devel libogg-devel.
Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Install CMake (for some dependencies).
Clone this repostory: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Install Homebrew package manager.
Install build dependencies by running: brew install python.
Clone the SDL2 repo $ git clone --recursive https://github.com/libsdl-org/SDL.git -b SDL2 and compile the iOS framework by navigating to SDL/Xcode/SDL and opening the Xcode project.
Clone this repository: $ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
0) Open command line.
1) Navigate to xash3d-fwgs directory.
2) (optional) Examine which build options are available: waf --help.
3) Configure build: waf configure --sdl2=c:/path/to/SDL2.
4) Compile: waf build.
5) Install: waf install --destdir=c:/path/to/any/output/directory.
If compiling 32-bit on amd64, make sure PKG_CONFIG_PATH from the previous step is set correctly, prior to running configure.
0) (optional) Examine which build options are available: ./waf --help.
1) Configure build: ./waf configure (you need to pass -8 to compile 64-bit engine on 64-bit x86 processor).
2) Compile: ./waf build.
3) Install: ./waf install --destdir=/path/to/any/output/directory.
To build you should clone SDL from SDL2 branch and HLSDK-portable mobile-hacks branch repositories to 3rdparty folder, after that you should be able to open the project in Android Studio from android directory or manually call Gradle to build the APK.
0) (optional) Examine which build options are available: ./waf --help.
1) Configure build: ./waf configure --ios --enable-bundled-deps --sdl2 (path/to/SDL2.framework), set --ios-simulator instead of --ios if you want to build for simulator.
2) Compile ./waf build.
3) Navigate to build and copy your compiled SDL2.framework there, then add your client dylibs to build/ios/cl_dlls and any other dylibs to build/ios/dlls (You can also run scripts/ios/buildhlsdk.sh instead to automatically create an ipa with hlsdk dylibs)
4) Run scripts/ios/createipa.sh to create an installable ipa
Tests are enabled with --enable-tests passed to ./waf configure and can be run with ./waf --alltests.
This builds both standalone unit tests and a separate engine test binary (xash3d_tests) that embeds engine-level tests. The engine test binary requires no game assets.
$ claude mcp add xash3d-fwgs \
-- python -m otcore.mcp_server <graph>