humbertoschoenwald/shar

GitHub: humbertoschoenwald/shar

SHAR 是一个以 C++ 为核心的 Unreal Engine 游戏迁移与重现项目,旨在教育和业余场景下实现经典游戏的互操作性研究。

Stars: 0 | Forks: 0

# SHAR Unreal 迁移 本仓库包含一个公开安全的 Unreal 迁移工作区,用于以 C++ 为主、兼容 Blueprint 的 SHAR 重现流水线。 SHAR 是一个独立的教育和业余互操作性项目。它需要用户提供合法的游戏访问权限,且不分发游戏源码、可执行文件、资产或内部文档。 该仓库跟踪第一方源码、迁移脚本、清单、目标契约和 Unreal 项目壳文件。提取的传统游戏资产、启动器/游戏安装文件、本地工具包、生成的 Unreal 状态、缓存以及导入的二进制输出均保留在本地,并被刻意忽略。 ## 布局 ``` assets/ Local legacy and staged assets. Entire root ignored by Git. cache/ Local generated state. Ignored by Git. docs/adrs/ Repository architecture decision records. docs/bibliography/ Public source references and third-party notices. scripts/ Migration, manifest, and planning scripts. src/pipeline/ Canonical pipeline manifests and target contracts. src/shar/ C++ Unreal project. Blueprint-compatible by design. src/shar-better-modding/dist/ Public user installer bundle tracked in full. tools/ Local tools and third-party drops. Entire root ignored by Git. lucas-mod-launcher/ Local launcher and game installation. Entire root ignored by Git. ``` ## 当前架构 - Unreal 项目类型:以 C++ 为主。 - Blueprint 兼容性:保留用于内容创作、DataAssets、任务、UI 和调优。 - 传统资产:仅作为本地证据;不作为公开仓库内容。 - 导入策略:首先暂存清单,其次进行 Unreal 导入,最后对有歧义的转换通道进行人工审查。 - 任务逻辑:在生成 Blueprints 或 DataAssets 之前,先转换至中间表示。 ## 验证 在仓库根目录下运行验证。根目录管理着共享的格式化工具和 linter 配置:`Cargo.toml`、`pyproject.toml`、`.rustfmt.toml`、`.markdownlint-cli2.jsonc`、`.editorconfig` 以及根目录的忽略文件。请勿在带有陈旧的项目级 linter 假设的嵌套项目文件夹中执行验证。 ``` # Rust workspace 检查。本地自动化可能会通过绝对 # toolchain 路径调用 Cargo,但 repository 文档应保持可移植性。 cargo fmt --all --check cargo clippy --workspace --all-targets -- -D warnings cargo test --workspace # 当安装了 ruff/pyright 时,Python 检查会使用根目录 pyproject.toml。 python -m ruff check . python -m ruff format --check . pyright # Repository/project 验证器。 python scripts/validate_adr_taxonomy.py python src/shar-better-modding/scripts/validate_mod_packages.py python src/shar-better-modding/scripts/validate_repository.py # 公共 SHAR Better Modding 安装程序 bundle。 python scripts/build_dist.py ``` `src/shar-better-modding` 刻意在其自身的 crate lint 块中允许使用 unsafe Rust,因为它构建了一个带有导出和 IAT hook 的 Windows 运行时 DLL。对于普通的 crate,根工作区默认依然禁止使用 unsafe 代码。 ## 资产政策 请勿提交提取的游戏资产、Pure3D fixture、启动器/游戏安装文件、本地工具或生成的 Unreal 二进制文件。`.gitignore` 保护了这些完整的根目录,以便本地研究文件可以保持可用状态,而不会成为 Git 的候选对象。明确的例外是完整的 `src/shar-better-modding/dist/` 用户安装程序包。请参阅 `docs/adrs/repository/layout/layout-and-asset-boundary.md`、`THIRD_PARTY_NOTICES.md` 和 `docs/bibliography/README.md` 以获取管理边界和来源参考。 ## 许可边界 仓库拥有的原创材料基于 `LICENSE` 中的 MIT 许可证提供。第三方名称、软件、游戏数据、美术作品、音频、文档和引擎材料保留其各自所有者的条款,本仓库不会对其进行重新授权。 合理使用和互操作性例外需视具体情况而定;非商业意图并非一揽子授权。请参阅 `docs/adrs/legal/reverse-engineering/educational-interoperability-and-user-responsibility.md`。
标签:C++, Python, Rust, Unreal Engine, 云资产清单, 可视化界面, 数据擦除, 无后门, 游戏开发, 游戏资产迁移, 网络流量审计, 逆向工具, 逆向工程