
移植 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.
打开平台游戏模板
从现成的项目开始,描述你想要的改动即可。
浏览浏览所有游戏模板
从现成的项目开始,描述你想要的改动即可。
浏览