當你有一個好的游戲創意卻因沒有代碼基礎而擱淺時,是不是很期待一款這樣的軟件,讓ios游戲開發變得像做份沙拉那么簡單?現在GameSaladInc.就為我們提供了這樣一個便利的開發工具GameSalad。
簡單介紹一下GameSalad:這是一款可視化編程的游戲引擎,使用者無需編碼就能為iPhone, iPad, Mac和Web來設計,發布和分銷原創游戲,簡單易上手,很適合交互和視覺。開發完成的游戲可以通過云端上傳到GS的服務器,發布到的APP store。同類的游戲引擎還有Corona和Unity, 但相比之下GameSalad是最簡單的一款,而Unity則是最強大的一款。到目前為止,已有16萬游戲開發員利用GameSalad在iTunes應用店里開發了16000款游戲,其中有30多款游戲在Apple應用店游戲前100名中榜上有名。
著手使用這個工具開發IOS游戲前,開發者一定要想好整個流程和游戲框架,雖然也許制作過程只是簡單的拖拽行為,但創作中的制圖、音效、關卡設計、故事情節都需要時間去完成。所以我們需要了解一下GameSalad的結構,如下所示:
GameSalad故事板的形式去設計游戲,用場景內來承載不同的事件和物理環境。整個引擎以事件驅動行為,在效率方面表現相當不俗,即使屏幕內有大量的sprite(2D元件)也能保持FPS,不會出現卡幀。
使用GameSalad來制作游戲就像玩2D拼圖,能很快的把元件們組成故事
在物理引擎方面,GameSalad提供了一些基礎的物理參數:重力、摩擦力、加速度、密度、角速度等。這些參數已經可以搭起一個簡單的物理環境。
物理環境決定了游戲里的蘋果會不會落在牛頓頭上
用這些物理屬性,我們可以做一個憤怒的小鳥里最簡單的關卡:
1、我們創建一個球的行為者,為他賦予初速度、加速度和方向,這樣球就會自己動起來啦。
2、為球增加與不同物體的碰撞檢測,如碰到木板時水平速度大于多少時是有效碰撞,之后我們會判定該木板的狀態為已擊破,播放一個撞擊的動畫,同時生成破碎的木板并賦予他們一些物理數據。(這里與實際使用BOX2D或者其他物理環境時原理不同,控制上較生硬)
GameSalad有著明顯的局限性。在推廣方面,用戶需花費一番功夫才能學會學會發行和推廣他們的游戲。而且通過云端上傳源代碼到服務器也讓很多人持觀望態度,這也是為什么Gamesalad不像Unity或Cocos2D那樣經常有大作出現。在技術方面,GameSalad則有以下重要的技術門檻:
1、開發的同時也限制了引擎,其中最重要的就是繼承的管理。Actor和Attribute的分離導致整個引擎只有兩種變量,全局變量和Actor變量Tag。全局變量會同時控制某Actor的父類與子類,而Actor變量只能控制自身。
如上圖,PAPA這個父類可以通過控制TAG來控制自己的行為,子類A和B也能通過控制TAG來控制自己的行為,但不能有一個外部的全局控制器 Control來區分控制他們,即一旦對Attribute這種全局變量做出修改,PAPA\A\B的行為都會改變。這個設計導致了無法進行跨類控制,父類也無法控制子類,在游戲設計上導致了很多限制。