flash的stage3d技術為什麼沒落?
12-28
個人認為stage3d是目前web上顯示3d內容最舒服的技術,為什麼火爆了一下就迅速沒落了呢?
在web上顯示3d內容需求下降了嗎?
如果需求沒有下降那是其他技術取代了stage3d嗎?
個人認為unity的那個死板的webplayer是極其不友好的
webgl技術大部分ie瀏覽器都還不支持呀以下是google趨勢截圖
先說說自己的個人經歷:國內早期的AS3 3D引擎作者(曾經小有名氣的zerO3D),後合夥創建開源項目Alchemy3D:純C實現光柵化,用Alchemy1搭建的軟3D引擎,以及後期加入Alchemy2(Flascc)+Stage3D 衍生半商業化的Alchemy3D2。
我想自己算得上以一個忠實開發者的身份陪Flash 3D走過了一段帝國的興衰。
確實Adobe拋棄開發者是一個很大的因素,真正的歸因不僅在戰略層面上,技術層面也是主要問題。AS3後出的整套3D方案(即Stage3D)介面混亂,對目標開發者不友好,最嚴重的是內存及性能問題(想想吧,相同一套C++引擎介面,5000次Draw Call,在IOS上Native Code能跑60FPS,在PC上接入AS3反而僅能跑10FPS,並且佔用不可思議的內存量,各種莫名其妙的崩潰問題,誰用誰知道)。我想這也是後來Unity3D放棄Flash的根本原因。
以上是切身體會,下面客觀分析下對比H5。一般觀點都認為H5比Flash更有優勢。其實不是的。作為行業人士,先不談現在H5是大勢這種言論其實是一種商業化炒作。但從指標上說,H5目前與Flash各有優略:兼容性,Flash雖然是插件,但是覆蓋率太高,幾乎可以認為是瀏覽器全兼容,H5至少WebGL在IE就不行。性能,其實差不多,從穩定性來說,至少Flash好一些,在所有瀏覽器都很慢。移植性嘛,其實主要是說移動平台。這個要綜合來說,兩者走的路線不同,Flash走本地移植(AIR),H5走瀏覽器。拋開開發難度不談的話,結合性能指標,我個人認為H5的3D在移動的瀏覽器跑起來是比較汗顏的,AIR主要存在打包困難問題(以前實測引擎整個打包一次要花2天半Orz,現在不知道是否改善了)。
綜上,其實Flash沒落還在實用性上,Stage3D中期,發行甚至看到AIR項目就不願接,很多CP甚至中途改成微端或上雙端,加上各大廠紛紛脫離(我覺得最致命的就是Unity3D放棄Flash),Flash註定不斷跌落.但是趨勢上,是否沒落,還要看Adobe戰略,相比對抗H5,如何平衡開發者與用戶的流失對其的影響與衝擊是關鍵.
和 Stage3D 沒什麼關係,是 Flash 沒落了。
==========
Flash 沒落的原因主要在於:
1. H5 的崛起:為什麼說html5是移動互聯網的趨勢? - 曾嶸的回答
2. 對手太強大:為什麼 .NET 一宣布開源和支援跨平台,一些人就在喊 Java 可以去死?因果關係何在? - 曾嶸的回答
3. Adobe 的功利性決策: Adobe 停止 Linux 平台 Flash 插件開發了? - 曾嶸的回答
總的來說,Adobe 是個賣軟體起家的公司(現在依然是這樣),這決定了它沒什麼創新的基因,一切的一切,都要為它的核心業務(賣)服務。
那麼,這樣的公司當然不會對開發者友好,它的產品一直是對更有錢的設計師友好的。
Adobe 一再做出拋棄開發者的事情(看看 Archemy、Flex 、 AIR 和 AS4 就知道了),這樣做當然是被開發者拋棄了。
沒有開發者的 Flash,就不是 AS3 了。
新人換舊人本來就是很平常的事情吧,Flash 火了十幾年,也該歇歇了。因為Flash超級慢超級慢超級慢
其實主要原因就是Adobe,2012前後,因為頁游和社交遊戲的興起,flash開發正是如日中天,stage3d難用的跟屎一樣也有一大批開發者追隨,那時候國內的flash開發者活動一場接著一場,絲毫不比現在的VR差,adobe甚至還在準備AS4的開發和archemy的商業化,要是Adobe能夠堅持把flash作為戰略方向,flash起碼可以掙得一席之地,可惜Adobe畢竟是個賣軟體的公司,flash幾乎是被Adobe一步步自己放棄的
我就跟你說個事: 我本子經常性的風扇聲音很大, 打開任務管理器一看cpu佔用. 當然不是chrome的鍋. 自己一看, 就是chrome所在頁面的flash問題把cpu跑滿
flash的原罪Flash殺手--Adobe.
比如一開始只是想嵌入個GUI。然後發現面對的是佔用客戶端50%CPU,50%內存的黑盒。而且這黑盒在移動平台移植中還有各種坑。這時你是程序你咋辦?
這個多方面原因吧,有Flash自己作的問題,也有開發者方面的,stage3d對開發者的要求顯然是要更高的,例如資源控制釋放,結構設計等,而Flash的程序猿大多在這方面有所欠缺,而此時有出現了一個簡單快捷的u3d,所以很多人轉了,而且因為近年來移動端的火爆,很多人轉向移動開發,而這恰恰又是Flash的短板,移動端有U3d,有cocos2d-x,有原生,又有haxe,為什麼要選運行效率不高還要打包Air運行時進去增加體積的Flash呢?因此開發者一再流失,儘管Flash後來做了一些移動端的優化,但依然是不見顯著成效。Flash當然也有優勢,就是在視圖方面的便利和全面也不是其他可以比的,開發工具和相關支持也多。U3d、cocos2d、haxe這些也各有其難以讓人忍受的缺點,例如代碼編譯問題,開發文檔不全面等等等。最近Flash也似乎有所警醒動作頻頻,14年的版本更新非常頻繁 ,很多人可能還不知道Flash已經更新到16.0了吧 ,期待發力吧,畢竟我還是在做Flash開發。
想開發一個3D展示平台,久結了很久,不知道是選stage3d還是unity?stage3d目前基本上支持所有瀏覽器,體驗很不錯,跨平台也可以,可未來好像不被看好。unity4輸出的文件在瀏覽器運行要載入控制項,不方便,unity 5終於要支持輸出html 5了,但html 5不是所有瀏覽器都支持,怎麼選擇很久結。是要看重目前用戶體驗呢?還是考慮以後兼容和升級呢?
adobe自己都不管了。。。
H5 也沒落了,在短暫的黃金窗口期內沒有解決性能問題, 漸漸被放棄,大都開始走app路線。
現在已經有很多stage3d的網頁遊戲,效果非常震撼,在頁游遊戲還是非常優秀的
推薦閱讀:
TAG:WebGL | AdobeFlash | 3D遊戲開發 | 3D引擎 | Direct3D |