unity3d框架的先進(jìn)性

1.熱更新

邏輯代碼熱更新, 是客戶端框架的一個(gè)重要功能, 主要解決的是上線期的問題. 這個(gè)特性能及時(shí)的修復(fù)bug, 增加功能, 減少用戶在游戲版本升級(jí)時(shí)候的流失(因?yàn)橹恍枰「?.

不帶熱更新的框架, 通常意味著在這套框架上做的游戲沒有什么上線經(jīng)驗(yàn).

目前, 較為常見的熱更新方案是兩種

  • lua代碼熱更新(最多)
  • c#代碼熱更新(要注意iOS也要熱更)

2.實(shí)時(shí)戰(zhàn)斗

這里有三個(gè)要求:

  • 實(shí)時(shí)性: 有接入過狀態(tài)同步的戰(zhàn)斗, 或者幀同步的戰(zhàn)斗
  • 戰(zhàn)斗邏輯大部分在lua層實(shí)現(xiàn), 可以熱更
  • 性能優(yōu)化

實(shí)時(shí)性, 這里體現(xiàn)了客戶端網(wǎng)絡(luò)層代碼和預(yù)表現(xiàn)層的實(shí)力, 能做到實(shí)時(shí)戰(zhàn)斗的客戶端不多, 幀同步的更少了.
戰(zhàn)斗在lua, 則體現(xiàn)了對(duì)lua層與c#層之間的性能瓶頸的理解, 還有對(duì)戰(zhàn)斗底層封裝的完備性.
性能優(yōu)化, 游戲中最耗資源的地方通常是多人同屏戰(zhàn)斗, 對(duì)戰(zhàn)斗的性能優(yōu)化, 涉及了網(wǎng)絡(luò)層, 競技計(jì)算層和預(yù)表現(xiàn)層, 還有對(duì)美術(shù)規(guī)范(資源)的要求.

3.工具集

工具分成兩大類,

  • (1) 度量工具, 了解指標(biāo)
  • (2) 自研工具, 提高生產(chǎn)力

度量工具, 主要是unity自帶的工具: Profiler, Frame Debugger, Occlusion Culling, Navigation, 還有就是Adreno Profiler(高通)等. 用度量工具的人, 基本就是程序員或者TA了, 他要能夠熟練使用度量工具來定位問題, 找到性能瓶頸. (然后才會(huì)有解決性能的方案)

上海侑虎就非常擅長利用度量工具得出性能指標(biāo), 進(jìn)而指導(dǎo)他的客戶(游戲公司)調(diào)優(yōu)游戲性能.

自研工具, 主要是集成在unity3d里, 給項(xiàng)目組成員使用, 也就是對(duì)游戲制作的整個(gè)pipeline非常了解, 把其中的每個(gè)節(jié)點(diǎn)可以自動(dòng)化的部分, 制作成工具提高生產(chǎn)力.還有一些自研工具, 是集成在美術(shù)資源開發(fā)工具(3dmax)中. 除了提高生產(chǎn)力, 還能規(guī)范輸出.

做自研工具的人, 最難的是他會(huì)了解所有相關(guān)崗位的業(yè)務(wù)過程. 并能制作工具來代替一部分的人工, 規(guī)范輸出, 不給人工"犯錯(cuò)的機(jī)會(huì)". 舉例: 戰(zhàn)斗編輯器, 就是一個(gè)很核心的工具, 一定是做核心戰(zhàn)斗的程序員寫的. 讓策劃可以配英雄, 配技能, 配數(shù)值, 讓美術(shù)調(diào)表現(xiàn), 調(diào)性能.

4.美術(shù)規(guī)范和圖形學(xué)(shader)

從2d到3d, 對(duì)于美術(shù)規(guī)范的要求大大提高.

首先是能提出并維護(hù)好美術(shù)規(guī)范,

  • 同屏面數(shù)
  • 材質(zhì)球
  • 骨骼
  • 特效粒子
  • 貼圖規(guī)格
  • UI圖集打包
  • ...

接著是用什么機(jī)制(工具)來檢查和保證美術(shù)規(guī)范達(dá)標(biāo), 從而在性能和表現(xiàn)中找到最優(yōu)解.

圖形學(xué)部分, 我想把shader先歸類在這里. 因?yàn)槊佬g(shù)規(guī)范和shader通常是TA的工作內(nèi)容, 他們熟練使用度量工具找到性能瓶頸, 然后利用圖形學(xué)知識(shí), 找到高性價(jià)比的方式(比如shader)來實(shí)現(xiàn)表現(xiàn).

5.工程管理

因?yàn)樯虡I(yè)化項(xiàng)目都有保密的需求, 所以如何對(duì)工程進(jìn)行加密, 混淆, 避免代碼流出, 也是一個(gè)強(qiáng)需求. 成熟的團(tuán)隊(duì)里, 會(huì)有美術(shù)工程, 讓美術(shù)人員在美術(shù)工程制作預(yù)制件, 再用工具導(dǎo)入到主工程中, 減少直接接觸代碼的人數(shù).

多版本同時(shí)制作, 怎么同步代碼和資源, 還有考慮到更新, 對(duì)工程管理的要求也很高.

想要解決問題, 要用好gitlab, 以及自動(dòng)構(gòu)建.

6.unity版本號(hào)

unity的自身bug是很多的, 但這幾年快速發(fā)展, bug修復(fù)的也很快, 所以適當(dāng)?shù)母M(jìn)官方版本是必要的. 這代表著框架維護(hù)人員的技術(shù)實(shí)力和追求. 而能夠知道每個(gè)版本之間的差異和升級(jí)框架所花費(fèi)的代價(jià), 就是對(duì)積累最真實(shí)的檢驗(yàn).

每次unity版本升級(jí), 除了unity代碼適配, 還要注意整個(gè)工具鏈的適配, 特別是使用了第三方工具的情況.

7.平臺(tái)適配和sdk接入

需要掌握主流手機(jī)平臺(tái)的特性與語言

  • 安卓
  • iOS

不同平臺(tái)的語言特性各不相同, 至少要再掌握兩種語言. 時(shí)不時(shí)的, 各平臺(tái)還會(huì)有升級(jí)適配的需求, 比如新的iOS發(fā)布, https, 64位應(yīng)用等等. sdk接入, 需要耐心.

總結(jié)

一個(gè)unity3d的框架, 所涉及的知識(shí)點(diǎn)是又寬又深. 所以能維護(hù)好這樣框架的, 一個(gè)人是不夠的, 需要的是一個(gè)團(tuán)隊(duì). 能擁有這樣的框架, 一定是一個(gè)團(tuán)隊(duì)多年的積累和驗(yàn)證.

人才, 是手游公司最核心的資產(chǎn).?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容