返回资讯中心
外部精选
软件工程
#开发者实时流

开发者用 Python 和 pygame 从零重写《德军总部 3D》

来源标题:Show HN: PyWolf3D, a wolfenstein3D clone written from scratch in Python

开发者 atifcodesalot 用 Python 和 pygame 从零实现了《德军总部 3D》引擎及游戏克隆 PyWolf3D,并已在 GitHub 开源。该项目可运行共享版第一章,放入 GAMEMAPS.WL6 等原版游戏文件后还能玩全部章节。作者称地图解析、渲染、角色行为和游戏逻辑等实现均由其本人完成,未使用 AI 生成代码。

Hacker News 最新BSPtree2026/11/2 · 2 天前12 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

demo3_squashed.mp4 请原谅我在演示中的鼠标声音 😅 PYWOLF3D 是一个用 pygame、Python 从零编写的 Wolfenstein 3D 引擎和游戏克隆。 我是 Doom 和 Wolfenstein 的超级粉丝,所以我决定自己重写一个原版游戏 😎。这主要是为了好玩和学习。 这个项目中的所有代码都是我写的,没有使用 AI 代码生成或编码代理。AI 工具仅用于讨论、研究,以及帮助查找现有的游戏资源和素材。实现部分,包括地图解析、渲染、角色行为和游戏逻辑,完全是我自己的工作。但别光听我说:https://isvibecoded.com/。 如何游玩? 第一章共享版 要游玩第一章的共享版,只需克隆这个仓库: git clone https://github.com/atifcodesalot/pyWolf3D 将目录切换到项目根目录: cd pyWolf3D 然后安装所需的包: py -m pip install -r requirements.txt 对于 Unix: python3 -m pip install -r requirements.txt 然后运行: python3 -m wolfenstein3D 原版地图 如果你想游玩所有章节,你需要将购买安装中的游戏文件:GAMEMAPS.WL6、MAPHEAD.WL6、AUIDOT.WL6 和 AUIDOHED.WL6 放入 ./wolfenstein3D/assets/maps 文件夹,我还写了一个简单的脚本,如果你有 Steam 安装的游戏,可以自动检测它。 我尽量让这个克隆版(相比原版)尽可能准确,但有些东西可能还是不同。伤害模型和角色行为基本相似,但例如在这个版本中,你的子弹会穿过敌人。 这个克隆版目前支持游玩原版的 6 个章节,但如前所述它还不完整。它从共享版文件 MAPHEAD.WL1 和 MAPTEMP.WL6 中提取原版地图,从 AUIDOT.WL6 和 AUIDOHED.WL6 文件中提取音乐。如果你想游玩原版章节,如前所述,你需要将购买安装中的 GAMEMAPS.WL6、MAPHEAD.WL6、AUIDOT.WL6 和 AUIDOHED.WL6 放入 ./wolfenstein3D/assets/maps 文件夹。 渲染 游戏和原版一样使用光线投射器进行渲染,没有实际的栅格化。 默认投射的光线数量是 160,默认 fov 是 54 度。你可以自行调整。 它简单且可复用。 地图是 64 到 64 的网格,光线投射器使用 DDA 算法来查找与非空瓦片的碰撞。特殊情况是门和推墙,光线投射器会显式处理它们。 精灵、投射物通过透视投影渲染。 声音引擎负责衰减和方向性声音。方向性声音是通过硬编码配置对音频进行声像调整来实现的。声音传播是通过预处理的区域瓦片完成的。 一些音效(和音乐),比如拾取宝藏,在原版中实际上是运行时合成的,这个版本对所有音效都使用 .wav 文件。 音乐实际上是使用 OPL 模拟器在运行时使用 AUIDOT 和 AUIDOHED 文件合成的! 理由是,我不能在这个仓库中重新分发非共享版的音乐,这受版权法保护。所以你放入你已经拥有的文件,音乐文件就会即时生成! 代码:所有组件,WL1、WL6 文件解析、渲染、声音和游戏逻辑都是我实现的,如前所述;AI 没有以任何方式用于代码生成。 精灵、声音:原版的精灵、声音是从互联网上获取的,有时是通过 LLM(一些精灵比较冷门 [比如假希特勒或机甲希特勒精灵]) Pacman 精灵来自 Ultimecia 资源 game engine black book Wolf3D 是一本很棒的书,我在开发这个克隆版期间广泛阅读了它。追逐状态链、精灵渲染、声音传播以及许多其他方面,我都从这本书中理解并享受它的每一页,它真的很棒。 https://www.spriters-resource.com/ms_dos/wolfenstein3d/ 获取原版精灵。 https://sounds.spriters-resource.com/ms_dos/wolfenstein3d 获取通用音效。 https://forum.zdoom.org/viewtopic.php?t=46658 这个论坛帖子获取 .wav 格式的 adlib 音效。 尚未实现的功能 楼层完成画面(正在处理) 投射物、更多章节精灵和纹理支持(正在处理,快完成了) 第一章结局动画 命运之矛 多人死亡竞赛 Bug 我已经在这个项目上工作了一段时间,所以我决定在它变得……完美之前就把它发布出来。有一些我知道的非游戏性破坏(在我看来 :D)的 bug,我会在未来修复它们。如果你注意到任何问题,请告诉我。

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →