Dune-II---The-Maker · stefanhendriks/Dune-II---The-Maker
这是用 C++ 编写的即时战略重制项目,以 Westwood Studios 经典 RTS《沙丘2:王朝的建立》为原型开发,项目又名 D2TM。按仓库描述,它并非复刻原作,还加入了更高分辨率、画面缩放、多单位框选、遭遇战(skirmish)等增强。仓库主题标签...
这个仓库保存的是 DOS 时代横向卷轴平台游戏《Commander Keen in Keen Dreams》的源代码发布版本,而不是面向现代操作系统的重制版或可直接双击运行的游戏安装包。它的价值首先在于史料与工程研究:玩家熟悉的早期 Commander Keen 系列作品之一,其程序代码以 GNU GPLv2+ 许可公开,使研究者能够查看上世纪九十年代初商业游戏在有限硬件条件下如何组织项目、处理图形模式与静态数据。README 还提到,这次源码公开由一次众筹推动,Javier M. Chavez 与 Chuck Naaden 牵头,并列出 Dave Allen、Kirill Illenseer、Michael Jurich、Tom Laermans、Jeremy Newman、Braden Obrzut、Evan Ramos、Sam Schultz、Matt Stath、Ian Williams、Steven Zakulec 等贡献者,说明它是一次社区协作式的历史代码释放。
授权边界是这个项目最需要先理解的部分。源码本身采用 GNU GPLv2+,但 README 明确指出,源码发布并不改变游戏数据文件的授权状态,游戏数据仍须通过合法途径取得。仓库中为了方便使用而包含的 static 目录数据也属于这一说明范围,不能因为代码开源就推定数据可以随意使用。不过 README 同时给出了一项有限许可:为了与原版游戏保持兼容,允许链接和分发这些数据。换言之,代码层面的开源与游戏资产层面的权利是分开的,研究构建流程时应把“编译源码”和“取得合法游戏数据”视为两件事。
构建方式带有鲜明的时代特征。代码最初为 Borland C++ 2.0 设计,发布时所有修订版本都能在 3.1 下编译通过。项目不是现代 CMake 或跨平台构建系统,而是依赖 Borland C++ 的 DOS 工程环境。README 说明,有一部分数据必须被编译进二进制文件,这些数据位于 static 目录;准备构建前,需要先把 Borland C++ 加入 PATH,然后运行 make.bat。之后回到根目录输入 bc 打开工程并构建,可能还需要在 Borland 环境中配置目录,否则编译无法顺利完成。对今天的开发者而言,这意味着需要准备 DOS 虚拟机、DOSBox 一类环境或相应旧工具链,并接受与当代编译器不同的语法、内存模型和工程组织方式。
图形模式的选择也体现在源码中。README 指出,1.00 版可以通过修改一个常量来构建 EGA 或 CGA 版本,这个常量是 ID_HEADS.H 与 ID_ASM.EQU 中的 GRMODE;同时还要确保链接了正确的静态数据文件:EGA 使用 KDREDICT.OBJ 与 KDREHEAD.OBJ,CGA 使用 KDRCDICT.OBJ 与 KDRCHEAD.OBJ。后续版本则各自固定为一种显示模式。这一段信息对复现构建很关键,因为只改代码而不匹配静态目标文件,可能得到不完整或无法运行的产物;它也说明该项目的显示适配在编译期完成,而不是像现代引擎那样在运行时切换渲染后端。
版本号体系比一般项目复杂。README 解释,修订沿三条序列推进:普通 EGA 版、CGA 版和共享版;发布时所知的最新版本分别是 CGA 1.05、EGA 1.93、共享版 1.20。某些带字母后缀的版本用于文本等内容变化但程序本身未重新编译的情况。历史列表包括:1.00 原始发行;1.01 用于 Tiger Software 营销;1.01-360 为装入 360K 磁盘而特别适配;1.01S 实为共享版却误标为 1.01;1.02 注册版;1.03 注册版重制;1.04 CGA 版;1.05 去掉 Gamer's Edge 引用的 CGA 重制版。共享版序列中还有 1.13 重制版、1.20 去掉 Gamer's Edge 引用的重制版;EGA 序列中 1.91 面向 Prodigy Download Superstore,1.92 面向 Good Times 且不含外壳,1.93 面向目录销售,改用 DocView Shell 并把版权更新为“1991-1993”和 Softdisk Publishing。
从学习角度看,它适合用来观察早期 DOS 游戏项目的源码组织、Borland C++ 工程文件、EGA/CGA 双显示模式适配、静态数据链接方式以及商业游戏多版本分支管理。它并不适合作为现代平台跳跃游戏的入门模板:工具链陈旧、构建步骤依赖特定 IDE、数据授权另有一套规则,而且仓库本身不等同于完整可分发游戏。主页链接指向 Steam Greenlight 上的相关页面,可作为项目背景线索;README 没有提供现代在线试玩、预编译下载或完整文档入口,因此这些内容需要另行核验。总体上,这是一个面向代码考古、游戏保存和旧式 DOS 工程研究的源码仓库,使用前应先解决合法数据与复古编译环境两个前提。
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
CatacombGL 是 Catacomb 3D 与 Catacomb 冒险三部曲(Abyss、Armageddon、Apo...
DDNet 是 Teeworlds 的一个模组,源自 DDRace,是一款免费的合作型 2D 平台跳...