Game Maker Studio 安卓开发指南

作者:水昆
2017-01-20
7 1 3

引言

大家好,我是水昆,一名使用 GMS 的开发者。

谈起独立游戏开发,Unity 是大多数开发者的首选,但是 GMS 凭借其更低的门槛,更快的开发流程始终占有一席之地,随着 GMS 支持了安卓平台的导出,使用 GMS的开发者也可以进行安卓游戏的开发,而且,像 Crashlands 和 Downwell 这样的上乘之作也证明了其可行性。

这篇教程将面向 GMS 使用者,总结一下使用 GMS 进行安卓游戏开发的方法以及可能会遇到的问题。在阅读本篇文章之前,需要读者已经了解了GMS基本的使用方法。

另外需要提前说明的是,笔者并非安卓方面的专家,我只是对于使用 GMS 制作安卓游戏有一些值得分享的经验,所以,本文中涉及到安卓环境搭建等的部分,还请您辩证地阅读。

安卓开发环境的搭建

要在你的安卓设备上测试游戏并最终打包生成安卓应用,首先需要搭建安卓开发环境。

你要做的只是照着官方的帮助页面下载、安装一系列组件,如果你看不懂SDK、NDK、JDK这样的名词,无须担心——你没必要看懂它们。这个过程虽然麻烦,但确实是必不可少的准备工作。(如果你不是这方面的专家,那么这一部分最重要的就是“按部就班”,确保每一步都按照说明进行,保持网络稳定,关掉杀毒软件等可能会产生影响的程序,耐心。)当然,如果你真的觉得麻烦或是搞不定,不妨考虑万能的淘宝,只用搜索安卓环境搭建就可以了。

完成安卓开发环境的搭建后,继续按照帮助页面完成 Gamemaker Studio 内的相关设置,试着连上你的安卓手机运行一次游戏,成功的话,恭喜!你已经可以开始使用GMS进行安卓游戏的开发了。

安卓设备上的输入

安卓设备和 PC 在形态上有很大的不同,因此也要使用不同的输入方式。

在安卓设备上的“手指”就相当于鼠标左键。如果你想要在安卓设备上实现多点触控操作,就应该用 Device Input 来代替原先的输入操作。当然,如果你的游戏不需要多点操作,你也可以使用传统的 Mouse Input 来进行输入。你还可以使用 device_get_tilt函数来获取设备的空间朝向信息。

另外,你也可以使用 virtual_key_add函数向屏幕上添加虚拟键,添加后的虚拟键同样支持多点触控,注意虚拟键的位置GUI层上的位置,(如果你不了解GUI层不妨看看这里)。

值得一提的是,GMS默认会将安卓设备上的快速双击当做右键单击处理,这意味着有时你只是想快速的点击两下(相当于左键)却被当做是右键点击了一下,要取消这个烦人的功能,只需在游戏开始时执行这段代码:

device_mouse_dbclick_enable(false);

最后,安卓设备上的返回键就相当于 Backspace 键 (index 8, vk_backspace),现在已经很少用到的菜单键和搜索键分别相当于"M" (index 77, ord("M")) 和 Control 键 (index 17, vk_control)

提升游戏性能

如果你想要保证你做出的游戏能够在大多数安卓设备上流畅运行,你就必须考虑到控制游戏的性能需求。

由于Gamemaker Stuido 1.4版本以上的新的基于surface的绘制逻辑并不能满足移动端的性能需求,所以如果你发现你的游戏在没有大量复杂内容时就有卡顿的现象(比如一个空房间不能以60FPS运行),请将这段代码加入到游戏中,并确保它在游戏开始时被执行。

application_surface_enable(false)

事实上,因为某种原因,这一设定对游戏在安卓平台的性能有着巨大的影响,因此我强烈建议将它加入到任何你制作的安卓游戏中,这样做的代价是surface相关的函数将不能使用,这也是 Gamemaker Studio 开发移动端游戏的局限之一。

除此之外,你还是要考虑到移动端和PC的性能差异,提升性能的方式很多。包括但不限于:

  • 避免大量的碰撞检测;
  • 及时删除不再需要的实例;
  • 通过使用 shader 等方式来减少不必要的贴图数量;
  • 不绘制屏幕外的内容;

(更多提高性能的方式,可以参考这篇文章

相关全局设定

安卓游戏的全局设定和PC游戏大同小异。关于 sdk 版本、支持的架构等的设置通常只需要维持默认就可以了。总体来说我发现的值得注意的问题有一下几点:

如果你开发的是类似像素风格的游戏,需要图像边缘清晰锐利,请一定记得勾选 Graphics 选项卡中的 Interpolate colors between pixels.

如果你的单张图片素材大小长或宽超过 Graphics 选项卡中所设定的纹理页大小,则会出现模糊,这时你应该考虑增大纹理页大小。

如果你感到渐变色有明显的颜色梯度,或者低透明度下颜色不准确等现象,将 Graphics 选项卡中将默认的16位颜色改为 24 位,事实上,除非是为了特殊的视觉效果,我强烈建议在一开始就修改这一设定。

总结

以上内容就是我对使用 GMS 进行安卓游戏开发的相关问题的总结,来源都是我自己在尝试使用 GMS 开发安卓游戏的过程中所遇到并解决的问题。总的来说,使用 GMS 开发安卓 2D 游戏绝是绝对可行的。另外这也是我第一次制作教程,请多包涵。接下来有时间的话,打算总结一下 GMS 中 shader 的用法。

近期点赞的会员

 分享这篇文章

您可能还会对这些文章感兴趣

参与此文章的讨论

  1. hackey 2017-01-22

    感谢分享。不过如果要在手机上测试游戏,是不是必须得要先购买GMS呀。免费版应该做不到吧。

    • 水昆 2017-01-22

      @hackey:是的,必须是专业版以上且有安卓模块

  2. 晒死js 2018-01-23

    很有帮助!

您需要登录或者注册后才能发表评论

登录/注册