本页目录

虚幻引擎 1 重实现(SurrealEngine)

SurrealEngine · dpjudas/SurrealEngine

SurrealEngine 用 C++ 重实现虚幻引擎 1(UE1),当前聚焦让《Unreal(Gold)》与《Unreal Tournament(UT99)》可运行,未来或扩展至更多 UE1 游戏。需自备原版游戏;支持 Windows 10+、macOS 15+ 与现代 Linux,显卡需支持 Direct3D 11...

动作游戏 射击 自研引擎 C 音频系统 渲染技术 高级
★ Stars 1,141 Forks 61 License 未明确 更新 2026-11-13

国内开发环境适配

Windows
AI 推断/待核验
Linux
AI 推断/待核验
macOS
AI 推断/待核验
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
仓库以多分支形式承载不同移植,克隆时需拉取全部分支(git clone 后 fetch --all);构建依赖 SDL1.2 或 SDL2,部分分支还需 libav 等库,具体依赖与编译步骤待核验。GitHub 访问与 icculus.org 等外部链接在国内可能不稳定,建议配置镜像或代理。

中文项目介绍

AvP Forever 围绕《Aliens versus Predator》(异形大战铁血战士,1999 年,由 Rebellion 开发)如今可公开获取的游戏源码做长期维护。它并不打算从零重写这款游戏,而是把过去二十多年里分散在不同作者、不同时间点上的移植成果收集进同一个 Git 仓库,建立统一基线后持续整理,最终产出一个能在 Linux 上正常运行的版本,供 Luxtorpeda(在 Linux 上用原生引擎运行 Steam 游戏的兼容工具)使用。

README 把阶段目标写得非常直接:先做出一个「well-working Linux port」。也就是说,仓库当前的重心是移植与工程维护,而不是新增玩法。文档没有对完成度、可玩性做任何承诺,读者不宜把仓库里的分支直接等同于某个已发布的成品。

技术架构分析

技术要点

  • 语言与年代感:主体为 C 语言,代码风格停留在 1999 年前后,属于典型的「老引擎 + 新平台」移植场景。
  • 平台抽象层:Linux/OS X 路线走 SDL1.2,并附带实验性 SDL2 支持;Windows 路线走 Direct3D9;掌机路线走 OpenGL ES。同一个游戏内核被多种后端包裹,是观察渲染/输入抽象层设计的好样本。
  • 多媒体:other/neuromancer/avp 中的改动使用 libav 处理 FMV 播放,体现了老式专有格式向开源解码库迁移的常见做法。
  • 历史工程学:rebase 到官方发布版并保留 blame 信息,本质上是在做「源码考古 + 版本重建」,对理解如何维护无上游支持的旧代码很有参考价值。

补充说明

仓库组织方式:other/* 分支

主分支承载面向 Linux 的移植工作,历史分支则被统一收进 other/* 命名空间,每条分支对应一个旧移植或相关项目。这种组织方式让读者可以在同一仓库里横向比对不同移植的差异,而不必四处翻找 tarball 和 SVN 快照。

一个关键设计是统一基线:几乎所有 other/* 分支都被 rebase 到 Rebellion 官方源码发布版之上(Build 116 或 Build 117),同时尽量保留原始的 git-blame 归属信息。这样每条分支都共享同一个可信起点,每行代码最初出自哪个移植、哪位作者,也还能追溯回去。

各分支的来历与内容

  • other/icculus-releases:收录 icculus.org 上发布的三个快照(avp-20141225、avp-20150214、avp-20170505-a1)。这些 tarball 的内容被 rebase 到官方源码 Build 117 之上,包含基于 SDL1.2 的移植以及实验性的 SDL2 支持,覆盖 Linux 与 OS X。
  • other/avp-source-code-update:来自 Assembla 上 SVN 仓库(^/branches/workbranch/trunk/)的代码,导入 Git 后 rebase 到官方源码 Build 116。这条分支包含面向 Windows XP/Vista/7/8 的移植、Direct3D9 渲染器,以及大量修复与改进。
  • other/icculus-2009:icculus 开发分支到 2009 年 11 月为止的完整历史,从 mbait/avpmp 的 master 分支导入,rebase 到官方源码 Build 116。
  • other/icculus-releases-rebased-1:把 icculus 快照重新 rebase 到 other/icculus-2009 之上。分支末端指向的代码树与 other/icculus-releases 相同,区别只在于历史记录更完整、更细致。
  • other/neuromancer/avp:从 neuromancer/avp 的 master 分支导入,rebase 到 other/icculus/release-rebased-1。分支里包含为 MorphOS 发布版开发的部分改动,并被移植到面向 Linux 的 icculus avp-20170505-a1 版本上;其中包含使用 libav 播放 FMV 过场动画的改动。
  • other/scraft/avpmp:从 Scraft/avpmp 的 master 分支导入,rebase 到 other/icculus-2009。这条分支包含为 Pyra 与 OpenPandora 掌机提供 OpenGL ES 支持的改动。

从这张列表能看出一条清晰的时间线:官方源码发布 → icculus 的跨平台移植 → 各社区分支(MorphOS、掌机、Windows)→ 本项目统一收拢并 rebase。

与 Luxtorpeda 的关系

README 明确说,当前的直接目标是产出一个适合 Luxtorpeda 的、可正常工作的 Linux 移植。Luxtorpeda 的用途是在 Linux 上以原生引擎运行游戏,因此这里需要的是一份能在 Linux 上编译并跑起来的原生版本,而非通过 Wine 之类的方式转译。具体如何被 Luxtorpeda 集成、需要哪些构建产物,README 未展开说明,需以仓库实际内容为准。

适合谁看,以及阅读建议

  • 想学习老游戏跨平台移植的 C 开发者:可以从 other/icculus-2009 读历史,再看 other/icculus-releases 看整合结果。
  • 对渲染后端抽象感兴趣的人:对比 Direct3D9 分支与 OpenGL ES 分支,能看出同一渲染需求在不同平台上的不同写法。
  • 关心**开源游戏保存(game preservation)**的人:这个仓库是「官方源码 + 社区分支 + 统一基线」这套保存方法的实例。

现状与待核验事项

README 只描述了分支来源与目标,没有给出构建步骤、依赖清单、已知问题列表,也没有说明当前移植的可玩程度。仓库中的分支数量较多,各分支的完成度并不一致,实际可用性需要读者自行编译验证。若打算动手,建议先确认所选分支对应的基线版本(Build 116 或 Build 117),再检查该分支所用的图形后端与目标平台是否匹配。

开源许可证与版权说明

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

相似项目