2010年9月26日 星期日

[翻譯]小型獨立製作工作室用的遊戲引擎與框架

作者:Aung Sithu Kyaw
譯者:Goshawk
出處:原文連結 原文列印版

1.文章內所有引用圖像其版權皆屬於原文章作者及該遊戲公司所有,如有版權問題請來信告知。
2.本文翻譯目的為學習和交流使用,若有內容翻譯錯誤也請不吝指正。
3.引用完全自由。


前言
一個遊戲開發專案要能圓滿成功,選對引擎或框架是件非常重要的事。藉由運用現有的引擎開始專案,能夠省下大量的時間和金錢,但是只有在選對了才有可能。周遭有這麼多可用的框架,選擇引擎和框架這項任務需要對想要使用的做上相當的研究。這份報告裡將會討論在市場可用的現存引擎(商業 和/或 開源),並且在像特許費用、支援平台、使用難易、技術協助等等的主要標準上來比較它們。

平台概觀
這部份將會排除某些像Sony PS、PSP等等這種在進入上具有高度障礙的平台,而討論那些最可能針對小型獨立製作工作室的遊戲平台。同樣也不再敘述PC平台,因為它幾乎已經是所有遊戲開發者熟得不能再熟的平台了。

網頁瀏覽器
近來網頁瀏覽器被用來當成遊戲平台已經是件越來越頻繁的事了。和其他視頻和PC遊戲相比,它主要的優點就是除了網頁瀏覽器本身以外,不用再安裝任何客戶端軟體。今日可以的網頁遊戲有三種類別:JavaScript基礎、插件基礎和伺服器端基礎。關於網頁遊戲的技術比較可以查看在文章最後的附錄表格1。

目前市場上最有主要影響力的幾款瀏覽器分別是:微軟的IE、Mozilla的火狐(Firefox)、Google的Chrome和蘋果的Safari。這些瀏覽器的使用情形可以參照下面依據2010年2月和3月報告的圖1。

開發網頁遊戲也需要考量跨瀏覽器的相容性問題。

   
圖1:網頁瀏覽器的使用市占率[參照資料24]

社交網路
最近社交遊戲就像社交網站一樣,變得越來越普及。世界最大社交網站之一的臉書(facebook),就有超越4億名的活躍用戶[參照資料28]。而設計社交遊戲,跟設計傳統的商業遊戲並不一樣。玩家會花上長期的時間玩社交遊戲,但是每天只用幾分鐘,從事像下達遊戲內指令、與社交圈子內的朋友合作、贈送禮物等等的行為。

社交遊戲的技術通常需要靠著資料庫、網路流量、伺服器與網頁服務的共同作業。而社交遊戲的獲利主要是來自銷售虛擬道具跟服務,就是大家所熟知的「微交易」。一些像臉書和Hi5的社交網站提供API(應用程式介面)給開發者們,讓他們可以在應用程式裡面使用網站的社交特色。所以用來開發社交遊戲的技術應該要能夠支援以上的需求,並且也應該能夠簡單地跟目標平台的API整合在一起。

關於社交網路服務的細節研究跟分析,可以參考2009年3月出版的「尼爾森報告:社交網路的新全球足跡」[參照資料27]。


iPod Touch、iPhone和iPad
這三種都是靠著蘋果設計跟生產的消費性電子產品。iPod Touch是種可攜式的媒體播放器,同時也是具有Wi-Fi功能的行動平台。它在2007年9月首次亮相,現在有8G、32G和64G三種規格。iPhone是種具有網際網路功能的智能手機,並且也具有iPod的所有特徵。以上兩者都使用降級版的蘋果Mac OS X運行,叫做iPhone OS,帶有各種像Safari和郵件的Mac OS X應用程式。在2010年1月,蘋果宣佈稱作iPad的平板電腦,並於2010年4月3號在美國開始販售。iPad上運行的是調整過的iPhone OS。

