yggdrasil-au/RemakeEngine
GitHub: yggdrasil-au/RemakeEngine
Remake Engine 是一个基于 .NET 10 的跨平台游戏工作流编排引擎,通过配置驱动和脚本扩展实现可重复的游戏修改、资产提取与转换流程。
Stars: 1 | Forks: 0
# Remake 引擎
Remake Engine 是一个可扩展的跨平台编排引擎,用于可重复的游戏工作流。它内置了一个 .NET 10 核心 (**EngineNet**),可以通过命令行界面、TUI 或基于 Avalonia 的 GUI 运行。
## 主要功能
- 由配置驱动,操作定义在 JSON 或 TOML 中(`operations.json` / `operations.toml`)。
- 嵌入式 Lua、JavaScript 和 Python 引擎(重度聚焦于 Lua,对 JS/Python 的支持极少),配备共享的 SDK 辅助工具以及内置的提取/转换操作。
- 跨平台 GUI,支持“全部运行”和启动场景,同时为高级用户提供完整的 TUI 体验。
- 声明式占位符,从 `project.json` 提取值,以将用户特定的路径排除在清单之外。
- 针对常见流水线(QuickBMS、FFmpeg、vgmstream 等)的工具编排。
## 文档
项目文档位于 ,网页版地址为
## 快速开始
### 前置条件
- [.NET SDK 10.0](https://dotnet.microsoft.com/en-us/download/dotnet/10.0)
- git
### 克隆与构建
```
git clone https://github.com/yggdrasil-au/RemakeEngine.git
cd RemakeEngine
# 构建并运行测试(解决方案范围)
dotnet build RemakeEngine.sln -c Debug
dotnet test Unit.Tests/EngineNet.Tests.csproj -c Debug --no-build --logger "trx;LogFileName=test_results.trx"
```
### 使用三种 UX 选项之一运行引擎
```
# 默认入口点(未提供 CLI 参数时自动选择 GUI)
dotnet run -c Release --framework net10.0 --project EngineNet
# 使用 GUI 或交互式 CLI (TUI)
dotnet run -c Release --project EngineNet --framework net10.0 -- --gui
dotnet run -c Release --project EngineNet --framework net10.0 -- --tui
# CLI 示例,非常适合直接操作调用
dotnet run -c Release --project EngineNet --framework net10.0 -- --game_module "EngineApps/Games/demo" --script_type lua --script "{{Game_Root}}/scripts/lua_feature_demo.lua"
```
### 快速演示运行
使用开发验证时的参数运行演示模块的 Lua 功能脚本:
```
dotnet run -c Release --project EngineNet --framework net10.0 -- \
--game_module "./EngineApps/Games/demo" \
--script_type lua \
--script "{{Game_Root}}/scripts/lua_feature_demo.lua" \
--args "[\"--module\", \"EngineApps/Games/demo\", \"--scratch\", \"EngineApps/Games/demo/TMP/lua-demo\", \"--note\", \"Hello from the Lua demo\"]"
```
## 持续集成与发布
`.github/workflows/` 中的 GitHub Actions 工作流负责维护 pull request、SonarCloud 分析和标签发布的健康状态:
| Workflow | Trigger | What it runs |
| --- | --- | --- |
| `build.yml` | 推送到 `main`,PR | Windows 构建,使用托管在 runner 上的扫描器缓存进行 SonarCloud 分析。 |
| `global-release.yml` | 匹配 `v*` 的标签,手动触发 | 在 Windows、macOS 和 Linux 上跨 Debug/Release 进行矩阵构建/测试,然后为六个运行时发布自包含的工件并将其附加到 GitHub Release。 |
| `on commit -- Win64 Build.yml` | 匹配 `win-v*` 的标签,手动触发 | 仅限 Windows 的 Debug/Release 构建 + 测试,随后生成打包好的 `win-x64` 发布工件。 |
在打开 PR 之前,请在本地运行 `dotnet build RemakeEngine.sln` 和 `dotnet test RemakeEngine.sln --nologo`,以便 CI 检查保持通过(绿色)。要进行多平台发布,请推送类似 `v2.5.0` 的标签;若仅限 Windows 版本,请使用 `win-v2.5.0`。工作流会创建发布条目并自动上传压缩后的输出。
## 接口
* **简易 GUI (Avalonia):** 旨在为最终用户提供一种简单的方式,以便为其游戏/模块运行预定义的操作,即只需运行所有主要操作,然后启动游戏。
* **交互式 TUI:** 菜单驱动的体验,列出游戏,提示用户输入,并流式传输操作输出。
* **开发者 CLI:** 直接命令调用,用于定制自动化或模块编写。参数映射到 `operations.(json|toml)` 所使用的相同结构。
## 配置与模块
* `EngineApps/Games//operations.(json|toml)` 定义了游戏/模块的操作。这些文件内部的组控制执行顺序。
* `EngineApps/Games//config.toml` 可以提供脚本和内置操作使用的占位符值。
* `project.json`(如果缺失,首次运行时会自动创建)存储用户特定的设置,例如项目路径和工具覆盖。
* `Tools/` 包含共享的二进制文件或辅助脚本。模块清单声明引擎可以通过 `ToolsDownloader` 下载的依赖项。
这里包含了模式和文档,以帮助在编辑器中编写和验证清单:
* `schemas/operations.toml.md` — 操作文件的综合指南,解释了提示、占位符和操作依赖项
* `schemas/operations.schema.json` — 操作文件 (JSON)
* `schemas/config.schema.json` — 引擎配置
* `schemas/game.schema.json` — 游戏/模块元数据
* `schemas/tools.schema.json` — 工具清单
清单占位符遵循 `{{PlaceholderName}}` 语法,并使用来自引擎配置、模块元数据和 TOML 占位符表的数据进行解析。
## 仓库布局
```
RemakeEngine/
EngineApps/ # Game modules and Registries
Games/ # Game modules
demo/ # Demo game module
operations.toml # Sample operations manifest
config.toml # Sample per-module config
Registries/ # Module, Tool, and Operation registries
Modules/ # Module manifests
Tools/ # Tool dependency definitions
ops/ # Internal operation definitions for built-in actions (eg git download of Modules)
EngineNet/ # C# core engine and CLI entry point
schemas/ # JSON schemas
RemakeEngine.slnx # Solution
```
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解贡献指南、编码标准和发布工作流。修改引擎时,请更新 `EngineNet/specs/` 中匹配的规范,以便文档与实现保持同步。
## 模块许可政策
RemakeEngine 根据 Apache 2.0 授权,可自由使用,包括用于商业项目。
但是,针对受版权保护的游戏或其他专有媒体的模块必须遵守我们的 **非商业模块政策**:
* 若要被列为官方支持的模块,该模块必须使用自定义的非商业许可证。
* 如果模块针对受保护的媒体,除非证明其具有合法许可,否则使用 OSI 批准的商业用途许可证的模块将不会在官方注册表中列出。
有关推荐的许可证文本,请参阅 LICENSE_MODULE_TEMPLATE.md。
## 许可证与法律
引擎核心和本仓库中的所有代码均采用 apache-2.0 许可,但如果模块针对受保护的媒体,则必须使用自定义的非商业许可证。
参见 [LICENCE](LICENCE)
标签:Avalonia UI, CMS安全, DNS 反向解析, DNS解析, FFmpeg, GUI, Homebrew安装, JavaScript, JSON, Lua, .NET 10, Python, Python安全, QuickBMS, rizin, TOML, TUI, 工作流引擎, 开源项目, 数据可视化, 无后门, 格式转换, 流水线工具, 游戏开发, 游戏模组制作, 自动化编排, 资源提取, 逆向工具, 配置驱动