Frogatto & Friends(青蛙主角 2D 横版动作冒险游戏)
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
custom-tetris · ondras/custom-tetris
Custom Tetris 是 GitHub Game Off 2013 的参赛项目,用原生 JavaScript 编写的模块化俄罗斯方块。README 说明可配置“攻击方”选块与“防御方”摆块,并支持多人联网(使用 Firebase 作为网络后端)。项目未使用 JS 库,附带 classList poly...
Overgrowth 是 Wolfire Games 开发的一款 3D 近战动作游戏,而本仓库公开的正是这款游戏的官方源代码。有一点需要先说清楚:这里只有「代码」,不包含任何游戏数据。美术资源、关卡、音效等运行所必需的内容,只能通过向 Wolfire Games 购买正版 Overgrowth 合法获得。因此它不是一个 clone 下来就能直接玩的仓库,而是一份引擎加游戏逻辑的源码,必须和商业数据配合才能构成完整可运行的游戏。理解这一「代码开源、数据商业」的分离模式,是使用这个仓库的前提。
README 明确列出了仓库允许的几类用途:用开源代码配合购买到的商业数据运行游戏,做学习与教学性质的实验;向官方提出改动,被接受后合并回商业版本;制作原本难以实现的 Overgrowth Mod;把其中有参考价值的代码片段用到自己的项目里;以及使用一整套全新素材,制作自己的商业「完全转换」(total conversion)作品。与此同时,README 也划出了红线:如果想分发任何原始的 Overgrowth 素材,必须先取得 Wolfire Games 明确的书面许可。代码开源不等于素材开源,这是使用该仓库时最容易踩的坑。
许可方面,除非文件中另有说明,仓库代码采用 Apache-2.0。README 专门用一段通俗文字解释这份许可在实践中的含义,并声明这不构成法律意见:当你分发基于该代码编译出的程序,或分发代码本身(无论是否修改)时,需要附带 LICENSE 文件的完整内容,可以放在程序内部,也可以作为单独文件,目的只是说明你依据什么许可使用代码;需要在自己修改过的每一个文件上添加修改说明,例如在文件顶部的注释块中写明修改者;并且不得删除版权声明或类似声明。Apache-2.0 属于宽松型开源许可,允许用于闭源项目,但适用范围仅限于代码,不覆盖游戏数据。
协作方式上,这个仓库完全由社区运营。任何人都可以提交 bug 报告、审阅他人的代码、贡献自己的实现。具体贡献流程见仓库中的 CONTRIBUTING.md;如何编译并用开源代码运行商业版 Overgrowth,则见 COMPILING.md。换言之,官方提供的是代码与流程文档,日常维护和代码审查由社区承担。
从技术上看,仓库主语言是 C++,是一个体量不小、历史较长的 3D 动作游戏代码库。对于想研究大型 C++ 游戏工程如何组织模块、如何搭建构建流程、动作游戏的角色控制与战斗逻辑如何落地的人来说,它是少见的「完整商业游戏源码」样本。需要注意的是,由于代码与数据彻底分离,阅读时不少资源路径和配置项在本地并没有对应文件,需要结合 COMPILING.md 与社区讨论来理解上下文,不能指望只靠读代码就还原出完整运行环境。
上手建议是:不要指望一步跑通。先读 COMPILING.md,准备好编译工具链与依赖,再准备一份正版游戏数据,然后按文档逐步验证。README 并未说明具体支持哪些操作系统与编译器版本,实际支持情况需以 COMPILING.md 以及仓库 issue 中的反馈为准,这部分信息在本条目中属于待核验内容。国内环境下拉取依赖与第三方库可能较慢,建议提前配置镜像源并预留充足的编译时间。
最后是合规提醒。如果打算基于此仓库做商业化的完全转换作品,务必确保所用素材完全自有或已获授权,避免混入任何原始 Overgrowth 资源;分发时保留 LICENSE 全文与版权声明,并在修改过的文件上加注记。把这几件事做在前面,比事后补救成本低得多。
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
Fish Folk: Jumpy 是一款鱼类像素画风的战术 2D 射击游戏,使用 Rust 语言与...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
jfduke3d 是 JonoF 对 3D Realms《Duke Nukem 3D》的源码移植,基于其 Build...