2014 年 7 月 8 日星期二
作者:Clay Montgomery
本文將會詳細介紹 Android* 平板電腦可使用的最佳 3D 遊戲引擎和中介軟體,包括免費軟體、開放原始碼軟體和專利軟體的可用資源,為本系列作結。同時也會註明哪些能夠原生支援 x86 Intel® 處理器。
本系列的
第一部分介紹了 Android 原生開發套件和軟體開發套件 (SDK) 適用的遊戲引擎、創作工具和中介軟體的基本概念和分類,並列出了 2D 遊戲開發的最佳解決方案。
3D 遊戲引擎
3D 遊戲引擎執行於 Android 裝置上,會解析來自創作工具的內容,並透過 OpenGL ES* 渲染圖形。3D 遊戲引擎還能提供超出 OpenGL ES 功能範圍的重要服務,例如渲染文字字型、偵測觸控輸入、以及提供音訊視訊整合功能。大部分的遊戲引擎都是源自於 Windows* 平台,最近才被移植到 Android 上。其中部分引擎功能更為豐富且成熟 (如 Unity* 3D),但不僅佔用容量更大,價格上也更昂貴;而其他有些完全是免費的開放原始碼 (如 Lightweight Java* Game Library [LWJGL] 和 jMonkeyEngine)。
最完整的解決方案可為遊戲提供從 OpenGL ES 到遊戲主機、Apple iOS* 裝置、Linux* 和 Windows 的可移植性,讓應用程式更快速觸及更廣闊的市場 — 但需要代價。價格通常是依據所需的功能、目標平台的數量、開發團隊的規模以及遊戲銷售營收量來區分層級。當然在支付了授權或訂閱費用後,就能夠期待獲得更好的支援服務;相對地,免費軟體的唯一支援可能就只有線上的使用者論壇。
有些遊戲引擎和專利創作工具充分整合,因此在發佈遊戲時可能需要支付工具或引擎的使用授權費用。不過開放程式碼的遊戲引擎一般都是從各式各樣的創作工具匯入內容,可支援數種業界標準檔案格式,例如 Autodesk 3ds Max* 物件檔案或 Collada。
最後,某些中介軟體解決方案並非是完整的遊戲引擎,而是提供構建客制化的遊戲引擎時所需的各種部件,例如 Imagination Technologies PowerVR* SDK 和 LWJGL,收費低廉甚至免費。若應用程式的規模有所限制,且不需要使用到一般 3D 遊戲的所有服務,或是需要原始碼來進行自訂時,這些都是很不錯的選擇。
物理引擎
遊戲可能會需要一個物理引擎,以便為動畫中受約束的剛性幾何圖形來模擬重力、摩擦力、慣性和恢復力的自然動作呈現,並處理碰撞偵測。遊戲上最受歡迎的物理引擎有 Bullet、NVIDIA PhysX* 和 Box2D。Bullet 和 Box2D 為免費的開放原始碼計畫。Box2D 僅限於 2D,不過 Bullet 和 PhysX 提供 3D 碰撞偵測功能,並能夠支援布料和繩索等可變形的軟性物體。許多 Android 上的 2D 遊戲引擎,包括 Corona、LibGDX、GameMaker:Studio*、Gideros Studio 和 LWJGL 都是使用 Box2D,而許多 3D 引擎使用的是 Bullet。PhysX 則是 NVIDIA 的專屬引擎。至於 Android 平台,則僅免費提供給教育和非商業用途。Unity 3D 與 DX Studio* 使用 PhysX。
Havok Project Anarchy*
Havok Project Anarchy* 為近期剛推出的行動遊戲開發用遊戲引擎暨綜合套件。其授權可讓開發者在 Android、Tizen* 和 iOS 平台上免費發佈遊戲。它的特色在於可擴充的 C++ 外掛架構,包含 Havok 的視覺和物理引擎、動畫及人工智慧 (AI) 工具,還有靈活的資產管理系統,以及 Lua* 指令碼處理和除錯功能。此外,SDK 內也附有完整的遊戲範本和豐富的教學軟體。Havok 會要求開發者成為共同的行銷合作夥伴,並以 x86 工具進行編譯,以善加利用搭載 Intel 處理器的 Android 平板電腦這個不斷成長的市場。對於行動遊戲開發者而言,這是個免費但兼具專業性的新選擇。
Unity 3D*
Unity 3D 是目前 Andorid 市場中,佔有率最大的 3D 遊戲引擎。支援的目標平台範圍廣泛,包括 iOS、Windows 以及遊戲主機。Unity 3D 具有內建的整合開發環境、PhysX 物理引擎、C#、JavaScript* 和 Boo 指令碼處理語言、多人模式和網路支援、以及串流資產。也可以支援自各種創作工具匯入美術資產。開發者一開始可免費開發,但要發佈在 Android 上時便需要授權,而這是授權費用最高的一款。Unity 3D 缺少對於採用 Intel x86 處理器的 Android 裝置的支援,限制了使用 Unity 3D 在 Android 上製作遊戲的市場。
jPCT-AE
jPCT‑AE 引擎是一款輕鬆好上手的全 Java 3D 應用程式開發介面 (API),具備構建自訂 Android 遊戲引擎時所需的必要功能。供個人和商業免費使用。jPCT-AE 支援 Autodesk 3ds Max 創作工具、骨架動畫、著色器、紋理壓縮、碰撞偵測、各種光照模式、透明度、霧化以及原生的 x86 支援,可在搭載 Intel 處理器的 Android 平板電腦上發揮更好的效能。該引擎建立於 LWJGL 上。
Gameplay
Gameplay 是一款免費的開放原始碼跨平台 C++ 3D 框架,瞄準桌上型和行動遊戲的獨立遊戲開發,也包括 Android。Gameplay 具備了功能完整的節點型場景圖渲染系統,結合了粒子、Bullet 物理引擎、音訊和使用者介面 (UI) 系統等項目。此外,還包含了 Microsoft Visual Studio*、Xcode*、Eclipse* C/C++ 開發工具以及 CMake 的各種解決方案和工作區。
Esenthel Engine
此為針對 Windows、Linux、Mac* OS X*、iOS 和 Android 的現代 2D、3D、C++– 型遊戲引擎,可支援腳本編寫、複數渲染器、動畫系統、PhysX 與 Bullet 物理引擎以及串流功能。也附有地圖編輯器、模組編輯器、資料瀏覽器以及程式碼編輯器,具有 Android 的原生 x86 支援,以及單鍵跨平台發佈功能。若為非商業用途,則 Esenthel Engine 的免費試用期無限制。
Linderdaum Engine
Linderdaum Engine 為免費開放程式碼的物件導向型 3D 遊戲引擎,適用於使用 C++ 的 Windows、Android 和 RIM BlackBerry* OS 10。此為整合型的解決方案,適用於互動式 3D 應用程式的開發,包括遊戲以及工業、科學上的視覺化。具有 x86 支援,在搭載了 Intel 處理器的 Android 平板電腦上會有更好的效能表現。
ShadingZen
ShadingZen 是免費開放程式碼的 Java 型 2D、3D 遊戲引擎,專門針對採用 OpenGL ES 2.0 加速器且螢幕尺寸不一的 Android 裝置,並運用來自於熱門的 Cocos2d 框架的概念,以便利用現代多核心的行動裝置 CPU 在幕後處理平行工作。
Marmalade*
Marmalade* SDK 是熱門的跨平台 C++ SDK,部分大型遊戲發行商會在 2D 和 3D Android 作品上使用這套引擎。可支援多種在 Windows 上使用 Visual Studio 或是在 Mac OS X 上採用 Xcode 的行動平台。Marmalade SDK 可供存取 OpenGL ES,但在構建 3D 遊戲上相對較新。該公司也提供了 Marmalade Quick,該產品使用 Cocos2d‑x 以 Lua 腳本語言和 Marmalade Juice 支援對 2D 遊戲的構建,可讓開發者將 iOS 上的 Objective‑C* 專案重新為 Android 原生編譯。這些工具可供免費試用 30 天,但發佈遊戲需要授權。Marmalade SDK 也具有 x86 支援,在搭載了 Intel 處理器的 Android 平板電腦上會有更好的效能表現。
ShiVa3D
ShiVa3D 是 3D 遊戲引擎、編輯器、創作工具、編譯器兼大型多人線上伺服器,可支援包括 Android 在內的多種目標平台。內含多種進階的著色系統、物理運算、平視顯示器渲染、Lua 指令碼處理、音訊庫等功能。ShiVa3D 是單次授權免專利費的定價結構,涵蓋了 Marmalade SDK 可支援的所有行動平台。
DX Studio*
DX Studio 是免費的 2D 及 3D 遊戲引擎,自身具有 Windows 編輯器以及對 Android 的支援 (近期剛加入)。其採用 PhysX 程式庫處理物理運算,可從多款熱門的創作工具匯入內容。
SIO2 Engine
SIO2 為跨平台的 2D、3D 遊戲引擎,目標系統為 Windows、Bada、webOS、iOS 和 Android。具有 Lua 指令碼處理支援、Bullet 物理運算、路徑尋找、音訊 API、著色器、動畫功能以及網路支援。SIO2 可透過多種匯出外掛元件,讓開發者挑選創作工具。SIO2 提供了免費的試用套件,但發佈遊戲需要授權。
Unigine*
Unigine* 為跨平台的 3D 遊戲引擎,目標系統為 Windows、Linux、Sony PlayStation* 3、Mac OS X、iOS 以及 Android。SDK 有兩個版本可供選擇:一種針對遊戲,一種針對模擬、訓練、即時視覺化以及虛擬實境的應用程式。有提供免費的試用套件供商業專案開發使用,但發佈遊戲需要授權。
LibGDX
最優秀的免費開源 3D 解決方案之一就是 LibGDX。大部分為 Java,部分為 C++ 以達到更好的效能表現。LibGDX 抽象化了 Windows、Linux 和 Android 平台之間的差異,因此開發者可在 Windows 桌上型電腦或是 Linux* 個人電腦上盡可能地進行開發,再定期至 Android 裝置上測試程式碼。LibGDX 也可支援 Mac OS X-、iOS- 和具有 Web Graphics Library 功能的瀏覽器。LibGDX 是建立在 LWJGL、OpenGL ES、FreeType、MPG123、Xiph、SoundTouch Audio Processing Library、Box2D、OpenAL 以及 Kiss FFT上。
Lightweight Java* Game Library
LWJGL 是免費的開放原始碼程式庫,能夠以 Java 開發商業品質的遊戲。其提供對於多款高效能跨平台程式庫的存取功能,例如 OpenGL ES、OpenCL™ 和 OpenAL,否則部分程式庫在 Java 平台上並未提供或是難以實作。LWJGL 可在 Android 遊戲開發中加入 3D 音效和控制器功能,例如遊戲把手、方向盤和搖桿等。許多以 Android 為目標的 2D 和 3D 遊戲引擎使用該程式庫,包括 jPCT‑AE 和 LibGDX。
jMonkeyEngine SDK
jMonkeyEngine 是一款免費開源的 3D 遊戲引擎,可讓具有冒險精神的 Java 開發者使用最先進的技術來製作 3D 遊戲。jMonkeyEngine 具備地型塑造、過場動畫、網路連線、輸入、自訂控制選項以及音訊視訊功能。可支援 Windows、Linux、Mac OS X 和 Android 系統。在物理模擬上,jMonkeyEngine 採用了 Bullet 物理庫的 Java 移植版 jBullet。jMonkeyEngine 不尋常之處在於它和 Blender 創作工具緊密相連,而成為了一個完全開放原始碼且免費的 3D 遊戲開發解決方案。
PowerVR* SDK
PowerVR SDK 包含了可用來以 C++ 為包括 Android 在內的多種平台構建出自訂的遊戲引擎的各種工具和程式庫。其中以 PVRTexTool 尤其重要,必須以它將 2D 影像壓縮為專屬的 PVRTC 紋理格式,以供 Intel® Atom™ 處理器的 PowerVR GPU 使用。本 SDK 也附有 PVRGeoPOD 工具,可從包括 Collada 在內的各種熱門創作工具中匯入內容,且有各種完整的 OpenGL ES 教學範例程序。該 SDK 為專利,但能在寬鬆式授權下免費散佈。其可作為 Eclipse 的附加元件透過 Android SDK Manager 取得。請依照
PowerVR Downloads 網站的步驟安裝 SDK。
表 1 所列為熱門的 3D 遊戲引擎和可使用的 SDK。
表 1:3D 遊戲引擎與 SDK
Name | Languages | Source Code | Cost | Intel® x86 Support | Examples |
Havok Project Anarchy* | C++ | Yes | Free | Native | Tutorials |
Unity* 3D | C#, JavaScript*, Boo | No | Tiered | No | AirAttack HD Lite |
LibGDX | C++ and Java* | Yes | Free | Portable | – |
jPCT-AE | Java | Yes | Free | Native | Max the flyer 3D |
Gameplay | C++ | Yes | Free | Portable | Examples |
Esenthel Engine | C++ | Yes | Tiered | Native | Examples |
Linderdaum Engine | C++ | Yes | Free | Native | Examples |
ShadingZen | Java | Yes | Free | Portable | Games for Kids: 3D Cube |
Marmalade* SDK | C++ and Lua* | No | Tiered | Native | Golf Battle 3D |
ShiVa3D | C++ and Lua | No | Tiered | Portable | Showcase |
DX Studio* | C++ | Yes | Free | Portable | Gallery |
SIO2 Engine | C/C++ and Lua | Yes | Tiered | Portable | Tutorials |
Unigine | C++ | No | Tiered | Portable | Oil Rush |
Lightweight Java Game Library | Java | Yes | Free | Portable | Space Invaders |
jMonkeyEngine | Java | Yes | Free | Portable | Showcase |
Imagination Technologies PowerVR* software development kit | C++ | Yes | Free | Portable | – |
結論
近日出現了許多豐富的 2D、3D 遊戲引擎、創作工具和解決方案的資源,可協助開發者加快新應用程式的開發,並善加運用新一代的 Android 平板電腦上更大、解析度更高的螢幕,以及加速後的 OpenGL ES 2.0 功能。深入了解諸多軟體解決方案之後,可從多種語言、授權和價格之中挑選出最能夠協助簡化 Android 平台的複雜性,並在視覺上提供最吸引人的使用者經驗的方案,讓自己的應用程式成功脫穎而出。
更多資訊
Comments
Post a Comment