本页目录

异形大战铁血战士(1999)源码维护与 Linux 移植(AvP Forever)

avp-forever · dreamer/avp-forever

该项目用 C 语言维护《Aliens versus Predator》(1999)可获得的游戏源码,目标是做出可在 Linux 上正常运行的移植版本,供 Luxtorpeda 项目使用。仓库的 other/* 分支保存了若干旧移植与相关项目,例如基于 SDL1.2 的 icculus 版本快照...

动作游戏 射击 SDL 自研引擎 C 游戏状态管理 音频系统 渲染技术 高级
★ Stars 15 Forks 10 License 未明确 更新 2026-10-23

国内开发环境适配

Windows
AI 推断/待核验
Linux
官方声明支持
macOS
AI 推断/待核验
引擎 / 框架:SDL 暂无中文教程标记 未标记站长实测
README 未提供构建步骤与依赖清单,国内编译所需的具体依赖、网络获取方式均待核验;涉及 libav、SDL1.2/SDL2 等库时建议提前确认本地包管理器中对应版本是否可用。

中文项目介绍

AvP Forever 是一个围绕《Aliens versus Predator》(1999)游戏源码展开的维护型仓库。它并不从零重写游戏,而是以 Rebellion 官方公开的源码发布版本为基线,把散落在不同时间、不同作者手中的移植代码重新整理、变基(rebase)并集中保存,最终目标是为 Linux 平台提供一个运行状态良好、可直接服务于 Luxtorpeda 项目的移植版本。

仓库的主线工作聚焦于源码维护与 Linux 适配;除此之外,other/* 系列分支承担了「历史存档」的角色,把若干旧移植与相关项目按来源分门别类地保留下来。对于想研究 1999 年这款经典射击游戏底层实现、或希望在其基础上继续做平台适配的开发者来说,这个仓库更像是一座可追溯的代码档案馆。

需要说明的是,README 并未给出当前主线移植的完成度、可玩性结论或测试结果,这些方面仍需自行核验。

技术架构分析

技术要点

  • 语言与依赖:项目以 C 语言编写,属于典型的 C 语言游戏源码维护工程。
  • 图形与平台层:涉及 SDL1.2 移植与实验性 SDL2 支持,另有 Direct3D9 渲染器(Windows 分支)与 OpenGL ES 支持(掌机分支),说明代码在不同渲染后端之间做过适配。
  • 视频播放:other/neuromancer/avp 分支包含使用 libav 处理 FMV 播放的改动。
  • 版本基线:官方 Rebellion 源码发布存在 Build 116 与 Build 117 两个基线,各分支分别以其为底进行变基。
  • 目标平台:主线目标是 Linux;历史分支覆盖 Windows、OS X、MorphOS 以及 Pyra/OpenPandora 掌机。

如何构建

README 未提供具体的构建步骤、依赖清单或编译命令,因此这里不做推测。若要从源码构建,建议先确认目标分支(主线或某个 other/* 分支),再阅读该分支内的构建相关文件与说明。不同分支的依赖差异较大:SDL1.2 与 SDL2 分支所需的库不同,libav 相关改动需要额外的多媒体库,OpenGL ES 分支则面向特定掌机环境。

补充说明

分支结构与内容

README 的 Branches 一节逐一说明了各分支的来源与差异,可以按「基线版本 + 叠加改动」的方式理解:

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

从这些分支可以看出,仓库处理的核心问题之一是「历史整合」:不同来源的代码各自基于不同的官方 Build 版本,通过变基统一到同一基线上,既方便对比差异,也便于后续把有价值的改动(如 FMV 播放、OpenGL ES 支持)合并到主线。

学习与使用建议

  • 若关注 Linux 移植与 Luxtorpeda 集成,应优先查看主线;若关注历史移植方案,可按 README 的分支说明逐个对照。
  • 研究变基策略时,可对比 other/icculus-releases 与 other/icculus-releases-rebased-1:两者代码树相同而历史详细程度不同,是理解「保留 blame 信息」这一做法的好例子。
  • 想了解老游戏如何接入现代多媒体栈,可参考 libav 播放改动与 SDL2 实验性支持。
  • 由于 README 未声明移植完成度与可玩性,实际运行效果需自行验证,不宜预设其已可直接游玩。

开源许可证与版权说明

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

相似项目