用Flash、HTML5和Unity開發網頁游戲的現實

jopen 13年前發布 | 22K 次閱讀 HTML5

今天對于全球的 Flash 開發者來說是黑暗的一天,因為 Adobe 宣布將不再對移動設備上的瀏覽器進行 Flash 技術支持。在這之前,Adobe 剛剛宣布了公司范圍內的大幅度裁員。盡管這似乎并不是什么嚴重的問題,但是這卻又使“Flash hate wagon”開始轉動。

首先,我只關心基于網頁的游戲開發。因此,這篇文章只關注這個主題。這并不是一篇關于 Flash 和 HTML5 的爭論文章, 也不是教你如何在移動設備上搭建應用程序。所以,這篇文章純粹的是關注當今開發 web game 的現實。

我比較了 Flash,HTML5,Unity,因為他們是當今唯一可行的 web game 開發平臺。我列了10個主題來比較他們:

  • 開發流程 – 用它來開發一個游戲有多容易?
  • 平臺穩定性 – 當你開始和結束開發游戲這段時間內,它會發生改變嗎?
  • 向后兼容性 – 用它開發的游戲10年后還能運行嗎?
  • 移動性 – 移動設備的支持
  • 打包與分發 – 如何流通
  • 安全性 – 代碼和知識產權保護
  • 貨幣化 – 如何運營賺錢
  • 非死book – 社交游戲的角度
  • 多少人會玩你的游戲
  • 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. 非死book

Flash:非死book 上最流行的游戲都是用的 Flash。The Sims Social 每個月3600萬的玩家使用的都是 Flash。新的水果忍者同樣使用 Flash,并且會用到 Flash 11 的新特性。絕大部分的 Zynga 游戲也都使用 Flash。之所以會這樣,是因為 Flash 的受眾,現有的技能(Flash 開發者眾多)和簡單的開發流程。同時在 非死book 上可以有很多方式來掙錢,因為它有大量的第三方服務和 API 接口。

HTML5: 我努力在 非死book 上尋找最流行的純 HTML5 游戲。當然肯定會有一些,因此,如果你找到了請帖鏈接。Zynga 在2010年就收購了 Dextrose,但是我還沒看到什么結果。一些公司已經發布 HTML5 游戲到 非死book 上,比如 OMGPOP 的 Gem Rush,每日用戶10人。但是 Gem Rush 只是用了 HTML5 的 API,游戲本身還是 Flash 的!因此我的結論,目前為止,非死book 上最大的玩家群體還是使用 Flash。

Unity:看上去 Unity 游戲在 非死book 上也有一些贏利點。如 UberStrike (每個月83萬玩家) 和 King’s Bounty(每個月2萬玩家)。只要游戲內容足夠吸引人,非死book 的用戶也不方隊安裝 Unity 插件。

9. 多少人會玩你的游戲

Flash:因為事實上,很多桌面用戶都連接到互聯網玩游戲,所以 Flash 的用戶數量是巨大的。一個標準的 Flash 游戲在第一年通常有2-3百萬次的訪問量。好的 Flash 游戲當然次數更多。我們的游戲 Home Sheep Home 一上線就有每天1百萬的訪問量,在18個月內已經有1億的訪問量。這是一個驚人的數字。加上 非死book 巨大的用戶群,一定會有成百上千的用戶在玩 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 格式。

用Flash、HTML5和Unity開發網頁游戲的現實

提示:這篇譯文翻譯了大部分原文,英文原文后面還有有關“Adobe 將會多久支持 Flash 播放器”和“Flash 游戲開發人員該如何應對”的內容討論。


來自: bbs.9ria.com

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!