AxioDL/metaforce
GitHub: AxioDL/metaforce
《银河战士 Prime》游戏引擎的跨平台原生重实现项目,支持现代操作系统和多种图形 API。
Stars: 662 | Forks: 42
## Metaforce [![Build Status]][actions] [![Discord Badge]][discord]
《银河战士 Prime》的逆向工程与原生重实现。
本项目目前处于 **Alpha** 阶段。
由于项目正在进行大规模改动,目前暂不提供构建版本。
此外,针对《银河战士 Prime》的[匹配反编译](https://github.com/PrimeDecomp/prime)工作也正在进行中。欢迎贡献。
反编译的进展有助于 Metaforce 的错误修复和新功能实现。

### 平台支持
* Windows 10+ (64-bit, D3D12 / Vulkan / OpenGL)
* macOS 10.15+ (Metal)
* Linux (Vulkan / OpenGL)
* 请遵循[此指南](https://github.com/lutris/docs/blob/master/InstallingDrivers.md)为你的发行版配置 Vulkan 及合适的驱动。
### 使用方法
Windows:
- 打开 `metaforce.exe`
macOS:
- 打开 `Metaforce.app`
Linux:
- 确保 AppImage 已被标记为可执行文件:`chmod +x Metaforce-*.AppImage`
- 打开 `Metaforce-*.AppImage`
#### CLI 选项(非详尽)
* `-l`:启用控制台日志记录
* `--warp [worldid] [areaid]`:传送到特定的世界/区域。示例:`--warp 2 2`
* `+developer=1`:启用开发者 UI
### 构建前置条件:
* [CMake 3.25+](https://cmake.org)
* Windows:在 Visual Studio 中安装 `CMake Tools`
* macOS:`brew install cmake`
* [Python 3+](https://python.org)
* Windows:[Microsoft Store](https://go.microsoft.com/fwlink?linkID=2082640)
* 在 `cmd` 中输入 `python`,验证其已添加到 `%PATH%`。
* macOS:`brew install python@3`
* **[Windows]** [Visual Studio 2019 Community](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx)
* 选择 `C++ Development` 并验证以下包已包含在内:
* `Windows 10 SDK`
* `CMake Tools`
* `C++ Clang Compiler`
* `C++ Clang-cl`
* **[macOS]** [Xcode 11.5+](https://developer.apple.com/xcode/download/)
* **[Linux]** 在 Ubuntu 20.04、Arch Linux 及其衍生版上进行了积极测试。
* Ubuntu 20.04+ 软件包
build-essential curl git ninja-build clang lld zlib1g-dev libcurl4-openssl-dev \
libglu1-mesa-dev libdbus-1-dev libvulkan-dev libxi-dev libxrandr-dev libasound2-dev libpulse-dev \
libudev-dev libpng-dev libncurses5-dev cmake libx11-xcb-dev python3 python-is-python3 \
libclang-dev libfreetype-dev libxinerama-dev libxcursor-dev python3-markupsafe libgtk-3-dev
* Arch Linux 软件包
base-devel cmake ninja llvm vulkan-headers python python-markupsafe clang lld alsa-lib libpulse libxrandr freetype2
* Fedora 软件包
cmake vulkan-headers ninja-build clang-devel llvm-devel libpng-devel
* 同样重要的是安装开发者工具和库
sudo dnf groupinstall "Development Tools" "Development Libraries"
### 准备说明
```
git clone --recursive https://github.com/AxioDL/metaforce.git
cd metaforce
```
### 更新说明
```
cd metaforce
git pull
git submodule update --recursive
```
### 构建说明
对于 Windows,建议使用 Visual Studio。请见下文。
#### ninja (Windows/macOS/Linux)
默认使用 `RelWithDebInfo` 进行构建。
```
cmake -B out -G Ninja # add extra options here
cmake --build out --target metaforce hecl visigen
```
#### CMake 配置选项
- 以 Debug 模式构建(运行速度较慢,但回溯信息更完善):`-DCMAKE_BUILD_TYPE=Debug`
- 使用 clang+lld(链接速度更快):`-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++`
- 针对当前 CPU 进行优化(生成的二进制文件不可移植):`-DMETAFORCE_VECTOR_ISA=native`
#### CLion (Windows/macOS/Linux)
*(主要的开发 / 调试 IDE)*
打开仓库的 `CMakeLists.txt`。
可选:通过 `File` > `Settings` > `Build, Execution, Deployment` > `CMake` 配置 CMake 选项。
#### Qt Creator (Windows/macOS/Linux)
通过 File > Open File or Project 打开仓库的 `CMakeLists.txt`。
在 IDE 的 *Projects* 区域配置想要构建的 CMake 目标。
#### Visual Studio (Windows)
确认已安装上述 **构建前置条件** 部分中所有必需的 VS 包。
在 Visual Studio 中打开 `metaforce` 目录(将导入 CMake 配置)。
MSVC 和 clang-cl 配置应会自动导入。
#### Xcode (macOS)
```
cmake -G Xcode ../metaforce
```
然后打开 `metaforce.xcodeproj`
标签:Bash脚本, C++, CMake, DirectX 12, Metal, OpenGL, Vulkan, 云安全监控, 云资产清单, 动作冒险游戏, 原生实现, 开源游戏, 数据擦除, 游戏开发, 游戏引擎复刻, 运行时, 逆向工具, 逆向工程, 银河 Prime, 静态分析, 非官方重制