手游都爱用,巨头都在抢:Java为啥这么牛?

大家好,我是冬晓,今天和大家接着聊聊游戏。不知道大家平时打游戏的时候都喝什么:是快乐水,红牛,还是隔壁大鼻孔家的宝矿力水特。不过不管你喜欢喝什么饮料,作为玩家,你都应该知道游戏圈里的两杯咖啡:这第一杯就是圣安地列斯的热咖啡,里面蕴含着运动和成长,懂得都懂。不过我们今天聊的是第二杯,不管是《我的世界》还是俄罗斯方块,这杯咖啡都在玩家身边,它就是编程语言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的道路还在继续前行。玩家的童年变成回忆,留给他们的是漫长人生。

言之游理是一档新开的节目,在这里我们会聊聊游戏,聊聊文化,聊聊生活。感兴趣的话记得订阅关注哦。

全部专栏