跨平台
至少支持 Windows 98/ME/2000/XP/Vista/7(32 与 64 位)、Linux、各类 BSD 变体、Mac OS X(x86)以及用于 Dreamcast 的 KallistiOS。目前仅支持 x86、ARM、SH-4 等小端平台。
wolf4sdl · lazd/wolf4sdl
Wolf4SDL 是 id Software 经典第一人称射击游戏《德军总部3D》的开源移植项目,基于跨平台多媒体库 SDL 重写,目标是保留原作手感并带来一些改进。使用 C++ 开发,README 列出的支持平台包括 Windows、Linux、BSD 变体、Mac OS X(x86)...
Wolf4SDL 是 id Software 经典第一人称射击游戏《德军总部3D》(Wolfenstein 3D)的开源移植项目,由 Moritz "Ripper" Kroll 维护。项目的核心目标是把原作迁移到跨平台多媒体库 SDL 之上,在尽量保留原版操作手感与画面观感的前提下,引入一系列实用改进。
与原版 DOS 环境下的可执行文件不同,Wolf4SDL 本身不包含游戏数据。玩家需要把原版数据文件(例如 *.WL6)复制到可执行文件所在目录,并选择与数据版本相匹配的编译版本——因为版本差异是硬编码进二进制中的。源码支持的数据版本包括 Wolfenstein 3D 的多个 Apogee、GT/ID/Activision、Imagineer(日版)完整版与共享版,以及《Spear of Destiny》的完整版、试玩版和 Mission 2、Mission 3(README 注明后两者未测试)。
至少支持 Windows 98/ME/2000/XP/Vista/7(32 与 64 位)、Linux、各类 BSD 变体、Mac OS X(x86)以及用于 Dreamcast 的 KallistiOS。目前仅支持 x86、ARM、SH-4 等小端平台。
内置取自 MAME 的 OPL2 模拟器,即使没有 AdLib 兼容声卡,也能以接近完美的质量播放 AdLib 音效与音乐。
数字化音效在 8 个声道上播放,交火时也能听清身后守卫开门的动静。
除原始 320x200 外,支持 320x200 或 320x240 的整数倍分辨率,默认 640x400。与其他一些移植不同,它不应用双线性等滤波,画面保持像素化的锐利感而非模糊。
完全可以不用键盘通关,至少需要两个按键(射击/YES 与开门/NO),推荐五个以上(奔跑、侧移、ESC)。
一种使用屏幕全宽并显示状态栏(类似 Mac-enstein),一种全屏显示(按 TAB 查看状态栏)。
Mod 开发者不再受 64kB 限制,可制作更长、质量更高的数字化音效与 IMF 歌曲。
从菜单返回或读取存档后,音乐从暂停处继续,而非从头播放。
推墙可从各个方向观察,玩家也能直接跟随推墙,而不必等它移开一整格。
项目使用 C++ 编写,构建依赖 SDL 与 SDL_mixer 的开发库。渲染上坚持不做平滑滤波,以保留原作像素风格;音频部分则通过集成 OPL2 模拟器补齐了现代硬件上缺失的 AdLib 支持,并利用 SDL_mixer 实现 8 声道数字化音效。
命令行选项覆盖了运行时的常见需求,例如 --res 设置分辨率(须为 320x200 或 320x240 的倍数)、--resf 设置任意不小于 320x200 的分辨率(可能产生图形错误)、--bits 设置色深、--windowed 窗口模式、--samplerate 与 --audiobuffer 调节音频、--configdir 指定配置与存档目录等。针对《Spear of Destiny》还提供 --mission 与 --goodtimes(关闭拷贝保护问答)。
README 的 TODO 中列出了尚未完成的方向:加入 PC 扬声器模拟、为 320x240 倍数分辨率居中非游戏内画面、支持任意不小于 320x200 的图形分辨率。已知 bug 一栏则写着“None”。
源码通过 SVN 仓库发布。README 说明支持的编译方式包括:
编译前需准备 SDL 与 SDL_mixer 开发库,并调整工程中的头文件与库路径。README 特别提醒不要忘记处理 version.h:默认编译为“Wolfenstein 3D v1.4 full GT/ID/Activision”。
运行方面,将原版数据文件复制到可执行文件同目录;Windows 下还需一并放置 SDL.dll 与 SDL_mixer.dll。窗口模式下可按 SCROLLLOCK 或 F12 捕获/释放鼠标。若帧率偏低,可尝试原始分辨率(--res 320 200)或降低音质(--samplerate 22050)。
这个项目适合作为研究经典 FPS 引擎移植与 SDL 应用的样本:可以观察老式游戏循环如何适配现代跨平台输入、音频与窗口系统,理解分辨率缩放与像素保真之间的取舍,以及如何通过编译期开关(version.h)在单一代码库中兼容多个游戏数据版本。对 Mod 开发者而言,README 中列出的可选渲染特性也提供了现成的扩展入口。
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
该项目用 C 语言维护《Aliens versus Predator》(1999)可获得的游戏源码,...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...