本页目录

微信小游戏集合体(xiaogame)

xiaogame · suncexiaobawang/xiaogame

这是一个基于 JavaScript 的微信小游戏集合体项目,仓库描述称其包含多个小游戏和共享积分系统。不过仓库的 README 摘录内容为 System Shock GPL 源码说明,与项目描述不一致,实际玩法、包含的小游戏数量及积分系统实现方式均待核验。

动作游戏 射击 恐怖 自研引擎 C 敌人 AI 关卡管理 音频系统 UI 系统 专家
★ Stars 1,472 Forks 185 License 未明确 更新 2026-11-05

国内开发环境适配

Windows
不支持
Linux
不支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
构建依赖经典 Mac OS 9、PowerPC 环境或 SheepShaver 模拟器,以及 Metrowerks CodeWarrior 与 Stuffit Expander,这些工具在国内获取与配置均较困难;游戏数据需自备原版 Mac 版《System Shock》,受原 EULA 约束。国内网络与依赖情况待核验。

中文项目介绍

本仓库是 Night Dive Studios 于 2015–2018 年间以 GNU GPL v3.0 发布的《System Shock》(系统震撼)PowerMac 版官方源代码。它并非可直接游玩的成品,而是一份面向 90 年代 Macintosh 平台的历史代码档案:仓库只包含源代码与工程文件,不包含任何游戏数据。README 明确指出,游戏数据仍受原始 EULA 约束,使用者必须照常遵守。

从代码组织看,这是一份典型的 Looking Glass 时代作品:游戏逻辑、Mac 平台适配层与跨作品共享库被清晰分层,适合用来观察早期 3D 第一人称游戏在 PowerPC Mac 上的实现方式,以及商业作品在多年后开源时的工程形态。

核心功能

官方 GPL 源码

以 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 将代码分为三部分,这一划分本身就是理解仓库的钥匙:

  • Game code:与《System Shock》玩法直接相关,例如敌人 AI、关卡渲染等。
  • Mac code:处理 Macintosh 平台特有的用户界面与内部行为。
  • Libraries:被多款 Looking Glass 游戏复用的底层模块,涵盖 2D 与 3D 渲染、声音、输入、资源管理、调色板等。

Macintosh 文件系统的特殊性

由于经典 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 环境,要点如下:

准备条件

  • 一台 PowerMac,或 SheepShaver 等模拟器;
  • 适用于 PowerPC 的 CodeWarrior(CW 10 Gold Tools 可用);
  • 原版 Mac 版《System Shock》游戏数据。

解包

在 Mac 上用可读取 Stuffit 格式的程序打开 ShockMac.sit,解包后得到 ShockMac 文件夹。

编译步骤

  1. 启动 CodeWarrior IDE 1.7。
  2. 依次打开 ShockMac:Libraries 下的库工程并执行 Project → Make,将生成的库文件移入 ShockMac:Lib,随后关闭工程。需要处理的工程包括 2dLibPPC.µ、3dLibPPC.µ、DSTRUCT.µ、EDMS.µ、FIX.µ、FIXPP.µ、INPUT.µ、LG.µ、PALETTE.µ、RES.µ、RND.µ、SND.µ、UI.µ、VOX.µ。
  3. 打开 ShockMac:LIB:LGHeadersPPC.µ,执行 Project → Precompile 预编译后关闭。
  4. 打开 ShockMac:Shock.µ,执行 Project → Make 构建游戏。
  5. 确认游戏资源位于 ShockMac:Data 文件夹,然后启动游戏。

整个流程依赖经典 Mac 工具链,现代系统上需借助模拟器完成,属于典型的“考古式”构建。

补充说明

学习建议

这份代码更适合作为研究材料而非入门项目:

  • 想了解 90 年代商业 3D 游戏如何分层组织代码,可从 Libraries 与 Game code 的边界入手;
  • 对 Macintosh 经典文件系统与资源分支机制感兴趣者,可对比 .rsrc、.finf 目录与 .sit 压缩包两种存储方式;
  • 关注游戏保存与移植历史的研究者,可结合 README 中的构建说明还原当年的开发环境。

需要注意,仓库不提供游戏数据,也不承诺在现代平台上可直接编译运行;所有构建结论均以 README 所述环境为准。

开源许可证与版权说明

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

相似项目