[翻譯]使用Flash,HTML5和Unity開發網頁遊戲的對比

[翻譯]使用Flash,HTML5和Unity開發網頁遊戲的對比 作者: 游雲 發表時間: 2011-11-11 18:04 一共有 626人看過

原文鏈接:[翻譯]使用Flash,HTML5和Unity開發網頁遊戲的對比

本帖最後由 游雲 於 2011-11-11 18:01 編輯 來源:http://www.photonstorm.com/archi ... ash-html5-and-unity

2011年11月10日的一篇非常詳盡的文章。從工作流、平台穩定性、移動終端等10個方面詳細闡述對比了用Flash,HTML5和Unity開發網頁遊戲。

今天對於全球的Flash開發者來說是黑暗的一天,因為Adobe宣布將不再對移動設備上的瀏覽器進行Flash技術支持。在這之前,Adobe剛剛宣布了公司範圍內的大幅度裁員。儘管這似乎並不是什麼嚴重的問題,但是這卻又使「Flash hate wagon」開始轉動。 首先,我只關心基於網頁的遊戲開發。因此,這篇文章只關注這個主題。這並不是一篇關於Flash和HTML5的爭論文章, 也不是教你如何在移動設備上搭建應用程序。所以,這篇文章純粹的是關注當今開發web game的現實。 我比較了Flash,HTML5,Unity,因為他們是當今唯一可行的web game開發平台。我列了10個主題來比較他們:

  • 開發流程 – 用它來開發一個遊戲有多容易?
  • 平台穩定性 – 當你開始和結束開發遊戲這段時間內,它會發生改變嗎?
  • 向後兼容性 – 用它開發的遊戲10年後還能運行嗎?
  • 移動性 – 移動設備的支持
  • 打包與分發 – 如何流通
  • 安全性 – 代碼和知識產權保護
  • 貨幣化 – 如何運營賺錢
  • Facebook – 社交遊戲的角度
  • 多少人會玩你的遊戲
  • 3D支持 – Stage3D vs. WebGL vs. Unity
  • 上述的方面我認為是所有遊戲開發者在評估一個新的開發平台時都應該注意的。我希望這些建議對新,老Flash開發者來說都會有所幫助。1.開發流程Flash:用Flash來開發遊戲非常簡單。因為關於它有無數的書籍,網站,教程,框架,視頻和源代碼。對於開發工具來說,Flex route是免費的,Flash IDE需要付費。Flash擁有通用且強大的矢量渲染功能,這意味這你創建的動畫的文件格式會非常小。它全面支持音頻和大多數的Adobe應用程序,例如在Flash IDE中嵌入Illustrator 和 Photoshop。而且Flash還有大量的內置功能。HTML5:編輯器例如JetBrains 的Astella會使編程變的不那麼痛苦。有一些優秀的調試工具使瀏覽器調試也非常簡單。有許多關於HTML5遊戲開發的書籍,網站,在線資源和示常式序。開發HTML5遊戲的工具是免費,但是也有商業的工具,例如GameMaker HTML5 和Game Salad。如果你想讓程序效率更高,並且你不怎麼關注底層運行機制,你可以使用特定的的庫類似ImpactJS。Unity:有一個優秀的可視化編輯器,並且可以嵌入主流的3D應用程序中。基礎版本是免費供家庭使用的。也可以在公司里使用,每年需要交納不到100K $ 的費用。專業版本帶有各種插件,價格在1500$上下。一旦你有了Unity,大量的教程和資源也隨之提供,所以學習並不是問題。2.平台穩定性Flash:Flash是跨平台的,它不在乎你用的操作系統和瀏覽器是什麼,不管你是破舊的IE或是最新的Chrome。只要你使用的平台上有Flash Player,對於體驗來說都是一樣的。Adobe每年都會發布一個新版本和許多現有版本的更新。HTML5:HTML5一直處於變動中。基於此有2個副作用:第一,即便你什麼都沒有做,你的遊戲仍然有潛在的崩潰可能。這是因為之前你已經升級或使用其他瀏覽器了。第二,你必須考慮多平台。在Chrome上可以運行只是第一步,你還必須處理IE,Firefox,Safari和各種操作系統。由此帶來的維護成本也不能低估。另外,最大的技術挑戰包括音頻支持以及不一致的畫布渲染速度等。Unity: Unity的web player擁有和Flash一樣的優勢。Unity的插件也是跨平台的。Unity本身也會定期的發布新功能。3.向後兼容性Flash:10年前,用AS1製作的遊戲仍舊可以在現在的Flash Player11上運行。向後兼容性十分出色。HTML5:對於HTML5來說,比較向後兼容性有點不公平,因為它還在發展中。這意味著,如果它不符合W3C標準,就會被廢棄。Unity:Unity並不支持以前的插件,最開始我開期待它會像Flash一樣,但似乎並不是這樣。4.移動性Flash:直到今天前,我可以說,除了iOS平台,Flash插件對於移動平台的支持是偉大的。 但是Adobe官方宣布已經不再對移動設備上的Flash Player插件繼續支持了,你可以認為它已經完全死了。當然你可以通過AIR來創建移動應用程序,但是這些不屬於web game的範疇,所以我們不在此進行深入討論。Stage3D對於移動的支持並不成熟,隨著許多硬體廠商的合併,以及逐漸老化的AVM,對於Adobe的開發者來說是一場艱難的戰爭。種種跡象表明,在重建過程中,Adobe已經把Oliver Goldman從AIR團隊中調到雲項目。Oliver在AIR中是核心人物,至於結果怎樣,只能仁者見仁了。HTML5:HTML5對於移動的支持力度越來越強,iOS5上已經看到了性能的明顯提升。當移動瀏覽器開始介入這些新特性,例如觸摸事件和加速度的支持,我對於HTML5的前景逐漸看好。當然,你必須處理不同的屏幕解析度和畫面比例,但是這個問題不是只有HTML5有。Unity:Unity並不支持移動瀏覽器上的插件。考慮到Unity的強項在於原生移動應用程序的編譯,我能理解原因。

    5.打包與分發Flash:Flash的遊戲最終都壓縮成一個SWF文件。SWF文件可以簡單地通過帶有HTTP服務的網站進行傳輸。或者,它可以鎖定到一個具體的URL上。Flash遊戲的門戶網站完全基於SWF文件的流動方式。SWF文件傳播地越廣,你掙的錢就越多。HTML5:對於HTML5的遊戲來說,沒有跨平台或者統一的打包方式。那些最大的遊戲門戶網站都不允許開發者上傳遊戲。我認為是因為涉及到安全問題,它們不允許在站點上運行外來的JS程序。這就意味著傳播HTML5遊戲的唯一方式就是通過URL共享到一個目的站點,或者通過iFrame來嵌入。最終,是由開發者或贊助商來為給他們的遊戲提供上傳站點的主機費用買單。Flash傳播遊戲的方式是從站點來取出SWF文件,然後hosting這些SWF文件。這聽起來不那麼臭名招住,因為這的確是Flash掙錢的方式。門戶網站可以使用帶有沙箱參數設置的iFrame,但是這樣做會阻止HTML5遊戲需要使用的特性,例如本地存儲和表單。Unity:Unity和Flash類似,因為它也會最終創建出一個單一文件,然後上傳到遊戲門戶網站,例如Kongregate。6.安全性Flash:SWF並不完美,但至少它能打包你所有的資源和代碼到一個單一的文件,這就需要對它本身的技術很了解或者第三方的軟體才能破解它。市場上有很多SWF保護服務和代碼混淆軟體,基本上可以防止隨意的黑客和盜賊。HTML5: JS代碼可以混淆,但是不能被未加密的客戶端加密。在內存中運行時,代碼很容易被修改。圖形和音頻內容極容易被盜,可以通過Chrome或者Firefox的對象檢查器,甚至通過瀏覽器的緩存文件夾。有人認為有一些保護HTML5資產的方式,並且認為Flash的資產一樣容易被盜用。我不打算進入文件保護的辯論,我只想說,可以用來保護HTML5資產的方法都可以應用到Flash中。Unity:和Flash類似。如果什麼人有足夠的決心來盜取它的資產,他會需要相當多的技術知識。7.貨幣化Flash:有許多很好的方式來掙錢,包括:遊戲贊助,在遊戲中的廣告,與遊戲門戶網站的收入分成,廣告分成,遊戲中的交易,僱傭式遊戲打工等等。我知道很多開發者完全不需要贊助商,只需要遊戲和廣告收入分成。網路中有大量為廣告服務的API,只需要簡單的上傳你的遊戲,就可以等到長期收入分成。HTML5: 存在一些遊戲中的廣告服務,也可以把Google廣告放在遊戲中。我還沒看到任何HTML5的遊戲贊助市場或者收入分成交易。在遊戲中的交易服務,比如Fortumo,已經存在和完善。Unity:這裡我不太懂,也許讀者可以補充。8.FacebookFlash:Facebook上最流行的遊戲都是用的Flash。The Sims Social每個月3600萬的玩家使用的都是Flash。新的水果忍者同樣使用Flash,並且會用到Flash 11的新特性。絕大部分的Zynga遊戲也都使用Flash。之所以會這樣,是因為Flash的受眾,現有的技能(Flash開發者眾多)和簡單的開發流程。同時在Facebook上可以有很多方式來掙錢,因為它有大量的第三方服務和API介面。HTML5: 我努力在Facebook上尋找最流行的純HTML5遊戲。當然肯定會有一些,因此,如果你找到了請帖鏈接。Zynga在2010年就收購了Dextrose,但是我還沒看到什麼結果。一些公司已經發布HTML5遊戲到Facebook上,比如OMGPOP的Gem Rush,每日用戶10人。但是Gem Rush只是用了HTML5的API,遊戲本身還是Flash的!因此我的結論,目前為止,Facebook上最大的玩家群體還是使用Flash。Unity:看上去Unity遊戲在Facebook上也有一些贏利點。如UberStrike (每個月83萬玩家) 和King』s Bounty(每個月2萬玩家)。只要遊戲內容足夠吸引人,Facebook的用戶也不方隊安裝Unity插件。9.多少人會玩你的遊戲Flash:因為事實上,很多桌面用戶都連接到互聯網玩遊戲,所以Flash的用戶數量是巨大的。一個標準的Flash遊戲在第一年通常有2-3百萬次的訪問量。好的Flash遊戲當然次數更多。我們的遊戲Home Sheep Home一上線就有每天1百萬的訪問量,在18個月內已經有1億的訪問量。這是一個驚人的數字。加上Facebook巨大的用戶群,一定會有成百上千的用戶在玩Flash遊戲,玩家完全不是你的問題。HTML5: 老實說,我無法找到任何相關數據,可能這個技術太新了,也沒有用它做出來的好遊戲。從技術上講,可以說,潛在的用戶可以有10億,但是究竟事實上能有多少,開發者可以試試。Unity:雖然Unity官方聲明了玩家的數量,但是並沒有第三方的統計。Kongregate上只有總共577000的訪問量。而最好的Flash的遊戲已經有2500萬的訪問量。事實上,排名前一百的Flash遊戲沒有低於250萬的訪問量。10.3D支持Flash:Flash Play 11引入了Stage3D,它本質上是OpenGL ES 2.0。Adobe已經做了一個標準化的工作來實現它,但是也有一大堆注意事項。首先,遊戲需要用wmode=direct來嵌入。而大多數的遊戲門戶網站還不支持,所以如果你的遊戲放到一個不支持它的門戶上,它根本不會運行3D硬體。其次,不支持GPU的黑名單很令人喪氣。任何2009年前的驅動程序無法工作;最常見的英特爾GMAS(板載圖形晶元)也無法工作。而在2007年,90%的個人電腦都用了因特爾GMAS,這是個真正的大問題。當然Adobe必須要劃一條線,但是Flash的吸引力在於它無所謂運行在什麼樣的硬體上。如果你用了Stage3D,實際上你已經把巨大的潛在玩家拋棄了。所以必須非常小心的選擇這條路,確保你能儘快的回收資本。HTML5: 在這裡我們談WebGL。它和Stage3D在技術層面上有很多相似點,但是在很多關鍵領域有缺陷:不能全屏,沒有滑鼠捕獲(Flash Player11.2支持),沒有多重渲染目標,沒有instanced drawing等等。在Autodesk的博客上有一片很好的文章說了這些問題。當然這些只是短期內的技術難點,並且最終將可以被克服。WebGL最大的問題在於Microsoft目前的立場是不支持它。Microsoft不是WebGL工作組的成員,而且不支持WebGL的任何格式。由於IE瀏覽器仍然有很大的佔有率,所以這個不容忽視。Unity:Unity當然支持3D。在有限的測試中,Unity結果完美。當然你需要安裝Unity的瀏覽器插件。但是如果你知道你的遊戲玩家足夠,那麼Unity仍然是目前最好的3D遊戲解決方案。Unity宣稱將支持導出Unity遊戲成Flash格式,而且不會有Stage3D帶來的GPU黑名單問題。我真想把錢給Unity,讓他們能夠在不遠的將來能夠把Unity遊戲導出成WebGL格式。

    你的讚賞是我堅持原創的動力

    讚賞共 0 人讚賞
    推薦閱讀:

    網頁色彩設計點滴
    網頁導航下拉菜單原理
    眾譽美學:網頁設計顏色的使用技巧
    五種Web伺服器技術和網頁設計技術 值得學習哦

    TAG:遊戲 | 網頁遊戲 | 翻譯 | HTML5 | HTML | 對比 | 網頁 |