翻譯轉自:http://bbs.9ria.com/thread-103728-1-1.html
原文:http://www.photonstorm.com/archives/2568/the-reality-of-developing-web-games-with-flash-html5-and-unity
我比較了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.Facebook
Flash: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格式