移植 GameMaker 游戏

把 GameMaker 游戏移植到不需要导出授权的项目里

移植 GameMaker 游戏,意思是重建一个你拥有的项目。房间变成场景,对象变成节点,GML 事件变成脚本回调。

移植 GameMaker 游戏,意思是在另一个引擎里重建一个你拥有的项目。GML 是 GameMaker 专有的,.yyp 项目文件、房间和对象定义在别处都没有导入器。不过重建是机械性的,因为 GameMaker 的模型能干净地对应到场景树。

你的 GML 和你自己的美术都归你,所以 GameMaker 移植里大部分东西你都能带走。市场上买的资源要单独确认,因为它们的许可可能把使用范围限制在 GameMaker 项目里。

Summer Engine 给你一个重建目标:带脚本的场景和节点、覆盖 GameMaker 能力范围的 2D 工具,以及游戏做大时可用的 3D。项目归你,没有分成,导出到桌面、移动、网页和主机是引擎的一部分,而不是另外的购买项。

房间、对象和事件对应到场景树

一个房间变成一个场景。一个对象变成带脚本的节点,对象实例变成实例化的场景。Create 事件变成就绪回调。Step 事件变成每帧的处理回调。Draw 事件变成绘制回调。Alarm 变成计时器。对象继承变成场景继承或脚本继承。带原点的精灵变成带偏移的精灵节点,GameMaker 的碰撞遮罩变成碰撞形状。

需要重写的 GML 写法

有些 GML 习惯没法直接迁移。全局变量和 with 语句鼓励一种扁平结构,而节点树处理方式不同,通常靠节点引用和信号。ds_map、ds_list 和 ds_grid 变成字典、数组和嵌套数组,内存自动管理,所以手动的 destroy 调用消失了。instance_create 和 instance_destroy 变成场景实例化和排队移除节点。房间持久化和实例顺序需要显式处理,不能再依赖房间设置。

像素美术、镜头与分辨率

GameMaker 的 2D 项目通常定义一个固定房间尺寸和一个镜头视口。用一个设为基准分辨率的视口来复现它,并为像素美术使用整数缩放加最近邻过滤。亚像素移动是常见的回退:GameMaker 项目常常把坐标取整以保持像素对齐,如果重建时跳过这一步,精灵会在镜头移动时抖动。一开始就定好像素吸附策略,别逐个对象去打补丁。

导出不用分平台授权

GameMaker 历史上把导出目标拆在不同的授权档位和模块里。在 Summer Engine 里,桌面、移动、网页和主机是同一个引擎的平台方向,项目完全归你,没有分成,也没有收入抽成。如果你的 GameMaker 游戏以后还想做 3D 或更重的着色器工作,这份余量就在同一个项目里,不需要换工具。

常见问题

GameMaker 的项目文件能导入别的引擎吗?

不能。GameMaker 的 .yyp 项目、房间和对象定义在其他引擎里都没有导入器,GML 也不能在 GameMaker 之外运行。移植是重建,但是机械性的重建,因为房间对应场景,对象对应带脚本的节点。

GameMaker 的事件怎么对应?

Create 变成就绪回调,Step 变成每帧的处理回调,Draw 变成绘制回调,Alarm 变成计时器。对象继承变成场景或脚本继承,碰撞遮罩变成碰撞形状。

ds_map、ds_list 和 ds_grid 用什么替代?

字典、数组和嵌套数组,而且全都自动管理内存。GameMaker 数据结构所需的手动 destroy 调用不再需要,这让重建后的代码少了一整类内存泄漏。

为什么移植后我的像素美术会抖?

亚像素移动。GameMaker 项目通常会把坐标取整,让精灵对齐到像素网格。如果重建后精灵停在小数坐标上,它们就会在镜头移动时抖动。一开始就为整个项目设定像素吸附策略。

每个导出平台都要单独的授权吗?

不用。桌面、移动、网页和主机是同一个引擎的方向,项目归你,没有分成,也没有收入抽成。游戏用 C++ 和 GDScript 写,C# 也可以,网页除外。

继续探索

用 Summer Engine 创作的更多方式

AI 游戏制作器

用语言描述就能制作完整 2D 和 3D 游戏的中心。

打开

Make a game from a picture and the idea it holds

Bring a picture and Summer Engine builds a game inspired by its look and concept: scenes, gameplay, and matching art in one project you own.

打开

Port a 3DS game by rebuilding it, not converting it

Porting a 3DS game means rebuilding a game you own as a new project that runs on platforms that still sell games. There is no file converter for this.

打开

Port a Nintendo DS game to platforms that still sell games

A Nintendo DS port is a rebuild of a game you own. The stylus design is the asset worth keeping, because touch is native on every phone.

打开

Port a Wii game and decide what happens to motion control

Porting a Wii game means rebuilding a title you own for hardware without a Wii Remote. The pointer and the motion gestures need a new input design.

打开

Port a Wii U game off the smallest console audience

Porting a Wii U game means rebuilding a title you own for platforms with a single screen. The GamePad layer is the part that has to be redesigned.

打开

Port a PSP game and give it a second analog stick

Porting a PSP game means rebuilding a title you own. The camera design is the biggest change, because the PSP had one analog nub and no right stick.

打开

Port a PS Vita game before the platform disappears entirely

Porting a PS Vita game means rebuilding a title you own. The rear touch pad is the one input with no modern equivalent.

打开

Port a GameCube game from 480p to a modern project

Porting a GameCube game means rebuilding a title you own. The analog triggers and fixed camera design are the parts that need deliberate decisions.

打开

平台游戏模板

从现成的项目开始,描述你想要的改动即可。

浏览

浏览所有游戏模板

从现成的项目开始,描述你想要的改动即可。

浏览

现在就开始制作你的游戏

下载 Summer Engine,描述你想要的,看着它逐渐成形。免费开始,无需编程。