雷神之锤3竞技场(Quake III Arena)GPL 源码发布
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
onslaught_arena · lostdecade/onslaught_arena
《Onslaught! Arena》是一款快节奏街机射击游戏,使用 JavaScript 开发,主题为 html5-game。玩家扮演老练战士 Xam,抵御一波波经典中世纪怪物,包括哥布林、独眼巨人、邪恶巫师与沙虫;武器有剑、匕首、长矛、战斧和火球。坚持足够久后...
Athena Crisis 采用「开放核心」(Open Core)模式:商业游戏本体由 Nakazawa Tech 开发,而仓库公开的是与内容无关的代码部分,并以 MIT 许可证发布。公开代码的目标不是提供一份可直接打包上架的完整游戏,而是让开发者改进 Athena Crisis、围绕它构建工具、研究 JavaScript/TypeScript 游戏开发,或以现有代码为起点制作新的回合制策略游戏。单人战役、多人模式、美术、音乐和具体游戏内容不在开源范围内,因此阅读仓库时应把它理解为「可运行、可学习、可扩展的开放核心代码库」,而不是完整内容包。官网提供试玩,完整版可通过 Steam 或官网购买。
代码库按职责拆分为多个包,以强制分离关注点。README 建议从五个核心包入手:athena 负责地图状态的数据结构与算法,apollo 负责游戏状态的数据结构与算法,hera 包含游戏引擎与渲染,ui 是界面设计系统,docs 则承载文档与 Playground。次要包覆盖更具体的领域:art 处理资源,codegen 在修改游戏 Action 或 ActionResponse 后生成编码动作与格式化器,dionysus 是 AI 代码,hermes 处理战役相关数据与算法,i18n 负责国际化,offline 提供离线启动画面,tests 存放端到端测试。这些包名取自希腊神祇,README 说明这是代码拆分后形成的命名习惯,并不代表某种必须遵循的架构规范。
从公开范围看,README 明确提到超过十万行与内容无关的 Athena Crisis 代码已开源,包括核心数据结构、算法、游戏引擎、渲染、AI 和地图编辑器。用户管理、数据库、API、实时观战、服务器配置,以及 Steam 或应用商店的包装层等后端实现并未开源。项目内部使用 monorepo,公开仓库与内部仓库双向同步,生产环境也运行该仓库的最新代码;因此公开仓库中部分目录可能看起来接近空文件夹,例如 ares 和 artemis 占位包,README 建议忽略它们。了解这一点有助于判断哪些模块能直接复用、哪些只能作为接口或架构参考。
技术栈以 TypeScript 为主,仓库 topics 同时标注 JavaScript、React、CSS 和 gamedev。开发环境要求 Node.js 与最新主版本的 pnpm;安装依赖并初始化后,可运行文档站查看本地页面:先执行 pnpm install && pnpm dev:setup,再执行 pnpm dev:docs,然后访问 localhost:3003。Windows 开发者需要注意,package.json 中的脚本应通过 bash 运行,README 给出的做法是把 pnpm 的 script-shell 全局配置指向 Git Bash 可执行文件。提交代码前应运行 pnpm test 完成全部检查;如果改动游戏 Action 或 ActionResponse,还需要运行 pnpm codegen 生成相关代码。
资源与内容边界是使用该仓库时最需要留意的部分。美术等资源不包含在代码库中,开发和测试时会从 Athena Crisis 服务器远程加载;艺术、音乐、故事、角色及其描述属于 Nakazawa Tech KK 的知识产权。README 允许基于代码构建商业项目,但要求替换全部内容,例如修改 Images.tsx 中的资源引用,或调整 Unit.tsx 中的角色描述;若要继续使用 Athena Crisis 的内容,则需单独联系 Nakazawa Tech KK 获取许可。这意味着直接克隆仓库并不能获得一套可自由分发的完整游戏素材,开发者应准备自己的资源管线与内容授权方案。
适合从该仓库学习的知识点包括游戏状态与地图状态的数据建模、自研游戏引擎与渲染流程、UI 设计系统、AI 代码组织、地图编辑器、国际化、离线启动页和端到端测试。README 还鼓励把可复用部分拆成独立包并发布到 npm 的 @nkzw 组织下,贡献方向包括缺陷修复、AI 改进、新玩法、平衡性调整、实验性技术探索、补充测试和核心数据结构性能优化。由于项目规模较大且包含后台同步机制,初学者更适合先从 docs 与 Playground、地图状态或 UI 包入手,再逐步阅读引擎和 AI 相关代码。
平台支持方面,README 主要说明开发环境与文档站,并未逐项声明游戏在 Windows、Linux 或 macOS 上的官方支持状态;Steam 页面和官网购买入口存在,但仓库文本没有给出完整的平台矩阵,因此相关字段只能标记为待核验。国内开发者还需注意 Node.js、pnpm 依赖下载以及远程素材加载可能受网络环境影响,建议配置镜像并实际验证文档站和资源服务是否可访问。总体而言,Athena Crisis 是一个有商业背景、边界清晰的开放核心案例,适合研究大型 TypeScript 回合制策略游戏如何划分模块、组织状态与渲染,以及如何把内容与代码授权分开处理。
id Software 以 GPL 许可证发布的《雷神之锤3竞技场》(Quake III Arena)源...
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...