2014年2月6日 星期四

【情報】一位Wii U遊戲開發者的故事 - Wii U開發內幕

http://forum.gamer.com.tw/C.php?bsn=60001&snA=30256

原譯文網址:
http://nogameno.blogspot.tw/2014/01/wii-u.html

那篇秘密Wii U遊戲開發者故事的Eurogamer文章,有翻譯成中文,
雖然非全文逐句翻譯,但也有8、9成了。有6000多字,當成故事看也很精采啊。


幾年前,任天堂的Wii在電玩產業歷史上可以說是締造了歷史般的銷售紀錄,創造一股熱潮,甚至被譽為藍海奇蹟。在2012年,任天堂推出了Wii的後繼機種Wii U,Wii U同樣走異質產品路線,但其銷售卻不是相當順遂。今年兩位主要對手,微軟(Microsoft)與索尼(Sony)雙雙推出其接班機種Xbox One與PS4,兩台主機在耶誕假期,橫掃歐美各國,Wii U完全難攖其鋒。日前,歐洲最大遊戲新聞網站Eurogamer,刊登出一位擁有Wii U開發經驗的遊戲開發者某君(後以X表示之),講述他為Wii U開發遊戲時遇到的種種事情,或許可以從一位開發者的角度,讓我們看看任天堂在這台主機到底出了什麼問題。
文章太長,不一句句翻,請見諒。原文以第一人稱敘述,翻譯以第三人稱敘述。

X在任天堂首度向廠商披露Wii U資訊的時候就參與其中。他在一間第三方廠商開發團隊中負責硬體,協助公司開發出一款市面上較成功的Wii U遊戲。這次Wii U迎來其發售後第二個耶誕商戰,但銷售表現仍然讓人失望,主機未來陷入不確定,他遂有想出來告訴世人參與開發Wii U遊戲,與任天堂合作的真實狀況到底是什麼樣子的想法,讓大家知道一些Wii U起伏的來龍去脈。

*第三方廠商:在遊戲開發產業中,指不屬於任何主機廠商,且沒有固定支持特定主機廠商的自由遊戲開發廠商或發行商。
   

,X先從一台主機大致的開發流程說起:
  • 主機開發第一個階段,主機廠商會花很長一段時間研究、開發想要達成的目標,還有起草大略設計。設計草稿出來後,開始找各零件製造商,針對技術與成本等考慮要件來進一步完善設計。  
  • 一旦基本硬體設計大致底定,內部軟體(SDK)團隊就加入主機開發團隊,開始為硬體撰寫內部程式碼/驅動程式,還有進行運行硬體必須的種種測試。然後主機開發團隊對硬體、成本與推出時程都敲定後,就開始對遊戲開發者們介紹新主機。  
  • 最先接觸的遊戲開發者會是第一方開發商**,收集他們對新主機的想法、反應或意見。他們的意見可能會(也可能不會)影響硬體設計。在這階段硬體的設計可能有所變動,不過機會不大,因為零件製造商調整他們的晶片產線要花額外時間。  
  • 第一方開發商的看法收集完之後,主機商會開始找特定的第三方遊戲開發商,如UBI、Take-Two與EA等。主機廠商必須說服、誘惑他們為其新主機開發遊戲。因為如果沒有他們遊戲,還有他們所提供的收入,主機很快就會開始燒錢,成為套住主機廠商脖子的一條繩子。  
  • 開始對第三方廠商介紹主機後,基本上就不太可能再出現任何重大硬體設計變更,除非是有辦法透過軟體就能改變的東西(如處理器運作時脈、作業系統(OS)的time slice等),或是很簡單就加入的組件,如更高容量的記憶體模組。而X就是在這階段進入Wii U的開發。

**第一方開發商:隸屬主機廠商的遊戲開發團隊,無論是公司內部直屬團隊或是子公司。

某日,X被告知任天堂要過來開會,X心想應該就是要來講新主機,因為謠言已經傳好幾個禮拜,雖然謠言裡頭沒提到具體內容。在簽了幾份保密協定(NDA)後,人們被聚在一個房間,準備聽任天堂簡報與展示。