以上三種消費性電子產品都可以連線到蘋果的軟體銷售平台App Store,並且下載和安裝包括遊戲在內的應用程式。App Store目前具有超過18萬套[參照資料29]給iPhone和iPod Touch使用的程式,其中還包含2萬4千5百套以上的遊戲[參照資料30]。然而相較之下,目前給iPad使用的應用程式只有遠遠不及的3千5百多套[參照資料29]。截至今日,蘋果已經銷售出超過5千萬支的iPhone、3千5百萬個iPod Touch和45萬組的iPad[參照資料29]。

     
圖2:作業系統的使用市占率[參照資料26]


圖3:美國手機瀏覽器使用率[參照資料29]
(譯註:iPhone[綠色]-64% / Android[藍色]-19% / 黑莓BlackBerry[紫色]-9% / 其他[橘色]-8%

Xbox Live Arcade (XBLA)
經由介紹XNA創作者線上俱樂部,微軟讓獨立遊戲製作者替Xbox360平台製作遊戲成為可能。製作者們現在可以免費下載XNA 遊戲工作室的程式,而且學習如何製作Xbox360的遊戲。然而,實際上製作Xbox360的遊戲,並且把它們上架到Xbox線上市場(微軟Xbox360的數位產品通路),製作者們需要繳交價格99元美金的XNA創作者線上俱樂部會員資格年費。


技術概觀

PopCap框架(PCF)[參照資料1]
這是一流的休閒遊戲開發商PopCap用來開發它旗下如寶石迷陣(Bejeweled)、祖瑪(Zuma)等這些著名遊戲的框架。在2005年的時候對外免費釋出。然而從2009年3月之後,PopCap不再繼續對這個框架提供技術支援。目前這個框架已經移到專門收集保存開放原始碼的網站SourceForge.net存放[參照資料1]。使用者仍然可以使用這個框架來開發,而且需要取得使用權,即使取得使用權這事不是非常重要。

PopCap框架使用C++寫成,Direct3D7做硬體加速貼圖。它也支援軟體貼圖,好能夠讓舊式電腦的相容性最大化。它同時還有資源載入、記憶體管理、XML剖析器、圖形介面控制小工具和輸入步驟記錄這些特徵。而音效跟音樂部份要透過像BASS、FMOD等等這些第三方資料庫來提供。目前PopCap框架只有PC版本可用。不過還是有給Mac的社群端口。


圖4:使用PCF開發的遊戲(PopCap Games©)


PlayFirst的遊樂場開發工具組(Playground SDK)[參照資料2]
像PCF一樣,這也是休閒遊戲開發商PlayFirst提供的免費框架。它同時支援硬體加速2D和3D貼圖。使用者可以用LUA語言來撰寫遊戲腳本和設計圖形介面元素。而且在來源階段編譯的偵錯上,也支援使用Decoda LUA偵錯器[參照資料12]。

Playground SDK超越PCF的主要優勢就是它同時支援PC和Mac兩種平台。其他語言版本的在地化也可以簡單靠著Unicode XML字串試算表來完成。


圖5:使用Playground SDK開發的遊戲(PlayFirst©)


BlitzMax [參照資料3]
BlitzMax是Blitz Research開發的商業用遊戲程式語言。它是一種允許開發者使用以BASIC為基礎,不過略有強化的程式語言。是種多平台的2D遊戲開發語言。以BlitzMax寫成的遊戲可以在Windows、Mac OS X和Linux三種主要的PC平台上運行。

BlitzMax是PC專有的原創2D遊戲引擎BlitzPlus的後繼者。在3D遊戲的開發上,開發者們可以選用另一種叫做Blitz3D的引擎。

   
圖6:使用Blitz開發的遊戲(Voodoo Dimention©, Grey Alien Games©)


HAAF的遊戲引擎(HGE)[參照資料4]
HGE是種強力而且簡單使用硬體加速的2D遊戲引擎。是可以快速且簡單開發商業品質2D遊戲的中介軟體。它使用C++建立在DirectX8的基礎上。只支援Windows平台。同時並不支持腳本編譯、網路功能和執行緒控制。

HGE支援圖形介面控制項的,但並不提供可供編輯外觀的工具。不過它在遊戲開發上提供了兩項很棒的工具:分子效果編輯器,允許視覺上編輯2D分子效果的所有參數;和點陣字型建構器,安裝在系統內的任何字型。HGE引擎本身是免費而且開放原始碼的,但是在使用音效資料庫BASS[參照資料22]上卻不是開源的。開發者需要購買BASS的許可,才能在商業應用程式上使用。


圖7:HGE引擎架構[參照資料4]

   
圖8:使用HGE開發的遊戲(Big Fish Games©)


PTK 2D遊戲引擎 [參照資料5]
PTK是種具有圍繞OpenGL建立而成3D性能的多平台2D遊戲引擎,亦或是具有用OpendGL開發3D多平台遊戲可能性的Direct 3D加速硬體。

PTK是以簡單考量設計,並且使用C/C++寫成。它並沒有像PCF那樣的圖形介面小工具特徵,但選擇PTK甚於PCF的首要原因就是它包含了PC、Mac和Linux的多平台支援。


XNA遊戲工作室(XNA Game Studio)[參照資料6]
微軟XNA遊戲工作室是套以微軟Visual Studio支援版本為基礎的工具,它允許學生和業餘愛好者替Windows、Xbox 360娛樂系統和Zune開發遊戲。微軟在GDC 2010發布最新的XNA遊戲工作室4.0版,此版本加入了對微軟未來推動的Windows Phone 7手機系列支援。

要在Xbox 360上發表遊戲,開發者有兩種選擇,不管是哪一種都需要大量的金錢跟經驗基礎。而對獨立遊戲開發者,想要出版和銷售遊戲到Xbox Live賣場,必須要有XNA創作者線上俱樂部的付費會員資格。然而,想要發表商業性的Xbox Live Arcade和光碟版遊戲,開發者必須先成為一個經認可的微軟Xbox 360開發商。


Unity 3D [參照資料7]
已經發行的Unity首版完全只能純在Mac上運行。不過該公司以Unity 2.5版做為在Windows上釋出的首版,並且突然把Unity開放成一個更寬廣的開發者社群。

在2009年10月,Unity的年度「Unite」大會上,該公司宣佈了Unity 2.6版,而且同時也宣佈了支援Xbox 360的消息,還宣告Unity給獨立製作者的版本免費。

就在2010年遊戲開發者大會(GDC 2010)之前,Unity宣佈了Unity iPhone 1.6版,此版本加入了.NET 2.1的支援,減少了應用程式的大小高達25%,而且還在Unity的其他版本加入了核心網路特色,允許開發者在Wi-Fi或3G上提供多人遊戲。

已經有超過10萬人下載並且安裝了Unity,並且還有超過600款使用Unity iPhone版[參照資料14]製作的應用程式在蘋果的軟體銷售平台App Store上架。

Unity 3.0會在2010年夏季發布,並且會包括統合編輯器、來源階段除錯,和延遲貼圖系統的內容。Unity也正在宣佈除了目前像網頁、Xbox 360、Wii和iPhone可行的平台外,增加Android、iPad和PS3這些平台的可用性。
(譯註:Unity在台灣為奇銳科技代理)
   
圖9:使用Unity開發的遊戲(Freeverse, Inc©, EnerCities©)


Torque [參照資料8]
Torque遊戲引擎(TGE)是原來由Dynamix製作2001年的一款FPS Tribe 2的3D電腦遊戲引擎修正版,而目前可以從Garage Games取得許可權。但自從Torque家族的3D引擎被Torque 3D接管後,TGE便不再通用。

Torque引擎幾乎可以在所有的平台通用,包括Windows、Mac、iPhone、Wii和Xbox 360。來自Torque家族的引擎又可以特別分為3D和2D。

在3D方面,可分為Torque 3D、iPhone 3D用Torque、Wii用Torque、獨立Xbox 360開發者用的Torque X 3D,和微軟許可Xbox 360開發商用的Torque 360。

在2D方面,可分為Torque 2D、iPhone 2D用Torque,和Torque X 2D。

由Garage Games最新發行和可使用的分散式服務,是使用最新3D瀏覽器附加元件技術「即時行動(Instant Aciotn)[參照資料25]」的網上發行功能。開發者可以取得這項技術的許可,來製作和散布可以在網頁瀏覽器內遊玩的3D遊戲。


Unreal開發套件(UDK)[參照資料9]
UDK是在2009年11月釋出,作為Unreal引擎3(UE3)的PC免費版。UE3是款提供像《戰爭機器2(Gears of War 2)》、《浴血戰場3(Unreal Tournament 3)》和Rocksteady的《蝙蝠俠:小丑大逃亡(Batman: Arkham Asylum)》等等這些3A級遊戲強大效能的引擎。雖然UE3已經支援包括PS3和Xbox360在內的其他平台,但UDK目前只支援PC平台而已。

隨著UDK的釋出,開發者現在可以製作跟釋出非商業化的免費UE3引擎遊戲。然而,對想要製作和銷售商業遊戲的開發者,Epic Game做出了如下的許可聲明:
「如果正在使用UDK開發遊戲或商業應用程式來銷售或給終端用戶或玩家,或者是提供遊戲或應用程式的網路連接服務,每台單機的授權許可選項便不再適用。

此合約的許可條款改為必須先支付99元美金的前金,並且在個人或公司方面使用UDK的相關收益在5千美金以下不酌收權利金;而在5千美金以上的收入,收取25%的權利金。」



Gamebryo光速休閒版(LightSpeed Casual)[參照資料10]
Gamebryo光速是由Emergent Game科技發表的最新技術,是種可從頭到尾一氣呵成,而且支援多類型/多平台遊戲開發環境的專業技術。

2008年,該公司宣佈了休閒用Gamebryo來支援逐漸成長的休閒遊戲市場。它和過去一些3A級遊戲開發商所使用的版本具有同樣的引擎和工具。支援包括PC(DirectX 9和DirectX 10)、Xbox 360/XBLA,和PS3/PSN的多種平台。

基於個人開發者的特別預算和時間限制,該公司提供了客製化許可設計方案,不過MMO遊戲並不包括在設計方案內。


Adobe Flash CS4、Flex和AIR[參照資料13]
Adobe Flash CS4是一套對美術友善的工具,能夠在桌上型電腦和其他設備上開發互動性高而且豐富的媒體應用程式。在創作原型上,它是一樣很棒的工具。開發者可以使用第三方應用程式F-in-box來在C++上嵌入FLASH。

Adobe FLASH播放器是一種跨平台的瀏覽器附加元件,散布在超過98%具有網際網路功能的桌上電腦裡;而Adobe AIR是種用來建構豐富網際網路應用程式的跨平台運算,還可以在瀏覽器外散布,與整合本地操作系統。

Flex是套免費、開放原始碼的框架,用來建構和維護那些通常在主流瀏覽器、桌上型電腦和作業系統發布的在線應用程式。Flex框架是Flash Catalyst和Flash Builder兩套軟體的基礎。

這些工具和框架集合就是已知的Flash平台。在支援像臉書這樣的社交應用程式上,證明Adobe的這些軟體對開發社交遊戲是很有希望的選擇。

   
圖10:社交遊戲基礎FLASH遊戲範例(Zynga Game Network©, PlayFish©)

Java [參照資料20]
Java是昇陽科技在1995年釋出的一種程式語言和平台。是目前許多像公用程式、遊戲和商業軟體這些正在使用的應用程式的基本技術。Java可以在全世界超過8億5千萬台的個人電腦,還有包括行動和電視裝置總共數以億計的設備上運行。[參照資料21]

Java支援基本的2D繪圖,搭配上稱作Java3D API的外部資料庫也能夠支援3D。但是使用Java3D的專案主要都是學術和科學視覺化工作的用途,商業遊戲不太使用這種技術。


產業狀況


圖11:下載遊戲的框架使用情形[參照資料11]

特質模型
David Fox[參照資料16]建議可以把框架或獨特技術的特徵主要分為:『硬性』、『中性』和『軟性』三類。

硬性特質
硬性特質包含許可費用、運行表現、最低系統需求、開發支援、可用文案、平台支援、本地化支援和可用工具。這些特質會或短或長會直接影響到開發專案。

圖12:網頁遊戲的框架使用情形[參照資料11]

中性特質
中性特質大概包括硬體加速繪圖支援、2D/3D貼圖、網路功能、腳本編譯、分子效果支援,和遊戲資源的封裝與混淆。

軟性特質
軟性特質並非那些有些的特質,而是在遊戲專案開發過程中扮演重要的角色,像是框架的學習曲線、已知的BUG、支援類型和是否為已經認可的技術。

結語
這份報告討論了各式各樣的框架,以及它們的可行性。就像其他任何一個案例一樣,當決定一個引擎/框架總是會有取捨。假如一個引擎很容易使用,那它也許只有簡單的特色。換句話說,一個充滿特色的引擎必定需要時間來學習和精通。

開發者應該要檢查框架已知的BUG,還有在問題追蹤器下的狀況。如果有已知的BUG影響正在計畫準備開發的遊戲,也許需要考慮引擎是否開放原始碼,並且允許開發者自行做特定BUG修正。

理想上應該要保持遊戲設計具有足夠的彈性,讓選定的技術能夠發揮足夠的效能。開發者應該要檢查引擎是否只綁定在單一特定的遊戲類型,或是能夠輕易採用來製作其他類型的遊戲。舉例來說,如果打算開發一個FPS(First Person Shooter,第一人稱射擊)遊戲,選擇一個FPS遊戲引擎當然是最理想的。不過要是這個引擎專門用來做FPS,而又想把它拿來開發像RTS(Real-time Strategy,即時戰略)或是3D側捲平台的遊戲,就得需要重新製作視角系統,甚至貼圖優化。也可以藉由考察使用該特定引擎製作並且已經釋出的遊戲,來檢查這個引擎的多平台支援。在遊戲的開發過程,只是為了改變圖形介面按鈕大小,而重新建構整個引擎是件非常浪費時間的事。容許開發者撰寫腳本語言,然後由引擎來解譯和執行,會讓開發流程更有生產力。

最後,在附錄的部份,筆者在表格3做了一個這些引擎的比較;還有按照筆者寫這份報告的個人經驗和研究為基礎,在表格2做了一份特定平台的適用技術表。


參照資料:
[1] Popcap框架(PCF)下載連結頁面
[2] Playfirst開發者網站主頁
[3] BlitzMax官方網站
[4] HGE遊戲引擎官方網站
[5] PTK遊戲引擎官方網站
[6] XNA創作者官方網站
[7] Unity科技官方網站
[8] Torque官方網站
[9] UDK官方網站
[10] Gamebryo光速引擎介紹主頁
[11] 國際遊戲開發者協會(IGDA) - 休閒遊戲技術調查
[12] 具有LUA整合開發環境和除錯功能的軟體decoda介紹頁面
[13] Adobe官方網站的產品介紹頁面
[14] 使用Unity所開發遊戲的名單
[15] 引擎內嵌FLASH用的第三方資料庫f-in-box官方網站
[16] GDC 09 - David Fox:遊戲的工具與引擎概觀
[17] 網頁瀏覽器附加元件市佔率
[18] Shockwave Player的市佔率
[19] Unity官方部落格:對瀏覽器附加元件滲透力的想法
[20] JAVA官方網站
[21] JAVA技術FAQ
[22] BASS音效資料庫的開發商Un4seen官方網站
[23] 遊戲程設維基關於遊戲引擎的列表
[24] 維基百科(英文):網頁瀏覽器市佔率
[25] Torque附加技術InstantAction官方網站
[26] 維基百科(英文):作業系統市佔率
[27] 尼爾森報告:社交網路的新全球足跡(PDF檔,下載連結
[28] Facebook新聞中心的統計資料
[29] 蘋果iPhone OS 4發表會Keynote簡報(2010/04/08) - (影片連結
[30] 蘋果開發新聞和社群資訊148Apps

附錄表格:

表格1:網頁遊戲技術狀態


表格2:針對各平台的建議


表格3:引擎特徵比較表

2 則留言:

  1. 翻譯得真好!而且竟然連圖片和表格也一併翻譯了,實在太讚啦!

    請讓我將你的部落格加入猴子靈藥的「連結」與「聯播」頁面中,感謝~ :D

    回覆刪除
  2. 請隨意取用。

    其實還有很多地方我覺得翻譯的不是很好...
    希望也請用力鞭策

    回覆刪除