<tbody id="suqa6"></tbody>
  • <acronym id="suqa6"><kbd id="suqa6"></kbd></acronym>
    <acronym id="suqa6"></acronym>
  • 騰訊光子 《最強魔斗士》3D 開發優化經驗分享

    2020.5.27 技術干貨 by Cocos

    《最強魔斗士》是由騰訊光子游戲工作室采用 Cocos Creator 3D 開發的一款畫風精湛、玩法有趣的 3D 小游戲,近日騰訊光子開發團隊接受了 Cocos 的專訪,從策劃、運營和技術多個角度,大方分享了游戲的開發經驗,包括關卡設計、動畫效果、角色換裝、碰撞檢測、資源管理和加載、性能優化等,相信能給大家帶來新的思考和啟發。

    游戲亮點

    游戲設計

    《最強魔斗士》沿用了當前非?;鸬墓惒僮髟O計,移動虛擬搖桿即可控制角色移動躲避,停下來的時候會自動對敵人進行攻擊。角色會發射子彈自動攻擊怪物,省去了選擇攻擊目標、選擇技能、進行攻擊的步驟。這種允許玩家單手操作的方式,更適合廣泛的休閑用戶,同時又賦予了玩家一種 「Play to Win」的樂趣。
    在玩家成就反饋上,用相對慢速但可永久保存積累的裝備+秘籍系統,搭配每局戰斗中臨時獲得的局內等級+技能,讓玩家在局內大概 2 秒殺一怪、30 秒清一關、60 秒升一級、10~15 分鐘通一關,能在游戲過程中體驗到飛速成長的即時滿足感。

    戳鏈接查看游戲視頻:

    https://v.qq.com/x/page/d0968ekcndk.html?pcsharecode=&sf=uri

    游戲采用了 2D 場景 + 2D 彈幕 + 3D 怪物和角色的做法:

    • 2D 場景的設計大幅降低了同屏的頂點數,一方面降低運行在 iOS 小游戲平臺的性能壓力,另一方面也留出足夠的性能空間來豐富場景美術。所以我們可以看到和其他弓箭類游戲不同的是,《最強魔斗士》場景細節極其豐富,各種建筑、農田、樹木都做得非常細膩。
    • 2D 彈幕則是弓箭類的標準做法,這可以大幅降低碰撞邏輯運算的壓力,使得游戲可以承載像「3 連發連弩 + 正向箭 + 斜向箭 + 左右箭 + 子彈折返 + 彈射」這樣同屏存在七八十個子彈的軌跡和碰撞計算。  
    • 3D 角色和怪物,則方便做各種技能和換裝,特別是換裝及其背后的經濟系統,這個毋庸多說。

    美術品質

    畢竟是騰訊光子的大廠作品,《最強魔斗士》里無懈可擊的高品質美術令人由衷贊嘆。甚至有多個游戲團隊看到這種美術品質后,驚嘆之余,轉身就把自己公司里處于立項早期的弓箭類項目直接砍掉了 —— 不是技術上做不出來,而是真心沒法做到這種美術水平。

    細節是魔鬼

    《最強魔斗士》除了美術細節之外,在其他方面的細節上同樣打磨了很久。
    作為 Cocos Creator 3D beta 的第一批內測參與者,騰訊光子在 2019 年 7 月份就已經立該項目,微信小游戲里注冊這款游戲名字的時間是 2019 年 8 月 15 日,也就是到現在已經打磨了足足 8 個月。Cocos 團隊在保密條件下,也看著這款游戲逐步完善細節到今天的水平。
    比如在打擊感和操控空間上,不同怪物面對不同武器時的擊退計算、不同的受擊硬直時間、近戰怪物的攻擊前搖時間,都非常精妙;在音效上,不同的怪物配置了不同的擊中音效,這就可以在怪物超出屏幕范圍的時候給予玩家聽覺反饋;在關卡設計上,充滿了各種讓人會心一笑的卡地形、夾角、障礙物縫隙,等著玩家發現和利用。

    在裝備-技能搭配的策略空間上,玩家可以自己搭配出不同的打法流派。不同的套裝對應不同的打法,可茍可浪。
    即使在同樣裝備的情況下,有時歐皇眷顧,局內所有技能不斷正向疊加,而有時則非酋附體,始終抽不到對應技能,這兩者完全就是全場壓制和滿地找牙的區別。
    所以在《最強魔斗士》里,裝備強度 + 運氣水平 + 操控水準,構成游戲過關三個核心要素之間的數值平衡,其實非常微妙。
    順便提示一下:關卡里隨機給予的局內技能,其實并不是完全隨機的,所以并不是表面上看起來的那么簡單哦。

    專訪實錄

    由于本次技術專訪內容太過專訪硬核,為保證閱讀體驗,我們將按照技術和策劃分為 2 期來推薦哦,本期為技術向干貨分享。

    游戲中豐富的關卡設計是如何提高制作效率的呢?

    我們有專門的小組開發關卡編輯器,除了實現傳統的刷子等地表編輯功能外,還有一個更上層的抽象-島嶼,通過表格配置以及一定的隨機規則,可在工具層自動拼接島嶼生成完整的關卡,這是支撐目前數百上千個關卡制作的重要能力。

    游戲中豐富的動畫和效果是如何制作的呢?

    這部分得益于 Cocos Creator 3D 本身強大的動畫系統,我們所有動畫都是美術在 Creator 里制作的,粒子系統和時間軸動畫系統能滿足所有需求,應用到程序里也非常方便。

    角色換裝是如何制作的呢?

    目前產品里的角色是由武器決定外觀的,所以換裝系統并不復雜,武器決定了主角使用的整個模型和貼圖,不過同動作的人物形象是復用骨骼和動畫的,這能節省不少資源量。

    能否分享下我們在碰撞檢測上做了哪些優化策略呢?

    復雜情況下有七八十個子彈和 10 個左右同屏的怪物,這個量其實不算很大,不過因為渲染已經消耗了一半的時間,再加上 iOS 下 JavaScript 解釋執行的效率有限,所以還是遇到了一定挑戰。
    碰撞檢測我們沒有用物理引擎,為了簡化運算,整個游戲里僅支持圓形和矩形碰撞體。障礙物首先對相鄰的矩形進行合并減少碰撞體數量,然后用四叉樹做空間規劃,對每個子彈來說,每次參與運算的障礙物只有 0-2 個,所以這個消耗控制得很低。
    更主要的消耗在于子彈和怪物的碰撞,這方面除了碰撞算法本身要簡化到極致外,更重要的是從上層根據實際業務需求來復用子彈的運行路徑和碰撞測試結果,從而達到大量減少運算的效果。

    如何緩解同屏子彈和怪物數量較多時的渲染性能壓力?

    怪物是 3D 模型,引擎的渲染性能已經很不錯了,另外我們擴展支持了 GPU Instancing,某些情況下能有一定性能提升,目前在低端 iOS 上怪物渲染占了不到一半的幀時間,算是比較可接受的范圍內。
    子彈大多數為 2D 精靈,同屏精靈數量最復雜的情況下有數百個之多,在合理安排層級控制 drawcall 在 40 以下之后,引擎本身的渲染效率已經不錯。

    不過針對如此大量同屏精靈數的情況,我們還是做了比較多的針對性優化才避免了運算峰值帶來的卡頓。
    主要的優化方案大致有這些:

    • 很大部分矩陣運算可以簡化為坐標求和;
    • 實現輕量的 active 功能以優化大量頻繁的節點增刪;
    • 用定制的僅支持 Simple 模式的 sprite 渲染減少動態合批的運算量;
    • 用靜態合批優化不動的精靈渲染;
    • 用懶渲染模式減少序列幀動畫的消耗等。

    Cocos 團隊:v1.1 已經自帶 GPU Instancing 支持,不僅支持靜態模型,還支持蒙皮模型的 Instancing 合批。

    游戲整體非常流暢,可以為我們分享些小技巧嗎?

    資源管理和加載方面我們做了深度的定制,在不改動引擎原生實現的情況下,我們進入新手關卡需要下載超過 300 個文件,總體積在 9M 以上。而定制了文件組織形式和下載流程之后,進入新手關卡只需要下載約 15 個文件,總體積不到 2M。
    資源定制的主要思路是把大量零散的小 json 合并成大 json,然后根據 prefab 的依賴關系把多個文件壓縮成一個 zip 包,運行時下載這些 zip 包解壓使用。
    另外在關卡內戰斗的時候,我們會利用空閑時間去下載下一關的 zip 包,從而達到更快的切換速度。

    對 Cocos Creator 3D 的表現是否滿意呢?

    目前來看對 Cocos Creator 3D 的性能表現是比較滿意的,beta 版本缺乏的一些對性能特別重要的組件也已經陸續支持了,據了解 1.1 版本還會支持 GPU 粒子系統,把性能上留下的一塊短板補上,這個是我們特別期待的。
    至于性能優化方面,對于大型的復雜游戲來說,即使引擎的通用功能性能再好,都避免不了要定制化部分實現,從這個角度來說,希望 Cocos 引擎后續在用戶定制與擴展方面提供更好的支持,這樣能降低用戶直接修改引擎源碼的需求和維護成本,變得更加友好。
    Cocos 團隊:v1.1 的粒子系統開始支持利用 GPU 運算能力進行模擬,大幅度提升運行性能,特別是在不支持 JIT 的 iOS 設備上,可以愉快地增加特效的使用啦。

    最終為什么選擇 Cocos Creator 3D 來制作呢?

    由于微信小游戲平臺上的復雜 3D 游戲案例并不多,所以技術選型是我們特別慎重的事情。
    項目在選型階段花了接近一個月時間,預研了多個現今市場上支持 3D 渲染的H5引擎,并且分別用 Cocos Creator 2.5D 版本,Cocos Creator 3D beta 以及 LayaBox 2.0 引擎實現了原始 Demo,做了詳細性能測試。
    對比了開發流程、技術支持和運行性能的各方面因素,發現 Cocos Creator 3D 在前兩者有明顯優勢,性能上也基本持平,所以成為了我們的首選。

    是否有計劃發布到原生平臺呢?

    目前我們也構建了安卓 App 版本,運行性能高非常多,不過暫時沒有發布計劃,從能力上來看 Cocos Creator 3D 是能滿足跨平臺需要的。
    Cocos 團隊:原生性能一直是我們非常重視的關鍵指標,開發者們可以嘗試把自己的游戲發布到原生平臺,可能會有驚喜哦。

    對于各個崗位上手 Cocos Creator 3D 是否有什么建議呢?

    在 Cocos Creator 3D beta 版本階段,引擎和工具在穩定性以及易用性上面有較多不足,不過隨著版本迭代,我們能感受到引擎的進化非???,對 bug 的響應及修復都非常敏捷。
    目前到了正式版階段,我們開發團隊認為問題不多了,引擎運行層面比較穩定,主要是編輯器方面的穩定性希望進一步加強。

    Cocos Creator 3D 和 2D 在工作流體驗上是否有差異呢?

    非常接近,涉及 3D 的部分需要看一下文檔,其它方面可以無縫切換。

    如何評價 Cocos Creator 3D 的整體使用體驗呢?

    功能豐富性能強大、使用上很簡單符合過往經驗,IDE 集成度高,對團隊協作支持得很好,代碼開源對性能分析和優化很友好。建議方面還是集中在編輯器,希望有更高的穩定性和擴展能力,進一步提升開發效率。

    以上就是我們今天想跟大家分享的內容啦,非常感謝騰訊光子團隊為我們帶來的技術干貨, 。我們也希望越來越多的開發者,能夠通過 Cocos Creator 3D 創作出更多的精品游戲,也祝愿《最強魔斗士》能取得好成績喔。

    国产亚洲精品视觉盛宴,日韩 精品 综合 丝袜 制服,一个添下面两个吃奶把腿扒开,国产真实露脸乱子伦