任天堂的簡報一如往常,開頭先談Wii的豐功偉業,還有他們對新主機有什麼目標期許。他們希望新主機尺寸與Wii相同,並且不會發出什麼噪音,如此一來「媽媽就不會在意它放在客廳」。聽到這X心中突然有種不太妙的感覺,不過他忽略份感覺繼續看簡報。接著任天堂說「我們需要你們(遊戲開發者)的幫助來確保WiiU的成功,並且幫助我們(任天堂)前進」,不料這段話日後感覺起來無論對我們或是任天堂,都有著更深遠的意義。

  
新控制器是以一個不具功能的外觀原型,配上一個炫奇影片的形式來展示。影片展現你能在新控制器上頭做些什麼,那看來讓人非常興奮。當時X等人滿腦子都在想像他們的遊戲配上這個新控制器能玩出什麼花樣。接著任天堂開始談起新主機的內部細節,這時X意識到為何之前出現不妙的感覺。任天堂想要新主機又小又安靜,他們就必須抑制風扇噪音,這表示冷卻能力受限,CPU只能產生最小限度的熱,這又表示時脈必須保持在低速。

根據比較與計算,WiiU看起來,至少在紙上規格看來,CPU能力明顯低於Xbox 360,他們在會議上提出這點,任天堂回應說「對整體設計而言低功耗更重要」而且「CPU的其他特性能夠彌補不足」。
展示過後,任天堂立即寄E-mail給各開發人員,詢問看完後對新主機的設計與規格有何看法。「我喜歡控制器,但CPU似乎不太夠力」幾乎成了標準回應。

展示過後的的幾週,由於當時還未釋出開發機給遊戲開發商索取,沒有真正的機器可供測試,所以大家就開始做其他的計算與評估,試著找出這台新機器的效能表現。甚至有人組一台用特製PC並配降低時脈的CPU,以評估與測量他們所撰寫的程式碼在新主機上的效能如何。再一次的,得到的答案幾乎都是不夠力去運行次世代遊戲引擎,甚至跟Xbox 360/PS3對抗可能都有點吃力。儘管效能評估結果如此,X的管理高層還是因業務考量,決定要推出一款WiiU遊戲,所以X他們就必須實際去開發出一款Wii U遊戲了。

在X的開發公司表達要開發WiiU遊戲的意願後,開發套件不久後就到了。一如其他早期開發機一樣,機體比最終設計要大台,上頭也充斥著各式接頭插座。他們把接頭接上,為其更新到最新系統版本,然後試著寫個"Hello World"等級的簡單程式碼在上頭執行,結果比想像中要困難。

X表示,做過那麼多台主機,可能被成熟並可良好地整合入他們開發環境的成熟開發工具鏈(Toolchain)所慣壞。任天堂提供的Wii U開發工具鏈則是像處處刁難,讓你難以編譯與執行程式碼。基本上,任天堂提供你一個整合入Visual Studio的開發工具,但這大概只算是業界標準的而已,問題是這Visual Studio根本無法執行,甚至更糟。X他們浪費很多時間在這問題上,儘管X有向任天堂回報這個問題。最後他們從另一個也耗在相同一段時間的第三方廠商那得到任天堂給的解決方案。

終於,能在Visual Studio上頭寫程式碼,然後編譯執行,很好!但問題又來了,編譯時間相當慢,即使經過幾次改版也是這樣。例如你進行連接(Link)這個步驟,這意味著你在動作完成前,可以快樂的起身,泡杯咖啡、聊個天,再回到你的座位。連接在其他平台耗費時間是一分鐘,但Wii U要數分鐘(四分鐘或者更多)。

四分鐘聽起來不久,但假如你是在除錯或做大量變更,就會耗費更多額外時間,例如你對某個檔案做10個改變,就可能讓你等待超過50分鐘,這浪費很多時間。

