GameMaker是(shi)一(yi)個(ge)游(you)戲開(kai)發系(xi)統(tong),允許你使用圖(tu)形、按(an)鈕(niu)(niu)和文(wen)本創(chuang)作自(zi)己的冒(mao)險游(you)戲。由于其拖(tuo)拽按(an)鈕(niu)(niu)與GML語(yu)言的特征,使用GameMaker開(kai)發游(you)戲可以降低對編(bian)程知識的門(men)檻(jian)要求(qiu)。只要拖(tuo)拽圖(tu)形,輸入文(wen)字,點(dian)擊很少的幾個(ge)按(an)鈕(niu)(niu),選擇(ze)一(yi)些(xie)控(kong)制選項,游(you)戲很快(kuai)就可以編(bian)寫成功了(le)。
高自由度
在可(ke)(ke)制作(zuo)(zuo)游(you)戲(xi)類型(xing)方(fang)面,GameMaker是高度自由(you)的(de),非常接(jie)近直接(jie)用(yong)編程語言可(ke)(ke)制作(zuo)(zuo)的(de)游(you)戲(xi)范(fan)圍。諸如“彈幕射擊+益智(zhi) ”、“街機闖(chuang)關+ARPG”、“迷宮冒險+音(yin)樂游(you)戲(xi)”之類的(de)混(hun)合類型(xing)都可(ke)(ke)以自由(you)制作(zuo)(zuo)。
軟(ruan)件(jian)的 3D相關(guan)功能略顯薄(bo)弱,僅是一(yi)個補(bu)充。國外(wai)愛好(hao)者為(wei)其開(kai)發了3D方(fang)面(mian)擴展(zhan)引擎,已(yi)達到(dao)一(yi)般可用水(shui)平。如(ru)果開(kai)發者需(xu)要(yao)(yao)制作“2D+3D”效(xiao)果的游戲,需(xu)要(yao)(yao)將游戲整體設計(ji)在3D模式之下。
GameMaker內(nei)(nei)核(he)為 DirectX 6,并不高級但久經(jing)考驗。網游(you)(you)(you)(you)地(di)推調(diao)查顯示,由(you)于(yu)國(guo)內(nei)(nei)非發達地(di)區的(de)(de)公用(yong)電(dian)腦(nao)配置普遍(bian)不高,因此所開(kai)發游(you)(you)(you)(you)戲能夠(gou)廣(guang)泛的(de)(de)支持國(guo)內(nei)(nei)大部(bu)分電(dian)腦(nao),免卻后顧之憂。軟(ruan)件的(de)(de)處理(li)優化方面,可滿(man)足常規制作,包括對2D游(you)(you)(you)(you)戲引擎要求(qiu)最苛刻的(de)(de)彈(dan)幕射擊(ji)游(you)(you)(you)(you)戲。
跨平臺
GameMaker軟件本體以及所開發游戲,能運(yun)行(xing)在PC/MAC平(ping)臺(tai),運(yun)行(xing)游戲并不需要任何插件。官(guan)方曾表(biao)示過推出(chu)跨平(ping)臺(tai)版本的意向。使(shi)用Game Maker 7/8編譯出(chu)的游戲,可在最新的操作系統Windows7下(xia)運(yun)行(xing)。
GameMaker For Mac、GameMaker HTML5已經面世,GameMaker在未來將支持更多的平臺,使用(yong)該軟件也將獲(huo)得更大的空(kong)間(jian)。
內置編程語言GML
GameMaker最大的(de)價(jia)值在于其內置的(de)一套編程語言——The Game Maker Language (GML)。
GML高度概括(kuo)了(le)2D游(you)戲設計能用到的(de)(de)共通編(bian)程語句,往往濃縮為一個簡短靈活的(de)(de)函數,是“文字(zi)版(ban)的(de)(de)按(an)鈕”,使設計游(you)戲更為靈活。其與(yu)圖形界(jie)面(mian)中的(de)(de)按(an)鈕有(you)對(dui)應(ying)關系(xi)。使用按(an)鈕入(ru)門游(you)戲制作的(de)(de)用戶(hu),可以(yi)從(cong)“我熟悉的(de)(de)按(an)鈕所(suo)對(dui)應(ying)的(de)(de)GML”來進(jin)階(jie)學習。
舉例:
我們要做一個跟(gen)蹤(zong)導彈。
只需在導彈的循環動作中添加一行(xing)move_towards_point(Enemy.x,Enemy.y,Speed)
這樣便做好了對Enemy跟(gen)蹤的導彈,跟(gen)蹤速度為Speed。
GML的(de)潛在價值是不(bu)可估量(liang)的(de)。
在世(shi)界游戲(xi)開(kai)發領域,我們(men)經常碰到這樣的(de)(de)事(shi)情(qing):多種編(bian)程語言設計開(kai)發同一種游戲(xi)的(de)(de)問題。如同真(zhen)實世(shi)界中,人們(men)出現語言隔閡,可(ke)以用(yong)手勢、表(biao)情(qing)與圖畫表(biao)達心意,程序員(yuan)之間也可(ke)以用(yong)大家都理解的(de)(de)“偽代(dai)碼”交(jiao)流。
GML與這種“偽代碼”相似甚至相等。從某(mou)種意(yi)義上(shang)講,用(yong)GML表述(shu)(shu)出來的程序邏輯已經(jing)簡潔到極端。當從事復雜的游(you)戲(xi)設計時,使用(yong)GML來描述(shu)(shu)結構,其明(ming)晰程度可謂首(shou)屈一指。隨著獨立游(you)戲(xi)制(zhi)作界整體(ti)水(shui)平逐(zhu)步(bu)提(ti)高,這種潛在(zai)價值將愈(yu)加明(ming)顯。
這(zhe)些特色,使得一個(ge)GameMaker高(gao)級(ji)用戶,即(ji)便是應付復雜游(you)戲(xi),也能以難以置信的高(gao)速制作(zuo)(zuo);即(ji)使把(ba)游(you)戲(xi)設(she)計作(zuo)(zuo)為(wei)業(ye)余愛好,也能相對(dui)輕(qing)松步(bu)入最高(gao)階——對(dui)游(you)戲(xi)引擎(qing)結構進行優(you)化調整。這(zhe)都(dou)歸功于GameMaker作(zuo)(zuo)者出色的設(she)計才能。
拖拽按鈕
GameMaker設計游戲過程中的一大(da)特征是,可使(shi)用(yong)拖拽按(an)鈕(d&d)進行(xing)游戲邏(luo)輯編排。
舉例:
我們在場景放了2個球。要實(shi)現(xian)一個功(gong)能:2球相撞時,A球反彈,B球爆炸。
具體做(zuo)法是在A球(qiu)的碰撞(zhuang)事件(jian),拖(tuo)拽(zhuai)反彈按鈕(niu);
在B球(qiu)的碰撞事(shi)件,拖拽改變實例按鈕,讓B球(qiu)變成爆(bao)炸動畫;
編輯爆(bao)炸動畫對(dui)象,在(zai)動畫播放結束(shu)事(shi)件,拖拽銷毀按鈕。如此便(bian)完成了功能的制(zhi)作(zuo)。
這(zhe)里不要(yao)求編(bian)程(cheng)基礎,卻需要(yao)一個合乎編(bian)程(cheng)過程(cheng)的(de)明確(que)思路(lu)(事實(shi)上,可以近似認為是編(bian)程(cheng)思想)。是真(zhen)正(zheng)意義(yi)上的(de)“想到便(bian)能做到”。由此(ci),GameMaker為那些從未(wei)接觸(chu)過編(bian)程(cheng),但熱(re)愛(ai)游戲的(de)玩家(jia),邁(mai)入游戲編(bian)程(cheng)世界,提供了(le)一個特別(bie)便(bian)捷有力的(de)途徑。
事件驅動
事件類型豐富周期(step)驅動腳本語言GML具(ju)有如下特征:
1兼容C/VB寫法,語法不(bu)嚴(yan)格,書寫量少
2可(ke)書寫script來擴展功能(每(mei)個script是一個源(yuan)件(jian),相當于一個函數)
3弱類型語言(yan),而且寫入字(zi)段無需預先聲明
4基于角色實例的(de)域
5資源(yuan)樹(shu),可(ke)分(fen)類,每一類源(yuan)件可(ke)自由分(fen)組,便于資源(yuan)快(kuai)速查找
6不同(tong)的過(guo)程(事件/scritp)分開編輯(而不是多個(ge)過(guo)程在同(tong)一個(ge)版面)。
7資源樹中(zhong)細致到每個(ge)script(相當于函數),每個(ge)script分(fen)開編(bian)輯,每一種源件都(dou)有editor,既可使用(yong)象積木(mu)一樣(yang)的action寫(xie)程序(xu),也可使用(yong)gml腳本語言,action的文(wen)本框(kuang)中(zhong)可使用(yong)復雜的表達(da)式(shi)。表達(da)式(shi)中(zhong)可使用(yong)變(bian)量名運(yun)算符函數限(xian)定(ding)名,和gml代碼中(zhong)類(lei)似。
1 可開發大型游(you)戲
2 可調(diao)用dll,來擴展功能(neng)
3 內置網(wang)絡通訊(xun),建立網(wang)絡多玩家游戲(xi)(ipx tcpip 消息接發(fa) sharedData..)
4 通用型(xing)maker,適于多種游戲類(lei)型(xing),不是專為某一(yi)種游戲類(lei)型(xing)而(er)設計
5 碰撞(zhuang)(相(xiang)遇)功能(neng) (碰撞(zhuang)事件(jian),碰撞(zhuang)檢測,contact,碰撞(zhuang)相(xiang)關的(de)移動(dong),mask sprite........)
6 可以處(chu)理(li)多個周期(alarm、timeline等)
7 Paths路徑
8 適于鳥(niao)瞰地(di)圖的(de)尋路(轉彎尋路、A*尋路等)
9 繪圖功(gong)能(draw事件(jian) 高級(ji)draw函數 alpha混合)
10 文件(jian)讀寫(ini 文本) 注冊表讀寫 環境變量(liang) 外部(bu)程(cheng)序 接收(shou)命令行參數
11 內置函數豐富,開發(fa)效(xiao)率高
1 定制遮罩(zhao)繪制精(jing)靈圖形,可以制作望遠鏡效果/按外(wai)形剪(jian)切(qie)圖形外(wai)形顯(xian)示
2 按(an)遮罩透(tou)明度繪(hui)制精靈(ling)圖形,可以繪(hui)制火(huo)焰(yan)/爆炸(zha)圖形特效,去背景操(cao)作
3 完(wan)備(bei)的(de)屏幕(mu)圖形(xing)(xing)繪(hui)制(zhi)功(gong)能,繪(hui)制(zhi)規則形(xing)(xing)狀/點/按鈕/生命值條(tiao)/路徑/箭頭(tou)/多(duo)種可(ke)選(xuan)顏(yan)色/自由(you)合成RGB顏(yan)色/截屏/獲取屏幕(mu)信息
4 自定義各種(zhong)屬性文字繪(hui)(hui)制/圖(tu)形化(hua)字符繪(hui)(hui)制/縮(suo)放/旋(xuan)轉/漸變填充等
5 高(gao)級繪制功能:繪制矢量(liang)點(dian)圖形/帶線(xian)框圖形/圓角形/不規則多(duo)邊(bian)形繪制
具有特(te)別混合去背(bei)景效(xiao)果繪制,多(duo)種可選模式,完成云彩/爆炸/魔法(fa)特(te)效(xiao)繪制
6 獨有的支持元件(jian)圖(tu)(tu)形tiles功能(neng),讓你輕松(song)搞定類(lei)似采蘑菇型元件(jian)拼圖(tu)(tu)式游戲(xi)
7 完(wan)全支(zhi)持屏(ping)(ping)幕調整/設(she)置(zhi)顯示器屏(ping)(ping)幕高(gao)/寬高(gao)度/顏色值(zhi)/設(she)置(zhi)鼠標屏(ping)(ping)幕位置(zhi)
8 游戲窗口操控/類似屏幕調整效果用來調整一(yi)個(ge)游戲窗口
9 獨特(te)的平面視(shi)角控(kong)制views,定制窗口大小觀看舞(wu)臺/類(lei)似(si)攝影機跟(gen)蹤效果,輕松完成第三人稱RPG游戲
10 樣式豐富的舞臺轉(zhuan)場(chang)效果/各種切換特效隨意選擇
11 游(you)戲屏幕可選定時(shi)刷新功能
12 游(you)戲(xi)(xi)信息顯(xian)示功能,顯(xian)示游(you)戲(xi)(xi)幫(bang)助/游(you)戲(xi)(xi)指令(ling)/顯(xian)示圖片(pian)/播放游(you)戲(xi)(xi)動(dong)畫(hua)
13 自定(ding)義(yi)(yi)/顯示(shi)(shi)彈出對(dui)話(hua)框/顯示(shi)(shi)問題對(dui)話(hua)框/輸入數(shu)值/字(zi)符(fu)對(dui)話(hua)框。自定(ding)義(yi)(yi)對(dui)話(hua)框背景/文字(zi)/標題/按鈕及(ji)字(zi)體/存(cun)儲對(dui)話(hua)框/錯誤(wu)對(dui)話(hua)框
14 獨有的高分排(pai)行(xing)顯(xian)(xian)示/自動列舉(ju)/顯(xian)(xian)示/輸入(ru)名稱功能,輕(qing)松(song)制作計(ji)分型游戲排(pai)行(xing)榜(bang)。
15 上百條功能函數完全操控精靈圖像/背景(jing)/3d聲音(yin)/字(zi)體(ti)/路徑/物體(ti)/腳本(ben)/時間線/場景(jing)等資源的各種屬性,并且有游戲(xi)中替換(huan)資源的功能,比如游戲(xi)中從其它(ta)目錄中換(huan)取背景(jing)圖形/換(huan)取聲音(yin)/修改窗(chuang)口(kou)大小/修改游戲(xi)幫助等完全更(geng)換(huan)各種資源。
16 文(wen)(wen)(wen)本文(wen)(wen)(wen)件(jian)讀寫/二進制文(wen)(wen)(wen)件(jian)讀寫/文(wen)(wen)(wen)本跳行(xing)/文(wen)(wen)(wen)件(jian)屬性更改/文(wen)(wen)(wen)件(jian)查找/目錄操(cao)作等
17 完全支(zhi)持(chi)注(zhu)冊表(biao)操(cao)作/任(ren)意修改各種子鍵/支(zhi)持(chi)ini文件讀寫操(cao)作/支(zhi)持(chi)游(you)戲中調用外在程序
18 獨(du)特的五種數據庫(ku)類型(xing)數據/列表存儲型(xing)數據
Stacks Queues Lists Maps Priority Queues
完成不(bu)同要求向堆餞添加(jia)/刪(shan)除(chu)數據操作,適合RPG游(you)戲等人(ren)物道具操作等
19 絢麗的粒子制(zhi)作功能(neng)
簡單(dan)的代碼(ma)讓你實現各種專(zhuan)業(ye)級的各種粒子效果,內置焰火/煙霧(wu)/爆炸/雨(yu)雪氣(qi)候等多個特效直接調用,并可設(she)置發射器/擋板(ban)/反(fan)彈板(ban)/引(yin)力(li)板(ban)等完全自定義功(gong)能
20 功能強大(da)底層(ceng)(ceng)網絡編寫(xie)功能,讓你從最底層(ceng)(ceng)開始(shi)自己制作自己的(de)網絡交流/信息傳輸機制
21 新加的強大的3D制作功能,完成3D-fps的場景/貼圖(tu)/霧(wu)效,以及自定(ding)義(yi)顯(xian)存繪(hui)制surface,完成專業(ye)圖(tu)像級(ji)別得心應(ying)手,自定(ding)義(yi)多(duo)邊形/攝影機/燈光等。
加(jia)上(shang)眾(zhong)多高手為(wei)GM編(bian)寫了(le)無數的動態庫連(lian)接插件(jian)dll,GM可(ke)謂(wei)此(ci)類(lei)工(gong)具里面的最優選擇。
由(you)于(yu)此軟件(jian)并未針對亞洲市場銷售,在 GameMaker 5.3 版之后,不能(neng)直接(jie)在漢(han)字(zi)(zi)及日韓文等 Unicode 編碼文字(zi)(zi)。已有(you)一(yi)些(xie)國(guo)內愛好(hao)者為(wei)其開發(fa)(fa)了(le)實(shi)用的(de)中(zhong)文顯示擴(kuo)展插件(jian),但字(zi)(zi)體(ti)華麗度(du)一(yi)般(ban)。中(zhong)國(guo)獨立游戲發(fa)(fa)展歷程中(zhong),對文字(zi)(zi)類游戲開發(fa)(fa)具有(you)相對豐厚(hou)經驗積累,因此若要設計純(chun)文字(zi)(zi)游戲,請(qing)選用其他軟件(jian),也是對作(zuo)品的(de)尊重(zhong)。GameMaker 的(de)中(zhong)文顯示功(gong)能(neng),正(zheng)確(que)用途是為(wei)動作(zuo)性(xing)游戲顯示漢(han)字(zi)(zi)進行有(you)效補充。
1999年11月15日,Gamemaker 1.1由荷蘭烏得勒支大學(xue)計算機科學(xue)家Mark Overmars在其大學(xue)服務(wu)器(qi)發(fa)布。
2009年12月22日,Game Maker 8 最終版(ban)發(fa)布。
2020年8月20日,YoYoGames正式發布GameMaker:Studio 2.3。