精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

干貨分享:《歡樂坦克大戰》微信小游戲開發總結

新聞 Android 游戲開發
對于微信小游戲平臺采用的 javascript 語言,開發團隊基本上是從 0 開始做,邊學邊做,對自身挑戰很大。因為客戶端開發團隊的核心成員有多年的 Cocos2d-x 引擎開發經驗,所以項目組決定使用 Cocos Creator v1.6.1 版本的引擎進行開發。

  前言

  《歡樂坦克大戰》是一款支持 3V3 實時對戰并首批參與上線的微信小游戲中的作品。因為該游戲為微信小游戲中的重度之作,項目開發周期非常短,所以游戲復雜度、開發難度、性能挑戰也是挺大的;項目組在一個月內就完成了單機、網絡對戰玩法的開發。

  同時,因為客戶端開發團隊的核心成員有多年的 Cocos2d-x 引擎開發經驗,所以項目組決定使用 Cocos Creator v1.6.1 版本的引擎進行開發。而對于微信小游戲平臺采用的 javascript 語言,開發團隊基本上是從 0 開始做,邊學邊做,對自身挑戰很大。

  架構

  網絡通信方面項目采用了 WebSocket 協議進行通信,而通信格式是 json。為了迎合 tdr 的 xml 協議,項目組自己開發了 tdr->json 的轉換工具。

  為了方便策劃同學使用 excel 表格進行數據配置,項目組又開發了將 excel 轉換成 json 文件的工具,以便供客戶端讀取配置文件。

  地圖方面我們沒有使用 cocos 引擎自帶的 TileMap,而是自己實現了一個類 TileMap 機制。策劃同學可以在 excel 中配置地圖信息,使用工具將 excil 轉換成 json 格式的地圖文件供客戶端加載。

  由于開發進度緊張,需要同時開發單機和 PVP 玩法。所以我們封裝了一個命令層(CMD 層)來進行戰斗邏輯驅動。比如使用搖桿控制坦克運動,是由表現層發送 CMD 命令給邏輯層進行處理,在單機模式下 CMD 會存儲于客戶端本地列表,然后由命令管理器 CMDMgr 在 Update 時讀取本地命令列表驅動邏輯層進行處理。而在對戰模式中,CMD 命令會被發往服務器,由服務器廣播給所有玩家,玩家客戶端的命令管理器 CMDMgr 在 Update 時驅動邏輯層進行處理。引入命令層(CMD 層)之后,戰斗邏輯層是抽象獨立的,開發不需要關心當前的玩法模式,可以方便的復用,減少了開發成本。

  我們 PVP 實時對戰采用的是 c/s 模式的同步架構,客戶端做碰撞檢測,將碰撞檢測結果通知服務器,服務器進行校驗并做傷害計算,然后廣播給其他玩家。游戲支持斷線重連、客戶端 crash 重連機制,服務器擁有戰斗中的所有狀態數據,重連時將所有數據發送給客戶端,客戶端進行戰斗場景還原。

  玩家位置同步采用了基于時間戳的位置點同步算法。這個算法原先應用于《全民飛機大戰》的雙打模式、對抗模式中。《全民飛機大戰》中實時對戰采用的是 UDP 通信。而在《歡樂坦克大戰的》WebSocketTCP 環境下也取得了不錯的效果。算法原理如下:

  挑戰

  在開發過程中,我們也遇到了不少挑戰,但是我們都一一解決了,具體遇到的問題如下:

  1、微信小游戲平臺增加了動態執行代碼的限制

  微信小游戲平臺增加了動態執行代碼的限制,比如:eval (‘console.log (1)’)、new Function (‘console.log (1)’)、setTimeout (‘console.log (1)’) 等調用方式無法調用。而在 Cocos Creator v1.6.1 源碼中大量使用了 Function,為了解決這個問題,我們和 cocos 引擎開發商溝通了下,又參考 cocos 在 1.7 版本(當時尚未發布)中的修改,修改了一些源碼,解決了此問題。

  2、微信小游戲不允許超過 4M

  正如標題所示,微信小程序嚴格要求了大小,為了解決這個問題,我們又想了不少辦法。

  措施1:引擎定制裁剪去掉不必要的模塊減少引擎體積,這塊通過設置引擎模塊即可。

  措施2:圖片壓縮

  使用 png 圖片壓縮工具 pngquant,可以有效的減小 png 圖片的文件大小(通常能壓縮 60%-70%)左右。

  通過以上 2 個措施,資源仍然會超標,只能采用資源動態下載的方案了。

  措施3:資源動態下載

  我們在游戲中增加了一個資源更新場景。游戲啟動時,場景進行資源更新時游戲業務模塊都沒有創建,等到游戲場景中再進行業務模塊的創建和初始化工作,然后再進行場景切換。具體方案如下:

  1. 先下載一個資源更新配置文件,此文件中有待資源下載列表、資源校驗 MD5 信息。

  2. 根據資源下載列表,將校驗 MD5 和本地文件進行對比,如果相同則不下載,如果不同則下載。

  3. 下載完畢后,進行 MD5 校驗,如果校驗不通過則刪除本地文件,重新走下載流程。這里的 MD5 校驗,不僅可以校驗資源下載是否正確;對于防止資源被惡意修改,資源反作弊也有一定作用。

  4. 修改 cocos 引擎源碼, 在 load-pipeline 中,將資源讀取替換成讀取本地的下載文件。

  由于游戲運營中可能會有 Bug 發生,需要下發客戶端補丁。資源更新配置文件可能會被多次修改,而 CDN 更新會有延遲問題,導致部分玩家下載的配置文件可能是較舊的版本。而且有部分中小運營商,為了成本考慮,會緩存舊的文件。以往的項目在發生這種情況時,一般是聯系玩家進行定位,發現是運營商問題再反饋給運維同學,由網絡部門的同事推動運營商進行修改,效率不高。為了減少這種情況發生的可能性,我們使用了雙 CDN 策略。

  具體的做法是,對于同名文件增加版本號機制,更新文件時將文件內部存儲版本號 +1,并在 2 個不同的 CDN 進行更新。客戶端下載時,下載 2 份文件,取版本號大的為準。這樣當更新配置文件時,2 個不同 CDN 只要有一個同步到即可,既能減少了 CDN 更新延遲,又降低了運營商緩存問題出現的概率。

  3、性能優化

  和一般的游戲不同的是,微信小游戲平臺本身的 js 腳本執行效率較弱,iOS 環境小游戲 javascript 引擎目前使用的是 JavaScriptCore,默認沒開 jit 優化,js 執行速度會比手機 safari 慢,從簡單測試結果來看,速度會慢兩倍左右。從 Profiler 來看,js 腳本執行時間會占到 80% 左右。因此減少腳本的計算量也是性能優化一個重要的方面。

  優化

  為了解決這些問題,項目組做了以下優化

  DrawCall

  渲染批次合并和大多游戲項目類似,需要合理的規劃圖集的使用,將同一個層次的 GameObj 使用的圖片資源進行拼圖。

  可以分為地圖背景層、地表、地圖物件、坦克、子彈、特效、UI 等拼圖,盡量確保同一個層次的游戲對象使用相同的圖集,相鄰的精靈使用的材質相同。

  mask

  游戲中會顯示玩家的圓形頭像,而微信平臺下載的頭像是矩形。原先頭像顯示使用的是 cocos 的 mask 組件進行渲染,效率較低。我們自己實現了一個基于 mesh 的控件,將一個圓等分為 n 個三角形,給這些三角形頂點賦予相應的 UV,從而畫出一個圓形頭像。減少了頭像渲染時的批次開銷。

  碰撞檢測

  Cocos Creator 自帶的碰撞系統效率不高,沒有做空間劃分,不適合大量單位的碰撞檢測。并且每幀都需要更新碰撞體的碰撞盒。我們游戲地圖中存在大量的靜態物件(如地圖中的磚塊、主基地、鋼板等),而玩家在場景中移動時,是通過移動攝像機達到地圖視野的變化,所以大量的地圖靜態物件的世界坐標是不變的,他們的碰撞盒只需要計算一次即可。

  為了解決這個問題,我們給 cocos 的 node 增加了一個屬性 static,static 節點的計算結果可以緩存起來,避免重復計算。

  對象池

  游戲中的坦克、子彈、磚塊等采用對象池,進入戰斗場景時有足夠數量的預加載,戰斗過程中進行復用,避免實時的對象創建與銷毀。

  避免場景、節點更新

  分析 Cocos Creator 的源碼發現,當有節點發生 active,會觸發遞歸遍歷場景,開銷較大。

  為了避免這類開銷,游戲中的物體死亡時,不會將其從場景中移除或禁用,而是設置死亡狀態,通過移動坐標到很遠的地方,代碼中不執行相應的邏輯處理。盡量保持幀率平穩,避免性能曲線的毛刺

  裁剪

  當物體不在主角視野范圍內并且不是持久播放的特效和聲音可以進行裁剪不播放。

  機型適配

  對于美術資源進行了高、中、低 3 檔分級,由策劃在資源表格中配置不同分級下的資源名稱。游戲過程中,根據機型和實際性能表現,選擇一種檔次進行表現。

  圖中橫坐標是時間(單位秒),縱坐標是 FPS,可以看出 FPS 有了明顯提升。通過一系列的優化措施,最終保證了低端機 iphone5S 基本能滿足游戲需要。

  以上就是《歡樂坦克大戰》微信小游戲開發總結,有興趣的小伙伴可以一起來交流哦~

