编译
编译你的游戏可能意味着两件事中的一件。 编译它以进行测试,或编译它以创建一个最终的 可执行包 用于特定的目标平台。 本页旨在详细解释这两个选项。
为测试而编译
只需按 IDE 顶部的 " 播放 " 按钮
即可编译游戏进行测试,这将使用指定的目标启动游戏进行测试。您还可以通过使用 " 调试 " 按钮
进行测试,在 " 调试模式 " 下运行游戏。这将启动游戏,但也会打开 " 调试窗口 ",您可以在其中监视游戏的性能并查看任何问题 (有关详细信息,请参阅 调试 部分)。
目标设置
默认情况下,GameMaker 将使用内置的 虚拟机 (VM) 运行和调试,这或多或少与正在使用的桌面操作系统上运行相同。但是,GameMaker 是一个 跨平台引擎 ,您可以测试,在许多不同的目标平台上调试和编译项目的可执行程序包 (具体可用的平台将取决于您的许可证的详细信息)。要更改当前 目标平台 ,您可以单击
目标按钮
打开目标窗口,它看起来像这样 (具体细节将根据您的许可证类型而有所不同):
在顶部,在"目标"按钮旁边,您有当前设置,该设置告诉您实际使用的平台和特定设置,然后窗口的其余部分将讨论所有可用目标的详细信息和选项,您可以选择使用这些详细信息和选项。此窗口的每个部分解释如下:
平台平台
本节列出了所有可用的目标平台,这取决于您拥有的许可证。
要选择目标,只需在目标上单击
;然后,这将更新其余选项窗口,根据所选平台显示不同的详细信息。如果你在当前运行时没有安装所需的模块,那么当你点击目标时GameMaker
会要求你下载并安装它:

如果您在此处选择"否",则目标将重置为您以前选择的目标。
如果您在此处选择"是",则将下载并安装目标的模块。
注意有关如何更改包含哪些模块的更多信息,请参阅Runtime Feeds 首选项页面。
有关每个平台编译的具体细节在下面创建最终可执行文件包中给出。
输出输出
每个目标平台可以有一种或多种输出格式,主要有:
- VM:VM(虚拟机)目标为每个平台使用通用runner,然后解释游戏的代码。通常,此选项用于测试是因为它的构建时间更快,但是它提供的性能提升不如使用 YYC 选项(如果可用)所提供的性能提升。你可以用它来为性能永远不会成为问题的小型游戏或游戏编译可执行软件包。
- YYC:YYC(YoYo Compiler) 从你的 GML 代码生成 C++ 代码,然后使用目标的 C++ 编译器将其编译成目标平台的原生代码。它去除了不需要的函数,并执行许多其他优化技术,以创建一个更小、性能增强的可执行包。
这可以将游戏的性能提高至少两到三倍,尤其是在逻辑密集型游戏中,非常适合那些大型或 CPU 密集型项目。编译时间可能会更长,在为目标平台构建任何最终的完整资源包之前,应始终清除编译器缓存。请注意,YYC 目标可能需要为所选平台安装额外的工具,否则它将无法正常工作——您可以从YoYo Games 帮助中心以及本手册中详细介绍的各个目标首选项页面上找到有关此的更多信息。 - JavaScript: JavaScript目标将仅适用于特定目标,例如HTML5目标,并将要编译的游戏设置为纯JavaScript。这对它输出的JS使用ECMAScript 2015(或ES6)。
设备设备
某些平台(例如 iOS 或 Android)允许您将一台或多台设备与GameMaker关联,以便游戏可以有选择地根据这些设备进行编译。最初,设备列表将为空,您需要单击
铅笔图标
才能打开设备编辑器:
在这里,您可以添加新设备,同时对GameMaker测试到任何可能连接的设备的连接。此窗口的确切内容将取决于平台的详细信息(有关任何给定平台的确切详细信息,请参阅设备管理器上的部分)。找到或添加设备后,该设备将显示在此窗口中,如本Android示例图片所示:
设置设备和故障排除问题的确切程序和要求可以在GameMaker知识库的相应部分中找到。
配置配置
正如在配置一节中解释的那样,您可以将编译游戏的某些细节存储为配置。目标窗口的这个部分允许您让 GameMaker 自动为特定的目标平台选择特定的配置。
还可以设置一些首选项来修改和自定义编译工作流程,详见以下页面:
创建最终的可执行文件包
可以单击 IDE 中的 创建可执行文件 按钮
启动编译器生成,也可以从 " 生成菜单 " 中选择 创建可执行文件 。这两个进程都将启动生成进程,生成进程将取决于所选的目标平台。
在GX.games目标上,它将打开一个特殊的窗口,允许您将游戏编译并上传到GX.games; 在所有其他目标上,它将打开一个文件资源管理器窗口,您可以在其中给出您希望用于游戏可执行文件的最终名称,在单击保存开始编译和构建过程之前。完成此操作后,将生成必要的文件,以便您可以根据需要进行分发。
你需要知道
以下是创建可执行文件时需要牢记的事项:
- 如果您没有登录,您将无法创建可执行文件。在创建可执行文件之前,请使用
账户菜单 菜单登录。 - 对于某些平台,编译您的游戏项目将要求您设置了正确的构建工具(请参阅所需的SDKs),并且还填写了适当的平台首选项。
- 根据您的许可证,您可以选择通过命令行构建游戏,从而允许您为项目设置持续集成并简化构建和测试过程。有关命令行构建的更多信息,请参见通过命令行构建。
- 最终游戏包的最大大小为 4GB (不包括流媒体声音、动态纹理和包含的文件)。请参阅缩小最终游戏大小的提示。
- 在完成项目的最终版本发布之前,您应该总是清除资源编译器 缓存 (使用 IDE 顶部的“扫帚”图标
)。 GameMaker 会缓存很多游戏文件,以将编译速度保持在最低限度,这些文件有时会被破坏,所以在进行发布版本构建之前清除缓存更安全。
更好的优化
您可以通过使用 "optimize"( 或 "optimize") 杂注来优化编译器编译游戏代码 (部分) 的方式。这些杂注可能适用于多个目标或特定于某些构建目标。在代码中的正确位置使用它们可以极大地提高游戏的性能。
请参阅gml_pragma以了解您可以使用的优化的完整列表以及如何使用它们。
如何构建不同的目标
每个目标选项保存为平台特定格式,如下所示:
- GX.games - 编译"GX.games"目标时,您将看到"GX.games Packaging"窗口,该窗口将首先要求您使用Opera帐户登录:
如果您已经使用Opera Single Sign-In登录到GameMaker,则无需在此处登录。
接下来,您将被要求使用打包选项:

