案例
DiabloWeb:基于 Devilution 的 WebAssembly 浏览器移植
将社区重建 Diablo 原始源码的 Devilution 精简分支编译为 WebAssembly,并配合 React 前端,使 Diablo 可在网页浏览器中运行。该分支移除了 Storm、DiabloUI、DirectX 和 Windows 依赖,并为浏览器改写事件处理。这是基于重建成果的移植,本身未报告一致性或行为等价检查。
使用条件与局限
- 所审阅的是 diabloweb 1.0.39 的最后一次提交(2022 年 5 月)。零售版与共享软件版的预构建 WebAssembly 模块及一个 MPQ 压缩器已提交入库;其 C/C++ 源码位于独立的 d07RiV/devilution 分支。该分支 README 称修改了大量代码、不保证行为正确且网络对战不可用;diabloweb 虽含 WebSocket 和 WebRTC 客户端模块,但此处未确认联机状态。
- 完整游戏需使用者从正版取得的 DIABDAT.MPQ(页面指向 GOG 版);共享软件版 SPAWN.MPQ 可运行免费试玩。数据文件在浏览器中选择或拖入,存档保存在 IndexedDB,可作为 .sv 文件下载或上传,应用也可在本地选择压缩 MPQ。两个仓库均不含零售版游戏数据。
- 前端是以 Node.js 构建的 webpack/React 项目。重建 WebAssembly 模块需要 Emscripten 及分支中的 node build.js;该分支也可用 Visual Studio 2017 构建 Windows 应用。README 称托管页面提供共享软件版 SPAWN.MPQ;本地运行需将其放入 public 文件夹。
- 两份 README 均未报告测试、一致性结果或与原可执行文件的对照,所审阅的前端代码树也没有测试文件。可游玩性的依据是托管部署;本合集未运行任何内容。
- diabloweb 没有许可文件。分支附带 Unlicense 文本,但其 README 将源码限于非商业用途;当前上游 Devilution 采用 Sustainable Use License 1.0,Blizzard 仍保有 Diablo 及其数据的权利。所审来源未确立 AI 或 REA 使用归因。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · d07RiV/diabloweb · 修订 c61ef19
- package.json GitHub · d07RiV/diabloweb · 修订 c61ef19
- src/App.js GitHub · d07RiV/diabloweb · 修订 c61ef19
- src/fs.js GitHub · d07RiV/diabloweb · 修订 c61ef19
- README.md GitHub · d07RiV/devilution · 修订 798b512
- LICENSE GitHub · d07RiV/devilution · 修订 798b512
- build.js GitHub · d07RiV/devilution · 修订 798b512
- README.md GitHub · diasurgical/devilution · 修订 9f01757
- LICENSE.md GitHub · diasurgical/devilution · 修订 9f01757