付 郝(深圳淘樂(lè)網(wǎng)絡(luò)科技有限公司,518000)
?
基于納米壓縮跨平臺(tái)高負(fù)載手游的技術(shù)開(kāi)發(fā)
付 郝
(深圳淘樂(lè)網(wǎng)絡(luò)科技有限公司,518000)
摘要:現(xiàn)如今,智能手機(jī)的使用非常普遍,3G和4G網(wǎng)絡(luò)也大規(guī)模的發(fā)展和普及,手機(jī)游戲市場(chǎng)隨之在不斷擴(kuò)大,手機(jī)游戲用戶(hù)也在日漸增多。因此,研究適于手機(jī)平臺(tái)的網(wǎng)游服務(wù)端關(guān)鍵技術(shù)具有很重要的現(xiàn)實(shí)意義和應(yīng)用價(jià)值。
關(guān)鍵詞:手游;納米壓縮技術(shù);服務(wù)器框架設(shè)計(jì);數(shù)據(jù)存儲(chǔ);服務(wù)器的分布式及災(zāi)難恢復(fù);資源更新模塊
手游行業(yè)從剛開(kāi)始的純java的小游戲,發(fā)展到現(xiàn)在的跨平臺(tái)、多線程的重量級(jí)游戲;休閑類(lèi)、回合類(lèi)、競(jìng)技類(lèi)游戲齊頭并進(jìn),百花齊放?,F(xiàn)在跨平臺(tái)技術(shù)主要分為:Cocos2d-X和Unity3D、輕量級(jí)2D游戲多用cocos2d實(shí)現(xiàn),一些較重度的游戲多用unity3D實(shí)現(xiàn)。我們的引擎基于cocos2D-x,進(jìn)行了大幅改良,在內(nèi)存消耗、性能等方面有較大提升,在框架上也有較大改進(jìn),支持了更多特性。
目前深圳甚至國(guó)內(nèi)的手游產(chǎn)業(yè)整體還無(wú)法與國(guó)外同行相比,其主要體現(xiàn)就是原創(chuàng)少,目前市場(chǎng)競(jìng)爭(zhēng)情況讓很多手游公司無(wú)法靜心來(lái)進(jìn)行原創(chuàng)研發(fā),而拷貝市場(chǎng)成熟的游戲一來(lái)是有穩(wěn)定的消費(fèi)基礎(chǔ),能快速帶來(lái)現(xiàn)金流;其次是關(guān)鍵技術(shù)沒(méi)法突破,如:壓縮下載等。
2.1納米壓縮技術(shù)
淘樂(lè)納米壓縮技術(shù),使用了多重壓縮技術(shù),通過(guò)對(duì)可視域色彩的場(chǎng)轉(zhuǎn)換進(jìn)行第一重最重要的壓縮,壓縮掉視覺(jué)不敏感的元素,其次再進(jìn)行RLE行程碼,哈弗曼編碼、滑動(dòng)窗口字典壓縮等多種算法的多重壓縮,達(dá)到極度壓縮的效果。
它采用了一種先進(jìn)的串表壓縮,將每個(gè)第一次出現(xiàn)的串放在一個(gè)串表中,用一個(gè)數(shù)字來(lái)表示串,壓縮文件只存貯數(shù)字,則不存貯 串,從而使圖象文件的壓縮效率得到較大的提高。奇妙的是,不管是在壓縮還是在解壓縮的過(guò)程中都能正確的建立這個(gè)串表,壓縮或解壓縮完成后,這個(gè)串表又被丟棄。
淘樂(lè)納米壓縮技術(shù)適用于圖片資源、數(shù)據(jù)資源。
2.2服務(wù)器框架設(shè)計(jì)(見(jiàn)下圖1)
負(fù)載均衡服務(wù)器:將用戶(hù)訪問(wèn)負(fù)載進(jìn)行平衡、分?jǐn)偟蕉鄠€(gè)web服務(wù)器上進(jìn)行執(zhí)行
Web服務(wù)器:響應(yīng),處理用戶(hù)的訪問(wèn)請(qǐng)求,執(zhí)行程序
Mysql 服務(wù)器:提供可靠,安全的數(shù)據(jù)存儲(chǔ)服務(wù)
Redis服務(wù)器:提供高并發(fā),高訪問(wèn)量的數(shù)據(jù)存儲(chǔ)服務(wù),非常容易和方便
2.3數(shù)據(jù)存儲(chǔ)
為了提高數(shù)據(jù)的高并發(fā),高訪問(wèn),游戲數(shù)據(jù)都存放redis,redis有提供原子性的操作以及數(shù)據(jù)實(shí)時(shí)落地功能。
Redis可以非常方便的進(jìn)行主從同步,而且下個(gè)版本Redis集群功能,提供數(shù)據(jù)的一致性可能犧牲部分允許單點(diǎn)故障的功能,所以當(dāng)網(wǎng)絡(luò)故障和節(jié)點(diǎn)發(fā)生故障時(shí)這個(gè)系統(tǒng)會(huì)盡力去保證數(shù)據(jù)的一致性和有效性。
玩家數(shù)據(jù)將根據(jù)玩家ID進(jìn)行缺塊分庫(kù)存放,這樣以后可以靈活根據(jù)玩家活躍量來(lái)擴(kuò)容或者縮容來(lái)節(jié)省服務(wù)器成本。比如:游戲推廣時(shí)候,預(yù)計(jì)日活躍量有100W,則預(yù)計(jì)需要3臺(tái)redis來(lái)進(jìn)行數(shù)據(jù)負(fù)載。新玩家進(jìn)入時(shí),根據(jù)玩家ID缺塊每5W個(gè)ID存放一個(gè)redis,輪流均衡存放到3臺(tái)redis。等到日活躍量降低時(shí)候,根據(jù)需要,把玩家數(shù)據(jù)冷處理關(guān)閉多余的redis服務(wù)器(見(jiàn)下圖2、圖3)。
圖1
圖2
對(duì)于玩家非常重要的充值購(gòu)買(mǎi)物品等重要操作,用mysql事務(wù)日志來(lái)幫忙記錄,保證玩家數(shù)據(jù)的準(zhǔn)確性和安全性。而玩家其他的一般性操作,則簡(jiǎn)單進(jìn)行文本日志記錄,節(jié)省程序運(yùn)行開(kāi)銷(xiāo)。
2.4服務(wù)器的分布式及災(zāi)難恢復(fù)
Web服務(wù)器統(tǒng)一session服務(wù)器,則可以隨時(shí)隨地增加或者減少web服務(wù)器。
Mysql,redis服務(wù)器可以開(kāi)啟主從復(fù)制,可以根據(jù)實(shí)際情況,在不停服,不影響玩家游戲的情況做到平滑增加或者減少服務(wù)器。
在“互聯(lián)網(wǎng)+”“萬(wàn)眾創(chuàng)業(yè),大眾創(chuàng)新”的時(shí)代背景下,互聯(lián)網(wǎng)相關(guān)行業(yè)的創(chuàng)新尤為重要。本文從移動(dòng)互聯(lián)網(wǎng)手游出發(fā),探究手游的發(fā)展背景、意義及技術(shù)創(chuàng)新,從納米壓縮技術(shù)、服務(wù)器框架設(shè)計(jì)、數(shù)據(jù)存儲(chǔ)等方面入手進(jìn)行創(chuàng)新,以期為廣大用戶(hù)提供更好的服務(wù),促進(jìn)手游市場(chǎng)經(jīng)濟(jì)效益和社會(huì)效益的雙增長(zhǎng)。
參考文獻(xiàn)
尚存保,基于手機(jī)平臺(tái)的網(wǎng)游關(guān)鍵技術(shù)與實(shí)現(xiàn)[D],北京工業(yè)大學(xué),2015.
圖3
Technology development of high load hand travel based on nano compression cross platform
Fu Hao
(Shenzhen Amoy Music Network Technology Co., Ltd.518000)
Abstract:Nowadays,the use of smart phones is very common,3G and 4G network is also a large-scale development and popularization, the mobile game market is constantly expanding,mobile game users are increasing.Therefore,it is of great practical significance and application value to study the key technology of the online game server which is suitable for the mobile phone platform.
Keywords:hand travel;nano compression technology;server framework design; data storage;distributed and disaster recovery; resource update module