遊戲開發技術

此頁面列出了使用開放 Web 技術進行遊戲開發的必要核心技術。

2D 碰撞檢測

2D 遊戲中檢測碰撞的演算法取決於可能發生碰撞的形狀型別(例如,矩形與矩形、矩形與圓形、圓形與圓形)。通常,您會有一個簡單的通用形狀,它覆蓋實體,稱為“命中框”,因此即使碰撞不是畫素級的完美,它看起來也足夠好,並且在多個實體上都具有高效能。本文回顧了 2D 遊戲中用於碰撞檢測的最常用技術。

3D 碰撞檢測

本文介紹了用於在 3D 環境中實現碰撞檢測的各種邊界體積技術。後續文章將介紹在特定 3D 庫中的實現。

Web 上的 3D 遊戲

要在 Web 上獲得豐富的遊戲體驗,首選技術是 WebGL,它在 HTML canvas 上渲染。WebGL 本質上是 Web 的 OpenGL ES 2.0 — 它是一個 JavaScript API,提供了構建豐富互動式動畫(當然也包括遊戲)的工具。您可以使用硬體加速的 JavaScript 生成和渲染動態 3D 圖形。

asm.js 的非同步指令碼

中大型遊戲應將 asm.js 程式碼作為非同步指令碼的一部分進行編譯,以使瀏覽器在最佳化編譯過程方面具有最大的靈活性。在 Gecko 中,非同步編譯允許 JavaScript 引擎在遊戲載入時在主執行緒之外編譯 asm.js,並快取生成的機器程式碼,以便遊戲在後續載入時無需重新編譯(從 Firefox 28 開始)。要檢視差異,請在 about:config 中切換 javascript.options.parallel_parsing

Web 遊戲的音訊

音訊是任何遊戲的重要組成部分;它增加了反饋和氛圍。基於 Web 的音訊正在迅速成熟,但仍有許多瀏覽器差異需要導航。我們通常需要決定哪些音訊部分對我們的遊戲體驗至關重要,哪些是錦上添花但非必需的,並據此制定策略。本文提供了 Web 遊戲音訊實現的詳細指南,考察了目前在儘可能廣泛的平臺上有效的功能。

使用 image-rendering 實現清晰的畫素藝術外觀

本文討論了一種有用的技術,可為您的 canvas/WebGL 遊戲提供清晰的畫素藝術外觀,即使在高解析度顯示器上也是如此。

使用 Gamepad API 實現控制器

本文著眼於使用 Gamepad API 實現有效的、跨瀏覽器的 Web 遊戲控制系統,允許您使用遊戲機控制器來控制您的 Web 遊戲。文中包含了一個案例研究遊戲 — Hungry Fridge,由 Enclave Games 建立。

實現遊戲控制機制

HTML5 作為遊戲開發平臺的優勢之一是能夠跨各種平臺和裝置執行。簡化跨裝置差異會帶來許多挑戰,尤其是在為不同情境提供適當的控制時。在本系列文章中,我們將向您展示如何構建一款可以使用觸控式螢幕智慧手機、滑鼠和鍵盤以及遊戲手柄等不太常見的機制來玩的遊戲。

瓦片和瓦片地圖概述

瓦片地圖是 2D 遊戲開發中非常流行的技術,它由稱為“**瓦片**”的小的、規則形狀的影像組成,用於構建遊戲世界或關卡地圖。這帶來了效能和記憶體使用方面的提升 — 不需要包含整個關卡地圖的大影像檔案,因為它們是透過多次使用小影像或影像片段構建的。這組文章涵蓋了使用 JavaScriptCanvas 建立瓦片地圖的基礎知識(儘管相同的宏觀技術可以用於任何程式語言)。

WebRTC 資料通道

WebRTC(Web 即時通訊)API 主要以其對音訊和影片通訊的支援而聞名;然而,它還提供點對點資料通道。本文對此進行了更多解釋,並向您展示瞭如何使用庫在您的遊戲中實現資料通道。