下一世代的網頁遊戲

Mozilla Taiwan
Aug 24, 2017 · 4 min read

過去幾年裡,Mozilla 與其他瀏覽器和整體產業緊密合作,致力推動 Web 遊戲的發展。在共同努力下,我們先是透過 asm.js,後又推出 WebAssembly,讓開發者能直接在 Web 上佈署原生碼。如今 WebAssembly 不但已登陸 Firefox 與 Chrome,也即將出現於 EdgeWebKit 上。透過 WebAssembly,應用程式碼能在瀏覽器中達到近原生的效能,進而大大造福遊戲開發者,還能嘉惠 WebVR 的應用。由於 WebAssembly 程式碼省去了即時(JIT)編譯和記憶體回收(garbage collection)的程序,故可實現更穩定的效能。隨著主要瀏覽器引擎均已支援此格式,更多應用可享受到近原生速度,從而促成許多零外掛高效能網頁遊戲的誕生。

「從 2017 年開始,許多在 Kongregate 上架的遊戲紛紛捨棄 Flash。現在有近六成的新遊戲改採 HTML5,」Kongregate 執行長暨共同創辦人 Emily Greer 表示:「藉此,開發者得以享受到 HTML5 的突破性技術與工具,而消費者不必安裝第三方外掛程式就能玩遊戲。伴隨 HTML5 的持續演進,開發社群將可創造出更多更先進的遊戲,進而造福 Kongregate.com 的數百萬玩家,以及蓬勃發展的廣大網頁遊戲產業。」

Kongregate 的資料顯示,在該平台上架的遊戲中,HTML5 遊戲約佔 55%。

從其資料看來,其中多半為高品質遊戲。逾六成的 HTML5 遊戲獲得玩家給予「非常好」評分肯定(即在滿分 5 分中拿下高於 4.0 的分數)。

這趨勢固然可喜,但仍有可以改進之處。畢竟,Web 是不斷演進的平台,開發者總是在找尋能提高效能的方法。我們最常聽到的聲音是,希望 Firefox 能為 Web 提供多執行緒的支援。多執行緒處理的一大必備要件是 SharedArrayBuffer,其功用在於讓多個 Web workers 可同時共享記憶體。SharedArrayBuffer 的規格現已確定,我們也計畫於 Firefox 55 正式釋出對於SharedArrayBuffer 的支援。

另一個常見的意見是要加入 SIMD 的支援。SIMD 乃 Single Instruction, Multiple Data(單一指令、多重數據)幾字的縮寫,是讓 CPU 可平行處理數學運算指令的方法,而可大幅提升 3D 渲染和物理等數學演算密集程序的效能。

WebAssembly 社群團體現階段的目標是要在 WebAssembly 下一波的重大更新中,透過 SIMD 與多執行緒技術來實現硬體平行處理。我們在 WebAssembly 第一版上線後乘勝追擊,並且持續與夥伴協力下,這兩個新功能計將於 2018 年初達成穩定運作,並隨 Firefox 正式推出。

過去幾年間,我們在優化 Firefox 運作效能上投入很多心力,也從中獲得許多寶貴的經驗。我們已在一篇有關把原生遊戲移植到 Web 的部落格文章中分享了我們學到的經驗,也期盼各位能多多指教,幫助我們精益求精。多執行緒支援將於 2018 年正式上線,未來,我們還會繼續改善 Firefox 運作所需的記憶體用量。

再次感謝這些年來大力相助的遊戲開發者、出版商、引擎供應商及其他的瀏覽器引擎團隊。若無大家的協助,我們不可有今日的成果,由衷感謝各位!

原文連結

)

    Mozilla Taiwan

    Written by

    我們是Mozilla 美商謀智台灣分公司,由非營利組織 Mozilla 基金會所擁有,在台灣為自由開放的網路未來而努力。

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade