# Open Scrantic：重建 Johnny Castaway 屏幕保护程序引擎

> 以 Rust 重建 Johnny Castaway 屏幕保护程序引擎，作者明确披露使用 REA 与 Claude Code。它读取原始文件，在现代桌面上运行恢复的动画脚本及按日历推进的故事状态；文档保留实现差异与有限测试范围，未确立完整行为等价。

- 类型：案例
- 目标：应用
- 类别：REA 社区调查案例
- 关联：作者报告的混合工具流程
- 来源复核于：2026-10-18
- 收录于：2026-10-18
- 原始资源：<https://github.com/glauberlima/open-scrantic>
- 一手来源：<https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/open-scrantic-screensaver-case/>
- 记录 JSON：<https://awesomerea.org/resources/open-scrantic-screensaver-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/open-scrantic-screensaver-case/index.md)

## 使用条件与局限

- **前提条件：**构建固定使用 Rust 1.99.1；Cargo 声明最低 Rust 1.99 和 edition 2024。项目借助 winit、softbuffer 和 rodio 面向 Windows、macOS 和 Linux。Linux 构建还需 ALSA 开发头文件及 pkg-config。
- **前提条件：**运行时需将另行取得的 SCRANTIC.SCR、RESOURCE.MAP 和 RESOURCE.001 放在可执行文件旁。README 中的大小和 SHA-256 标识预期的原始文件；加载器实际检查已知程序字符串／布局，而非整文件哈希。不支持任意原版构建。选项与故事状态存放在 SCRANTIC.INI 中，正常退出时保存。
- **范围：**审阅版本为 v0.3.0：这是 Windows 3.1 屏幕保护程序引擎重建，并非游戏移植。作者报告通过反汇编恢复格式及 TTM/ADS 脚本语义，由人工指导 REA／Claude Code 工作并对照原版检查。
- **局限：**刻意差异包括全帧重绘、线条／椭圆可能相差一个像素、结尾场景选择次数上限，以及固定两秒的标题显示。可选的去抖色和柔化音频默认关闭。未实现原设置对话框和密码功能，也未实现此屏保未使用的动态调色板、256 色及 ADS 变量功能。
- **测试证据：**无界面测试运行 6,000 步并要求完成三个场景，不与原版画面比较。未设置 OPEN_SCRANTIC_DATA 时，依赖数据的测试直接返回、不作检查；其他测试覆盖解析和运算。CI 检查格式、lint、三平台构建及 --version，不运行 cargo test 或原始数据播放。快照输出用于检查，不是自动对照原版的验证器。
- **许可：**MIT 覆盖项目源码，不覆盖原可执行文件内容、美术、脚本或声音；使用者须取得适当授权后自行提供这些内容。作者将其描述为独立、非商业的互操作项目，未获 Sierra／Dynamix 背书。

## 一手来源

1. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/README.md>
2. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/docs/ENGINE.md>
3. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/docs/ARCHITECTURE.md>
4. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/Cargo.toml>
5. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/rust-toolchain.toml>
6. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/LICENSE>
7. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/assets/exe.rs>
8. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/assets/mod.rs>
9. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/engine/mod.rs>
10. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/engine/config.rs>
11. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/engine/rng.rs>
12. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/examples/snapshot.rs>
13. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/.github/workflows/ci.yml>
14. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/CHANGELOG.md>

## 同分区更多条目：应用

- [Screen Studio：作者报告的 REA 自动缩放规则研究](https://awesomerea.org/zh/resources/screen-studio-auto-zoom-case/index.md) · 案例
- [Claude Code 背景动画实验室：基于 REA 调查的桌面动画重新实现](https://awesomerea.org/zh/resources/claude-code-background-lab-case/index.md) · 案例
- [Notes CSV 导出：作者报告的 REA 重建验收器检查](https://awesomerea.org/zh/resources/rea-notes-csv-oracle-mutation-case/index.md) · 案例
- [Sofa TV Browser：面向遥控操作的 BrowseHere 替代应用](https://awesomerea.org/zh/resources/sofa-tv-browser-browsehere-case/index.md) · 案例
- [FastView-REA：Fast View 5 的 Rust 重建](https://awesomerea.org/zh/resources/fastview-rea-relay-analysis-rebuild-case/index.md) · 案例
- [DiskLens：基于 WinDirStat 研究的磁盘用量分析器](https://awesomerea.org/zh/resources/disklens-windirstat-rea-case/index.md) · 案例

## 关于此条目

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