此時(shí),又過去三個(gè)月。這段時(shí)間是項(xiàng)目的關(guān)鍵期,算下來,從年后到現(xiàn)在五個(gè)多月,基本上整個(gè)新游戲項(xiàng)目重頭做,并非簡(jiǎn)單的換皮。而下個(gè)月,即將迎來上線,經(jīng)歷過幾輪內(nèi)部測(cè)試和對(duì)外付費(fèi)測(cè)試,也出現(xiàn)了一些問題并進(jìn)行了修復(fù)。
因?yàn)闀r(shí)間很緊,需要趕在和電視劇一起上,所以加班加點(diǎn)是正常的,這里大概總結(jié)下這段時(shí)間做了些什么,以及遇到的問題,可能之前的記錄中或多或少提到了些。
六月中旬到這個(gè)月前幾天,主要是負(fù)責(zé)開發(fā)三大pvp玩法,總編碼量約六千行,上了機(jī)器人壓測(cè),cpu和io這些控制在一定范圍內(nèi),可能還需要繼續(xù)優(yōu)化,然后關(guān)注些小報(bào)錯(cuò)并修復(fù)。
又翻了下底層框架代碼,刪除了些無用代碼,畢竟每個(gè)關(guān)聯(lián)模塊都會(huì)調(diào)用到。一些數(shù)據(jù)異常,比如某個(gè)時(shí)間點(diǎn)開啟的全服活動(dòng)數(shù)據(jù),在重啟時(shí)可能遺留,所以需要作檢查并清除;再者,這個(gè)時(shí)間段的數(shù)據(jù)是需要落地到db中的,而其他時(shí)間,數(shù)據(jù)則不會(huì)變化,所以每次落地到db是沒有必要的,所以需要在時(shí)間點(diǎn)到時(shí),啟動(dòng)落地,結(jié)束后停止落地。
這樣的優(yōu)化還很多,包括做大幾百號(hào)人的奪城戰(zhàn)時(shí),后期修改給所有參與此玩法的對(duì)象,根據(jù)等級(jí)加經(jīng)驗(yàn)并序列化消息提示到client那邊的需求,我這邊對(duì)些進(jìn)行了優(yōu)化,在啟動(dòng)的時(shí)候,根據(jù)先等級(jí)計(jì)算好能獲得多少的經(jīng)驗(yàn)并格式化消息包,這樣就直接使用lua table的數(shù)組索引一下即可,非常簡(jiǎn)單。
還有比如奪某個(gè)區(qū)域的占據(jù)點(diǎn),只要有不同幫派的人在區(qū)域中,就開始處于爭(zhēng)奪狀態(tài),那么如果原來的區(qū)域中比如有二十個(gè)玩家,如何快速判斷都是同一個(gè)幫派的人還是有不同的呢?難道用a和剩下的人都比較?其實(shí)很多有效的解決辦法,都來自于很基礎(chǔ)的知識(shí),只要慣通一下即可。
接下來的大半個(gè)月,繼續(xù)關(guān)注一些日志方面的問題,并且根據(jù)壓測(cè)結(jié)果進(jìn)行優(yōu)化,首先保證功能正確和穩(wěn)定。
在工作之外,分析了幾個(gè)開源項(xiàng)目源碼,收獲很大,一些設(shè)計(jì)還挺贊的,可以參考之前的博客。同時(shí)也正在看相關(guān)書籍。我認(rèn)為現(xiàn)在有時(shí)間,就多學(xué)點(diǎn),在這條路上走的更遠(yuǎn)些。
這樣算了下,時(shí)間節(jié)點(diǎn)差不多,下面進(jìn)入leveldb的世界。
本來今天是打算分析下網(wǎng)上一個(gè)開源的A*尋路算法實(shí)現(xiàn)的,因?yàn)轫?xiàng)目中的尋路算法實(shí)現(xiàn),人物表面上可能有些問題,改天先看下項(xiàng)目中的實(shí)現(xiàn),之后再總結(jié)一下。