相關閱讀 |
>>> 創業先鋒 眾人拾柴火焰高 >>> | 簡體 傳統 |
葡萄大講堂是游戲葡萄的常規閉門線下活動之一,每一期在北京、上海和深圳邀請明星講師做內容分享,現已舉辦了十幾期。在內容上我們以原有的常規大講堂為基礎,構架出獨立的營銷大講堂、運營大講堂等不同專題,敬請期待未來更多的專題系列。 此次葡萄大講堂帶來“引擎月”特別活動,第一期北京站邀請白鷺時代聯合創始人馬鑒先生帶來《如何打造卓越的HTML5游戲引擎》的主題分享,定位于技術本身,講述如何打造一款卓越的HTML5游戲引擎,讓開發者便捷、高效、安全地開發出HTML5移動游戲。 此次活動由愛貝云計費全程支持。 以下為演講實錄,經游戲葡萄整理發布。 我為什么做白鷺引擎? 白鷺從去年開始做HTML5引擎,當時白鷺團隊只有十幾個人,很艱苦。在加盟白鷺之前,我在其他地方干了很多年,最早我在Macromedia,那時候一直在做Flash,后來發現Flash越來越不行了,尤其喬布斯在官網上發布了一篇吐槽Flash的文章,表明Flash在手機上的不足:耗電量大、不適合交互等,使得Flash在手機上無法生存下去。 移動游戲與移動App的發展趨勢 1.基于開放技術 針對一個開放的技術入手,一個不開放的甚至是封閉的技術會遭遇到和我上一家公司一樣的局限。比如Flash就是閉源的,在喬布斯發布文章之后,Adobe在Flash方面做得越來越不好。2008年是Flash最輝煌的時刻,后來Flash無法進入移動設備,所占份額不斷收縮。最早Flash的工程團隊有幾百人,現在已經只剩下十幾個人。所以說技術的投入與業界的趨勢是密切相關的,不要選走下坡路的技術。 2.多平臺多設備(原生+Web) 現在如果只做PC平臺上的東西是沒有前途的,在我看來必須是多平臺多設備,這其中當然也包含了PC。這一年來有很多開發者問我:“你們白鷺做引擎為什么不做PC端的?”其實不是我不想做,是做了也沒有任何機會,去年Q4PC的頁游市場大概有60億人民幣左右,這算是Flash領域唯一僅存的市場。而且現在頁游基本都是大公司在做,他們都有自己的自研團隊。現在在PC端用HTML5做游戲雖然可行,但是很多人認為PC端不需要用HTML5做游戲,因為現在有很多其他在PC端的技術的成熟程度遠超HTML5。 3.高性能高效率(引擎+工作流) 你做出來的東西必須是有效率的,必須支持大部分用戶的手機,呈現出好的效果。HTML5曾經的問題有很多,其實HTML5在2010年就被很多人關注,很多外來開發者說HTML5就是下一代移動平臺和PC平臺技術的未來,用HTML5就無所不能,用HTML5就會被關注。 HTML5曾經的“問題” 1.太樂觀。在2010年時,喬布斯大力捧HTML5,說HTML5將會引領一個新的潮流,但是他并沒有說一個期限。2010年的時候,智能手機剛剛興起,很多人投入到HTML5的技術中,但是當時PC端那些頂級的外國游戲基本都是由Flash制作,所以說如果想取代Flash,必須在技術上超越它。這是在技術領域中非常重要的一點,你永遠不要用一項成功去試圖打敗另一項成功。 2.性能表現不佳。在6年前我還在Adobe的時候發表過一篇博客對比了Flash和HTML5,HTML5剛剛能干的事情Flash在7、8年前就已經可以做了,而且HTML5性能表現的非常不好。 3.“長鞭理論”影響標準落地。HTML5的問題都在這一點被放大(長鞭效應:當你在鞭子這頭施加力的時候,對另一邊的影響會變得無比的巨大),最典型的就是,HTML5開始的時候沒有打好基礎,剛開始做的一點小小的修改都會使得未來HTML5出現巨大的波動,這就使得標準落地出現很大困難。 HTML5在移動設備的現狀如何? Flash與HTML5的不同發展歷程 Flash一開始只能做矢量圖,并且成長經歷起伏,四處尋找投資但失敗,并被微軟拒絕。相比之下HTML5就比較順風順水,2006年W3C計劃做HTML5,并樹立了HTML5標準。2010年蘋果聲明不支持Flash,2014年7月20號神經貓上線,僅僅3天就得到了將近2億的點擊。 如何制作卓越的H5引擎? 說到卓越,我覺得就是在能用的時候做到易用,在易用的方面做到好用。 簡單用例子闡述一下,2009年,Adobe贊助了一家叫做Skinner的公司,并贊助開發了CreateJS的一個游戲引擎,直到現在還有很多開發者在用這個引擎做移動設備的小游戲。我認為這個引擎介于能用和易用之間,因為這個引擎封裝了大量的Flash的語言結構,能讓從Flash轉型到HTML5的開發者很好地使用。但是問題是只有一個人在寫這個東西,完全基于個人的興趣,引擎基本不更新,也不會對任何bug有反饋。 庫、框架還是引擎:在做白鷺引擎之前我想過一個問題:我們到底是要做一個怎樣的產品?Library的獨立性特別強,特別易用,但只能解決某一系列的問題,比如說就解決游戲加載或者素材問題。Framework相對來說擴展性稍微強一些,在應對某類問題時有優勢,比如說游戲的場景,一套Framework可以做出無限可能性。Engine其實和Framework的界限非常模糊,但是引擎就是要解決某個行業的問題,雖說可以充分的擴展但是并不能去無限的擴展。 成本:對于我們這種做技術平臺或技術工具的公司來說,我們認為做一個引擎的成本要大于做一個基礎建構的成本,個人開發者最容易的是做一個庫,中小型團隊是做一個Framework。但是要做一個引擎,必須要做巨大投入,以及長期的技術研究,人力和時間上的成本都是不同的。 開源還是閉源:我們參考了很多引擎的項目,看了他們引擎的協議然后再考慮是開源還是閉源,最終我們選擇了開源。 閉源可以構建門檻,可以打造專利,別人不可能山寨你;但是閉源產品的宣傳成本更高,因為你要說服別人去用一個黑箱產品很困難。另外閉源產品很難獲取開發者,所以想要占領市場,閉源不是一個好的選擇。 開源的優點是一旦放出開源產品,大家都會給產品提建議、反饋bug,另外開源有擴展產品功能,別人可以給你的產品添加原本沒有的功能。但是這樣也造成了一個問題就是很難申請專利,尤其是在中國。另外開源協議中還有很多陷阱,比如最開放的是MIT和BSD,但是最開放也就表明最難被控制,舉個例子就是MIT的協議,隨便改隨便傳播,不能對用戶造成任何約束;BSD比MIT稍微嚴格一點,BSD協議你可以拿去改動,可以拿去做商業產品,但是你必須保存原產品里的版權注釋。 白鷺引擎做HTML5引擎的特點 1.移動 我們支持移動設備,但是我們不做任何PC設備上的支持。 2.社交 比如說神經貓雖然是一個單機休閑游戲,但是通過朋友圈的分享,朋友的互相比拼,也達到了朋友互相交流的作用,所以白鷺引擎必須滿足外圍開發者快速開發social游戲的需求,這是由場景決定的,移動設備上,沒有人會拿著手機去玩4個小時。所有HTML5游戲都在微信、新浪微博等超級app里,如果你的游戲所使用的游戲引擎可以快速的啟動社交鏈,意味著你的游戲更可能被快速關注。 3.即點即玩 還有要著重解決適配與即點即玩的問題,要快速加載HTML5對素材的要求非常嚴格,還要極盡可能的提升渲染性能。所以對于白鷺引擎的開發者的挑戰就來了,如何讓玩家在30秒內玩你的游戲。 HTML5的進化方向 1.下一代JavaScript:2D的東西對我們來說沒有任何難度,但是越往后走研發的成本越高。當所有的外圍開發人員都遷移到下一代的H5或是最新的瀏覽器上,我們就需要為下一代的JavaScript做考慮。這時候我們考慮使用TypeScript做過渡,因為它向下可以編譯出這一代的JavaScript標準,向上可以編譯出下一代的JavaScript標準。 2.3D:3D技術的研發之路坑很多,做一個3D引擎相比做一套3D工作流容易很多。 3.AR(Augmented Reality增強現實)和VR(Virtual Reality虛擬現實):AR在Flash年代就已經出現,在我看來是特別簡單的技術。但是難就難在VR上,現在全球沒有一家游戲公司能夠做成沉浸式VR,就比如OculusVR的設備硬件成本已經很低,但是軟件還是一個坑,不過這是一個方向,我們將來可以沉浸到任何一個環境里去體驗,就相當于置身于這空間。現實情況是很多公司都在做VR的軟件開發,而且我們也非常關注這一方面,在將來H5也會運用到VR技術。 白鷺引擎的產品思路 1.簡單易學:簡單不是內核簡單,而是使用方法比較簡單易懂,對于外圍開發者來說,我們盡可能把上層接口向他們暴露出來,而且容易學。 2.擴展:就是通過白鷺引擎可以輕松的連接微信以及一系列其他的平臺。 3.調用系統硬件的能力:所有移動設備都有一套系統級的硬件調用能力,需要靠runtime去充分調用這些能力為HTML5服務。 好多人說我們在Adobe之后又做了個和Flash很像的HTML5,其實并不是,作為白鷺技術合伙人,我想說我們和Flash只有一點像:那就是和Flash的語法結構設計方面很像,這就保證了我們有自己的開發者體系。同時,做Flash的人可以很容易過渡,但是他又不用回去依賴Flash。 4.工作流:還有就是工作流,因為我們這幾個人都來自Adobe,對于工作流這一方面的了解非常透徹,所以白鷺的工作流在中國是頂尖的。開發者做一個游戲項目具體來說有4個步驟:開發、接入、發布、調試。在開發調試這方面我們做了一套工具來滿足這些需求,這也是我們擅長的部分,做到了安全、簡潔、高效的一站式開發。如果游戲開發者認為那些超級app所帶來的用戶量都不能滿足他們的要求,我們還提供了一個分支,就是打包,但是這對于即點即玩HTML5游戲不是一個好的選擇。 這個市場要想成熟除了引擎工具的發展還需要關注運行,你無法保證你開發的一HTML5游戲跑在中低端手機上也是流暢的。所以我們要做一個軟件能讓它在任何一個手機上流暢運行,這么一個東西,我做出來只用了一個月時間。但是對于標準JavaScript就不適用,因為HTML5標準API有數萬個,而Flash的標準API有2200個左右,有200人的工程團隊去完成2200個API的適配工作,所以我們只對使用Egret引擎開發的游戲做加速。當開發者用Egret引擎做H5游戲的時候,我們把Egret Runtime植入到那些大渠道去,徹底解決了移動設備的適配問題。 我們如何開發 很多人問我們團隊是怎么去開發東西的,其實就是做,想明白了就做,雙周發布一個版本,引擎里面可改的地方很多,所以分為主版本和社區體驗版兩個版本,當社區體驗版一個階段基本完成、所有功能比較穩定之后,然后再開始做下一個大的功能模塊,都基本完成后再合并成一個版本,所有的工程都在兩周內完成。另外我們不僅僅使用測試案例,而且我們所有的開發還用具體的游戲進行測試,讓工具本身更健壯。
游戲葡萄 2015-08-23 08:49:10
稱謂:
内容: