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