責任編輯:張燕妮 來源: 博客園
相關推薦

2013-07-17 18:38:32

Android游戲源碼Android源碼下載Android坦克大戰

2013-10-10 14:15:22

微信開發

2011-04-25 09:30:42

坦克大戰Java

2014-12-05 10:25:18

2012-01-10 12:48:52

Java

2018-05-04 10:41:10

2019-10-17 21:37:28

微信飛機大戰Python

2010-08-19 09:54:33

植物大戰僵尸葫蘆娃大戰群妖騰訊

2022-03-10 11:04:04

Vue3Canvas前端

2013-03-21 09:54:51

微信開發者案例

2012-09-11 09:19:35

JavaScriptJSjQ

2018-08-01 14:33:56

微信小游戲小程序

2020-12-09 11:42:18

WiFi IoT鴻蒙開發

2014-11-26 22:32:06

微信

2013-03-18 15:42:47

HTML5手機游戲微信

2018-01-05 14:37:05

游戲程序員跳一跳

2020-03-31 19:22:04

微信實名制小游戲

2012-01-18 10:53:08

iOS小游戲

2018-01-24 16:18:15

小游戲微信社交平臺
點贊
收藏

51CTO技術棧公眾號

av网站大全在线| 国产成人a人亚洲精品无码| 国产精品视频一区二区三区四蜜臂| 色中色一区二区| 亚洲一区二区免费视频软件合集 | 国产精品日韩一区二区三区 | 免费不卡在线视频| 欧美精品在线观看| 国产三级视频网站| 91精品国产色综合久久不卡粉嫩| 亚洲成av人影院| 日本高清精品| 欧美日韩国产成人精品| 欧美va亚洲va国产综合| 国产成人亚洲精品无码h在线| 成人av电影观看| 粉嫩蜜臀av国产精品网站| 欧美主播福利视频| 免费高清在线观看电视| 亚洲97av| 精品国产a毛片| 成人亚洲视频在线观看| 亚洲www色| 国产精品丝袜在线| 精品乱色一区二区中文字幕| 一区二区三区精彩视频| 国产精品腿扒开做爽爽爽挤奶网站| 自拍视频国产精品| 性色av蜜臀av色欲av| 精品国产亚洲一区二区在线观看| 在线观看日韩精品| 国产91在线免费| 日本h片在线| 亚洲欧美偷拍三级| 欧美第一黄网| 亚欧洲精品视频| 高清不卡在线观看av| 国产综合福利在线| 日韩欧美国产另类| 亚洲欧美日韩国产综合精品二区| 久久久久免费精品国产| 欧美成人片在线观看| 91超碰国产精品| 日韩在线中文字| 免费看日本黄色片| 亚洲图片久久| 国产亚洲精品一区二区| 中文精品在线观看| 青草久久视频| 精品亚洲精品福利线在观看| 日韩免费高清一区二区| 精品欧美午夜寂寞影院| 亚洲成人精品久久| 无码人妻一区二区三区精品视频| 国产精品麻豆| 日韩网站在线看片你懂的| 精品国产鲁一鲁一区二区三区| 网友自拍亚洲| 在线观看91视频| 污视频免费在线观看网站| 免费污视频在线一区| 精品视频一区三区九区| 中文字幕亚洲欧洲| 日本成人精品| 亚洲精品二三区| 波多野结衣办公室33分钟| 亚洲人成网亚洲欧洲无码| 亚洲精品一区二区在线| 中文字幕欧美激情极品| 久久美女精品| 欧美日韩高清在线观看| 日本免费在线播放| 免费在线亚洲| 国产精品久在线观看| 在线观看日批视频| 国产麻豆视频精品| 国产精品一码二码三码在线| 午夜av免费观看| 国产女人18水真多18精品一级做| 神马影院一区二区三区| 日本在线观看网站| 亚洲综合免费观看高清完整版| 黄色av网址在线播放| 羞羞影院欧美| 777色狠狠一区二区三区| 女教师高潮黄又色视频| 少妇久久久久| www.欧美免费| 日韩av无码中文字幕| 视频一区二区不卡| 99re在线观看视频| 欧美伦理影视网| 亚洲欧美日韩中文播放| 无码人妻丰满熟妇区96| 成人看片毛片免费播放器| 欧美一激情一区二区三区| 自拍视频一区二区| 99久久99视频只有精品| 97国产suv精品一区二区62| 久久久久亚洲视频| 成人午夜私人影院| 亚洲三区在线观看| av色在线观看| 在线不卡一区二区| 熟女俱乐部一区二区视频在线| 日韩欧美精品| 欧美中文字幕在线| www视频在线| 国产蜜臀97一区二区三区| 国产在线观看欧美| 99蜜月精品久久91| 日韩成人av网址| 顶臀精品视频www| 丝袜亚洲另类欧美综合| 国产精品一国产精品最新章节| 在线国产情侣| 色综合视频在线观看| 在线xxxxx| 小说区亚洲自拍另类图片专区| 日本精品视频在线| 国模私拍视频在线| 亚洲欧美一区二区三区极速播放| 男人搞女人网站| 欧美三级午夜理伦三级在线观看| 欧美成人午夜视频| 97成人免费视频| 国产三级久久久| 日本少妇高潮喷水视频| 亚洲网一区二区三区| 日韩亚洲欧美中文高清在线| 一级黄色av片| 久久精品这里都是精品| 福利视频一二区| 视频精品二区| 日韩综合视频在线观看| 波多野结衣大片| 久久午夜国产精品| 国产精品网站免费| avtt综合网| 欧美激情视频在线免费观看 欧美视频免费一 | 手机在线免费观看毛片| 国产乱码精品一区二区亚洲| 91精品国产乱码久久久久久久久 | 国产成人精品网址| 在线无限看免费粉色视频| 成人精品三级| 最近2019中文免费高清视频观看www99 | 国产精品久久久一区二区| 国产亚洲一区二区三区在线播放| av在线免费观看网址| 欧美男男青年gay1069videost| 婷婷国产成人精品视频| 蜜桃av一区二区| 免费看啪啪网站| 国产精品日本一区二区三区在线 | 国产精品综合视频| 在线观看18视频网站| 日韩精品一区二区三区中文在线| 欧美成人精品在线| 欧美少妇bbw| 午夜精品久久一牛影视| 一本色道综合久久欧美日韩精品 | 最好看的中文字幕| 欧美日韩亚洲一区三区| 国产亚洲精品久久飘花| 一本大道色婷婷在线| 亚洲人成毛片在线播放| 中文字幕+乱码+中文| 18欧美亚洲精品| 亚洲国产精品第一页| 亚洲美女一区| 日韩一区国产在线观看| 国产精久久一区二区| 欧美二区在线播放| 男人天堂网在线观看| 欧美亚州韩日在线看免费版国语版| 337人体粉嫩噜噜噜| 国产一区二区影院| 国产h视频在线播放| 欧美一区二区三| 92国产精品久久久久首页| 激情av在线| 国产亚洲欧美另类中文| 国产精品视频第一页| 亚洲国产一区二区a毛片| 精品无码一区二区三区| 加勒比av一区二区| 成人免费在线网| 红桃成人av在线播放| 91在线观看免费观看| 美女av在线免费看| 爱福利视频一区| 天天操天天射天天舔| 欧美三级电影在线看| 日本一级黄色大片| 中文字幕一区二区三区在线观看 | 99在线无码精品入口| 天涯成人国产亚洲精品一区av| 中文字幕第24页| 99在线热播精品免费| 五月婷婷六月丁香激情| 亚洲欧洲另类| 好吊色这里只有精品| 教室别恋欧美无删减版| 99re在线观看| 国产a亚洲精品| 91av网站在线播放| 影音先锋男人在线资源| 伊人一区二区三区久久精品| 人妻无码中文字幕| 91精品国产综合久久小美女| 香蕉影院在线观看| 亚洲午夜久久久久久久久电影院 | 91tv精品福利国产在线观看| 欧美一区二区三区电影在线观看 | 亚洲激情免费观看| 国产女人高潮毛片| 91福利国产精品| 午夜精品三级久久久有码| 亚洲日本一区二区| 人妻少妇无码精品视频区| 播五月开心婷婷综合| 午夜影院免费版| 捆绑调教美女网站视频一区| 日韩欧美一区二| 国内精品久久久久久久97牛牛| 国产精品av免费| 欧美日韩在线观看视频小说| 另类视频在线观看+1080p| 中文字幕一区二区三区中文字幕| 国产日韩欧美在线看| www.国产精品| 国产大片精品免费永久看nba| 国产高清视频色在线www| 欧美大片免费观看| 宅男在线观看免费高清网站 | 黄毛片在线观看| 国内精品久久久久影院 日本资源| 国产日产一区二区| 美乳少妇欧美精品| 黄色一级大片在线免费看产| 色婷婷av一区二区三区久久| 91露出在线| 国产香蕉一区二区三区在线视频| 牛牛影视精品影视| 亚洲欧美日韩国产中文专区| 四虎国产精品永远| 亚洲精品videossex少妇| 天堂成人在线观看| 亚洲精品日韩丝袜精品| 日韩porn| 国产一区二区三区精品久久久| 91涩漫在线观看| 精品国产一区二区三区在线观看 | 69av在线视频| 伊人网在线播放| 日本精品视频在线播放| 亚洲国产福利| 国产精品成人国产乱一区| 亚洲不卡系列| 91视频免费网站| 国产一区调教| 久久精品人成| av资源久久| 中文网丁香综合网| 欧美黄色一级视频| 男人添女人下面高潮视频| 久久久精品午夜少妇| 欧美三级理论片| 极品少妇xxxx精品少妇偷拍| 伊人av在线播放| 91偷拍与自偷拍精品| 在线观看天堂av| 亚洲欧美一区二区久久| 日韩高清免费av| 欧美在线一区二区三区| 国产又爽又黄免费软件| 精品电影一区二区| 久久精品国产亚洲a∨麻豆| 伊人亚洲福利一区二区三区| av文字幕在线观看| 96精品视频在线| 久久精品国产精品亚洲毛片| 91在线播放视频| 亚洲最好看的视频| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 亚洲国产精品成人无久久精品| 一本大道久久a久久综合| 一级黄色大片免费| 亚洲国产成人av在线| 九九热视频在线观看| 久久天天躁狠狠躁夜夜躁2014| av人人综合网| 国产欧美日韩亚洲精品| 久久a级毛片毛片免费观看| 色一情一乱一伦一区二区三欧美 | 欧美激情精品在线 | 北条麻妃高清一区| 久久av综合| r级无码视频在线观看| 美女www一区二区| 中文在线一区二区三区| 1024精品合集| 在线观看 亚洲| 欧美精品一区二区久久久| 天堂地址在线www| 欧美在线视频网| 在线视频亚洲欧美中文| 亚洲视频在线二区| 国产精品入口66mio| 无码人妻一区二区三区在线视频| 国产免费成人在线视频| 日产精品久久久久| 在线播放亚洲一区| 国产精品免费播放| 国语自产精品视频在免费| 亚洲伦理一区二区| 日韩电影免费观看高清完整| 亚洲影院一区| 日韩无码精品一区二区| 亚洲欧美日韩国产综合| 精品国产www| 亚洲免费伊人电影在线观看av| 欧美日韩经典丝袜| 91免费视频国产| 99精品美女| 一区二区三区视频网| 国产欧美日韩在线观看| 国产区一区二区三| 亚洲成人精品av| 亚洲www色| 成人免费观看网站| 亚洲一级毛片| 日本一二三四区视频| 国产精品免费久久久久| 天天干天天操天天操| 亚洲人免费视频| 欧美成人黑人| 免费一区二区三区| 久久精品系列| 国产精品揄拍100视频| 日韩欧美在线免费| 青青草在线免费视频| 欧美在线激情视频| 日韩有码一区| 国产精品wwwww| 国产女主播在线一区二区| а中文在线天堂| 中日韩美女免费视频网站在线观看 | 夜夜嗨av一区二区三区中文字幕 | 欧美大片网站| 在线视频一区观看| 国内不卡的二区三区中文字幕| 国产精品 欧美激情| 日韩免费性生活视频播放| 日本三级在线观看网站| 99久久久久国产精品免费 | 日本精品一区二区三区四区 | 永久久久久久久| 精品欧美一区二区在线观看| 爱啪啪综合导航| 六月婷婷久久| 免费看欧美女人艹b| 午夜爽爽爽男女免费观看| 亚洲精品在线电影| 在线观看特色大片免费视频| 天天综合狠狠精品| 国内外成人在线视频| 久久久99精品| 日韩精品一二三四区| 91精品国产66| 加勒比海盗1在线观看免费国语版| 国产成人av影院| 日韩一区二区视频在线| 中文字幕亚洲无线码a| 不卡精品视频| 九一国产精品视频| 国产女主播一区| 亚洲精品综合网| 国产精品91一区| 欧美日韩第一区| 久操视频在线观看免费| 日韩欧美国产电影| 成人国产二区| 美女在线免费视频| 久久香蕉国产线看观看99| 国产精品视频一二区| 欧美在线性视频| 久久精品影视| 男人天堂av电影| 日韩精品在线看片z| 九九热线视频只有这里最精品| 樱空桃在线播放| 久久久亚洲精品石原莉奈| 国产99视频在线| 国产不卡av在线免费观看| 欧美一区在线看| 中文字幕免费在线看线人动作大片| 日韩午夜激情免费电影| 先锋欧美三级|