本页目录

匕首雨 Unity 重制版(Daggerfall Unity)

daggerfall-unity · Interkarma/daggerfall-unity

由 Daggerfall Workshop 使用 Unity 引擎对《上古卷轴2:匕首雨》进行的开源重制。可在 Windows、Linux、Mac 上跨平台运行,无需模拟器;现代引擎与光照改善画面,支持高分辨率宽屏,也可选择 320x200 或 640x400 的 VGA 复古模式,并提...

策略 多人对战 自研引擎 Python 网络联机 ECS 架构 渲染技术 高级
★ Stars 3,577 Forks 437 License MIT 更新 2026-11-09

国内开发环境适配

Windows
AI 推断/待核验
Linux
官方声明支持
macOS
AI 推断/待核验
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
需从源码自行构建:依赖 CMake、较新的 C++ 编译器、Python 3、Qt、OpenGL 及相关开发库,国内拉取 GitHub 仓库与 pip/apt 依赖可能较慢,建议配置镜像源;此外必须自备正版《帝国时代》系列游戏素材才能运行,具体构建步骤与平台支持范围请以官方文档为准(待核验)。

中文项目介绍

openage 属于「用开源引擎重写经典商业游戏」这一流派,和 OpenRA、OpenMW、OpenSAGE、OpenTTD、OpenRCT2 是同一类思路的工程:它并不分发任何一款新游戏,而是重新实现《帝国时代》《帝国时代 II(HD)》以及《星球大战:银河战场》所共用的 Genie 引擎。玩家手里必须先拥有任意一份原版或决定版游戏,项目自带的内容转换脚本会把原版的图像、音效等资源转成 openage 自己的格式,再交给新引擎加载运行。因此它的定位更接近「引擎与工具链」而不是「可直接下载开玩的免费游戏」:仓库里没有素材,也没有成品战役,能提供的是对即时战略游戏底层机制的一次彻底重写。

从目标清单可以看出项目的野心。开发组希望最终呈现尽量还原原版的手感与观感,但明确承认原版行为大多没有文档,只能靠推测与实验逼近;同时他们不打算复刻那些纯粹折磨玩家的历史限制,例如最多只能框选 30 个单位这类人为约束。内容层面采用自研的 nyan 配置语言(SFTtech 的另一个项目)来描述单位、科技与资源,让 Mod 制作比改动原版数据文件更简单。游戏内计划集成类似 Blender 的 Python 控制台与 API,AI 脚本同样用 Python 编写,理论上可以直接接上机器学习库做实验。多人对战、基于 Haskell 主服务器的匹配与排名系统也在路线图上。反过来,项目也划出了清晰的边界:不追求与原版联机兼容,也不追求二进制兼容,只会提供单向的地图/存档/任务转换工具。

核心功能

核心特性

技术栈是这个仓库最值得研究的部分。引擎核心用 C++ 编写,README 中标注为 C++26 标准;Python 3 负责脚本层、媒体转换、游戏内控制台和部分代码生成;两者之间通过 Cython 做胶水层。图形界面使用 Qt6,构建系统是 CMake,渲染基于 OpenGL 与自写着色器,音频采用 Opus 编码,内容与 Mod 配置走 nyan。项目的 GitHub topics 里还出现了 entity-component-system,说明其内部模拟走的是 ECS 式架构。这个技术组合在开源游戏项目里相当少见:既想要 C++ 的性能与底层控制,又想保留 Python 的迭代速度与可扩展性,代价是构建依赖多、编译门槛高。

需要特别提醒的是项目当前状态。README 用醒目段落说明「gameplay 目前基本不可用」:开发组为了长期的可扩展性,重写了内部游戏模拟(游戏状态的实现方式),并主动废弃了此前那个临时但勉强能跑通的版本。这次重构的意义在于终于能真正消费转换后的资源包和 nyan API,但代价是单位如何行动这类最基础的行为需要重新实现。所以如果只是想「玩一局帝国时代」,现在下载会失望;如果关心的是引擎架构、资源格式转换、脚本绑定这些工程问题,它反而是一个很好的观察样本。

技术架构分析

技术要点

构建与平台情况如下。源码构建的标准流程是克隆仓库、按 doc/building.md 安装各平台依赖,然后执行 ./configure --download-nyan 与 make,最后进入 bin 目录运行 ./run main;首次运行需要用转换脚本把原版资源导入。项目也提供了用 Docker 构建运行的方式。CI 徽章覆盖 Debian Sid、Ubuntu 26.04 LTS、macOS 以及 Windows Server 2019/2022,说明这几类系统上都有持续构建验证。分发方面,Linux 建议先查 repology 看发行版是否已有包,官方暂不提供 deb、rpm、Flatpak、snap 或 AppImage;Windows 可在 releases 页面获取安装包;macOS 目前没有打包,只能自行编译。官方也强调推荐从源码构建以获得最新状态。

适合谁来读这份代码?一是对 RTS 引擎内部结构好奇的开发者,可以看它如何用 ECS 组织游戏状态、如何用 nyan 描述内容数据、如何用 Cython 把 C++ 核心暴露给 Python;二是想学习「兼容层式重写」方法论的人,对照 OpenRA、OpenMW 的做法会很有启发;三是做资源逆向与格式转换的工具作者,媒体转换脚本是现成参考。注意事项同样明确:项目仍在活跃重构,接口和目录结构可能变动;编译期资源占用不小;没有原版游戏就无法得到可运行的内容;不要期待开箱即玩的成品。

开源许可证与版权说明

许可证标识:MIT。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目