官方 GPL 源码
以 GNU General Public License v3.0 授权,许可证全文见仓库中的 `COPYING.txt`。
xiaogame · suncexiaobawang/xiaogame
这是一个基于 JavaScript 的微信小游戏集合体项目,仓库描述称其包含多个小游戏和共享积分系统。不过仓库的 README 摘录内容为 System Shock GPL 源码说明,与项目描述不一致,实际玩法、包含的小游戏数量及积分系统实现方式均待核验。
本仓库是 Night Dive Studios 于 2015–2018 年间以 GNU GPL v3.0 发布的《System Shock》(系统震撼)PowerMac 版官方源代码。它并非可直接游玩的成品,而是一份面向 90 年代 Macintosh 平台的历史代码档案:仓库只包含源代码与工程文件,不包含任何游戏数据。README 明确指出,游戏数据仍受原始 EULA 约束,使用者必须照常遵守。
从代码组织看,这是一份典型的 Looking Glass 时代作品:游戏逻辑、Mac 平台适配层与跨作品共享库被清晰分层,适合用来观察早期 3D 第一人称游戏在 PowerPC Mac 上的实现方式,以及商业作品在多年后开源时的工程形态。
以 GNU General Public License v3.0 授权,许可证全文见仓库中的 `COPYING.txt`。
源码发布不附带任何美术、关卡、音频等资源,需自备原版 Mac 版《System Shock》数据才能运行。
源码与工程文件保存在 Macintosh 文件系统中,每个文件包含 data fork 与 resource fork,并附带元数据。因此仓库同时提供压缩包与解压后的文件。
源码被划分为 Game code(游戏专属逻辑,如敌人 AI、关卡渲染)、Mac code(Macintosh 专属的界面与内部行为)、Libraries(与其他 Looking Glass 游戏共享的 2D/3D 渲染、声音、输入、资源、调色板等)。
提供 Metrowerks CodeWarrior 工程文件,按顺序编译多个静态库后再构建主程序。
README 将代码分为三部分,这一划分本身就是理解仓库的钥匙:
由于经典 Mac 文件系统为每个文件维护 data fork 与 resource fork,外加元数据,普通 Git 仓库无法直接表达。项目因此采取双份存储:
ShockMac 文件夹内保存未压缩文件,每个目录下含 .rsrc(资源分支)与 .finf(元数据)两个子目录。ShockMac.sit 为 Stuffit 压缩包,可同时保留两种分支与元数据。这意味着在非 Mac 环境直接阅读源码时,需要留意资源分支的缺失问题。
游戏最初使用较老版本的 CodeWarrior 构建,但维护者用 CW 10 Gold Tools(IDE 1.7)测试,能够产出可运行的可执行文件。构建环境需要 PowerPC 机器或 SheepShaver 一类可运行 PowerPC Mac 应用的模拟器,另需 Stuffit Expander 解包。
README 给出的流程面向 MacOS 9 环境,要点如下:
准备条件
解包
在 Mac 上用可读取 Stuffit 格式的程序打开 ShockMac.sit,解包后得到 ShockMac 文件夹。
编译步骤
ShockMac:Libraries 下的库工程并执行 Project → Make,将生成的库文件移入 ShockMac:Lib,随后关闭工程。需要处理的工程包括 2dLibPPC.µ、3dLibPPC.µ、DSTRUCT.µ、EDMS.µ、FIX.µ、FIXPP.µ、INPUT.µ、LG.µ、PALETTE.µ、RES.µ、RND.µ、SND.µ、UI.µ、VOX.µ。ShockMac:LIB:LGHeadersPPC.µ,执行 Project → Precompile 预编译后关闭。ShockMac:Shock.µ,执行 Project → Make 构建游戏。ShockMac:Data 文件夹,然后启动游戏。整个流程依赖经典 Mac 工具链,现代系统上需借助模拟器完成,属于典型的“考古式”构建。
这份代码更适合作为研究材料而非入门项目:
.rsrc、.finf 目录与 .sit 压缩包两种存储方式;需要注意,仓库不提供游戏数据,也不承诺在现代平台上可直接编译运行;所有构建结论均以 README 所述环境为准。
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
CatacombGL 是 Catacomb 3D 与 Catacomb 冒险三部曲(Abyss、Armageddon、Apo...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
jfduke3d 是 JonoF 对 3D Realms《Duke Nukem 3D》的源码移植,基于其 Build...