登录后,它将开始编译您的游戏并将其上传到GX. games。然后您可以点击"在Opera上编辑游戏"在GX上编辑游戏。创建并发布游戏:
请参阅此页面以了解有关GX.games上传过程的更多信息,以及此页面以设置各种导出,例如YYC和移动的。 - Windows-为通用 Windows 操作系统进行编译将首先要求您在创建Installer或Zip包之间进行选择,其中安装程序将是安装游戏的单个可执行文件,而 Zip 文件将是单个*.zip格式的压缩文件,其中存储了所有游戏文件(需要提取文件才能运行游戏)。
如果你选中标有记住包装选项的复选框,则GameMaker将记住未来所有编译的选择(可以从窗口首选项中重置或更改)。你可以从YoYo 游戏帮助中心了解更多信息。
Windows 目标只能编译 64 位的可执行文件。 - Ubuntu(Linux)-"为Ubuntu编译"将要求您在创建. AppImage或. zip文件(包含x 64或Arm可执行文件)之间进行选择(但AppImage不支持Arm)。您可以从YoYo游戏帮助中心了解更多信息。
. AppImage作为软件包通过除Steam之外的任何分发服务器进行共享,而. zip仅用于上载到Steam(因为它专门使用Steam运行时)。因此,无法将创建的.zip作为常规zip文件打开。 - HTML5-如果你选择构建 HTML5,则将创建index.html文件(这是默认名称,但你也可以在 "平台偏好设置" 中给出自己的名字)以及一个包含游戏文件的文件夹,并将其保存到指定位置。为了让你的游戏正常运行,你需要将这两个都上传到服务器。index.html也可以进行自定义,以不同的背景颜色或在不同的位置等显示你的游戏... 但是要做到这一点,你还需要了解 HTML,你也可以在构建软件包时指定自己的自定义索引文件(参见HTML5 Game Options)。您可以从YoYo 游戏帮助中心了解更多信息。
- Android-对于Android设备,您可以从显示的用于保存游戏的窗口中选择构建*.apk或*.aab(Android应用程序捆绑包)文件:
您选择的文件类型将取决于您希望锁定的商店,Google Play需要*. aab文件,而*. apk文件可用于其他商店。您可以从YoYo游戏帮助中心了解更多信息。 - iOS-编译到iOS将创建一个xarchive文件,然后在Xtools中使用该文件创建最终的iOS包。请注意要为iOS编译,您将需要一台运行OSX或更高版本的Apple Mac计算机以及相关的证书和权限。您可以从YoYo Games帮助中心中找到更多信息。
- macOS-为 macOS 目标编译将首先要求你在创建DMG或Zip文件之间进行选择:
"Package as DMG" 将构建 .dmg 安装程序包,可用于在 Mac 电脑上安装游戏。请注意,在此构建过程中,您将看到安装程序出现在 Mac 上,构建过程完成后,安装程序将消失。
"打包为 Zip" 将构建 *.app 文件或 *.pkg 文件,具体取决于你以后是否想将其上传到 Mac App Store。与 iOS一样,你需要一台运行 OSX 或更高版本的 Apple Mac 电脑以及相关的证书和权限。您可以从YoYo 游戏帮助中心了解更多信息。
分发您的游戏
创建可执行资源包后,您可以将文件提供给其他人或将其放在您的网站上进行下载,或者将这些文件上传到不同的托管服务进行单独分发,甚至上传到在线商店(例如Google Play、Apple App Store或Microsoft Store)进行一般分发和零售。
请注意,您可以以任何您喜欢的方式,包括销售GameMaker免费分发您创建的游戏。当然,这假定您用来制作游戏的精灵、图像和声音也可以分发或出售,并且您对所有资源拥有合法权利,并且还假定游戏符合YoYo Games EULA forGameMaker。