案例
OpenSC4:SimCity 4 的早期开源重新实现
以 Godot 项目和 GDScript 重新实现 SimCity 4,从使用者自有的 SimCity 4 安装目录读取 DBPF 归档、区域文件夹和城市存档。代码可绘制带城市缩略图的区域视图,并依据游戏的 UI 定义生成界面元素,可在 3D 中打开已存城市的地形与水面,还附带用于预览归档子文件的 DAT 浏览器。这是一个早期且已停滞的引擎案例,尚无模拟玩法,并非可替代原版的实现。
使用条件与局限
- 所审阅的 main 快照(2024-03-29)只新增了 README 和 Discord 邀请;最后一次代码改动在 2023-02-17,仓库没有发行版或标签。README 称项目是一个开源“克隆”,旨在利用现代硬件并在其他平台上运行。代码涵盖 DBPF 解析、写死为 Timbuktu 区域的区域视图、城市地形视图和 DAT 浏览器,没有分区、预算或发展模拟;所审文件未说明如何分析 SimCity 4。
- 需要使用者自有的 SimCity 4 安装:启动画面会询问其目录,并检查 SimCity 4.ini、Sound.dat、Intro.dat、SimCity_1.dat 至 SimCity_5.dat 以及 EP1.dat,随后从该目录读取 .sc4 城市存档、config.bmp 和区域音乐。.gitignore 排除了 SimCity 4 数据,但仓库中仍有一个“Graphics Rules.sgr.backup”文本文件,其文件头称由 SC4Launcher 生成。
- 在 Godot 编辑器中从源码运行:README 的步骤是安装 Godot、导入克隆的项目并运行,未指明版本。project.godot 使用 config_version 4,脚本调用 yield、Directory 等 Godot 3 API;仓库不提供导出预设或打包版本。
- 仓库没有测试或 CI 工作流,也未公布与 SimCity 4 行为或输出的对比;本合集未运行该项目。
- GitHub 未检测到许可证,仓库也没有许可证文件;九个 GDScript 文件带有署名“The OpenSC4 contributors”(2023)的 AGPL-3.0-or-later 文件头,utils/logger.gd 则是 KOBUGE Games 的 godot-logger 中采用 MIT 许可的代码。SimCity 4 及其数据的权利仍归其所有者。所审来源未确立 REA 或 AI 的使用。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- BootScreen.gd GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- Region.gd GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- CityView/CityScene/City.gd GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- DATExplorer/SubfilePreview.gd GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- addons/dbpf GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- project.godot GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- .gitignore GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- Core.gd GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
- utils/logger.gd GitHub · OpenSC4-org/OpenSC4 · 修订 fdc90c3
同分区更多条目:游戏
- R.E.L.I.V.E.:Oddworld: Abe’s Oddysee 与 Abe’s Exoddus 引擎的重新实现 · 案例
- Age of Empires Free Software Remake:基于原版数据的重新实现 · 案例
- 《战神》PS2 静态重编译:基于 PS2Recomp 的 Windows 原生移植 · 案例
- RaceWave46:AI 辅助的《Wave Race 64》Windows 重编译 · 案例
- Jazz² Resurrection:《爵士兔 2》的原生 C++ 重新实现 · 案例
- LBA2 Remake:以 TypeScript 和 Three.js 重新实现 Little Big Adventure 1 与 2 · 案例