gameboy 是我们一代人的童年回忆,其像素风的画面及泛绿的屏幕效果至今仍被许多复古向游戏所借鉴。出于对游戏的热爱,制作一款 gameboy 游戏,也成为了不少人心中的愿望。如果你也有这样的心愿未了,不妨试试今天介绍的 gb studio,无需编程基础也能做出自己的 gameboy 游戏。

gb studio

认识界面

gb studio 的界面非常直观,新建一个项目后,摆在你眼前的就是整个游戏的故事板。你可以在故事板上看到包括 logo、开始界面在内的所有场景。点击场景或内容物即可在右侧修改其属性,或是为其添加脚本。

在窗口左上角,你可以切换到素材区来查看图像、音频素材。如果你正在制作的是一款剧情游戏,你也可以在「查看剧情脚本」(script review)中检查剧情是否足够吸引玩家。

简单地认识了界面后,我们就可以开始制作属于自己的第一款游戏了。在开始制作游戏前,我们需要准备好游戏的剧情和图形素材。以一个简单的冒险游戏为例,我们要一个勇敢无畏的主角,要一个邪恶的反派,还需要不同的场景让主角游历其中。

绘制素材

gameboy 的屏幕仅支持显示四种灰度,因此在绘制素材时,我们也要谨记这一点。官方文档为背景素材提供了四种可以使用的颜色:#072821(黑色)、#306850(深绿)、#86c06c(浅绿)、#e0f8cf(白色),人物素材在这四色的基础上,删掉了 #306850(深绿),加上了 #65ff00 用于表示透明色。

在任何素材中,都只能包含这四种颜色。如果素材所使用的颜色不包含在内,gb studio 会自动匹配近似的颜色, 但视觉效果会大打折扣。

配色参考

绘制素材的应用,我推荐 aseprite 和 tiled map editor。aseprite 是一款用于绘制动态像素画的工具,支持 windows 及 macos 双平台,你可以在 steam 上以 48 元购买到它。

aseprite 适合用于绘制人物、ui 等小素材,对于游戏场景这样的大型素材来说,使用开源的 tiled map editor 来制作会更加方便。你可以在 官网 免费下载 tiled map editor,它同样支持 windows 及 macos。

gb studio 在素材格式上也有一定的限制。首先,素材必须是 png 格式。静止的物品素材为 16px × 16px,动态物品素材则在此基础上横向扩展,但必须保证高度维持在 16 像素。绘制人物素材的时候,则需要将其正面、背面和侧面都绘制出来,并拼合起来。背景素材至少需要达到 160px × 144px 的分辨率,最大不能超过 256px × 256px。

素材大小范例

绘制好素材后,你需要将它们分门别类地放置到游戏工程文件夹中「assets」下的对应文件夹里。

编辑场景

在游戏故事板中,你可以随意添加场景,并将人物放置在上面。在添加了一个空白场景后,你可以在右侧的编辑栏中修改它的名字、背景等属性,并为其添加脚本。要想在场景上放置人物或开关(trigger),只要在悬浮菜单中选择对应的选项即可。人物的属性设置与场景相同,你可以修改它的坐标来让它生成在不同的位置。

添加场景

此处需要注意的一点是,开关在游戏中是不可见的,并且它是地图交互的必要元素。举个例子,如果你在地图上绘制了一间房子,默认情况下你是不能进去的,只有在你添加了开关并设置脚本,才可以从门口进入。物品和人物的互动则无需这么复杂,你只要选中人物,在右侧的编辑窗口为其添加脚本即可。

由于房屋、树木及地形等元素都是直接画在背景上的,为了不让角色出现在奇怪的地方,我们需要为地图添加空气墙,用于阻挡玩家的脚步。添加空气墙的步骤十分简单,只要按下 c,随后在场景中绘制即可。

当我们将所有场景和人物都添加好后,就可以进入游戏流程的制作了。

开始制作游戏

在游戏中,所有交互和动作都是通过脚本来实现的。你可以为人物添加脚本,让他能够开口说话;你也可以为开关添加脚本,让玩家可以与地图互动。这里以「开口说话」和「与地图互动」为例,简单介绍如何为人物、开关添加脚本,在实际过程中,你可以发挥自己的想象力,做出更多有趣的效果。

要让人物开口说话,只需选中人物,随后在右侧的编辑菜单中选择「添加事件」(add event),即可添加事件脚本。这里我们选择「显示文字」(display text),并在文本框中输入需要的文字(仅支持英文)。只要玩家对着该角色按下 a 键,预设的文字就会显示出来,就像是人物在说话一样。你也可以将其应用到路标、收音机物品上。

显示文字

要添加开关脚本,你需要先添加一个开关,随后在右侧选择「添加事件」。与人物互动需要玩家按下按键,而默认情况下,只要人物站在开关上,它就会启动。因此,如果你希望让玩家在按下按键后才开始互动,则需要在脚本中加上「当玩家按下按键」(if joypad input pressed),并将互动脚本放置在这个 if 条件中。

if 条件

在游戏中最常用到的一个事件脚本就是「切换场景」(switch scene)。你可以为每个切换场景的脚本设置要切换的场景、玩家生成的位置、方向,甚至是切换速度。在设置了「切换场景」的脚本后,故事板中的场景也会由蓝色虚线所连接,看起来更加直观。

制作游戏的过程中,你可以随时点击右上角的「运行」(run)按钮或快捷键 ctrl/command – b 来快速开始试玩。

导出游戏

当你经过努力制作出自己的游戏后,你一定会迫不及待地想要将它分享给别人吧。gb studio 提供了两种导出形式:

  1. 导出为 rom:生成一个 .gb 格式的游戏 rom 文件,你可以在任何模拟器上进行游玩。
  2. 导出网页:生成一个基于 html5 的网页,你需要将整个文件夹上传到服务器,并定位到 index.html(可重命名),随后即可在线进行游玩。

两种导出方式各有优劣,在没有服务器的情况下,第一个选择无疑是更合适的。如果你有一个服务器,那么不妨将游戏部署到服务器,这样一来,只需要一个链接就能畅玩你的游戏。在移动平台上,导出的网页还会自动生成虚拟按键,以供玩家操作。

你可以在 gb studio 的 官网 免费下载它,支持 windows、macos 及 linux 平台。gb studio 也在 github 开源,你可以 在此 查看它的源码。如果你在制作游戏的过程中遇到任何问题,可以在 这里 查阅官方文档。

祝大家可以早日制作出好玩有趣的游戏,如果你将游戏部署到了服务器上,不妨在评论区与我们一起发分享。