手機(jī)游戲,微軟的終極街亭?
一般說來,“大事大非”上,微軟(Microsoft)都是個(gè)杰出的追趕者而不是首發(fā)者。在微軟看來,首不首發(fā)不重要。重要的是追趕的過程。微軟可以是龜不是兔。但它卻能一天 24 小時(shí),一年 365 天不停地走。再快的兔子,一年總要歇個(gè)百八十天吧。那不就成了。
作為追趕者,微軟既有成功,也有失敗。最成功的兩個(gè)戰(zhàn)役就是瀏覽器之戰(zhàn)和編譯器之戰(zhàn),兩戰(zhàn)戰(zhàn)況之激烈,如今還可以感受到,因?yàn)闉g覽器的首發(fā)者 Netscape 就此消失得無影無蹤,而 Borland這個(gè)曾經(jīng)響當(dāng)當(dāng)?shù)拿秩缃褚呀?jīng)很少被提起。游戲主機(jī)之戰(zhàn),通過微軟長時(shí)間的堅(jiān)持,如今無論是在氣勢上還是 Market Share 上都要優(yōu)于老對(duì)手 Sony 的 Play Station 。關(guān)于失敗的戰(zhàn)役,較為明顯的是 Zune 與 iPod 之戰(zhàn),其次是 Bing 與 Google 之戰(zhàn)。當(dāng)然,對(duì)于后者,目前而言,至少還不算大敗。
諸葛亮的失街亭之戰(zhàn),對(duì)于后來的魏蜀之爭產(chǎn)生了重大影響。不但使蜀國損失了智謀之士,更重要的是,魏國在原本防守空虛的西線部署了更多的兵力,使蜀漢從此失去了奇襲魏地的機(jī)會(huì),此后諸葛亮伐魏再也沒有建樹。類似于諸葛亮的街亭之戰(zhàn),微軟應(yīng)該是有好幾次。幸好不似蜀國偏安一隅,財(cái)大氣粗的微軟,并沒有到傷筋動(dòng)骨的地步。都說吃一塹,長一智。微軟似乎并不在意這些,它始終相信它那后發(fā)先至的凌波微步。這不,一個(gè)不小心,在移動(dòng)操作系統(tǒng)平臺(tái)上,它又重新開始了它的新的追蹤。
Windows Phone 最近很熱。到處都在討論它,很多文章在議論它。那么本文就稍微偏離一下熱點(diǎn),我們來討論一下手機(jī)游戲這個(gè)移動(dòng)平臺(tái)上也算比較熱的話題。當(dāng)然,為了顯得更深刻,讓我們?cè)偕钊胍幌拢M(jìn)入到游戲的背后,看看它們的圖形 API 的故事。
在討論移動(dòng)游戲的圖形 API 之前,先讓我們來回顧一下位于 PC 這個(gè)領(lǐng)域上 PC 游戲產(chǎn)業(yè)上曾發(fā)生過的一場圖形 API 之戰(zhàn)。即微軟的 DirectX 與 SGI (Silicon Graphics)的 OpenGL 之間圖形 API 標(biāo)準(zhǔn)之戰(zhàn)。這場戰(zhàn)爭始于上世紀(jì)九十年代末,彼時(shí)使用 OpenGL 開發(fā)的 id Software 的 Quake Engine 達(dá)到了極為驚人的繪圖效果,因此使得所有繪圖顯示卡的制造商,都必須提供完整的驅(qū)動(dòng)程式支援 OpenGL 標(biāo)準(zhǔn),才能夠符合游戲開發(fā)者與游戲玩家對(duì)于顯示卡硬體的期望。 所以O(shè)penGL 在 John Carmack (id Software 創(chuàng)始人之一) 的支持下風(fēng)頭甚勁。微軟的圖形 API 始自于 Windows 95 的開發(fā)。1995年,DirectX 1.0 release 。從那開始,微軟用它無以復(fù)加的韌勁開始了 DirectX 從弱小到稱霸的歷程?;厥淄?,歷史上有太多相似的地方。DirectX 和 OpenGL 爭斗的歷史,和編譯器,瀏覽器甚至操作系統(tǒng)本身爭斗的歷史在路徑上是一致的。某種程度上來說,微軟這個(gè)公司確實(shí)值得尊敬。
限于篇幅,關(guān)于 DirectX vs OpenGL 之戰(zhàn)更細(xì)節(jié)的地方,有興趣的讀者可以去看OpenGL 3 & DirectX 11: The War Is Over 一探究竟。
讓我們從歷史的憂郁中回過頭來看當(dāng)下。如果說在 PC 領(lǐng)域上微軟是無可爭議的霸主,那么在如今熾熱的移動(dòng)平臺(tái)之爭上,微軟就是江河日下了。我們先來看看一個(gè)關(guān)于美國智能手機(jī)系統(tǒng)的數(shù)據(jù)分布圖。

