open-sourcegamerpgunityelder-scrollsrecreation type: concept 创建: 2026-04-10 更新: 2026-04-10
Daggerfall Unity
Unity 引擎重制的《上古卷轴 II:匕首雨》开源复刻,保留原版魅力并修复 Bug、增强画质和画质
基本信息
核心技术点
Unity 引擎架构
- Unity 2021+ C# 项目,标准 Unity 组件架构
DaggerfallUnity 主类管理全局子系统(WorldTime、MaterialReader、MeshReader、SoundReader)
GameManager 单例聚合所有游戏系统
资产读取系统
- MaterialReader(1071 行):读取 Daggerfall 材质数据,支持现代 Shader 增强
- MeshReader(875 行):读取 3D 模型数据(BSP/RMB 格式)
- DaggerfallConnect(External 目录):原生 Arena2 游戏数据文件读写库(C# 绑定)
音频合成系统
AudioSynthesis/ 子系统完整自研:
- Midi/Event/Sequencer:MIDI 事件序列
- Bank/Patches/Sfz/Sf2:音色库支持(SoundFont 2)
- Wave/Riff:WAVE 文件处理
- 完全不需要原版音频文件,自研合成
实体与战斗系统
Game/Entities/:DaggerfallEntity / EnemyEntity / CivilianEntity 类层次
EnemyMotor.cs(1482 行):敌人运动 AI
EnemySenses.cs(965 行):敌人感知(视野、听觉)
WeaponManager.cs(961 行):武器攻击判定
FPSWeapon.cs(760 行):第一人称武器渲染
任务系统(QuestMachine)
Game/Questing/QuestMachine.cs:基于 QRC 任务脚本解析
- QuestMachine 使用 FullSerializer 序列化任务状态
- 支持任务变量持久化到 Quests-GlobalVars 表
- 任务动作系统(Actions/):spawnenemy、playsound、addnpc 等
序列化与存档
SaveLoadManager.cs:完整存档系统,JSON 格式(FullSerializer)
- 分离存档:SaveInfo / SaveData / FactionData / ContainerData / QuestData / DiscoveryData
- 支持快速保存/自动保存
NPC 对话系统
TalkManager.cs(3736 行):最大子系统,NPC 对话/ rumor 系统
TalkManagerMCP.cs:MCP 协议支持(AI NPC 对话)
UI 系统
- 自研 UI 组件系统(非 uGUI):
BaseScreenComponent 基类
DaggerfallUI.cs:Daggerfall 风格 UI 管理
UserInterfaceWindows/:各种窗口(Inventory/Character/Dialog/etc)
大世界系统
ExteriorAutomap.cs(1848 行):室外自动地图
Automap.cs(2733 行):地下城/城市自动地图
PlayerEnterExit.cs(1529 行):场景进出判定
WeatherManager.cs:天气系统
Mod 支持
Assets/Game/Addons/ModSupport/ModManager.cs:模组加载管理
Mod.cs:模组生命周期管理
ModSettings/:模组设置 UI
StreamingAssets/Mods/:模组资产目录
- 支持资产注入替换(AssetInjection)
路径与世界
Arena2Path:指向原版 Daggerfall 资产目录
WorldTime:游戏内时间系统
DaggerfallBankManager:银行系统
玩法特点
- 完整复刻 Daggerfall 所有内容:自由探索、大型城市、复杂任务系统、派系、行会
- 现代引擎增强:宽屏、高分辨率、改良控制、画质增强
- 复古模式:可选 320x200 / 640x400 VGA 调色板
- 活跃 Mod 社区:图形重制、任务包、新地区、新公会
- 需要原版 DOS Daggerfall 资产(Steam 免费)
对公司 AI 游戏的参考价值