不要使用 GitHub 的 ZIP 压缩包,因为其中不包含外部依赖;运行游戏仍需从 Half-Life 复制 valve 目录;在非 x86 或 64 位引擎上需自行编译 Half-Life SDK 才能加载游戏。
xash3d-fwgs
FWGS活跃维护兼容 GoldSrc 的跨平台游戏引擎,用来运行《半条命》及其模组,并支持在移动端和现代系统上二次开发。
Xash3D FWGS engine
git clone --recursive https://github.com/FWGS/xash3d-fwgs
./waf configure
./waf buildREADME 未说明具体显存或 GPU 型号要求;支持 x86 与 ARM 架构,可在 Windows、Linux、BSD、Android 上运行,并提供软件渲染器。
兼容 Half-Life 引擎的开源游戏引擎,跨平台运行并扩展多人联机与渲染能力
兼容 GoldSrc 的跨平台游戏引擎,用来运行《半条命》及其模组,并支持在移动端和现代系统上二次开发。
核心能力
- 支持 Steam Half-Life HLSDK 2.5 游戏内容
- 跨平台支持 Windows、Linux、BSD、Android 的 x86 与 ARM
- 提供 OpenGL、GLESv1、GLESv2 和软件渲染器
- 支持多主服务器、语音聊天、GoldSrc 协议与 IPv6
- 虚拟文件系统支持 .pk3 与 .pk3dir 及大小写不敏感模拟
容易踩的坑
- continuousXash3D FWGS Continuous master Buildpre-release最新正式版2026-11-06 · 2026-11-06 01:05 UTC
buildnum 4237
- continuous-new_vgui_support_apiXash3D FWGS Continuous new_vgui_support_api Buildpre-release2026-10-17 · 2026-10-17 18:37 UTC
查看更新说明
buildnum 4200
- continuous-unvendoringXash3D FWGS Continuous unvendoring Buildpre-release2026-10-03 · 2026-10-03 13:31 UTC
查看更新说明
buildnum 4203
- v0.20Xash3D FWGS 0.20 release!pre-release2019-12-03 · 2019-12-03 01:26 UTC
查看更新说明
You may probably be looking for continuous builds
https://github.com/FWGS/xash3d-fwgs/releases/tag/continuous
I'm proud to announce new release of Xash3D FWGS that we're worked on for a year and a half. In 2018 after a release of Xash3D 0.99, which was heavily refactored by it's author, Unkle Mike, we decided to drop old engine code base and fork engine again. We called it "New Engine" and now it's mostly ready to be stable.
WARNING: backup your *.cfg files, because configs made by Xash3D FWGS 0.20 may not work on old version and maybe vice versa.
Change log:
What an upgrade to latest Unkle Mike's Xash3D gave us?:- Better network prediction and overall multiplayer improvements.
- Implementation of some features of Quake and DarkPlaces engines(BSP2, WAD2, alias models support) that made for Unkle Mike's QuakeWrapper project, which is a wrapper that allows play Quake and it mods directly on Xash3D engine.
- Implementation of Unkle Mike's extended studiomodel format: boneweights for engine and inverse kinematics, procedural bones and other for mod developers.
- Implementation of extended map format made on top of original Half-Life's BSP30(per-vertex lighting, extended clipnodes, etc). BSP31 is now obsolete.
- Enhanced compatibility with GoldSrc: support for original Half-Life game saves and compatibility fixes.
- Customization and in-game downloads support.
- Extended API updated that made some Xash3D-specific mods are incompatible.
- ...and many other, you can read changelogs on Xash3D's ModDB page.
Fork changes:
- RefAPI for multiple rendering API support. (#31)
- OpenGL renderer split from engine to
ref_gllibrary. (#31) - Software renderer implementation. Incomplete, but playable. repo
- Improved platform backend system that allows better portability across different systems.
- Extension on library naming, that allows mod developers to distribute libraries for different operating systems and architectures in same archive. (doc)
- Changed ABI for Android ports: removed hardfp support, AArch64 is now mandatory. (#90)
- New library for common code: libpublic, that holds custom Xash3D's CRT, math and hashing functions.
- New touch control:
_wheel. Works like a mouse wheel. - Temporary support for legacy 48 protocol.
- Restored Half-Life: Blue Shift maps support that were removed by Unkle Mike.
- Restored On-Screen Keyboard implementation for ports that don't have normal hw or sw keyboards.
- Support of AArch64, MIPS, Elbrus CPU architectures.
- Support of MotoMAGX platform.
- Support for systems with limited system memory. Allows to run complete engine on 32 megabytes of RAM. (#83)
- Support for embedded Linux, i.e. using
evdev,fbdevandalsadirectly instead of SDL2. (#83) - Support for legacy SDL1.2.
- Support for compressed ZIP/PK3 archives. (#41)
- Support for reading and writing PNG. (#48)
- Some behavior changes to match GoldSrc.
- Fixes for different UB and preventing them to be compiled.
- Linux client builds are now distributed as AppImages for i686 and x86_64 and dedicated builds as just semi-static binary.
- Android builds now has special mod hacks, that allows to play some simple mods so special launchers aren't required. list
- Android builds also now has GLES1 and GLES2 renderers enabled. Choose from game menu or by passing
-ref gles1or-ref gles2to eng
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
[!CAUTION] Only download Xash3D FWGS from official sources. Third-party builds, "modded launchers", "optimized" repacks and random mirrors are frequently bundled with malware, miners, spyware and credential stealers. We cannot vouch for anything we did not build. Get official binaries only from the releases page.
Xash3D FWGS Engine
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.
Donate
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.
Fork features
- Steam Half-Life (HLSDK 2.5) support.
- Crossplatform and modern compilers support: supports Windows, Linux, BSD & Android on x86 & ARM and many more.
- Better multiplayer: multiple master servers, headless dedicated server, voice chat, GoldSrc protocol support and IPv6 support.
- Multiple renderers support: OpenGL, GLESv1, GLESv2 and Software.
- Advanced virtual filesystem:
.pk3and.pk3dirsupport, compatibility with GoldSrc FS module, fast case-insensitivity emulation for crossplatform. - Mobility API: better game integration on mobile devices (vibration, touch controls).
- Different input methods: touch and gamepad in addition to mouse & keyboard.
- TrueType font rendering, as a part of mainui_cpp.
- External VGUI support module.
- PNG & KTX2 image format support.
- Ogg Vorbis (
.ogg) & Ogg Opus (.opus) audio formats support. - A set of small improvements, without broken compatibility.
Installation & Running
- Get Xash3D FWGS binaries: you can use testing build or you can compile engine from source code.
- Copy engine binaries to some directory.
- Copy
valvedirectory 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 copyvalvedirectory as all game resources located there. - Run the main executable (
xash3d.exeor AppImage).
For additional info, run Xash3D with -help command line key.
Android
- Install the APK file.
- Copy
valvedirectory to a folder namedxashin the Internal storage. - Run games from within the app.
Reporting issues
- Issues are accepted in both English and Russian.
- They are only accepted if you run legally acquired product (e.g. Half-Life in Steam).
Contributing code
- Check the CONTRIBUTING.md file.
Build instructions
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!
Prerequisites
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.
Windows (Visual Studio)
- Install Visual Studio.
- Install latest Python OR run
cinst python.installif you have Chocolatey. - Install latest Git OR run
cinst git.installif you have Chocolatey. - Download SDL2 development package for Visual Studio.
- Clone this repository:
git clone --recursive https://github.com/FWGS/xash3d-fwgs. - Make sure you have at least 12GB of free space to store all build-time dependencies: ~10GB for Visual Studio, 300 MB for Git, 100 MB for Python and other.
GNU/Linux
Debian/Ubuntu
-
Only for 32-bit engine on 64-bit x86 operating system:
- Enable i386 on your system:
$ sudo dpkg --add-architecture i386. - Install
aptitude(why?):$ sudo apt update && sudo apt upgrade && sudo apt install aptitude - Install development tools:
$ 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.
- Enable i386 on your system:
-
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.
- Install development tools:
-
Clone this repostory:
$ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
RedHat/Fedora
-
Only for 32-bit engine on 64-bit x86 operating system:
- Install development tools:
$ 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 libatomic.i686. - Set PKG_CONFIG_PATH environment variable to point at 32-bit libraries:
$ export PKG_CONFIG_PATH=/usr/lib/pkgconfig.
- Install development tools:
-
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.
- Install development tools:
-
Clone this repostory:
$ git clone --recursive https://github.com/FWGS/xash3d-fwgs.
Android (Windows/Linux/macOS)
-
Install Android Studio (or the command line tools).
-
Install Python (at least 2.7, latest is better).
-
Install Git.
-
Install Ninja.
-
Install CMake (for some dependencies).
-
Clone this repostory:
$ git clone --recursive https://github.com/FWGS/xash3d-fwgs. -
Check out nanogl and gl4es, they aren't checked out by default:
$ git submodule update --init --checkout 3rdparty/nanogl 3rdparty/gl4es/gl4es.
iOS/iPadOS
-
Install Xcode from the appstore.
-
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 SDL2and 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. -
Check out nanogl, it isn't checked out by default:
$ git submodule update --init --checkout 3rdparty/nanogl.
Building
Windows (Visual Studio)
- Open command line.
- Navigate to
xash3d-fwgsdirectory. - (optional) Examine which build options are available:
waf --help. - Configure build:
waf configure --sdl2=c:/path/to/SDL2. - Compile:
waf build. - Install:
waf install --destdir=c:/path/to/any/output/directory.
Linux
If compiling 32-bit on amd64, make sure PKG_CONFIG_PATH from the previous step is set correctly, prior to running configure.
- (optional) Examine which build options are available:
./waf --help. - Configure build:
./waf configure(you need to pass-8to compile 64-bit engine on 64-bit x86 processor). - Compile:
./waf build. - Install:
./waf install --destdir=/path/to/any/output/directory.
Android (Windows/Linux/macOS)
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.
iOS/iPadOS (MacOS only)
- (optional) Examine which build options are available:
./waf --help. - Configure build:
./waf configure --ios --enable-bundled-deps --sdl2 (path/to/SDL2.framework), set--ios-simulatorinstead of--iosif you want to build for simulator. - Compile
./waf build. - Navigate to
buildand copy your compiled SDL2.framework there, then add your game dylibs tobuild/ios/libs/(gamedir)/(dlls/cl_dlls)(You can also runscripts/ios/buildhlsdk.shinstead to automatically create an ipa with hlsdk dylibs) - Run
scripts/ios/createipa.shto create an installable ipa
Running tests
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.