當程式碼寫好,接下來要佈署到主機當中並開始除錯器(Debugger)。這部分的工具鏈,任天堂是採用Green Hills Software授權的軟體。X說身為資深開發者,他用過很多種除錯器,但這款還是讓他驚訝。介面遲緩不說,不小心點到程式碼,就會停止執行,並恢復你所點擊到之程式碼的所有變數值,你要花一分鐘甚至更久時間才能恢復並繼續執行。

以上所有事情都增加開發難度,並花更多開發時間。編譯/連結/除錯是X他們開發團隊的家常便飯,因為這種問題就消耗了許多時間,也連帶影響能在發售日之前可完成的特色數量。

在此階段另一個值得一提的事就是,在6個月時間裡,他們陸續收到不同的新開發套件,但沒有一個會告訴你他與之前的有何不同。X他們知道新開發套件必定修正了什麼硬體錯誤,但文件裡頭就是不寫修了什麼,導致他們每回拿到新機子只好再測一遍程式碼,又額外消耗寶貴的開發時間。

另外以前曾有謠言說WiiU使用特製PC當開發機,甚至說裡頭用降頻的Radeon HD 4850來權充Wii U的GPU。但事實上從他們從沒見過這樣的事,他們收到的開發機從來都是使用接近最終成品的晶片製作的特製硬體。

終於遊戲能在機子中執行,可以開始為新控制器打造開發特色。但進行不久後就遭遇(那極度"簡潔"的)開發文件所沒提及的問題,所以他們就先問了當地任天堂支援小組,他們並不知道,就幫他們把問題轉給日本總公司支援小組,之後就是等...等...等...

一個禮拜後,當地支援小組收到日本支援小組回信就轉給他們,但裡頭只有幾句鱉腳英語,而且也沒能真正回答到X一開始問的問題。於是就要求他們再說清楚一點,這回又是一個禮拜才收到解答。X就問當地支援團隊為何日本那邊傳來回覆要那麼久,是他們很忙,還是怎樣嗎?當地支援團隊說不是,只是所有問題必須先翻譯成日文才傳給日本,而日本那邊以日文回答,所以必須要再翻譯成英文才傳給X他們公司,這一來一往,加上時區相隔造成的日夜時差,所以每次回答都要拖上一個禮拜。

讓遊戲達到目標幀數就沒什麼有趣的事好提,大致上就是最佳化程式碼(CPU與GPU),若還不行就削減些功能特色,直到達成目標為止。削減功能雖然簡單,但會對遊戲造成很大影響。

在CPU的最佳化過程中,他們不得不削減些功能,因為正如當初的擔憂-CPU並不夠強。另外在Xbox360與PS3中應用的Power PC最佳化方式也不一定適用在Wii U上頭(三台機器都使用Power PC為基礎的CPU)。WiiU的CPU上有些有意思的特色能減輕負載,雖然在X開發的遊戲中不一定全都派得上用場。但某些類型的程式碼能起重大的作用,例如因免於Load-Hit-Stores而得到最多4倍效率提升,還有因為亂序執行而得到的更高的IPC。

而Wii U的GPU則是與CPU相反。GPU有足夠能力,甚至有餘裕來增加額外特色。X他們還一度考慮要用GPU來做通用運算(GPGPU)以彌補CPU不足,這也是次世代主機將訴求的一個方向。但由於有限的開發時間,加上任天堂官方沒有指導範例,所以就不冒險做這個。X認為要是當初有更多時間,或是更龐大團隊,或許可能會試試這個方向,不過X以事後諸葛來看,當時在想辦法擠出GPU最大效益,因此能做的可能也很有限。Wii U的GPU比起PS3與Xbox360強勁,但遠遠不及PS4與Xbox One。

  
另外X也聽過由於Wii U使用DDR3 RAM,所以有人認為頻寬比起Xbox 360與PS3可能會不足,但X說他們沒有這種擔憂,他們充分利用eDRAM與預讀讓GPU能保持最高速度。

遊戲逐漸成形,硬體問題也解決了,X就把重心轉到網路運作與新發表的Nintendo Network介面上頭。他們很早就發現開發文件與系統代碼上缺少網路運作相關的東西,他們問了任天堂,在歷經見怪不怪的翻譯延遲後,他們得到回覆說,那些東西還在開發中,但不用擔心,很快就會到位。

