GameMaker是一个游戏开发系统,允许你使用图形、按钮和文本创作自己的冒险游戏。由于其拖拽按钮与GML语言的特征,使用GameMaker开发游戏可以降低对编程知识的门槛要求。只要拖拽图形,输入文字,点击很少的几个按钮,选择一些控制选项,游戏很快就可以编写成功了。
高自由度
在可制作游戏类型方面,GameMaker是高度自由的,非常接近直接用编程语言可制作的游戏范围。诸如“弹幕射击 益智 ”、“街机闯关 ARPG”、“迷宫冒险 音乐游戏”之类的混合类型都可以自由制作。
软件的 3D相关功能略显薄弱,仅是一个补充。国外爱好者为其开发了3D方面扩展引擎,已达到一般可用水平。如果开发者需要制作“2D 3D”效果的游戏,需要将游戏整体设计在3D模式之下。
GameMaker内核为 DirectX 6,并不高级但久经考验。网游地推调查显示,由于国内非发达地区的公用电脑配置普遍不高,因此所开发游戏能够广泛的支持国内大部分电脑,免却后顾之忧。软件的处理优化方面,可满足常规制作,包括对2D游戏引擎要求最苛刻的弹幕射击游戏。
跨平台
GameMaker软件本体以及所开发游戏,能运行在PC/MAC平台,运行游戏并不需要任何插件。官方曾表示过推出跨平台版本的意向。使用Game Maker 7/8编译出的游戏,可在最新的操作系统Windows7下运行。
GameMaker For Mac、GameMaker HTML5已经面世,GameMaker在未来将支持更多的平台,使用该软件也将获得更大的空间。
内置编程语言GML
GameMaker最大的价值在于其内置的一套编程语言——The Game Maker Language (GML)。
GML高度概括了2D游戏设计能用到的共通编程语句,往往浓缩为一个简短灵活的函数,是“文字版的按钮”,使设计游戏更为灵活。其与图形界面中的按钮有对应关系。使用按钮入门游戏制作的用户,可以从“我熟悉的按钮所对应的GML”来进阶学习。
举例:
我们要做一个跟踪导弹。
只需在导弹的循环动作中添加一行move_towards_point(Enemy.x,Enemy.y,Speed)
这样便做好了对Enemy跟踪的导弹,跟踪速度为Speed。
GML的潜在价值是不可估量的。
在世界游戏开发领域,我们经常碰到这样的事情:多种编程语言设计开发同一种游戏的问题。如同真实世界中,人们出现语言隔阂,可以用手势、表情与图画表达心意,程序员之间也可以用大家都理解的“伪代码”交流。
GML与这种“伪代码”相似甚至相等。从某种意义上讲,用GML表述出来的程序逻辑已经简洁到极端。当从事复杂的游戏设计时,使用GML来描述结构,其明晰程度可谓首屈一指。随着独立游戏制作界整体水平逐步提高,这种潜在价值将愈加明显。
这些特色,使得一个GameMaker高级用户,即便是应付复杂游戏,也能以难以置信的高速制作;即使把游戏设计作为业余爱好,也能相对轻松步入最高阶——对游戏引擎结构进行优化调整。这都归功于GameMaker作者出色的设计才能。
拖拽按钮
GameMaker设计游戏过程中的一大特征是,可使用拖拽按钮(d&d)进行游戏逻辑编排。
举例:
我们在场景放了2个球。要实现一个功能:2球相撞时,A球反弹,B球爆炸。
具体做法是在A球的碰撞事件,拖拽反弹按钮;
在B球的碰撞事件,拖拽改变实例按钮,让B球变成爆炸动画;
编辑爆炸动画对象,在动画播放结束事件,拖拽销毁按钮。如此便完成了功能的制作。
这里不要求编程基础,却需要一个合乎编程过程的明确思路(事实上,可以近似认为是编程思想)。是真正意义上的“想到便能做到”。由此,GameMaker为那些从未接触过编程,但热爱游戏的玩家,迈入游戏编程世界,提供了一个特别便捷有力的途径。
事件驱动
事件类型丰富周期(step)驱动脚本语言GML具有如下特征:
1兼容C/VB写法,语法不严格,书写量少
2可书写script来扩展功能(每个script是一个源件,相当于一个函数)
3弱类型语言,而且写入字段无需预先声明
4基于角色实例的域
5资源树,可分类,每一类源件可自由分组,便于资源快速查找
6不同的过程(事件/scritp)分开编辑(而不是多个过程在同一个版面)。
7资源树中细致到每个script(相当于函数),每个script分开编辑,每一种源件都有editor,既可使用象积木一样的action写程序,也可使用gml脚本语言,action的文本框中可使用复杂的表达式。表达式中可使用变量名运算符函数限定名,和gml代码中类似。
1 可开发大型游戏
2 可调用dll,来扩展功能
3 内置网络通讯,建立网络多玩家游戏(ipx tcpip 消息接发 sharedData..)
4 通用型maker,适于多种游戏类型,不是专为某一种游戏类型而设计
5 碰撞(相遇)功能 (碰撞事件,碰撞检测,contact,碰撞相关的移动,mask sprite........)
6 可以处理多个周期(alarm、timeline等)
7 Paths路径
8 适于鸟瞰地图的寻路(转弯寻路、A*寻路等)
9 绘图功能(draw事件 高级draw函数 alpha混合)
10 文件读写(ini 文本) 注册表读写 环境变量 外部程序 接收命令行参数
11 内置函数丰富,开发效率高
1 定制遮罩绘制精灵图形,可以制作望远镜效果/按外形剪切图形外形显示
2 按遮罩透明度绘制精灵图形,可以绘制火焰/爆炸图形特效,去背景操作
3 完备的屏幕图形绘制功能,绘制规则形状/点/按钮/生命值条/路径/箭头/多种可选颜色/自由合成RGB颜色/截屏/获取屏幕信息
4 自定义各种属性文字绘制/图形化字符绘制/缩放/旋转/渐变填充等
5 高级绘制功能:绘制矢量点图形/带线框图形/圆角形/不规则多边形绘制
具有特别混合去背景效果绘制,多种可选模式,完成云彩/爆炸/魔法特效绘制
6 独有的支持元件图形tiles功能,让你轻松搞定类似采蘑菇型元件拼图式游戏
7 完全支持屏幕调整/设置显示器屏幕高/宽高度/颜色值/设置鼠标屏幕位置
8 游戏窗口操控/类似屏幕调整效果用来调整一个游戏窗口
9 独特的平面视角控制views,定制窗口大小观看舞台/类似摄影机跟踪效果,轻松完成第三人称RPG游戏
10 样式丰富的舞台转场效果/各种切换特效随意选择
11 游戏屏幕可选定时刷新功能
12 游戏信息显示功能,显示游戏帮助/游戏指令/显示图片/播放游戏动画
13 自定义/显示弹出对话框/显示问题对话框/输入数值/字符对话框。自定义对话框背景/文字/标题/按钮及字体/存储对话框/错误对话框
14 独有的高分排行显示/自动列举/显示/输入名称功能,轻松制作计分型游戏排行榜。
15 上百条功能函数完全操控精灵图像/背景/3d声音/字体/路径/物体/脚本/时间线/场景等资源的各种属性,并且有游戏中替换资源的功能,比如游戏中从其它目录中换取背景图形/换取声音/修改窗口大小/修改游戏帮助等完全更换各种资源。
16 文本文件读写/二进制文件读写/文本跳行/文件属性更改/文件查找/目录操作等
17 完全支持注册表操作/任意修改各种子键/支持ini文件读写操作/支持游戏中调用外在程序
18 独特的五种数据库类型数据/列表存储型数据
Stacks Queues Lists Maps Priority Queues
完成不同要求向堆饯添加/删除数据操作,适合RPG游戏等人物道具操作等
19 绚丽的粒子制作功能
简单的代码让你实现各种专业级的各种粒子效果,内置焰火/烟雾/爆炸/雨雪气候等多个特效直接调用,并可设置发射器/挡板/反弹板/引力板等完全自定义功能
20 功能强大底层网络编写功能,让你从最底层开始自己制作自己的网络交流/信息传输机制
21 新加的强大的3D制作功能,完成3D-fps的场景/贴图/雾效,以及自定义显存绘制surface,完成专业图像级别得心应手,自定义多边形/摄影机/灯光等。
加上众多高手为GM编写了无数的动态库连接插件dll,GM可谓此类工具里面的最优选择。
由于此软件并未针对亚洲市场销售,在 GameMaker 5.3 版之后,不能直接在汉字及日韩文等 Unicode 编码文字。已有一些国内爱好者为其开发了实用的中文显示扩展插件,但字体华丽度一般。中国独立游戏发展历程中,对文字类游戏开发具有相对丰厚经验积累,因此若要设计纯文字游戏,请选用其他软件,也是对作品的尊重。GameMaker 的中文显示功能,正确用途是为动作性游戏显示汉字进行有效补充。
1999年11月15日,Gamemaker 1.1由荷兰乌得勒支大学计算机科学家Mark Overmars在其大学服务器发布。
2009年12月22日,Game Maker 8 最终版发布。
2020年8月20日,YoYoGames正式发布GameMaker:Studio 2.3。