本页目录

《影子武士》(Shadow Warrior)v1.2 官方源码(GPL)

shadow-warrior · Azarien/shadow-warrior

《影子武士》(Shadow Warrior)v1.2 CD 版完整源代码,由 3D Realms 于 2005 年以 GPL 协议发布,采用 C 语言编写,属于 1997 年经典第一人称射击游戏的引擎源码。仓库只包含代码,游戏数据文件版权仍归 3D Realms,不可再分发,运行需...

动作游戏 射击 自研引擎 C 存档系统 游戏状态管理 网络联机 音频系统 高级
★ Stars 20 Forks 6 License 未明确 更新 2026-10-23

国内开发环境适配

Windows
官方声明支持
Linux
未知
macOS
未知
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
需自行获取 Open Watcom 1.3 与 DOS 32 位目标环境;游戏数据文件不可再分发,需自备正版或官方共享版;README 中的 3drealms.com 等外链在国内访问情况待核验。

中文项目介绍

本仓库是《影子武士》(Shadow Warrior)v1.2 CD 版完整源代码的官方发布归档,由 3D Realms 于 2005 年 4 月 1 日以 GPL 协议公开。它对应的是 1997 年那款经典第一人称射击游戏的原始引擎与游戏逻辑代码,用 C 语言写成,属于 Build 引擎家族的一员。

需要先明确一点:仓库里只有代码,没有游戏数据。所有《影子武士》的数据文件版权仍归 3D Realms 所有,按原始条款授权,不能重新分发。想真正跑起来,必须自备正版 v1.2 数据,或者从官方渠道下载 v1.2 共享版做测试。README 也直言,这次发布不附带任何技术支持,能否编译运行、会不会弄坏机器,都由使用者自行承担风险。

发布背景与致谢

这份源码的整理工作由 3D Realms 的 Charlie Wiederhold 完成。README 特别感谢了原《影子武士》程序员 Frank Maddin,是他翻出了代码并协助让项目起步;也感谢 Jonothan Fowler(Duke 3D 的 JonoF 移植作者)凭借 Build 引擎经验帮忙定位最后几个主要问题。此外,Ken Silverman 与 Jim Dose 同意将部分引擎与音频库源码一并纳入归档。

发布者提到,由于当年并不存在完整的源码存档,整理过程比 Duke 3D 源码发布时要艰难得多:拿到的是大量文件,却不清楚如何组织、哪些真正被使用,还有若干关键文件完全缺失,只能从 Duke 3D 源码中借用补齐。所有整理者所做的改动都以 // CTW 风格的注释标出,并尽量保持最小改动,让爱好者面对的是原版代码而非个人重写版。

技术架构分析

核心内容与技术要点

  • Build 引擎数据:归档包含编译所需的 Build Engine 数据(.OBJ 文件)。Build 引擎与《影子武士》是两个独立实体,后者构建于前者之上。
  • KENBUILD.ZIP:包含编译 Build 引擎本身所需的 Ken Silverman 发布版数据,文件内有编译说明,README 称已用免费版 Watcom 测试通过。
  • AUDIOLIB.ZIP:包含 Jim Dose 音效引擎的数据,该音效库曾用于《Rise of the Triad》《Duke 3D》和《影子武士》,文件内附编译说明;README 说明作者本人未亲自验证其在免费版 Watcom 下能否编译。
  • 存档功能:要让保存/读取生效,需要按 GAME.C 文件开头的说明操作。
  • 已知限制:在现代系统上声音表现不稳定,且很可能把性能拖到极慢,作者建议在有人把它更新到现代音频系统之前不要开声音;网络联机完全未经测试;其他小问题列在 GAME.C 顶部。
  • 高分辨率:若想以高分辨率 VESA 模式而非 320x200 运行,可下载 Ken 提供的工具。
  • EXTRAS 目录:纯粹出于好奇与教学目的,内含大量可能有意思的测试以及最终进入游戏的旧版源码文件,均非必需。
  • DOS 扩展器:原版使用 DOS/4GW,Watcom 1.3 自带若干免费 DOS 扩展器,但要把生成的 EXE 分发到其他机器,需要自行绑定扩展器;由于 DOS/4GW 是商业授权产品,相关资源无法随源码分发。
  • 被注释掉的部分:编译版本中所有对 TEN(Total Entertainment Network)的引用都已注释,3DFX Glide 支持同理,仅供好奇者查看;这些公司编写的源码文件因法律原因未包含在发布中。

构建与运行

README 给出的编译流程基于免费的 Open Watcom 1.3(Windows 版),这意味着无需寻找停产编译器即可上手:

  1. 在系统中安装 Watcom C/C++。
  2. 安装时确保勾选 DOS 32 Bit 作为目标构建环境。
  3. 选定工作目录,将 ZIP 内容解压到该目录。

随后通过 Watcom IDE 编译(IDE 即管理文件、编译选项、编辑与调试的软件)。extras 文件夹里虽然附带了一个 MAKEFILE,但作者表示没花时间测试,并对其可用性深表怀疑。

使用 Watcom IDE 的步骤:

  • 启动 IDE,选择 File -> Open Project。
  • 找到解压目录中的 SW.WPJ,选中并确认。
  • 点击 "Make Current Target" 按钮、按 F4,或走菜单 Targets -> Make。编译过程中会出现若干警告,属正常现象。
  • 编译产物 SW.EXE 会生成在 SW.WPJ 所在目录,把它复制到《影子武士》数据目录即可运行。

拿到 SW.EXE 之后:若拥有正版 v1.2(注册版),直接把新 EXE 复制进目录运行即可;若没有,可从 3D Realms 官网下载 v1.2 共享版安装后替换 EXE,足以测试游戏,但仍会有一些小问题,且尝试游玩第二章节会导致崩溃。作者建议的最佳体验仍是拥有完整正版 v1.2。

补充说明

学习建议

这是一份面向研究而非开箱即用的商业游戏源码。适合的切入方式:

  • 先通读 GAME.C 顶部的已知问题列表与存档说明,建立对代码状态的预期。
  • 借助 // CTW 注释区分原始代码与整理者改动,理解哪些是为了让老代码在现代工具链下编译而做的妥协。
  • 结合 KENBUILD.ZIP 与 AUDIOLIB.ZIP 内的说明,分别研究 Build 引擎与音效库的独立编译,理解游戏与引擎的分层关系。
  • 把 EXTRAS 目录当作史料阅读,对比旧版源码与最终版本的差异。

README 也提到,Duke 3D 源码发布后社区积累了大量经验与人才,遇到问题时 3D Realms 论坛的 Shadow Warrior Source 版块是更现实的求助渠道。

开源许可证与版权说明

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

相似项目