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, 云资产清单, 可视化界面, 数据擦除, 无后门, 游戏开发, 游戏资产迁移, 网络流量审计, 逆向工具, 逆向工程