時間愈來越緊迫,那時X他們認為任天堂新的網路系統建設是新主機的重要基礎,任天堂一定是建構完成與測試無誤才會放出來,所以可以諒解這麼些延遲。但他們還是必須設法做些基本測試,他們把幾台開發機連在一起。但缺少許多Mii與好友功能等最後零售機會具備而開發機卻沒有的功能,根本無法試出現有的程式碼在未來「零售機的環境」究竟運作狀況會如何。他們只能盲目摸索,希望寫出來的程式碼能跑。

這時候,X他們得到一次機會能與一些資深的任天堂開發人員對談,他們要與任天堂進行一場電話會議,因為任天堂要聽取開發人員對他們Wii U開發工具鏈與開發體驗的反應。在那場電話會議中,X得到了一個任天堂如何做事的有趣的內幕觀察。

會議開始一開始很順暢,X他們把遭遇到的問題反映出去,接著問網路功能什麼時候出得來,任天堂回道,你們所需之新功能與OS升級會在主機發售前放出來給你們,但也僅此而已。對想建設一個與PSN還有Xbox Live競爭的大型網路系統,任天堂顯然有些問題沒有設想到。

X他們對任天堂給的回答有點意外,畢竟他們以為任天堂有大量時間可以完成那些功能,因為當時那些功能都已經公開發表好幾個月了。所以當X他們在會議中更深入去問某些情境下,Mii與網路會怎麼運作,他們一直使用PSN與Xbox Live是如何做同一件事為例子與參考來發問。雙方對談一段時間後,X他們被告知別舉Xbox Live與PSN為例子,因為任天堂開發團隊裡沒人用過。X心想,那他們的問題該怎麼對任天堂提供更多細節與解釋呢。那場會議後,X認為任天堂在網路方面會非常非常辛苦,因為任天堂沒想到實際情況會比他們預想中更複雜。任天堂想追上對手的系統,但沒有足夠的經驗與體驗在背後支持,該怎麼成功?

最後,如任天堂所承諾,在WiiU全球發售前(夕),開發套件的最終網路功能與OS系統升級終於到了。測試遊戲必要條件終於到齊,他們可以開始更新遊戲並著手測試了。

要測試這個部分,X他們必須先把開發機調成「零售機模式」,唯有這種狀況下才會包含Mii與網路功能。但轉換過程非常繁瑣麻煩,讓人覺得這根本還沒完成。在零售機模式可以測試功能,看看功能運作是否達如期待運作無誤,這也是要通過任天堂認證***的必要條件。不過在此模式下的除錯功能非常有限。所以常見看到錯誤發生,卻無法找到原因。身為一個開發者,你要做出抉擇,並希望這是(未經完整測試的)主機系統所發生的問題,最終發售主機上頭不會有相同錯誤。一個簡單操作怎麼會都要漫長等待又容易出錯,例如你要發出一朋友要求個給另一位用戶,但OS不支援這項功能,你必須在除錯選單啟動另一個程式才能送出需求。若有錯誤發生又沒辦法查出為何發生錯誤,這本身就是錯誤。

***遊戲要在主機平台上發售都必須通過主機廠商的認證程序,各家的規矩不盡相同。

X公司開始問任天堂,只剩幾周就要發售,OS才半完成,是要怎麼發售?而那些已經製造好的主機又是要怎麼得到OS,還是我們拿到OS時間已經晚了,其實OS早就送到生產線上了。
答案在發售日那天到來浮現,任天堂的網路系統遲到,而且遲到很久。要完整存取任天堂的網路服務必須在發售日當天下載一個巨大更新檔,那些系統缺少的組件才會補齊,如果沒有那個更新檔,很多遊戲的網路功能都會半殘。

之後,X他們的遊戲發售了。在媒體上收到很好的評價,X的高層檢視銷售數據看看辛苦投入得到了什麼回報。結果簡單來說,銷售不太出色。但很幸運的有在第一時間收回投入的成本,雖然X高層說會繼續支援Wii U,但X覺得他們公司後續不太可能在開發WiiU遊戲。

