手遊都愛用,巨頭都在搶:Java為啥這麼牛?_風聞
言之游理-观察者网原创视频栏目-编辑们的玩家天地,观察者网的游戏专栏2021-04-16 11:28
大家好,我是冬曉,今天和大家接着聊聊遊戲。不知道大家平時打遊戲的時候都喝什麼:是快樂水,紅牛,還是隔壁大鼻孔家的寶礦力水特。不過不管你喜歡喝什麼飲料,作為玩家,你都應該知道遊戲圈裏的兩杯咖啡:這第一杯就是聖安地列斯的熱咖啡,裏面藴含着運動和成長,懂得都懂。不過我們今天聊的是第二杯,不管是《我的世界》還是俄羅斯方塊,這杯咖啡都在玩家身邊,它就是編程語言Java。
觀前提醒:本期節目是對Java在遊戲領域發展的基礎盤點,相關內容無法保證絕對專業。如果有大佬能夠補充內容,還請在評論區提供指導,可能還有編輯部的神秘禮物相送哦!
提到Java遊戲,玩家想到的不是諾基亞的手機屏幕,就是按鍵和消消樂。但是這些看起來草根的遊戲,卻是千禧年的技術結晶。20世紀90年代,單片機橫掃全球,不管是機頂盒、遙控器還是手機,所有廉價的電子產品都有單片機的電路和芯片。
這麼普遍的硬件,自然需要對應的軟件。當時的軟件巨頭Sun公司就在1991年組建了Green項目小組,專供計算機嵌入式應用。翻譯成人話就是,讓烤麪包機也能實現電腦級別的操作,不過放到現在的話,這事好像心靈寶石就能幹。
開個玩笑,心靈寶石畢竟還是漫畫的產物。Green小組還是要寫代碼的。他們本來想從萬物起源級別的C++語言入手。可是單片機的硬件水平跟C++語言的複雜程度相比,相當於讓騎電動車的老太太開坦克,根本無法運行這麼龐大的系統。而且不同平台的單片機硬件根本不統一,因此需要一個跨平台的簡易編程語言。
設計一門新語言?説幹就幹!以詹姆斯·高斯林為代表的一眾極客大佬,花了不到一年的時間。就搞出了精簡好用的Oak語言,可是作為軟件產品,Oak沒有對應的硬件,因此Oak就被雪藏了。就在這時,行業帶來了好消息:互聯網開始普及了。
編寫Oak語言的大佬,給這個語言加上了網絡功能,它終於可以投入應用了。這個時候,大佬們突然發現Oak被註冊了,那怎麼辦?平時喝咖啡的咖啡店叫Java,那就乾脆取名叫Java吧,於是Java語言誕生了。好傢伙,要是他們沒事愛吃驢肉火燒,這門語言估計要叫“河間”了。
説了半天,Java為啥能扯上游戲?答案就是手機。Java針對的硬件環境是單片機,單片機在當時應用最廣的,就是諾基亞能砸核桃的磚頭手機。Java在那時與時俱進,推出了適合便攜設備的Java微型版。2001年舊金山JavaOne會議上,世嘉展示了可以在手機上運行的Java遊戲,手機遊戲的Java時代,誕生了。
一開始,在諾基亞和摩托羅拉上運行的Java遊戲主要以是老遊戲移植為主,例如説貪吃蛇和俄羅斯方塊,像是《太空侵略者》這樣的,還會有實體版。對,你沒有聽錯,那個年代的手機遊戲是有實體版的。在當時理所當然的東西,放到現在,就是這麼匪夷所思。
不過那個年代的手機,不論是硬件還是軟件都是技術爆炸。Java遊戲很快就從黑白機過渡到了彩色機。那個年代的手遊也開始百花齊放:還沒有做出《植物大戰殭屍》的寶開,做出了《鑽石情迷》;當時還是育碧小弟的Gameloft,做出了手遊版《刺客信條》,而且還擁有跟主機板一樣的核心玩法;就連幹一行黃一行的EA Mobile,都靠Java做出了《FIFA 05》,而且賺了不少錢。
説了這麼多,Java最開始的定位並不是遊戲專用的編程語言。但是當時的遊戲廠商,為什麼這麼喜歡Java呢?因為Java結構精簡,適應性強,“一處編寫,八方可用”,不管你手裏是諾基亞還是摩托羅拉,只要你能跑Java,就全都給你拿下。當時的軟件編寫,對效率和優化的要求並不像現在這麼高。比起高清流暢60幀,那個年代的遊戲能跑起來就算勝利。Java在當時效率確實不太行,可是那個年代智能機也不流行啊。Java因此橫行四方,在當時的手機遊戲圈叱吒江湖。
也是由於這樣的原因,Java在手機上的優勢,恰恰是在PC端的弱勢。電腦的硬件更復雜,需要更好的優化,更高的運行效率。因此Java在電腦和主機遊戲領域,一直不算太流行。Java在電腦端最知名的作品,就是《我的世界》。然而《我的世界》是一款好遊戲,卻不是一款好程序。由於Mojang的技術實力真的不怎麼樣,這款遊戲早期版本的代碼簡直是一團亂麻,Java也因此落了個“不適合遊戲開發”的名聲。
東邊不亮西邊亮,Java在編程這一塊不太行,但卻在其他領域和遊戲扯上了關係。智能機時代,主流的操作系統分為iOS和安卓。安卓的開發公司是谷歌,谷歌跟Java之父Sun公司是什麼關係呢?斯坦福大學的師兄師弟啊,學弟要創業,學長能不拉一把嗎?Sun和谷歌之間的技術合作就相當的多。不少Java的規範設計文件,都是谷歌元老參與指定的。也是由於這樣的原因,谷歌在編寫安卓的時候用了一些改造過的Java源碼。繞了半天,手機遊戲還是沒離開Java。對了,這裏大家記住“改造過的Java”,待會要考的。
眼看小老弟谷歌發展起來了,老大哥Sun卻混不下去了。作為一家技術為王的企業,Sun實力很強,但是不掙錢。最後被甲骨文收購了。甲骨文的創始人埃裏·拉里森在收購Sun的時候相當狂妄,私下場合表示“Sun這種技術公司就是聚寶盆”,盡顯猶太人本色,甚至動起了Java授權的心思。要知道,根據當時Java的規模,他可以輕鬆收租幾百億。
眼看Java變成了地主老財的收租工具,Sun在被收購前當機立斷,直接把Java給開源了,全世界的碼農都可以白嫖Java,Java創始人更是光速離職。拉里森原地懵逼,煮熟的鴨子飛了,小丑竟是我自己。於是他也只能遵守遊戲規則,繼續讓Java開源。他看着Java,又看看谷歌。再看看Java,又看看谷歌。再看看Java,又看看谷歌。“分頭三連”之後,甲骨文一紙訴狀起訴谷歌,要求賠償88個億。
甲骨文為啥起訴谷歌呢?因為Java是開源的,而且“一處編寫,八方可用”,必須遵守Java的標準。甲骨文認為谷歌在Java的基礎上私搭亂建,還用安卓收了幾百億廣告費,所以必須賠錢。谷歌這下不幹了,我用的開源的Java,可是安卓的是改造過的Java,這個魔改版Java除了最基礎的API,剩下的技術標準根本不一樣,甚至沒法跟其他的Java程序通用。也就是説,現在谷歌手裏的Java代碼跟甲骨文的那個Java一點關係都沒有。這個錢根本不能出。
於是這場官司從2010年開始,一路鬧到美國的最高法院,一鬧就是11年。最後法院表示,谷歌對Java API的使用是合理的,這88億不用賠。雖然官司結束了,但是谷歌在這11年,一直在嘗試利用編程工具擺脱Java,最後搞出了flutter這樣的新工具。對於一個人來説,尋求家庭的最好方式就是追尋血脈,Java的爹Sun沒了,Java的叔谷歌不要他,繼父甲骨文只知道撈錢,Java莫名其妙的就成了孤兒,不禁令人嘆息。
不過一切還沒有結束,上帝關上了一扇門,保不齊還會打開一扇窗。要是窗户還沒打開,你也可以泥頭車把這牆撞開。Java不光用在手機和電腦上,服務器上還有Java EE,而且發展的還不錯。除此之外,Java語言還培養了像Gameloft這樣的手遊大廠,奠定了手遊發展的基礎,培養了大量遊戲人才。而且Java開發出來的《我的世界》,依舊還是買了幾十個億。
作為一門編程語言,Java在遊戲領域,還是有自己的時代侷限性的。它在能力之內,已經做到了能做的一切。Java的輝煌結束了,Java的道路還在繼續前行。玩家的童年變成回憶,留給他們的是漫長人生。
言之遊理是一檔新開的節目,在這裏我們會聊聊遊戲,聊聊文化,聊聊生活。感興趣的話記得訂閲關注哦。