avp-forever · dreamer/avp-forever
该项目用 C 语言维护《Aliens versus Predator》(1999)可获得的游戏源码,目标是做出可在 Linux 上正常运行的移植版本,供 Luxtorpeda 项目使用。仓库的 other/* 分支保存了若干旧移植与相关项目,例如基于 SDL1.2 的 icculus 版本快照...
AvP Forever 是一个围绕《Aliens versus Predator》(1999)游戏源码展开的维护型仓库。它并不从零重写游戏,而是以 Rebellion 官方公开的源码发布版本为基线,把散落在不同时间、不同作者手中的移植代码重新整理、变基(rebase)并集中保存,最终目标是为 Linux 平台提供一个运行状态良好、可直接服务于 Luxtorpeda 项目的移植版本。
仓库的主线工作聚焦于源码维护与 Linux 适配;除此之外,other/* 系列分支承担了「历史存档」的角色,把若干旧移植与相关项目按来源分门别类地保留下来。对于想研究 1999 年这款经典射击游戏底层实现、或希望在其基础上继续做平台适配的开发者来说,这个仓库更像是一座可追溯的代码档案馆。
需要说明的是,README 并未给出当前主线移植的完成度、可玩性结论或测试结果,这些方面仍需自行核验。
other/neuromancer/avp 分支包含使用 libav 处理 FMV 播放的改动。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 支持)合并到主线。
other/icculus-releases 与 other/icculus-releases-rebased-1:两者代码树相同而历史详细程度不同,是理解「保留 blame 信息」这一做法的好例子。libav 播放改动与 SDL2 实验性支持。
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...