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