70年代中期,伊利诺伊大学来了两个年轻的学生,一个是布鲁斯·阿特维克,学习电气工程。另外一个是斯图·莫门特,攻读MBA学位。
两人共住一个宿舍,并且有一个共同的爱好:飞行。
(左 斯图,右 布鲁斯)
他们不会想到,正是这个爱好,最终引领他们踏上一条意想不到的道路:一款从简陋线条起步的小游戏,将进化为一个可以模拟整个地球的数字奇迹。
01
飞行模拟器
大学期间,布鲁斯拿到了飞行驾照,并完成了一篇出色的硕士论文:《多功能计算机生成的动态飞行显示器》。这篇论文在PDP-11小型机上运行,实际上就是早期的飞行模拟器。
毕业后,他加入了休斯飞机公司,但业余时间依旧沉迷于研究3D图形技术。
1977年,他在计算机杂志上发表文章,介绍了自己为摩托罗拉6800开发的3D图形包。
没想到这篇文章引来了大量读者来信,纷纷询问购买途径。
布鲁斯意识到:自己的兴趣,或许可以变成一门生意。
于是他找来老朋友斯图,俩人一合计,成立了SubLogic公司,专攻3D图形软件。
一个是安静的梦想家兼程序员,一个是能言善道的营销高手,组合可谓完美。
但客户常常困惑地问:“这个3D图形包能干嘛?”
直到布鲁斯随口说了一句:“比如说……你可以用它做个飞行模拟器。”
客户眼睛立马亮了:“那你为什么不去做一个?我们一定买!”
SubLogic的两位创始人决定改变方向,开发一个飞行模拟器。
1979年,完全用汇编写的《飞行模拟器》在Apple-II上运行了起来。
以现在的眼光看,这个飞行模拟器实在是太粗糙,太简陋了!画面中的元素都是线框构成的,帧率低得可怜,地图中只有一条跑道、一座桥梁和一座山。
布鲁斯为吸引玩家,还加入了击落敌机的“空战模式”,但很快他发现:
大多数人并不想打仗,只是喜欢在虚拟天空中自由飞行!
原来,许多人都曾梦想翱翔天际,但现实中飞行成本高昂,《飞行模拟器》恰好为这种梦想开了一扇窗。
这款简陋的模拟器迅速走红,到1981年,已成为苹果电脑上最畅销的游戏之一!
02
大放异彩
1981年,IBM PC发布,操作系统外包给了微软,同时委托他们为PC开发或者采购其他软件,包括游戏。
微软找到了SubLogic,希望将热门的飞行模拟器移植到自家的MS-DOS上。
布鲁斯疯狂地工作了一年,最疯狂的时候,每天甚至编程16小时,他用纽约、芝加哥、西雅图和洛杉矶等大都市地区的二十多个机场取代了之前的单一机场,添加了天气信息,坐标系统,无线电应答器.....尽可能地模拟真实场景。
1982年,《微软模拟飞行》发布,不出意料,很快风靡一时。
《微软模拟飞行》甚至成了一块测试PC兼容机的试金石,因为它的代码充满了巧妙的优化,利用了IBM自家图形适配器的每一个特性,将CPU的性能推向了极限,如果一个PC兼容机能顺利运行《微软模拟飞行》,那也可以运行其他程序,兼容性肯定没问题。
布鲁斯继续稳步前进,改善《微软模拟飞行》,相继推出了3.0, 4.0, 5.0,画面越来越精致。
5.0版是个分水岭,它带来了一项全新的杀手级功能:纹理。
游戏中的不同场景是用色块表示的——绿色代表森林,灰色代表城市,蓝色代表水域。
纹理的出现给物体提供了丰富的细节,用简单的方式模拟出了复杂的外观,让场景变得更加真实。
(1 未加纹理,2 已加纹理)
03
被微软收购
到了1995年,仅仅《微软模拟飞行》就已经卖了300万份,微软看到这这种现金牛,干脆收购了布鲁斯的公司。
当时正值划时代的Windows 95发布,微软准备干一票大的,把《微软模拟飞行》从DOS移植到Windows上。
让人没想到的是,这件事儿出乎意料地难。
首先,《微软模拟飞行》是用汇编写的,需要用C语言重写,工作量极其庞大。
其次,早期的飞行模拟器是一个“裸奔在硬件上的程序”,只借助 MS-DOS 引导它启动,之后几乎直接控制硬件运行。
熟悉DOS的朋友都知道,DOS并不是一个“现代操作系统”,它不提供内存保护、硬件抽象层或多任务支持。程序员可以直接读写显存、操控 CPU 寄存器、操作声卡端口、访问 BIOS 中断等,几乎“为所欲为”。
在Windows平台上就不一样了,做同样的事情,需要通过系统API才行。
开发团队经过连日苦战,还是啃下了这个硬骨头,代价就是:即使是在配置很高的PC上,运行《微软模拟飞行95》也会有性能问题。
直到《微软模拟飞行98》应用了3D硬件加速技术以后,对性能问题的抱怨才慢慢消失。
《微软模拟飞行2000》则实现了一个壮举:游戏包含了全球所有的机场,并且以1公里为单位划分并且绘制了整个地球表面!
盖茨看了演示以后大为震惊:“你简直是胡扯,这是我听过的最愚蠢的鬼话。” 在微软内部,这其实是最高级别的赞美。
进入21世纪,为了对抗索尼的PS产品,微软的战略发生了转移,重心开始向游戏机倾斜,发布了XBox。
这直接削弱了对PC-only产品的支持,导致飞行模拟开发团队边缘化。
开发团队(此时已经改名为Aces Game Studio)当然不会坐以待毙,他们尝试将飞行模拟器移植到XBox,但是飞行模拟器的鼠标和键盘操作极其复杂,适配到手柄时有很大的困难,XBox版本最终被放弃。
就这么到了2008年,金融危机引发了公司裁员,孤立无援的Aces工作室成了被开刀的对象。
2009年,《微软模拟飞行》的代码被封存,一个时代就这么终结了。
04
凤凰涅槃
2016年,微软发布了一个名为HoloLens的虚拟现实/增强现实的装备,其中有一个HoloTour的应用,可以让用户对一些著名景点进行虚拟游览。
项目负责人诺伊曼发现,由于缺乏数据,想要做出完整,漂亮的景点3D模型非常困难,他想到了一个点子:派飞机飞过去,用激光雷达和摄影技术来采集数据。
这让他立刻意识到:微软手里早就有个完美的应用场景,那就是《微软模拟飞行》。
现在已经出现了一些新的技术,如云计算,Bing地图等,能不能用到之前的《微软模拟飞行》上?
诺伊曼把之前封存的代码拿来,利用Bing地图数据做了一个演示:一架飞机飞越西雅图。
效果惊艳,微软决定重启《微软模拟飞行》,并全面升级:
1.利用机器学习技术,将已有的摄影测量数据和卫星照片转换成地球表面的三维还原模型,极大地降低了人工建模的工作量。
2.CPU技术的进步,让《微软模拟飞行》在物理系统上做了极大的增强,可以模拟1,500 个飞行表面(如机翼、舵面、引擎等),每个点都参与空气动力学计算,极大提升了真实性和动态反应能力。
3.通过xCloud流媒体的应用,只需手机+网络,就能在世界上任意一个地方虚拟起飞,飞往另一个地方,整个世界都被装进了口袋。
2020年,新版《微软模拟飞行》首先在PC上发布,随后又移植到了XBox上。
全面升级的《微软模拟飞行》已经不是普通的飞行游戏,而是把整个真实世界变成一个可以实时交互、沉浸式体验的三维空间。
游戏内含有超过3.7万个机场、15亿栋建筑和2万亿个3D物体,包括从Bing地图和微软其他合作公司中获取到的道路、树木、河流等基于现实世界的物体,总数据量高达3500TB之巨。
这款游戏还融入了实时交通情况,包括实时的航班、船只、车流量等信息,模拟了实时天气、云层、风向,简直就是一个数字地球,所以玩起来沉浸感无与伦比。
Google有Google Earth,Google Map,但是相比而言,它们都缺乏这种实时生成+真实地理环境的整合能力,也缺乏实时云层、风向模拟,交通信息模拟等信息,更没有物理系统,从数字地球的角度来说,《微软模拟飞行》超越了Google的相关产品。
05
结语
在天空翱翔,是很多人的梦想,但是现实的羁绊只能让大家抬头望着天空叹息,《微软模拟飞行》帮无数人圆了梦!
从软盘时代的简陋像素,到如今全球一比一还原的数字地球,它用四十余年跨越了技术的鸿沟。
当你再次打开这个游戏,穿越山川湖海的时候,你也许会意识到,你不仅是在追逐飞行的梦想,更是在亲身参与一次长达数十年的数字奇迹!