id-Software/Quake
GitHub: id-Software/Quake
id Software 经典游戏 Quake 的 GPL 源代码发布,包含软件渲染版、OpenGL 版及 QuakeWorld 网络版的完整引擎实现。
Stars: 5823 | Forks: 1012
这是 winquake、glquake、quakeworld 和 glquakeworld 的完整源代码。
这些项目已经过 Visual C++ 6.0 的测试,但构建汇编语言文件还需要 masm。可以通过修改一个 #define 来仅使用 C 代码进行构建,但软件渲染版本的速度会降低近一半。OpenGL 版本则不会受到太大影响。gas2masm 工具的创建是为了让我们在 dos、linux 和 windows 版本中使用相同的源代码,但我其实不建议任何人去修改这些 asm 代码。
最初的 dos 版本的 Quake 也应该可以通过这些源代码进行构建,但我们懒得去尝试了。
所有代码均基于 GPL (gnu public license) 的条款获得许可。您应该阅读整个许可协议,但其要点是您可以使用这些代码做任何您想做的事情,包括出售您的新版本。但条件是,如果您分发新的二进制版本,您必须向所有人免费提供全部源代码。
我们之前发布的代码所采用的许可协议排除了商业利用,但并没有强制要求共享源代码的条款。这导致了一些不幸的损失,因为有些 mod 团队封闭了他们的源代码(有时甚至直接弄丢了)。如果您打算公开发布此代码的修改版本,您还必须同时提供源代码。我鼓励各个团队能更进一步,尽可能研究使用公开的 CVS 服务器进行开发。
此次发布的主要目的是为了娱乐和教育,但如果您遵守完整的许可协议,GPL 确实允许商业利用。如果您想进行商业开发,但又实在不愿意公开您修改的源代码,我们仍然可以另行协商许可协议(支付 $$$),但我还是鼓励您直接遵循 GPL。
所有 Quake 数据文件仍受版权保护,并按原有条款授权,因此您不能重新分发原版游戏中的数据,但如果您进行了真正的全面转换(total conversion),您就可以基于此代码创建一款独立游戏。
我会考虑更改 Quake 共享软件版(shareware episode)的许可协议,以允许更自由地进行复制(例如用于 linux 发行版),但我无法给出具体的时间表。您仍然可以下载最初的某个 Quake 演示版(demo),并将该数据与此代码一起使用,但对于演示版数据的重新分发仍存在限制。
如果您从未真正购买过完整版的 Quake,您不妨去当地软件折扣店翻找一下原版,或者找找包含两款任务包的《Quake: the offering》盒装版。
感谢 Dave "Zoid" Kirsh 和 Robert Duffy 为完成本次发布的发布所做的繁重工作。
John Carmack
Id Software
标签:C/C++, OpenGL, 事务性I/O, 客户端加密, 开源游戏, 游戏引擎