FWGS/xash3d-fwgs

GitHub: FWGS/xash3d-fwgs

Xash3D FWGS 是一个跨平台的开源游戏引擎,兼容并扩展 Half-Life 引擎,让玩家和开发者能在现代设备和操作系统上运行及开发经典游戏和 Mod。

Stars: 2379 | Forks: 384

# Xash3D FWGS 引擎 Xash3D FWGS icon [![GitHub Actions 状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5fa7ea7b44180708.svg)](https://github.com/FWGS/xash3d-fwgs/actions/workflows/c-cpp.yml) [![FreeBSD 构建状态](https://img.shields.io/cirrus/github/FWGS/xash3d-fwgs?label=freebsd%20build)](https://cirrus-ci.com/github/FWGS/xash3d-fwgs) \ [![Discord 服务器](https://img.shields.io/discord/355697768582610945?logo=Discord&label=International%20Discord%20chat)](http://xash.su/discord/) [![俄语 Telegram 群组](https://img.shields.io/badge/Russian_speakers_Telegram_chat-gray?logo=Telegram)](https://t.me/flyingwithgauss) \ [![下载每日构建](https://img.shields.io/badge/downloads-testing-orange)](https://github.com/FWGS/xash3d-fwgs/releases/tag/continuous) Xash3D ([发音](https://ipa-reader.com/?text=ks%C9%91%CA%82) `[ksɑʂ]`) FWGS 是一个游戏引擎,旨在提供与 Half-Life 引擎的兼容性并对其进行扩展,同时为游戏开发者提供熟知的工作流。 Xash3D FWGS 是由 Unkle Mike 开发的原始 [Xash3D 引擎](https://www.moddb.com/engines/xash3d-engine) 的深度修改分支。 ## 分支特性 * 支持 Steam 版 Half-Life (HLSDK 2.5)。 * 跨平台和现代编译器支持:支持 Windows、Linux、BSD 和 Android,适用于 x86 和 ARM 架构,以及[更多平台](Documentation/ports.md)。 * 更好的多人游戏体验:多个主服务器、无头专用服务器、语音聊天、[GoldSrc 协议支持](Documentation/goldsrc-protocol-support.md)以及 IPv6 支持。 * 支持多种渲染器:OpenGL、GLESv1、GLESv2 和软件渲染。 * 高级虚拟文件系统:支持 `.pk3` 和 `.pk3dir`,兼容 GoldSrc FS 模块,跨平台的快速大小写不敏感模拟。 * Mobility API:在移动设备上提供更好的游戏集成(振动、触摸控制)。 * 不同的输入方式:除鼠标和键盘外,还支持触摸和手柄。 * TrueType 字体渲染,作为 mainui_cpp 的一部分。 * 外部 VGUI 支持模块。 * 支持 PNG 和 KTX2 图像格式。 * 支持 Ogg Vorbis (`.ogg`) 和 Ogg Opus (`.opus`) 音频格式。 * [一系列小改进](Documentation/),且不破坏兼容性。 ## 安装与运行 0. 获取 Xash3D FWGS 二进制文件:你可以使用[测试](https://github.com/FWGS/xash3d-fwgs/releases/tag/continuous)构建版本,也可以从源代码编译引擎。 1. 将引擎二进制文件复制到某个目录。 2. 将 [Half-Life](https://store.steampowered.com/app/70/HalfLife/) 中的 `valve` 目录复制到包含引擎二进制文件的目录中。 如果你的 CPU 不是 x86 兼容的,或者你运行的是 64 位版本的引擎,你可能需要编译 [Half-Life SDK](https://github.com/FWGS/hlsdk-portable)。 此仓库包含我们的 HLSDK 分支以及恢复的 Half-Life 资料片和一些 Mod 的源代码。 你仍然需要复制 `valve` 目录,因为所有游戏资源都位于该目录中。 3. 运行主可执行文件(`xash3d.exe` 或 AppImage)。 如需更多信息,请使用 `-help` 命令行参数运行 Xash3D。 ### Android 0. 安装 APK 文件。 1. 将 `valve` 目录复制到内部存储中名为 `xash` 的文件夹中。 2. 在应用内运行游戏。 ## 问题反馈 * 接受英语和俄语的问题反馈。 * 只有在你运行合法获取的产品(例如 Steam 上的 Half-Life)时,才会接受反馈。 ## 构建说明 我们使用 Waf 构建系统。如果你有一些与 Waf 相关的问题,我建议你阅读 [Waf Book](https://waf.io/book/)。 **注意:切勿使用 GitHub 的 ZIP 压缩包。GitHub 不包含我们使用的外部依赖项!** ### 前置条件 如果你的 CPU 是 x86 兼容的,并且你使用的是 Windows 或 Linux,我们默认构建 32 位代码。这是为了保持与 Steam 版 Half-Life 及基于其引擎的游戏的兼容性。 即使 Xash3D FWGS 支持目标为 64 位,你也无法在不从源代码重新编译的情况下加载游戏! 如果你的 CPU 不是 x86 兼容的,或者你决定构建 64 位版本的引擎,你可能需要编译 [Half-Life SDK](https://github.com/FWGS/hlsdk-portable)。 此仓库包含我们的 HLSDK 分支以及恢复的 Half-Life 资料片和一些 Mod 的源代码。 #### Windows (Visual Studio) * 安装 Visual Studio。 * 安装最新版的 [Python](https://python.org) **或者** 如果你安装了 Chocolatey,运行 `cinst python.install`。 * 安装最新版的 [Git](https://git-scm.com/download/win) **或者** 如果你安装了 Chocolatey,运行 `cinst git.install`。 * 下载 [SDL2](https://libsdl.org/download-2.0.php) 的 Visual Studio 开发包。 * 克隆此仓库:`git clone --recursive https://github.com/FWGS/xash3d-fwgs`。 * 确保你至少有 12GB 的可用空间来存储所有构建时依赖项:Visual Studio 约 10GB,Git 约 300MB,Python 和其他约 100MB。 #### GNU/Linux ##### Debian/Ubuntu * 仅适用于 64 位 x86 操作系统上的 32 位引擎: * 在你的系统上启用 i386:`$ sudo dpkg --add-architecture i386`。 * 安装 `aptitude` ([为什么?](https://github.com/FWGS/xash3d-fwgs/issues/1828#issuecomment-2415131759)):`$ 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`。 * 设置 PKG_CONFIG_PATH 环境变量以指向 32 位库:`$ export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig`。 * 对于 64 位 x86 系统上的 64 位引擎和其他非 x86 系统: * 安装开发工具:`$ sudo apt install git build-essential python libsdl2-dev libfreetype6-dev libopus-dev libbz2-dev libvorbis-dev libopusfile-dev libogg-dev`。 * 克隆此仓库:`$ git clone --recursive https://github.com/FWGS/xash3d-fwgs`。 ##### RedHat/Fedora * 仅适用于 64 位 x86 操作系统上的 32 位引擎: * 安装开发工具:`$ 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`。 * 设置 PKG_CONFIG_PATH 环境变量以指向 32 位库:`$ export PKG_CONFIG_PATH=/usr/lib/pkgconfig`。 * 对于 64 位 x86 系统上的 64 位引擎和其他非 x86 系统: * 安装开发工具:`$ sudo dnf install git gcc gcc-c++ SDL3-devel sdl2-compat-devel opus-devel freetype-devel bzip2-devel libvorbis-devel opusfile-devel libogg-devel`。 * 克隆此仓库:`$ git clone --recursive https://github.com/FWGS/xash3d-fwgs`。 #### Android (Windows/Linux/macOS) * 安装 [Android Studio](https://developer.android.com/studio)(或命令行工具)。 * 安装 [Python](https://python.org)(至少 2.7,最新版更好)。 * 安装 [Git](https://git-scm.com/download/win)。 * 安装 [Ninja](https://ninja-build.org/)。 * 安装 [CMake](https://cmake.org/)(用于某些依赖项)。 * 克隆此仓库:`$ git clone --recursive https://github.com/FWGS/xash3d-fwgs`。 #### iOS/iPadOS * 从 App Store 安装 Xcode。 * 安装 [Homebrew 包管理器](https://brew.sh)。 * 通过运行以下命令安装构建依赖项:`brew install python`。 * 克隆 SDL2 仓库 `$ git clone --recursive https://github.com/libsdl-org/SDL.git -b SDL2` 并通过导航到 SDL/Xcode/SDL 打开 Xcode 项目来编译 iOS framework。 * 克隆此仓库:`$ git clone --recursive https://github.com/FWGS/xash3d-fwgs`。 ### 构建 #### Windows (Visual Studio) 0. 打开命令行。 1. 导航到 `xash3d-fwgs` 目录。 2. (可选)查看可用的构建选项:`waf --help`。 3. 配置构建:`waf configure --sdl2=c:/path/to/SDL2`。 4. 编译:`waf build`。 5. 安装:`waf install --destdir=c:/path/to/any/output/directory`。 #### Linux 如果在 amd64 上编译 32 位,请确保上一步中的 `PKG_CONFIG_PATH` 设置正确,然后再运行 configure。 0. (可选)查看可用的构建选项:`./waf --help`。 1. 配置构建:`./waf configure`(如果在 64 位 x86 处理器上编译 64 位引擎,你需要传递 `-8` 参数)。 2. 编译:`./waf build`。 3. 安装:`./waf install --destdir=/path/to/any/output/directory`。 #### Android (Windows/Linux/macOS) 要进行构建,你需要将 `SDL2` 分支的 [SDL](https://github.com/libsdl-org/SDL) 和 `mobile-hacks` 分支的 [HLSDK-portable](https://github.com/FWGS/hlsdk-portable) 仓库克隆到 3rdparty 文件夹中,之后你应该能够从 `android` 目录在 Android Studio 中打开项目,或者手动调用 Gradle 来构建 APK。 #### iOS/iPadOS (仅限 MacOS) 0. (可选)查看可用的构建选项:`./waf --help`。 1. 配置构建:`./waf configure --ios --enable-bundled-deps --sdl2 (path/to/SDL2.framework)`,如果你想为模拟器构建,请设置 `--ios-simulator` 而不是 `--ios`。 2. 编译 `./waf build`。 3. 导航到 `build` 并将你编译好的 SDL2.framework 复制到那里,然后将你的客户端 dylibs 添加到 `build/ios/cl_dlls`,并将任何其他 dylibs 添加到 `build/ios/dlls`(你也可以运行 `scripts/ios/buildhlsdk.sh` 来自动创建一个包含 hlsdk dylibs 的 ipa) 4. 运行 `scripts/ios/createipa.sh` 以创建一个可安装的 ipa
标签:3D渲染, Android游戏, Bash脚本, C/C++, FPS, FWGS, GoldSrc, Half-Life, Linux游戏, OpenGL, UML, Xash3D, 专用服务器, 事务性I/O, 云资产清单, 半条命, 多人游戏, 客户端加密, 客户端加密, 客户端加密, 开源, 模组支持, 游戏开发, 游戏引擎, 移植, 网络安全研究, 逆向工具, 逆向工程