已經(jīng)搬家到新博客 jjyy.guru
繼續(xù)和大家跟分享游戲技術(shù)统诺、編程心得埂息、unity3d、cocos2d舟扎、emacs分飞、操作系統(tǒng)
手游框架設(shè)計從兩個角度出發(fā):
我們?yōu)槭裁葱枰蚣軒椭_發(fā)呢?首先明確一點(diǎn):技術(shù)是為產(chǎn)品服務(wù)的睹限。在我看來譬猫,一個好的框架,能夠做到快速開發(fā)羡疗、性能優(yōu)秀染服、節(jié)省資源、容易學(xué)習(xí)叨恨,我們從兩個角度來看柳刮。本人畢業(yè)后端游工作,后來在手游公司擔(dān)任主程痒钝,目前在鵝廠秉颗。這里會特意對比演示過去的(在端游)做法與我改進(jìn)的做法(在手游),寫的都是個人經(jīng)驗之談送矩,如果有什么不對請指正蚕甥,希望對大家有幫助。其中例子代碼用lua編寫益愈。
1.從用戶的角度:
這里明確以下性能指標(biāo)中有要求的幾個點(diǎn):首先是性能梢灭,當(dāng)然是越快越好夷家,那么我們可以通過調(diào)整幀率蒸其,節(jié)省手機(jī)電量以及消去發(fā)熱量,手游對性能要求是不低的库快。其次是內(nèi)存摸袁,基本要求是不會因為內(nèi)存用量過度導(dǎo)致閃退,市面上各種低端android機(jī)型內(nèi)存都不高义屏,那么要求就變得更性能一樣了靠汁,也是越省越好。然后是體積闽铐,體積對下載量的影響非常大蝶怔,不過體積不是越小越好,因為有的玩家就是不玩小體積游戲兄墅,這個合適范圍就可以了踢星,通常網(wǎng)游限制在100M以內(nèi),單機(jī)限制在20M以內(nèi)隙咸,要求高的可以用切包的方式壓到5M以內(nèi)沐悦。然后是流量成洗,玩久了玩家會察覺出來的,最好用自己的協(xié)議通信編碼壓縮藏否。最后瓶殃,版本更新應(yīng)該做到增量更新,玩家在面對全量更新的時候是很痛苦的副签。
以上這些功能遥椿,應(yīng)該在框架這一層就封裝好,對業(yè)務(wù)開發(fā)者隱藏起來淆储。
2.從開發(fā)者的角度:
上面說的性能問題修壕,CPU、內(nèi)存遏考、外存慈鸠、流量等等問題都被框架解決了,開發(fā)者可以只管專注業(yè)務(wù)的開發(fā)灌具,但也可以插入自己的特殊處理青团。重點(diǎn)是是迭代速度,盡量讓開發(fā)者專注業(yè)務(wù)開發(fā)咖楣,寫最少的代碼完成最大的工作督笆。我們對開發(fā)流程分開耗費(fèi)時間的步驟,這里有條粗略的時間線:
策劃案->美術(shù)->界面開發(fā)--+
+->數(shù)據(jù)表-+ |
+->協(xié)議->開發(fā)功能->發(fā)布測試->debug->上線
這里可以看到從想法到實(shí)現(xiàn)中間經(jīng)歷了多個步驟诱贿,如果我們可以把這些都打平娃肿,真正地把哪些不屬于業(yè)務(wù)的工作在框架層面就把它解決。那么我們就能獲得最快的開發(fā)速度珠十。比如我經(jīng)沉先牛看到有些項目中自己寫一套數(shù)據(jù)表的Parse來解析不同的數(shù)據(jù),這就是典型不屬于業(yè)務(wù)的工作焙蹭,應(yīng)該自動化把各式各樣的數(shù)據(jù)自動解析晒杈。核心思想是貫徹自動化,借助腳本把真理保持在單點(diǎn)孔厉,并且自動進(jìn)行推導(dǎo)到系統(tǒng)每一處拯钻,這樣我們每次修改或者開發(fā)功能,只需要改最小的部分就可以了撰豺。更重要的是粪般,這樣做能夠讓代碼遵循語意,寫出來的代碼能夠輕松讀懂污桦。下面每個涉及到開發(fā)的都一個個詳細(xì)來說亩歹。