最近和幾個(gè)朋友討論怎樣降低游戲開發(fā)難度,提高游戲開發(fā)速度以及可視化結(jié)構(gòu)化的游戲開發(fā)方法
虛幻是在高級(jí)游戲開發(fā)工作流中做的比較好的一個(gè),一整套可視化開發(fā)工具及強(qiáng)大的虛幻腳本讓3D游戲的開發(fā)難度大大降低。其腳本可以方便的調(diào)用引擎中的native函數(shù),當(dāng)然也為游戲的特殊結(jié)構(gòu)提供了諸如state的功能,處理狀態(tài),阻塞邏輯等只有游戲才有的復(fù)雜邏輯
可以說,虛幻為游戲而設(shè)計(jì),又有成熟的商業(yè)游戲用例,因此虛幻是游戲開發(fā)的方向。
回看2D游戲開發(fā),其實(shí)最方便,最系統(tǒng)化的還是使用Flash,或者Silverlight。這些工具都是提供了一套方便的IDE,可以可視化的做動(dòng)畫,并且與代碼整合。
但是以上這些開發(fā),都或多或少使用的是傳統(tǒng)的過程式串行編碼方式來描述一個(gè)并發(fā)執(zhí)行事件的游戲,因此開發(fā)難度還是很大的。
回想起我專業(yè)里學(xué)過的PLC(可編程邏輯控制器),一堆可以控制的繼電器的邏輯組合就可以做出各種復(fù)雜霓虹燈邏輯或者電梯邏輯等。
本人原來所在項(xiàng)目中負(fù)責(zé)一個(gè)任務(wù)系統(tǒng)。但是boss不允許用任何第三方庫,無奈只能自己實(shí)現(xiàn),一開始我就使用了觸發(fā)器架構(gòu),每個(gè)對(duì)象都可以出發(fā)不同的觸發(fā)器,然后是自己實(shí)現(xiàn)的簡(jiǎn)單腳本,用C++解析腳本來讀入觸發(fā)器。對(duì)于策劃,可以很快速的構(gòu)建一個(gè)任務(wù),唯一的缺點(diǎn),就是有點(diǎn)繞
使用觸發(fā)器的地方還很多,暴雪的即時(shí)戰(zhàn)略,基本都是用了觸發(fā)器結(jié)構(gòu),星際爭(zhēng)霸,魔獸爭(zhēng)霸3。魔獸爭(zhēng)霸3中的觸發(fā)器可以說是遍地都是,無需編程,只需要按照系統(tǒng)給你提供的一些字段,比如說 當(dāng) 礦 小于 XX 點(diǎn)時(shí), 執(zhí)行 撤離。這些游戲系統(tǒng)中的人物,都清一色的使用觸發(fā)器。
雖然魔獸世界的代碼沒有泄漏,但是魔獸的服務(wù)器的模擬代碼中描述的任務(wù),就是用一堆數(shù)字的觸發(fā)器在運(yùn)行
因此,觸發(fā)器對(duì)于提高游戲開發(fā)效率有很大的幫助,使用XML結(jié)合自己的系統(tǒng),就可以寫出一套結(jié)構(gòu)化的基于觸發(fā)器游戲系統(tǒng)。