前言
不知大家是否知道,曾经的SMBX-38A的版本是具有将自己的作品打包成单独的 exe 文件的功能的。这样的操作可以为作品的传播和游玩带来更多的便利。可惜,这样的功能在当时仅仅只是隐藏功能,需要通过解开难度巨大的彩蛋谜题才能解锁。KFCMario 就曾在那个时期使用这个功能打包了自己的作品。然而,当后来的 1.4.4 时期,有老外通过特殊途径破解了隐藏功能后,却发现 1.4.4 时期的这项功能已经无法正常使用了,着实是令人遗憾。而得知了这种行为的 5438A38A,在后来发布的 1.4.5 中将大部分以前需要通过彩蛋解锁的隐藏功能设为了无需额外条件,直接就可以使用的功能。然而,他却将这个封装成独立的 exe 文件的功能给彻底移除了,且也没有彩蛋游戏可供解锁这样的功能。
尽管 5438A38A 给 1.4.5 施加了种种限制,但依然无法阻止民间爱好者对作品创作以及制作成独立可玩作品的热情。 @vkdfkc 发现了只需将关卡文件(.lvl/.elvl)或地图文件(.map)直接拖拽到 smbx.exe 上,即可直接运行该关卡/地图,跳过 SMBX 原生的标题界面。借助这个特性,理论上只需要写一个批处理文件,即可实现那种类似“封装”的功能。而后来,我们的 @原力总督 也不负众望,在 vk 大佬的指导下制作了这个“土法”封装作品的教程视频: [教程][SMBX]将地图封装为独立游戏【原力总督FORCE_VICEROY】
只不过,就算是这样的方法却依然有不少缺点,这里便不一一赘述了。为了让封装出来的作品显得更自然、更便捷, @小豆 大佬在去年做了一个全新的 exe 打包工具,打包出来的单独的 exe 文件相较于之前的方法而言具有诸多优点。由于其使用的复杂程度,我在小豆大佬的指点下在这里写一个尽可能简洁的教程,希望大家都能看懂~ 那么,废话不多说,让我们来到教程部分吧!
准备工作
① 下载 Visual Studio 2022:下载页面
进入该网页,选择下载 Community 版。
② 安装 Visual Studio 2022:安装时选择以下配置。
(硬性要求的设置务必勾上,若没有其它需求除了硬性要求的设置外只需勾选前三项)
(请预先给磁盘留下至少30个G的空间)
③ 下载并安装 CMake:下载页面
选择 Windows x64 Installer 版本进行下载。(注:安装路径不能有空格)
下载完毕后进行安装,选择“Add CMake to the system PATH for all users”。
完成上述步骤后,准备工作就完成了。
打包工具的下载
打包工具的下载有以下两种途径:
① 直接进入此链接下载:下载页面
(最近更新于 2023 年 5 月 22 日)
② 访问此打包工具的 GitHub 项目地址,选择页面右面的 Release,点开 Assets,再选择“exe-pkg-build-tool.exe”进行下载。
打包工具的使用
终于来到重头戏了!在这里,我们以 “L.EXE” 的Demo为例,将此打包成一个独立的 exe 文件。
① 复制SMBX根目录内的全部文件,转移到一个文件夹中,worlds文件夹中只保留要打包的作品(并且必须要封装为.map或.elvl的形式),并将其它多余文件清除掉(如若作品中用到的全部BGM均为自定义BGM,可将整个music文件夹直接移除。注意:无论自定义素材使用与否、使用多少,都不要动graphics文件夹里的任何东西!这是为了防止玩家在退出关卡时游戏崩溃),如下图所示:
(可将 smbx.exe 的名称更换为 smbxgame.exe,防止杀毒软件的误杀。)
② 将该目录下的全部文件压缩至一个.zip文件中,放在你方便找到的地方(注意路径不能包含中文)。
③ 准备好自己要使用的图标,只要自己能找得到在哪就行(路径同样不能包含中文)。
④ 运行打包工具,首先输入构建程序的路径,即 Visual Studio 2022(以下简称 VS2022)的构建程序的所在路径(路径还是不能包含中文,下面的内容亦是如此)。
构建程序所在路径:VS2022根目录\2022\Community\MSBuild\Current\Bin\MSBuild.exe
⑤ 输入要打包的作品的信息。
项目名称、项目启动程序、项目启动文件等路径不需要精确到具体的位置,只需输入其在压缩包内的路径即可,即在“./”后添加路径。
图标路径、游戏源文件路径则需要输入具体的路径。
输入完毕后等待其构建完毕即可。(注意:打包时请确保电脑留有足够的内存,因为编译过程可能需要约七至八倍最终 exe 文件大小的内存)
当出现“构建成功 – build success”的提示后,说明作品已打包完成。
⑥ 在打包的过程中,打包工具会自动在所在目录中生成 “build” “cmake-gen” “source-gen” 三个文件夹。
第一个文件夹的子文件夹“Release”中存放着刚刚已经生成的打包完毕的 exe 文件(默认文件为 exe-pkg.exe)。当出现此文件时,说明你打包作品的流程已正式完成,这样你的作品就可以作为一个独立的游戏来游玩了。将这个 exe 文件拖出此文件夹,重命名,向你的朋友分享吧~
值得注意的一点是在初次运行 exe 时,会需要一段时间来解压出存放作品数据的文件夹,因此游玩作品的话务必不要放在桌面上,手动创建这个 exe 文件的快捷方式即可。
另外,还需要注意的是在作品打包完毕后,务必将生成的 exe 文件移出生成的文件夹,或重命名,否则将会影响以后打包作品的流程的进行。
“cmake-gen” 和 “source-gen” 文件夹中储存着上一次打包作品的数据,以及构建程序的路径。如果在之后打包作品时出现什么异常情况,可以将这些缓存清除再重试。
尾声
那么本教程就告一段落啦!这里是教程中的实例的最终成品的下载:下载页面
感兴趣的话可以试试看这个最终成品的效果如何~ 如果还有什么不理解的地方,欢迎在本帖进行提问!
教程文档下载:下载页面