openblack/openblack
GitHub: openblack/openblack
openblack 是经典游戏《Black & White》(2001)的开源引擎重制项目,使用现代 C++ 与渲染技术让玩家在现代平台上重温原作。
Stars: 1529 | Forks: 93
# openblack
[](https://github.com/openblack/openblack/actions/workflows/ci-vcpkg.yml?query=branch%3Amaster+event%3Apush)
[](https://github.com/openblack/openblack/actions/workflows/packaging.yml?query=branch%3Amaster+event%3Apush)
[](https://github.com/openblack/openblack/stargazers)
[](https://discord.gg/5QTexBU)
[](LICENSE.md)
openblack 是一个 [Black & White (2001)](https://en.wikipedia.org/wiki/Black_&_White_(video_game)) 的开源重制项目,使用现代 C++ 和现代渲染引擎编写。
你仍然需要拥有原版游戏资源才能使用它。有关如何提取资源的说明,请参阅下文。
# 预编译二进制文件
为了让你无需自行编译即可使用 openblack 的最新构建版本,我们通过我们的测试服务提供了预编译的二进制文件。
[-333333)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-ubuntu-24.04-master.zip)
[-eeeeee)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-macos-13-master.zip)
[-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-windows-latest-master.zip)
[](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-arch-linux-pkg-master.zip)
## 实验性
以下内容被标记为实验性。它们仅包含最基本的设置,例如编译和渲染系统。
请不要期望在毫无费力和自行打补丁的情况下就能顺利启动它们。
[-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-x86-windows-master.zip)
[-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-arm64-windows-master.zip)
[](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-android-apk-master.zip)
[](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-ios-arm64-vcpkg-master.zip)
[-333333)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-x86-linux-master.zip)
[-333333)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-arm64-linux-master.zip)
[](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.flatpak.zip)
[](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.AppImage.zip)
[](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.snap.zip)
# 编译
使用以下命令克隆代码:`git clone --recursive https://github.com/openblack/openblack.git`
如果你忘记添加 `--recursive`,你必须在 `openblack/` 目录下额外运行 `git submodule update --init`。
## 使用 vcpkg 进行配置(推荐新用户使用)
获取所有必需依赖项的最简单方法是通过 [vcpkg](https://github.com/Microsoft/vcpkg),它包含了一个 [清单文件](https://github.com/microsoft/vcpkg/blob/master/docs/users/manifests.md)。
在任何平台上最简单的入门方法是让 CMake 和 vcpkg 为你处理所有依赖项和配置。为此,你需要选择 `"ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg)` 预设。对于高级用户,还提供了其他可用的预设。
### Visual Studio Code
* 安装 [Visual Studio Code](https://code.visualstudio.com/Download)
* 安装 [C++ Extension](vscode:extension/ms-vscode.cpptools)
* 在 Linux 上可能不需要此扩展
* 根据你的平台安装相应的编译器
* Linux 上使用 GNU 或 Clang 编译器
* Windows 上使用 Visual Studio 的 MSVC(参见 Visual Studio)
* Mac 上使用 Clang 编译器
* 安装 [CMake Tools Extension](vscode:extension/ms-vscode.cmake-tools)
* 安装 [CMake 3.20+ 版本](https://cmake.org/download/)
* 你只需[在 Visual Studio Code 中直接打开 `openblack` 文件夹并选择一个预设](https://devblogs.microsoft.com/cppblog/cmake-presets-integration-in-visual-studio-and-visual-studio-code/)。
### Visual Studio 2022
* 安装 [Visual Studio](https://visualstudio.microsoft.com/downloads/)
* 为你的版本选择合适的 MSVC C++ 组件
* 为你的版本选择合适的 Windows SDK 组件
* 选择适用于 Windows 的 C++ CMake 工具组件
* 你只需[在 Visual Studio 中直接打开 `openblack` 文件夹并选择一个预设](https://devblogs.microsoft.com/cppblog/cmake-presets-integration-in-visual-studio-and-visual-studio-code/)。
### Clion
* 安装 [Clion](https://www.jetbrains.com/clion/download/)
* 你只需[在 CLion 中直接打开 `openblack` 文件夹并选择一个预设](https://www.jetbrains.com/help/clion/cmake-presets.html)。
### XCode
* 安装 [XCode](https://apps.apple.com/ca/app/xcode)
* 使用 [homebrew](https://brew.sh/) 安装 homebrew 依赖项:`brew install cmake ninja pkg-config`
* 安装 cmake 后运行 `sudo xcode-select --reset`
* 你需要在 GUI 中或使用命令行参数 `--preset xcode-vcpkg` 通过 cmake 预设 `xcode-vcpkg` 进行配置
### Android Studio
* 安装 [Android Studio](https://developer.android.com/studio)
* 安装最新的 SDK 和至少为 23 的 NDK
* 从 `android` 目录中打开 openblack
* 在项目设置中配置 SDK 和 NDK
* 执行 gradle 配置,这将运行 cmake 配置并编译 vcpkg 依赖项
* 为虚拟设备或连接的设备构建项目
* 目前需要用户使用 adb 将游戏资源上传到 `/data/local/tmp/bw` 并执行 `chmod -R a+wrx /data/local/tmp/bw`
### Web Assembly
* 获取 [emsdk](https://github.com/emscripten-core/emsdk)
* 将 emsdk 的目录添加为 `EMSDK` 环境变量。
* 运行 `emsdk install latest`
* 运行 `emsdk activate latest`
* 构建 `emscripten-vcpkg` 预设
### 命令行
* 你常用的编译工具链。
* Ubuntu / Debian:`# apt install build-essential cmake ninja-build`
* Arch Linux / Manjaro:`# pacman -S base-devel cmake ninja`
* 你可以使用 `cmake --preset` 生成 cmake 构建预设,并使用 `cmake --list-presets` 列出预设
## 使用系统依赖进行配置(推荐打包者使用)
如果你不想使用 vcpkg;CMake 将使用系统库或手动指定的包目录。
只要它们提供 [合适的配置文件](https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html#libraries-providing-config-file-packages),CMake 就能找到所需的库。
### Arch Linux
从 AUR 安装 [openblack-git](https://aur.archlinux.org/packages/openblack-git/),它可以直接为所有 Arch Linux 派生发行版(如 Manjaro)进行编译和安装。这将需要使用 pacman 来安装所有必需的依赖项。
要使用的前缀是 `"linux-system-deps" - Linux (System Deps)`
# 从原版游戏中提取资源文件
如前所述,运行 openblack 需要原版游戏资源。由于这些数据受版权保护,**我们不会提供它们**,所以请不要索要。这里有一份从原版游戏中提取它们的指南。
## 前置条件
你需要以下内容:
- 原版安装程序(通常在 CD 中)
- [官方补丁 1.10](https://www.bwgame.net/downloads/v1-1-patch.129/)
- [官方补丁 1.2](https://www.bwgame.net/downloads/v1-2-patch.130/)
- 非必需(但不会影响提取):[非官方补丁 1.42](https://www.bwgame.net/downloads/black-white-unofficial-patch-v1-42.1418/)
**不要安装 1.3,它是一个用于增加 P5 Power Glove 支持的补丁,通常不稳定**
## 安装
### 在 Windows 上
1. 从安装程序安装游戏,记住安装目录
(`C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\` 是默认路径)
2. 安装官方补丁 1.10(在同一目录下)
3. 安装官方补丁 1.2(在同一目录下)
### 在 Linux 和 macOS 上
如果你在 Linux 或 macOS 上运行,你可以使用 Wine 安装游戏
([WineHQ 上的应用页面](https://appdb.winehq.org/objectManager.php?sClass=application&iId=156))。
1. 安装 `wine`
2. 从包含安装程序的目录中运行 `wine Setup.exe`,不要
更改安装路径
3. 从包含第一个补丁的目录中运行 `wine Black_White_Patch_v1.100.exe`
(如果文件名不完全一致,请相应调整命令)
4. 从包含第二个补丁的目录中运行 `wine black_white_patch_v1_20.exe`
(同样需要调整)
5. 如果你想安装非官方补丁,它需要 .NET 2.0,
可以通过 `winetricks dotnet20sp2` 安装(你应该先安装
`winetricks`)
所有文件都应安装到以下目录:
`~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White`
## 获取资源
你感兴趣的文件夹是安装目录中的 `Audio`、`Data` 和 `Scripts` 文件夹。你可以直接从那里使用它们,或者将它们复制到你选择的位置。
### 原地使用
如果你想从那里使用它们,请记住在安装步骤中选择的安装目录,除非你更改了它,否则它应该是:
- 或者是 `C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\`
- 或者是 `~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White`
这就是你将提供给 openblack 的路径(使用 `-g` 标志)。
如果你更愿意复制数据(例如,如果你想卸载原版游戏),只需将 `Data` 和 `Scripts` 文件夹复制到所需的新位置,并将此位置的路径提供给 openblack(使用 `-g` 标志)。
# License
openblack 作为开源软件在 [GPL v3](https://opensource.org/licenses/gpl-3.0.html)
许可证下发布,请参阅项目根目录中的 [license](./license) 文件以获取完整的许可文本。
# 预编译二进制文件
为了让你无需自行编译即可使用 openblack 的最新构建版本,我们通过我们的测试服务提供了预编译的二进制文件。
[-333333)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-ubuntu-24.04-master.zip)
[-eeeeee)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-macos-13-master.zip)
[-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-vcpkg/master/openblack-windows-latest-master.zip)
[](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-arch-linux-pkg-master.zip)
## 实验性
以下内容被标记为实验性。它们仅包含最基本的设置,例如编译和渲染系统。
请不要期望在毫无费力和自行打补丁的情况下就能顺利启动它们。
[-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-x86-windows-master.zip)
[-0078d4)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-arm64-windows-master.zip)
[](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-android-apk-master.zip)
[](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-ios-arm64-vcpkg-master.zip)
[-333333)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-x86-linux-master.zip)
[-333333)](https://nightly.link/openblack/openblack/workflows/ci-cross-compile/master/openblack-arm64-linux-master.zip)
[](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.flatpak.zip)
[](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.AppImage.zip)
[](https://nightly.link/openblack/openblack/workflows/packaging/master/openblack-master.snap.zip)
# 编译
使用以下命令克隆代码:`git clone --recursive https://github.com/openblack/openblack.git`
如果你忘记添加 `--recursive`,你必须在 `openblack/` 目录下额外运行 `git submodule update --init`。
## 使用 vcpkg 进行配置(推荐新用户使用)
获取所有必需依赖项的最简单方法是通过 [vcpkg](https://github.com/Microsoft/vcpkg),它包含了一个 [清单文件](https://github.com/microsoft/vcpkg/blob/master/docs/users/manifests.md)。
在任何平台上最简单的入门方法是让 CMake 和 vcpkg 为你处理所有依赖项和配置。为此,你需要选择 `"ninja-multi-vcpkg" - Ninja Multi-Config (vcpkg)` 预设。对于高级用户,还提供了其他可用的预设。
### Visual Studio Code
* 安装 [Visual Studio Code](https://code.visualstudio.com/Download)
* 安装 [C++ Extension](vscode:extension/ms-vscode.cpptools)
* 在 Linux 上可能不需要此扩展
* 根据你的平台安装相应的编译器
* Linux 上使用 GNU 或 Clang 编译器
* Windows 上使用 Visual Studio 的 MSVC(参见 Visual Studio)
* Mac 上使用 Clang 编译器
* 安装 [CMake Tools Extension](vscode:extension/ms-vscode.cmake-tools)
* 安装 [CMake 3.20+ 版本](https://cmake.org/download/)
* 你只需[在 Visual Studio Code 中直接打开 `openblack` 文件夹并选择一个预设](https://devblogs.microsoft.com/cppblog/cmake-presets-integration-in-visual-studio-and-visual-studio-code/)。
### Visual Studio 2022
* 安装 [Visual Studio](https://visualstudio.microsoft.com/downloads/)
* 为你的版本选择合适的 MSVC C++ 组件
* 为你的版本选择合适的 Windows SDK 组件
* 选择适用于 Windows 的 C++ CMake 工具组件
* 你只需[在 Visual Studio 中直接打开 `openblack` 文件夹并选择一个预设](https://devblogs.microsoft.com/cppblog/cmake-presets-integration-in-visual-studio-and-visual-studio-code/)。
### Clion
* 安装 [Clion](https://www.jetbrains.com/clion/download/)
* 你只需[在 CLion 中直接打开 `openblack` 文件夹并选择一个预设](https://www.jetbrains.com/help/clion/cmake-presets.html)。
### XCode
* 安装 [XCode](https://apps.apple.com/ca/app/xcode)
* 使用 [homebrew](https://brew.sh/) 安装 homebrew 依赖项:`brew install cmake ninja pkg-config`
* 安装 cmake 后运行 `sudo xcode-select --reset`
* 你需要在 GUI 中或使用命令行参数 `--preset xcode-vcpkg` 通过 cmake 预设 `xcode-vcpkg` 进行配置
### Android Studio
* 安装 [Android Studio](https://developer.android.com/studio)
* 安装最新的 SDK 和至少为 23 的 NDK
* 从 `android` 目录中打开 openblack
* 在项目设置中配置 SDK 和 NDK
* 执行 gradle 配置,这将运行 cmake 配置并编译 vcpkg 依赖项
* 为虚拟设备或连接的设备构建项目
* 目前需要用户使用 adb 将游戏资源上传到 `/data/local/tmp/bw` 并执行 `chmod -R a+wrx /data/local/tmp/bw`
### Web Assembly
* 获取 [emsdk](https://github.com/emscripten-core/emsdk)
* 将 emsdk 的目录添加为 `EMSDK` 环境变量。
* 运行 `emsdk install latest`
* 运行 `emsdk activate latest`
* 构建 `emscripten-vcpkg` 预设
### 命令行
* 你常用的编译工具链。
* Ubuntu / Debian:`# apt install build-essential cmake ninja-build`
* Arch Linux / Manjaro:`# pacman -S base-devel cmake ninja`
* 你可以使用 `cmake --preset` 生成 cmake 构建预设,并使用 `cmake --list-presets` 列出预设
## 使用系统依赖进行配置(推荐打包者使用)
如果你不想使用 vcpkg;CMake 将使用系统库或手动指定的包目录。
只要它们提供 [合适的配置文件](https://cmake.org/cmake/help/latest/guide/using-dependencies/index.html#libraries-providing-config-file-packages),CMake 就能找到所需的库。
### Arch Linux
从 AUR 安装 [openblack-git](https://aur.archlinux.org/packages/openblack-git/),它可以直接为所有 Arch Linux 派生发行版(如 Manjaro)进行编译和安装。这将需要使用 pacman 来安装所有必需的依赖项。
要使用的前缀是 `"linux-system-deps" - Linux (System Deps)`
# 从原版游戏中提取资源文件
如前所述,运行 openblack 需要原版游戏资源。由于这些数据受版权保护,**我们不会提供它们**,所以请不要索要。这里有一份从原版游戏中提取它们的指南。
## 前置条件
你需要以下内容:
- 原版安装程序(通常在 CD 中)
- [官方补丁 1.10](https://www.bwgame.net/downloads/v1-1-patch.129/)
- [官方补丁 1.2](https://www.bwgame.net/downloads/v1-2-patch.130/)
- 非必需(但不会影响提取):[非官方补丁 1.42](https://www.bwgame.net/downloads/black-white-unofficial-patch-v1-42.1418/)
**不要安装 1.3,它是一个用于增加 P5 Power Glove 支持的补丁,通常不稳定**
## 安装
### 在 Windows 上
1. 从安装程序安装游戏,记住安装目录
(`C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\` 是默认路径)
2. 安装官方补丁 1.10(在同一目录下)
3. 安装官方补丁 1.2(在同一目录下)
### 在 Linux 和 macOS 上
如果你在 Linux 或 macOS 上运行,你可以使用 Wine 安装游戏
([WineHQ 上的应用页面](https://appdb.winehq.org/objectManager.php?sClass=application&iId=156))。
1. 安装 `wine`
2. 从包含安装程序的目录中运行 `wine Setup.exe`,不要
更改安装路径
3. 从包含第一个补丁的目录中运行 `wine Black_White_Patch_v1.100.exe`
(如果文件名不完全一致,请相应调整命令)
4. 从包含第二个补丁的目录中运行 `wine black_white_patch_v1_20.exe`
(同样需要调整)
5. 如果你想安装非官方补丁,它需要 .NET 2.0,
可以通过 `winetricks dotnet20sp2` 安装(你应该先安装
`winetricks`)
所有文件都应安装到以下目录:
`~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White`
## 获取资源
你感兴趣的文件夹是安装目录中的 `Audio`、`Data` 和 `Scripts` 文件夹。你可以直接从那里使用它们,或者将它们复制到你选择的位置。
### 原地使用
如果你想从那里使用它们,请记住在安装步骤中选择的安装目录,除非你更改了它,否则它应该是:
- 或者是 `C:\\Program Files (x86)\\Lionhead Studios\\Black & White\\`
- 或者是 `~/.wine/drive_c/Program Files (x86)/Lionhead Studios Ltd/Black & White`
这就是你将提供给 openblack 的路径(使用 `-g` 标志)。
如果你更愿意复制数据(例如,如果你想卸载原版游戏),只需将 `Data` 和 `Scripts` 文件夹复制到所需的新位置,并将此位置的路径提供给 openblack(使用 `-g` 标志)。
# License
openblack 作为开源软件在 [GPL v3](https://opensource.org/licenses/gpl-3.0.html)
许可证下发布,请参阅项目根目录中的 [license](./license) 文件以获取完整的许可文本。标签:Bash脚本, C++, OpenGL, Vulkan, 开源重制, 数据擦除, 游戏引擎