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