以上就是X的故事。而以下是X對目前Wii U發展的觀察與想法:

首先針對越來越多遊戲開發公司放棄WiiU遊戲支援的現象:
  • 可能因為過去開發工具與環境的不愉快經驗影響他們繼續推出下一款遊戲。  
  • 任天堂在功能與技術支援上都忽視第三方廠商。一直以來都有種感覺,你若不是第一方廠商,很大程度會被任天堂忽視。因他們對任天堂的獲益幫助不高,任天堂自己開發的遊戲就能保住任天堂,第三方廠商遊戲只是增加遊戲陣容多樣性罷了。  
  • Wii U主機銷售發售不久後就不理想。許多一般人在主機發售第一時間誤解Wii U是Wii的一個周邊。這個廣泛的誤解讓主機沒在開局取得任天堂所期望的成績,連帶阻礙其他開發商投入Wii U的意願。(編按:看2011年E3 Wii U預告就能知道,任天堂過度集中在新控制器的功能上,讓很多人誤解Wii U只是Wii的新遊戲手把)  
  • 錯誤時間點下的犧牲品。在WiiU主機發售的數月後,Sony就發表次世代主機PS4的消息,幾個月後微軟也加入戰局。但別忘大型開發廠商可能會更早知道消息,甚至早於WiiU發售。
這些大公司會面臨選擇,移植一款現有遊戲到一個能力受限,市場份額也有限的主機?或者,讓開發團隊在「真正」次世代主機去開發新概念與特色的遊戲,並成為那些主機發售時同時上市的遊戲?當你這樣看就很好選了。

另外Wii U對任天堂第一方而言可能也不好過,因為這會是它們第一次從SD轉換到HD。這種陣痛期,其他廠商早在PS3與Xbox360初期就已經歷過了。轉換到HD並非簡單的事,許多廠商投入大批時間與金錢試圖想適應下來,其中很多是失敗且以倒閉收場。

任天堂內部遊戲開發團隊目前面臨要在有限開發時間內為新主機拿出夠吸引力的遊戲。在這種情況下無可避免會在某些名作開發上不順利,但還是很訝異任天堂去年的第一方遊戲是如此稀少。

而WiiU究竟能否與PS4/Xbox One等次世代主機競爭呢?以性能來看,WiiU某些地方強於上一代主機(PS3/Xbox 360),某些地方扯後腿。若跟次世代主機比性能,那真是差得了遠,性能根本不能比。

以一個非常簡單道理來看,PS4耗電量比WiiU多100W,用得還是最新、效率高的28nm AMD晶片,對比Wii U,聽說是來自於日本廠商Renasas的55nm處理器。

WiiU與次世代主機還有一絲相似之處就是低功耗CPU搭一個更強許多的GPU。但把下一代主機遊戲簡單移植到WiiU上頭的想法就是不可能。效能距離太大,而我們能在PS4與Xbox One上頭見到的GPGPU ,在Wii U上只有4個舊型的著色器。

而毫無疑問的,任天堂第一方遊戲會發揮Wii U的價值,因為每次都是這樣。但對第三方開發者來說情況非常嚴峻,在不夠優秀的開發環境與工具與缺乏財政補助鼓勵的雙重問題阻礙他們在WiiU上頭發展。那就此離開嗎?

就X個人看法,他無法確定未來的事。但就此情勢繼續發展,Wii U會一直這樣少少的銷售下去,除非有一款「殺手級遊戲」誕生,可能是第一方,也可能是第三方創造的,不過還是不太可能趕上PS4與Xbox One的勢頭。而最近,如中國開放遊戲機的消息可能影響Wii U發展。不過他認為這巨大的未經開發市場,裡頭工資普遍低落,熱賣的可能也是Wii而非Wii U。

X說你永遠不能低估任天堂,但根據他的經驗與銷售數據,任天堂正面臨他近代最嚴峻的考驗。

沒有留言:

張貼留言