2014年10月4日

Cyber Sprite製作後記2:技術


光點畫出三角形

時間暫停+畫面變灰階

軌跡

能調整位置的音樂欣賞
本遊戲一些畫面和聲音特效。

音樂欣賞是看其他遊戲裡的都沒有做進度條,想聽其中某一段的時候不方更,就決定做得不一樣。
還有一些是靜態圖看不出來的,像是選單滑進滑出、立繪漸變、打命令列的演出,本作很多這種小演出。
想要研發創新,首先要有想出新事物的想像力,還要有將它實現的技術,缺一不可,第二篇後記是關於這方面。



做完這遊戲第一個感想是:工欲善其事必先利其器,一個遊戲作者能做到什麼事跟使用的引擎性能息息相關(包括函式庫、framework、工具,這裡用引擎一詞統稱),例如沒有framebuffer就不能做紙娃娃系統和立繪漸變,沒有地圖編輯器和碰撞判定演算法就做不出ACT和STG。而想做的事現有引擎做不到的時候就要改造了,即使不會自行開發引擎,也最好學會改造引擎底層的方法,才不會有想做卻做不出來的遺憾。

也要先想出一個新構想才會去研究如何把它實現,所以想像力也很重要。當然如果要一個完全沒概念的人去想,不是想不出來就是想出做不到的事,所以要先學好現有的知識當底子才能想出新的東西。做遊戲的基礎知識有影像處理演算法、作業系統的特性等等,還有學校教的英語、數學、物理知識在做遊戲時很有用,像遊戲裡物體的運動就是滿滿的數學,做遊戲事實上是需要唸很多書的工作。

做這遊戲時我通常是腦中先想像完成時的樣子,然後再研究怎麼做出來,少了什麼就發明什麼,而不是先問能做什麼再從這個框框裡想東西,像上面的break point是先想好要有時間暫停+灰階的效果再研究怎麼做到這兩項,為此動用了framebuffer object並寫了灰階化的shader。另外在官網說過下一作預定是ACT,因為ACT和STG製作方法類似,目前累積的技術我覺得足夠做ACT了,就想挑戰這個類型。

當然有被問過為什麼要自己開發引擎,做完Cyber Sprite之後的感覺是如果我用別人做好的引擎,可能會很多想做的東西做不出來吧,我的需求常常要碰底層的東西,很多特效要自己算polygon位置、寫shader才做得到,而且用了一些組合語言級的技巧。

做Cyber Sprite和MMH時有個現象,畫面和聲音的動態演出幾乎都是我這個程式人員想出來的,而不是美術和作曲人員開需求,只有一次做主角點圖的人問我能不能改變色相,這讓我覺得要加強一下人員訓練。即使程式做了一個動態處理影像和聲音的系統,如果其他成員不知道有這個功能,他們想的點子和做的素材自然也沒能讓這個系統發揮,這樣覺得滿可惜的。所以想製作一份說明文件,詳細解說引擎怎麼使用以及能做到什麼,以後有新人進來時也能做為訓練教材。

沒有留言:

張貼留言