可以看到微軟手機(jī)系統(tǒng)的市場占有率是逐年下降,到目前為止甚至已經(jīng)低于 5% 了。在桌面領(lǐng)域,微軟無疑是霸主,但在移動(dòng)領(lǐng)域,現(xiàn)在則是個(gè)小菜鳥了。歷史上,在桌面領(lǐng)域的任何一場跟微軟相關(guān)的戰(zhàn)爭,微軟都可以挾操作系統(tǒng)已令諸侯。給對(duì)手以致命打擊,獲得最終的勝利。2012年,在移動(dòng)戰(zhàn)場,角色卻悄然對(duì)換了。
實(shí)事求是地說,微軟在 DirectX vs OpenGL 的戰(zhàn)役過程中倒沒怎么利用在操作系統(tǒng)上的優(yōu)勢。微軟贏也是贏在了類似于當(dāng)年吵得很兇的軟件開發(fā)模式 – 大教堂和集市究竟那種研發(fā)模式更好上。DirectX 是微軟的圖形程序開發(fā)接口,微軟可以控制一切。OpenGL 則是一個(gè)開放的圖形 API 。所謂大教堂的優(yōu)勢就在于微軟可以根據(jù)自身對(duì)圖形編程發(fā)展的預(yù)判來調(diào)整 DirectX 的研發(fā),而 OpenGL 是一個(gè)開放的圖形編程標(biāo)準(zhǔn),其規(guī)格標(biāo)準(zhǔn)的發(fā)展,往往會(huì)受到各軟硬件廠商之間的利益沖突因素牽連而遲遲無法達(dá)成共識(shí)。而微軟這方,卻僅僅需要與 ATI 以及 Nvidia 兩間公司合作制訂 DirectX 的 API 規(guī)格,并且擁有最終的關(guān)鍵裁量權(quán),因此能夠相當(dāng)順利且迅速地持續(xù)發(fā)展。與其 Windows 及 Visual Studio 一樣,微軟的東西開始可以不怎么樣,隨著時(shí)間的流逝,卻會(huì)越做越好。DirectX 就是在版本 8 和版本 9 開始不但趕上而且開始拉開與 OpenGL 的距離。其中最重要的變革就在于引入了對(duì)于整個(gè)電腦繪圖界來說極為重要的創(chuàng)新與變革:Vertex Shader 以及 Pixel Shader。從此, OpenGL 開始了其追趕 DirectX 的步伐而不再是之前的被追時(shí)那種滿意的感覺了。
“三十年河?xùn)|,三十年河西”
OpenGL 在個(gè)人電腦領(lǐng)域上失意,在移動(dòng)領(lǐng)域上如今卻春風(fēng)得意馬蹄輕。無論是 Apple 的 iOS 還是 Google 的 Android ,都使用 OpenGL ES 作為它們的圖形 API 渲染引擎。而大家都知道現(xiàn)在這兩個(gè)系統(tǒng)在移動(dòng)智能手機(jī)領(lǐng)域一如微軟在個(gè)人電腦般具有壟斷的地位。OpenGL ES 是 khronos Group針對(duì)手持設(shè)備、嵌入式設(shè)備的三維圖形渲染需求而制定一個(gè)編程接口標(biāo)準(zhǔn)。目前為止, OpenGL ES 一共發(fā)布了三個(gè)版本,分別是 1.0 ,1.1 ,及 2.0 。其中 2.0 相較于前兩版有著較大的變化。從 2.0 開始,OpenGL ES 不再支持 fixed function pipeline 而引入了 OpenGL ES SL (OpenGL ES shading language)及 Vertex Shader 與 Fragment Shader。也就是說使用 OpenGL ES 來開發(fā)多媒體應(yīng)用和游戲的廠商必須自行實(shí)現(xiàn)原來在 1.0 ,1.1 版本上提供的一些基礎(chǔ)渲染例程。雖然在這點(diǎn)上,OpenGL ES 2.0 比 1.x 版本增加了難度,但好處是,廠商就此可以充分的發(fā)揮智能設(shè)備上越來越強(qiáng)勁的硬件功能來使自己的游戲圖形更為出色。
我們都知道,游戲的開發(fā),尤其是大型的三維游戲開發(fā)是非常耗費(fèi)資源且投資巨大的。游戲公司通常會(huì)為它們所要研發(fā)的游戲建立和維護(hù)各種各樣的工具,包括關(guān)卡編輯器,游戲資源管理器,還有最為重要的 3D Game Engine 等。當(dāng)這些公司日復(fù)一日,年復(fù)一年的在一個(gè)平臺(tái)上開發(fā)游戲,那么它們所獲得的不僅僅只是游戲本身,還包含了創(chuàng)作游戲所需要的不斷完善和改進(jìn)的工具集。這樣的結(jié)果就是平臺(tái)和游戲廠商之間日久生情產(chǎn)生了黏性。這種黏性對(duì)于后來的平臺(tái)而言就是一種難以逾越的壁壘。因?yàn)闉橐粋€(gè)新的平臺(tái)制作出一個(gè)好用的有效率的工具集是需要時(shí)間和經(jīng)驗(yàn)的積累的。
就如大教堂和集市,開源和閉源曾經(jīng)所引發(fā)的劇烈爭論一樣,關(guān)于在圖形 API 上,是支持 DirectX 還是支持 OpenGL 有時(shí)并不僅僅是技術(shù)上的事情,更多時(shí)候變成了一種個(gè)人喜好及情感的問題。就拿 id software 的創(chuàng)始人之一,個(gè)人電腦上 FPS 之神 John Carmack 來說,他就是個(gè)堅(jiān)定不移的 OpenGL 的支持者,而類似他的人應(yīng)該還有很多。正如那些曾經(jīng)為 Linux 向桌面進(jìn)軍,為開源的普世性搖旗吶喊,為 OpenGL 在個(gè)人電腦領(lǐng)域上的抗?fàn)幍娜藗?,卻被微軟挾閉源系統(tǒng)之優(yōu)勢和壟斷霸主的地位通通擊敗。你說這些人這些年來他們的內(nèi)心中就沒有殘留一絲苦楚嗎?現(xiàn)在好容易 Google 開源的 Android 系統(tǒng)終于在移動(dòng)領(lǐng)域揚(yáng)眉吐氣,呼風(fēng)喚雨,微軟卻要挾閉源的 DirectX 再次來觸動(dòng)許多人那敏感的神經(jīng),他們會(huì)允許嗎?
好吧,你們不允許我也要干。這向來是微軟的風(fēng)格。那么這次閉源系統(tǒng)能再次戰(zhàn)勝開源系統(tǒng)嗎?列位看官,說了那么久我們竟然忽略或者忘記了還有一個(gè)比微軟有過之而無不及的更為封閉的蘋果了。微軟好歹只是軟件系統(tǒng)封閉,蘋果卻是從硬到軟上都封閉。但誰叫人家早已將自身的生態(tài)系統(tǒng)建筑得完完滿滿,所以在移動(dòng)領(lǐng)域上目前也能和 Android 不分伯仲。然而,無論是蘋果的 iOS 還是 Google 的 Android ,它們使用的都是 OpenGL ES ,這會(huì)讓很多人高興不已。這下糟糕了,在移動(dòng)領(lǐng)域里,微軟被夾在開源和更封閉之間了。走向開源嘛,微軟絕不會(huì)同意。走向更封閉嘛,它又沒有這個(gè)能耐。人家蘋果為了更封閉可是付出了數(shù)十年的心血的。
微軟是從操作系統(tǒng)起家的公司,它深知掌控 API 掌控標(biāo)準(zhǔn)的重要性。所以它不會(huì)輕易地放棄抗?fàn)?,但它得有抗?fàn)幍谋惧X。就目前而言,在移動(dòng)領(lǐng)域,微軟的本錢在那呢?靠自身都難保的 Nokia 來幫它獲得更多的移動(dòng)操作系統(tǒng)份額?就當(dāng)下的形勢,這可能嗎?
究竟是雞生蛋,還是蛋生雞?這放到那都是永恒的哲學(xué)命題。在 Windows Phone 不超過 5% 甚至更低的市場份額,在當(dāng)前無論是在 Android 還是 iOS 平臺(tái)上游戲廠商之間的競爭日趨激烈的情況下,有那個(gè)游戲廠商會(huì)冒著風(fēng)險(xiǎn)把巨大的資源放到未來并不明朗的 Windows Phone 和 DirectX 上?按經(jīng)濟(jì)學(xué)的 trade off 原則,廠商把資源放在了 Windows Phone 和 DirectX 上,必然會(huì)削弱它們?cè)?Android 和 iOS 上與其他競爭對(duì)手戰(zhàn)斗的力量。反過來,如果沒有太多的游戲廠商支持 Windows Phone ,Windows Phone 又靠什么來吸引用戶使用它呢?當(dāng) iOS 上能玩到無盡之劍 2 ,現(xiàn)代戰(zhàn)爭 3 等大型 3D 游戲時(shí), Windows Phone 卻只能玩一些初級(jí)的或者是 Xbox Live 上一些輕量級(jí)的游戲。即使是輕量級(jí)的游戲,iOS 上也比 Windows Phone 要多很多精彩得多。目前情況是,iOS 上是我開發(fā)我賺錢 (也有不賺錢的,但這不是普世現(xiàn)象么?),Windows Phone 上是我先賠錢開發(fā)還要當(dāng)下不賺錢未來可能賺錢,這當(dāng)真是微軟你要?jiǎng)e人怎么辦?
總之,以微軟這種巨無霸公司的文化來看,手機(jī)游戲上,它還是想再創(chuàng)輝煌的。但問題是此次遠(yuǎn)遠(yuǎn)落后的它用它的凌波微步是否還能追得上逐漸遠(yuǎn)去的 iOS 和 Android ?它在移動(dòng)操作系統(tǒng)上的街亭之戰(zhàn)是否是其在移動(dòng)戰(zhàn)場上的***之戰(zhàn)?讓我們拭目以待。