# Snowball War：范围明确的 REA 辅助小游戏重建

> 作者通过 REA 的 Ghidra 工作流调查 DOS 版 Ski or Die 二进制，记录 Snowball War 的规则，再用 Rust 与 SDL2 重建这一小游戏。公开笔记区分恢复的数据表和机制、近似实现以及有意调整的表现效果。

- 类型：案例
- 目标：游戏
- 类别：REA 社区调查案例
- 关联：作者报告的混合工具流程
- 来源复核于：2026-10-17
- 收录于：2026-10-17
- 原始资源：<https://github.com/tuunanet/rea-ski-or-die-reconstruction>
- 一手来源：<https://github.com/tuunanet/rea-ski-or-die-reconstruction/blob/0eac0671c90e21a16e663da7772b60710101ef7f/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/snowball-war-rea-case/>
- 记录 JSON：<https://awesomerea.org/resources/snowball-war-rea-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/snowball-war-rea-case/index.md)

## 使用条件与局限

- **前提条件：**需要用户自备匹配的 DOS/EGA 游戏文件，并用 Python 3 提取素材。Linux 构建使用 Rust stable（作者测试版本为 1.93）、Cargo 和 SDL2 开发库；Cargo.toml 指定 SDL2 绑定版本 0.37。
- **署名：**报告中的分析在解开 EXEPACK 后，通过 REA CLI 使用 Ghidra 12.1.4 和 JDK 21。调用者提供的函数与代码种子属于调用者断言。
- **范围：**只重建 Snowball War，不涵盖其他比赛项目或原引擎；菜单为新写，特写动画也被有意限制在雪堡区域，没有复现原版全部出现位置。
- **局限：**帧率近似为 35 Hz，原伪随机算法未恢复，暂停与退出按键属于近似实现，声音播放尚未实现。
- **许可：**固定版本 LICENSE.md 与 Cargo.toml 提供 MIT OR Apache-2.0 双许可，README 的许可句仅提到 MIT。原美术与音频须另行提取。

## 一手来源

1. <https://github.com/tuunanet/rea-ski-or-die-reconstruction/blob/0eac0671c90e21a16e663da7772b60710101ef7f/README.md>
2. <https://github.com/tuunanet/rea-ski-or-die-reconstruction/blob/0eac0671c90e21a16e663da7772b60710101ef7f/Cargo.toml>
3. <https://github.com/tuunanet/rea-ski-or-die-reconstruction/blob/0eac0671c90e21a16e663da7772b60710101ef7f/LICENSE.md>
4. <https://github.com/tuunanet/rea-ski-or-die-reconstruction/blob/0eac0671c90e21a16e663da7772b60710101ef7f/docs/reverse-engineering-notes.md>
5. <https://github.com/tuunanet/rea-ski-or-die-reconstruction/blob/0eac0671c90e21a16e663da7772b60710101ef7f/tests/gameplay.rs>

## 同分区更多条目：游戏

- [Thyme《将军》引擎重实现](https://awesomerea.org/zh/resources/thyme/index.md) · 案例
- [touhou-engine：用 Python 重实现东方游戏玩法](https://awesomerea.org/zh/resources/touhou-engine-case/index.md) · 案例
- [Untangle：基于 REA 与 Ghidra 证据的浏览器重建](https://awesomerea.org/zh/resources/untangle-rea-evidence-rebuild-case/index.md) · 案例
- [xoreos：BioWare Aurora 引擎家族的开源重新实现](https://awesomerea.org/zh/resources/xoreos-aurora-engine-case/index.md) · 案例
- [z2rs：以模拟器对照逐步重建《塞尔达传说 II》的 Rust 项目](https://awesomerea.org/zh/resources/z2rs-zelda2-reconstruction-case/index.md) · 案例
- [ArkWeb：双游戏动作与碰撞桥接实验](https://awesomerea.org/zh/resources/arkweb-two-game-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
