筆者介紹:姜雪偉,IT公司技術(shù)合伙人,IT高級講師,CSDN社區(qū)專家,特邀編輯,暢銷書作者,國家專利發(fā)明人;已出版書籍:《手把手教你架構(gòu)3D游戲引擎》電子工業(yè)出版社和《Unity3D實戰(zhàn)核心技術(shù)詳解》電子工業(yè)出版社等。
說到游戲架構(gòu)設(shè)計對很多開發(fā)者來講又熟習(xí)又陌生,熟習(xí)的是常常聽人講架構(gòu)設(shè)計,但是陌生的是又不知道甚么是架構(gòu)設(shè)計或說如何去做架構(gòu)設(shè)計。架構(gòu)師也是1個職業(yè),特別是在1些互聯(lián)網(wǎng)公司比如阿里巴巴,京東,滴滴打車等都有自己的架構(gòu)師,架構(gòu)師也是1個逐漸積累的進程。作為我們普通的開發(fā)者,我們?nèi)绾翁嵘约旱募軜?gòu)技能?如何學(xué)習(xí)架構(gòu)技能?先從移動端游戲架構(gòu)設(shè)計說起。
關(guān)于這個問題,很多人咨詢過我,在這里通過博文也給讀者介紹1下,我在這方面的經(jīng)驗。
學(xué)習(xí)架構(gòu)設(shè)計首先要會編程,最少對游戲開發(fā)邏輯能夠快速的實現(xiàn),也有開發(fā)者跟我抱怨說,寫邏輯沒意思,學(xué)不到東西,其實能夠?qū)懞眠壿嬕彩呛苤匾模e個例子,剛畢業(yè)的學(xué)生由于沒有項目經(jīng)驗,通常在公司中是做1些邏輯工作,比如做UI工作,其實這個工作也不是很簡單的,能夠?qū)慤I邏輯的程序,斟酌的問題也很多,比如如何做UI架構(gòu)設(shè)計,如何做到美術(shù)和程序分離等等。自己能否有能力去優(yōu)化NGUI的底層代碼,對每個UI組件代碼自己是不是掌握了等等,靜下心來漸漸去掌握。
在掌握了基礎(chǔ)知識后,接下來開始提升自己了。首先要對經(jīng)常使用的設(shè)計模式掌握好,比如單例模式,工廠模式,簡單工廠模式,狀態(tài)模式,還有經(jīng)常使用的MVC,F(xiàn)SM等模式。學(xué)習(xí)設(shè)計模式不能簡單的死記硬背,但是概念還是要先記下來,網(wǎng)上代碼也很多的,公司項目也會有這方面的代碼,都可以參考學(xué)習(xí),理論聯(lián)系實際開發(fā),這也是學(xué)習(xí)的捷徑。
在游戲開發(fā)中常常使用的設(shè)計模式還是MVC,MVC在游戲中使用的最多,特別是對UI的設(shè)計,MVC的架構(gòu)設(shè)計以下圖所示:
View是針對的UI,Control可以用于View的控制顯示,Model表示的是UI數(shù)據(jù)的顯示。詳情可以參考筆者已出版的書籍:《Unity3D實戰(zhàn)核心技術(shù)詳解》 電子工業(yè)出版社,里面有詳細(xì)的代碼。固然筆者還在CSDN學(xué)院的課程《移動端游戲架構(gòu)設(shè)計》也有講授。
另外一個經(jīng)常使用的架構(gòu)設(shè)計是FSM有限狀態(tài)機,F(xiàn)SM狀態(tài)機主要利用在RPG或ARPG游戲的角色動作,比如角色的各個動作狀態(tài)切換可使用FSM,在筆者已出版的書籍也有講授《Unity3D實戰(zhàn)核心技術(shù)詳解》 電子工業(yè)出版社。
這兩種架構(gòu)設(shè)計必須要掌握,另外在編碼方面,單例模式和工廠模式這兩個常常使用,必須要掌握。
學(xué)習(xí)任何技術(shù)不是1下就可以掌握的,這個主要是在實踐中去積累經(jīng)驗,基礎(chǔ)必須要打好,然后再去提升自己的能力。
記得我之前剛進入游戲公司時,也是做1些UI邏輯工作,那時的想法是能完成任務(wù)就行,從不斟酌如何去優(yōu)化,如何去把代碼寫好。當(dāng)時自己也是很迷惑,不知道后面咋整,晚上回到出租屋,自己就想著做1些簡單的Demo練練手。白天在公司上班,晚上回到出租屋繼續(xù)學(xué)習(xí),當(dāng)時也不知道啥是架構(gòu)設(shè)計,只是在看到他人寫的代碼時感覺非常好,固然第1次也不知道人家為何這么寫,只知道這么寫好。偶爾跟同事聊天說起架構(gòu)設(shè)計模式,說著無意聽著成心,我就去買了1本經(jīng)典的設(shè)計模式書籍,邊看書邊在網(wǎng)上找資料。后面再看他人寫的代碼,立刻有種柳暗花明又1村的感覺。自己也嘗試著寫1些代碼練手,在項目中也嘗試著去應(yīng)用加深理解,就這樣逐漸成長起來。
平時多跟同事聊聊技術(shù),有時不經(jīng)意的1句話可以提示我們,再加上自己的努力,1定會更上1層樓!