起因
這兩年一直在用Unity做游戲,主要技術(shù)棧也集中在這個方向上,業(yè)余時間玩玩H5游戲引擎,如白鷺,Laya等。這行做久了,自然會有親戚,朋友,隔壁家大爺大媽,村里的小麗,二狗蛋子找你做網(wǎng)頁,做App,更多的是找你修電腦,修圖等等等等。。。(?ì _ í?)

一般情況下我是拒絕的,因為在外行看來很簡單的事情,在我們看來實際上算IT不同方向的技術(shù),說“隔行如隔山”一點都不過分。
在知乎上也看到用游戲引擎做App是否可信的問題,但是現(xiàn)在那個問題由于不可描述的愿意已經(jīng)無法回答。大部分的回答都給予了否定,主要原因集中在游戲引擎和App框架在渲染方面截然不同,一個是實時渲染,一個是臟渲染(也就是有改動的情況下重新刷新,由業(yè)務(wù)驅(qū)動)。我覺得這里面可以說道的地方還是挺多的,就開篇文章聊上一聊。

事出有因,仔細的想想這個問題
有這種困惑的人可能有以下幾個特點:
1.大多數(shù)是和我一樣的游戲開發(fā)人員,而且是游戲客戶端人員。我們的技術(shù)主要集中在游戲引擎上,用起來當然輕車熟路;
2.另一部分人應(yīng)該是App開發(fā)人員,并且是單端的App開發(fā)人員,比如iOS或者android,而且有這種需求估計是需要單獨接一些私活,或者想創(chuàng)業(yè)。想利用游戲引擎的跨平臺特性,解決勞動力有限的問題(Demo之王Unity可不是浪得虛名的);
3.不明真想群眾想通吃App,游戲開發(fā);

拋開不明真相群眾(=?ω?)?,再看看這個問題,我還是保持樂觀態(tài)度,但是需要理性權(quán)衡下利弊。
首先,原生開發(fā)的優(yōu)勢很明顯:
1.平臺API無縫調(diào)用;
2.性能優(yōu)良,包大小合適;
3.開發(fā)流程明朗,有坑也基本爬完了;
缺點當然不是沒有:
1.獨立開發(fā)要做到全平臺,雖然有諸如React Native,cordova,Qt等等解決方案,但是誰用誰知道,我沒怎么用過,在這里只說一句:學(xué)習(xí)成本還是有的,其他不多做評價;
2.對于個人開發(fā),同時維護多平臺,精力有限
其次,再來看看用游戲引擎開發(fā)的優(yōu)勢:
1.跨平臺性能久經(jīng)考驗,基本滿足一端編譯多端發(fā)布;
2.工具流穩(wěn)定,做游戲沒工具流真會出人命;
缺點很多,不少還是致命的:
1.平臺API很多需要原生自己實現(xiàn)處理一下;
2.性能捉急,畢竟是逐幀渲染,一不小心做成了暖手寶;
3.包大小客觀,不說別家,Unity打包個Hello World都要小10M;
4.有門檻,游戲引擎也不是說用就能用的溜的;
說來說去,到底是行還是不行?
看我叨逼叨這么多,各位也是煩了,你倒是給個痛快,是行?還是不行?
其實大家都是成年人,哪里來的那么多的非黑即白。
我的結(jié)論是:在適當?shù)那闆r下完全可行。
先拋出利益相關(guān):我用Unity制作的App賺過一些錢(數(shù)目不表)
針對利益相關(guān)給出以下可行性分析:
1.對游戲引擎有一定的把控能力。說到底游戲是App的一個子集,游戲也是App其中一種,只不過游戲是一種特殊的,重型的App,它集中處理圖形,渲染相關(guān)的部分??吹揭痪湓捰X得很有道理:“用游戲引擎做游戲就是殺雞用牛刀?!蔽艺J為這種表述沒有問題;
2.開發(fā)工具流合理。我當時決定做這個App是因為目前的開發(fā)流程,我能在兩到三天內(nèi)作出一個多頁面模式的App,這一點很重要,學(xué)習(xí)原聲開發(fā)雙端,可能需要兩三個月吧。至于我的工具流是什么,未來的博客里也會慢慢介紹,最近真的忙不過來(???);
3.需要制作的App對包大小,性能,有一定的寬容度,用戶很少情況下會重度使用App,用游戲引擎開發(fā)問題就不大?,F(xiàn)在手機在硬件方面已經(jīng)表現(xiàn)出過剩的情況,主要短板就在電池上,過分糾結(jié)性能,我都已經(jīng)做完了,那邊還在調(diào)研,也是得不償失;
4.如果App中需要用到圖形渲染已經(jīng)相關(guān)方面,用游戲引擎開發(fā)合適,例如3D展示類App;
寫這最后
沒有最好的技術(shù)選型,就像沒有最好的語言一樣,歸根結(jié)底語言,引擎還是我們開發(fā)人員手中的工具,如何用,什么時候用還是取決于我們自己,越限制,天花板來的越早。
目前用Unity開發(fā)的App最終打包的Apk大小這17M左右(核心功能),將來擴展,應(yīng)該能控制這20M以內(nèi)。性能instruments在紅線邊緣,差不多到Unity下限極值了。
有這方面經(jīng)驗的朋友歡迎交流,共勉之。