西雅圖遊戲開發 JS:回顧與向前邁進。
今年一月,我們的 HTML5 遊戲開發小組滿一歲了。(他們成長得真快!)考慮到這個里程碑,我們要向所有會員、贊助商以及所有幫助我們將會議打造得如此精彩且充滿知識的人表示衷心的感謝!
今年看起來會比去年更好。我們以一次停電拉開序幕,隨後 Double Down 行動裝置團隊在沒有電的情況下,依然完成了令人驚嘆的恢復並針對 HTML5 優化進行了演示。永遠沒有沉悶的時刻!
去年,我們小組的成員從 0 人增加到 380 人,這是一個巨大的成就!Game Dev JS 團隊是一個多元化的社群,由各種開發人員、藝術家、遊戲玩家、專案經理、網路管理員和 JS 愛好者組成。我們最年輕的開發者成員只有 13 歲!透過始終保持內容新鮮、講者活躍以及會員參與,我們成功建立了一個強大的社群 —— 沒有您,我們不可能做到這一點!
如果您對 JS 感興趣,Meetup 是一個享受樂趣、學習新知識、分享您所知道的東西並結識一些非常有趣的人物的好機會。
要點
- Seattle Game Dev JS 在第一年就從零增加到 380 名成員,其基礎是講座、閃電演示和歡樂時光 (happy hours)。
- 該小組 2012 年的陣容涵蓋了完整的 HTML5 堆疊:渲染、Canvas 技巧、音訊、原生封裝器 (native wrappers)、Windows 8 和 node.js 伺服器架構。
- 像這樣的社群之所以有效,是因為它刻意保持跨學科 —— 開發人員、藝術家、PM 和網路管理員都在同一個房間裡。
- 從 Meetup 中獲益的最佳方式就是出席、提問,並最終親自演示一些內容。
- 2013 年的規劃已開放:我們需要您的主題想法、場地建議和講者提案。
為什麼 JavaScript 遊戲開發小組很重要
當我們成立這個小組時,「HTML5 遊戲開發」仍然是一個讓很多人感到困惑的詞。<canvas> 元素還很年輕,瀏覽器性能不一致,而且用 JavaScript 發布真正的遊戲(而非技術演示)的想法被視為一種新奇事物,而非一個平台。
一年後,這種對話完全改變了。在這樣的領域中,本地 Meetup 之所以重要,是因為文件更新速度落後於現實。部落格文章描述的是六個月前有效的方法。會議演講則被磨練到過於抽象。真正能推動開發人員前進的,是坐在那個上週剛解決了您同樣問題的人旁邊 —— 比如在特定設備上卡頓的 Canvas、無法在行動裝置上解鎖的音訊元素,或是處理大型資源包時崩潰的構建管線。
相關: — 現成的藝術作品、工具和模板可直接放入您的 Unity 專案中.
這就是 Game Dev JS 填補的空白。它不是系列講座,而是一個擠滿了正處於問題之中、互相交流筆記的房間。
我們在 2012 年涵蓋的內容
以下是我們一年來涵蓋的部分內容:
- Javascript Game Development: an Overview – Grant Goodale, Massively Fun
- Retained Mode Graphics Libraries – Kevin Moore, Pixel Lab
- Stupid Canvas Tricks – Dean Hudson, Massively Fun
- HTML5 port of Zepto Labs’ Cut the Rope – Joel Fillmore, Pixel Lab
- Challenges of building a native UIWebView application around an HTML5 webapp – Jeff Close, Adam Hardtke, Sean Stringer, and Nate Vaughn, DDI
- Native wrapper technology: CocoonJS – Iker Jamardo, Ludei
- HTML5 game development for Windows 8 – Giorgio Sardo, Microsoft
- Game engine design around node.js and express.js – Dean Hudson and Mason Browne, Massively Fun
- Co+Pilot: a tool built using Javascript and a JQuery like syntax to allow users to make native apps – Myron Millin and David Whitlark
- Effective HTML5 Game Audio – Chris Khoo, Wappworks Studios
所有這些主題以及小組成員的大量閃電演講和演示都在這一年中呈現。當然,我們偶爾也會聚在一起度過歡樂時光!
如果您正在購物: — 基于浏览器的无代码 HTML5 引擎,可导出到 Web、移动设备和桌面.
特別感謝 Double Down Interactive, Big Fish Games, GameHouse 和 The Makers Space 提供場地!
演講背後的主題
回顧該列表,有幾條清晰的線索貫穿其中 —— 這些線索值得被命名,因為它們幾乎完全對應到任何 HTML5 開發人員必須做出的決策。
渲染與保留模式 (retained-mode) 問題。 Kevin Moore 關於保留模式圖形庫的演講和 Dean Hudson 的「Stupid Canvas Tricks」位於一個真實架構分叉的兩側。立即模式 (Immediate-mode) 的 Canvas 繪圖讓您擁有完全的控制權和最小的開銷,但您必須自行管理每次重繪。保留模式庫(如 CreateJS, PixiJS 以及後來的 Phaser 等框架的譜系)為您提供開箱即用的場景圖 (scene graph)、碰撞檢測 (hit testing) 和補間動畫 (tweening) —— 代價是在您與 GPU 之間增加了一個抽象層。兩者都沒有絕對的「正確」。正確答案取決於您的遊戲是只有少數幾個精靈 (sprites),還是一個複雜且有狀態的世界。
封裝器 (wrapper) 問題。 三場獨立的演講 —— DDI UIWebView 課程、Iker Jamardo 的 CocoonJS 演示和 Co+Pilot —— 都圍繞著同一個問題:如何將 Web 應用程式放入應用程式商店?在 2012 年,選項大致為:
| 方法 | 它提供什麼 | 權衡 |
|---|---|---|
| 普通網頁應用程式 | 零摩擦,即時更新 | 沒有商店曝光,設備 API 有限 |
| 原生 WebView 包裝器 | 商店分發,一些原生鉤子 (hooks) | 效能天花板、UI 與原生 chrome 不符 |
| 加速包裝器(例如 CocoonJS) | GPU 加速畫布,更接近原生速度 | 供應商鎖定、平台特定怪癖 |
儘管特定工具已經演進,但該表格仍然是當今思考決策的有用方法。
音訊。 Chris Khoo 關於有效 HTML5 遊戲音訊的演講過去是,且現在仍然是該領域最被低估的主題之一。音訊是網頁遊戲最常出錯的地方:自動播放策略、編解碼器支援差異,以及使用者手勢與聲音實際發出之間的延遲。如果您今天正在開發遊戲,請為音訊預留充足的時間 —— 這不是單純「放入一個檔案」就能解決的問題。
伺服器端 JavaScript。 Dean Hudson 和 Mason Browne 關於圍繞 node.js 和 express.js 進行遊戲引擎設計的演講,是一個早期訊號,表明伺服器和客戶端可以共享同一種語言。這比聽起來更重要:共享用於遊戲狀態驗證的程式碼、共享資料格式,以及在整個技術棧 (stack) 中使用單一的心理模型。
如何充分利用聚會
如果您是此類群組的新手 —— 或者您一直在潛水尚未現身 —— 以下是我們給任何人的實用建議。
- 帶著一個具體問題來。 「我的遊戲很慢」只能贏得同情。「當我繪製超過數百個精靈 (sprites) 時,我的畫布會掉幀」才能贏得答案。
- 與你旁邊的人交談,而不僅僅是講者。 演講是藉口;走廊上的對話才是價值所在。
- 進行一次閃電演講 (lightning talk)。 花五分鐘分享你學到的東西,是成為群組中知名人物最快的方法。你不需要成為專家 —— 你只需要解決過一件事。
- 後續跟進。 交換聯絡資訊,並實際發送您承諾的連結或程式碼片段。
- 帶來您的非開發人員視角。 我們的美工、PM 和網路管理員會提出開發人員忘記提出的問題,而這些問題通常是現場最有用的問題。
建立一個持久的社群
一年內從零增加到 380 名成員聽起來像是一個虛榮指標,但真正重要的數字是留存率 —— 其中有多少人回來了。關於保持技術社群活力,我們學到了一些經驗:
- 輪換內容。 如果每次會議都是初學者畫布教學,經驗豐富的成員就會停止參加。如果每次會議都是深度 GPU 優化,你就會失去新人。混合概述、深入研究和演示。
- 降低發言門檻。 閃電演講和成員演示降低了壓力,能讓那些永遠不會自願申請完整時段的人展現才華。
- 字面上的「餵飽」人們。 Happy hours 和共享餐點對社群凝聚力的幫助,比任何 amount 的議程規劃都大。
- 公開感謝您的主辦方。 Double Down Interactive、Big Fish Games、GameHouse 和 The Makers Space 為我們提供了場地,而場地是其他一切不光彩但必要的先決條件。
- 讓各個年齡和背景的人都感到受歡迎。 我們最年輕的成員只有 13 歲。這不是什麼新鮮事 —— 它是提醒我們,這個領域的進入門檻異常低,而群組應該反映出這一點。
展望 2013 年
聽起來很棒吧? 2013 年您希望看到我們討論什麼?您想在哪裡見面?
我們對一些方向感到好奇,並希望聽取您的意見:
- 行動效能與分析 (profiling) —— 如何使用瀏覽器開發工具和設備測試,實際測量幀 (frames) 的去向。
- 多人遊戲與網路 —— WebSockets、延遲補償以及即時同步的混亂現實。
- 工具與工作流程 —— 建置系統、資產管線 (asset pipelines),以及小型團隊如何在沒有專職工具工程師的情況下交付產品。
- 物理與碰撞 —— 何時使用函式庫,何時編寫自己的程式碼。
- 輔助功能與輸入 —— 鍵盤、觸控和動作控制平台,以及如何在不增加一倍工作量的情況下支援多個平台。
請在下方回覆您的想法,或使用 #GameDevJS 標籤在推特上 @massivelyfun。很快見面!
常見問題
什麼是 Seattle Game Dev JS?
這是一個西雅圖地區的聚會群組,面向對 JavaScript 和 HTML5 遊戲開發感興趣的人。它匯集了開發人員、藝術家、設計師、專案經理、網路管理員和一般的 JS 愛好者,進行演講、閃電演示和社交活動。
我需要成為經驗豐富的開發人員才能參加嗎?
不需要。本群組特意將概述演講與深度技術探討結合在一起,成員範圍從 13 歲的業餘愛好者到知名工作室的專業工程師。如果您對 JS 遊戲開發感到好奇,您就屬於這裡。
我如何提議演講或建議主題?
在這篇文章的評論中回覆,或使用 #GameDevJS 標籤推文 @massivelyfun。我們正在積極尋找 2013 年的主題創意、場地建議和講者提案。
該群組涵蓋哪些類型的主題?
歷史上包括:渲染和畫布技術、圖形函式庫、原生包裝器和應用程式商店分發、HTML5 音訊、Windows 8 開發以及 node.js/express.js 伺服器架構。我們有興趣擴展到行動分析、多人網路、工具、物理和輔助功能。
誰主持會議?
我們曾由 Double Down Interactive、Big Fish Games、GameHouse 和 The Makers Space 提供場地,我們對他們所有人表示感謝。如果您的公司有空間並希望支持當地的開發社群,我們很樂意收到您的聯繫。
這個小組只討論遊戲嗎?
重點雖然是遊戲,但相關技能與一般的 Web 和應用程式開發有很大的重疊——畫布渲染 (canvas rendering)、音訊處理、原生包裝器 (native wrappers) 和 node.js 架構都適用於遊戲之外的領域。我們的許多成員也從事非遊戲項目。
分享此內容: Twitter Facebook Google Pinterest Reddit
進一步閱讀
- HTML5 — 維基百科
- Canvas element — 維基百科
- Node.js — 維基百科
- Meetup (service) — 維基百科
常見問題
什麼是西雅圖遊戲開發 JS?
這是一個西雅圖地區的聚會小組,面向對 JavaScript 和 HTML5 遊戲開發感興趣的人。它匯集了開發人員、藝術家、設計師、專案經理、網頁管理員和普通 JS 愛好者,進行演講、閃電演示和社交活動。
我需要成為一名經驗豐富的開發人員才能參加嗎?
不會。該小組特意將概述講座與深入的技術探討結合在一起,成員範圍從 13 歲的業餘愛好者到知名工作室的專業工程師。如果您對 JS 遊戲開發感到好奇,那麼您就屬於這個房間。
我該如何提出演講或提出主題?
在這篇文章的評論中回复,或使用 GameDevJS 標籤在 Twitter 上@massivelyfun。我們正在積極尋找 2013 年的主題創意、場地建議和演講者演講。
該小組涵蓋哪些類型的主題?
歷史上:渲染和畫布技術、圖形庫、本機包裝器和應用程式商店分發、HTML5 音訊、Windows 8 開發以及 node.js/express.js 伺服器架構。我們有興趣擴展到行動分析、多人網路、工具、物理和可訪問性。
誰主持會議?
我們由 Double Down Interactive、Big Fish Games、GameHouse 和 The Makers Space 主辦,我們對他們所有人表示感謝。如果您的公司有空間並且希望支持當地的開發社區,我們很樂意聽取您的意見。
這個小組只討論遊戲嗎?
重點是遊戲,但這些技能與一般的 Web 和應用程式開發有很大的重疊——畫布渲染、音訊處理、本機包裝器和 Node.js 架構都適用於遊戲之外的領域。我們的許多成員從事非遊戲項目。分享此內容: Twitter Facebook Google Pinterest Reddit <!-- 引用:start --> 進一步閱讀 - [HTML5](https://en.wikipedia.org/wiki/HTML5) — Wikipedia - [Canvas element](https://en.wikipedia.org/wiki/Canvas_elpedia) — Wikipedia - [M. (服務)](https://en.wikipedia.org/wiki/Meetup_(serv
按照自己的時間表學習遊戲開發
涵盖 Unity、Unreal、C++、C# 和着色器编程的点播课程