【新突破】Super Mario Worker Project 开源 & v1.7.13-beta1
MarioForever社区
2026年07月25日 00:00
收录于文集
共4篇
超级马力欧

Super Mario Worker Project(SMWP)已经进入新十年。过去一年,INNOVATION LEAP 陆续发布了 v1.7.11、v1.7.12 和 v1.7.12.1。在此感谢多年来为 SMWP 的开发作出贡献的每一位社区成员。

背景

SMWP 现有的开发模式和工作流到今天面临不少挑战。SMWP 基于 Softendo 的 Mario Worker 4.1,原版 MW 的代码质量在可读性、可维护性、扩展性上均存在一定的缺陷,例如其包含大量波兰语变量、使用数值坐标判断控件位置等。

过去,SMWP 使用 Game Maker 8.0(GM 8.0)开发,随着 SMWP 功能的持续更新,代码架构也愈发复杂,使用 GM 8.0 自带的编辑器开发效率较为低下。GM 8.0 工程文件以二进制(.gmk)形式保存。二进制源文件或许在 Mario Forever 作品创作中存在部分优势,但对于 SMWP 的开发,则带来不少限制:无法通过 Git 进行有效的版本管理;多人协作时难以查看代码改动,也无法同时修改同一个工程,这会导致开发进度不同步;虽然 GM 8.0 支持外部编辑器,但由于其使用本地 ANSI 编码(中文版使用 GB2312),在外部编辑器(如 VS Code)中需要手动指定编码,稍有不慎就可能导致代码注释出现乱码。此外,AI 与自动化工具无法直接参与开发,因为其无法读取二进制源文件的代码架构。

在之前,有过将 SMWP 升级到新版 Game Maker(如 GameMaker: Studio)的失败尝试,原因是 GMS 相比 GM8 变动较大,且无法兼容 SMWP 使用的部分 GM8 扩展。Game Maker 8.2(GM 8.2)的出现带来一丝曙光:它基于 Game Maker 8.1,变动幅度比 GMS 小得多;支持专为版本控制和外部工具设计的 .gm82 工程格式,通过 Git 进行版本管理以及开源成为可能。

开源

将 SMWP 开源的想法,早在几年前就已在 INNOVATION LEAP 内部提出。但在旧的开发模式下,这就等于把 gmk 文件公开出来供别人“二改”,而因为前文提到的“多人开发进度不同步”的问题,其他人很难为 SMWP 上游作出贡献。此外,SMWP v1.4 引入了 .smwp 加密,制作组不希望公开加密密钥,因为这可能促使针对 .smwp 的解密工具出现,对社区产生不利影响。

前不久,由 绿色的糖果 绿色的糖果 基于 SMWP v1.7.12f 版,将 SMWP 源代码成功迁移至 GM 8.2,并实现了包括加密关卡在内的关卡成功运行、文本绘制和关卡解压扩展的重写,以及编码转换插件。现已具备开源条件。

现在,INNOVATION LEAP 正式宣布 Super Mario Worker Project 的开源。从现在开始,任何人都可以获取 SMWP 的完整源代码,并进行 Fork、构建、修改与贡献。这意味着,SMWP 将从一个主要依赖少数维护者的项目,逐步转向社区协作开发的开源项目。

获取源代码

源代码:网页链接​

迁移过程中重写的三个扩展也已分别开源:

SMWP 依赖第三方扩展 MaizeMusic(音乐播放扩展):

  • 社区资源站下载:https://file.marioforever.net/smwp/MaizeMusic_3.1_20170316.zip

  • 扩展主页:https://www.magecorn.com/p/254.shtml

具体编译方式、运行说明及扩展文档,请参考各仓库中的 README。

注:源代码仓库不包含 .smwp 的加密密钥,故开源版本不支持创建或读取 .smwp 关卡。

v1.7.13-beta1 发布

作为 SMWP 首个开源版本发布,SMWP v1.7.13-beta1 主要聚焦于核心改进,包括将引擎升级至 Game Maker 8.2、重写文本绘制和关卡解压扩展、新增编码转换插件。除此以外,新增功能不多,如新增编辑界面缩放功能,加入花瓣探照灯。

编辑界面缩放:在按空格键关闭侧面板后,通过 Ctrl+鼠标滚轮,或主键盘的 + - 键进行缩放。

v1.7.13-beta1 作为首个开源版本,发布它的主要目的是测试引擎升级后的稳定性与兼容性,包括确认现有功能是否正常工作,关卡运行是否与以往版本存在差异等。在后续的 beta 版中,制作组将添加更多新功能与新物件。

重要提示

Game Maker 8.2 将默认文本编码由 ANSI 更改为 UTF-8。SMWP v1.7.13-beta1 已附带编码转换插件,游玩旧版关卡时,信息砖文本应能正常显示,且中文吐字速度已经适配,用户可重点检查文本显示是否与旧版本存在偏差。

主界面设置中新增了“2X FONT RENDER”选项,默认关闭。开启该选项后,信息文字将使用更高清的渲染方式,但文本排版可能与旧版本存在一定差异。关闭该选项时,部分用户可能会遇到文字清晰度不如之前版本的情况,用户可根据实际显示效果选择是否开启该选项。

v1.7.13-beta1 目前测试可正常打开旧版的 .smwl、.smws、.smwp 关卡文件。需要注意的是:

  • 在 v1.7.13 中保存旧版 .smwl 关卡时,文件会自动转换为 UTF-8 编码。v1.7.13 保存的 .smwl 文件在旧版本中运行时,可能出现信息文本乱码的问题。

  • 使用 v1.7.13 保存的 .smwp 文件可能无法在旧版本 SMWP 中正常打开。

  • 创建 .smws 或 .smwp 文件时,建议确保其中包含的 .smwl 关卡均已在 v1.7.13 中保存过,以免因编码不同导致信息文本乱码等兼容性问题。

下载地址

  • 程序本体:https://file.marioforever.net/smwp/smwp-1.7.13-beta1.7z

  • 数据包:https://file.marioforever.net/smwp/Data.7z

原帖地址:

  • 开源公告:https://www.marioforever.net/thread-3898-1-1.html

  • 版本发布:https://www.marioforever.net/thread-3905-1-1.html