標籤:android
摘要
遊戲開發人員知道 Android 中蘊藏著巨大的機遇。 在 Google Play 商店的前 100 款應用中,約一半是遊戲應用(在利潤最高的前 100 款應用中,它們所佔的比例超過 90%)。 如要躋身該市場,開發速度非常關鍵。 一些剛起步的獨立程式開發人員更願意從零開始來開發自己的所有代碼;但是為了達到更高的品質而不用花費數年的時間進行開發,其他人可能會選擇已有的遊戲引擎。上章研究了英特爾 Android* 開發人員指南上的對等應用詳解,在選擇引擎時,你可以考慮以下幾個因素:
- 成本 — 你計劃支出多少費用?
- 維度 — 你的遊戲是二維還是三維?
- 語言 — 你的開發人員瞭解哪些程式設計語言?
- 藝術家管線(Artist pipeline) — 它與內容建立工具的整合情況如何?
- 全部資源訪問 — 你是否需要進行訪問,以便對該引擎做出深層的更改?
目前可以使用的 Android 遊戲引擎有很多,但是這些引擎在這些標準上有很大差別。 隨著採用英特爾? 處理器的高效能 Android 裝置越來越多地向市場普及,選擇一款針對基於 x86 的 Android 裝置進行最佳化的引擎比以往更重要。 本文將可協助選擇適合你的遊戲的引擎,以便為你的 Android 客戶提供最佳的效能。
最佳選擇
本文對最佳備選引擎從以下三個方面進行了檢測。
Epic Games 的 Unreal* Engine 自 1998 年首次發布起,長期以來一直佔有重要地位,它在電腦、控制台和移動平台領域促成了大量的成功案例。 Unreal Engine 包含以下工具:
- Unreal Editor (3D 內容編輯器)
- 藍圖視覺指令碼編輯(拖放編輯)
- Persona 動畫工具
- 面向 AI 、光線和其他效果的編輯器和工具
Project Anarchy* 是 Havok 最近開發的一款引擎。 它將 Havok 業經證明的主要遊戲技術與針對移動開發進行定製的引擎相結合。 Project Anarchy 包括以下組件:
- Havok Vision Editor (3D 內容編輯器)
- 採用 Havok Physics 的 Havok Vision Engine
- Havok Animation Studio (拖放編輯)
- Autodesk Scaleform* (UI 工具)
- 面向 AI 、光線和其他效果的編輯器和工具
Marmalade* 是一款跨平台軟體開發套件,專為移動遊戲的快速建立和構建。 Marmalade 比前兩款技術都要新,於 2011 年剛作為一款遊戲發布。 Marmalade 包含以下元素:
- Marmalade C++ SDK
- Marmalade Quick (Lua)
- Marmalade Juice (Obj-C)
- Web Marmalade (HTML5/JavaScript*)
成本
許多引擎可根據所需的功能提供多種價位。 決定價格最常見的因素有目標平台和你團隊或企業的規模。
Unreal Engine 要求每月交付 19 美元的註冊費,而且要求收取基於其技術所開發的所有項目所得的全部收入的 5%。 該款支援人員定製價格結構、額外支援和面向控制台的開發選項。
Project Anarchy 目前(而且將來會繼續)免費供各種規模的團隊在開發移動遊戲時使用。 如果使用者需要針對 PC 或控制台進行開發,獲得深層的訪問和其他工具,也可購買進階版本。 對於基本開發而言, Project Anarchy 無疑是最經濟的選擇,它只要求與你的遊戲一起進行聯合推廣。
寫這篇文章時,Marmalade 可供收入低於 500,000 美元,開發人員低於 3 人的團隊免費使用 1 年的時間。 這是暫時的促銷活動,獲得許可一般需要支付 149 美元以上的稅費。 更高的價位可提供更多的目標平台開發和直接的開發人員支援。
維度
3D 遊戲的吸引力無可爭辯,但是對於許多簡單的遊戲而言,2D 是更好的選擇,它需要的時間和資源投資比 3D 少得多。 你的遊戲維度與所選的引擎有密切的關係。
Marmalade 沒有 3D 圖形支援,但是 Unreal Engine 和 Project Anarchy 可提供該支援。 這些引擎為在 3D 開發中提供最佳體驗,已做出了無數次改進。
簡而言之,三款引擎都可用於 2D 開發,但是 Unreal Engine 和 Project Anarchy 的功能不僅於此。 Project Anarchy 目前可提供一款 alpha 級的 2D 工具集樣本,Unreal Engine 和 Marmalade 也均可提供 2D 範例程式碼。 專為快速開發而設計的 Marmalade 工具的一個子集 Marmalade Quick 僅針對 2D 。
三款引擎均可用於 3D 和 2D 遊戲,但是 Marmalade 更適合 2D,Project Anarchy 和 Unreal Engine 更適合 3D。
語言
如果你團隊中的開發人員熟悉某款引擎中使用的程式設計語言(如果使用過更好),學習過程將會顯著縮短。
在 Unreal Engine 4 之前的版本中,Unreal Engine 的遊戲編程是在 UnrealScript 中完成的,後者是 Epic 所有的指令碼編寫語言,其採用類似 C 語言的文法。 隨著 Unreal Engine 4 的發布,C++ 成為主要的開發語言。
Project Anarchy 基於 C++,使用 Lua 編寫指令碼。 許多引擎會儘可能地使用輕型指令碼語言(如 Lua),以減少低層級任務(如記憶體管理)的風險。
Marmalade 包括多種工具集,具體取決於所需的語言。 基本 SDK 使用 C++,Marmalade Juice 使用 Objective-C*,Marmalade Quick 使用 Lua,Web Marmalade 專門針對 HTML5/JavaScript 開發而設計。
在語言選擇的豐富性方面,Marmalade 的確具備突出的優勢。 你的開發人員能夠更好地根據其喜歡的開發方式使用某種形式的 Marmalade。 該特性與抽象層“只需編寫一次,即可隨處應用”的本質密切相關。
藝術家管線
過去,Team Dev中只有編程人員。 現在,遊戲工作室(無論大小)都明確劃分了編程人員和藝術家的職責。 能夠與內容建立工具密切整合的引擎可在競爭中佔據優勢。
Unreal Engine 和 Project Anarchy 均包含針對布局、關卡設計、資產操作等的 3D 編輯器。這些對 3D 藝術家尤為有用,因為其介面與許多 3D 藝術工具相似(它們還可與引擎的編輯器結合使用來建立資產)。
Unreal* Editor(左)和 Havok Vision Editor (右)
Unreal Engine 包含“藍圖編寫(blueprint scripting)”功能,在該功能中,指令碼組件(如動作)可形象化為拖放元素。
Unreal* Editor 中的藍圖編寫(Blueprint scripting)功能
Project Anarchy 可提供一款相似的基於狀態機器的設計工具用於動畫設計。
Project Anarchy* 分層狀態機器動畫工具
雖然 Marmalade 擁有一個大型社區,用於開發開源外掛程式和工具來支援開發工作(其中的大部分可從該網站擷取:http://github.com/marmalade),但是 Marmalade 官方套件並未針對非程式員提供任何資源。 憑藉全面的工具套件,Project Anarchy 和 Unreal Engine 在該方面佔有優勢。
全部資源訪問
從可能性方面而言,建立自己的引擎還有一個好處,即能夠對其進行修改。 因為能夠訪問全部的原始碼,所以你能夠更改其中的任何內容,或在其他的新目標平台上添加自己的支援。
Unreal Engine 在這一方面最慷慨;如果你支付了Unreal Engine 4 註冊費,便能夠訪問全部資源。
Project Anarchy 可提供一些組件的源,如果需要全部的源,需要支付更高的費用。 使用者可隨時訪問低層級的資源,但是僅可對免費版本進行修改。
雖然 Marmalade 擁有大量開源外掛程式,但是其本身為封閉源。 你能夠訪問最高層網,但是無法訪問其他源。
大部分開發人員可能並不擔心這一點,但是遊戲引擎設計越複雜,你就越需要對每一個細節有更高的控制力。
特性比較
| |
Marmalade |
Project Anarchy |
Unreal Engine |
| 最低成本 |
免費促銷/149 美元 + 增值稅 |
免費 |
19 美元/月 + 5% |
| 維度 |
3D |
可實現 |
適用 |
適用 |
| 2D |
最輕鬆 |
alpha 級工具集 |
可實現,樣本 |
| 語言 |
C++、Obj-C、Lua、HTML5 |
C++、Lua |
C++ |
| 非程式員功能 |
第三 方 |
3D 編輯器,Animation Studio |
3D 編輯器,Blueprint scripting |
| 全源 |
不可以 |
部分,但都在最高層 |
可以 |
總結
此處進行比較的每款引擎都有其專長和一處專屬優勢。 如果需要考慮未來成本,則可以選擇 Project Anarchy。 如果考慮到技能和深層修改和擴充引擎的需求,Unreal 是成本最低的方式。 對於快速開發 2D 遊戲,Marmalade 是不二之選。 市場上還有許多其他的免費和開源引擎 ,這些引擎堪與本文中所比較的三款引擎相媲美,但是我們選擇這三款引擎而非其他,是因為這些引擎的效能能夠助力你的遊戲在多種 Android 裝置上綻放華彩。